+ (modifier
+ :allocation :alien
+ :accessor stock-item-modifier
+ :initarg :modifier
+ :type gdk:modifier-type)
+ (keyval
+ :allocation :alien
+ :accessor stock-item-keyval
+ :initarg :keyval
+ :type int)
+ (translation-domain
+ :allocation :alien
+ :accessor stock-item-translation-domain
+ :initarg :translation-domain
+ :type string))
+ (:metaclass struct-class))
+
+;; We don't really need to access any of these slots, but we need to
+;; specify the size of the struct somehow
+(defclass tree-iter (boxed)
+ ((stamp :allocation :alien :type int)
+ (user-data :allocation :alien :type pointer)
+ (user-data2 :allocation :alien :type pointer)
+ (user-data3 :allocation :alien :type pointer))
+ (:metaclass boxed-class))
+
+
+;; (defclass tree-path (boxed)
+;; ((depth :allocation :alien :type int)
+;; (indices :allocation :alien :type pointer))
+;; (:metaclass boxed-class))
+
+(deftype tree-path () '(vector integer))
+(register-type 'tree-path "GtkTreePath")
+
+
+(define-types-by-introspection "Gtk"
+ ;; Manually defined
+ ("GtkObject" :ignore t)
+ ("GtkRequisition" :ignore t)
+ ("GtkBorder" :ignore t)
+ ("GtkTreeIter" :ignore t)
+ ("GtkTreePath" :ignore t)
+; ("GtkStyle" :ignore t)
+
+ ;; Manual override
+ ("GtkWidget"
+ :slots
+ ((child-slots
+ :allocation :instance
+ :accessor widget-child-slots
+ :type container-child)
+ (window
+ :allocation :virtual
+ :getter "gtk_widget_get_window"
+ :unbound nil
+ :reader widget-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"
+ :unbound nil
+ :initarg :colormap
+ :accessor widget-colormap
+ :type gdk:colormap)
+ (visual
+ :allocation :virtual
+ :getter "gtk_widget_get_visual"
+ :unbound nil
+ :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 string)
+ (settings
+ :allocation :virtual
+ :getter "gtk_widget_get_settings"
+ :unbound nil
+ :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))
+ (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)))
+
+ ("GtkBin"
+ :slots
+ ((child
+ :allocation :virtual
+ :getter "gtk_bin_get_child"
+ :setter (setf bin-child)
+ :reader bin-child
+ :type widget)))
+
+ ("GtkWindow"
+ :slots
+ ((gravity
+ :allocation :virtual
+ :getter "gtk_window_get_gravity"
+ :setter "gtk_window_set_gravity"
+ :accessor window-gravity
+ :initarg :gravity
+ :type gdk:gravity)
+ (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)
+ (decorated
+ :allocation :virtual
+ :getter "gtk_window_get_decorated"
+ :setter "gtk_window_set_decorated"
+ :accessor window-decorated-p
+ :initarg :decorated
+ :type boolean)
+ (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)
+ (role
+ :allocation :virtual
+ :getter "gtk_window_get_role"
+ :setter "gtk_window_set_role"
+ :accessor window-role
+ :initarg :role
+ :type string)
+ (type-hint
+ :allocation :virtual
+ :getter "gtk_window_get_type_hint"
+ :setter "gtk_window_set_type_hint"
+ :accessor window-type-hint
+ :initarg :type-hint
+ :type gdk:window-type-hint)
+ (icon
+ :allocation :virtual
+ :getter window-icon
+ :setter (setf window-icon)
+ :initarg :icon)
+ (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)))