chiark / gitweb /
Bug fixes, extract types from libgdk_pixbuf
[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.6 2001-01-28 14:27:17 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 (defclass window (bin)
714   ((type
715     :allocation :param
716     :accessor window-type
717     :initarg :type
718     :type window-type)
719    (title
720     :allocation :param
721     :accessor window-title
722     :initarg :title
723     :type string)
724    (auto-shrink
725     :allocation :param
726     :accessor window-auto-shrink-p
727     :initarg :auto-shrink
728     :type boolean)
729    (allow-shrink
730     :allocation :param
731     :accessor window-allow-shrink-p
732     :initarg :allow-shrink
733     :type boolean)
734    (allow-grow
735     :allocation :param
736     :accessor window-allow-grow-p
737     :initarg :allow-grow
738     :type boolean)
739    (modal
740     :allocation :param
741     :accessor window-modal-p
742     :initarg :modal
743     :type boolean)
744    (position
745     :allocation :param
746     :location "GtkWindow::window_position"
747     :accessor window-position
748     :initarg :position
749     :type window-position)
750    (default-width
751     :allocation :param
752     :accessor window-default-width
753     :initarg :default-width
754     :type int)
755    (default-height
756     :allocation :param
757     :accessor window-default-height
758     :initarg :default-height
759     :type int))
760   (:metaclass container-class)
761   (:alien-name "GtkWindow"))
762
763 (defclass window-child (bin-child)
764   ()
765   (:metaclass child-class))
766
767
768 (defclass dialog (window)
769   ((main-box
770     :allocation :alien
771     :reader dialog-main-box
772     :type widget)
773    (action-area
774     :allocation :alien
775     :reader dialog-action-area
776     :type widget))
777   (:metaclass container-class)
778   (:alien-name "GtkDialog"))
779
780 (defclass dialog-child (window-child)
781   ()
782   (:metaclass child-class))
783
784
785 (defclass color-selection-dialog (dialog)
786   ((colorsel
787     :allocation :alien
788     :reader color-selection-dialog-colorsel
789     :type widget)
790    (ok-button
791     :allocation :alien
792     :reader color-selection-dialog-ok-button
793     :type widget)
794    (cancel-button
795     :allocation :alien
796     :reader color-selection-dialog-cancel-button
797     :type widget)
798    (help-button
799     :allocation :alien
800     :reader color-selection-dialog-help-button
801     :type widget))
802   (:metaclass container-class)
803   (:alien-name "GtkColorSelectionDialog"))
804
805 (defclass color-selection-dialog-child (dialog-child)
806   ()
807   (:metaclass child-class))
808
809
810 (defclass input-dialog (dialog)
811   ()
812   (:metaclass container-class)
813   (:alien-name "GtkInputDialog"))
814
815 (defclass input-dialog-child (dialog-child)
816   ()
817   (:metaclass child-class))
818
819
820 (defclass file-selection (window)
821   ((filename
822     :allocation :virtual
823     :location ("gtk_file_selection_get_filename"
824                "gtk_file_selection_set_filename")
825     :accessor file-selection-filename
826     :initarg :filename
827     :type string)
828     (action-area
829      :allocation :virtual
830      :location "gtk_file_selection_get_action_area"
831      :reader file-selection-action-area
832      :type widget)
833     (ok-button
834      :allocation :virtual
835      :location "gtk_file_selection_get_ok_button"
836      :reader file-selection-ok-button
837      :type widget)
838     (cancel-button
839      :allocation :virtual
840      :location "gtk_file_selection_get_cancel_button"
841      :reader file-selection-cancel-button
842      :type widget))
843   (:metaclass container-class)
844   (:alien-name "GtkFileSelection"))
845
846 (defclass file-selection-child (window-child)
847   ()
848   (:metaclass child-class))
849
850
851 ; (defclass plug window)
852
853
854 (defclass event-box (bin)
855   ()
856   (:metaclass container-class)
857   (:alien-name "GtkEventBox"))
858
859 (defclass event-box-child (bin-child)
860   ()
861   (:metaclass child-class))
862
863
864 (defclass handle-box (bin)
865   ((shadow-type
866     :allocation :param
867     :location "GtkHandleBox::shadow"
868     :accessor handle-box-shadow-type
869     :initarg :shadow-type
870     :type shadow-type)   
871    (handle-position
872     :allocation :param
873     :accessor handle-box-handle-position
874     :initarg :handle-position
875     :type position-type)
876    (snap-edge
877     :allocation :param
878     :accessor handle-box-snap-edge
879     :initarg :snap-edge
880     :type position-type))
881   (:metaclass container-class)
882   (:alien-name "GtkHandleBox"))
883
884 (defclass handle-box-child (bin-child)
885   ()
886   (:metaclass child-class))
887
888
889 (defclass scrolled-window (bin)
890   ((hadjustment
891     :allocation :param
892     :accessor scrolled-window-hadjustment
893     :initarg :hadjustment
894     :type adjustment)   
895    (vadjustment
896     :allocation :param
897     :accessor scrolled-window-vadjustment
898     :initarg :vadjustment
899     :type adjustment)
900    (hscrollbar-policy
901     :allocation :param
902     :accessor scrolled-window-hscrollbar-policy
903     :initarg :hscrollbar-policy
904     :type policy-type)
905    (vscrollbar-policy
906     :allocation :param
907     :accessor scrolled-window-vscrollbar-policy
908     :initarg :vscrollbar-policy
909     :type policy-type)
910    (placement
911     :allocation :param
912     :location "GtkScrolledWindow::window_placement"
913     :accessor scrolled-window-placement
914     :initarg :placement
915     :type corner-type)
916    (shadow-type
917     :allocation :param
918     :location "GtkScrolledWindow::shadow"
919     :accessor scrolled-window-shadow-type
920     :initarg :shadow-type
921     :type shadow-type)
922    (hscrollbar
923     :allocation :virtual
924     :location "gtk_scrolled_window_get_hscrollbar"
925     :accessor scrolled-window-hscrollbar
926     :type widget)
927    (vscrollbar
928     :allocation :virtual
929     :location "gtk_scrolled_window_get_vscrollbar"
930     :accessor scrolled-window-vscrollbar
931     :type widget))
932   (:metaclass container-class)
933   (:alien-name "GtkScrolledWindow"))
934
935 (defclass scrolled-window-child (bin-child)
936   ()
937   (:metaclass child-class))
938
939
940 (defclass viewport (bin)
941   ((hadjustment
942     :allocation :param
943     :accessor viewport-hadjustment
944     :initarg :hadjustment
945     :type adjustment)   
946    (vadjustment
947     :allocation :param
948     :accessor viewport-vadjustment
949     :initarg :vadjustment
950     :type adjustment)
951    (shadow-type
952     :allocation :param
953     :accessor viewport-shadow-type
954     :initarg :shadow-type
955     :type shadow-type))
956   (:metaclass container-class)
957   (:alien-name "GtkViewport"))
958
959 (defclass viewport-child (bin-child)
960   ()
961   (:metaclass child-class))
962   
963
964 (defclass box (container)
965   ((spacing
966     :allocation :param
967     :accessor box-spacing
968     :initarg :spacing
969     :type int)
970    (homogeneous
971     :allocation :param
972     :accessor box-homogeneous-p
973     :initarg :homogeneous
974     :type boolean))
975   (:metaclass container-class)
976   (:alien-name "GtkBox"))
977
978 (defclass box-child (container-child)
979   ((expand
980     :allocation :arg
981     :accessor box-child-expand-p
982     :initarg :expand
983     :type boolean)
984    (fill
985     :allocation :arg
986     :accessor box-child-fill-p
987     :initarg :fill
988     :type boolean)
989    (padding
990     :allocation :arg
991     :accessor box-child-padding
992     :initarg :padding
993     :type unsigned-long)
994    (pack-type
995     :allocation :arg
996     :accessor box-child-pack-type
997     :initarg :pack-type
998     :type pack-type)
999    (position
1000     :allocation :arg
1001     :accessor box-child-position
1002     :initarg :position
1003     :type long))
1004   (:metaclass child-class))
1005    
1006
1007 (defclass button-box (box)
1008   ((spacing
1009     :allocation :virtual
1010     :location ("gtk_button_box_get_spacing" "gtk_button_box_set_spacing")
1011     :accessor button-box-spacing
1012     :initarg :spacing
1013     :type int)
1014    (child-min-width
1015     :allocation :alien
1016     :offset #.(size-of 'int)
1017     :accessor button-box-child-min-width
1018     :initarg :child-min-width
1019     :type int)
1020    (child-min-height
1021     :allocation :alien
1022     :accessor button-box-child-min-height
1023     :initarg :child-min-height
1024     :type int)
1025    (child-ipad-x
1026     :allocation :alien
1027     :accessor button-box-child-ipad-x
1028     :initarg :child-ipad-x
1029     :type int)
1030    (child-ipad-y
1031     :allocation :alien
1032     :accessor button-box-child-ipad-y
1033     :initarg :child-ipad-y
1034     :type int)
1035    (layout
1036     :allocation :virtual
1037     :location ("gtk_button_box_get_layout" "gtk_button_box_set_layout")
1038     :accessor button-box-layout
1039     :initarg :layout
1040     :type button-box-style))
1041   (:metaclass container-class)
1042   (:alien-name "GtkButtonBox"))
1043
1044 (defclass button-box-child (box-child)
1045   ()
1046   (:metaclass child-class))
1047
1048
1049 (defclass hbutton-box (button-box)
1050   ()
1051   (:metaclass container-class)
1052   (:alien-name "GtkHButtonBox"))
1053
1054 (defclass hbutton-box-child (button-box-child)
1055   ()
1056   (:metaclass child-class))
1057
1058
1059 (defclass vbutton-box (button-box)
1060   ()
1061   (:metaclass container-class)
1062   (:alien-name "GtkVButtonBox"))
1063
1064 (defclass vbutton-box-child (button-box-child)
1065   ()
1066   (:metaclass child-class))
1067
1068
1069 (defclass vbox (box)
1070   ()
1071   (:metaclass container-class)
1072   (:alien-name "GtkVBox"))
1073
1074 (defclass vbox-child (box-child)
1075   ()
1076   (:metaclass child-class))
1077
1078
1079 (defclass color-selection (vbox)
1080   ((use-opacity
1081     :allocation :virtual
1082     :location ("gtk_color_selection_get_use_opacity"
1083                "gtk_color_selection_set_use_opacity")
1084     :accessor color-selection-use-opacity-p
1085     :initarg :use-opacity
1086     :type boolean)
1087    (use-palette
1088     :allocation :virtual
1089     :location ("gtk_color_selection_get_use_palette"
1090                "gtk_color_selection_set_use_palette")
1091     :accessor color-selection-use-palette-p
1092     :initarg :use-palette
1093     :type boolean)
1094    (color
1095     :allocation :virtual
1096     :location color-selection-color
1097     :initarg :color)
1098    (old-color
1099     :allocation :virtual
1100     :location color-selection-old-color
1101     :initarg :old-color
1102     :type (vector double-float 4)))
1103   (:metaclass container-class)
1104   (:alien-name "GtkColorSelection"))
1105
1106 (defclass color-selection-child (vbox-child)
1107   ()
1108   (:metaclass child-class))
1109
1110
1111 (defclass hbox (box)
1112   ()
1113   (:metaclass container-class)
1114   (:alien-name "GtkHBox"))
1115
1116 (defclass hbox-child (box-child)
1117   ()
1118   (:metaclass child-class))
1119
1120
1121 (defclass statusbar (hbox)
1122   ()
1123   (:metaclass container-class)
1124   (:alien-name "GtkStatusbar"))
1125
1126 (defclass statusbar-child (hbox-child)
1127   ()
1128   (:metaclass child-class))
1129
1130
1131 (defclass fixed (container)
1132   ()
1133   (:metaclass container-class)
1134   (:alien-name "GtkFixed"))
1135
1136 (defclass fixed-child (container-child)
1137   ()
1138   (:metaclass child-class))
1139
1140
1141 (defclass notebook (container)
1142   ((tab-pos
1143     :allocation :param
1144     :accessor notebook-tab-pos
1145     :initarg :tab-pos
1146     :type position-type)
1147    (show-tabs
1148     :allocation :param
1149     :accessor notebook-show-tabs-p
1150     :initarg :show-tabs
1151     :type boolean)
1152    (show-border
1153     :allocation :param
1154     :accessor notebook-show-border-p
1155     :initarg :show-border
1156     :type boolean)
1157    (scrollable
1158     :allocation :param
1159     :accessor notebook-scrollable-p
1160     :initarg :scrollable
1161     :type boolean)
1162    (tab-border
1163     :allocation :param
1164     :accessor notebook-tab-border
1165     :initarg :tab-border
1166     :type unsigned-int)
1167    (tab-hborder
1168     :allocation :param
1169     :accessor notebook-tab-hborder
1170     :initarg :tab-hborder
1171     :type unsigned-int)
1172    (tab-vborder
1173     :allocation :param
1174     :accessor notebook-tab-vborder
1175     :initarg :tab-vborder
1176     :type unsigned-int)
1177    (page
1178     :allocation :param
1179     :accessor notebook-page
1180     :initarg :page
1181     :type int)
1182    (enable-popup
1183     :allocation :param
1184     :accessor notebook-enable-popup-p
1185     :initarg :enable-popup
1186     :type boolean)
1187    (homogeneous
1188     :allocation :param
1189     :accessor notebook-homogeneous-p
1190     :initarg :homogeneous
1191     :type boolean))
1192   (:metaclass container-class)
1193   (:alien-name "GtkNotebook"))
1194
1195 (defclass notebook-child (container-child)
1196   ((tab-label
1197     :allocation :arg
1198     :accessor notebook-child-tab-label
1199     :initarg :tab-label
1200     :type string)
1201    (menu-label
1202     :allocation :arg
1203     :accessor notebook-child-menu-label
1204     :initarg :menu-label
1205     :type string)
1206    (position
1207     :allocation :arg
1208     :accessor notebook-child-position
1209     :initarg :position
1210     :type int)
1211    (tab-fill
1212     :allocation :arg
1213     :accessor notebook-child-tab-fill-p
1214     :initarg :tab-fill
1215     :type boolean)
1216    (tab-pack
1217     :allocation :arg
1218     :accessor notebook-child-tab-pack-p
1219     :initarg :tab-pack
1220     :type boolean))
1221   (:metaclass child-class))
1222
1223
1224 (defclass font-selection (notebook)
1225   ()
1226   (:metaclass container-class)
1227   (:alien-name "GtkFontSelection"))
1228
1229 (defclass font-selection-child (notebook-child)
1230   ()
1231   (:metaclass child-class))
1232
1233
1234 (defclass paned (container)
1235   ((handle-size
1236     :allocation :param
1237     :accessor paned-handle-size
1238     :initarg handle-size
1239     :type unsigned-int)
1240    (position
1241     :allocation :virtual
1242     :location ("gtk_paned_get_position" "gtk_paned_set_position")
1243     :accessor paned-position
1244     :initarg :position
1245     :type int)
1246    (child1
1247     :allocation :virtual
1248     :location paned-child1
1249     :initarg :child1
1250     :type widget)
1251    (child2
1252     :allocation :virtual
1253     :location paned-child2
1254     :initarg :child2
1255     :type widget))
1256   (:metaclass container-class)
1257   (:alien-name "GtkPaned"))
1258
1259 (defclass paned-child (container-child)
1260   ()
1261   (:metaclass child-class))
1262
1263
1264 (defclass hpaned (paned)
1265   ()
1266   (:metaclass container-class)
1267   (:alien-name "GtkHPaned"))
1268
1269 (defclass hpaned-child (paned-child)
1270   ()
1271   (:metaclass child-class))
1272
1273
1274 (defclass vpaned (paned)
1275   ()
1276   (:metaclass container-class)
1277   (:alien-name "GtkVPaned"))
1278
1279 (defclass vpaned-child (paned-child)
1280   ()
1281   (:metaclass child-class))
1282
1283
1284 (defclass layout (container)
1285   ((hadjustment
1286     :allocation :virtual
1287     :location ("gtk_layout_get_hadjustment" "gtk_layout_set_hadjustment")
1288     :accessor layout-hadjustment
1289     :initarg :hadjustment
1290     :type adjustment)
1291    (vadjustment
1292     :allocation :virtual
1293     :location ("gtk_layout_get_vadjustment" "gtk_layout_set_vadjustment")
1294     :accessor layout-vadjustment
1295     :initarg :vadjustment
1296     :type adjustment)
1297    (x-size
1298     :allocation :virtual
1299     :location layout-x-size
1300     :initarg :x-size)
1301    (y-size
1302     :allocation :virtual
1303     :location layout-y-size
1304     :initarg :y-size)
1305    (x-offset
1306     :allocation :alien
1307     :offset #.(+ (size-of 'pointer) (* (size-of 'int) 2))
1308     :accessor layout-x-offset
1309     :initarg :x-offset
1310     :type unsigned-int)
1311    (y-offset
1312     :allocation :alien
1313     :accessor layout-y-offset
1314     :initarg :y-offset
1315     :type unsigned-int))
1316   (:metaclass container-class)
1317   (:alien-name "GtkLayout"))
1318
1319 (defclass layout-child (container-child)
1320   ()
1321   (:metaclass child-class))
1322   
1323
1324 ; (defclass list-widget container
1325 ;   :c-name "GtkList"
1326 ;   :slots
1327 ;   ((selection-mode         :read-method :arg :accessor list-selection-mode
1328 ;                          :c-writer "gtk_list_set_selection_mode"
1329 ;                          :type selection-mode)))
1330
1331
1332 (defclass menu-shell (container)
1333   ()
1334   (:metaclass container-class)
1335   (:alien-name "GtkMenuShell"))
1336
1337 (defclass menu-shell-child (container-child)
1338   ()
1339   (:metaclass child-class))
1340
1341
1342 (defclass menu-bar (menu-shell)
1343   ((shadow-type
1344     :allocation :param
1345     :location "GtkMenuBar::shadow"
1346     :accessor menu-bar-shadow-type
1347     :initarg :shadow-type
1348     :type shadow-type))
1349   (:metaclass container-class)
1350   (:alien-name "GtkMenuBar"))
1351
1352 (defclass menu-bar-child (menu-shell-child)
1353   ()
1354   (:metaclass child-class))
1355   
1356
1357 (defclass menu (menu-shell)
1358   ((accel-group
1359     :allocation :virtual
1360     :location ("gtk_menu_get_accel_group" "gtk_menu_set_accel_group")
1361     :accessor menu-accel-group
1362     :initarg :accel-group
1363     :type accel-group)
1364    (tornoff
1365     :allocation :virtual
1366     :location ("gtk_menu_get_tearoff_state" "gtk_menu_set_tearoff_state")
1367     :accessor menu-tornoff-p
1368     :initarg :tearoff
1369     :type boolean)
1370    (title
1371     :allocation :virtual
1372     :location ("gtk_menu_get_title" "gtk_menu_set_title")
1373     :accessor menu-title
1374     :initarg :title
1375     :type string))
1376   (:metaclass container-class)
1377   (:alien-name "GtkMenu"))
1378
1379 (defclass menu-child (menu-shell-child)
1380   ()
1381   (:metaclass child-class))
1382   
1383
1384 (defclass packer (container)
1385   ((spacing
1386     :allocation :param
1387     :accessor packer-spacing
1388     :initarg :spacing
1389     :type unsigned-int)
1390    (default-border-width
1391     :allocation :param
1392     :accessor packer-default-border-width
1393     :initarg :default-border-width
1394     :type unsigned-int)
1395    (default-pad-x
1396     :allocation :param
1397     :accessor packer-default-pad-x
1398     :initarg :default-pad-x
1399     :type unsigned-int)
1400    (default-pad-y
1401     :allocation :param
1402     :accessor packer-default-pad-y
1403     :initarg :default-pad-y
1404     :type unsigned-int)
1405    (default-ipad-x
1406     :allocation :param
1407     :accessor packer-default-ipad-x
1408     :initarg :default-ipad-x
1409     :type unsigned-int)
1410    (default-ipad-y
1411     :allocation :param
1412     :accessor packer-default-ipad-y
1413     :initarg :default-ipad-y
1414     :type unsigned-int))
1415   (:metaclass container-class)
1416   (:alien-name "GtkPacker"))
1417
1418 (defclass packer-child (container-child)
1419   ((side
1420     :allocation :arg
1421     :accessor packer-child-side
1422     :initarg :side
1423     :type side-type)
1424    (anchor
1425     :allocation :arg
1426     :accessor packer-child-anchor
1427     :initarg :anchor
1428     :type anchor-type)
1429    (expand
1430     :allocation :arg
1431     :accessor packer-child-expand-p
1432     :initarg :expand
1433     :type boolean)
1434    (fill-x
1435     :allocation :arg
1436     :accessor packer-child-fill-x-p
1437     :initarg :fill-x
1438     :type boolean)
1439    (fill-y
1440     :allocation :arg
1441     :accessor packer-child-fill-y-p
1442     :initarg :fill-y    
1443     :type boolean)
1444    (use-default
1445     :allocation :arg
1446     :accessor packer-child-use-default
1447     :initarg :default
1448     :type boolean)
1449    (border-width
1450     :allocation :arg
1451     :accessor packer-child-border-width
1452     :initarg :default    
1453     :type unsigned-int)
1454    (pad-x
1455     :allocation :arg
1456     :accessor packer-child-pad-x
1457     :initarg :pad-x
1458     :type unsigned-int)
1459    (pad-y
1460     :allocation :arg
1461     :accessor packer-child-pad-y
1462     :initarg :pad-y
1463     :type unsigned-int)
1464    (ipad-x
1465     :allocation :arg
1466     :accessor packer-child-ipad-x
1467     :initarg :ipad-x
1468     :type unsigned-int)
1469    (ipad-y
1470     :allocation :arg
1471     :accessor packer-child-ipad-y
1472     :initarg :ipad-y
1473     :type unsigned-int)
1474    (position
1475     :allocation :arg
1476     :accessor packer-child-position
1477     :initarg :iposition
1478     :type long))
1479   (:metaclass child-class))
1480
1481
1482 ;(defclass socket (container))
1483
1484
1485 (defclass table (container)
1486   ((rows
1487     :allocation :param
1488     :location "GtkTable::n_rows"
1489     :accessor table-rows
1490     :initarg :rows
1491     :type unsigned-int)
1492    (columns
1493     :allocation :param
1494     :location "GtkTable::n_columns"
1495     :accessor table-columns
1496     :initarg :columns
1497     :type unsigned-int)
1498    (row-spacing
1499     :allocation :param
1500     :accessor table-default-row-spacing
1501     :initarg :row-spacing
1502     :type unsigned-int)
1503    (column-spacing
1504     :allocation :param
1505     :accessor table-default-column-spacing
1506     :initarg :column-spacing
1507     :type unsigned-int)
1508    (homogeneous
1509     :allocation :param
1510     :accessor table-homogeneous-p
1511     :initarg :homogeneous
1512     :type boolean))
1513   (:metaclass container-class)
1514   (:alien-name "GtkTable"))
1515
1516 (defclass table-child (container-child)
1517   ((left-attach
1518     :allocation :arg
1519     :accessor table-child-left-attach
1520     :initarg :left-attach
1521     :type unsigned-int)
1522    (right-attach
1523     :allocation :arg
1524     :accessor table-child-right-attach
1525     :initarg :right-attach
1526     :type unsigned-int)
1527    (top-attach
1528     :allocation :arg
1529     :accessor table-child-top-attach
1530     :initarg :top-attach
1531     :type unsigned-int)
1532    (bottom-attach
1533     :allocation :arg
1534     :accessor table-child-bottom-attach
1535     :initarg :bottom-attach
1536     :type unsigned-int)
1537    (x-options
1538     :allocation :arg
1539     :accessor table-child-x-options
1540     :initarg :x-options
1541     :type attach-options)
1542    (y-options
1543     :allocation :arg
1544     :accessor table-child-y-options
1545     :initarg :y-options
1546     :type attach-options)
1547    (x-padding
1548     :allocation :arg
1549     :accessor table-child-x-padding
1550     :initarg :x-padding
1551     :type unsigned-int)
1552    (y-padding
1553     :allocation :arg
1554     :accessor table-child-y-padding
1555     :initarg :y-padding
1556     :type unsigned-int)
1557    
1558    (x-expand
1559     :allocation :virtual
1560     :location table-child-x-expand-p
1561     :initarg :x-expand
1562     :type boolean)   
1563    (y-expand
1564     :allocation :virtual
1565     :location table-child-y-expand-p
1566     :initarg :y-expand
1567     :type boolean)
1568    (x-shrink
1569     :allocation :virtual
1570     :location table-child-x-shrink-p
1571     :initarg :x-shrink
1572     :type boolean)   
1573    (y-shrink
1574     :allocation :virtual
1575     :location table-child-y-shrink-p
1576     :initarg :y-shrink
1577     :type boolean)   
1578    (x-fill
1579     :allocation :virtual
1580     :location table-child-x-fill-p
1581     :initarg :x-fill
1582     :type boolean)   
1583    (y-fill
1584     :allocation :virtual
1585     :location table-child-y-fill-p
1586     :initarg :y-fill
1587     :type boolean))
1588   (:metaclass child-class))
1589   
1590
1591 (defclass toolbar (container)
1592   ((orientation
1593     :allocation :param
1594     :accessor toolbar-orientation
1595     :initarg :orientation
1596     :type orientation)
1597    (toolbar-style
1598     :allocation :param
1599     :accessor toolbar-style
1600     :initarg :toolbar-style
1601     :type toolbar-style)
1602    (space-size
1603     :allocation :param
1604     :accessor toolbar-space-size
1605     :initarg :space-size
1606     :type unsigned-int)
1607    (space-style
1608     :allocation :param
1609     :accessor toolbar-space-style
1610     :initarg :space-style
1611     :type toolbar-space-style)
1612    (relief
1613     :allocation :param
1614     :accessor toolbar-relief
1615     :initarg :relief
1616     :type relief-style)
1617    (tooltips
1618     :allocation :virtual
1619     :location ("gtk_toolbar_get_tooltips" "gtk_toolbar_set_tooltips")
1620     :accessor toolbar-tooltips-p
1621     :initarg :tooltips
1622     :type boolean))
1623   (:metaclass container-class)
1624   (:alien-name "GtkToolbar"))
1625
1626 (defclass toolbar-child (container-child)
1627   ()
1628   (:metaclass child-class))
1629
1630
1631 (defclass calendar (widget)
1632   ()
1633   (:metaclass widget-class)
1634   (:alien-name "GtkCalendar"))
1635
1636
1637 (defclass drawing-area (widget)
1638   ()
1639   (:metaclass widget-class)
1640   (:alien-name "GtkDrawingArea"))
1641
1642 ; (defclass curve drawing-area
1643 ;   :slots
1644 ;   ((curve-type             :read-method :arg :type curve-type)
1645 ;    (min-x                  :access-method :arg :type single-float)
1646 ;    (max-x                  :access-method :arg :type single-float)
1647 ;    (min-y                  :access-method :arg :type single-float)
1648 ;    (max-y                  :access-method :arg :type single-float)))
1649
1650 (defclass editable (widget)
1651   ((position
1652     :allocation :param
1653     :location "GtkEditable::text_position"
1654     :accessor ediatable-position
1655     :initarg :position
1656     :type int)
1657    (editable
1658     :allocation :param
1659     :accessor editable-editable-p
1660     :initarg :editable
1661     :type boolean)
1662    (text
1663     :allocation :virtual
1664     :location editable-text
1665     :initarg :text
1666     :type string))
1667   (:metaclass widget-class)
1668   (:alien-name "GtkEditable"))
1669
1670   
1671 (defclass entry (editable)
1672   ((max-length
1673     :allocation :param
1674     :accessor entry-max-length
1675     :initarg :max-length
1676     :type unsigned-int)
1677    (visible
1678     :allocation :param
1679     :location "GtkEntry::visibility"
1680     :accessor entry-visible-p
1681     :initarg :visible
1682     :type boolean))
1683   (:metaclass widget-class)
1684   (:alien-name "GtkEntry"))
1685   
1686
1687 (defclass combo (hbox)
1688   ((entry
1689     :allocation :virtual
1690     :location "gtk_combo_get_entry"
1691     :reader combo-entry
1692     :type entry)
1693    (use-arrows
1694     :allocation :virtual
1695     :location ("gtk_combo_get_use_arrows" "gtk_combo_set_use_arrows")
1696     :accessor combo-use-arrows-p
1697     :initarg :use-arrows
1698     :type boolean)
1699    (use-arrows-always
1700     :allocation :virtual
1701     :location
1702     ("gtk_combo_get_use_arrows_always" "gtk_combo_set_use_arrows_always")
1703     :accessor combo-use-arrows-always-p
1704     :initarg :use-arrows-always
1705     :type boolean)
1706    (case-sensitive
1707     :allocation :virtual
1708     :location ("gtk_combo_get_case_sensitive" "gtk_combo_set_case_sensitive")
1709     :accessor combo-case-sensitive-p
1710     :initarg :case-sensitive
1711     :type boolean))
1712   (:metaclass widget-class)
1713   (:alien-name "GtkCombo"))
1714   
1715
1716 (defclass spin-button (entry)
1717   ((adjustment
1718     :allocation :param
1719     :accessor spin-button-adjustment
1720     :initarg :adjustment
1721     :type adjustment)
1722    (climb-rate
1723     :allocation :param
1724     :accessor spin-button-climb-rate
1725     :initarg :climb-rate
1726     :type single-float)
1727    (digits
1728     :allocation :param
1729     :accessor spin-button-digits
1730     :initarg :digits
1731     :type unsigned-int)
1732    (snap-to-ticks
1733     :allocation :param
1734     :accessor spin-button-snap-to-ticks-p
1735     :initarg :snap-to-ticks
1736     :type boolean)
1737    (numeric
1738     :allocation :param
1739     :accessor spin-button-numeric-p
1740     :initarg :numeric
1741     :type boolean)
1742    (wrap
1743     :allocation :param
1744     :accessor spin-button-wrap-p
1745     :initarg :wrap
1746     :type boolean)
1747    (update-policy
1748     :allocation :param
1749     :accessor spin-button-update-policy
1750     :initarg :update-policy
1751     :type spin-button-update-policy)
1752    (shadow-type
1753     :allocation :param
1754     :accessor spin-button-shadow-type
1755     :initarg :shadow-type
1756     :type shadow-type)
1757    (value
1758     :allocation :param
1759     :accessor spin-button-value
1760     :initarg :value
1761     :type single-float))
1762   (:metaclass widget-class)
1763   (:alien-name "GtkSpinButton"))
1764   
1765
1766 ;; Deprecated
1767 ; (defclass text editable
1768 ;   :slots
1769 ;   ((hadjustment            :access-method :arg :type adjustment)
1770 ;    (vadjustment            :access-method :arg :type adjustment)
1771 ;    (line-wrap              :read-method :arg :type boolean)
1772 ;    (word-wrap              :read-method :arg :type boolean)
1773 ;    ;; slots not accessible through the arg mechanism
1774 ;    (point                  :type unsigned-int)
1775 ;    (length                 :read-only t :type unsigned-int)))
1776
1777 (defclass ruler (widget)
1778   ((lower
1779     :allocation :param
1780     :accessor ruler-lower
1781     :initarg :lower
1782     :type single-float)
1783    (upper
1784     :allocation :param
1785     :accessor ruler-upper
1786     :initarg :upper
1787     :type single-float)
1788    (position
1789     :allocation :param
1790     :accessor ruler-position
1791     :initarg :position
1792     :type single-float)
1793    (max-size
1794     :allocation :param
1795     :accessor ruler-max-size
1796     :initarg :max-size
1797     :type single-float)
1798    (metric
1799     :allocation :virtual
1800     :location (nil "gtk_ruler_set_metric")
1801     :accessor ruler-metric
1802     :initarg :metric
1803     :type metric-type))
1804   (:metaclass widget-class)
1805   (:alien-name "GtkRuler"))
1806
1807
1808 (defclass hruler (ruler)
1809   ()
1810   (:metaclass widget-class)
1811   (:alien-name "GtkHRuler"))
1812
1813
1814 (defclass vruler (ruler)
1815   ()
1816   (:metaclass widget-class)
1817   (:alien-name "GtkVRuler"))
1818
1819
1820 (defclass range (widget)
1821   ((update-policy
1822     :allocation :param
1823     :accessor range-update-policy
1824     :initarg :update-policy
1825     :type update-type)
1826    (adjustment
1827     :allocation :virtual
1828     :location ("gtk_range_get_adjustment" "gtk_range_set_adjustment")
1829     :accessor ruler-adjustment
1830     :initarg :adjustment
1831     :type adjustment))
1832   (:metaclass widget-class)
1833   (:alien-name "GtkRange"))
1834
1835
1836 (defclass scale (range)
1837   ((digits
1838     :allocation :param
1839     :accessor scale-digits
1840     :initarg :digits
1841     :type int)
1842    (draw-value
1843     :allocation :param
1844     :accessor scale-draw-value-p
1845     :initarg :draw-value
1846     :type boolean)
1847    (value-position
1848     :allocation :param
1849     :location "GtkScale::value_pos"
1850     :accessor scale-value-position
1851     :initarg :value-position
1852     :type position-type)
1853    (value-width
1854     :allocation :virtual
1855     :location "gtk_scale_get_value_width"
1856     :reader ruler-value-width
1857     :type int))
1858   (:metaclass widget-class)
1859   (:alien-name "GtkScale"))
1860
1861
1862 (defclass hscale (scale)
1863   ()
1864   (:metaclass widget-class)
1865   (:alien-name "GtkHScale"))
1866
1867
1868 (defclass vscale (scale)
1869   ()
1870   (:metaclass widget-class)
1871   (:alien-name "GtkVScale"))
1872
1873
1874 (defclass scrollbar (range)
1875   ()
1876   (:metaclass widget-class)
1877   (:alien-name "GtkScrollbar"))
1878
1879
1880 (defclass hscrollbar (scrollbar)
1881   ()
1882   (:metaclass widget-class)
1883   (:alien-name "GtkHScrollbar"))
1884
1885
1886 (defclass vscrollbar (scrollbar)
1887   ()
1888   (:metaclass widget-class)
1889   (:alien-name "GtkVScrollbar"))
1890
1891
1892 (defclass separator (widget)
1893   ()
1894   (:metaclass widget-class)
1895   (:alien-name "GtkSeparator"))
1896
1897
1898 (defclass hseparator (separator)
1899   ()
1900   (:metaclass widget-class)
1901   (:alien-name "GtkHSeparator"))
1902
1903
1904 (defclass vseparator (separator)
1905   ()
1906   (:metaclass widget-class)
1907   (:alien-name "GtkVSeparator"))
1908
1909
1910 ; (defclass preview widget
1911 ;   :slots
1912 ;   ((expand                 :read-method :arg :type boolean)))
1913
1914 (defclass progress (widget)
1915   ((activity-mode
1916     :allocation :param
1917     :accessor progress-activity-mode-p
1918     :initarg :activity-mode
1919     :type boolean)   
1920    (show-text
1921     :allocation :param
1922     :accessor progress-show-text-p
1923     :initarg :show-text
1924     :type boolean)
1925    (text-xalign
1926     :allocation :param
1927     :accessor progress-text-xalign
1928     :initarg :text-xalign
1929     :type single-float)
1930    (text-yalign
1931     :allocation :param
1932     :accessor progress-text-yalign
1933     :initarg :text-yalign
1934     :type single-float)
1935    (format-string
1936     :allocation :virtual
1937     :location ("gtk_progress_get_format_string"
1938                "gtk_progress_set_format_string")
1939     :accessor progress-format-string
1940     :initarg :format-string
1941     :type string)
1942    (adjustment
1943     :allocation :virtual
1944     :location ("gtk_progress_get_adjustment"
1945                "gtk_progress_set_adjustment")
1946     :accessor progress-adjustment
1947     :initarg :adjustment
1948     :type adjustment)
1949    (percentage
1950     :allocation :virtual
1951     :location ("gtk_progress_get_current_percentage"
1952                "gtk_progress_set_percentage")
1953     :accessor progress-percentage
1954     :initarg :percentage
1955     :type single-float)
1956    (value
1957     :allocation :virtual
1958     :location ("gtk_progress_get_value" "gtk_progress_set_value")
1959     :accessor progress-value
1960     :initarg :value
1961     :type single-float)
1962    (text
1963     :allocation :virtual
1964     :location ("gtk_progress_get_current_text")
1965     :reader progress-text
1966     :type string))
1967   (:metaclass widget-class)
1968   (:alien-name "GtkProgress"))
1969   
1970
1971 (defclass progress-bar (progress)
1972   ((orientation
1973     :allocation :param
1974     :accessor progress-bar-orientation
1975     :initarg :orientation
1976     :type progress-bar-orientation)
1977    (bar-style
1978     :allocation :param
1979     :accessor progress-bar-style
1980     :initarg :bar-style
1981     :type progress-bar-style)
1982    (activity-step
1983     :allocation :param
1984     :accessor progress-bar-activity-step
1985     :initarg :activity-step
1986     :type unsigned-int)
1987    (activity-blocks
1988     :allocation :param
1989     :accessor progress-bar-activity-blocks
1990     :initarg :activity-blocks
1991     :type unsigned-int)
1992    (discrete-blocks
1993     :allocation :param
1994     :accessor progress-bar-discrete-blocks
1995     :initarg :discrete-blocks
1996     :type unsigned-int)
1997    (fraction
1998     :allocation :param
1999     :accessor progress-bar-fraction
2000     :initarg :fraction
2001     :type single-float)
2002    (pulse-step
2003     :allocation :param
2004     :accessor progress-bar-pulse-step
2005     :initarg :pulse-step
2006     :type single-float)
2007    (text
2008     :allocation :virtual
2009     :location ("gtk_progress_get_current_text" "gtk_progress_bar_set_text")
2010     :accessor progress-bar-text
2011     :type string))
2012   (:metaclass widget-class)
2013   (:alien-name "GtkProgressBar"))
2014
2015 ; (defclass item-factory object)
2016