chiark / gitweb /
More widgets made working, numerous improvements
[clg] / gtk / gtktypes.lisp
1 ;; Common Lisp bindings for GTK+ v2.0.x
2 ;; Copyright (C) 1999-2000 Espen S. Johnsen <espejohn@online.no>
3 ;;
4 ;; This library is free software; you can redistribute it and/or
5 ;; modify it under the terms of the GNU Lesser General Public
6 ;; License as published by the Free Software Foundation; either
7 ;; version 2 of the License, or (at your option) any later version.
8 ;;
9 ;; This library is distributed in the hope that it will be useful,
10 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
11 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 ;; Lesser General Public License for more details.
13 ;;
14 ;; You should have received a copy of the GNU Lesser General Public
15 ;; License along with this library; if not, write to the Free Software
16 ;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17
18 ;; $Id: gtktypes.lisp,v 1.4 2000-10-05 17:30:07 espen Exp $
19
20
21
22 (in-package "GTK")
23
24
25 (deftype color-type ()
26   '(enum
27     :foreground
28     :background
29     :light
30     :dark
31     :mid
32     :text
33     :base
34     :white
35     :black))
36
37
38 (defclass style (gobject)
39   ((white
40     :allocation :virtual
41     :location style-white
42     :initarg :white
43     :type gdk:color)
44    (black
45     :allocation :virtual
46     :location style-black
47     :initarg :black
48     :type gdk:color)
49    (font
50     :allocation :virtual
51     :location ("gtk_style_get_font" "gtk_style_set_font")
52     :accessor style-font
53     :initarg :font
54     :type gdk:font))
55   (:metaclass gobject-class)
56   (:alien-name "GtkStyle"))
57
58
59 (defclass accel-group (alien-object)
60   ()
61   (:metaclass alien-class)
62   (:alien-name "GtkAccelGroup"))
63
64 (deftype accel-entry () 'pointer) ; internal?
65
66
67
68 ;; Forward declaration of widget and container
69 (defclass widget (object)
70   ()
71   (:metaclass object-class)
72   (:alien-name "GtkWidget"))
73
74 (defclass container (widget)
75   ()
76   (:metaclass widget-class)
77   (:alien-name "GtkContainer"))
78
79
80
81 (defclass data (object)
82   ()
83   (:metaclass object-class)
84   (:alien-name "GtkData"))
85
86
87 (defclass adjustment (data)
88   ((lower
89     :allocation :alien
90     :accessor adjustment-lower
91     :initarg :lower
92     :type single-float)
93    (upper
94     :allocation :alien
95     :accessor adjustment-upper
96     :initarg :upper
97     :type single-float)
98    (value
99     :allocation :alien
100     :accessor adjustment-value
101     :initarg :value
102     :type single-float)
103    (step-increment
104     :allocation :alien
105     :accessor adjustment-step-increment
106     :initarg :step-increment
107     :type single-float)
108    (page-increment
109     :allocation :alien
110     :accessor adjustment-page-increment
111     :initarg :page-increment
112     :type single-float)
113    (page-size
114     :allocation :alien
115     :accessor adjustment-page-size
116     :initarg :page-size
117     :type single-float))
118   (:metaclass object-class)
119   (:alien-name "GtkAdjustment"))
120   
121
122 (defclass tooltips (data)
123   ((delay
124     :allocation :virtual
125     :location ("gtk_tooltips_get_delay" "gtk_tooltips_set_delay")
126     :accessor tooltips-delay
127     :type unsigned-int)
128    (enabled
129     :allocation :virtual
130     :location ("gtk_tooltips_get_enabled" (setf tooltips-enabled-p))
131     :reader tooltips-enabled-p
132     :initarg :enabled
133     :type boolean))
134   (:metaclass object-class)
135   (:alien-name "GtkTooltips"))
136
137
138 (defclass widget (object)
139   ((child-slots
140     :allocation :instance
141     :accessor widget-child-slots
142     :type container-child)
143    (name
144     :allocation :arg
145     :accessor widget-name
146     :initarg :name
147     :type string)
148    (parent
149     :allocation :arg
150     :accessor widget-parent
151 ;   :initarg :parent
152     :type container)
153    (x
154     :allocation :arg
155     :accessor widget-x-position
156     :initarg :x
157     :type int)
158    (y
159     :allocation :arg
160     :accessor widget-y-position
161     :initarg :y
162     :type int)
163    (width
164     :allocation :arg
165     :accessor widget-width
166     :initarg :width
167     :type int)
168    (height
169     :allocation :arg
170     :accessor widget-height
171     :initarg :height
172     :type int)
173    (visible
174     :allocation :arg
175     :accessor widget-visible-p
176     :initarg :visible
177     :type boolean)
178    (sensitive
179     :allocation :arg
180     :accessor widget-sensitive-p
181     :initarg :sensitive
182     :type boolean)
183    (app-paintable
184     :allocation :arg
185     :reader widget-app-paintable-p
186     :type boolean)
187    (can-focus
188     :allocation :arg
189     :accessor widget-can-focus-p
190     :initarg :can-focus
191     :type boolean)
192    (has-focus
193     :allocation :arg
194     :accessor widget-has-focus-p
195     :initarg :has-focus
196     :type boolean)
197    (can-default
198     :allocation :arg
199     :accessor widget-can-default-p
200     :initarg :can-default
201     :type boolean)
202    (has-default
203     :allocation :arg
204     :accessor widget-has-default-p
205     :initarg :has-default
206     :type boolean)
207    (receives-default
208     :allocation :arg
209     :accessor widget-receives-default-p
210     :initarg :receives-default
211     :type boolean)
212    (composite-child
213     :allocation :arg
214     :accessor widget-composite-child-p
215     :initarg :composite-child
216     :type boolean)
217    (style
218     :allocation :arg
219     :accessor widget-style
220     :initarg :style
221     :type style)
222    (events
223     :allocation :arg
224     :accessor widget-events
225     :initarg :events
226     :type gdk:event-mask)
227    (extension-events
228     :allocation :arg
229     :accessor widget-extension-events
230     :initarg :extpension-events
231     :type gdk:event-mask)
232    (state
233     :allocation :virtual
234     :location ("gtk_widget_get_state" "gtk_widget_set_state")
235     :accessor widget-state
236     :initarg :state
237     :type state-type)
238    (window
239     :allocation :virtual
240     :location "gtk_widget_get_window"
241     :reader widget-window
242     :type gdk:window)
243    (colormap
244     :allocation :virtual
245     :location "gtk_widget_get_colormap"
246     :reader widget-colormap
247     :type gdk:colormap)
248    (visual
249     :allocation :virtual
250     :location "gtk_widget_get_visual"
251     :reader widget-visual
252     :type gdk:visual))
253   (:metaclass object-class)
254   (:alien-name "GtkWidget"))
255
256
257 (defclass misc (widget)
258   ((xalign
259     :allocation :arg
260     :accessor misc-xalign
261     :initarg :xalign
262     :type single-float)
263    (yalign
264     :allocation :arg
265     :accessor misc-yalign
266     :initarg :yalign
267     :type single-float)
268    (xpad
269     :allocation :arg
270     :accessor misc-xpad
271     :initarg :xpad
272     :type int)
273    (ypad
274     :allocation :arg
275     :accessor misc-ypad
276     :initarg :ypad
277     :type int))
278   (:metaclass widget-class)
279   (:alien-name "GtkMisc"))
280
281
282 (defclass label (misc)
283   ((label
284     :allocation :arg
285     :accessor label-label
286     :initarg :label
287     :type string)
288    (pattern
289     :allocation :arg
290     :accessor label-pattern
291     :initarg :pattern
292     :type string)
293    (justify
294     :allocation :arg
295     :accessor label-justify
296     :initarg :justify
297     :type justification)
298    (wrap
299     :allocation :arg
300     :accessor label-line-wrap-p
301     :initarg :wrap
302     :type boolean))
303   (:metaclass widget-class)
304   (:alien-name "GtkLabel"))
305
306
307 (defclass accel-label (label)
308   ((widget
309     :allocation :arg
310     :location "GtkAccelLabel::accel_widget"
311     :accessor accel-label-accel-widget
312     :initarg :accel-widget
313     :type widget)
314    (width
315     :allocation :virtual
316     :location "gtk_accel_label_get_accel_width"
317     :reader width
318     :type unsigned-int))
319   (:metaclass widget-class)
320   (:alien-name "GtkAccelLabel"))
321
322
323 (defclass tips-query (label)
324   ((emit-always
325     :allocation :arg
326     :accessor tips-query-emit-always-p
327     :initarg :emit-always
328     :type boolean)
329    (caller
330     :allocation :arg
331     :accessor tips-query-caller
332     :initarg :caller
333     :type widget)
334    (label-inactive
335     :allocation :arg
336     :accessor tips-query-label-inactive
337     :initarg :label-inactive
338     :type string)
339    (label-no-tip
340     :allocation :arg
341     :accessor tips-query-label-no-tip
342     :initarg :label-no-tip
343     :type string))
344   (:metaclass widget-class)
345   (:alien-name "GtkTipsQuery"))
346
347
348 (defclass arrow (misc)
349   ((arrow-type
350     :allocation :arg
351     :accessor arrow-arrow-type
352     :initarg :arrow-type
353     :type arrow-type)
354    (shadow-type
355     :allocation :arg
356     :accessor arrow-shadow-type
357     :initarg :shadow-type
358     :type shadow-type))
359   (:metaclass widget-class)
360   (:alien-name "GtkArrow"))
361
362
363 (defclass image (misc)
364   ()
365   (:metaclass widget-class)
366   (:alien-name "GtkImage"))
367
368
369 (defclass pixmap (misc)
370   ((source
371     :allocation :virtual
372     :location pixmap-source)
373    (mask
374     :allocation :virtual
375     :location pixmap-mask
376     :type gdk:bitmap))
377   (:metaclass widget-class)
378   (:alien-name "GtkPixmap"))
379
380
381 (defclass container (widget)
382   ((border-width
383     :allocation :arg
384     :accessor container-border-width
385     :initarg :border-width
386     :type unsigned-long)
387    (resize-mode
388     :allocation :arg
389     :accessor container-resize-mode
390     :initarg :resize-mode
391     :type resize-mode)
392    (children
393     :allocation :virtual
394     :location container-children)
395    (focus-child
396     :allocation :virtual
397     :location ("gtk_container_get_focus_child" "gtk_container_set_focus_child")
398     :accessor container-focus-child
399     :initarg :focus-child
400     :type widget)
401    (focus-hadjustment
402     :allocation :virtual
403     :location (nil "gtk_container_set_focus_hadjustment")
404     :writer (setf container-focus-hadjustment)
405     :initarg :focus-hadjustment
406     :type adjustment)   
407    (focus-vadjustment
408     :allocation :virtual
409     :location (nil "gtk_container_set_focus_vadjustment")
410     :writer (setf container-focus-vadjustment)
411     :initarg :focus-vadjustment
412     :type adjustment))
413   (:metaclass widget-class)
414   (:alien-name "GtkContainer"))
415
416 (defclass container-child ()
417   ((parent
418     :initarg :parent
419     :type container)
420    (child
421     :initarg :child
422     :type widget)))
423
424
425 (defclass bin (container)
426   ((child
427     :allocation :virtual
428     :location bin-child
429     :type widget))
430   (:metaclass container-class)
431   (:alien-name "GtkBin"))
432
433 (defclass bin-child (container-child))
434
435
436 (defclass alignment (bin)
437   ((xalign
438     :allocation :arg
439     :accessor alignment-xalign
440     :initarg :xalign
441     :type single-float)
442    (yalign
443     :allocation :arg
444     :accessor alignment-yalign
445     :initarg :yalign
446     :type single-float)
447    (xscale
448     :allocation :arg
449     :accessor alignment-xscale
450     :initarg :xscale
451     :type single-float)
452    (yscale
453     :allocation :arg
454     :accessor alignment-yscale
455     :initarg :yscale
456     :type single-float))
457   (:metaclass container-class)
458   (:alien-name "GtkAlignment"))
459
460 (defclass alignment-child (bin-child))
461
462
463 (defclass frame (bin)
464   ((label
465     :allocation :virtual
466     :location ("gtk_frame_get_label" "gtk_frame_set_label")
467     :accessor frame-label
468     :initarg :label
469     :type string)
470    (label-xalign
471     :allocation :arg
472     :accessor frame-label-xalign
473     :initarg :label-xalign
474     :type single-float)
475    (label-yalign
476     :allocation :arg
477     :accessor frame-label-yalign
478     :initarg :label-yalign
479     :type single-float)
480    (shadow-type
481     :allocation :arg
482     :location "GtkFrame::shadow"
483     :accessor frame-shadow-type
484     :initarg :shadow-type
485     :type shadow-type))
486   (:metaclass container-class)
487   (:alien-name "GtkFrame"))
488
489 (defclass frame-child (bin-child))
490   
491
492 ; (defclass aspect-frame (frame)
493 ;   ((xalign
494 ;     :allocation :arg
495 ;     :accessor aspect-frame-xalign
496 ;     :initarg :xalign
497 ;     :type single-float)
498 ;    (yalign
499 ;     :allocation :arg
500 ;     :accessor aspect-frame-yalign
501 ;     :initarg :yalign
502 ;     :type single-float)
503 ;    (ratio
504 ;     :allocation :arg
505 ;     :accessor aspect-frame-ratio
506 ;     :initarg :ratio
507 ;     :type single-float)
508 ;    (obey-child
509 ;     :allocation :arg
510 ;     :accessor aspect-frame-obey-child-p
511 ;     :initarg :obey-child
512 ;     :type boolean))
513 ;   (:metaclass container-class)
514 ;   (:alien-name "GtkAspectFrame"))
515
516 ; (defclass aspect-frame-child (aspect-child))
517
518
519 (defclass button (bin)
520   ((label
521     :allocation :virtual
522     :location button-label
523     :initarg :label
524     :type string)
525    (relief
526     :allocation :arg
527     :accessor button-relief
528     :initarg :relief
529     :type relief-style))
530   (:metaclass container-class)
531   (:alien-name "GtkButton"))
532
533 (defclass button-child (bin-child)
534   ()
535   (:metaclass child-class))
536
537
538 (defclass toggle-button (button)
539   ((active
540     :allocation :arg
541     :accessor toggle-button-active-p
542     :initarg :active
543     :type boolean)
544    (draw-indicator
545     :allocation :arg
546     :accessor toggle-button-draw-indicator-p
547     :initarg :draw-indicator
548     :type boolean))
549   (:metaclass container-class)
550   (:alien-name "GtkToggleButton"))
551
552 (defclass toggle-button-child (button-child)
553   ()
554   (:metaclass child-class))
555
556
557 (defclass check-button (toggle-button)
558   ()
559   (:metaclass container-class)
560   (:alien-name "GtkCheckButton"))
561
562 (defclass check-button-child (toggle-button-child)
563   ()
564   (:metaclass child-class))
565
566
567 (defclass radio-button (check-button)
568   ((group
569     :allocation :virtual
570     :location ("gtk_radio_button_group")
571     :reader radio-button-group
572     :type (static (gslist widget))))
573   (:metaclass container-class)
574   (:alien-name "GtkRadioButton"))
575
576 (defclass radio-button-child (check-button-child)
577   ()
578   (:metaclass child-class))
579   
580
581 (defclass option-menu (button)
582   ((menu
583     :allocation :virtual
584     :location ("gtk_option_menu_get_menu" (setf option-menu-menu))
585     :reader option-menu-menu
586     :initarg :menu
587     :type widget)
588    (history
589     :allocation :virtual
590     :location (nil "gtk_option_menu_set_history")
591     :writer (setf option-menu-history)
592     :initarg :history
593     :type unsigned-int))
594   (:metaclass container-class)
595   (:alien-name "GtkOptionMenu"))
596
597 (defclass option-menu-child (button-child)
598   ()
599   (:metaclass child-class))
600
601
602 (defclass item (bin)
603   ()
604   (:metaclass container-class)
605   (:alien-name "GtkItem"))
606
607 (defclass item-child (bin-child)
608   ()
609   (:metaclass child-class))
610
611 ;; Forward declaration
612 (defclass menu-item (item)
613   ()
614   (:metaclass container-class)
615   (:alien-name "GtkMenuItem"))
616
617 (defclass menu-item (item)
618   ((label
619     :allocation :virtual
620     :location menu-item-label
621     :initarg :label
622     :type string)
623    (submenu
624     :allocation :virtual
625     :location ("gtk_menu_item_get_submenu" (setf menu-item-submenu))
626     :reader menu-item-submenu
627     :initarg :submenu
628     :type menu-item)
629    (placement
630     :allocation :virtual
631     :location ("gtk_menu_item_get_placement" "gtk_menu_item_set_placement")
632     :accessor menu-item-placement
633     :initarg :placement
634     :type submenu-placement)
635    (toggle-indicator
636     :allocation :virtual
637     :location ("gtk_menu_item_get_show_toggle"
638                (setf menu-item-toggle-indicator-p))
639     :reader menu-item-toggle-indicator-p
640     :initarg :toggle-indicator
641     :type boolean)
642    (submenu-indicator
643     :allocation :virtual
644     :location ("gtk_menu_item_get_show_submenu"
645                (setf menu-item-submenu-indicator-p))
646     :reader menu-item-submenu-indicator-p
647     :initarg :submenu-indicator
648     :type boolean))
649   (:metaclass container-class)
650   (:alien-name "GtkMenuItem"))
651   
652 (defclass menu-item-child (item-child)
653   ()
654   (:metaclass child-class))
655
656   
657 (defclass check-menu-item (menu-item)
658   ((active
659     :allocation :virtual
660     :location ("gtk_check_menu_item_get_active"
661                "gtk_check_menu_item_set_active")
662     :accessor check-menu-item-active-p
663     :initarg :active
664     :type boolean)
665    (toggle-indicator
666     :allocation :virtual
667     :location ("gtk_check_menu_item_get_show_toggle"
668                "gtk_check_menu_item_set_show_toggle")
669     :accessor check-menu-item-toggle-indicator-p
670     :initarg :toggle-indicator
671     :type boolean))
672   (:metaclass container-class)
673   (:alien-name "GtkCheckMenuItem"))
674
675 (defclass check-menu-item-child (menu-item-child)
676   ()
677   (:metaclass child-class))
678
679
680 (defclass radio-menu-item (check-menu-item)
681   ((group
682     :allocation :virtual
683     :location ("gtk_radio_menu_item_group")
684     :reader radio-menu-item-group
685     :type (static (gslist widget))))
686   (:metaclass container-class)
687   (:alien-name "GtkRadioMenuItem"))
688
689 (defclass radio-menu-item-child (check-menu-item-child)
690   ()
691   (:metaclass child-class))
692
693
694 (defclass tearoff-menu-item (menu-item)
695   ()
696   (:metaclass container-class)
697   (:alien-name "GtkTearoffMenuItem"))
698
699 (defclass tearoff-menu-item-child (menu-item-child)
700   ()
701   (:metaclass child-class))
702
703
704 (defclass list-item (item)
705   ()
706   (:metaclass container-class)
707   (:alien-name "GtkListItem"))
708
709 (defclass list-item-child (item-child)
710   ()
711   (:metaclass child-class))
712   
713
714 ;; deprecated
715 (defclass tree-item (item)
716   ()
717 ;   :slots
718 ;   ;; slots not accessible through the arg mechanism
719 ;   ((subtree                :write-method :lisp :type tree-item)))
720   (:metaclass container-class)
721   (:alien-name "GtkTreeItem"))
722
723 (defclass tree-item-child (item-child)
724   ()
725   (:metaclass child-class))
726
727
728 (defclass window (bin)
729   ((type
730     :allocation :arg
731     :accessor window-type
732     :initarg :type
733     :type window-type)
734    (title
735     :allocation :arg
736     :accessor window-title
737     :initarg :title
738     :type string)
739    (auto-shrink
740     :allocation :arg
741     :accessor window-auto-shrink-p
742     :initarg :auto-shrink
743     :type boolean)
744    (allow-shrink
745     :allocation :arg
746     :accessor window-allow-shrink-p
747     :initarg :allow-shrink
748     :type boolean)
749    (allow-grow
750     :allocation :arg
751     :accessor window-allow-grow-p
752     :initarg :allow-grow
753     :type boolean)
754    (modal
755     :allocation :arg
756     :accessor window-modal-p
757     :initarg :modal
758     :type boolean)
759    (position
760     :allocation :arg
761     :location "GtkWindow::window_position"
762     :accessor window-position
763     :initarg :position
764     :type window-position)
765    (default-width
766     :allocation :arg
767     :accessor window-default-width
768     :initarg :default-width
769     :type int)
770    (default-height
771     :allocation :arg
772     :accessor window-default-height
773     :initarg :default-height
774     :type int))
775   (:metaclass container-class)
776   (:alien-name "GtkWindow"))
777
778 (defclass window-child (bin-child)
779   ()
780   (:metaclass child-class))
781
782
783 (defclass dialog (window)
784   ((main-box
785     :allocation :alien
786     :reader dialog-main-box
787     :type widget)
788    (action-area
789     :allocation :alien
790     :reader dialog-action-area
791     :type widget))
792   (:metaclass container-class)
793   (:alien-name "GtkDialog"))
794
795 (defclass dialog-child (window-child)
796   ()
797   (:metaclass child-class))
798
799
800 (defclass color-selection-dialog (dialog)
801   ((colorsel
802     :allocation :alien
803     :reader color-selection-dialog-colorsel
804     :type widget)
805    (ok-button
806     :allocation :alien
807     :reader color-selection-dialog-ok-button
808     :type widget)
809    (cancel-button
810     :allocation :alien
811     :reader color-selection-dialog-cancel-button
812     :type widget)
813    (help-button
814     :allocation :alien
815     :reader color-selection-dialog-help-button
816     :type widget))
817   (:metaclass container-class)
818   (:alien-name "GtkColorSelectionDialog"))
819
820 (defclass color-selection-dialog-child (dialog-child)
821   ()
822   (:metaclass child-class))
823
824
825 (defclass input-dialog (dialog)
826   ()
827   (:metaclass container-class)
828   (:alien-name "GtkInputDialog"))
829
830 (defclass input-dialog-child (dialog-child)
831   ()
832   (:metaclass child-class))
833
834
835 (defclass file-selection (window)
836   ((filename
837     :allocation :virtual
838     :location ("gtk_file_selection_get_filename"
839                "gtk_file_selection_set_filename")
840     :accessor file-selection-filename
841     :initarg :filename
842     :type string)
843     (action-area
844      :allocation :virtual
845      :location "gtk_file_selection_get_action_area"
846      :reader file-selection-action-area
847      :type widget)
848     (ok-button
849      :allocation :virtual
850      :location "gtk_file_selection_get_ok_button"
851      :reader file-selection-ok-button
852      :type widget)
853     (cancel-button
854      :allocation :virtual
855      :location "gtk_file_selection_get_cancel_button"
856      :reader file-selection-cancel-button
857      :type widget))
858   (:metaclass container-class)
859   (:alien-name "GtkFileSelection"))
860
861 (defclass file-selection-child (window-child)
862   ()
863   (:metaclass child-class))
864
865
866 ; (defclass plug window)
867
868
869 (defclass event-box (bin)
870   ()
871   (:metaclass container-class)
872   (:alien-name "GtkEventBox"))
873
874 (defclass event-box-child (bin-child)
875   ()
876   (:metaclass child-class))
877
878
879 (defclass handle-box (bin)
880   ((shadow-type
881     :allocation :arg
882     :location "GtkHandleBox::shadow"
883     :accessor handle-box-shadow-type
884     :initarg :shadow-type
885     :type shadow-type)   
886    (handle-position
887     :allocation :arg
888     :accessor handle-box-handle-position
889     :initarg :handle-position
890     :type position-type)
891    (snap-edge
892     :allocation :arg
893     :accessor handle-box-snap-edge
894     :initarg :snap-edge
895     :type position-type))
896   (:metaclass container-class)
897   (:alien-name "GtkHandleBox"))
898
899 (defclass handle-box-child (bin-child)
900   ()
901   (:metaclass child-class))
902
903
904 (defclass scrolled-window (bin)
905   ((hadjustment
906     :allocation :arg
907     :accessor scrolled-window-hadjustment
908     :initarg :hadjustment
909     :type adjustment)   
910    (vadjustment
911     :allocation :arg
912     :accessor scrolled-window-vadjustment
913     :initarg :vadjustment
914     :type adjustment)
915    (hscrollbar-policy
916     :allocation :arg
917     :accessor scrolled-window-hscrollbar-policy
918     :initarg :hscrollbar-policy
919     :type policy-type)
920    (vscrollbar-policy
921     :allocation :arg
922     :accessor scrolled-window-vscrollbar-policy
923     :initarg :vscrollbar-policy
924     :type policy-type)
925    (placement
926     :allocation :arg
927     :location "GtkScrolledWindow::window_placement"
928     :accessor scrolled-window-placement
929     :initarg :placement
930     :type corner-type)
931    (shadow-type
932     :allocation :arg
933     :location "GtkScrolledWindow::shadow"
934     :accessor scrolled-window-shadow-type
935     :initarg :shadow-type
936     :type shadow-type)
937    (hscrollbar
938     :allocation :virtual
939     :location "gtk_scrolled_window_get_hscrollbar"
940     :accessor scrolled-window-hscrollbar
941     :type widget)
942    (vscrollbar
943     :allocation :virtual
944     :location "gtk_scrolled_window_get_vscrollbar"
945     :accessor scrolled-window-vscrollbar
946     :type widget))
947   (:metaclass container-class)
948   (:alien-name "GtkScrolledWindow"))
949
950 (defclass scrolled-window-child (bin-child)
951   ()
952   (:metaclass child-class))
953
954
955 (defclass viewport (bin)
956   ((hadjustment
957     :allocation :arg
958     :accessor viewport-hadjustment
959     :initarg :hadjustment
960     :type adjustment)   
961    (vadjustment
962     :allocation :arg
963     :accessor viewport-vadjustment
964     :initarg :vadjustment
965     :type adjustment)
966    (shadow-type
967     :allocation :arg
968     :accessor viewport-shadow-type
969     :initarg :shadow-type
970     :type shadow-type))
971   (:metaclass container-class)
972   (:alien-name "GtkViewport"))
973
974 (defclass viewport-child (bin-child)
975   ()
976   (:metaclass child-class))
977   
978
979 (defclass box (container)
980   ((spacing
981     :allocation :arg
982     :accessor box-spacing
983     :initarg :spacing
984     :type int)
985    (homogeneous
986     :allocation :arg
987     :accessor box-homogeneous-p
988     :initarg :homogeneous
989     :type boolean))
990   (:metaclass container-class)
991   (:alien-name "GtkBox"))
992
993 (defclass box-child (container-child)
994   ((expand
995     :allocation :arg
996     :accessor box-child-expand-p
997     :initarg :expand
998     :type boolean)
999    (fill
1000     :allocation :arg
1001     :accessor box-child-fill-p
1002     :initarg :fill
1003     :type boolean)
1004    (padding
1005     :allocation :arg
1006     :accessor box-child-padding
1007     :initarg :padding
1008     :type unsigned-long)
1009    (pack-type
1010     :allocation :arg
1011     :accessor box-child-pack-type
1012     :initarg :pack-type
1013     :type pack-type)
1014    (position
1015     :allocation :arg
1016     :accessor box-child-position
1017     :initarg :position
1018     :type long))
1019   (:metaclass child-class))
1020    
1021
1022 (defclass button-box (box)
1023   ((spacing
1024     :allocation :virtual
1025     :location ("gtk_button_box_get_spacing" "gtk_button_box_set_spacing")
1026     :accessor button-box-spacing
1027     :initarg :spacing
1028     :type int)
1029    (child-min-width
1030     :allocation :alien
1031     :offset #.(size-of 'int)
1032     :accessor button-box-child-min-width
1033     :initarg :child-min-width
1034     :type int)
1035    (child-min-height
1036     :allocation :alien
1037     :accessor button-box-child-min-height
1038     :initarg :child-min-height
1039     :type int)
1040    (child-ipad-x
1041     :allocation :alien
1042     :accessor button-box-child-ipad-x
1043     :initarg :child-ipad-x
1044     :type int)
1045    (child-ipad-y
1046     :allocation :alien
1047     :accessor button-box-child-ipad-y
1048     :initarg :child-ipad-y
1049     :type int)
1050    (layout
1051     :allocation :virtual
1052     :location ("gtk_button_box_get_layout" "gtk_button_box_set_layout")
1053     :accessor button-box-layout
1054     :initarg :layout
1055     :type button-box-style))
1056   (:metaclass container-class)
1057   (:alien-name "GtkButtonBox"))
1058
1059 (defclass button-box-child (box-child)
1060   ()
1061   (:metaclass child-class))
1062
1063
1064 (defclass hbutton-box (button-box)
1065   ()
1066   (:metaclass container-class)
1067   (:alien-name "GtkHButtonBox"))
1068
1069 (defclass hbutton-box-child (button-box-child)
1070   ()
1071   (:metaclass child-class))
1072
1073
1074 (defclass vbutton-box (button-box)
1075   ()
1076   (:metaclass container-class)
1077   (:alien-name "GtkVButtonBox"))
1078
1079 (defclass vbutton-box-child (button-box-child)
1080   ()
1081   (:metaclass child-class))
1082
1083
1084 (defclass vbox (box)
1085   ()
1086   (:metaclass container-class)
1087   (:alien-name "GtkVBox"))
1088
1089 (defclass vbox-child (box-child)
1090   ()
1091   (:metaclass child-class))
1092
1093
1094 (defclass color-selection (vbox)
1095   ((use-opacity
1096     :allocation :virtual
1097     :location ("gtk_color_selection_get_use_opacity"
1098                "gtk_color_selection_set_use_opacity")
1099     :accessor color-selection-use-opacity-p
1100     :initarg :use-opacity
1101     :type boolean)
1102    (use-palette
1103     :allocation :virtual
1104     :location ("gtk_color_selection_get_use_palette"
1105                "gtk_color_selection_set_use_palette")
1106     :accessor color-selection-use-palette-p
1107     :initarg :use-palette
1108     :type boolean)
1109    (color
1110     :allocation :virtual
1111     :location color-selection-color
1112     :initarg :color)
1113    (old-color
1114     :allocation :virtual
1115     :location color-selection-old-color
1116     :initarg :old-color
1117     :type (vector double-float 4)))
1118   (:metaclass container-class)
1119   (:alien-name "GtkColorSelection"))
1120
1121 (defclass color-selection-child (vbox-child)
1122   ()
1123   (:metaclass child-class))
1124
1125
1126 (defclass hbox (box)
1127   ()
1128   (:metaclass container-class)
1129   (:alien-name "GtkHBox"))
1130
1131 (defclass hbox-child (box-child)
1132   ()
1133   (:metaclass child-class))
1134
1135
1136 (defclass statusbar (hbox)
1137   ()
1138   (:metaclass container-class)
1139   (:alien-name "GtkStatusbar"))
1140
1141 (defclass statusbar-child (hbox-child)
1142   ()
1143   (:metaclass child-class))
1144
1145
1146 (defclass fixed (container)
1147   ()
1148   (:metaclass container-class)
1149   (:alien-name "GtkFixed"))
1150
1151 (defclass fixed-child (container-child)
1152   ()
1153   (:metaclass child-class))
1154
1155
1156 (defclass notebook (container)
1157   ((tab-pos
1158     :allocation :arg
1159     :accessor notebook-tab-pos
1160     :initarg :tab-pos
1161     :type position-type)
1162    (show-tabs
1163     :allocation :arg
1164     :accessor notebook-show-tabs-p
1165     :initarg :show-tabs
1166     :type boolean)
1167    (show-border
1168     :allocation :arg
1169     :accessor notebook-show-border-p
1170     :initarg :show-border
1171     :type boolean)
1172    (scrollable
1173     :allocation :arg
1174     :accessor notebook-scrollable-p
1175     :initarg :scrollable
1176     :type boolean)
1177    (tab-border
1178     :allocation :arg
1179     :accessor notebook-tab-border
1180     :initarg :tab-border
1181     :type unsigned-int)
1182    (tab-hborder
1183     :allocation :arg
1184     :accessor notebook-tab-hborder
1185     :initarg :tab-hborder
1186     :type unsigned-int)
1187    (tab-vborder
1188     :allocation :arg
1189     :accessor notebook-tab-vborder
1190     :initarg :tab-vborder
1191     :type unsigned-int)
1192    (page
1193     :allocation :arg
1194     :accessor notebook-page
1195     :initarg :page
1196     :type int)
1197    (enable-popup
1198     :allocation :arg
1199     :accessor notebook-enable-popup-p
1200     :initarg :enable-popup
1201     :type boolean)
1202    (homogeneous
1203     :allocation :arg
1204     :accessor notebook-homogeneous-p
1205     :initarg :homogeneous
1206     :type boolean))
1207   (:metaclass container-class)
1208   (:alien-name "GtkNotebook"))
1209
1210 (defclass notebook-child (container-child)
1211   ((tab-label
1212     :allocation :arg
1213     :accessor notebook-child-tab-label
1214     :initarg :tab-label
1215     :type string)
1216    (menu-label
1217     :allocation :arg
1218     :accessor notebook-child-menu-label
1219     :initarg :menu-label
1220     :type string)
1221    (position
1222     :allocation :arg
1223     :accessor notebook-child-position
1224     :initarg :position
1225     :type int)
1226    (tab-fill
1227     :allocation :arg
1228     :accessor notebook-child-tab-fill-p
1229     :initarg :tab-fill
1230     :type boolean)
1231    (tab-pack
1232     :allocation :arg
1233     :accessor notebook-child-tab-pack-p
1234     :initarg :tab-pack
1235     :type boolean))
1236   (:metaclass child-class))
1237
1238
1239 (defclass font-selection (notebook)
1240   ()
1241   (:metaclass container-class)
1242   (:alien-name "GtkFontSelection"))
1243
1244 (defclass font-selection-child (notebook-child)
1245   ()
1246   (:metaclass child-class))
1247
1248
1249 (defclass paned (container)
1250   ((handle-size
1251     :allocation :arg
1252     :accessor paned-handle-size
1253     :initarg handle-size
1254     :type unsigned-int)
1255    (position
1256     :allocation :virtual
1257     :location ("gtk_paned_get_position" "gtk_paned_set_position")
1258     :accessor paned-position
1259     :initarg :position
1260     :type int)
1261    (child1
1262     :allocation :virtual
1263     :location paned-child1
1264     :initarg :child1
1265     :type widget)
1266    (child2
1267     :allocation :virtual
1268     :location paned-child2
1269     :initarg :child2
1270     :type widget))
1271   (:metaclass container-class)
1272   (:alien-name "GtkPaned"))
1273
1274 (defclass paned-child (container-child)
1275   ()
1276   (:metaclass child-class))
1277
1278
1279 (defclass hpaned (paned)
1280   ()
1281   (:metaclass container-class)
1282   (:alien-name "GtkHPaned"))
1283
1284 (defclass hpaned-child (paned-child)
1285   ()
1286   (:metaclass child-class))
1287
1288
1289 (defclass vpaned (paned)
1290   ()
1291   (:metaclass container-class)
1292   (:alien-name "GtkVPaned"))
1293
1294 (defclass vpaned-child (paned-child)
1295   ()
1296   (:metaclass child-class))
1297
1298
1299 (defclass layout (container)
1300   ((hadjustment
1301     :allocation :virtual
1302     :location ("gtk_layout_get_hadjustment" "gtk_layout_set_hadjustment")
1303     :accessor layout-hadjustment
1304     :initarg :hadjustment
1305     :type adjustment)
1306    (vadjustment
1307     :allocation :virtual
1308     :location ("gtk_layout_get_vadjustment" "gtk_layout_set_vadjustment")
1309     :accessor layout-vadjustment
1310     :initarg :vadjustment
1311     :type adjustment)
1312    (x-size
1313     :allocation :virtual
1314     :location layout-x-size
1315     :initarg :x-size)
1316    (y-size
1317     :allocation :virtual
1318     :location layout-y-size
1319     :initarg :y-size)
1320    (x-offset
1321     :allocation :alien
1322     :offset #.(+ (size-of 'pointer) (* (size-of 'int) 2))
1323     :accessor layout-x-offset
1324     :initarg :x-offset
1325     :type unsigned-int)
1326    (y-offset
1327     :allocation :alien
1328     :accessor layout-y-offset
1329     :initarg :y-offset
1330     :type unsigned-int))
1331   (:metaclass container-class)
1332   (:alien-name "GtkLayout"))
1333
1334 (defclass layout-child (container-child)
1335   ()
1336   (:metaclass child-class))
1337   
1338
1339 ; (defclass list-widget container
1340 ;   :c-name "GtkList"
1341 ;   :slots
1342 ;   ((selection-mode         :read-method :arg :accessor list-selection-mode
1343 ;                          :c-writer "gtk_list_set_selection_mode"
1344 ;                          :type selection-mode)))
1345
1346
1347 (defclass menu-shell (container)
1348   ()
1349   (:metaclass container-class)
1350   (:alien-name "GtkMenuShell"))
1351
1352 (defclass menu-shell-child (container-child)
1353   ()
1354   (:metaclass child-class))
1355
1356
1357 (defclass menu-bar (menu-shell)
1358   ((shadow-type
1359     :allocation :arg
1360     :location "GtkMenuBar::shadow"
1361     :accessor menu-bar-shadow-type
1362     :initarg :shadow-type
1363     :type shadow-type))
1364   (:metaclass container-class)
1365   (:alien-name "GtkMenuBar"))
1366
1367 (defclass menu-bar-child (menu-shell-child)
1368   ()
1369   (:metaclass child-class))
1370   
1371
1372 (defclass menu (menu-shell)
1373   ((accel-group
1374     :allocation :virtual
1375     :location ("gtk_menu_get_accel_group" "gtk_menu_set_accel_group")
1376     :accessor menu-accel-group
1377     :initarg :accel-group
1378     :type accel-group)
1379    (tornoff
1380     :allocation :virtual
1381     :location ("gtk_menu_get_tearoff_state" "gtk_menu_set_tearoff_state")
1382     :accessor menu-tornoff-p
1383     :initarg :tearoff
1384     :type boolean)
1385    (title
1386     :allocation :virtual
1387     :location ("gtk_menu_get_title" "gtk_menu_set_title")
1388     :accessor menu-title
1389     :initarg :title
1390     :type string))
1391   (:metaclass container-class)
1392   (:alien-name "GtkMenu"))
1393
1394 (defclass menu-child (menu-shell-child)
1395   ()
1396   (:metaclass child-class))
1397   
1398
1399 (defclass packer (container)
1400   ((spacing
1401     :allocation :arg
1402     :accessor packer-spacing
1403     :initarg :spacing
1404     :type unsigned-int)
1405    (default-border-width
1406     :allocation :arg
1407     :accessor packer-default-border-width
1408     :initarg :default-border-width
1409     :type unsigned-int)
1410    (default-pad-x
1411     :allocation :arg
1412     :accessor packer-default-pad-x
1413     :initarg :default-pad-x
1414     :type unsigned-int)
1415    (default-pad-y
1416     :allocation :arg
1417     :accessor packer-default-pad-y
1418     :initarg :default-pad-y
1419     :type unsigned-int)
1420    (default-ipad-x
1421     :allocation :arg
1422     :accessor packer-default-ipad-x
1423     :initarg :default-ipad-x
1424     :type unsigned-int)
1425    (default-ipad-y
1426     :allocation :arg
1427     :accessor packer-default-ipad-y
1428     :initarg :default-ipad-y
1429     :type unsigned-int))
1430   (:metaclass container-class)
1431   (:alien-name "GtkPacker"))
1432
1433 (defclass packer-child (container-child)
1434   ((side
1435     :allocation :arg
1436     :accessor packer-child-side
1437     :initarg :side
1438     :type side-type)
1439    (anchor
1440     :allocation :arg
1441     :accessor packer-child-anchor
1442     :initarg :anchor
1443     :type anchor-type)
1444    (expand
1445     :allocation :arg
1446     :accessor packer-child-expand-p
1447     :initarg :expand
1448     :type boolean)
1449    (fill-x
1450     :allocation :arg
1451     :accessor packer-child-fill-x-p
1452     :initarg :fill-x
1453     :type boolean)
1454    (fill-y
1455     :allocation :arg
1456     :accessor packer-child-fill-y-p
1457     :initarg :fill-y    
1458     :type boolean)
1459    (use-default
1460     :allocation :arg
1461     :accessor packer-child-use-default
1462     :initarg :default
1463     :type boolean)
1464    (border-width
1465     :allocation :arg
1466     :accessor packer-child-border-width
1467     :initarg :default    
1468     :type unsigned-int)
1469    (pad-x
1470     :allocation :arg
1471     :accessor packer-child-pad-x
1472     :initarg :pad-x
1473     :type unsigned-int)
1474    (pad-y
1475     :allocation :arg
1476     :accessor packer-child-pad-y
1477     :initarg :pad-y
1478     :type unsigned-int)
1479    (ipad-x
1480     :allocation :arg
1481     :accessor packer-child-ipad-x
1482     :initarg :ipad-x
1483     :type unsigned-int)
1484    (ipad-y
1485     :allocation :arg
1486     :accessor packer-child-ipad-y
1487     :initarg :ipad-y
1488     :type unsigned-int)
1489    (position
1490     :allocation :arg
1491     :accessor packer-child-position
1492     :initarg :iposition
1493     :type long))
1494   (:metaclass child-class))
1495
1496
1497 ;(defclass socket (container))
1498
1499
1500 (defclass table (container)
1501   ((rows
1502     :allocation :arg
1503     :location "GtkTable::n_rows"
1504     :accessor table-rows
1505     :initarg :rows
1506     :type unsigned-int)
1507    (columns
1508     :allocation :arg
1509     :location "GtkTable::n_columns"
1510     :accessor table-columns
1511     :initarg :columns
1512     :type unsigned-int)
1513    (row-spacing
1514     :allocation :arg
1515     :accessor table-default-row-spacing
1516     :initarg :row-spacing
1517     :type unsigned-int)
1518    (column-spacing
1519     :allocation :arg
1520     :accessor table-default-column-spacing
1521     :initarg :column-spacing
1522     :type unsigned-int)
1523    (homogeneous
1524     :allocation :arg
1525     :accessor table-homogeneous-p
1526     :initarg :homogeneous
1527     :type boolean))
1528   (:metaclass container-class)
1529   (:alien-name "GtkTable"))
1530
1531 (defclass table-child (container-child)
1532   ((left-attach
1533     :allocation :arg
1534     :accessor table-child-left-attach
1535     :initarg :left-attach
1536     :type unsigned-int)
1537    (right-attach
1538     :allocation :arg
1539     :accessor table-child-right-attach
1540     :initarg :right-attach
1541     :type unsigned-int)
1542    (top-attach
1543     :allocation :arg
1544     :accessor table-child-top-attach
1545     :initarg :top-attach
1546     :type unsigned-int)
1547    (bottom-attach
1548     :allocation :arg
1549     :accessor table-child-bottom-attach
1550     :initarg :bottom-attach
1551     :type unsigned-int)
1552    (x-options
1553     :allocation :arg
1554     :accessor table-child-x-options
1555     :initarg :x-options
1556     :type attach-options)
1557    (y-options
1558     :allocation :arg
1559     :accessor table-child-y-options
1560     :initarg :y-options
1561     :type attach-options)
1562    (x-padding
1563     :allocation :arg
1564     :accessor table-child-x-padding
1565     :initarg :x-padding
1566     :type unsigned-int)
1567    (y-padding
1568     :allocation :arg
1569     :accessor table-child-y-padding
1570     :initarg :y-padding
1571     :type unsigned-int)
1572    
1573    (x-expand
1574     :allocation :virtual
1575     :location table-child-x-expand-p
1576     :initarg :x-expand
1577     :type boolean)   
1578    (y-expand
1579     :allocation :virtual
1580     :location table-child-y-expand-p
1581     :initarg :y-expand
1582     :type boolean)
1583    (x-shrink
1584     :allocation :virtual
1585     :location table-child-x-shrink-p
1586     :initarg :x-shrink
1587     :type boolean)   
1588    (y-shrink
1589     :allocation :virtual
1590     :location table-child-y-shrink-p
1591     :initarg :y-shrink
1592     :type boolean)   
1593    (x-fill
1594     :allocation :virtual
1595     :location table-child-x-fill-p
1596     :initarg :x-fill
1597     :type boolean)   
1598    (y-fill
1599     :allocation :virtual
1600     :location table-child-y-fill-p
1601     :initarg :y-fill
1602     :type boolean))
1603   (:metaclass child-class))
1604   
1605
1606 (defclass toolbar (container)
1607   ((orientation
1608     :allocation :arg
1609     :accessor toolbar-orientation
1610     :initarg :orientation
1611     :type orientation)
1612    (toolbar-style
1613     :allocation :arg
1614     :accessor toolbar-style
1615     :initarg :toolbar-style
1616     :type toolbar-style)
1617    (space-size
1618     :allocation :arg
1619     :accessor toolbar-space-size
1620     :initarg :space-size
1621     :type unsigned-int)
1622    (space-style
1623     :allocation :arg
1624     :accessor toolbar-space-style
1625     :initarg :space-style
1626     :type toolbar-space-style)
1627    (relief
1628     :allocation :arg
1629     :accessor toolbar-relief
1630     :initarg :relief
1631     :type relief-style)
1632    (tooltips
1633     :allocation :virtual
1634     :location ("gtk_toolbar_get_tooltips" "gtk_toolbar_set_tooltips")
1635     :accessor toolbar-tooltips-p
1636     :initarg :tooltips
1637     :type boolean))
1638   (:metaclass container-class)
1639   (:alien-name "GtkToolbar"))
1640
1641 (defclass toolbar-child (container-child)
1642   ()
1643   (:metaclass child-class))
1644
1645
1646 ;; Deprecated
1647 (defclass tree (container)
1648   ()
1649 ;   :slots
1650 ;   ;; slots not accessible through the arg mechanism
1651 ;   ((selection-mode         :type selection-mode)
1652 ;    (view-mode              :type tree-view-mode)
1653 ;    (view-lines             :type boolean)
1654 ;    (root-tree              :read-only t :type tree)))
1655   (:metaclass container-class)
1656   (:alien-name "GtkTree"))
1657
1658
1659 (defclass calendar (widget)
1660   ()
1661   (:metaclass widget-class)
1662   (:alien-name "GtkCalendar"))
1663
1664
1665 (defclass drawing-area (widget)
1666   ()
1667   (:metaclass widget-class)
1668   (:alien-name "GtkDrawingArea"))
1669
1670 ; (defclass curve drawing-area
1671 ;   :slots
1672 ;   ((curve-type             :read-method :arg :type curve-type)
1673 ;    (min-x                  :access-method :arg :type single-float)
1674 ;    (max-x                  :access-method :arg :type single-float)
1675 ;    (min-y                  :access-method :arg :type single-float)
1676 ;    (max-y                  :access-method :arg :type single-float)))
1677
1678 (defclass editable (widget)
1679   ((position
1680     :allocation :arg
1681     :location "GtkEditable::text_position"
1682     :accessor ediatable-position
1683     :initarg :position
1684     :type int)
1685    (editable
1686     :allocation :arg
1687     :accessor editable-editable-p
1688     :initarg :editable
1689     :type boolean)
1690    (text
1691     :allocation :virtual
1692     :location editable-text
1693     :initarg :text
1694     :type string))
1695   (:metaclass widget-class)
1696   (:alien-name "GtkEditable"))
1697
1698   
1699 (defclass entry (editable)
1700   ((max-length
1701     :allocation :arg
1702     :accessor entry-max-length
1703     :initarg :max-length
1704     :type unsigned-int)
1705    (visible
1706     :allocation :arg
1707     :location "GtkEntry::visibility"
1708     :accessor entry-visible-p
1709     :initarg :visible
1710     :type boolean))
1711   (:metaclass widget-class)
1712   (:alien-name "GtkEntry"))
1713   
1714
1715 (defclass combo (hbox)
1716   ((entry
1717     :allocation :virtual
1718     :location "gtk_combo_get_entry"
1719     :reader combo-entry
1720     :type entry)
1721    (use-arrows
1722     :allocation :virtual
1723     :location ("gtk_combo_get_use_arrows" "gtk_combo_set_use_arrows")
1724     :accessor combo-use-arrows-p
1725     :initarg :use-arrows
1726     :type boolean)
1727    (use-arrows-always
1728     :allocation :virtual
1729     :location
1730     ("gtk_combo_get_use_arrows_always" "gtk_combo_set_use_arrows_always")
1731     :accessor combo-use-arrows-always-p
1732     :initarg :use-arrows-always
1733     :type boolean)
1734    (case-sensitive
1735     :allocation :virtual
1736     :location ("gtk_combo_get_case_sensitive" "gtk_combo_set_case_sensitive")
1737     :accessor combo-case-sensitive-p
1738     :initarg :case-sensitive
1739     :type boolean))
1740   (:metaclass widget-class)
1741   (:alien-name "GtkCombo"))
1742   
1743
1744 (defclass spin-button (entry)
1745   ((adjustment
1746     :allocation :arg
1747     :accessor spin-button-adjustment
1748     :initarg :adjustment
1749     :type adjustment)
1750    (climb-rate
1751     :allocation :arg
1752     :accessor spin-button-climb-rate
1753     :initarg :climb-rate
1754     :type single-float)
1755    (digits
1756     :allocation :arg
1757     :accessor spin-button-digits
1758     :initarg :digits
1759     :type unsigned-int)
1760    (snap-to-ticks
1761     :allocation :arg
1762     :accessor spin-button-snap-to-ticks-p
1763     :initarg :snap-to-ticks
1764     :type boolean)
1765    (numeric
1766     :allocation :arg
1767     :accessor spin-button-numeric-p
1768     :initarg :numeric
1769     :type boolean)
1770    (wrap
1771     :allocation :arg
1772     :accessor spin-button-wrap-p
1773     :initarg :wrap
1774     :type boolean)
1775    (update-policy
1776     :allocation :arg
1777     :accessor spin-button-update-policy
1778     :initarg :update-policy
1779     :type spin-button-update-policy)
1780    (shadow-type
1781     :allocation :arg
1782     :accessor spin-button-shadow-type
1783     :initarg :shadow-type
1784     :type shadow-type)
1785    (value
1786     :allocation :arg
1787     :accessor spin-button-value
1788     :initarg :value
1789     :type single-float))
1790   (:metaclass widget-class)
1791   (:alien-name "GtkSpinButton"))
1792   
1793
1794 ;; Deprecated
1795 ; (defclass text editable
1796 ;   :slots
1797 ;   ((hadjustment            :access-method :arg :type adjustment)
1798 ;    (vadjustment            :access-method :arg :type adjustment)
1799 ;    (line-wrap              :read-method :arg :type boolean)
1800 ;    (word-wrap              :read-method :arg :type boolean)
1801 ;    ;; slots not accessible through the arg mechanism
1802 ;    (point                  :type unsigned-int)
1803 ;    (length                 :read-only t :type unsigned-int)))
1804
1805 (defclass ruler (widget)
1806   ((lower
1807     :allocation :arg
1808     :accessor ruler-lower
1809     :initarg :lower
1810     :type single-float)
1811    (upper
1812     :allocation :arg
1813     :accessor ruler-upper
1814     :initarg :upper
1815     :type single-float)
1816    (position
1817     :allocation :arg
1818     :accessor ruler-position
1819     :initarg :position
1820     :type single-float)
1821    (max-size
1822     :allocation :arg
1823     :accessor ruler-max-size
1824     :initarg :max-size
1825     :type single-float)
1826    (metric
1827     :allocation :virtual
1828     :location (nil "gtk_ruler_set_metric")
1829     :accessor ruler-metric
1830     :initarg :metric
1831     :type metric-type))
1832   (:metaclass widget-class)
1833   (:alien-name "GtkRuler"))
1834
1835
1836 (defclass hruler (ruler)
1837   ()
1838   (:metaclass widget-class)
1839   (:alien-name "GtkHRuler"))
1840
1841
1842 (defclass vruler (ruler)
1843   ()
1844   (:metaclass widget-class)
1845   (:alien-name "GtkVRuler"))
1846
1847
1848 (defclass range (widget)
1849   ((update-policy
1850     :allocation :arg
1851     :accessor range-update-policy
1852     :initarg :update-policy
1853     :type update-type)
1854    (adjustment
1855     :allocation :virtual
1856     :location ("gtk_range_get_adjustment" "gtk_range_set_adjustment")
1857     :accessor ruler-adjustment
1858     :initarg :adjustment
1859     :type adjustment))
1860   (:metaclass widget-class)
1861   (:alien-name "GtkRange"))
1862
1863
1864 (defclass scale (range)
1865   ((digits
1866     :allocation :arg
1867     :accessor scale-digits
1868     :initarg :digits
1869     :type int)
1870    (draw-value
1871     :allocation :arg
1872     :accessor scale-draw-value-p
1873     :initarg :draw-value
1874     :type boolean)
1875    (value-position
1876     :allocation :arg
1877     :location "GtkScale::value_pos"
1878     :accessor scale-value-position
1879     :initarg :value-position
1880     :type position-type)
1881    (value-width
1882     :allocation :virtual
1883     :location "gtk_scale_get_value_width"
1884     :reader ruler-value-width
1885     :type int))
1886   (:metaclass widget-class)
1887   (:alien-name "GtkScale"))
1888
1889
1890 (defclass hscale (scale)
1891   ()
1892   (:metaclass widget-class)
1893   (:alien-name "GtkHScale"))
1894
1895
1896 (defclass vscale (scale)
1897   ()
1898   (:metaclass widget-class)
1899   (:alien-name "GtkVScale"))
1900
1901
1902 (defclass scrollbar (range)
1903   ()
1904   (:metaclass widget-class)
1905   (:alien-name "GtkScrollbar"))
1906
1907
1908 (defclass hscrollbar (scrollbar)
1909   ()
1910   (:metaclass widget-class)
1911   (:alien-name "GtkHScrollbar"))
1912
1913
1914 (defclass vscrollbar (scrollbar)
1915   ()
1916   (:metaclass widget-class)
1917   (:alien-name "GtkVScrollbar"))
1918
1919
1920 (defclass separator (widget)
1921   ()
1922   (:metaclass widget-class)
1923   (:alien-name "GtkSeparator"))
1924
1925
1926 (defclass hseparator (separator)
1927   ()
1928   (:metaclass widget-class)
1929   (:alien-name "GtkHSeparator"))
1930
1931
1932 (defclass vseparator (separator)
1933   ()
1934   (:metaclass widget-class)
1935   (:alien-name "GtkVSeparator"))
1936
1937
1938 ; (defclass preview widget
1939 ;   :slots
1940 ;   ((expand                 :read-method :arg :type boolean)))
1941
1942 (defclass progress (widget)
1943   ((activity-mode
1944     :allocation :arg
1945     :accessor progress-activity-mode-p
1946     :initarg :activity-mode
1947     :type boolean)   
1948    (show-text
1949     :allocation :arg
1950     :accessor progress-show-text-p
1951     :initarg :show-text
1952     :type boolean)
1953    (text-xalign
1954     :allocation :arg
1955     :accessor progress-text-xalign
1956     :initarg :text-xalign
1957     :type single-float)
1958    (text-yalign
1959     :allocation :arg
1960     :accessor progress-text-yalign
1961     :initarg :text-yalign
1962     :type single-float)
1963    (format-string
1964     :allocation :virtual
1965     :location ("gtk_progress_get_format_string"
1966                "gtk_progress_set_format_string")
1967     :accessor progress-format-string
1968     :initarg :format-string
1969     :type string)
1970    (adjustment
1971     :allocation :virtual
1972     :location ("gtk_progress_get_adjustment"
1973                "gtk_progress_set_adjustment")
1974     :accessor progress-adjustment
1975     :initarg :adjustment
1976     :type adjustment)
1977    (percentage
1978     :allocation :virtual
1979     :location ("gtk_progress_get_current_percentage"
1980                "gtk_progress_set_percentage")
1981     :accessor progress-percentage
1982     :initarg :percentage
1983     :type single-float)
1984    (value
1985     :allocation :virtual
1986     :location ("gtk_progress_get_value" "gtk_progress_set_value")
1987     :accessor progress-value
1988     :initarg :value
1989     :type single-float)
1990    (text
1991     :allocation :virtual
1992     :location ("gtk_progress_get_current_text")
1993     :reader progress-text
1994     :type string))
1995   (:metaclass widget-class)
1996   (:alien-name "GtkProgress"))
1997   
1998
1999 (defclass progress-bar (progress)
2000   ((orientation
2001     :allocation :arg
2002     :accessor progress-bar-orientation
2003     :initarg :orientation
2004     :type progress-bar-orientation)
2005    (bar-style
2006     :allocation :arg
2007     :accessor progress-bar-style
2008     :initarg :bar-style
2009     :type progress-bar-style)
2010    (activity-step
2011     :allocation :arg
2012     :accessor progress-bar-activity-step
2013     :initarg :activity-step
2014     :type unsigned-int)
2015    (activity-blocks
2016     :allocation :arg
2017     :accessor progress-bar-activity-blocks
2018     :initarg :activity-blocks
2019     :type unsigned-int)
2020    (discrete-blocks
2021     :allocation :arg
2022     :accessor progress-bar-discrete-blocks
2023     :initarg :discrete-blocks
2024     :type unsigned-int)
2025    (fraction
2026     :allocation :arg
2027     :accessor progress-bar-fraction
2028     :initarg :fraction
2029     :type single-float)
2030    (pulse-step
2031     :allocation :arg
2032     :accessor progress-bar-pulse-step
2033     :initarg :pulse-step
2034     :type single-float)
2035    (text
2036     :allocation :virtual
2037     :location ("gtk_progress_get_current_text" "gtk_progress_bar_set_text")
2038     :accessor progress-bar-text
2039     :type string))
2040   (:metaclass widget-class)
2041   (:alien-name "GtkProgressBar"))
2042
2043 ; (defclass item-factory object)
2044