Improved gtk-demo: ensure that leave-gtk-main is called; use show-message instead...
[cl-gtk2.git] / gtk / gtk.widget.lisp
index 6532f11..2239db3 100644 (file)
@@ -3,13 +3,13 @@
 ; TODO: GtkWidget
 
 (define-g-boxed-cstruct selection-data "GtkSelectionData"
-  (selection :pointer) ; GdkAtom
-  (target :pointer) ; GdkAtom
-  (type :pointer) ; GdkAtom
-  (format :int)
-  (data :pointer :initform 0)
-  (length :int)
-  (display g-object))
+  (selection gdk-atom-as-string :initform nil)
+  (target gdk-atom-as-string :initform nil)
+  (type gdk-atom-as-string :initform nil)
+  (format :int :initform 0)
+  (data :pointer :initform (null-pointer))
+  (length :int :initform 0)
+  (display (g-object display) :initform nil))
 
 (export (boxed-related-symbols 'selection-data))
 
@@ -26,8 +26,8 @@
 (defcstruct %gtk-widget
   (:object %gtk-object)
   (:private-flags :uint16)
-  (:state state-type)
-  (:saved-state state-type)
+  (:state :uint8)
+  (:saved-state :uint8)
   (:name (:pointer :char))
   (:style :pointer)
   (:requisition requisition-cstruct)
   (:parent :pointer))
 
 (defun widget-state (widget)
-  (foreign-slot-value (pointer widget) '%gtk-widget :state))
+  (convert-from-foreign (foreign-slot-value (pointer widget) '%gtk-widget :state) 'state-type))
 
 (export 'widget-state)
 
 (defun widget-saved-state (widget)
-  (foreign-slot-value (pointer widget) '%gtk-widget :saved-state))
+  (convert-from-foreign (foreign-slot-value (pointer widget) '%gtk-widget :saved-state) 'state-type))
 
 (export 'widget-saved-state)