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