+(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)))