+ ;; Manual override
+ ("GtkWidget"
+ :slots
+ ((child-properties
+ :special t
+ :accessor widget-child-properties
+ :type container-child)
+ (window
+ :allocation :virtual
+ :getter "gtk_widget_get_window"
+ :reader widget-window
+ :type gdk:window)
+ (parent :merge t :initarg nil)
+ (visible :merge t :initarg nil)
+ (parent-window
+ :allocation :virtual
+ :getter %widget-parent-window
+ :setter "gtk_widget_set_parent_window"
+ :accessor widget-parent-window
+ :initarg :parent-window
+ :type gdk:window)
+ (state
+ :allocation :virtual
+ :getter "gtk_widget_get_state"
+ :setter "gtk_widget_set_state"
+ :accessor widget-state
+ :initarg :state
+ :type state-type)
+ (colormap
+ :allocation :virtual
+ :getter "gtk_widget_get_colormap"
+ :setter "gtk_widget_set_colormap"
+ :initarg :colormap
+ :accessor widget-colormap
+ :type gdk:colormap)
+ (visual
+ :allocation :virtual
+ :getter "gtk_widget_get_visual"
+ :reader widget-visual
+ :type gdk:visual)
+ (direction
+ :allocation :virtual
+ :getter "gtk_widget_get_direction"
+ :setter "gtk_widget_set_direction"
+ :accessor widget-direction
+ :initarg :direction
+ :type text-direction)
+ (composite-name
+ :allocation :virtual
+ :getter "gtk_widget_get_composite_name"
+ :setter "gtk_widget_set_composite_name"
+ :accessor widget-composite-name
+ :initarg :composite-name
+ :type (copy-of string)) ; will leak the string when setting
+ (settings
+ :allocation :virtual
+ :getter "gtk_widget_get_settings"
+ :accessor widget-settings
+ :type settings)
+ (child-visible
+ :allocation :virtual
+ :getter "gtk_widget_get_child_visible"
+ :setter "gtk_widget_set_child_visible"
+ :accessor widget-child-visible-p
+ :initarg :child-visible
+ :type boolean)
+ (width-request
+ :merge t :unbound -1)
+ (height-request
+ :merge t :unbound -1)))
+
+ ("GtkContainer"
+ :slots
+ ((child :ignore t)
+ (children
+ :allocation :virtual
+ :getter container-children
+ :setter (setf container-children)
+ ;; The following doesn't work because gtk_container_get_children doesn't
+ ;; increase the reference count of the children
+; :getter "gtk_container_get_children"
+; :reader container-children
+; :type (glist widget)
+ )
+ (child-type
+ :allocation :virtual
+ :getter "gtk_container_child_type"
+ :reader container-child-type
+ :type gtype)
+ (focus-child
+ :allocation :virtual
+ :getter "gtk_container_get_focus_child"
+ :setter "gtk_container_set_focus_child"
+ :accessor container-focus-child
+ :initarg :focus-child
+ :type widget)
+ (focus-chain
+ :allocation :virtual
+ :getter container-focus-chain
+ :setter (setf container-focus-chain))
+ (focus-hadjustment
+ :allocation :virtual
+ :getter "gtk_container_get_focus_hadjustment"
+ :setter "gtk_container_set_focus_hadjustment"
+ :accessor container-focus-hadjustment
+ :initarg :focus-hadjustment
+ :type adjustment)
+ (focus-vadjustment
+ :allocation :virtual
+ :getter "gtk_container_get_focus_vadjustment"
+ :setter "gtk_container_set_focus_vadjustment"
+ :accessor container-focus-vadjustment
+ :initarg :focus-vadjustment
+ :type adjustment)
+ (reallocate-redraws
+ :allocation :virtual
+ :getter "gtk_container_get_reallocate_redraws"
+ :setter "gtk_container_set_reallocate_redraws"
+ :accessor container-reallocate-redraws
+ :initarg :reallocate-redraws
+ :type boolean)))
+
+ ("GtkBin"
+ :slots
+ ((child
+ :allocation :virtual
+ :getter "gtk_bin_get_child"
+ :setter (setf bin-child)
+ :reader bin-child
+ :type widget)))
+
+ ("GtkWindow"
+ :slots
+ ((focus-widget
+ :allocation :virtual
+ :getter "gtk_window_get_focus"
+ :setter "gtk_window_set_focus"
+ :accessor window-focus-widget
+ :initarg :focus-widget
+ :type widget)
+ (default-widget
+ :allocation :virtual
+ :getter "gtk_window_get_default"
+ :setter "gtk_window_set_default"
+ :accessor window-default-widget
+ :initarg :default-widget
+ :type widget)
+ (has-frame
+ :allocation :virtual
+ :getter "gtk_window_get_has_frame"
+ :setter "gtk_window_set_has_frame"
+ :accessor window-has-frame-p
+ :initarg :has-frame
+ :type boolean)
+ (icon-list
+ :allocation :virtual
+ :getter %window-get-icon-list
+ :setter "gtk_window_set_icon_list"
+ :accessor window-icon-list
+ :initarg :icon-list
+ :type (glist gdk:pixbuf))
+ (mnemonic-modifier
+ :allocation :virtual
+ :getter "gtk_window_get_mnemonic_modifier"
+ :setter "gtk_window_set_mnemonic_modifier"
+ :accessor window-mnemonic-modifier
+ :initarg :mnemonic-modifier
+ :type gdk:modifier-type)
+ (transient-for
+ :allocation :virtual
+ :getter "gtk_window_get_transient_for"
+ :setter "gtk_window_set_transient_for"
+ :accessor window-transient-for
+ :initarg :transient-for
+ :type window)
+ (group
+ :allocation :virtual
+ :getter "gtk_window_get_group"
+ :setter (setf window-group)
+ :reader window-group
+ :initarg :group
+ :type window-group)
+ (default-width :merge t :unbound -1)
+ (default-height :merge t :unbound -1)))
+
+ ("GtkWindowGroup"
+ :slots
+ ((grabs
+ :allocation :alien
+ :accessor window-group-grabs
+ :type (gslist window))))
+
+ ("GtkTooltips"
+ :slots
+ ((enabled
+ :allocation :virtual
+ :getter "gtk_tooltips_get_enabled"
+ :setter (setf tooltips-enabled-p)
+ :reader tooltips-enabled-p
+ :initarg :enabled
+ :type boolean)))
+
+ ("GtkMenuItem"
+ :slots
+ ((label
+ :allocation :virtual
+ :getter menu-item-label
+ :setter (setf menu-item-label)
+ :type string)
+ (use-underline
+ :allocation :user-data
+ :initform nil
+ :initarg :use-underline
+ :accessor menu-item-use-underline-p)
+ (right-justified
+ :allocation :virtual
+ :getter "gtk_menu_item_get_right_justified"
+ :setter "gtk_menu_item_set_right_justified"
+ :accessor menu-item-right-justified-p
+ :initarg :right-justified
+ :type boolean)
+ (submenu
+ :allocation :virtual
+ :getter "gtk_menu_item_get_submenu"
+ :setter "gtk_menu_item_set_submenu"
+ :accessor menu-item-submenu
+ :initarg :submenu
+ :type widget)))
+
+ ("GtkMenuShell"
+ :slots
+ ((take-focus-p
+ :allocation :virtual
+ :getter "gtk_menu_shell_get_take_focus"
+ :setter "gtk_menu_shell_set_take_focus"
+ :accessor menu-shell-take-focus-p
+ :type boolean)))
+
+ ("GtkColorSelectionDialog"
+ :slots
+ ((colorsel
+ :allocation :alien
+ :reader color-selection-dialog-colorsel
+ :type widget)
+ (ok-button
+ :allocation :alien
+ :reader color-selection-dialog-ok-button
+ :type widget)
+ (cancel-button
+ :allocation :alien
+ :reader color-selection-dialog-cancel-button
+ :type widget)
+ (help-button
+ :allocation :alien
+ :reader color-selection-dialog-help-button
+ :type widget)))
+
+ ("GtkScrolledWindow"
+ :slots
+ (#-gtk2.8
+ (hscrollbar
+ :allocation :alien
+ :reader scrolled-window-hscrollbar
+ :type widget)
+ #-gtk2.8
+ (vscrollbar
+ :allocation :alien
+ :reader scrolled-window-vscrollbar
+ :type widget)
+ #+gtk2.8
+ (hscrollbar
+ :allocation :virtual
+ :getter "gtk_scrolled_window_get_hscrollbar"
+ :reader scrolled-window-hscrollbar
+ :type widget)
+ #+gtk2.8
+ (vscrollbar
+ :allocation :virtual
+ :getter "gtk_scrolled_window_get_hscrollbar"
+ :reader scrolled-window-vscrollbar
+ :type widget)))