X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=gtk%2Fgtk.widget.lisp;h=25df5fb955b8a518f0b345a7ab7d6b63074da18c;hb=af5ce50499aa0db8d068c00e0a25d8a1334c1740;hp=38bb75020ac70a0810c51bbf9012d474c8db721e;hpb=08e589f6c584cb2a4c46f9e99547ac6c2bc75bf0;p=cl-gtk2.git diff --git a/gtk/gtk.widget.lisp b/gtk/gtk.widget.lisp index 38bb750..25df5fb 100644 --- a/gtk/gtk.widget.lisp +++ b/gtk/gtk.widget.lisp @@ -12,34 +12,24 @@ (export 'widget-flags) -(defcstruct %gtk-requisition - (width :int) - (height :int)) - -(defcstruct %gtk-allocation - (x :int) - (y :int) - (width :int) - (height :int)) - (defcstruct %gtk-widget - (object %gtk-object) - (private-flags :uint16) - (state state-type) - (saved-state state-type) - (name (:pointer :char)) - (style :pointer) - (requisition %gtk-requisition) - (allocation %gtk-allocation) - (window :pointer) - (parent :pointer)) + (:object %gtk-object) + (:private-flags :uint16) + (:state state-type) + (:saved-state state-type) + (:name (:pointer :char)) + (:style :pointer) + (:requisition requisition-cstruct) + (:allocation allocation-cstruct) + (:window :pointer) + (:parent :pointer)) (defun widget-state (widget) - (foreign-slot-value (pointer widget) '%gtk-widget 'state)) + (foreign-slot-value (pointer widget) '%gtk-widget :state)) (export 'widget-state) (defun widget-saved-state (widget) - (foreign-slot-value (pointer widget) '%gtk-widget 'saved-state)) + (foreign-slot-value (pointer widget) '%gtk-widget :saved-state)) (export 'widget-saved-state) @@ -147,7 +137,7 @@ (accel-signal :string) (accel-group g-object) (accel-key :uint) - (accel-mods gdk-modifier-type) + (accel-mods modifier-type) (accel-flags accel-flags)) (export 'widget-add-accelerator) @@ -156,7 +146,7 @@ (widget g-object) (accel-group g-object) (accel-key :uint) - (accel-mods gdk-modifier-type)) + (accel-mods modifier-type)) (export 'widget-remove-accelerator) @@ -194,8 +184,8 @@ (defcfun gtk-widget-intersect :boolean (widget g-object) - (area (g-boxed-ptr rectangle)) - (intersection (g-boxed-ptr rectangle :in-out))) + (area (g-boxed-foreign rectangle)) + (intersection (g-boxed-foreign rectangle :in-out))) (defun widget-intersect (widget rectangle) (let ((result (make-rectangle :x 0 :y 0 :width 0 :height 0))) @@ -331,10 +321,6 @@ (export 'widget-path) -; TODO: gtk_widget_modify_style - -; TODO: gtk_widget_get_modifier_style - ; TODO: gtk_widget_modify_fg ; TODO: gtk_widget_modify_bg @@ -357,7 +343,7 @@ (export 'widget-get-pango-context) -(defcfun (widget-create-pango-layout "gtk_widget_create_pango_layout") (g-object gdk::pango-layout) +(defcfun (widget-create-pango-layout "gtk_widget_create_pango_layout") (g-object gdk::pango-layout :already-referenced) (widget (g-object widget)) (text :string)) @@ -447,8 +433,8 @@ (class (g-type-class-ref type))) (unwind-protect (let ((g-param-spec (gtk-widget-class-find-style-property class property-name))) - (unless g-param-spec (error "Widget ~A has no style-property named '~A'" widget property-name)) - (foreign-slot-value g-param-spec 'gobject::g-param-spec 'gobject::value-type)) + (when (null-pointer-p g-param-spec) (error "Widget ~A has no style-property named '~A'" widget property-name)) + (foreign-slot-value g-param-spec 'gobject:g-param-spec :value-type)) (g-type-class-unref class)))) (defun widget-child-property-value (widget property-name &optional property-type) @@ -543,7 +529,7 @@ (defcfun gtk-widget-get-snapshot g-object (widget g-object) - (clip-rectangle (g-boxed-ptr rectangle))) + (clip-rectangle (g-boxed-foreign rectangle))) (defun widget-snapshot (widget &optional clip-rectangle) (gtk-widget-get-snapshot widget clip-rectangle))