chiark / gitweb /
Reintroduced most widget classes
[clg] / gtk / gtktypes.lisp
CommitLineData
560af5c5 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
2d379b6a 18;; $Id: gtktypes.lisp,v 1.2 2000-08-15 19:55:08 espen Exp $
560af5c5 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
560af5c5 43
2d379b6a 44(defclass accel-group (alien-object)
45 ()
46 (:metaclass alien-class)
47 (:alien-name "GtkAccelGroup"))
48
49(deftype accel-entry () 'pointer) ; internal?
560af5c5 50
560af5c5 51
2d379b6a 52;; These types are actully a single linked lists of widgets. As long as
53;; we don't have to access the individual widgets defining them this way
54;; is adequate and most efficient.
55(deftype radio-button-group () 'pointer)
560af5c5 56(deftype radio-menu-item-group () 'pointer)
560af5c5 57
58
59(defclass data (object)
60 ()
61 (:metaclass object-class)
62 (:alien-name "GtkData"))
63
64
65(defclass adjustment (data)
66 ((lower
67 :allocation :alien
68 :accessor adjustment-lower
69 :initarg :lower
70 :type single-float)
71 (upper
72 :allocation :alien
73 :accessor adjustment-upper
74 :initarg :upper
75 :type single-float)
76 (value
77 :allocation :alien
78 :accessor adjustment-value
79 :initarg :value
80 :type single-float)
81 (step-increment
82 :allocation :alien
83 :accessor adjustment-step-increment
84 :initarg :step-increment
85 :type single-float)
86 (page-increment
87 :allocation :alien
88 :accessor adjustment-page-increment
89 :initarg :page-increment
90 :type single-float)
91 (page-size
92 :allocation :alien
93 :accessor adjustment-page-size
94 :initarg :page-size
95 :type single-float))
96 (:metaclass object-class)
97 (:alien-name "GtkAdjustment"))
98
99
2d379b6a 100(defclass tooltips (data)
101 ((delay
102 :allocation :virtual
103 :location ("gtk_tooltips_get_delay" "gtk_tooltips_set_delay")
104 :accessor tooltips-delay
105 :type unsigned-int)
106 (enabled
107 :allocation :virtual
108 :location ("gtk_tooltips_get_enabled" (setf tooltips-enabled-p))
109 :reader tooltips-enabled-p
110 :initarg :enabled
111 :type boolean))
112 (:metaclass object-class)
113 (:alien-name "GtkTooltips"))
560af5c5 114
115
116;; Forward declaration, the real definition is in gtkwidget.lisp
117(defclass widget (object)
118 ()
119 (:metaclass object-class)
120 (:alien-name "GtkWidget"))
121
122
123(defclass misc (widget)
124 ((xalign
125 :allocation :arg
126 :accessor misc-xalign
127 :initarg :xalign
128 :type single-float)
129 (yalign
130 :allocation :arg
131 :accessor misc-yalign
132 :initarg :yalign
133 :type single-float)
134 (xpad
135 :allocation :arg
136 :accessor misc-xpad
137 :initarg :xpad
138 :type int)
139 (ypad
140 :allocation :arg
141 :accessor misc-ypad
142 :initarg :ypad
143 :type int))
144 (:metaclass widget-class)
145 (:alien-name "GtkMisc"))
146
147
148(defclass label (misc)
149 ((label
150 :allocation :arg
151 :accessor label-label
152 :initarg :label
153 :type string)
154 (pattern
155 :allocation :arg
156 :accessor label-pattern
157 :initarg :pattern
158 :type string)
159 (justify
160 :allocation :arg
161 :accessor label-justify
162 :initarg :justify
163 :type justification)
164 (wrap
165 :allocation :arg
166 :accessor label-line-wrap-p
167 :initarg :wrap
168 :type boolean))
169 (:metaclass widget-class)
170 (:alien-name "GtkLabel"))
171
172
173(defclass accel-label (label)
174 ((widget
175 :allocation :arg
176 :location "GtkAccelLabel::accel_widget"
177 :accessor accel-widget
178 :initarg :widget
179 :type widget)
180 (width
181 :allocation :virtual
182 :location "gtk_accel_label_get_accel_width"
183 :reader width
184 :type unsigned-int))
185 (:metaclass widget-class)
186 (:alien-name "GtkAccelLabel"))
187
188
189(defclass tips-query (label)
190 ((emit-always
191 :allocation :arg
192 :accessor tips-query-emit-always-p
193 :initarg :emit-always
194 :type boolean)
195 (caller
196 :allocation :arg
197 :accessor tips-query-caller
198 :initarg :caller
199 :type widget)
200 (label-inactive
201 :allocation :arg
202 :accessor tips-query-label-inactive
203 :initarg :label-inactive
204 :type string)
205 (label-no-tip
206 :allocation :arg
207 :accessor tips-query-label-no-tip
208 :initarg :label-no-tip
209 :type string))
210 (:metaclass widget-class)
211 (:alien-name "GtkTipsQuery"))
212
213
214(defclass arrow (misc)
215 ((arrow-type
216 :allocation :arg
217 :accessor arrow-arrow-type
218 :initarg :arrow-type
219 :type arrow-type)
220 (shadow-type
221 :allocation :arg
222 :accessor arrow-shadow-type
223 :initarg :shadow-type
224 :type shadow-type))
225 (:metaclass widget-class)
226 (:alien-name "GtkArrow"))
227
228
229(defclass image (misc)
230 ()
231 (:metaclass widget-class)
232 (:alien-name "GtkImage"))
233
234
235(defclass pixmap (misc)
236 ()
237 (:metaclass widget-class)
238 (:alien-name "GtkPixmap"))
239
240
241;; Forward declaration, the real definition is in gtkcontainer.lisp
242(defclass container (widget)
243 ()
244 (:metaclass widget-class)
245 (:alien-name "GtkContainer"))
246
247(defclass container-child ()
248 ((parent
249 :initarg :parent
250 :type container)
251 (child
252 :initarg :child
253 :type widget)))
254
255
256(defclass bin (container)
257 ((child
258 :allocation :virtual
259 :location bin-child
260 :initarg :child
261 :type widget))
262 (:metaclass container-class)
263 (:alien-name "GtkBin"))
264
265(defclass bin-child (container-child))
266
267
268(defclass alignment (bin)
269 ((xalign
270 :allocation :arg
271 :accessor alignment-xalign
272 :initarg :xalign
273 :type single-float)
274 (yalign
275 :allocation :arg
276 :accessor alignment-yalign
277 :initarg :yalign
278 :type single-float)
279 (xscale
280 :allocation :arg
281 :accessor alignment-xscale
282 :initarg :xscale
283 :type single-float)
284 (yscale
285 :allocation :arg
286 :accessor alignment-yscale
287 :initarg :yscale
288 :type single-float))
289 (:metaclass container-class)
290 (:alien-name "GtkAlignment"))
291
292(defclass alignment-child (bin-child))
293
294
295(defclass frame (bin)
296 ((label
297 :allocation :arg
298 :accessor frame-label
299 :initarg :label
300 :type string)
301 (label-xalign
302 :allocation :arg
303 :accessor frame-label-xalign
304 :initarg :label-xalign
305 :type single-float)
306 (label-yalign
307 :allocation :arg
308 :accessor frame-label-yalign
309 :initarg :label-yalign
310 :type single-float)
311 (shadow-type
312 :allocation :arg
313 :location "GtkFrame::shadow"
314 :accessor frame-shadow-type
315 :initarg :shadow-type
316 :type shadow-type))
317 (:metaclass container-class)
318 (:alien-name "GtkFrame"))
319
320(defclass frame-child (bin-child))
321
322
323; (defclass aspect-frame (frame)
324; ((xalign
325; :allocation :arg
326; :accessor aspect-frame-xalign
327; :initarg :xalign
328; :type single-float)
329; (yalign
330; :allocation :arg
331; :accessor aspect-frame-yalign
332; :initarg :yalign
333; :type single-float)
334; (ratio
335; :allocation :arg
336; :accessor aspect-frame-ratio
337; :initarg :ratio
338; :type single-float)
339; (obey-child
340; :allocation :arg
341; :accessor aspect-frame-obey-child-p
342; :initarg :obey-child
343; :type boolean))
344; (:metaclass container-class)
345; (:alien-name "GtkAspectFrame"))
346
347; (defclass aspect-frame-child (aspect-child))
348
349
350(defclass button (bin)
351 ((label
352 :allocation :arg
353 :accessor button-label
354 :initarg :label
355 :type string)
356 (relief
357 :allocation :arg
358 :accessor button-relief
359 :initarg :relief
360 :type relief-style))
361 (:metaclass container-class)
362 (:alien-name "GtkButton"))
363
364(defclass button-child (bin-child))
365
366
367(defclass toggle-button (button)
368 ((active
369 :allocation :arg
370 :accessor toggle-button-active-p
371 :initarg :active
372 :type boolean)
373 (draw-indicator
374 :allocation :arg
375 :accessor toggle-button-draw-indicator-p
376 :initarg :draw-indicator
377 :type boolean))
378 (:metaclass container-class)
379 (:alien-name "GtkToggleButton"))
380
381(defclass toggle-button-child (button-child))
382
383
384(defclass check-button (toggle-button)
385 ()
386 (:metaclass container-class)
387 (:alien-name "GtkCheckButton"))
388
389(defclass check-button-child (toggle-button-child))
390
391
392(defclass radio-button (check-button)
393 ((group
394 :allocation :arg
395 :initarg :group
396; :access :write-only
2d379b6a 397 :type radio-button-group))
560af5c5 398 (:metaclass container-class)
399 (:alien-name "GtkRadioButton"))
400
401(defclass radio-button-child (check-button-child))
402
403
404(defclass option-menu (button)
405 ((menu
406 :allocation :virtual
407 :location ("gtk_option_menu_get_menu" (setf option-menu-menu))
408 :reader option-menu-menu
409 :initarg :menu
410 :type widget)
411 (history
412 :allocation :virtual
413 :location (nil "gtk_option_menu_set_history")
414 :writer (setf option-menu-history)
415 :initarg :history
416 :type unsigned-int))
417 (:metaclass container-class)
418 (:alien-name "GtkOptionMenu"))
419
420(defclass option-menu-child (button-child))
421
422
423(defclass item (bin)
424 ()
425 (:metaclass container-class)
426 (:alien-name "GtkOptionMenu"))
427
428(defclass item-child (bin-child))
429
430
431(defclass menu-item (item)
2d379b6a 432 ((label
433 :allocation :virtual
434 :location menu-item-label
435 :initarg :label
436 :type string)
437 (submenu
438 :allocation :virtual
439 :location ("gtk_menu_item_get_submenu" (setf menu-item-submenu))
440 :reader menu-item-submenu
441 :initarg :submenu
442 :type menu-item)
443 (placement
444 :allocation :virtual
445 :location ("gtk_menu_item_get_placement" "gtk_menu_item_set_placement")
446 :accessor menu-item-placement
447 :initarg :placement
448 :type submenu-placement)
449 (toggle-indicator
450 :allocation :virtual
451 :location ("gtk_menu_item_get_show_toggle"
452 (setf menu-item-toggle-indicator-p))
453 :reader menu-item-toggle-indicator-p
454 :initarg :toggle-indicator
455 :type boolean)
456 (submenu-indicator
457 :allocation :virtual
458 :location ("gtk_menu_item_get_show_submenu"
459 (setf menu-item-submenu-indicator-p))
460 :reader menu-item-submenu-indicator-p
461 :initarg :submenu-indicator
462 :type boolean))
560af5c5 463 (:metaclass container-class)
464 (:alien-name "GtkMenuItem"))
465
466(defclass menu-item-child (item-child))
467
468
469(defclass check-menu-item (menu-item)
2d379b6a 470 ((active
471 :allocation :virtual
472 :location ("gtk_check_menu_item_get_active"
473 "gtk_check_menu_item_set_active")
474 :accessor check-menu-item-active-p
475 :initarg :active
476 :type boolean)
477 (toggle-indicator
478 :allocation :virtual
479 :location ("gtk_check_menu_item_get_show_toggle"
480 "gtk_check_menu_item_set_show_toggle")
481 :accessor check-menu-item-toggle-indicator-p
482 :initarg :toggle-indicator
483 :type boolean))
560af5c5 484 (:metaclass container-class)
485 (:alien-name "GtkCheckMenuItem"))
486
487(defclass check-menu-item-child (menu-item-child))
488
2d379b6a 489
560af5c5 490(defclass radio-menu-item (check-menu-item)
2d379b6a 491 ((group
492 :allocation :virtual
493 :location "gtk_radio_menu_item_group"
494 :reader radio-menu-item-group
495 :type radio-menu-item-group))
560af5c5 496 (:metaclass container-class)
497 (:alien-name "GtkRadioMenuItem"))
498
499(defclass radio-menu-item-child (check-menu-item-child))
500
501
502(defclass tearoff-menu-item (menu-item)
503 ()
504 (:metaclass container-class)
505 (:alien-name "GtkTearoffMenuItem"))
506
507(defclass tearoff-menu-item-child (menu-item-child))
508
2d379b6a 509
560af5c5 510(defclass list-item (item)
511 ()
512 (:metaclass container-class)
513 (:alien-name "GtkListItem"))
514
515(defclass list-item-child (item-child))
516
517
2d379b6a 518;; deprecated
560af5c5 519(defclass tree-item (item)
520 ()
521; :slots
522; ;; slots not accessible through the arg mechanism
523; ((subtree :write-method :lisp :type tree-item)))
524 (:metaclass container-class)
525 (:alien-name "GtkTreeItem"))
526
527(defclass tree-item-child (item-child))
528
529
530(defclass window (bin)
531 ((type
532 :allocation :arg
533 :accessor window-type
534 :initarg :type
535 :type window-type)
536 (title
537 :allocation :arg
538 :accessor window-title
539 :initarg :title
540 :type string)
541 (auto-shrink
542 :allocation :arg
543 :accessor window-auto-shrink-p
544 :initarg :auto-shrink
545 :type boolean)
546 (allow-shrink
547 :allocation :arg
548 :accessor window-allow-shrink-p
549 :initarg :allow-shrink
550 :type boolean)
551 (allow-grow
552 :allocation :arg
553 :accessor window-allow-grow-p
554 :initarg :allow-grow
555 :type boolean)
556 (modal
557 :allocation :arg
558 :accessor window-modal-p
559 :initarg :modal
560 :type boolean)
561 (position
562 :allocation :arg
563 :location "GtkWindow::window_position"
564 :accessor window-position
565 :initarg :position
566 :type window-position)
567 (default-width
568 :allocation :arg
569 :accessor window-default-width
570 :initarg :default-width
571 :type int)
572 (default-height
573 :allocation :arg
574 :accessor window-default-height
575 :initarg :default-height
576 :type int))
577 (:metaclass container-class)
578 (:alien-name "GtkWindow"))
579
580(defclass window-child (bin-child))
581
582
583; (defclass color-selection-dialog window
584; :slots
585; ;; slots not accessible through the arg mechanism
586; ((colorsel :read-only t :type widget)
587; (main-vbox :read-only t :type widget)
588; (ok-button :read-only t :type widget)
589; (reset-button :read-only t :type widget)
590; (cancel-button :read-only t :type widget)
591; (help-button :read-only t :type widget)))
592
593; (defclass dialog window
594; :slots
595; ;; slots not accessible through the arg mechanism
596; ((action-area :read-only t :type widget)
597; (vbox :read-only t :type widget)))
598
599; (defclass input-dialog dialog)
600
601; (defclass file-selection window
602; :slots
603; ;; slots not accessible through the arg mechanism
604; ((filename :type string)
605; (action-area :read-only t :type widget)
606; (ok-button :read-only t :type widget)
607; (cancel-button :read-only t :type widget)))
608
609; (defclass plug window)
610
560af5c5 611
2d379b6a 612(defclass event-box (bin)
613 ()
614 (:metaclass container-class)
615 (:alien-name "GtkEventBox"))
616
617(defclass event-box-child (bin-child)
618 ()
619 (:metaclass child-class))
620
621
622(defclass handle-box (bin)
623 ((shadow-type
624 :allocation :arg
625 :location "GtkHandleBox::shadow"
626 :accessor handle-box-shadow-type
627 :initarg :shadow-type
628 :type shadow-type)
629 (handle-position
630 :allocation :arg
631 :accessor handle-box-handle-position
632 :initarg :handle-position
633 :type position-type)
634 (snap-edge
635 :allocation :arg
636 :accessor handle-box-snap-edge
637 :initarg :snap-edge
638 :type position-type))
639 (:metaclass container-class)
640 (:alien-name "GtkHandleBox"))
641
642(defclass handle-box-child (bin-child)
643 ()
644 (:metaclass child-class))
645
560af5c5 646
647(defclass scrolled-window (bin)
648 ((hadjustment
649 :allocation :arg
650 :accessor scrolled-window-hadjustment
651 :initarg :hadjustment
652 :type adjustment)
653 (vadjustment
654 :allocation :arg
655 :accessor scrolled-window-vadjustment
656 :initarg :vadjustment
657 :type adjustment)
658 (hscrollbar-policy
659 :allocation :arg
660 :accessor scrolled-window-hscrollbar-policy
661 :initarg :hscrollbar-policy
662 :type policy-type)
663 (vscrollbar-policy
664 :allocation :arg
665 :accessor scrolled-window-vscrollbar-policy
666 :initarg :vscrollbar-policy
667 :type policy-type)
668 (placement
669 :allocation :arg
670 :location "GtkScrolledWindow::window_placement"
671 :accessor scrolled-window-placement
672 :initarg :placement
673 :type corner-type)
674 (shadow-type
675 :allocation :arg
676 :location "GtkScrolledWindow::shadow"
677 :accessor scrolled-window-shadow-type
678 :initarg :shadow-type
679 :type shadow-type)
680 (hscrollbar
681 :allocation :virtual
682 :location "gtk_scrolled_window_get_hscrollbar"
683 :accessor scrolled-window-hscrollbar
684 :type widget)
685 (vscrollbar
686 :allocation :virtual
687 :location "gtk_scrolled_window_get_vscrollbar"
688 :accessor scrolled-window-vscrollbar
689 :type widget))
690 (:metaclass container-class)
691 (:alien-name "GtkScrolledWindow"))
692
2d379b6a 693(defclass scrolled-window-child (bin-child)
694 ()
695 (:metaclass child-class))
560af5c5 696
697
2d379b6a 698(defclass viewport (bin)
699 ((hadjustment
700 :allocation :arg
701 :accessor viewport-hadjustment
702 :initarg :hadjustment
703 :type adjustment)
704 (vadjustment
705 :allocation :arg
706 :accessor viewport-vadjustment
707 :initarg :vadjustment
708 :type adjustment)
709 (shadow-type
710 :allocation :arg
711 :accessor viewport-shadow-type
712 :initarg :shadow-type
713 :type shadow-type))
714 (:metaclass container-class)
715 (:alien-name "GtkViewport"))
560af5c5 716
2d379b6a 717(defclass viewport-child (bin-child)
718 ()
719 (:metaclass child-class))
720
560af5c5 721
722(defclass box (container)
723 ((spacing
724 :allocation :arg
725 :accessor box-spacing
726 :initarg :spacing
727 :type int)
728 (homogeneous
729 :allocation :arg
730 :accessor box-homogeneous-p
731 :initarg :homogeneous
732 :type boolean))
733 (:metaclass container-class)
734 (:alien-name "GtkBox"))
735
736(defclass box-child (container-child)
737 ((expand
738 :allocation :arg
739 :accessor box-child-expand-p
740 :initarg :expand
741 :type boolean)
742 (fill
743 :allocation :arg
744 :accessor box-child-fill-p
745 :initarg :fill
746 :type boolean)
747 (padding
748 :allocation :arg
749 :accessor box-child-padding
750 :initarg :padding
751 :type unsigned-long)
752 (pack-type
753 :allocation :arg
754 :accessor box-child-pack-type
755 :initarg :pack-type
756 :type pack-type)
757 (position
758 :allocation :arg
759 :accessor box-child-position
760 :initarg :position
761 :type long))
762 (:metaclass child-class))
763
764
765(defclass button-box (box)
766 ((spacing
767 :allocation :virtual
768 :location ("gtk_button_box_get_spacing" "gtk_button_box_set_spacing")
769 :accessor button-box-spacing
770 :type int)
771 (layout
772 :allocation :virtual
773 :location ("gtk_button_box_get_layout" "gtk_button_box_set_layout")
774 :accessor button-box-layout
775 :type button-box-style))
776 (:metaclass container-class)
777 (:alien-name "GtkButtonBox"))
778
779(defclass button-box-child (box-child)
780 ()
781 (:metaclass child-class))
782
2d379b6a 783
560af5c5 784(defclass hbutton-box (button-box)
785 ()
786 (:metaclass container-class)
787 (:alien-name "GtkHButtonBox"))
788
789(defclass hbutton-box-child (button-box-child)
790 ()
791 (:metaclass child-class))
792
2d379b6a 793
794(defclass vbutton-box (button-box)
795 ()
796 (:metaclass container-class)
797 (:alien-name "GtkVButtonBox"))
798
560af5c5 799(defclass vbutton-box-child (button-box-child)
800 ()
801 (:metaclass child-class))
802
2d379b6a 803
560af5c5 804(defclass vbox (box)
805 ()
806 (:metaclass container-class)
807 (:alien-name "GtkVBox"))
808
809(defclass vbox-child (box-child)
810 ()
811 (:metaclass child-class))
812
813
560af5c5 814; (defclass color-selection vbox
815; :slots
816; ((policy :c-writer "gtk_color_selection_set_update_policy"
817; :read-method :arg :type update-type)
818; (use-opacity :c-writer "gtk_color_selection_set_opacity"
819; :read-method :arg :type boolean)
820; ;; slots not accessible through the arg mechanism
821; (color :access-method :lisp)))
822
823; (defclass gamma-curve vbox)
824
2d379b6a 825
560af5c5 826(defclass hbox (box)
827 ()
828 (:metaclass container-class)
829 (:alien-name "GtkHBox"))
830
831(defclass hbox-child (box-child)
832 ()
833 (:metaclass child-class))
834
835
2d379b6a 836(defclass statusbar (hbox)
837 ()
838 (:metaclass container-class)
839 (:alien-name "GtkStatusbar"))
560af5c5 840
2d379b6a 841(defclass statusbar-child (hbox-child)
842 ()
843 (:metaclass child-class))
560af5c5 844
2d379b6a 845;; CList and CTree is deprecated
560af5c5 846; (defclass clist container
847; :c-name "GtkCList"
848; :c-prefix "gtk_clist_"
849; :slots
850; ((n-columns :read-only t :initarg t :access-method :arg
851; :type unsigned-int)
852; (shadow-type :read-method :arg :type shadow-type)
853; (selection-mode :read-method :arg :type selection-mode)
854; (row-height :read-method :arg :type unsigned-int)
855; (reorderable :read-method :arg :type boolean)
856; (titles-visible :write-method :lisp :type boolean)
857; (titles-active :access-method :arg :type boolean)
858; (use-drag-icons :read-method :arg :type boolean)
859; (sort-type :read-method :arg :type sort-type)
860; ;; slots not accessible through the arg mechanism
861; (hadjustment :type adjustment)
862; (vadjustment :type adjustment)
863; (sort-column :type int)
864; (focus-row :reader %clist-focus-row :read-only t :type int)
865; (n-rows :read-only t :type int)))
866
867; (defclass ctree clist
868; :c-name "GtkCTree"
869; :c-prefix "gtk_ctree_"
870; :slots
871; ((n-columns :read-only t :initarg t :access-method :arg
872; :type unsigned-int)
873; (tree-column :read-only t :initarg t :access-method :arg
874; :type unsigned-int)
875; (indent :read-method :arg :type unsigned-int)
876; (spacing :read-method :arg :type unsigned-int)
877; (show-stub :read-method :arg :type boolean)
878; (line-style :read-method :arg :type ctree-line-style)
879; (expander-style :read-method :arg :type ctree-expander-style)))
880
2d379b6a 881(defclass fixed (container)
882 ()
883 (:metaclass container-class)
884 (:alien-name "GtkFixed"))
560af5c5 885
2d379b6a 886(defclass fixed-child (container-child)
887 ()
888 (:metaclass child-class))
889
890
891(defclass notebook (container)
892 ((tab-pos
893 :allocation :arg
894 :accessor notebook-tab-pos
895 :initarg :tab-pos
896 :type position-type)
897 (show-tabs
898 :allocation :arg
899 :accessor notebook-show-tabs-p
900 :initarg :show-tabs
901 :type boolean)
902 (show-border
903 :allocation :arg
904 :accessor notebook-show-border-p
905 :initarg :show-border
906 :type boolean)
907 (scrollable
908 :allocation :arg
909 :accessor notebook-scrollable-p
910 :initarg :scrollable
911 :type boolean)
912 (tab-border
913 :allocation :arg
914 :accessor notebook-tab-border
915 :initarg :tab-border
916 :type unsigned-int)
917 (tab-hborder
918 :allocation :arg
919 :accessor notebook-tab-hborder
920 :initarg :tab-hborder
921 :type unsigned-int)
922 (tab-vborder
923 :allocation :arg
924 :accessor notebook-tab-vborder
925 :initarg :tab-vborder
926 :type unsigned-int)
927 (page
928 :allocation :arg
929 :accessor notebook-page
930 :initarg :page
931 :type int)
932 (enable-popup
933 :allocation :arg
934 :accessor notebook-enable-popup-p
935 :initarg :enable-popup
936 :type boolean)
937 (homogeneous
938 :allocation :arg
939 :accessor notebook-homogeneous-p
940 :initarg :homogeneous
941 :type boolean))
942 (:metaclass container-class)
943 (:alien-name "GtkNotebook"))
560af5c5 944
2d379b6a 945(defclass notebook-child (container-child)
946 ((tab-label
947 :allocation :arg
948 :accessor notebook-child-tab-label
949 :initarg :tab-label
950 :type string)
951 (menu-label
952 :allocation :arg
953 :accessor notebook-child-menu-label
954 :initarg :menu-label
955 :type string)
956 (position
957 :allocation :arg
958 :accessor notebook-child-position
959 :initarg :position
960 :type int)
961 (tab-fill
962 :allocation :arg
963 :accessor notebook-child-tab-fill-p
964 :initarg :tab-fill
965 :type boolean)
966 (tab-pack
967 :allocation :arg
968 :accessor notebook-child-tab-pack-p
969 :initarg :tab-pack
970 :type boolean))
971 (:metaclass child-class))
560af5c5 972
560af5c5 973
2d379b6a 974(defclass font-selection (notebook)
975 ()
976 (:metaclass container-class)
977 (:alien-name "GtkFontSelection"))
978
979(defclass font-selection-child (notebook-child)
980 ()
981 (:metaclass child-class))
982
983
984(defclass paned (container)
985 ((handle-size
986 :allocation :arg
987 :accessor paned-handle-size
988 :initarg handle-size
989 :type unsigned-int)
990 (position
991 :allocation :virtual
992 :location ("gtk_paned_get_position" "gtk_paned_set_position")
993 :accessor paned-position
994 :initarg :position
995 :type int))
996 (:metaclass container-class)
997 (:alien-name "GtkPaned"))
998
999(defclass paned-child (container-child)
1000 ()
1001 (:metaclass child-class))
1002
1003
1004(defclass hpaned (paned)
1005 ()
1006 (:metaclass container-class)
1007 (:alien-name "GtkHPaned"))
1008
1009(defclass hpaned-child (paned-child)
1010 ()
1011 (:metaclass child-class))
1012
1013
1014(defclass vpaned (paned)
1015 ()
1016 (:metaclass container-class)
1017 (:alien-name "GtkVPaned"))
1018
1019(defclass vpaned-child (paned-child)
1020 ()
1021 (:metaclass child-class))
1022
1023
1024(defclass layout (container)
1025 ((hadjustment
1026 :allocation :virtual
1027 :location ("gtk_layout_get_hadjustment" "gtk_layout_set_hadjustment")
1028 :accessor layout-hadjustment
1029 :initarg :hadjustment
1030 :type adjustment)
1031 (vadjustment
1032 :allocation :virtual
1033 :location ("gtk_layout_get_vadjustment" "gtk_layout_set_vadjustment")
1034 :accessor layout-vadjustment
1035 :initarg :vadjustment
1036 :type adjustment))
1037 (:metaclass container-class)
1038 (:alien-name "GtkLayout"))
1039
1040(defclass layout-child (container-child)
1041 ()
1042 (:metaclass child-class))
1043
560af5c5 1044
1045; (defclass list-widget container
1046; :c-name "GtkList"
1047; :slots
1048; ((selection-mode :read-method :arg :accessor list-selection-mode
1049; :c-writer "gtk_list_set_selection_mode"
1050; :type selection-mode)))
1051
560af5c5 1052
2d379b6a 1053(defclass menu-shell (container)
1054 ()
1055 (:metaclass container-class)
1056 (:alien-name "GtkMenuShell"))
560af5c5 1057
2d379b6a 1058(defclass menu-shell-child (container-child)
1059 ()
1060 (:metaclass child-class))
560af5c5 1061
560af5c5 1062
2d379b6a 1063(defclass menu-bar (menu-shell)
1064 ((shadow-type
1065 :allocation :arg
1066 :location "GtkMenuBar::shadow"
1067 :accessor menu-bar-shadow-type
1068 :initarg :shadow-type
1069 :type shadow-type))
1070 (:metaclass container-class)
1071 (:alien-name "GtkMenuBar"))
1072
1073(defclass menu-bar-child (menu-shell-child)
1074 ()
1075 (:metaclass child-class))
1076
1077
1078(defclass menu (menu-shell)
1079 ((accel-group
1080 :allocation :virtual
1081 :location ("gtk_menu_get_accel_group" "gtk_menu_set_accel_group")
1082 :accessor menu-accel-group
1083 :initarg :accel-group
1084 :type accel-group)
1085 (tornoff
1086 :allocation :virtual
1087 :location ("gtk_menu_get_tearoff_state" "gtk_menu_set_tearoff_state")
1088 :accessor menu-tornoff-p
1089 :initarg :tearoff
1090 :type boolean)
1091 (title
1092 :allocation :virtual
1093 :location ("gtk_menu_get_title" "gtk_menu_set_title")
1094 :accessor menu-title
1095 :initarg :title
1096 :type string))
1097 (:metaclass container-class)
1098 (:alien-name "GtkMenu"))
1099
1100(defclass menu-child (menu-shell-child)
1101 ()
1102 (:metaclass child-class))
1103
1104
1105(defclass packer (container)
1106 ((spacing
1107 :allocation :arg
1108 :accessor packer-spacing
1109 :initarg :spacing
1110 :type unsigned-int)
1111 (default-border-width
1112 :allocation :arg
1113 :accessor packer-default-border-width
1114 :initarg :default-border-width
1115 :type unsigned-int)
1116 (default-pad-x
1117 :allocation :arg
1118 :accessor packer-default-pad-x
1119 :initarg :default-pad-x
1120 :type unsigned-int)
1121 (default-pad-y
1122 :allocation :arg
1123 :accessor packer-default-pad-y
1124 :initarg :default-pad-y
1125 :type unsigned-int)
1126 (default-ipad-x
1127 :allocation :arg
1128 :accessor packer-default-ipad-y
1129 :initarg :default-ipad-y
1130 :type unsigned-int)
1131 (default-ipad-y
1132 :allocation :arg
1133 :accessor packer-default-ipad-y
1134 :initarg :default-ipad-y
1135 :type unsigned-int))
1136 (:metaclass container-class)
1137 (:alien-name "GtkPacker"))
1138
1139(defclass packer-child (container-child)
1140 ((side
1141 :allocation :arg
1142 :accessor packer-child-side
1143 :initarg :side
1144 :type side-type)
1145 (anchor
1146 :allocation :arg
1147 :accessor packer-child-anchor
1148 :initarg :anchor
1149 :type anchor-type)
1150 (expand
1151 :allocation :arg
1152 :accessor packer-child-expand-p
1153 :initarg :expand
1154 :type boolean)
1155 (fill-x
1156 :allocation :arg
1157 :accessor packer-child-fill-x-p
1158 :initarg :fill-x
1159 :type boolean)
1160 (fill-y
1161 :allocation :arg
1162 :accessor packer-child-fill-y-p
1163 :initarg :fill-y
1164 :type boolean)
1165 (use-default
1166 :allocation :arg
1167 :accessor packer-child-use-default
1168 :initarg :default
1169 :type boolean)
1170 (border-width
1171 :allocation :arg
1172 :accessor packer-child-border-width
1173 :initarg :default
1174 :type unsigned-int)
1175 (pad-x
1176 :allocation :arg
1177 :accessor packer-child-pad-x
1178 :initarg :pad-x
1179 :type unsigned-int)
1180 (pad-y
1181 :allocation :arg
1182 :accessor packer-child-pad-y
1183 :initarg :pad-y
1184 :type unsigned-int)
1185 (ipad-x
1186 :allocation :arg
1187 :accessor packer-child-ipad-x
1188 :initarg :ipad-x
1189 :type unsigned-int)
1190 (ipad-y
1191 :allocation :arg
1192 :accessor packer-child-ipad-y
1193 :initarg :ipad-y
1194 :type unsigned-int)
1195 (position
1196 :allocation :arg
1197 :accessor packer-child-position
1198 :initarg :iposition
1199 :type long))
1200 (:metaclass child-class))
1201
1202
1203;(defclass socket (container))
1204
1205
1206(defclass table (container)
1207 ((rows
1208 :allocation :arg
1209 :location "GtkTable::n_rows"
1210 :accessor table-rows
1211 :initarg :rows
1212 :type unsigned-int)
1213 (columns
1214 :allocation :arg
1215 :location "GtkTable::n_columns"
1216 :accessor table-columns
1217 :initarg :columns
1218 :type unsigned-int)
1219 (row-spacing
1220 :allocation :arg
1221 :accessor table-row-spacing
1222 :initarg :row-spacing
1223 :type unsigned-int)
1224 (column-spacing
1225 :allocation :arg
1226 :accessor table-column-spacing
1227 :initarg :column-spacing
1228 :type unsigned-int)
1229 (homogeneous
1230 :allocation :arg
1231 :accessor table-homogeneous-p
1232 :initarg :homogeneous
1233 :type boolean))
1234 (:metaclass container-class)
1235 (:alien-name "GtkTable"))
1236
1237(defclass table-child (container-child)
1238 ((left-attach
1239 :allocation :arg
1240 :accessor table-child-left-attach
1241 :initarg :left-attach
1242 :type unsigned-int)
1243 (right-attach
1244 :allocation :arg
1245 :accessor table-child-right-attach
1246 :initarg :right-attach
1247 :type unsigned-int)
1248 (top-attach
1249 :allocation :arg
1250 :accessor table-child-top-attach
1251 :initarg :top-attach
1252 :type unsigned-int)
1253 (bottom-attach
1254 :allocation :arg
1255 :accessor table-child-bottom-attach
1256 :initarg :bottom-attach
1257 :type unsigned-int)
1258 (x-options
1259 :allocation :arg
1260 :accessor table-child-x-options
1261 :initarg :x-options
1262 :type attach-options)
1263 (y-options
1264 :allocation :arg
1265 :accessor table-child-y-options
1266 :initarg :y-options
1267 :type attach-options)
1268 (x-padding
1269 :allocation :arg
1270 :accessor table-child-x-padding
1271 :initarg :x-padding
1272 :type unsigned-int)
1273 (y-padding
1274 :allocation :arg
1275 :accessor table-child-y-padding
1276 :initarg :y-padding
1277 :type unsigned-int)
1278
1279 (x-expand
1280 :allocation :virtual
1281 :location table-child-x-expand-p
1282 :initarg :x-expand
1283 :type boolean)
1284 (y-expand
1285 :allocation :virtual
1286 :location table-child-y-expand-p
1287 :initarg :y-expand
1288 :type boolean)
1289 (x-shrink
1290 :allocation :virtual
1291 :location table-child-x-shrink-p
1292 :initarg :x-shrink
1293 :type boolean)
1294 (y-shrink
1295 :allocation :virtual
1296 :location table-child-y-shrink-p
1297 :initarg :y-shrink
1298 :type boolean)
1299 (x-fill
1300 :allocation :virtual
1301 :location table-child-x-fill-p
1302 :initarg :x-fill
1303 :type boolean)
1304 (y-fill
1305 :allocation :virtual
1306 :location table-child-y-fill-p
1307 :initarg :y-fill
1308 :type boolean))
1309 (:metaclass child-class))
1310
1311
1312(defclass toolbar (container)
1313 ((orientation
1314 :allocation :arg
1315 :accessor toolbar-orientation
1316 :initarg :orientation
1317 :type orientation)
1318 (toolbar-style
1319 :allocation :arg
1320 :accessor toolbar-style
1321 :initarg :toolbar-style
1322 :type toolbar-style)
1323 (space-size
1324 :allocation :arg
1325 :accessor toolbar-space-size
1326 :initarg :space-size
1327 :type unsigned-int)
1328 (space-style
1329 :allocation :arg
1330 :accessor toolbar-space-style
1331 :initarg :space-style
1332 :type toolbar-space-style)
1333 (relief
1334 :allocation :arg
1335 :accessor toolbar-relief
1336 :initarg :relief
1337 :type relief-style)
1338 (tooltips
1339 :allocation :virtual
1340 :location ("gtk_toolbar_get_tooltips" "gtk_toolbar_set_tooltips")
1341 :accessor toolbar-tooltips-p
1342 :initarg :tooltips
1343 :type boolean))
1344 (:metaclass container-class)
1345 (:alien-name "GtkToolbar"))
1346
1347(defclass toolbar-child (container-child)
1348 ()
1349 (:metaclass child-class))
1350
1351
1352;; Deprecated
560af5c5 1353(defclass tree (container)
1354 ()
1355; :slots
1356; ;; slots not accessible through the arg mechanism
1357; ((selection-mode :type selection-mode)
1358; (view-mode :type tree-view-mode)
1359; (view-lines :type boolean)
1360; (root-tree :read-only t :type tree)))
1361 (:metaclass container-class)
1362 (:alien-name "GtkTree"))
1363
1364
1365(defclass calendar (widget)
1366 ()
1367 (:metaclass widget-class)
1368 (:alien-name "GtkCalendar"))
1369
1370
2d379b6a 1371(defclass drawing-area (widget)
1372 ()
1373 (:metaclass widget-class)
1374 (:alien-name "GtkDrawingArea"))
560af5c5 1375
1376; (defclass curve drawing-area
1377; :slots
1378; ((curve-type :read-method :arg :type curve-type)
1379; (min-x :access-method :arg :type single-float)
1380; (max-x :access-method :arg :type single-float)
1381; (min-y :access-method :arg :type single-float)
1382; (max-y :access-method :arg :type single-float)))
1383
2d379b6a 1384(defclass editable (widget)
1385 ((position
1386 :allocation :arg
1387 :location "GtkEditable::text_position"
1388 :accessor ediatable-position
1389 :initarg :position
1390 :type int)
1391 (editable
1392 :allocation :arg
1393 :accessor ediatable-editable-p
1394 :initarg :editabe
1395 :type boolean)
1396 (text
1397 :allocation :virtual
1398 :location editable-text
1399 :initarg text
1400 :type string))
1401 (:metaclass widget-class)
1402 (:alien-name "GtkEditable"))
560af5c5 1403
2d379b6a 1404
1405(defclass entry (editable)
1406 ((max-length
1407 :allocation :arg
1408 :accessor entry-max-length
1409 :initarg :max-length
1410 :type unsigned-int)
1411 (visible
1412 :allocation :arg
1413 :location "GtkEntry::visibility"
1414 :accessor entry-visible-p
1415 :initarg :visible
1416 :type boolean))
1417 (:metaclass widget-class)
1418 (:alien-name "GtkEntry"))
1419
560af5c5 1420
2d379b6a 1421(defclass combo (hbox)
1422 ((entry
1423 :allocation :virtual
1424 :location "gtk_combo_get_entry"
1425 :reader combo-entry
1426 :type entry)
1427 (use-arrows
1428 :allocation :virtual
1429 :location ("gtk_combo_get_use_arrows" "gtk_combo_set_use_arrows")
1430 :accessor combo-use-arrows-p
1431 :initarg :use-arrows
1432 :type boolean)
1433 (use-arrows-always
1434 :allocation :virtual
1435 :location
1436 ("gtk_combo_get_use_arrows_always" "gtk_combo_set_use_arrows_always")
1437 :accessor combo-use-arrows-always-p
1438 :initarg :use-arrows-always
1439 :type boolean)
1440 (case-sensitive
1441 :allocation :virtual
1442 :location ("gtk_combo_get_case_sensitive" "gtk_combo_set_case_sensitive")
1443 :accessor combo-case-sensitive-p
1444 :initarg :case-sensitive
1445 :type boolean))
1446 (:metaclass widget-class)
1447 (:alien-name "GtkCombo"))
1448
560af5c5 1449
2d379b6a 1450(defclass spin-button (entry)
1451 ((adjustment
1452 :allocation :arg
1453 :accessor spin-button-adjustment
1454 :initarg :adjustment
1455 :type adjustment)
1456 (climb-rate
1457 :allocation :arg
1458 :accessor spin-button-climb-rate
1459 :initarg :climb-rate
1460 :type single-float)
1461 (digits
1462 :allocation :arg
1463 :accessor spin-button-digits
1464 :initarg :digits
1465 :type unsigned-int)
1466 (snap-to-ticks
1467 :allocation :arg
1468 :accessor spin-button-snap-to-ticks-p
1469 :initarg :snap-to-ticks
1470 :type boolean)
1471 (numeric
1472 :allocation :arg
1473 :accessor spin-button-numeric-p
1474 :initarg :numeric
1475 :type boolean)
1476 (wrap
1477 :allocation :arg
1478 :accessor spin-button-wrap-p
1479 :initarg :wrap
1480 :type boolean)
1481 (update-policy
1482 :allocation :arg
1483 :accessor spin-button-update-policy
1484 :initarg :update-policy
1485 :type spin-button-update-policy)
1486 (shadow-type
1487 :allocation :arg
1488 :accessor spin-button-shadow-type
1489 :initarg :shadow-type
1490 :type shadow-type)
1491 (value
1492 :allocation :arg
1493 :accessor spin-button-value
1494 :initarg :value
1495 :type single-float))
1496 (:metaclass widget-class)
1497 (:alien-name "GtkSpinButton"))
1498
560af5c5 1499
2d379b6a 1500;; Deprecated
560af5c5 1501; (defclass text editable
1502; :slots
1503; ((hadjustment :access-method :arg :type adjustment)
1504; (vadjustment :access-method :arg :type adjustment)
1505; (line-wrap :read-method :arg :type boolean)
1506; (word-wrap :read-method :arg :type boolean)
1507; ;; slots not accessible through the arg mechanism
1508; (point :type unsigned-int)
1509; (length :read-only t :type unsigned-int)))
1510
2d379b6a 1511(defclass ruler (widget)
1512 ((lower
1513 :allocation :arg
1514 :accessor ruler-lower
1515 :initarg :lower
1516 :type single-float)
1517 (upper
1518 :allocation :arg
1519 :accessor ruler-upper
1520 :initarg :upper
1521 :type single-float)
1522 (position
1523 :allocation :arg
1524 :accessor ruler-position
1525 :initarg :position
1526 :type single-float)
1527 (max-size
1528 :allocation :arg
1529 :accessor ruler-max-size
1530 :initarg :max-size
1531 :type single-float)
1532 (metric
1533 :allocation :virtual
1534 :location (nil "gtk_ruler_set_metric")
1535 :accessor ruler-metric
1536 :initarg :metric
1537 :type metric-type))
1538 (:metaclass widget-class)
1539 (:alien-name "GtkRuler"))
560af5c5 1540
560af5c5 1541
2d379b6a 1542(defclass hruler (ruler)
1543 ()
1544 (:metaclass widget-class)
1545 (:alien-name "GtkHRuler"))
560af5c5 1546
560af5c5 1547
2d379b6a 1548(defclass vruler (ruler)
1549 ()
1550 (:metaclass widget-class)
1551 (:alien-name "GtkVRuler"))
1552
1553
1554(defclass range (widget)
1555 ((update-policy
1556 :allocation :arg
1557 :accessor range-update-policy
1558 :initarg :update-policy
1559 :type update-type)
1560 (adjustment
1561 :allocation :virtual
1562 :location ("gtk_range_get_adjustment" "gtk_range_set_adjustment")
1563 :accessor ruler-adjustment
1564 :initarg :adjustment
1565 :type adjustment))
1566 (:metaclass widget-class)
1567 (:alien-name "GtkRange"))
560af5c5 1568
560af5c5 1569
2d379b6a 1570(defclass scale (range)
1571 ((digits
1572 :allocation :arg
1573 :accessor scale-digits
1574 :initarg :digits
1575 :type unsigned-int)
1576 (draw-value
1577 :allocation :arg
1578 :accessor scale-draw-value-p
1579 :initarg :draw-value
1580 :type boolean)
1581 (value-position
1582 :allocation :arg
1583 :location "GtkScale::value_pos"
1584 :accessor scale-value-position
1585 :initarg :value-position
1586 :type position-type)
1587 (value-width
1588 :allocation :virtual
1589 :location "gtk_scale_get_value_width"
1590 :reader ruler-value-width
1591 :type int))
1592 (:metaclass widget-class)
1593 (:alien-name "GtkScale"))
560af5c5 1594
560af5c5 1595
2d379b6a 1596(defclass hscale (scale)
1597 ()
1598 (:metaclass widget-class)
1599 (:alien-name "GtkHScale"))
1600
1601
1602(defclass vscale (scale)
1603 ()
1604 (:metaclass widget-class)
1605 (:alien-name "GtkVScale"))
1606
1607
1608(defclass scrollbar (range)
1609 ()
1610 (:metaclass widget-class)
1611 (:alien-name "GtkScrollbar"))
1612
1613
1614(defclass hscrollbar (scrollbar)
1615 ()
1616 (:metaclass widget-class)
1617 (:alien-name "GtkHScrollbar"))
1618
1619
1620(defclass vscrollbar (scrollbar)
1621 ()
1622 (:metaclass widget-class)
1623 (:alien-name "GtkVScrollbar"))
560af5c5 1624
560af5c5 1625
1626(defclass separator (widget)
1627 ()
1628 (:metaclass widget-class)
1629 (:alien-name "GtkSeparator"))
1630
1631
1632(defclass hseparator (separator)
1633 ()
1634 (:metaclass widget-class)
1635 (:alien-name "GtkHSeparator"))
1636
1637
1638(defclass vseparator (separator)
1639 ()
1640 (:metaclass widget-class)
1641 (:alien-name "GtkVSeparator"))
1642
1643
1644; (defclass preview widget
1645; :slots
1646; ((expand :read-method :arg :type boolean)))
1647
1648; (defclass progress widget
1649; :slots
1650; ((activity-mode :read-method :arg :type boolean)
1651; (show-text :read-method :arg :type boolean)
1652; (text-xalign :access-method :arg :type single-float)
1653; (text-yalign :access-method :arg :type single-float)
1654; ;; slots not accessible through the arg mechanism
1655; (format-string :type string)
1656; (adjustment :type adjustment)
1657; (percentage :c-reader "gtk_progress_get_current_percentage"
1658; :type single-float)
1659; (value :type single-float)
1660; (text :c-reader "gtk_progress_get_current_text"
1661; :read-only t :type string)))
1662
1663; (defclass progress-bar progress
1664; :slots
1665; ((adjustment :c-writer "gtk_progress_set_adjustment"
1666; :read-method :arg :type adjustment)
1667; (orientation :read-method :arg :type progress-bar-orientation)
1668; (bar-style :read-method :arg :accessor progress-bar-style
1669; :type progress-bar-style)
1670; (activity-step :read-method :arg :type unsigned-int)
1671; (activity-blocks :read-method :arg :type unsigned-int)
1672; (discrete-blocks :read-method :arg :type unsigned-int)))
1673
1674; (defclass item-factory object)
1675