Reintroduced most widget classes
[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.2 2000-08-15 19:55:08 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
44 (defclass accel-group (alien-object)
45 ()
46 (:metaclass alien-class)
47 (:alien-name "GtkAccelGroup"))
48
49 (deftype accel-entry () 'pointer) ; internal?
50
51
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)
56 (deftype radio-menu-item-group () 'pointer)
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
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"))
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
397 :type radio-button-group))
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)
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))
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)
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))
484 (:metaclass container-class)
485 (:alien-name "GtkCheckMenuItem"))
486
487 (defclass check-menu-item-child (menu-item-child))
488
489
490 (defclass radio-menu-item (check-menu-item)
491 ((group
492 :allocation :virtual
493 :location "gtk_radio_menu_item_group"
494 :reader radio-menu-item-group
495 :type radio-menu-item-group))
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
509
510 (defclass list-item (item)
511 ()
512 (:metaclass container-class)
513 (:alien-name "GtkListItem"))
514
515 (defclass list-item-child (item-child))
516
517
518 ;; deprecated
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
611
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
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
693 (defclass scrolled-window-child (bin-child)
694 ()
695 (:metaclass child-class))
696
697
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"))
716
717 (defclass viewport-child (bin-child)
718 ()
719 (:metaclass child-class))
720
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
783
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
793
794 (defclass vbutton-box (button-box)
795 ()
796 (:metaclass container-class)
797 (:alien-name "GtkVButtonBox"))
798
799 (defclass vbutton-box-child (button-box-child)
800 ()
801 (:metaclass child-class))
802
803
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
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
825
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
836 (defclass statusbar (hbox)
837 ()
838 (:metaclass container-class)
839 (:alien-name "GtkStatusbar"))
840
841 (defclass statusbar-child (hbox-child)
842 ()
843 (:metaclass child-class))
844
845 ;; CList and CTree is deprecated
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
881 (defclass fixed (container)
882 ()
883 (:metaclass container-class)
884 (:alien-name "GtkFixed"))
885
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"))
944
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))
972
973
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
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
1052
1053 (defclass menu-shell (container)
1054 ()
1055 (:metaclass container-class)
1056 (:alien-name "GtkMenuShell"))
1057
1058 (defclass menu-shell-child (container-child)
1059 ()
1060 (:metaclass child-class))
1061
1062
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
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
1371 (defclass drawing-area (widget)
1372 ()
1373 (:metaclass widget-class)
1374 (:alien-name "GtkDrawingArea"))
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
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"))
1403
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
1420
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
1449
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
1499
1500 ;; Deprecated
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
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"))
1540
1541
1542 (defclass hruler (ruler)
1543 ()
1544 (:metaclass widget-class)
1545 (:alien-name "GtkHRuler"))
1546
1547
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"))
1568
1569
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"))
1594
1595
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"))
1624
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