chiark / gitweb /
Updated for CMUCL 19a and glib-2.4. Lots of improvements
[clg] / gtk / gtktypes.lisp
1 ;; Common Lisp bindings for GTK+ v2.0.x
2 ;; Copyright (C) 1999-2001 Espen S. Johnsen <espen@users.sourceforge.org>
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.16 2004-10-31 12:05:52 espen Exp $
19
20
21 (in-package "GTK")
22
23 (defclass requisition (boxed)
24   ((width
25     :allocation :alien
26     :accessor requisition-width
27     :initarg :width
28     :type int)
29    (height
30     :allocation :alien
31     :accessor requisition-height
32     :initarg :height
33     :type int))
34   (:metaclass boxed-class))
35
36
37 (defclass allocation (struct)
38   ((x
39     :allocation :alien
40     :accessor allocation-width
41     :initarg :x
42     :type int)
43    (y
44     :allocation :alien
45     :accessor allocation-width
46     :initarg :width
47     :type int)
48    (width
49     :allocation :alien
50     :accessor allocation-width
51     :initarg :width
52     :type int)
53    (height
54     :allocation :alien
55     :accessor allocation-height
56     :initarg :height
57     :type int))
58   (:metaclass proxy-class))
59
60 (defclass border (boxed)
61   ((left
62     :allocation :alien
63     :accessor border-left
64     :initarg :left
65     :type int)
66    (right
67     :allocation :alien
68     :accessor border-right
69     :initarg :right
70     :type int)
71    (top
72     :allocation :alien
73     :accessor border-top
74     :initarg :top
75     :type int)
76    (bottom
77     :allocation :alien
78     :accessor border-bottom
79     :initarg :bottom
80     :type int))
81   (:metaclass boxed-class))
82
83 (defclass stock-item (struct)
84   ((id
85     :allocation :alien
86     :accessor stock-item-id
87     :initarg :id
88     :type string)
89    (label
90     :allocation :alien
91     :accessor stock-item-label
92     :initarg :label
93     :type string)
94    (modifier
95     :allocation :alien
96     :accessor stock-item-modifier
97     :initarg :modifier
98     :type gdk:modifier-type)
99    (keyval
100     :allocation :alien
101     :accessor stock-item-keyval
102     :initarg :keyval
103     :type int)
104    (translation-domain
105     :allocation :alien
106     :accessor stock-item-translation-domain
107     :initarg :translation-domain
108     :type string))
109   (:metaclass proxy-class))
110
111
112 (define-types-by-introspection "Gtk"
113   ;; Manually defined
114   ("GtkObject" :ignore t)
115   ("GtkRequisition" :ignore t)
116   ("GtkBorder" :ignore t)
117   
118
119   ;; Manual override
120   ("GtkWidget"
121    :slots
122    ((child-slots
123      :allocation :instance
124      :accessor widget-child-slots
125      :type container-child)
126     (parent-window
127      :allocation :virtual
128      :getter "gtk_widget_get_parent_window"
129      :setter "gtk_widget_set_parent_window"
130      :accessor widget-parent-window
131      :type gdk:window)
132     (window
133      :allocation :virtual
134      :getter "gtk_widget_get_window"
135      :reader widget-window
136      :type gdk:window)
137     (state
138      :allocation :virtual
139      :getter "gtk_widget_get_state"
140      :setter "gtk_widget_set_state"
141      :accessor widget-state
142      :initarg :state
143      :type state-type)
144     (colormap
145      :allocation :virtual
146      :getter "gtk_widget_get_colormap"
147      :setter "gtk_widget_set_colormap"
148      :initarg :colormap
149      :accessor widget-colormap
150      :type gdk:colormap)
151     (visual
152      :allocation :virtual
153      :getter "gtk_widget_get_visual"
154      :reader widget-visual
155      :type gdk:visual)
156     (direction
157      :allocation :virtual
158      :getter "gtk_widget_get_direction"
159      :setter "gtk_widget_set_direction"
160      :accessor widget-direction
161      :initarg :direction
162      :type text-direction)
163     (composite-name
164      :allocation :virtual
165      :getter "gtk_widget_get_composite_name"
166      :setter "gtk_widget_set_composite_name"
167      :accessor widget-composite-name
168      :initarg :composite-name
169      :type string)
170     (settings
171      :allocation :virtual
172      :getter "gtk_widget_get_settings"
173      :accessor widget-settings
174      :type settings)
175     (child-visible
176      :allocation :virtual
177      :getter "gtk_widget_get_child_visible"
178      :setter "gtk_widget_set_child_visible"
179      :accessor widget-child-visible-p
180      :initarg :child-visible
181      :type boolean)))
182      
183   ("GtkContainer"
184    :slots
185    ((child
186      :ignore t)
187     (children
188      :allocation :virtual
189      :getter container-children
190      :setter (setf container-children))
191     (focus-child
192      :allocation :virtual
193      :getter "gtk_container_get_focus_child"
194      :setter "gtk_container_set_focus_child"
195      :accessor container-focus-child
196      :initarg :focus-child
197      :type widget)
198     (focus-chain
199      :allocation :virtual
200      :getter container-focus-chain
201      :setter (setf container-focus-chain))
202     (focus-hadjustment
203      :allocation :virtual
204      :getter "gtk_container_get_focus_hadjustment"
205      :setter "gtk_container_set_focus_hadjustment"
206      :accessor container-focus-hadjustment
207      :initarg :focus-hadjustment
208      :type adjustment)
209     (focus-vadjustment
210      :allocation :virtual
211      :getter "gtk_container_get_focus_vadjustment"
212      :setter "gtk_container_set_focus_vadjustment"
213      :accessor container-focus-vadjustment
214      :initarg :focus-vadjustment
215      :type adjustment)))
216       
217   ("GtkBin"
218    :slots
219    ((child
220      :allocation :virtual
221      :getter "gtk_bin_get_child"
222      :setter (setf bin-child)
223      :reader bin-child
224      :type widget)))
225
226   ("GtkWindow"
227    :slots
228    ((gravity
229      :allocation :virtual
230      :getter "gtk_window_get_gravity"
231      :setter "gtk_window_set_gravity"
232      :accessor window-gravity
233      :initarg :gravity
234      :type gdk:gravity)
235     (focus-widget
236      :allocation :virtual
237      :getter "gtk_window_get_focus"
238      :setter "gtk_window_set_focus"
239      :accessor window-focus-widget
240      :initarg :focus-widget
241      :type widget)
242     (default-widget
243      :allocation :virtual
244      :getter "gtk_window_get_default"
245      :setter "gtk_window_set_default"
246      :accessor window-default-widget
247      :initarg :default-widget
248      :type widget)
249     (decorated
250      :allocation :virtual
251      :getter "gtk_window_get_decorated"
252      :setter "gtk_window_set_decorated"
253      :accessor window-decorated-p
254      :initarg :decorated
255      :type boolean)
256     (has-frame
257      :allocation :virtual
258      :getter "gtk_window_get_has_frame"
259      :setter "gtk_window_set_has_frame"
260      :accessor window-has-frame-p
261      :initarg :has-frame
262      :type boolean)
263     (role
264      :allocation :virtual
265      :getter "gtk_window_get_role"
266      :setter "gtk_window_set_role"
267      :accessor window-role
268      :initarg :role
269      :type string)
270     (type-hint
271      :allocation :virtual
272      :getter "gtk_window_get_type_hint"
273      :setter "gtk_window_set_type_hint"
274      :accessor window-type-hint
275      :initarg :type-hint
276      :type gdk:window-type-hint)
277     (icon
278      :allocation :virtual
279      :getter window-icon
280      :setter (setf window-icon)
281      :initarg :icon)
282     (mnemonic-modifier
283      :allocation :virtual
284      :getter "gtk_window_get_mnemonic_modifier"
285      :setter "gtk_window_set_mnemonic_modifier"
286      :accessor window-mnemonic-modifier
287      :initarg :mnemonic-modifier
288      :type gdk:modifier-type)
289     (transient-for
290      :allocation :virtual
291      :getter "gtk_window_get_transient_for"
292      :setter "gtk_window_set_transient_for"
293      :accessor window-transient-for
294      :initarg :transient-for
295      :type window)))
296   
297   ("GtkTooltips"
298    :slots
299    ((enabled
300      :allocation :virtual
301      :getter "gtk_tooltips_get_enabled"
302      :setter (setf tooltips-enabled-p)
303      :reader tooltips-enabled-p
304      :initarg :enabled
305      :type boolean)))
306   
307   ("GtkOptionMenu"
308    :slots
309    ((menu
310      :allocation :virtual
311      :getter "gtk_option_menu_get_menu"
312      :setter (setf option-menu-menu)
313      :reader option-menu-menu
314      :initarg :menu
315      :type menu)
316     (history
317      :allocation :virtual
318      :getter "gtk_option_menu_get_history"
319      :setter "gtk_option_menu_set_history"
320      :accessor option-menu-history
321      :initarg :history
322      :type unsigned-int)))
323
324   ("GtkMenuItem"
325    :slots
326    ((label
327      :allocation :virtual
328      :getter menu-item-label
329      :setter (setf menu-item-label)
330      :initarg :label
331      :type string)
332     (right-justified
333      :allocation :virtual
334      :getter "gtk_menu_item_get_right_justified"
335      :setter "gtk_menu_item_set_right_justified"
336      :accessor menu-item-right-justified-p
337      :initarg :right-justified
338      :type boolean)
339     (submenu
340      :allocation :virtual
341      :getter "gtk_menu_item_get_submenu"
342      :setter (setf menu-item-submenu)
343      :reader menu-item-submenu
344      :initarg :submenu
345      :type menu-item)))
346
347   ("GtkColorSelectionDialog"
348    :slots
349    ((colorsel
350      :allocation :alien
351      :reader color-selection-dialog-colorsel
352      :type widget)
353     (ok-button
354      :allocation :alien
355      :reader color-selection-dialog-ok-button
356      :type widget)
357     (cancel-button
358      :allocation :alien
359      :reader color-selection-dialog-cancel-button
360      :type widget)
361     (help-button
362      :allocation :alien
363      :reader color-selection-dialog-help-button
364      :type widget)))
365
366   ("GtkScrolledWindow"
367    :slots
368    ((hscrollbar
369      :allocation :alien
370      :reader scrolled-window-hscrollbar
371      :type widget)
372     (vscrollbar
373      :allocation :alien
374      :reader scrolled-window-vscrollbar
375      :type widget)))
376
377   ("GtkPaned"
378    :slots
379    ((child1
380     :allocation :virtual
381     :getter paned-child1
382     :setter (setf paned-child1)
383     :initarg :child1
384     :type widget)
385    (child2
386     :allocation :virtual
387     :getter paned-child2
388     :setter (setf paned-child2)
389     :initarg :child2
390     :type widget)))
391
392   ("GtkMenu"
393    :slots
394    ((accel-group
395      :allocation :virtual
396      :getter "gtk_menu_get_accel_group"
397      :setter "gtk_menu_set_accel_group"
398      :accessor menu-accel-group
399      :initarg :accel-group
400      :type accel-group)
401     (title
402      :allocation :virtual
403      :getter "gtk_menu_get_title"
404      :setter "gtk_menu_set_title"
405      :accessor menu-title
406      :initarg :title
407      :type string)
408     (active
409      :allocation :virtual
410      :getter "gtk_menu_get_active"
411      :setter (setf menu-active)
412      :reader menu-active
413      :initarg :active
414      :type widget)
415     (tornoff
416      :allocation :virtual
417      :getter "gtk_menu_get_tearoff_state"
418      :setter "gtk_menu_set_tearoff_state"
419      :accessor menu-tornoff-p
420      :initarg :tearoff
421      :type boolean)))
422
423   ("GtkToolbar"
424    :slots
425    ((tooltips
426      :allocation :virtual
427      :getter "gtk_toolbar_get_tooltips"
428      :setter "gtk_toolbar_set_tooltips"
429      :accessor toolbar-tooltips-p
430      :initarg :tooltips
431      :type boolean)
432     (icon-size
433      :allocation :virtual
434      :getter "gtk_toolbar_get_icon_size"
435      :setter "gtk_toolbar_set_icon_size"
436      :accessor toolbar-icon-size
437      :initarg :icon-size
438      :type icon-size)
439     (toolbar-style
440      :allocation :property
441      :pname "toolbar-style"
442      :initarg :toolbar-style
443      :accessor toolbar-style
444      :type toolbar-style)))
445
446   ("GtkNotebook"
447    :slots
448    ((current-page
449      :allocation :virtual
450      :getter notebook-current-page
451      :setter (setf notebook-current-page)
452      :initarg :current-page)
453     (page :ignore t)))
454   
455   ("GtkRuler"
456    :slots
457    ((metric
458      :allocation :virtual
459      :getter "gtk_ruler_get_metric"
460      :setter "gtk_ruler_set_metric"
461      :accessor ruler-metric
462      :initarg :metric
463      :type metric-type)))
464
465   ("GtkProgressBar"
466    :slots
467    ; deprecated properties
468    ((bar-style :ignore t)
469     (adjustment :ignore t)
470     (activity-step :ignore t)
471     (activity-blocks :ignore t)
472     (discrete-blocks :ignore t)))
473
474   ("GtkTable"
475    :slots
476    ((column-spacing
477      :allocation :virtual
478      :getter "gtk_table_get_default_col_spacing"
479      :setter "gtk_table_set_col_spacings"
480      :initarg :column-spacing
481      :type unsigned-int)
482     (row-spacing
483      :allocation :virtual
484      :getter "gtk_table_get_default_row_spacing"
485      :setter "gtk_table_set_row_spacings"
486      :initarg :row-spacing
487      :type unsigned-int)))
488
489   ("GtkDialog"
490    :slots
491    ((vbox
492      :allocation :virtual
493      :getter "gtk_dialog_get_vbox"
494      :reader dialog-vbox
495      :type widget)
496     (action-area
497      :allocation :virtual
498      :getter "gtk_dialog_get_action_area"
499      :reader dialog-action-area
500      :type widget)))
501
502   ("GtkCombo"
503    :slots
504    ((entry
505      :allocation :virtual
506      :getter "gtk_combo_get_entry"
507      :reader combo-entry
508      :type entry)))
509   
510   ("GtkRadioButton"
511    :slots
512    ((group
513      :allocation :virtual
514      :getter "gtk_radio_button_get_group"
515      :reader radio-button-group
516      :type (static (gslist widget)))))
517
518   ("GtkRadioMenuItem"
519    :slots
520    ((group
521      :allocation :virtual
522      :getter "gtk_radio_menu_item_get_group"
523      :reader radio-menu-item-group
524      :type (static (gslist widget)))))
525
526   ("GtkFileSelection"
527    :slots
528    ((action-area
529      :allocation :virtual
530      :getter "gtk_file_selection_get_action_area"
531      :reader file-selection-action-area
532      :type widget)
533     (ok-button
534      :allocation :virtual
535      :getter "gtk_file_selection_get_ok_button"
536      :reader file-selection-ok-button
537      :type widget)
538     (cancel-button
539      :allocation :virtual
540      :getter "gtk_file_selection_get_cancel_button"
541      :reader file-selection-cancel-button
542      :type widget)))
543
544   ("GtkLayout"
545    :slots
546    ((bin-window
547      :allocation :virtual
548      :getter "gtk_layout_get_bin_window"
549      :reader layout-bin-window
550      :type gdk:window)))
551
552   ("GtkFixed"
553    :slots
554    ((has-window
555      :allocation :virtual
556      :getter "gtk_fixed_get_has_window"
557      :setter "gtk_fixed_set_has_window"
558      :reader fixed-has-window-p
559      :initarg :has-window
560      :type boolean)))
561
562   ("GtkRange"
563    :slots
564    ((value
565      :allocation :virtual
566      :getter "gtk_range_get_value"
567      :setter "gtk_range_set_value"
568      :initarg :value
569      :accessor range-value
570      :type double-float)
571    (upper
572      :allocation :virtual
573      :getter range-upper
574      :setter (setf range-upper)
575      :initarg :upper)
576    (lower
577      :allocation :virtual
578      :getter range-lower
579      :setter (setf range-lower)
580      :initarg :lower)
581    (step-increment
582      :allocation :virtual
583      :getter range-step-increment
584      :setter (setf range-step-increment)
585      :initarg :step-increment)
586    (page-increment
587      :allocation :virtual
588      :getter range-page-increment
589      :setter (setf range-page-increment)
590      :initarg :page-increment)))
591
592   ("GtkImage"
593    :slots
594    ((file :ignore t)))
595        
596   ;; Interfaces
597   ("GtkEditable"
598    :slots
599    ((editable
600      :allocation :virtual
601      :getter "gtk_editable_get_editable"
602      :setter "gtk_editable_set_editable"
603      :reader editable-editable-p
604      :initarg :editable
605      :type boolean)
606     (position
607      :allocation :virtual
608      :getter "gtk_editable_get_position"
609      :setter "gtk_editable_set_position"
610      :reader editable-position
611      :initarg :position
612      :type int)
613     (text
614      :allocation :virtual
615      :getter editable-text
616      :setter (setf editable-text)
617      :initarg text)))
618
619   ("GtkFileChooser"
620    :slots
621    ((filename
622      :allocation :virtual
623      :getter "gtk_file_chooser_get_filename"
624      :setter "gtk_file_chooser_set_filename"
625      :accessor file-chooser-filename
626      :initarg :filename
627      :type string)
628     (current-name
629      :allocation :virtual
630      :setter "gtk_file_chooser_set_current_name"
631      :accessor file-choser-current-name
632      :initarg :current-name
633      :type string)
634     (current-folder
635      :allocation :virtual
636      :setter "gtk_file_chooser_set_current_folder"
637      :setter "gtk_file_chooser_get_current_folder"
638      :accessor file-choser-current-folder
639      :initarg :current-folder
640      :type string)
641     (uri
642      :allocation :virtual
643      :getter "gtk_file_chooser_get_uri"
644      :setter "gtk_file_chooser_set_uri"
645      :accessor file-choser-uri
646      :initarg :uri
647      :type string)
648     (current-folder-uri
649      :allocation :virtual
650      :setter "gtk_file_chooser_set_current_folder_uri"
651      :setter "gtk_file_chooser_get_current_folder_uri"
652      :accessor file-choser-current-folder-uri
653      :initarg :current-folder-uri
654      :type string)))
655
656      
657   ;; Not needed
658   ("GtkFundamentalType" :ignore t)
659   ("GtkArgFlags" :ignore t)
660
661   
662   ;; Deprecated widgets
663   ("GtkCList" :ignore-prefix t)
664   ("GtkCTree" :ignore-prefix t)
665   ("GtkList" :ignore-prefix t)
666   ("GtkTree" :ignore t)
667   ("GtkTreeItem" :ignore t)
668   ("GtkText" :ignore-prefix t :except ("GtkTextDirection"))
669   ("GtkPacker" :ignore-prefix t)
670   ("GtkPixmap" :ignore t)
671   ("GtkPreview" :ignore-prefix t)
672   ("GtkTipsQuery" :ignore t)
673   ("GtkOldEditable" :ignore t)
674
675   ;; What are these?
676   ("GtkFileSystemModule" :ignore t)
677   ("GtkIMModule" :ignore t)
678   ("GtkThemeEngine" :ignore t)
679
680   )