chiark / gitweb /
Type method system redesigned
[clg] / gtk / gtktypes.lisp
index 520563e1ef9b8ac8af1a3e8a420974a82624db74..118b95ada44ab315d40301f701c8d8fa3e025340 100644 (file)
@@ -20,7 +20,7 @@
 ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
-;; $Id: gtktypes.lisp,v 1.42 2006-02-06 19:16:17 espen Exp $
+;; $Id: gtktypes.lisp,v 1.44 2006-02-26 15:30:01 espen Exp $
 
 (in-package "GTK")
 
@@ -136,8 +136,16 @@ (register-type 'tree-path '|gtk_tree_path_get_type|)
 (deftype position () 
   '(or int (enum (:start 0) (:end -1) (:first 0) (:last -1))))
 
-(defmethod reader-function ((type (eql 'position)) &rest args)
-  (declare (ignore type args))
+(define-type-method from-alien-form ((type position) form)
+  (declare (ignore type))
+  (from-alien-form 'int form))
+
+(define-type-method from-alien-function ((type position))
+  (declare (ignore type))
+  (from-alien-function 'int))
+
+(define-type-method reader-function ((type position))
+  (declare (ignore type))
   (reader-function 'int))
 
 
@@ -155,7 +163,7 @@ (define-types-by-introspection "Gtk"
   ("GtkWidget"
    :slots
    ((child-properties
-     :allocation :special
+     :special t
      :accessor widget-child-properties
      :type container-child)
     (window