chiark / gitweb /
Minor updates due to internal API changes
[clg] / gtk / gtktypes.lisp
... / ...
CommitLineData
1;; Common Lisp bindings for GTK+ v2.x
2;; Copyright 1999-2005 Espen S. Johnsen <espen@users.sf.net>
3;;
4;; Permission is hereby granted, free of charge, to any person obtaining
5;; a copy of this software and associated documentation files (the
6;; "Software"), to deal in the Software without restriction, including
7;; without limitation the rights to use, copy, modify, merge, publish,
8;; distribute, sublicense, and/or sell copies of the Software, and to
9;; permit persons to whom the Software is furnished to do so, subject to
10;; the following conditions:
11;;
12;; The above copyright notice and this permission notice shall be
13;; included in all copies or substantial portions of the Software.
14;;
15;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18;; IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19;; CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
23;; $Id: gtktypes.lisp,v 1.45 2006-02-26 23:37:18 espen Exp $
24
25(in-package "GTK")
26
27(defclass requisition (boxed)
28 ((width
29 :allocation :alien
30 :accessor requisition-width
31 :initarg :width
32 :type int)
33 (height
34 :allocation :alien
35 :accessor requisition-height
36 :initarg :height
37 :type int))
38 (:metaclass boxed-class))
39
40
41(defclass allocation (struct)
42 ((x
43 :allocation :alien
44 :accessor allocation-width
45 :initarg :x
46 :type int)
47 (y
48 :allocation :alien
49 :accessor allocation-width
50 :initarg :width
51 :type int)
52 (width
53 :allocation :alien
54 :accessor allocation-width
55 :initarg :width
56 :type int)
57 (height
58 :allocation :alien
59 :accessor allocation-height
60 :initarg :height
61 :type int))
62 (:metaclass struct-class))
63
64(defclass border (boxed)
65 ((left
66 :allocation :alien
67 :accessor border-left
68 :initarg :left
69 :type int)
70 (right
71 :allocation :alien
72 :accessor border-right
73 :initarg :right
74 :type int)
75 (top
76 :allocation :alien
77 :accessor border-top
78 :initarg :top
79 :type int)
80 (bottom
81 :allocation :alien
82 :accessor border-bottom
83 :initarg :bottom
84 :type int))
85 (:metaclass boxed-class))
86
87(defclass stock-item (struct)
88 ((id
89 :allocation :alien
90 :accessor stock-item-id
91 :initarg :id
92 :type string)
93 (label
94 :allocation :alien
95 :accessor stock-item-label
96 :initarg :label
97 :type string)
98 (modifier
99 :allocation :alien
100 :accessor stock-item-modifier
101 :initarg :modifier
102 :type gdk:modifier-type)
103 (keyval
104 :allocation :alien
105 :accessor stock-item-keyval
106 :initarg :keyval
107 :type int)
108 (translation-domain
109 :allocation :alien
110 :accessor stock-item-translation-domain
111 :initarg :translation-domain
112 :type string))
113 (:metaclass struct-class))
114
115;; We don't really need to access any slots in this class, so we just
116;; specify the total size
117(defclass tree-iter (boxed)
118 (
119;; (stamp :allocation :alien :type int)
120;; (user-data :allocation :alien :type pointer)
121;; (user-data2 :allocation :alien :type pointer)
122;; (user-data3 :allocation :alien :type pointer)
123 )
124 (:metaclass boxed-class)
125 (:size #.(+ (size-of 'int) (* 3 (size-of 'pointer)))))
126
127
128;; (defclass tree-path (boxed)
129;; ((depth :allocation :alien :type int)
130;; (indices :allocation :alien :type pointer))
131;; (:metaclass boxed-class))
132
133(deftype tree-path () '(vector integer))
134(register-type 'tree-path '|gtk_tree_path_get_type|)
135
136(deftype position ()
137 '(or int (enum (:start 0) (:end -1) (:first 0) (:last -1))))
138
139(define-type-method from-alien-form ((type position) form)
140 (declare (ignore type))
141 (from-alien-form 'int form))
142
143(define-type-method from-alien-function ((type position))
144 (declare (ignore type))
145 (from-alien-function 'int))
146
147(define-type-method reader-function ((type position))
148 (declare (ignore type))
149 (reader-function 'int))
150
151
152
153(define-types-by-introspection "Gtk"
154 ;; Manually defined
155 ("GtkObject" :ignore t)
156 ("GtkRequisition" :ignore t)
157 ("GtkBorder" :ignore t)
158 ("GtkTreeIter" :ignore t)
159 ("GtkTreePath" :ignore t)
160; ("GtkStyle" :ignore t)
161
162 ;; Manual override
163 ("GtkWidget"
164 :slots
165 ((child-properties
166 :special t
167 :accessor widget-child-properties
168 :type container-child)
169 (window
170 :allocation :virtual
171 :getter "gtk_widget_get_window"
172 :reader widget-window
173 :type gdk:window)
174 (parent :merge t :initarg nil)
175 (visible :merge t :initarg nil)
176 (parent-window
177 :allocation :virtual
178 :getter %widget-parent-window
179 :setter "gtk_widget_set_parent_window"
180 :accessor widget-parent-window
181 :initarg :parent-window
182 :type gdk:window)
183 (state
184 :allocation :virtual
185 :getter "gtk_widget_get_state"
186 :setter "gtk_widget_set_state"
187 :accessor widget-state
188 :initarg :state
189 :type state-type)
190 (colormap
191 :allocation :virtual
192 :getter "gtk_widget_get_colormap"
193 :setter "gtk_widget_set_colormap"
194 :initarg :colormap
195 :accessor widget-colormap
196 :type gdk:colormap)
197 (visual
198 :allocation :virtual
199 :getter "gtk_widget_get_visual"
200 :reader widget-visual
201 :type gdk:visual)
202 (direction
203 :allocation :virtual
204 :getter "gtk_widget_get_direction"
205 :setter "gtk_widget_set_direction"
206 :accessor widget-direction
207 :initarg :direction
208 :type text-direction)
209 (composite-name
210 :allocation :virtual
211 :getter "gtk_widget_get_composite_name"
212 :setter "gtk_widget_set_composite_name"
213 :accessor widget-composite-name
214 :initarg :composite-name
215 :type (copy-of string)) ; will leak the string when setting
216 (settings
217 :allocation :virtual
218 :getter "gtk_widget_get_settings"
219 :accessor widget-settings
220 :type settings)
221 (child-visible
222 :allocation :virtual
223 :getter "gtk_widget_get_child_visible"
224 :setter "gtk_widget_set_child_visible"
225 :accessor widget-child-visible-p
226 :initarg :child-visible
227 :type boolean)
228 (width-request
229 :merge t :unbound -1)
230 (height-request
231 :merge t :unbound -1)))
232
233 ("GtkContainer"
234 :slots
235 ((child :ignore t)
236 (children
237 :allocation :virtual
238 :getter container-children
239 :setter (setf container-children)
240 ;; The following doesn't work because gtk_container_get_children doesn't
241 ;; increase the reference count of the children
242; :getter "gtk_container_get_children"
243; :reader container-children
244; :type (glist widget)
245 )
246 (child-type
247 :allocation :virtual
248 :getter "gtk_container_child_type"
249 :reader container-child-type
250 :type gtype)
251 (focus-child
252 :allocation :virtual
253 :getter "gtk_container_get_focus_child"
254 :setter "gtk_container_set_focus_child"
255 :accessor container-focus-child
256 :initarg :focus-child
257 :type widget)
258 (focus-chain
259 :allocation :virtual
260 :getter container-focus-chain
261 :setter (setf container-focus-chain))
262 (focus-hadjustment
263 :allocation :virtual
264 :getter "gtk_container_get_focus_hadjustment"
265 :setter "gtk_container_set_focus_hadjustment"
266 :accessor container-focus-hadjustment
267 :initarg :focus-hadjustment
268 :type adjustment)
269 (focus-vadjustment
270 :allocation :virtual
271 :getter "gtk_container_get_focus_vadjustment"
272 :setter "gtk_container_set_focus_vadjustment"
273 :accessor container-focus-vadjustment
274 :initarg :focus-vadjustment
275 :type adjustment)
276 (reallocate-redraws
277 :allocation :virtual
278 :getter "gtk_container_get_reallocate_redraws"
279 :setter "gtk_container_set_reallocate_redraws"
280 :accessor container-reallocate-redraws
281 :initarg :reallocate-redraws
282 :type boolean)))
283
284 ("GtkBin"
285 :slots
286 ((child
287 :allocation :virtual
288 :getter "gtk_bin_get_child"
289 :setter (setf bin-child)
290 :reader bin-child
291 :type widget)))
292
293 ("GtkWindow"
294 :slots
295 ((focus-widget
296 :allocation :virtual
297 :getter "gtk_window_get_focus"
298 :setter "gtk_window_set_focus"
299 :accessor window-focus-widget
300 :initarg :focus-widget
301 :type widget)
302 (default-widget
303 :allocation :virtual
304 :getter "gtk_window_get_default"
305 :setter "gtk_window_set_default"
306 :accessor window-default-widget
307 :initarg :default-widget
308 :type widget)
309 (has-frame
310 :allocation :virtual
311 :getter "gtk_window_get_has_frame"
312 :setter "gtk_window_set_has_frame"
313 :accessor window-has-frame-p
314 :initarg :has-frame
315 :type boolean)
316 (icon-list
317 :allocation :virtual
318 :getter %window-get-icon-list
319 :setter "gtk_window_set_icon_list"
320 :accessor window-icon-list
321 :initarg :icon-list
322 :type (glist gdk:pixbuf))
323 (mnemonic-modifier
324 :allocation :virtual
325 :getter "gtk_window_get_mnemonic_modifier"
326 :setter "gtk_window_set_mnemonic_modifier"
327 :accessor window-mnemonic-modifier
328 :initarg :mnemonic-modifier
329 :type gdk:modifier-type)
330 (transient-for
331 :allocation :virtual
332 :getter "gtk_window_get_transient_for"
333 :setter "gtk_window_set_transient_for"
334 :accessor window-transient-for
335 :initarg :transient-for
336 :type window)
337 (group
338 :allocation :virtual
339 :getter "gtk_window_get_group"
340 :setter (setf window-group)
341 :reader window-group
342 :initarg :group
343 :type window-group)
344 (default-width :merge t :unbound -1)
345 (default-height :merge t :unbound -1)))
346
347 ("GtkWindowGroup"
348 :slots
349 ((grabs
350 :allocation :alien
351 :accessor window-group-grabs
352 :type (gslist window))))
353
354 ("GtkTooltips"
355 :slots
356 ((enabled
357 :allocation :virtual
358 :getter "gtk_tooltips_get_enabled"
359 :setter (setf tooltips-enabled-p)
360 :reader tooltips-enabled-p
361 :initarg :enabled
362 :type boolean)))
363
364 ("GtkMenuItem"
365 :slots
366 ((label
367 :allocation :virtual
368 :getter menu-item-label
369 :setter (setf menu-item-label)
370 :type string)
371 (use-underline
372 :allocation :user-data
373 :initform nil
374 :initarg :use-underline
375 :accessor menu-item-use-underline-p)
376 (right-justified
377 :allocation :virtual
378 :getter "gtk_menu_item_get_right_justified"
379 :setter "gtk_menu_item_set_right_justified"
380 :accessor menu-item-right-justified-p
381 :initarg :right-justified
382 :type boolean)
383 (submenu
384 :allocation :virtual
385 :getter "gtk_menu_item_get_submenu"
386 :setter "gtk_menu_item_set_submenu"
387 :accessor menu-item-submenu
388 :initarg :submenu
389 :type widget)))
390
391 ("GtkMenuShell"
392 :slots
393 ((take-focus-p
394 :allocation :virtual
395 :getter "gtk_menu_shell_get_take_focus"
396 :setter "gtk_menu_shell_set_take_focus"
397 :accessor menu-shell-take-focus-p
398 :type boolean)))
399
400 ("GtkColorSelectionDialog"
401 :slots
402 ((colorsel
403 :allocation :alien
404 :reader color-selection-dialog-colorsel
405 :type widget)
406 (ok-button
407 :allocation :alien
408 :reader color-selection-dialog-ok-button
409 :type widget)
410 (cancel-button
411 :allocation :alien
412 :reader color-selection-dialog-cancel-button
413 :type widget)
414 (help-button
415 :allocation :alien
416 :reader color-selection-dialog-help-button
417 :type widget)))
418
419 ("GtkScrolledWindow"
420 :slots
421 (#-gtk2.8
422 (hscrollbar
423 :allocation :alien
424 :reader scrolled-window-hscrollbar
425 :type widget)
426 #-gtk2.8
427 (vscrollbar
428 :allocation :alien
429 :reader scrolled-window-vscrollbar
430 :type widget)
431 #+gtk2.8
432 (hscrollbar
433 :allocation :virtual
434 :getter "gtk_scrolled_window_get_hscrollbar"
435 :reader scrolled-window-hscrollbar
436 :type widget)
437 #+gtk2.8
438 (vscrollbar
439 :allocation :virtual
440 :getter "gtk_scrolled_window_get_hscrollbar"
441 :reader scrolled-window-vscrollbar
442 :type widget)))
443
444 ("GtkPaned"
445 :slots
446 ((child1
447 :allocation :virtual
448 :getter "gtk_paned_get_child1"
449 :setter "gtk_paned_add1"
450 :accessor paned-child1
451 :initarg :child1
452 :type widget)
453 (child2
454 :allocation :virtual
455 :getter "gtk_paned_get_child2"
456 :setter "gtk_paned_add2"
457 :accessor paned-child2
458 :initarg :child2
459 :type widget)))
460
461 ("GtkMenu"
462 :slots
463 ((accel-group
464 :allocation :virtual
465 :getter "gtk_menu_get_accel_group"
466 :setter "gtk_menu_set_accel_group"
467 :accessor menu-accel-group
468 :initarg :accel-group
469 :type accel-group)
470 (active
471 :allocation :virtual
472 :getter "gtk_menu_get_active"
473 :setter (setf menu-active)
474 :reader menu-active
475 :initarg :active
476 :type widget)
477 (screen
478 :allocation :virtual
479 :getter "gtk_menu_get_screen"
480 :setter "gtk_menu_set_screen"
481 :accessor menu-screen
482 :initarg :screen
483 :type gdk:screen)
484 (attach-widget
485 :allocation :virtual
486 :getter "gtk_menu_get_attach_widget"
487 :reader menu-attach-widget
488 :type widget)
489 #-gtk2.6
490 (tearoff-state
491 :allocation :virtual
492 :getter "gtk_menu_get_tearoff_state"
493 :setter "gtk_menu_set_tearoff_state"
494 :accessor menu-tearoff-state-p
495 :initarg :tearoff-state
496 :type boolean)))
497
498 ("GtkPlug"
499 :slots
500 ((id
501 :allocation :virtual
502 :getter "gtk_plug_get_id"
503 :reader plug-id
504 :type gdk:native-window)))
505
506 ("GtkSocket"
507 :slots
508 ((id
509 :allocation :virtual
510 :getter "gtk_socket_get_id"
511 :reader socket-id
512 :type gdk:native-window)))
513
514 ("GtkToolbar"
515 :slots
516 ((show-tooltips
517 :allocation :virtual
518 :getter "gtk_toolbar_get_tooltips"
519 :setter "gtk_toolbar_set_tooltips"
520 :accessor toolbar-show-tooltips-p
521 :initarg :show-tooltips
522 :type boolean)
523 (tooltips
524 :allocation :virtual
525 :getter "gtk_toolbar_get_tooltips_object"
526 :reader toolbar-tooltips
527 :type tooltips)
528 (toolbar-style
529 :allocation :property
530 :pname "toolbar-style"
531 :initarg :toolbar-style
532 :accessor toolbar-style
533 :type toolbar-style)
534 (n-items
535 :allocation :virtual
536 :getter "gtk_toolbar_get_n_items"
537 :reader toolbar-n-items
538 :type int)))
539
540 ("GtkToolItem"
541 :slots
542 ((use-drag-window
543 :allocation :virtual
544 :getter "gtk_tool_item_get_use_drag_window"
545 :setter "gtk_tool_item_set_use_drag_window"
546 :accessor tool-item-use-drag-window-p
547 :initarg :drag-window
548 :type boolean)
549 (tip-text
550 :allocation :user-data
551 :setter (setf tool-item-tip-text)
552 :initarg :tip-text
553 :reader tool-item-tip-text)
554 (tip-private
555 :allocation :user-data
556 :setter (setf tool-item-tip-private)
557 :initarg :tip-private
558 :reader tool-item-tip-private)))
559
560 ("GtkToolButton"
561 :slots
562 ((stock-id :merge t :initarg :stock)
563 (icon-widget :merge t :initarg :icon)))
564
565 ("GtkToggleToolButton"
566 :slots
567 ((active
568 :allocation :virtual
569 :getter "gtk_toggle_tool_button_get_active"
570 :setter "gtk_toggle_tool_button_get_active"
571 :accessor toggle-tool-button-active-p
572 :initarg :active
573 :type boolean)))
574
575 ("GtkRadioToolButton"
576 :slots
577 ((group
578 :allocation :virtual
579 :getter "gtk_radio_tool_button_get_group"
580 :reader radio-tool-button-group
581 :type (copy-of (gslist widget)))
582 (value
583 :allocation :user-data
584 :initarg :value
585 :accessor radio-tool-button-value
586 :documentation "Value passed as argument to the activate callback")))
587
588 ("GtkNotebook"
589 :slots
590 ((current-page
591 :allocation :virtual
592 :getter %notebook-current-page
593 :setter (setf notebook-current-page)
594 :reader notebook-current-page
595 :type widget
596 :initarg :current-page)
597 (current-page-num
598 :allocation :virtual
599 :getter "gtk_notebook_get_current_page"
600 :setter "gtk_notebook_set_current_page"
601 :unbound -1
602 :initarg :current-page-num
603 :accessor notebook-current-page-num
604 :type position)))
605
606 ("GtkRuler"
607 :slots
608 ((metric
609 :allocation :virtual
610 :getter "gtk_ruler_get_metric"
611 :setter "gtk_ruler_set_metric"
612 :accessor ruler-metric
613 :initarg :metric
614 :type metric-type)))
615
616 ("GtkProgressBar"
617 :slots
618 ; deprecated properties
619 ((bar-style :ignore t)
620 (adjustment :ignore t)
621 (activity-step :ignore t)
622 (activity-blocks :ignore t)
623 (discrete-blocks :ignore t)))
624
625 ("GtkHandleBox"
626 :slots
627 ; deprecated property
628 ((shadow :ignore t)))
629
630 ("GtkFrame"
631 :slots
632 ; deprecated property
633 ((shadow :ignore t)))
634
635 ("GtkTable"
636 :slots
637 ((column-spacing
638 :allocation :virtual
639 :getter "gtk_table_get_default_col_spacing"
640 :setter "gtk_table_set_col_spacings"
641 :initarg :column-spacing
642 :type unsigned-int)
643 (row-spacing
644 :allocation :virtual
645 :getter "gtk_table_get_default_row_spacing"
646 :setter "gtk_table_set_row_spacings"
647 :initarg :row-spacing
648 :type unsigned-int)))
649
650 ("GtkDialog"
651 :slots
652 ((vbox
653 :allocation :virtual
654 :getter "gtk_dialog_get_vbox"
655 :reader dialog-vbox
656 :type widget)
657 (action-area
658 :allocation :virtual
659 :getter "gtk_dialog_get_action_area"
660 :reader dialog-action-area
661 :type widget)))
662
663 ("GtkEntry"
664 :slots
665 ((layout
666 :allocation :virtual
667 :getter "gtk_entry_get_layout"
668 :reader entry-layout
669 :type pango:layout)
670 (completion
671 :allocation :virtual
672 :getter "gtk_entry_get_completion"
673 :setter "gtk_entry_set_completion"
674 :initarg :completion
675 :accessor entry-completion
676 :type entry-completion)
677 (max-length :merge t :unbound 0)
678 #+gtk2.6
679 (width-chars :merge t :unbound -1)))
680
681 ("GtkEntryCompletion"
682 :slots
683 ((entry
684 :allocation :virtual
685 :getter "gtk_entry_completion_get_entry"
686 :reader entry-completion-entry
687 :type entry)
688 (minimum-key-length :merge t :unbound -1)
689 #+gtk2.6
690 (text-column :merge t :unbound -1)))
691
692 ("GtkRadioButton"
693 :slots
694 ((group
695 :allocation :virtual
696 :getter "gtk_radio_button_get_group"
697 :reader radio-button-group
698 :type (copy-of (gslist widget)))
699 (value
700 :allocation :user-data
701 :initarg :value
702 :accessor radio-button-value
703 :documentation "Value passed as argument to the activate callback")))
704
705 ("GtkRadioMenuItem"
706 :slots
707 ((group
708 :allocation :virtual
709 :getter "gtk_radio_menu_item_get_group"
710 :reader radio-menu-item-group
711 :type (copy-of (gslist widget)))
712 (value
713 :allocation :user-data
714 :initarg :value
715 :accessor radio-menu-item-value
716 :documentation "Value passed as argument to the activate callback")))
717
718 ("GtkLayout"
719 :slots
720 ((bin-window
721 :allocation :virtual
722 :getter "gtk_layout_get_bin_window"
723 :reader layout-bin-window
724 :type gdk:window)))
725
726 ("GtkFixed"
727 :slots
728 ((has-window
729 :allocation :virtual
730 :getter "gtk_fixed_get_has_window"
731 :setter "gtk_fixed_set_has_window"
732 :reader fixed-has-window-p
733 :initarg :has-window
734 :type boolean)))
735
736 ("GtkRange"
737 :slots
738 ((value
739 :allocation :virtual
740 :getter "gtk_range_get_value"
741 :setter "gtk_range_set_value"
742 :initarg :value
743 :accessor range-value
744 :type double-float)
745 (upper
746 :allocation :virtual
747 :getter range-upper
748 :setter (setf range-upper)
749 :initarg :upper)
750 (lower
751 :allocation :virtual
752 :getter range-lower
753 :setter (setf range-lower)
754 :initarg :lower)
755 (step-increment
756 :allocation :virtual
757 :getter range-step-increment
758 :setter (setf range-step-increment)
759 :initarg :step-increment)
760 (page-increment
761 :allocation :virtual
762 :getter range-page-increment
763 :setter (setf range-page-increment)
764 :initarg :page-increment)))
765
766 ("GtkImage"
767 :slots
768 ((file :ignore t)
769 #+gtk2.6
770 (pixel-size :merge t :unbound -1)))
771
772 ("GtkLabel"
773 :slots
774 ((layout
775 :allocation :virtual
776 :getter "gtk_label_get_layout"
777 :reader label-layout
778 :type pango:layout)))
779
780 ("GtkScale"
781 :slots
782 ((layout
783 :allocation :virtual
784 :getter "gtk_scale_get_layout"
785 :reader scale-layout
786 :type pango:layout)))
787
788 ("GtkEditable"
789 :slots
790 ((editable
791 :allocation :virtual
792 :getter "gtk_editable_get_editable"
793 :setter "gtk_editable_set_editable"
794 :reader editable-editable-p
795 :initarg :editable
796 :type boolean)
797 (position
798 :allocation :virtual
799 :getter "gtk_editable_get_position"
800 :setter "gtk_editable_set_position"
801 :reader editable-position
802 :initarg :position
803 :type position)
804 (text
805 :allocation :virtual
806 :getter editable-text
807 :setter (setf editable-text)
808 :initarg text)))
809
810 ("GtkFileChooser"
811 :slots
812 ((filename
813 :allocation :virtual
814 :getter "gtk_file_chooser_get_filename"
815 :setter "gtk_file_chooser_set_filename"
816 :accessor file-chooser-filename
817 :initarg :filename
818 :type string)
819 (current-name
820 :allocation :virtual
821 :setter "gtk_file_chooser_set_current_name"
822 :accessor file-chooser-current-name
823 :initarg :current-name
824 :type string)
825 (current-folder
826 :allocation :virtual
827 :setter "gtk_file_chooser_set_current_folder"
828 :setter "gtk_file_chooser_get_current_folder"
829 :accessor file-chooser-current-folder
830 :initarg :current-folder
831 :type string)
832 (uri
833 :allocation :virtual
834 :getter "gtk_file_chooser_get_uri"
835 :setter "gtk_file_chooser_set_uri"
836 :accessor file-chooser-uri
837 :initarg :uri
838 :type string)
839 (current-folder-uri
840 :allocation :virtual
841 :setter "gtk_file_chooser_set_current_folder_uri"
842 :setter "gtk_file_chooser_get_current_folder_uri"
843 :accessor file-chooser-current-folder-uri
844 :initarg :current-folder-uri
845 :type string)))
846
847 ("GtkFileFilter"
848 :slots
849 ((name
850 :allocation :virtual
851 :getter "gtk_file_filter_get_name"
852 :setter "gtk_file_filter_set_name"
853 :accessor file-filter-name
854 :initarg :name
855 :type string)))
856
857 ("GtkTreeView"
858 :slots
859 ((columns
860 :allocation :virtual
861 :getter "gtk_tree_view_get_columns"
862 :reader tree-view-columns
863 :type (glist tree-view-column))
864 (selection
865 :allocation :virtual
866 :getter "gtk_tree_view_get_selection"
867 :reader tree-view-selection
868 :type tree-selection)))
869
870 ("GtkTreeModel"
871 :slots
872 ((n-columns
873 :allocation :virtual
874 :getter "gtk_tree_model_get_n_columns"
875 :reader tree-model-n-columns
876 :type int)))
877
878 ("GtkTreeSelection"
879 :slots
880 ((mode
881 :allocation :virtual
882 :getter "gtk_tree_selection_get_mode"
883 :setter "gtk_tree_selection_set_mode"
884 :accessor tree-selection-mode
885 :initarg :mode
886 :type selection-mode)
887 (tree-view
888 :allocation :virtual
889 :getter "gtk_tree_selection_get_mode"
890 :reader tree-selection-mode
891 :type tree-view)))
892
893 ("GtkComboBox"
894 :slots
895 ((active-iter
896 :allocation :virtual
897 :getter "gtk_combo_box_get_active_iter"
898 :setter "gtk_combo_box_set_active_iter"
899 :accessor combo-box-active-iter
900 :type tree-iter)))
901
902 ("GtkTextBuffer"
903 :slots
904 ((line-count
905 :allocation :virtual
906 :getter "gtk_text_buffer_get_line_count"
907 :reader text-buffer-line-count
908 :type int)
909 (char-count
910 :allocation :virtual
911 :getter "gtk_text_buffer_get_char_count"
912 :reader text-buffer-char-count
913 :type int)
914 (modified
915 :allocation :virtual
916 :getter "gtk_text_buffer_get_modified"
917 :setter "gtk_text_buffer_set_modified"
918 :accessor text-buffer-modifed-p
919 :type boolean)))
920
921 ("GtkTextView"
922 :slots
923 ((default-attributes
924 :allocation :virtual
925 :getter "gtk_text_view_get_default_attributes"
926 :reader text-view-default-attributes
927 :type text-attributes)))
928
929 ("GtkTextTagTable"
930 :slots
931 ((size
932 :allocation :virtual
933 :getter "gtk_text_tag_table_get_size"
934 :reader text-tag-table-size
935 :type int)))
936
937 ("GtkTextTag"
938 :slots
939 ((priority
940 :allocation :virtual
941 :getter "gtk_text_tag_get_priority"
942 :setter "gtk_text_tag_set_priority"
943 :accessor text-tag-priority
944 :type int)
945 (weight
946 :merge t :type pango:weight)))
947
948 ("GtkTextMark"
949 :slots
950 ((buffer
951 :allocation :virtual
952 :getter "gtk_text_mark_get_buffer"
953 :reader text-mark-buffer
954 :type text-buffer)
955 (name
956 :allocation :virtual
957 :getter "gtk_text_mark_get_name"
958 :reader text-mark-name
959 :type string)
960 (visible
961 :allocation :virtual
962 :getter "gtk_text_mark_get_visible"
963 :setter "gtk_text_mark_set_visible"
964 :accessor text-mark-visible-p
965 :type boolean)
966 (deleted
967 :allocation :virtual
968 :getter "gtk_text_mark_get_deleted"
969 :reader text-mark-deleted-p
970 :type boolean)
971 (left-gravity
972 :allocation :virtual
973 :getter "gtk_text_mark_get_left_gravity"
974 :reader text-mark-left-gravity-p
975 :type boolean)))
976
977 ("GtkUIManager"
978 :type ui-manager
979 :slots
980 ((action-groups
981 :allocation :virtual
982 :getter "gtk_ui_manager_get_action_groups"
983 :reader ui-manager-action-groups
984 :type (copy-of (glist action-group)))
985 (accel-group
986 :allocation :virtual
987 :getter "gtk_ui_manager_get_accel_group"
988 :reader ui-manager-accel-group
989 :type accel-group)))
990
991 ("GtkUIManagerItemType"
992 :type ui-manager-item-type)
993
994 ("GtkAction"
995 :slots
996 ((accelerator
997 :allocation :user-data :initarg :accelerator
998 :reader action-accelerator)))
999
1000 ("GtkToggleAction"
1001 :slots
1002 ((active
1003 :allocation :virtual
1004 :getter "gtk_toggle_action_get_active"
1005 :setter "gtk_toggle_action_set_active"
1006 :initarg :active
1007 :accessor toggle-action-active-p
1008 :type boolean)))
1009
1010 ("GtkRadioAction"
1011 :slots
1012 ((group
1013 :allocation :virtual
1014 :getter "gtk_radio_button_get_group"
1015 :reader radio-action-group
1016 :type (copy-of (gslist widget)))
1017 (self
1018 :allocation :property :pname "value" :type int
1019 :documentation "A hack so we can use the alien function gtk_radio_action_get_current_value to retrieve the active radio action in a group.")
1020 (value
1021 :allocation :user-data :initarg :value :accessor radio-action-value)))
1022
1023 ("GtkColorSelection"
1024 :slots
1025 ((previous-alpha
1026 :allocation :virtual
1027 :getter "gtk_color_selection_get_previous_alpha"
1028 :setter "gtk_color_selection_get_previous_alpha"
1029 :initarg :previous-alpha
1030 :accessor color-selection-previous-alpha
1031 :type (unsigned 16))
1032 (previous-color
1033 :allocation :virtual
1034 :getter "gtk_color_selection_get_previous_color"
1035 :setter "gtk_color_selection_get_previous_color"
1036 :initarg :previous-color
1037 :accessor color-selection-previous-color
1038 :type gdk:color)))
1039
1040 ("GtkFontSelection"
1041 :slots
1042 ; deprecated property
1043 ((font :ignore t)))
1044
1045 ("GtkClipboard"
1046 :slots
1047 ((display
1048 :allocation :virtual
1049 :getter "gtk_clipboard_get_display"
1050 :reader clipboard-display
1051 :type gdk:display)))
1052
1053 #+gtk2.6
1054 ("GtkIconView"
1055 :slots
1056 ((text-column :merge t :setter %icon-view-set-text-column)
1057 (markup-column :merge t :setter %icon-view-set-markup-column)
1058 (pixbuf-column :merge t :setter %icon-view-set-pixbuf-column)))
1059
1060 ;; Not needed
1061 ("GtkFundamentalType" :ignore t)
1062 ("GtkArgFlags" :ignore t)
1063
1064
1065 ;; Deprecated widgets
1066 ("GtkCList" :ignore-prefix t)
1067 ("GtkCTree" :ignore-prefix t)
1068 ("GtkList" :ignore t)
1069 ("GtkListItem" :ignore t)
1070 ("GtkTree" :ignore t)
1071 ("GtkTreeItem" :ignore t)
1072 ("GtkItemFactory" :ignore t)
1073 ("GtkText" :ignore t)
1074 ("GtkPacker" :ignore-prefix t)
1075 ("GtkPixmap" :ignore t)
1076 ("GtkPreview" :ignore-prefix t)
1077 ("GtkProgres" :ignore t)
1078 ("GtkTipsQuery" :ignore t)
1079 ("GtkOldEditable" :ignore t)
1080 ("GtkCombo" :ignore t)
1081 ("GtkOptionMenu" :ignore t)
1082 ("GtkFileSelection" :ignore t)
1083 ("GtkInputDialog")
1084
1085 ;; What are these?
1086 ("GtkFileSystemModule" :ignore t)
1087 ("GtkIMModule" :ignore t)
1088 ("GtkThemeEngine" :ignore t))
1089
1090
1091(defclass text-iter (boxed)
1092 ((buffer
1093 :allocation :virtual
1094 :getter "gtk_text_iter_get_buffer"
1095 :reader text-iter-buffer
1096 :type pointer) ;text-buffer)
1097 (offset
1098 :allocation :virtual
1099 :getter "gtk_text_iter_get_offset"
1100 :setter "gtk_text_iter_set_offset"
1101 :accessor text-iter-offset
1102 :type int)
1103 (line
1104 :allocation :virtual
1105 :getter "gtk_text_iter_get_line"
1106 :setter "gtk_text_iter_set_line"
1107 :accessor text-iter-line
1108 :type int)
1109 (line-offset
1110 :allocation :virtual
1111 :getter "gtk_text_iter_get_line_offset"
1112 :setter "gtk_text_iter_set_line_offset"
1113 :accessor text-iter-line-offset
1114 :type int)
1115 (line-index
1116 :allocation :virtual
1117 :getter "gtk_text_iter_get_line_index"
1118 :setter "gtk_text_iter_set_line_index"
1119 :accessor text-iter-line-index
1120 :type int)
1121 (visible-line-index
1122 :allocation :virtual
1123 :getter "gtk_text_iter_get_visible_line_index"
1124 :setter "gtk_text_iter_set_visible_line_index"
1125 :accessor text-iter-visible-line-index
1126 :type int)
1127 (visible-line-offset
1128 :allocation :virtual
1129 :getter "gtk_text_iter_get_visible_line_offset"
1130 :setter "gtk_text_iter_set_visible_line_offset"
1131 :accessor text-iter-visible-line-offset
1132 :type int))
1133 (:metaclass boxed-class)
1134 (:size #.(* 14 (size-of 'pointer))))
1135
1136
1137(defclass tooltips-data (struct)
1138 ((tooltips
1139 :allocation :alien
1140 :reader tooltips-data-tooltips
1141 :type tooltips)
1142 (widget
1143 :allocation :alien
1144 :reader tooltips-data-widget
1145 :type widget)
1146 (tip-text
1147 :allocation :alien
1148 :reader tooltips-data-tip-text
1149 :type string)
1150 (tip-private
1151 :allocation :alien
1152 :reader tooltips-data-tip-private
1153 :type string))
1154 (:metaclass struct-class))
1155
1156(defclass file-filter-info (struct)
1157 ((contains
1158 :allocation :alien
1159 :initarg :contains
1160 :type file-filter-flags)
1161 (filename
1162 :allocation :alien
1163 :initarg :filename
1164 :type string)
1165 (uri
1166 :allocation :alien
1167 :initarg :uri
1168 :type string)
1169 (display-name
1170 :allocation :alien
1171 :initarg :display-name
1172 :type string)
1173 (mime-type
1174 :allocation :alien
1175 :initarg :mime-type
1176 :type string))
1177 (:metaclass struct-class))
1178
1179
1180(defclass accel-key (struct)
1181 ((key
1182 :allocation :alien
1183 :type unsigned-int)
1184 (modifiers
1185 :allocation :alien
1186 :type gdk:modifier-type)
1187 (flags
1188 :allocation :alien
1189 :type (unsigned 16)))
1190 (:metaclass struct-class))
1191
1192(defclass accel-group-entry (struct)
1193 ((key
1194 :allocation :alien
1195 :setter nil
1196 :type (inlined accel-key))
1197 (gclosure
1198 :allocation :alien
1199 :type gclosure)
1200 (accel_path_quark
1201 :allocation :alien
1202 :type quark))
1203 (:metaclass struct-class))
1204
1205#+gtk2.8
1206(define-enum-type drop-position
1207 :no-drop :drop-into :drop-left :drop-right :drop-above :drop-below)
1208
1209
1210(defclass target-entry (struct)
1211 ((target
1212 :allocation :alien
1213 :accessor target-entry-target
1214 :initarg :target
1215 :type string)
1216 (flags
1217 :allocation :alien
1218 :accessor target-entry-flags
1219 :initarg :flags
1220 :type target-flags)
1221 (id
1222 :allocation :alien
1223 :accessor target-entry-id
1224 :initarg :id
1225 :type unsigned-int))
1226 (:metaclass struct-class))
1227
1228
1229(defclass selection-data (boxed)
1230 ((selection
1231 :allocation :alien :type gdk:atom
1232 :reader selection-data-selection)
1233 (target
1234 :allocation :alien :type gdk:atom
1235 :reader selection-data-target)
1236 (type
1237 :allocation :alien :type gdk:atom
1238 :reader selection-data-type)
1239 (format
1240 :allocation :alien :type int
1241 :reader selection-data-format)
1242 (data
1243 :allocation :alien :type pointer
1244 :reader selection-data-data)
1245 (length
1246 :allocation :alien :type int
1247 :reader selection-data-length)
1248 (display
1249 :allocation :alien :type gdk:display
1250 :reader selection-data-display))
1251 (:metaclass boxed-class))
1252
1253
1254(defclass target-list (proxy)
1255 ()
1256 (:metaclass proxy-class))