+(defbinding (widget-modify-foreground "gtk_widget_modify_fg") () nil
+ (widget widget)
+ (state state-type)
+ (color gdk:color))
+
+(defbinding (widget-modify-background "gtk_widget_modify_bg") () nil
+ (widget widget)
+ (state state-type)
+ (color gdk:color))
+
+(defbinding widget-modify-text () nil
+ (widget widget)
+ (state state-type)
+ (color gdk:color))
+
+(defbinding widget-modify-base () nil
+ (widget widget)
+ (state state-type)
+ (color gdk:color))
+
+(defbinding widget-modify-font () nil
+ (widget widget)
+ (state state-type)
+ (font-desc pango:font-description))
+
+(defbinding widget-create-pango-context () pango:context
+ (widget widget))
+
+(defbinding widget-get-pango-context () pango:context
+ (widget widget))
+
+(defbinding widget-create-pango-layout (widget &optional text) pango:layout
+ (widget widget)
+ (text (or string null)))
+
+(defbinding widget-render-icon () gdk:pixbuf
+ (widget widget)
+ (stock-id string)
+ (size icon-size)
+ (detail string))
+
+(defbinding widget-push-composite-child () nil)
+
+(defbinding widget-pop-composite-child () nil)
+
+(defbinding widget-queue-draw-area () nil
+ (widget widget)
+ (x int) (y int) (width int) (height int))
+
+(defbinding widget-reset-shapes () nil
+ (widget widget))
+
+(defbinding widget-set-double-buffered () nil
+ (widget widget)
+ (double-buffered boolean))
+
+(defbinding widget-set-redraw-on-allocate () nil
+ (widget widget)
+ (redraw-on-allocate boolean))
+
+(defbinding widget-set-scroll-adjustments () boolean
+ (widget widget)
+ (hadjustment adjustment)
+ (vadjustment adjustment))
+
+(defbinding widget-mnemonic-activate () boolean
+ (widget widget)
+ (group-cycling boolean))
+
+(defbinding widget-region-intersect () pointer ;gdk:region
+ (widget widget)
+ (region pointer)) ;gdk:region))
+
+(defbinding widget-send-expose () int
+ (widget widget)
+ (event gdk:event))
+
+(defbinding widget-get-accessible () atk:object
+ (widget widget))
+
+(defbinding widget-child-focus () boolean
+ (widget widget)
+ (direction direction-type))
+
+(defbinding widget-child-notify () nil
+ (widget widget)
+ (child-property string))
+
+(defbinding widget-freeze-child-notify () nil
+ (widget widget))
+
+(defbinding %widget-get-size-request () nil
+ (widget widget)
+ (width int :out)
+ (height int :out))
+
+(defun widget-get-size-request (widget)
+ (multiple-value-bind (width height) (%widget-get-size-request widget)
+ (values (unless (= width -1) width) (unless (= height -1) height))))
+
+(defbinding widget-set-size-request (widget width height) nil
+ (widget widget)
+ ((or width -1) int)
+ ((or height -1) int))
+
+(defbinding widget-thaw-child-notify () nil
+ (widget widget))
+
+
+;;; Additional bindings and functions
+
+(defbinding (widget-mapped-p "gtk_widget_mapped_p") () boolean
+ (widget widget))
+
+(defbinding widget-get-size-allocation () nil
+ (widget widget)
+ (width int :out)
+ (height int :out))
+
+(defbinding get-event-widget () widget
+ (event gdk:event))
+
+(defun (setf widget-cursor) (cursor-type widget)
+ (let ((cursor (make-instance 'gdk:cursor :type cursor-type)))
+ (gdk:window-set-cursor (widget-window widget) cursor)))