chiark / gitweb /
Major cleanup of ffi abstraction layer
[clg] / gtk / gtktypes.lisp
CommitLineData
560af5c5 1;; Common Lisp bindings for GTK+ v2.0.x
56460319 2;; Copyright (C) 1999-2001 Espen S. Johnsen <espen@users.sourceforge.org>
560af5c5 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
9adccb27 18;; $Id: gtktypes.lisp,v 1.17 2004-11-06 21:39:58 espen Exp $
560af5c5 19
20
21(in-package "GTK")
22
2719586f 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))
1047e159 34 (:metaclass boxed-class))
35
2719586f 36
e6d40e16 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))
9adccb27 58 (:metaclass struct-class))
e6d40e16 59
2719586f 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))
1047e159 81 (:metaclass boxed-class))
2719586f 82
f5b67f2b 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))
9adccb27 109 (:metaclass static-struct-class))
f5b67f2b 110
560af5c5 111
2719586f 112(define-types-by-introspection "Gtk"
113 ;; Manually defined
114 ("GtkObject" :ignore t)
115 ("GtkRequisition" :ignore t)
116 ("GtkBorder" :ignore t)
5b51dee1 117
1047e159 118
5b51dee1 119 ;; Manual override
120 ("GtkWidget"
121 :slots
122 ((child-slots
1047e159 123 :allocation :instance
124 :accessor widget-child-slots
125 :type container-child)
e6d40e16 126 (parent-window
5b51dee1 127 :allocation :virtual
e6d40e16 128 :getter "gtk_widget_get_parent_window"
129 :setter "gtk_widget_set_parent_window"
130 :accessor widget-parent-window
131 :type gdk:window)
5b51dee1 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"
e6d40e16 147 :setter "gtk_widget_set_colormap"
148 :initarg :colormap
149 :accessor widget-colormap
5b51dee1 150 :type gdk:colormap)
151 (visual
152 :allocation :virtual
153 :getter "gtk_widget_get_visual"
154 :reader widget-visual
e6d40e16 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
5b51dee1 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)
e6d40e16 198 (focus-chain
199 :allocation :virtual
200 :getter container-focus-chain
201 :setter (setf container-focus-chain))
5b51dee1 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
56460319 221 :getter "gtk_bin_get_child"
222 :setter (setf bin-child)
223 :reader bin-child
224 :type widget)))
3f73963b 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
f5b67f2b 295 :type window)))
5b51dee1 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
f5b67f2b 315 :type menu)
5b51dee1 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
f5b67f2b 328 :getter menu-item-label
329 :setter (setf menu-item-label)
5b51dee1 330 :initarg :label
331 :type string)
f5b67f2b 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)
5b51dee1 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
f5b67f2b 345 :type menu-item)))
5b51dee1 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)))
560af5c5 376
5b51dee1 377 ("GtkPaned"
1047e159 378 :slots
5b51dee1 379 ((child1
560af5c5 380 :allocation :virtual
5b51dee1 381 :getter paned-child1
382 :setter (setf paned-child1)
383 :initarg :child1
560af5c5 384 :type widget)
5b51dee1 385 (child2
2d379b6a 386 :allocation :virtual
5b51dee1 387 :getter paned-child2
388 :setter (setf paned-child2)
389 :initarg :child2
390 :type widget)))
560af5c5 391
5b51dee1 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)
f5b67f2b 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)
5b51dee1 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
1047e159 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)))
5b51dee1 445
f5b67f2b 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
5b51dee1 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
1047e159 491 ((vbox
5b51dee1 492 :allocation :virtual
493 :getter "gtk_dialog_get_vbox"
1047e159 494 :reader dialog-vbox
5b51dee1 495 :type widget)
496 (action-area
497 :allocation :virtual
498 :getter "gtk_dialog_get_action_area"
499 :reader dialog-action-area
500 :type widget)))
2ed3bebb 501
5b51dee1 502 ("GtkCombo"
503 :slots
504 ((entry
505 :allocation :virtual
506 :getter "gtk_combo_get_entry"
507 :reader combo-entry
508 :type entry)))
f5b67f2b 509
5b51dee1 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)))))
d520140e 517
5b51dee1 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)))))
560af5c5 525
5b51dee1 526 ("GtkFileSelection"
527 :slots
528 ((action-area
d520140e 529 :allocation :virtual
5b51dee1 530 :getter "gtk_file_selection_get_action_area"
d520140e 531 :reader file-selection-action-area
532 :type widget)
533 (ok-button
534 :allocation :virtual
5b51dee1 535 :getter "gtk_file_selection_get_ok_button"
d520140e 536 :reader file-selection-ok-button
537 :type widget)
538 (cancel-button
539 :allocation :virtual
5b51dee1 540 :getter "gtk_file_selection_get_cancel_button"
d520140e 541 :reader file-selection-cancel-button
5b51dee1 542 :type widget)))
543
544 ("GtkLayout"
545 :slots
546 ((bin-window
1047e159 547 :allocation :virtual
5b51dee1 548 :getter "gtk_layout_get_bin_window"
549 :reader layout-bin-window
f784870f 550 :type gdk:window)))
f5b67f2b 551
552 ("GtkFixed"
553 :slots
554 ((has-window
1047e159 555 :allocation :virtual
f5b67f2b 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)))
1047e159 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
5b51dee1 656
657 ;; Not needed
658 ("GtkFundamentalType" :ignore t)
659 ("GtkArgFlags" :ignore t)
560af5c5 660
d520140e 661
5b51dee1 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)
e6d40e16 668 ("GtkText" :ignore-prefix t :except ("GtkTextDirection"))
5b51dee1 669 ("GtkPacker" :ignore-prefix t)
670 ("GtkPixmap" :ignore t)
671 ("GtkPreview" :ignore-prefix t)
672 ("GtkTipsQuery" :ignore t)
1047e159 673 ("GtkOldEditable" :ignore t)
674
675 ;; What are these?
676 ("GtkFileSystemModule" :ignore t)
677 ("GtkIMModule" :ignore t)
678 ("GtkThemeEngine" :ignore t)
679
680 )