chiark / gitweb /
Changed slots with :arg allocation to :param allocation
[clg] / gtk / gtktypes.lisp
index 8930390dd7f8e56d30cb5479bb42058c2569d67b..3195f97fabe3e402bc4825f25830cb8bbb173cae 100644 (file)
 ;; License along with this library; if not, write to the Free Software
 ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-;; $Id: gtktypes.lisp,v 1.2 2000-08-15 19:55:08 espen Exp $
+;; $Id: gtktypes.lisp,v 1.5 2001-01-28 14:21:04 espen Exp $
 
 
 
 (in-package "GTK")
 
 
-; (deftype color-type
-;   (enum
-;    :foreground
-;    :background
-;    :light
-;    :dark
-;    :mid
-;    :text
-;    :base
-;    :white
-;    :black))
+(deftype color-type ()
+  '(enum
+    :foreground
+    :background
+    :light
+    :dark
+    :mid
+    :text
+    :base
+    :white
+    :black))
 
 
-(defclass  style (gobject)
-  ()
+(defclass style (gobject)
+  ((white
+    :allocation :virtual
+    :location style-white
+    :initarg :white
+    :type gdk:color)
+   (black
+    :allocation :virtual
+    :location style-black
+    :initarg :black
+    :type gdk:color)
+   (font
+    :allocation :virtual
+    :location ("gtk_style_get_font" "gtk_style_set_font")
+    :accessor style-font
+    :initarg :font
+    :type gdk:font))
   (:metaclass gobject-class)
   (:alien-name "GtkStyle"))
 
@@ -49,11 +64,18 @@ (defclass accel-group (alien-object)
 (deftype accel-entry () 'pointer) ; internal?
 
 
-;; These types are actully a single linked lists of widgets. As long as
-;; we don't have to access the individual widgets defining them this way
-;; is adequate and most efficient.
-(deftype radio-button-group () 'pointer) 
-(deftype radio-menu-item-group () 'pointer)
+
+;; Forward declaration of widget and container
+(defclass widget (object)
+  ()
+  (:metaclass object-class)
+  (:alien-name "GtkWidget"))
+
+(defclass container (widget)
+  ()
+  (:metaclass widget-class)
+  (:alien-name "GtkContainer"))
+
 
 
 (defclass data (object)
@@ -113,31 +135,143 @@ (defclass tooltips (data)
   (:alien-name "GtkTooltips"))
 
 
-;; Forward declaration, the real definition is in gtkwidget.lisp
 (defclass widget (object)
-  ()
+  ((child-slots
+    :allocation :instance
+    :accessor widget-child-slots
+    :type container-child)
+   (name
+    :allocation :param
+    :accessor widget-name
+    :initarg :name
+    :type string)
+   (parent
+    :allocation :param
+    :accessor widget-parent
+;   :initarg :parent
+    :type container)
+   (x
+    :allocation :param
+    :accessor widget-x-position
+    :initarg :x
+    :type int)
+   (y
+    :allocation :param
+    :accessor widget-y-position
+    :initarg :y
+    :type int)
+   (width
+    :allocation :param
+    :accessor widget-width
+    :initarg :width
+    :type int)
+   (height
+    :allocation :param
+    :accessor widget-height
+    :initarg :height
+    :type int)
+   (visible
+    :allocation :param
+    :accessor widget-visible-p
+    :initarg :visible
+    :type boolean)
+   (sensitive
+    :allocation :param
+    :accessor widget-sensitive-p
+    :initarg :sensitive
+    :type boolean)
+   (app-paintable
+    :allocation :param
+    :reader widget-app-paintable-p
+    :type boolean)
+   (can-focus
+    :allocation :param
+    :accessor widget-can-focus-p
+    :initarg :can-focus
+    :type boolean)
+   (has-focus
+    :allocation :param
+    :accessor widget-has-focus-p
+    :initarg :has-focus
+    :type boolean)
+   (can-default
+    :allocation :param
+    :accessor widget-can-default-p
+    :initarg :can-default
+    :type boolean)
+   (has-default
+    :allocation :param
+    :accessor widget-has-default-p
+    :initarg :has-default
+    :type boolean)
+   (receives-default
+    :allocation :param
+    :accessor widget-receives-default-p
+    :initarg :receives-default
+    :type boolean)
+   (composite-child
+    :allocation :param
+    :accessor widget-composite-child-p
+    :initarg :composite-child
+    :type boolean)
+   (style
+    :allocation :param
+    :accessor widget-style
+    :initarg :style
+    :type style)
+   (events
+    :allocation :param
+    :accessor widget-events
+    :initarg :events
+    :type gdk:event-mask)
+   (extension-events
+    :allocation :param
+    :accessor widget-extension-events
+    :initarg :extpension-events
+    :type gdk:event-mask)
+   (state
+    :allocation :virtual
+    :location ("gtk_widget_get_state" "gtk_widget_set_state")
+    :accessor widget-state
+    :initarg :state
+    :type state-type)
+   (window
+    :allocation :virtual
+    :location "gtk_widget_get_window"
+    :reader widget-window
+    :type gdk:window)
+   (colormap
+    :allocation :virtual
+    :location "gtk_widget_get_colormap"
+    :reader widget-colormap
+    :type gdk:colormap)
+   (visual
+    :allocation :virtual
+    :location "gtk_widget_get_visual"
+    :reader widget-visual
+    :type gdk:visual))
   (:metaclass object-class)
   (:alien-name "GtkWidget"))
 
 
 (defclass misc (widget)
   ((xalign
-    :allocation :arg
+    :allocation :param
     :accessor misc-xalign
     :initarg :xalign
     :type single-float)
    (yalign
-    :allocation :arg
+    :allocation :param
     :accessor misc-yalign
     :initarg :yalign
     :type single-float)
    (xpad
-    :allocation :arg
+    :allocation :param
     :accessor misc-xpad
     :initarg :xpad
     :type int)
    (ypad
-    :allocation :arg
+    :allocation :param
     :accessor misc-ypad
     :initarg :ypad
     :type int))
@@ -147,22 +281,22 @@ (defclass misc (widget)
 
 (defclass label (misc)
   ((label
-    :allocation :arg
+    :allocation :param
     :accessor label-label
     :initarg :label
     :type string)
    (pattern
-    :allocation :arg
+    :allocation :param
     :accessor label-pattern
     :initarg :pattern
     :type string)
    (justify
-    :allocation :arg
+    :allocation :param
     :accessor label-justify
     :initarg :justify
     :type justification)
    (wrap
-    :allocation :arg
+    :allocation :param
     :accessor label-line-wrap-p
     :initarg :wrap
     :type boolean))
@@ -172,10 +306,10 @@ (defclass label (misc)
 
 (defclass accel-label (label)
   ((widget
-    :allocation :arg
+    :allocation :param
     :location "GtkAccelLabel::accel_widget"
-    :accessor accel-widget
-    :initarg :widget
+    :accessor accel-label-accel-widget
+    :initarg :accel-widget
     :type widget)
    (width
     :allocation :virtual
@@ -188,22 +322,22 @@ (defclass accel-label (label)
 
 (defclass tips-query (label)
   ((emit-always
-    :allocation :arg
+    :allocation :param
     :accessor tips-query-emit-always-p
     :initarg :emit-always
     :type boolean)
    (caller
-    :allocation :arg
+    :allocation :param
     :accessor tips-query-caller
     :initarg :caller
     :type widget)
    (label-inactive
-    :allocation :arg
+    :allocation :param
     :accessor tips-query-label-inactive
     :initarg :label-inactive
     :type string)
    (label-no-tip
-    :allocation :arg
+    :allocation :param
     :accessor tips-query-label-no-tip
     :initarg :label-no-tip
     :type string))
@@ -213,12 +347,12 @@ (defclass tips-query (label)
 
 (defclass arrow (misc)
   ((arrow-type
-    :allocation :arg
+    :allocation :param
     :accessor arrow-arrow-type
     :initarg :arrow-type
     :type arrow-type)
    (shadow-type
-    :allocation :arg
+    :allocation :param
     :accessor arrow-shadow-type
     :initarg :shadow-type
     :type shadow-type))
@@ -233,14 +367,49 @@ (defclass image (misc)
 
 
 (defclass pixmap (misc)
-  ()
+  ((source
+    :allocation :virtual
+    :location pixmap-source)
+   (mask
+    :allocation :virtual
+    :location pixmap-mask
+    :type gdk:bitmap))
   (:metaclass widget-class)
   (:alien-name "GtkPixmap"))
 
 
-;; Forward declaration, the real definition is in gtkcontainer.lisp
 (defclass container (widget)
-  ()
+  ((border-width
+    :allocation :param
+    :accessor container-border-width
+    :initarg :border-width
+    :type unsigned-long)
+   (resize-mode
+    :allocation :param
+    :accessor container-resize-mode
+    :initarg :resize-mode
+    :type resize-mode)
+   (children
+    :allocation :virtual
+    :location container-children)
+   (focus-child
+    :allocation :virtual
+    :location ("gtk_container_get_focus_child" "gtk_container_set_focus_child")
+    :accessor container-focus-child
+    :initarg :focus-child
+    :type widget)
+   (focus-hadjustment
+    :allocation :virtual
+    :location (nil "gtk_container_set_focus_hadjustment")
+    :writer (setf container-focus-hadjustment)
+    :initarg :focus-hadjustment
+    :type adjustment)   
+   (focus-vadjustment
+    :allocation :virtual
+    :location (nil "gtk_container_set_focus_vadjustment")
+    :writer (setf container-focus-vadjustment)
+    :initarg :focus-vadjustment
+    :type adjustment))
   (:metaclass widget-class)
   (:alien-name "GtkContainer"))
 
@@ -257,7 +426,6 @@ (defclass bin (container)
   ((child
     :allocation :virtual
     :location bin-child
-    :initarg :child
     :type widget))
   (:metaclass container-class)
   (:alien-name "GtkBin"))
@@ -267,22 +435,22 @@ (defclass bin-child (container-child))
 
 (defclass alignment (bin)
   ((xalign
-    :allocation :arg
+    :allocation :param
     :accessor alignment-xalign
     :initarg :xalign
     :type single-float)
    (yalign
-    :allocation :arg
+    :allocation :param
     :accessor alignment-yalign
     :initarg :yalign
     :type single-float)
    (xscale
-    :allocation :arg
+    :allocation :param
     :accessor alignment-xscale
     :initarg :xscale
     :type single-float)
    (yscale
-    :allocation :arg
+    :allocation :param
     :accessor alignment-yscale
     :initarg :yscale
     :type single-float))
@@ -294,22 +462,23 @@ (defclass alignment-child (bin-child))
 
 (defclass frame (bin)
   ((label
-    :allocation :arg
+    :allocation :virtual
+    :location ("gtk_frame_get_label" "gtk_frame_set_label")
     :accessor frame-label
     :initarg :label
     :type string)
    (label-xalign
-    :allocation :arg
+    :allocation :param
     :accessor frame-label-xalign
     :initarg :label-xalign
     :type single-float)
    (label-yalign
-    :allocation :arg
+    :allocation :param
     :accessor frame-label-yalign
     :initarg :label-yalign
     :type single-float)
    (shadow-type
-    :allocation :arg
+    :allocation :param
     :location "GtkFrame::shadow"
     :accessor frame-shadow-type
     :initarg :shadow-type
@@ -322,22 +491,22 @@ (defclass frame-child (bin-child))
 
 ; (defclass aspect-frame (frame)
 ;   ((xalign
-;     :allocation :arg
+;     :allocation :param
 ;     :accessor aspect-frame-xalign
 ;     :initarg :xalign
 ;     :type single-float)
 ;    (yalign
-;     :allocation :arg
+;     :allocation :param
 ;     :accessor aspect-frame-yalign
 ;     :initarg :yalign
 ;     :type single-float)
 ;    (ratio
-;     :allocation :arg
+;     :allocation :param
 ;     :accessor aspect-frame-ratio
 ;     :initarg :ratio
 ;     :type single-float)
 ;    (obey-child
-;     :allocation :arg
+;     :allocation :param
 ;     :accessor aspect-frame-obey-child-p
 ;     :initarg :obey-child
 ;     :type boolean))
@@ -349,36 +518,39 @@ (defclass frame-child (bin-child))
 
 (defclass button (bin)
   ((label
-    :allocation :arg
-    :accessor button-label
+    :allocation :param
     :initarg :label
     :type string)
    (relief
-    :allocation :arg
+    :allocation :param
     :accessor button-relief
     :initarg :relief
     :type relief-style))
   (:metaclass container-class)
   (:alien-name "GtkButton"))
 
-(defclass button-child (bin-child))
-  
+(defclass button-child (bin-child)
+  ()
+  (:metaclass child-class))
+
 
 (defclass toggle-button (button)
   ((active
-    :allocation :arg
+    :allocation :param
     :accessor toggle-button-active-p
     :initarg :active
     :type boolean)
    (draw-indicator
-    :allocation :arg
+    :allocation :param
     :accessor toggle-button-draw-indicator-p
     :initarg :draw-indicator
     :type boolean))
   (:metaclass container-class)
   (:alien-name "GtkToggleButton"))
 
-(defclass toggle-button-child (button-child))
+(defclass toggle-button-child (button-child)
+  ()
+  (:metaclass child-class))
 
 
 (defclass check-button (toggle-button)
@@ -386,19 +558,23 @@ (defclass check-button (toggle-button)
   (:metaclass container-class)
   (:alien-name "GtkCheckButton"))
 
-(defclass check-button-child (toggle-button-child))
+(defclass check-button-child (toggle-button-child)
+  ()
+  (:metaclass child-class))
 
 
 (defclass radio-button (check-button)
   ((group
-    :allocation :arg
-    :initarg :group
-;    :access :write-only
-    :type radio-button-group))
+    :allocation :virtual
+    :location ("gtk_radio_button_group")
+    :reader radio-button-group
+    :type (static (gslist widget))))
   (:metaclass container-class)
   (:alien-name "GtkRadioButton"))
 
-(defclass radio-button-child (check-button-child))
+(defclass radio-button-child (check-button-child)
+  ()
+  (:metaclass child-class))
   
 
 (defclass option-menu (button)
@@ -417,16 +593,25 @@ (defclass option-menu (button)
   (:metaclass container-class)
   (:alien-name "GtkOptionMenu"))
 
-(defclass option-menu-child (button-child))
+(defclass option-menu-child (button-child)
+  ()
+  (:metaclass child-class))
 
 
 (defclass item (bin)
   ()
   (:metaclass container-class)
-  (:alien-name "GtkOptionMenu"))
+  (:alien-name "GtkItem"))
 
-(defclass item-child (bin-child))
+(defclass item-child (bin-child)
+  ()
+  (:metaclass child-class))
 
+;; Forward declaration
+(defclass menu-item (item)
+  ()
+  (:metaclass container-class)
+  (:alien-name "GtkMenuItem"))
 
 (defclass menu-item (item)
   ((label
@@ -463,7 +648,9 @@ (defclass menu-item (item)
   (:metaclass container-class)
   (:alien-name "GtkMenuItem"))
   
-(defclass menu-item-child (item-child))
+(defclass menu-item-child (item-child)
+  ()
+  (:metaclass child-class))
 
   
 (defclass check-menu-item (menu-item)
@@ -484,19 +671,23 @@ (defclass check-menu-item (menu-item)
   (:metaclass container-class)
   (:alien-name "GtkCheckMenuItem"))
 
-(defclass check-menu-item-child (menu-item-child))
+(defclass check-menu-item-child (menu-item-child)
+  ()
+  (:metaclass child-class))
 
 
 (defclass radio-menu-item (check-menu-item)
   ((group
     :allocation :virtual
-    :location "gtk_radio_menu_item_group"
+    :location ("gtk_radio_menu_item_group")
     :reader radio-menu-item-group
-    :type radio-menu-item-group))
+    :type (static (gslist widget))))
   (:metaclass container-class)
   (:alien-name "GtkRadioMenuItem"))
 
-(defclass radio-menu-item-child (check-menu-item-child))
+(defclass radio-menu-item-child (check-menu-item-child)
+  ()
+  (:metaclass child-class))
 
 
 (defclass tearoff-menu-item (menu-item)
@@ -504,7 +695,9 @@ (defclass tearoff-menu-item (menu-item)
   (:metaclass container-class)
   (:alien-name "GtkTearoffMenuItem"))
 
-(defclass tearoff-menu-item-child (menu-item-child))
+(defclass tearoff-menu-item-child (menu-item-child)
+  ()
+  (:metaclass child-class))
 
 
 (defclass list-item (item)
@@ -512,7 +705,9 @@ (defclass list-item (item)
   (:metaclass container-class)
   (:alien-name "GtkListItem"))
 
-(defclass list-item-child (item-child))
+(defclass list-item-child (item-child)
+  ()
+  (:metaclass child-class))
   
 
 ;; deprecated
@@ -524,87 +719,148 @@ (defclass tree-item (item)
   (:metaclass container-class)
   (:alien-name "GtkTreeItem"))
 
-(defclass tree-item-child (item-child))
+(defclass tree-item-child (item-child)
+  ()
+  (:metaclass child-class))
 
 
 (defclass window (bin)
   ((type
-    :allocation :arg
+    :allocation :param
     :accessor window-type
     :initarg :type
     :type window-type)
    (title
-    :allocation :arg
+    :allocation :param
     :accessor window-title
     :initarg :title
     :type string)
    (auto-shrink
-    :allocation :arg
+    :allocation :param
     :accessor window-auto-shrink-p
     :initarg :auto-shrink
     :type boolean)
    (allow-shrink
-    :allocation :arg
+    :allocation :param
     :accessor window-allow-shrink-p
     :initarg :allow-shrink
     :type boolean)
    (allow-grow
-    :allocation :arg
+    :allocation :param
     :accessor window-allow-grow-p
     :initarg :allow-grow
     :type boolean)
    (modal
-    :allocation :arg
+    :allocation :param
     :accessor window-modal-p
     :initarg :modal
     :type boolean)
    (position
-    :allocation :arg
+    :allocation :param
     :location "GtkWindow::window_position"
     :accessor window-position
     :initarg :position
     :type window-position)
    (default-width
-    :allocation :arg
+    :allocation :param
     :accessor window-default-width
     :initarg :default-width
     :type int)
    (default-height
-    :allocation :arg
+    :allocation :param
     :accessor window-default-height
     :initarg :default-height
     :type int))
   (:metaclass container-class)
   (:alien-name "GtkWindow"))
 
-(defclass window-child (bin-child))
+(defclass window-child (bin-child)
+  ()
+  (:metaclass child-class))
 
 
-; (defclass color-selection-dialog window
-;   :slots
-;   ;; slots not accessible through the arg mechanism
-;   ((colorsel               :read-only t :type widget)
-;    (main-vbox              :read-only t :type widget)
-;    (ok-button              :read-only t :type widget)
-;    (reset-button           :read-only t :type widget)
-;    (cancel-button          :read-only t :type widget)
-;    (help-button            :read-only t :type widget)))
-
-; (defclass dialog window
-;   :slots
-;   ;; slots not accessible through the arg mechanism
-;   ((action-area            :read-only t :type widget)
-;    (vbox                   :read-only t :type widget)))
+(defclass dialog (window)
+  ((main-box
+    :allocation :alien
+    :reader dialog-main-box
+    :type widget)
+   (action-area
+    :allocation :alien
+    :reader dialog-action-area
+    :type widget))
+  (:metaclass container-class)
+  (:alien-name "GtkDialog"))
+
+(defclass dialog-child (window-child)
+  ()
+  (:metaclass child-class))
 
-; (defclass input-dialog dialog)
 
-; (defclass file-selection window
-;   :slots
-;   ;; slots not accessible through the arg mechanism
-;   ((filename               :type string)
-;    (action-area            :read-only t :type widget)
-;    (ok-button              :read-only t :type widget)
-;    (cancel-button          :read-only t :type widget)))
+(defclass color-selection-dialog (dialog)
+  ((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))
+  (:metaclass container-class)
+  (:alien-name "GtkColorSelectionDialog"))
+
+(defclass color-selection-dialog-child (dialog-child)
+  ()
+  (:metaclass child-class))
+
+
+(defclass input-dialog (dialog)
+  ()
+  (:metaclass container-class)
+  (:alien-name "GtkInputDialog"))
+
+(defclass input-dialog-child (dialog-child)
+  ()
+  (:metaclass child-class))
+
+
+(defclass file-selection (window)
+  ((filename
+    :allocation :virtual
+    :location ("gtk_file_selection_get_filename"
+              "gtk_file_selection_set_filename")
+    :accessor file-selection-filename
+    :initarg :filename
+    :type string)
+    (action-area
+     :allocation :virtual
+     :location "gtk_file_selection_get_action_area"
+     :reader file-selection-action-area
+     :type widget)
+    (ok-button
+     :allocation :virtual
+     :location "gtk_file_selection_get_ok_button"
+     :reader file-selection-ok-button
+     :type widget)
+    (cancel-button
+     :allocation :virtual
+     :location "gtk_file_selection_get_cancel_button"
+     :reader file-selection-cancel-button
+     :type widget))
+  (:metaclass container-class)
+  (:alien-name "GtkFileSelection"))
+
+(defclass file-selection-child (window-child)
+  ()
+  (:metaclass child-class))
+
 
 ; (defclass plug window)
 
@@ -621,18 +877,18 @@ (defclass event-box-child (bin-child)
 
 (defclass handle-box (bin)
   ((shadow-type
-    :allocation :arg
+    :allocation :param
     :location "GtkHandleBox::shadow"
     :accessor handle-box-shadow-type
     :initarg :shadow-type
     :type shadow-type)   
    (handle-position
-    :allocation :arg
+    :allocation :param
     :accessor handle-box-handle-position
     :initarg :handle-position
     :type position-type)
    (snap-edge
-    :allocation :arg
+    :allocation :param
     :accessor handle-box-snap-edge
     :initarg :snap-edge
     :type position-type))
@@ -646,33 +902,33 @@ (defclass handle-box-child (bin-child)
 
 (defclass scrolled-window (bin)
   ((hadjustment
-    :allocation :arg
+    :allocation :param
     :accessor scrolled-window-hadjustment
     :initarg :hadjustment
     :type adjustment)   
    (vadjustment
-    :allocation :arg
+    :allocation :param
     :accessor scrolled-window-vadjustment
     :initarg :vadjustment
     :type adjustment)
    (hscrollbar-policy
-    :allocation :arg
+    :allocation :param
     :accessor scrolled-window-hscrollbar-policy
     :initarg :hscrollbar-policy
     :type policy-type)
    (vscrollbar-policy
-    :allocation :arg
+    :allocation :param
     :accessor scrolled-window-vscrollbar-policy
     :initarg :vscrollbar-policy
     :type policy-type)
    (placement
-    :allocation :arg
+    :allocation :param
     :location "GtkScrolledWindow::window_placement"
     :accessor scrolled-window-placement
     :initarg :placement
     :type corner-type)
    (shadow-type
-    :allocation :arg
+    :allocation :param
     :location "GtkScrolledWindow::shadow"
     :accessor scrolled-window-shadow-type
     :initarg :shadow-type
@@ -697,17 +953,17 @@ (defclass scrolled-window-child (bin-child)
 
 (defclass viewport (bin)
   ((hadjustment
-    :allocation :arg
+    :allocation :param
     :accessor viewport-hadjustment
     :initarg :hadjustment
     :type adjustment)   
    (vadjustment
-    :allocation :arg
+    :allocation :param
     :accessor viewport-vadjustment
     :initarg :vadjustment
     :type adjustment)
    (shadow-type
-    :allocation :arg
+    :allocation :param
     :accessor viewport-shadow-type
     :initarg :shadow-type
     :type shadow-type))
@@ -721,12 +977,12 @@ (defclass viewport-child (bin-child)
 
 (defclass box (container)
   ((spacing
-    :allocation :arg
+    :allocation :param
     :accessor box-spacing
     :initarg :spacing
     :type int)
    (homogeneous
-    :allocation :arg
+    :allocation :param
     :accessor box-homogeneous-p
     :initarg :homogeneous
     :type boolean))
@@ -767,11 +1023,34 @@ (defclass button-box (box)
     :allocation :virtual
     :location ("gtk_button_box_get_spacing" "gtk_button_box_set_spacing")
     :accessor button-box-spacing
+    :initarg :spacing
+    :type int)
+   (child-min-width
+    :allocation :alien
+    :offset #.(size-of 'int)
+    :accessor button-box-child-min-width
+    :initarg :child-min-width
+    :type int)
+   (child-min-height
+    :allocation :alien
+    :accessor button-box-child-min-height
+    :initarg :child-min-height
+    :type int)
+   (child-ipad-x
+    :allocation :alien
+    :accessor button-box-child-ipad-x
+    :initarg :child-ipad-x
+    :type int)
+   (child-ipad-y
+    :allocation :alien
+    :accessor button-box-child-ipad-y
+    :initarg :child-ipad-y
     :type int)
    (layout
     :allocation :virtual
     :location ("gtk_button_box_get_layout" "gtk_button_box_set_layout")
     :accessor button-box-layout
+    :initarg :layout
     :type button-box-style))
   (:metaclass container-class)
   (:alien-name "GtkButtonBox"))
@@ -811,16 +1090,36 @@ (defclass vbox-child (box-child)
   (:metaclass child-class))
 
 
-; (defclass color-selection vbox
-;   :slots
-;   ((policy                 :c-writer "gtk_color_selection_set_update_policy"
-;                         :read-method :arg :type update-type)
-;    (use-opacity            :c-writer "gtk_color_selection_set_opacity"
-;                         :read-method :arg :type boolean)
-;    ;; slots not accessible through the arg mechanism
-;    (color                  :access-method :lisp)))
+(defclass color-selection (vbox)
+  ((use-opacity
+    :allocation :virtual
+    :location ("gtk_color_selection_get_use_opacity"
+              "gtk_color_selection_set_use_opacity")
+    :accessor color-selection-use-opacity-p
+    :initarg :use-opacity
+    :type boolean)
+   (use-palette
+    :allocation :virtual
+    :location ("gtk_color_selection_get_use_palette"
+              "gtk_color_selection_set_use_palette")
+    :accessor color-selection-use-palette-p
+    :initarg :use-palette
+    :type boolean)
+   (color
+    :allocation :virtual
+    :location color-selection-color
+    :initarg :color)
+   (old-color
+    :allocation :virtual
+    :location color-selection-old-color
+    :initarg :old-color
+    :type (vector double-float 4)))
+  (:metaclass container-class)
+  (:alien-name "GtkColorSelection"))
 
-; (defclass gamma-curve vbox)
+(defclass color-selection-child (vbox-child)
+  ()
+  (:metaclass child-class))
 
 
 (defclass hbox (box)
@@ -842,41 +1141,6 @@ (defclass statusbar-child (hbox-child)
   ()
   (:metaclass child-class))
 
-;; CList and CTree is deprecated
-; (defclass clist container
-;   :c-name "GtkCList"
-;   :c-prefix "gtk_clist_"
-;   :slots
-;   ((n-columns              :read-only t :initarg t :access-method :arg
-;                         :type unsigned-int)
-;    (shadow-type            :read-method :arg :type shadow-type)
-;    (selection-mode         :read-method :arg :type selection-mode)
-;    (row-height             :read-method :arg :type unsigned-int)
-;    (reorderable            :read-method :arg :type boolean)
-;    (titles-visible         :write-method :lisp :type boolean)
-;    (titles-active          :access-method :arg :type boolean)
-;    (use-drag-icons         :read-method :arg :type boolean)
-;    (sort-type              :read-method :arg :type sort-type)
-;    ;; slots not accessible through the arg mechanism
-;    (hadjustment            :type adjustment)
-;    (vadjustment            :type adjustment)
-;    (sort-column            :type int)
-;    (focus-row              :reader %clist-focus-row :read-only t :type int)
-;    (n-rows                 :read-only t :type int)))
-
-; (defclass ctree clist
-;   :c-name "GtkCTree"
-;   :c-prefix "gtk_ctree_"
-;   :slots
-;   ((n-columns              :read-only t :initarg t :access-method :arg
-;                         :type unsigned-int)
-;    (tree-column            :read-only t :initarg t :access-method :arg
-;                         :type unsigned-int)
-;    (indent                 :read-method :arg :type unsigned-int)
-;    (spacing                :read-method :arg :type unsigned-int)
-;    (show-stub              :read-method :arg :type boolean)
-;    (line-style             :read-method :arg :type ctree-line-style)
-;    (expander-style         :read-method :arg :type ctree-expander-style)))
 
 (defclass fixed (container)
   ()
@@ -890,52 +1154,52 @@ (defclass fixed-child (container-child)
 
 (defclass notebook (container)
   ((tab-pos
-    :allocation :arg
+    :allocation :param
     :accessor notebook-tab-pos
     :initarg :tab-pos
     :type position-type)
    (show-tabs
-    :allocation :arg
+    :allocation :param
     :accessor notebook-show-tabs-p
     :initarg :show-tabs
     :type boolean)
    (show-border
-    :allocation :arg
+    :allocation :param
     :accessor notebook-show-border-p
     :initarg :show-border
     :type boolean)
    (scrollable
-    :allocation :arg
+    :allocation :param
     :accessor notebook-scrollable-p
     :initarg :scrollable
     :type boolean)
    (tab-border
-    :allocation :arg
+    :allocation :param
     :accessor notebook-tab-border
     :initarg :tab-border
     :type unsigned-int)
    (tab-hborder
-    :allocation :arg
+    :allocation :param
     :accessor notebook-tab-hborder
     :initarg :tab-hborder
     :type unsigned-int)
    (tab-vborder
-    :allocation :arg
+    :allocation :param
     :accessor notebook-tab-vborder
     :initarg :tab-vborder
     :type unsigned-int)
    (page
-    :allocation :arg
+    :allocation :param
     :accessor notebook-page
     :initarg :page
     :type int)
    (enable-popup
-    :allocation :arg
+    :allocation :param
     :accessor notebook-enable-popup-p
     :initarg :enable-popup
     :type boolean)
    (homogeneous
-    :allocation :arg
+    :allocation :param
     :accessor notebook-homogeneous-p
     :initarg :homogeneous
     :type boolean))
@@ -983,7 +1247,7 @@ (defclass font-selection-child (notebook-child)
 
 (defclass paned (container)
   ((handle-size
-    :allocation :arg
+    :allocation :param
     :accessor paned-handle-size
     :initarg handle-size
     :type unsigned-int)
@@ -992,7 +1256,17 @@ (defclass paned (container)
     :location ("gtk_paned_get_position" "gtk_paned_set_position")
     :accessor paned-position
     :initarg :position
-    :type int))
+    :type int)
+   (child1
+    :allocation :virtual
+    :location paned-child1
+    :initarg :child1
+    :type widget)
+   (child2
+    :allocation :virtual
+    :location paned-child2
+    :initarg :child2
+    :type widget))
   (:metaclass container-class)
   (:alien-name "GtkPaned"))
 
@@ -1033,7 +1307,26 @@ (defclass layout (container)
     :location ("gtk_layout_get_vadjustment" "gtk_layout_set_vadjustment")
     :accessor layout-vadjustment
     :initarg :vadjustment
-    :type adjustment))
+    :type adjustment)
+   (x-size
+    :allocation :virtual
+    :location layout-x-size
+    :initarg :x-size)
+   (y-size
+    :allocation :virtual
+    :location layout-y-size
+    :initarg :y-size)
+   (x-offset
+    :allocation :alien
+    :offset #.(+ (size-of 'pointer) (* (size-of 'int) 2))
+    :accessor layout-x-offset
+    :initarg :x-offset
+    :type unsigned-int)
+   (y-offset
+    :allocation :alien
+    :accessor layout-y-offset
+    :initarg :y-offset
+    :type unsigned-int))
   (:metaclass container-class)
   (:alien-name "GtkLayout"))
 
@@ -1062,7 +1355,7 @@ (defclass menu-shell-child (container-child)
 
 (defclass menu-bar (menu-shell)
   ((shadow-type
-    :allocation :arg
+    :allocation :param
     :location "GtkMenuBar::shadow"
     :accessor menu-bar-shadow-type
     :initarg :shadow-type
@@ -1104,32 +1397,32 @@ (defclass menu-child (menu-shell-child)
 
 (defclass packer (container)
   ((spacing
-    :allocation :arg
+    :allocation :param
     :accessor packer-spacing
     :initarg :spacing
     :type unsigned-int)
    (default-border-width
-    :allocation :arg
+    :allocation :param
     :accessor packer-default-border-width
     :initarg :default-border-width
     :type unsigned-int)
    (default-pad-x
-    :allocation :arg
+    :allocation :param
     :accessor packer-default-pad-x
     :initarg :default-pad-x
     :type unsigned-int)
    (default-pad-y
-    :allocation :arg
+    :allocation :param
     :accessor packer-default-pad-y
     :initarg :default-pad-y
     :type unsigned-int)
    (default-ipad-x
-    :allocation :arg
-    :accessor packer-default-ipad-y
-    :initarg :default-ipad-y
+    :allocation :param
+    :accessor packer-default-ipad-x
+    :initarg :default-ipad-x
     :type unsigned-int)
    (default-ipad-y
-    :allocation :arg
+    :allocation :param
     :accessor packer-default-ipad-y
     :initarg :default-ipad-y
     :type unsigned-int))
@@ -1205,29 +1498,29 @@ (defclass packer-child (container-child)
 
 (defclass table (container)
   ((rows
-    :allocation :arg
+    :allocation :param
     :location "GtkTable::n_rows"
     :accessor table-rows
     :initarg :rows
     :type unsigned-int)
    (columns
-    :allocation :arg
+    :allocation :param
     :location "GtkTable::n_columns"
     :accessor table-columns
     :initarg :columns
     :type unsigned-int)
    (row-spacing
-    :allocation :arg
-    :accessor table-row-spacing
+    :allocation :param
+    :accessor table-default-row-spacing
     :initarg :row-spacing
     :type unsigned-int)
    (column-spacing
-    :allocation :arg
-    :accessor table-column-spacing
+    :allocation :param
+    :accessor table-default-column-spacing
     :initarg :column-spacing
     :type unsigned-int)
    (homogeneous
-    :allocation :arg
+    :allocation :param
     :accessor table-homogeneous-p
     :initarg :homogeneous
     :type boolean))
@@ -1311,27 +1604,27 @@ (defclass table-child (container-child)
 
 (defclass toolbar (container)
   ((orientation
-    :allocation :arg
+    :allocation :param
     :accessor toolbar-orientation
     :initarg :orientation
     :type orientation)
    (toolbar-style
-    :allocation :arg
+    :allocation :param
     :accessor toolbar-style
     :initarg :toolbar-style
     :type toolbar-style)
    (space-size
-    :allocation :arg
+    :allocation :param
     :accessor toolbar-space-size
     :initarg :space-size
     :type unsigned-int)
    (space-style
-    :allocation :arg
+    :allocation :param
     :accessor toolbar-space-style
     :initarg :space-style
     :type toolbar-space-style)
    (relief
-    :allocation :arg
+    :allocation :param
     :accessor toolbar-relief
     :initarg :relief
     :type relief-style)
@@ -1383,20 +1676,20 @@ (defclass drawing-area (widget)
 
 (defclass editable (widget)
   ((position
-    :allocation :arg
+    :allocation :param
     :location "GtkEditable::text_position"
     :accessor ediatable-position
     :initarg :position
     :type int)
    (editable
-    :allocation :arg
-    :accessor ediatable-editable-p
-    :initarg :editabe
+    :allocation :param
+    :accessor editable-editable-p
+    :initarg :editable
     :type boolean)
    (text
     :allocation :virtual
     :location editable-text
-    :initarg text
+    :initarg :text
     :type string))
   (:metaclass widget-class)
   (:alien-name "GtkEditable"))
@@ -1404,12 +1697,12 @@ (defclass editable (widget)
   
 (defclass entry (editable)
   ((max-length
-    :allocation :arg
+    :allocation :param
     :accessor entry-max-length
     :initarg :max-length
     :type unsigned-int)
    (visible
-    :allocation :arg
+    :allocation :param
     :location "GtkEntry::visibility"
     :accessor entry-visible-p
     :initarg :visible
@@ -1449,47 +1742,47 @@ (defclass combo (hbox)
 
 (defclass spin-button (entry)
   ((adjustment
-    :allocation :arg
+    :allocation :param
     :accessor spin-button-adjustment
     :initarg :adjustment
     :type adjustment)
    (climb-rate
-    :allocation :arg
+    :allocation :param
     :accessor spin-button-climb-rate
     :initarg :climb-rate
     :type single-float)
    (digits
-    :allocation :arg
+    :allocation :param
     :accessor spin-button-digits
     :initarg :digits
     :type unsigned-int)
    (snap-to-ticks
-    :allocation :arg
+    :allocation :param
     :accessor spin-button-snap-to-ticks-p
     :initarg :snap-to-ticks
     :type boolean)
    (numeric
-    :allocation :arg
+    :allocation :param
     :accessor spin-button-numeric-p
     :initarg :numeric
     :type boolean)
    (wrap
-    :allocation :arg
+    :allocation :param
     :accessor spin-button-wrap-p
     :initarg :wrap
     :type boolean)
    (update-policy
-    :allocation :arg
+    :allocation :param
     :accessor spin-button-update-policy
     :initarg :update-policy
     :type spin-button-update-policy)
    (shadow-type
-    :allocation :arg
+    :allocation :param
     :accessor spin-button-shadow-type
     :initarg :shadow-type
     :type shadow-type)
    (value
-    :allocation :arg
+    :allocation :param
     :accessor spin-button-value
     :initarg :value
     :type single-float))
@@ -1510,22 +1803,22 @@ (defclass spin-button (entry)
 
 (defclass ruler (widget)
   ((lower
-    :allocation :arg
+    :allocation :param
     :accessor ruler-lower
     :initarg :lower
     :type single-float)
    (upper
-    :allocation :arg
+    :allocation :param
     :accessor ruler-upper
     :initarg :upper
     :type single-float)
    (position
-    :allocation :arg
+    :allocation :param
     :accessor ruler-position
     :initarg :position
     :type single-float)
    (max-size
-    :allocation :arg
+    :allocation :param
     :accessor ruler-max-size
     :initarg :max-size
     :type single-float)
@@ -1553,7 +1846,7 @@ (defclass vruler (ruler)
 
 (defclass range (widget)
   ((update-policy
-    :allocation :arg
+    :allocation :param
     :accessor range-update-policy
     :initarg :update-policy
     :type update-type)
@@ -1569,17 +1862,17 @@ (defclass range (widget)
 
 (defclass scale (range)
   ((digits
-    :allocation :arg
+    :allocation :param
     :accessor scale-digits
     :initarg :digits
-    :type unsigned-int)
+    :type int)
    (draw-value
-    :allocation :arg
+    :allocation :param
     :accessor scale-draw-value-p
     :initarg :draw-value
     :type boolean)
    (value-position
-    :allocation :arg
+    :allocation :param
     :location "GtkScale::value_pos"
     :accessor scale-value-position
     :initarg :value-position
@@ -1645,31 +1938,106 @@ (defclass vseparator (separator)
 ;   :slots
 ;   ((expand                 :read-method :arg :type boolean)))
 
-; (defclass progress widget
-;   :slots
-;   ((activity-mode          :read-method :arg :type boolean)
-;    (show-text              :read-method :arg :type boolean)
-;    (text-xalign            :access-method :arg :type single-float)
-;    (text-yalign            :access-method :arg :type single-float)
-;    ;; slots not accessible through the arg mechanism
-;    (format-string          :type string)
-;    (adjustment             :type adjustment)
-;    (percentage             :c-reader "gtk_progress_get_current_percentage"
-;                         :type single-float)
-;    (value                  :type single-float)
-;    (text                   :c-reader "gtk_progress_get_current_text"
-;                         :read-only t :type string)))
-
-; (defclass progress-bar progress
-;   :slots
-;   ((adjustment             :c-writer "gtk_progress_set_adjustment"
-;                         :read-method :arg :type adjustment)
-;    (orientation            :read-method :arg :type progress-bar-orientation)
-;    (bar-style              :read-method :arg :accessor progress-bar-style
-;                         :type progress-bar-style)
-;    (activity-step          :read-method :arg :type unsigned-int)
-;    (activity-blocks        :read-method :arg :type unsigned-int)
-;    (discrete-blocks        :read-method :arg :type unsigned-int)))
+(defclass progress (widget)
+  ((activity-mode
+    :allocation :param
+    :accessor progress-activity-mode-p
+    :initarg :activity-mode
+    :type boolean)   
+   (show-text
+    :allocation :param
+    :accessor progress-show-text-p
+    :initarg :show-text
+    :type boolean)
+   (text-xalign
+    :allocation :param
+    :accessor progress-text-xalign
+    :initarg :text-xalign
+    :type single-float)
+   (text-yalign
+    :allocation :param
+    :accessor progress-text-yalign
+    :initarg :text-yalign
+    :type single-float)
+   (format-string
+    :allocation :virtual
+    :location ("gtk_progress_get_format_string"
+              "gtk_progress_set_format_string")
+    :accessor progress-format-string
+    :initarg :format-string
+    :type string)
+   (adjustment
+    :allocation :virtual
+    :location ("gtk_progress_get_adjustment"
+              "gtk_progress_set_adjustment")
+    :accessor progress-adjustment
+    :initarg :adjustment
+    :type adjustment)
+   (percentage
+    :allocation :virtual
+    :location ("gtk_progress_get_current_percentage"
+              "gtk_progress_set_percentage")
+    :accessor progress-percentage
+    :initarg :percentage
+    :type single-float)
+   (value
+    :allocation :virtual
+    :location ("gtk_progress_get_value" "gtk_progress_set_value")
+    :accessor progress-value
+    :initarg :value
+    :type single-float)
+   (text
+    :allocation :virtual
+    :location ("gtk_progress_get_current_text")
+    :reader progress-text
+    :type string))
+  (:metaclass widget-class)
+  (:alien-name "GtkProgress"))
+  
+
+(defclass progress-bar (progress)
+  ((orientation
+    :allocation :param
+    :accessor progress-bar-orientation
+    :initarg :orientation
+    :type progress-bar-orientation)
+   (bar-style
+    :allocation :param
+    :accessor progress-bar-style
+    :initarg :bar-style
+    :type progress-bar-style)
+   (activity-step
+    :allocation :param
+    :accessor progress-bar-activity-step
+    :initarg :activity-step
+    :type unsigned-int)
+   (activity-blocks
+    :allocation :param
+    :accessor progress-bar-activity-blocks
+    :initarg :activity-blocks
+    :type unsigned-int)
+   (discrete-blocks
+    :allocation :param
+    :accessor progress-bar-discrete-blocks
+    :initarg :discrete-blocks
+    :type unsigned-int)
+   (fraction
+    :allocation :param
+    :accessor progress-bar-fraction
+    :initarg :fraction
+    :type single-float)
+   (pulse-step
+    :allocation :param
+    :accessor progress-bar-pulse-step
+    :initarg :pulse-step
+    :type single-float)
+   (text
+    :allocation :virtual
+    :location ("gtk_progress_get_current_text" "gtk_progress_bar_set_text")
+    :accessor progress-bar-text
+    :type string))
+  (:metaclass widget-class)
+  (:alien-name "GtkProgressBar"))
 
 ; (defclass item-factory object)