chiark / gitweb /
initial checkin
[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.1.1.1 2000/08/14 16:44:59 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   ()
40   (:metaclass gobject-class)
41   (:alien-name "GtkStyle"))
42
43 ; (define-boxed accel-group :c-name "GtkAccelGroup")
44
45
46 (deftype (accel-group "GtkAccelGroup") () 'pointer)
47
48 (deftype accel-entry () 'pointer)
49 (deftype radio-button-group () 'pointer)
50 (deftype radio-menu-item-group () 'pointer)
51 ; (define-boxed ctree-node :c-name "GtkCTreeNode")
52
53
54 (defclass data (object)
55   ()
56   (:metaclass object-class)
57   (:alien-name "GtkData"))
58
59
60 (defclass adjustment (data)
61   ((lower
62     :allocation :alien
63     :accessor adjustment-lower
64     :initarg :lower
65     :type single-float)
66    (upper
67     :allocation :alien
68     :accessor adjustment-upper
69     :initarg :upper
70     :type single-float)
71    (value
72     :allocation :alien
73     :accessor adjustment-value
74     :initarg :value
75     :type single-float)
76    (step-increment
77     :allocation :alien
78     :accessor adjustment-step-increment
79     :initarg :step-increment
80     :type single-float)
81    (page-increment
82     :allocation :alien
83     :accessor adjustment-page-increment
84     :initarg :page-increment
85     :type single-float)
86    (page-size
87     :allocation :alien
88     :accessor adjustment-page-size
89     :initarg :page-size
90     :type single-float))
91   (:metaclass object-class)
92   (:alien-name "GtkAdjustment"))
93   
94
95 ; (define-class tooltips data
96 ;   :slots
97 ;   ;; slots not accessible through the arg mechanism
98 ;   ((delay                  :type unsigned-int)))
99
100
101 ;; Forward declaration, the real definition is in gtkwidget.lisp
102 (defclass widget (object)
103   ()
104   (:metaclass object-class)
105   (:alien-name "GtkWidget"))
106
107
108 (defclass misc (widget)
109   ((xalign
110     :allocation :arg
111     :accessor misc-xalign
112     :initarg :xalign
113     :type single-float)
114    (yalign
115     :allocation :arg
116     :accessor misc-yalign
117     :initarg :yalign
118     :type single-float)
119    (xpad
120     :allocation :arg
121     :accessor misc-xpad
122     :initarg :xpad
123     :type int)
124    (ypad
125     :allocation :arg
126     :accessor misc-ypad
127     :initarg :ypad
128     :type int))
129   (:metaclass widget-class)
130   (:alien-name "GtkMisc"))
131
132
133 (defclass label (misc)
134   ((label
135     :allocation :arg
136     :accessor label-label
137     :initarg :label
138     :type string)
139    (pattern
140     :allocation :arg
141     :accessor label-pattern
142     :initarg :pattern
143     :type string)
144    (justify
145     :allocation :arg
146     :accessor label-justify
147     :initarg :justify
148     :type justification)
149    (wrap
150     :allocation :arg
151     :accessor label-line-wrap-p
152     :initarg :wrap
153     :type boolean))
154   (:metaclass widget-class)
155   (:alien-name "GtkLabel"))
156
157
158 (defclass accel-label (label)
159   ((widget
160     :allocation :arg
161     :location "GtkAccelLabel::accel_widget"
162     :accessor accel-widget
163     :initarg :widget
164     :type widget)
165    (width
166     :allocation :virtual
167     :location "gtk_accel_label_get_accel_width"
168     :reader width
169     :type unsigned-int))
170   (:metaclass widget-class)
171   (:alien-name "GtkAccelLabel"))
172
173
174 (defclass tips-query (label)
175   ((emit-always
176     :allocation :arg
177     :accessor tips-query-emit-always-p
178     :initarg :emit-always
179     :type boolean)
180    (caller
181     :allocation :arg
182     :accessor tips-query-caller
183     :initarg :caller
184     :type widget)
185    (label-inactive
186     :allocation :arg
187     :accessor tips-query-label-inactive
188     :initarg :label-inactive
189     :type string)
190    (label-no-tip
191     :allocation :arg
192     :accessor tips-query-label-no-tip
193     :initarg :label-no-tip
194     :type string))
195   (:metaclass widget-class)
196   (:alien-name "GtkTipsQuery"))
197
198
199 (defclass arrow (misc)
200   ((arrow-type
201     :allocation :arg
202     :accessor arrow-arrow-type
203     :initarg :arrow-type
204     :type arrow-type)
205    (shadow-type
206     :allocation :arg
207     :accessor arrow-shadow-type
208     :initarg :shadow-type
209     :type shadow-type))
210   (:metaclass widget-class)
211   (:alien-name "GtkArrow"))
212
213
214 (defclass image (misc)
215   ()
216   (:metaclass widget-class)
217   (:alien-name "GtkImage"))
218
219
220 (defclass pixmap (misc)
221   ()
222   (:metaclass widget-class)
223   (:alien-name "GtkPixmap"))
224
225
226 ;; Forward declaration, the real definition is in gtkcontainer.lisp
227 (defclass container (widget)
228   ()
229   (:metaclass widget-class)
230   (:alien-name "GtkContainer"))
231
232 (defclass container-child ()
233   ((parent
234     :initarg :parent
235     :type container)
236    (child
237     :initarg :child
238     :type widget)))
239
240
241 (defclass bin (container)
242   ((child
243     :allocation :virtual
244     :location bin-child
245     :initarg :child
246     :type widget))
247   (:metaclass container-class)
248   (:alien-name "GtkBin"))
249
250 (defclass bin-child (container-child))
251
252
253 (defclass alignment (bin)
254   ((xalign
255     :allocation :arg
256     :accessor alignment-xalign
257     :initarg :xalign
258     :type single-float)
259    (yalign
260     :allocation :arg
261     :accessor alignment-yalign
262     :initarg :yalign
263     :type single-float)
264    (xscale
265     :allocation :arg
266     :accessor alignment-xscale
267     :initarg :xscale
268     :type single-float)
269    (yscale
270     :allocation :arg
271     :accessor alignment-yscale
272     :initarg :yscale
273     :type single-float))
274   (:metaclass container-class)
275   (:alien-name "GtkAlignment"))
276
277 (defclass alignment-child (bin-child))
278
279
280 (defclass frame (bin)
281   ((label
282     :allocation :arg
283     :accessor frame-label
284     :initarg :label
285     :type string)
286    (label-xalign
287     :allocation :arg
288     :accessor frame-label-xalign
289     :initarg :label-xalign
290     :type single-float)
291    (label-yalign
292     :allocation :arg
293     :accessor frame-label-yalign
294     :initarg :label-yalign
295     :type single-float)
296    (shadow-type
297     :allocation :arg
298     :location "GtkFrame::shadow"
299     :accessor frame-shadow-type
300     :initarg :shadow-type
301     :type shadow-type))
302   (:metaclass container-class)
303   (:alien-name "GtkFrame"))
304
305 (defclass frame-child (bin-child))
306   
307
308 ; (defclass aspect-frame (frame)
309 ;   ((xalign
310 ;     :allocation :arg
311 ;     :accessor aspect-frame-xalign
312 ;     :initarg :xalign
313 ;     :type single-float)
314 ;    (yalign
315 ;     :allocation :arg
316 ;     :accessor aspect-frame-yalign
317 ;     :initarg :yalign
318 ;     :type single-float)
319 ;    (ratio
320 ;     :allocation :arg
321 ;     :accessor aspect-frame-ratio
322 ;     :initarg :ratio
323 ;     :type single-float)
324 ;    (obey-child
325 ;     :allocation :arg
326 ;     :accessor aspect-frame-obey-child-p
327 ;     :initarg :obey-child
328 ;     :type boolean))
329 ;   (:metaclass container-class)
330 ;   (:alien-name "GtkAspectFrame"))
331
332 ; (defclass aspect-frame-child (aspect-child))
333
334
335 (defclass button (bin)
336   ((label
337     :allocation :arg
338     :accessor button-label
339     :initarg :label
340     :type string)
341    (relief
342     :allocation :arg
343     :accessor button-relief
344     :initarg :relief
345     :type relief-style))
346   (:metaclass container-class)
347   (:alien-name "GtkButton"))
348
349 (defclass button-child (bin-child))
350   
351
352 (defclass toggle-button (button)
353   ((active
354     :allocation :arg
355     :accessor toggle-button-active-p
356     :initarg :active
357     :type boolean)
358    (draw-indicator
359     :allocation :arg
360     :accessor toggle-button-draw-indicator-p
361     :initarg :draw-indicator
362     :type boolean))
363   (:metaclass container-class)
364   (:alien-name "GtkToggleButton"))
365
366 (defclass toggle-button-child (button-child))
367
368
369 (defclass check-button (toggle-button)
370   ()
371   (:metaclass container-class)
372   (:alien-name "GtkCheckButton"))
373
374 (defclass check-button-child (toggle-button-child))
375
376
377 (defclass radio-button (check-button)
378   ((group
379     :allocation :arg
380     :initarg :group
381 ;    :access :write-only
382     :type pointer)) ;radio-button-group))
383   (:metaclass container-class)
384   (:alien-name "GtkRadioButton"))
385
386 (defclass radio-button-child (check-button-child))
387   
388
389 (defclass option-menu (button)
390   ((menu
391     :allocation :virtual
392     :location ("gtk_option_menu_get_menu" (setf option-menu-menu))
393     :reader option-menu-menu
394     :initarg :menu
395     :type widget)
396    (history
397     :allocation :virtual
398     :location (nil "gtk_option_menu_set_history")
399     :writer (setf option-menu-history)
400     :initarg :history
401     :type unsigned-int))
402   (:metaclass container-class)
403   (:alien-name "GtkOptionMenu"))
404
405 (defclass option-menu-child (button-child))
406
407
408 (defclass item (bin)
409   ()
410   (:metaclass container-class)
411   (:alien-name "GtkOptionMenu"))
412
413 (defclass item-child (bin-child))
414
415
416 (defclass menu-item (item)
417   ()
418 ;   :slots
419 ;   ;; slots not accessible through the arg mechanism
420 ;   ((label                  :write-only t :access-method :lisp :type string)
421 ;    (submenu                :write-method :lisp :type menu-item)
422 ;    (placement              :write-only t :type submenu-placement)
423 ;    (toggle-indicator       :c-reader "gtk_menu_item_get_show_toggle"
424 ;                          :write-method :lisp :type boolean)
425 ;    (submenu-indicator      :c-reader "gtk_menu_item_get_show_submenu"
426 ;                          :write-method :lisp :type boolean)))
427   (:metaclass container-class)
428   (:alien-name "GtkMenuItem"))
429   
430 (defclass menu-item-child (item-child))
431
432   
433 (defclass check-menu-item (menu-item)
434   ()
435 ;   :slots
436 ;   ;; slots not accessible through the arg mechanism
437 ;   ((active :type boolean)
438 ;    (toggle-indicator       :c-writer "gtk_check_menu_item_set_show_toggle"
439 ;                          :c-reader "gtk_check_menu_item_get_show_toggle"
440 ;                          :type boolean)))
441   (:metaclass container-class)
442   (:alien-name "GtkCheckMenuItem"))
443
444 (defclass check-menu-item-child (menu-item-child))
445
446 (defclass radio-menu-item (check-menu-item)
447   ()
448 ;   :slots
449 ;   ;; slots not accessible through the arg mechanism
450 ;   ((group                  :c-reader "gtk_radio_menu_item_group"
451 ;                          :type radio-menu-item-group)))
452   (:metaclass container-class)
453   (:alien-name "GtkRadioMenuItem"))
454
455 (defclass radio-menu-item-child (check-menu-item-child))
456
457
458 (defclass tearoff-menu-item (menu-item)
459   ()
460   (:metaclass container-class)
461   (:alien-name "GtkTearoffMenuItem"))
462
463 (defclass tearoff-menu-item-child (menu-item-child))
464
465 (defclass list-item (item)
466   ()
467   (:metaclass container-class)
468   (:alien-name "GtkListItem"))
469
470 (defclass list-item-child (item-child))
471   
472
473 (defclass tree-item (item)
474   ()
475 ;   :slots
476 ;   ;; slots not accessible through the arg mechanism
477 ;   ((subtree                :write-method :lisp :type tree-item)))
478   (:metaclass container-class)
479   (:alien-name "GtkTreeItem"))
480
481 (defclass tree-item-child (item-child))
482
483
484 (defclass window (bin)
485   ((type
486     :allocation :arg
487     :accessor window-type
488     :initarg :type
489     :type window-type)
490    (title
491     :allocation :arg
492     :accessor window-title
493     :initarg :title
494     :type string)
495    (auto-shrink
496     :allocation :arg
497     :accessor window-auto-shrink-p
498     :initarg :auto-shrink
499     :type boolean)
500    (allow-shrink
501     :allocation :arg
502     :accessor window-allow-shrink-p
503     :initarg :allow-shrink
504     :type boolean)
505    (allow-grow
506     :allocation :arg
507     :accessor window-allow-grow-p
508     :initarg :allow-grow
509     :type boolean)
510    (modal
511     :allocation :arg
512     :accessor window-modal-p
513     :initarg :modal
514     :type boolean)
515    (position
516     :allocation :arg
517     :location "GtkWindow::window_position"
518     :accessor window-position
519     :initarg :position
520     :type window-position)
521    (default-width
522     :allocation :arg
523     :accessor window-default-width
524     :initarg :default-width
525     :type int)
526    (default-height
527     :allocation :arg
528     :accessor window-default-height
529     :initarg :default-height
530     :type int))
531   (:metaclass container-class)
532   (:alien-name "GtkWindow"))
533
534 (defclass window-child (bin-child))
535
536
537 ; (defclass color-selection-dialog window
538 ;   :slots
539 ;   ;; slots not accessible through the arg mechanism
540 ;   ((colorsel               :read-only t :type widget)
541 ;    (main-vbox              :read-only t :type widget)
542 ;    (ok-button              :read-only t :type widget)
543 ;    (reset-button           :read-only t :type widget)
544 ;    (cancel-button          :read-only t :type widget)
545 ;    (help-button            :read-only t :type widget)))
546
547 ; (defclass dialog window
548 ;   :slots
549 ;   ;; slots not accessible through the arg mechanism
550 ;   ((action-area            :read-only t :type widget)
551 ;    (vbox                   :read-only t :type widget)))
552
553 ; (defclass input-dialog dialog)
554
555 ; (defclass file-selection window
556 ;   :slots
557 ;   ;; slots not accessible through the arg mechanism
558 ;   ((filename               :type string)
559 ;    (action-area            :read-only t :type widget)
560 ;    (ok-button              :read-only t :type widget)
561 ;    (cancel-button          :read-only t :type widget)))
562
563 ; (defclass plug window)
564
565 ; (defclass event-box bin)
566
567 ; (defclass handle-box bin
568 ;   :slots
569 ;   ((shadow-type            :read-method :arg :arg-name "shadow"
570 ;                          :type shadow-type)
571 ;    (handle-position        :read-method :arg :type position-type)
572 ;    (snap-edge              :read-method :arg :type position-type)))
573
574 (defclass scrolled-window (bin)
575   ((hadjustment
576     :allocation :arg
577     :accessor scrolled-window-hadjustment
578     :initarg :hadjustment
579     :type adjustment)   
580    (vadjustment
581     :allocation :arg
582     :accessor scrolled-window-vadjustment
583     :initarg :vadjustment
584     :type adjustment)
585    (hscrollbar-policy
586     :allocation :arg
587     :accessor scrolled-window-hscrollbar-policy
588     :initarg :hscrollbar-policy
589     :type policy-type)
590    (vscrollbar-policy
591     :allocation :arg
592     :accessor scrolled-window-vscrollbar-policy
593     :initarg :vscrollbar-policy
594     :type policy-type)
595    (placement
596     :allocation :arg
597     :location "GtkScrolledWindow::window_placement"
598     :accessor scrolled-window-placement
599     :initarg :placement
600     :type corner-type)
601    (shadow-type
602     :allocation :arg
603     :location "GtkScrolledWindow::shadow"
604     :accessor scrolled-window-shadow-type
605     :initarg :shadow-type
606     :type shadow-type)
607    (hscrollbar
608     :allocation :virtual
609     :location "gtk_scrolled_window_get_hscrollbar"
610     :accessor scrolled-window-hscrollbar
611     :type widget)
612    (vscrollbar
613     :allocation :virtual
614     :location "gtk_scrolled_window_get_vscrollbar"
615     :accessor scrolled-window-vscrollbar
616     :type widget))
617   (:metaclass container-class)
618   (:alien-name "GtkScrolledWindow"))
619
620 (defclass scrolled-window-child (bin-child))
621
622
623
624 ; (defclass viewport bin
625 ;   :slots
626 ;   ((hadjustment            :read-method :arg :type adjustment)
627 ;    (vadjustment            :read-method :arg :type adjustment)
628 ;    (shadow-type            :read-method :arg :type shadow-type)))
629
630 (defclass box (container)
631   ((spacing
632     :allocation :arg
633     :accessor box-spacing
634     :initarg :spacing
635     :type int)
636    (homogeneous
637     :allocation :arg
638     :accessor box-homogeneous-p
639     :initarg :homogeneous
640     :type boolean))
641   (:metaclass container-class)
642   (:alien-name "GtkBox"))
643
644 (defclass box-child (container-child)
645   ((expand
646     :allocation :arg
647     :accessor box-child-expand-p
648     :initarg :expand
649     :type boolean)
650    (fill
651     :allocation :arg
652     :accessor box-child-fill-p
653     :initarg :fill
654     :type boolean)
655    (padding
656     :allocation :arg
657     :accessor box-child-padding
658     :initarg :padding
659     :type unsigned-long)
660    (pack-type
661     :allocation :arg
662     :accessor box-child-pack-type
663     :initarg :pack-type
664     :type pack-type)
665    (position
666     :allocation :arg
667     :accessor box-child-position
668     :initarg :position
669     :type long))
670   (:metaclass child-class))
671    
672
673 (defclass button-box (box)
674   ((spacing
675     :allocation :virtual
676     :location ("gtk_button_box_get_spacing" "gtk_button_box_set_spacing")
677     :accessor button-box-spacing
678     :type int)
679    (layout
680     :allocation :virtual
681     :location ("gtk_button_box_get_layout" "gtk_button_box_set_layout")
682     :accessor button-box-layout
683     :type button-box-style))
684   (:metaclass container-class)
685   (:alien-name "GtkButtonBox"))
686
687 (defclass button-box-child (box-child)
688   ()
689   (:metaclass child-class))
690
691 (defclass hbutton-box (button-box)
692   ()
693   (:metaclass container-class)
694   (:alien-name "GtkHButtonBox"))
695
696 (defclass hbutton-box-child (button-box-child)
697   ()
698   (:metaclass child-class))
699
700 (defclass vbutton-box-child (button-box-child)
701   ()
702   (:metaclass child-class))
703
704 (defclass vbox (box)
705   ()
706   (:metaclass container-class)
707   (:alien-name "GtkVBox"))
708
709 (defclass vbox-child (box-child)
710   ()
711   (:metaclass child-class))
712
713
714
715 ; (defclass color-selection vbox
716 ;   :slots
717 ;   ((policy                 :c-writer "gtk_color_selection_set_update_policy"
718 ;                          :read-method :arg :type update-type)
719 ;    (use-opacity            :c-writer "gtk_color_selection_set_opacity"
720 ;                          :read-method :arg :type boolean)
721 ;    ;; slots not accessible through the arg mechanism
722 ;    (color                  :access-method :lisp)))
723
724 ; (defclass gamma-curve vbox)
725
726 (defclass hbox (box)
727   ()
728   (:metaclass container-class)
729   (:alien-name "GtkHBox"))
730
731 (defclass hbox-child (box-child)
732   ()
733   (:metaclass child-class))
734
735
736
737 ; (defclass statusbar hbox)
738
739 ; (defclass clist container
740 ;   :c-name "GtkCList"
741 ;   :c-prefix "gtk_clist_"
742 ;   :slots
743 ;   ((n-columns              :read-only t :initarg t :access-method :arg
744 ;                          :type unsigned-int)
745 ;    (shadow-type            :read-method :arg :type shadow-type)
746 ;    (selection-mode         :read-method :arg :type selection-mode)
747 ;    (row-height             :read-method :arg :type unsigned-int)
748 ;    (reorderable            :read-method :arg :type boolean)
749 ;    (titles-visible         :write-method :lisp :type boolean)
750 ;    (titles-active          :access-method :arg :type boolean)
751 ;    (use-drag-icons         :read-method :arg :type boolean)
752 ;    (sort-type              :read-method :arg :type sort-type)
753 ;    ;; slots not accessible through the arg mechanism
754 ;    (hadjustment            :type adjustment)
755 ;    (vadjustment            :type adjustment)
756 ;    (sort-column            :type int)
757 ;    (focus-row              :reader %clist-focus-row :read-only t :type int)
758 ;    (n-rows                 :read-only t :type int)))
759
760 ; (defclass ctree clist
761 ;   :c-name "GtkCTree"
762 ;   :c-prefix "gtk_ctree_"
763 ;   :slots
764 ;   ((n-columns              :read-only t :initarg t :access-method :arg
765 ;                          :type unsigned-int)
766 ;    (tree-column            :read-only t :initarg t :access-method :arg
767 ;                          :type unsigned-int)
768 ;    (indent                 :read-method :arg :type unsigned-int)
769 ;    (spacing                :read-method :arg :type unsigned-int)
770 ;    (show-stub              :read-method :arg :type boolean)
771 ;    (line-style             :read-method :arg :type ctree-line-style)
772 ;    (expander-style         :read-method :arg :type ctree-expander-style)))
773
774 ; (defclass fixed container)
775
776 ; (defclass notebook container
777 ;   :slots
778 ;   ((show-tabs              :read-method :arg :type boolean)
779 ;    (show-border            :read-method :arg :type boolean)
780 ;    (scrollable             :read-method :arg :type boolean)
781 ;    (enable-popup           :access-method :arg :type boolean)
782 ;    (homogeneous            :c-writer "gtk_notebook_set_homogeneous_tabs"
783 ;                          :read-method :arg :type boolean)
784 ;    (current-page           :c-writer "gtk_notebook_set_page" :type int)
785 ;    (tab-pos                :read-method :arg :type position-type)
786 ;    (tab-border             :read-method :arg :type unsigned-int)
787 ;    (tab-hborder            :read-method :arg :type unsigned-int)
788 ;    (tab-vborder            :read-method :arg :type unsigned-int))
789 ;   :child-slots
790 ;   ((tab-label              :access-method :arg :type string)
791 ;    (menu-label             :access-method :arg :type string)
792 ;    (tab-fill               :access-method :arg :type boolean)
793 ;    (tab-pack               :access-method :arg :type boolean)
794 ;    (position               :access-method :arg :type int)))
795
796 ; (defclass font-selection notebook)
797
798 ; (defclass paned container
799 ;   :constructor nil
800 ;   :slots
801 ;   ((handle-size            :read-method :arg :type unsigned-int)
802 ;    (gutter-size            :read-method :arg :type unsigned-int)
803 ;    ;; slots not accessible through the arg mechanism
804 ;    (position               :write-only t :type int)))
805
806 ; (defclass hpaned paned)
807
808 ; (defclass vpaned paned)
809
810 ; (defclass layout container
811 ;   :slots
812 ;   ;; slots not accessible through the arg mechanism
813 ;   ((hadjustment            :type adjustment)
814 ;    (vadjustment            :type adjustment)
815 ;    (bin-window             :read-only t :type gdk:window)))
816
817 ; (defclass list-widget container
818 ;   :c-name "GtkList"
819 ;   :slots
820 ;   ((selection-mode         :read-method :arg :accessor list-selection-mode
821 ;                          :c-writer "gtk_list_set_selection_mode"
822 ;                          :type selection-mode)))
823
824 ; (defclass menu-shell container :constructor nil)
825
826 ; (defclass menu-bar menu-shell
827 ;   :slots
828 ;   ((shadow-type            :read-method :arg :arg-name "shadow"
829 ;                          :type shadow-type)))
830
831 ; (defclass menu menu-shell
832 ;   :slots
833 ;   ;; slots not accessible through the arg mechanism
834 ;   ((accel-group            :type accel-group)
835 ;    (tearoff-state          :write-only t :type boolean)
836 ;    (title                  :write-only t :type string)))
837
838 ; (defclass packer container
839 ;   :slots
840 ;   ((spacing                :read-method :arg :type unsigned-int)
841 ;    (default-border-width   :read-method :arg :type unsigned-int)
842 ;    (default-pad-x          :access-method :arg :type unsigned-int)
843 ;    (default-pad-y          :access-method :arg :type unsigned-int)
844 ;    (default-ipad-x         :access-method :arg :type unsigned-int)
845 ;    (default-ipad-y         :access-method :arg :type unsigned-int))
846 ;   :child-slots
847 ;   ((side                   :access-method :arg :type side-type)
848 ;    (anchor                 :access-method :arg :type anchor-type)
849 ;    (expand                 :access-method :arg :type boolean)
850 ;    (fill-x                 :access-method :arg :type boolean)
851 ;    (fill-y                 :access-method :arg :type boolean)
852 ;    (use-default            :access-method :arg :type boolean)
853 ;    (border-width           :access-method :arg :type unsigned-int)
854 ;    (pad-x                  :access-method :arg :type unsigned-int)
855 ;    (pad-y                  :access-method :arg :type unsigned-int)
856 ;    (ipad-x                 :access-method :arg :type unsigned-int)
857 ;    (ipad-y                 :access-method :arg :type unsigned-int)
858 ;    (position               :access-method :arg :type long)))
859
860 ; (defclass socket container)
861
862 ; (defclass table container
863 ;   :slots
864 ;   ((rows                   :access-method :arg :arg-name "n_rows"
865 ;                          :type unsigned-int)
866 ;    (columns                :access-method :arg :arg-name "n_columns"
867 ;                          :type unsigned-int)
868 ;    (row-spacing            :c-writer "gtk_table_set_row_spacings"
869 ;                          :accessor table-row-spacings
870 ;                          :read-method :arg :type unsigned-int)
871 ;    (column-spacing         :c-writer "gtk_table_set_col_spacings"
872 ;                          :accessor table-column-spacings
873 ;                          :read-method :arg  :type unsigned-int)
874 ;    (homogeneous            :read-method :arg :type boolean))
875 ;   :child-slots
876 ;   ((left-attach            :access-method :arg :type unsigned-int)
877 ;    (right-attach           :access-method :arg :type unsigned-int)
878 ;    (top-attach             :access-method :arg :type unsigned-int)
879 ;    (bottom-attach          :access-method :arg :type unsigned-int)
880 ;    (x-options              :access-method :arg :type attach-options)
881 ;    (y-options              :access-method :arg :type attach-options)
882 ;    (x-padding              :access-method :arg :type unsigned-int)
883 ;    (y-padding              :access-method :arg :type unsigned-int)
884 ;    ;; Slots added for convenience sake
885 ;    (x-expand               :access-method :lisp :type boolean)
886 ;    (y-expand               :access-method :lisp :type boolean)
887 ;    (x-shrink               :access-method :lisp :type boolean)
888 ;    (y-shrink               :access-method :lisp :type boolean)
889 ;    (x-fill                 :access-method :lisp :type boolean)
890 ;    (y-fill                 :access-method :lisp :type boolean)))
891
892 ; (defclass toolbar container
893 ;   :slots
894 ;   ((orientation            :read-method :arg :type orientation)
895 ;    (toolbar-style          :accessor toolbar-style
896 ;                            :c-writer "gtk_toolbar_set_style"
897 ;                          :read-method :arg :type toolbar-style)
898 ;    (space-size             :read-method :arg :type unsigned-int)
899 ;    (space-style            :read-method :arg :type toolbar-space-style)
900 ;    (relief                 :c-writer "gtk_toolbar_set_button_relief"
901 ;                          :read-method :arg :type relief-style)
902 ;    ;; slots not accessible through the arg mechanism
903 ;    (tooltips               :write-only t :type boolean)))
904
905 (defclass tree (container)
906   ()
907 ;   :slots
908 ;   ;; slots not accessible through the arg mechanism
909 ;   ((selection-mode         :type selection-mode)
910 ;    (view-mode              :type tree-view-mode)
911 ;    (view-lines             :type boolean)
912 ;    (root-tree              :read-only t :type tree)))
913   (:metaclass container-class)
914   (:alien-name "GtkTree"))
915
916
917 (defclass calendar (widget)
918   ()
919   (:metaclass widget-class)
920   (:alien-name "GtkCalendar"))
921
922
923 ; (defclass drawing-area widget)
924
925 ; (defclass curve drawing-area
926 ;   :slots
927 ;   ((curve-type             :read-method :arg :type curve-type)
928 ;    (min-x                  :access-method :arg :type single-float)
929 ;    (max-x                  :access-method :arg :type single-float)
930 ;    (min-y                  :access-method :arg :type single-float)
931 ;    (max-y                  :access-method :arg :type single-float)))
932
933 ; (defclass editable widget
934 ;   :slots
935 ;   ((position               :type int)
936 ;    (editable               :read-method :arg :type boolean)
937 ;    ;; slots not accessible through the arg mechanism
938 ;    (text                   :access-method :lisp :type string)))
939
940 ; (defclass entry editable
941 ;   :slots
942 ;   ((max-length             :read-method :arg :type unsigned-int)
943 ;    (visibility             :read-method :arg :accessor entry-visible-p
944 ;                          :type boolean)
945 ;    ;; slots not accessible through the arg mechanism
946 ;    (text                   :type string)))
947
948 ; (defclass combo hbox
949 ;   :slots
950 ;   ;; slots not accessible through the arg mechanism
951 ;   ((entry                  :read-only t :type entry)
952 ;    (use-arrows             :type boolean)
953 ;    (use-arrows-always      :type boolean)
954 ;    (case-sensitive         :type boolean)))
955
956 ; (defclass spin-button entry
957 ;   :slots
958 ;   ((adjustment             :access-method :arg :type adjustment)
959 ;    (climb-rate             :access-method :arg :type single-float)
960 ;    (digits                 :access-method :arg :type unsigned-int)
961 ;    (snap-to-ticks          :read-method :arg :type boolean)
962 ;    (numeric                :read-method :arg :type boolean)
963 ;    (wrap                   :read-method :arg :type boolean)
964 ;    (update-policy          :read-method :arg :type spin-button-update-policy)
965 ;    (shadow-type            :read-method :arg :type shadow-type)
966 ;    (value                  :read-method :arg :type single-float)))
967
968 ; (defclass text editable
969 ;   :slots
970 ;   ((hadjustment            :access-method :arg :type adjustment)
971 ;    (vadjustment            :access-method :arg :type adjustment)
972 ;    (line-wrap              :read-method :arg :type boolean)
973 ;    (word-wrap              :read-method :arg :type boolean)
974 ;    ;; slots not accessible through the arg mechanism
975 ;    (point                  :type unsigned-int)
976 ;    (length                 :read-only t :type unsigned-int)))
977
978 ; (defclass ruler widget
979 ;   :constructor nil
980 ;   :slots
981 ;   ((lower                  :access-method :arg :type single-float)
982 ;    (upper                  :access-method :arg :type single-float)
983 ;    (position               :access-method :arg :type single-float)
984 ;    (max-size               :access-method :arg :type single-float)
985 ;    ;; slots not accessible through the arg mechanism
986 ;    (:metric                :write-only t :type metric-type)))
987
988 ; (defclass hruler ruler)
989
990 ; (defclass vruler ruler)
991
992 ; (defclass range widget
993 ;   :slots
994 ;   ((update-policy          :read-method :arg :type update-type)
995 ;    ;; slots not accessible through the arg mechanism
996 ;    (adjustment             :type adjustment)))
997
998 ; (defclass scale range
999 ;   :constructor nil
1000 ;   :slots
1001 ;   ((digits                 :read-method :arg :type unsigned-int)
1002 ;    (draw-value             :read-method :arg :type boolean)
1003 ;    (value-pos              :read-method :arg :type position-type)
1004 ;    ;; slots not accessible through the arg mechanism
1005 ;    (value-width            :read-only t :type int)))
1006
1007 ; (defclass hscale scale)
1008
1009 ; (defclass vscale scale)
1010
1011 ; (defclass scrollbar range :constructor nil)
1012
1013 ; (defclass hscrollbar scrollbar)
1014
1015 ; (defclass vscrollbar scrollbar)
1016
1017 (defclass separator (widget)
1018   ()
1019   (:metaclass widget-class)
1020   (:alien-name "GtkSeparator"))
1021
1022
1023 (defclass hseparator (separator)
1024   ()
1025   (:metaclass widget-class)
1026   (:alien-name "GtkHSeparator"))
1027
1028
1029 (defclass vseparator (separator)
1030   ()
1031   (:metaclass widget-class)
1032   (:alien-name "GtkVSeparator"))
1033
1034
1035 ; (defclass preview widget
1036 ;   :slots
1037 ;   ((expand                 :read-method :arg :type boolean)))
1038
1039 ; (defclass progress widget
1040 ;   :slots
1041 ;   ((activity-mode          :read-method :arg :type boolean)
1042 ;    (show-text              :read-method :arg :type boolean)
1043 ;    (text-xalign            :access-method :arg :type single-float)
1044 ;    (text-yalign            :access-method :arg :type single-float)
1045 ;    ;; slots not accessible through the arg mechanism
1046 ;    (format-string          :type string)
1047 ;    (adjustment             :type adjustment)
1048 ;    (percentage             :c-reader "gtk_progress_get_current_percentage"
1049 ;                          :type single-float)
1050 ;    (value                  :type single-float)
1051 ;    (text                   :c-reader "gtk_progress_get_current_text"
1052 ;                          :read-only t :type string)))
1053
1054 ; (defclass progress-bar progress
1055 ;   :slots
1056 ;   ((adjustment             :c-writer "gtk_progress_set_adjustment"
1057 ;                          :read-method :arg :type adjustment)
1058 ;    (orientation            :read-method :arg :type progress-bar-orientation)
1059 ;    (bar-style              :read-method :arg :accessor progress-bar-style
1060 ;                          :type progress-bar-style)
1061 ;    (activity-step          :read-method :arg :type unsigned-int)
1062 ;    (activity-blocks        :read-method :arg :type unsigned-int)
1063 ;    (discrete-blocks        :read-method :arg :type unsigned-int)))
1064
1065 ; (defclass item-factory object)
1066