Initial revision
[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 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