X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/blobdiff_plain/d76e9fca7e252fb02a17d64d3e1c3025de3a2670..14021fee579226a95bc524bcc0e24eccd517c2cc:/gtk/gtktypes.lisp diff --git a/gtk/gtktypes.lisp b/gtk/gtktypes.lisp index 79eb33b..dfa9c05 100644 --- a/gtk/gtktypes.lisp +++ b/gtk/gtktypes.lisp @@ -1,22 +1,26 @@ -;; Common Lisp bindings for GTK+ v2.0.x -;; Copyright (C) 1999-2001 Espen S. Johnsen +;; Common Lisp bindings for GTK+ v2.x +;; Copyright 1999-2005 Espen S. Johnsen ;; -;; This library is free software; you can redistribute it and/or -;; modify it under the terms of the GNU Lesser General Public -;; License as published by the Free Software Foundation; either -;; version 2 of the License, or (at your option) any later version. +;; Permission is hereby granted, free of charge, to any person obtaining +;; a copy of this software and associated documentation files (the +;; "Software"), to deal in the Software without restriction, including +;; without limitation the rights to use, copy, modify, merge, publish, +;; distribute, sublicense, and/or sell copies of the Software, and to +;; permit persons to whom the Software is furnished to do so, subject to +;; the following conditions: ;; -;; This library is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;; Lesser General Public License for more details. +;; The above copyright notice and this permission notice shall be +;; included in all copies or substantial portions of the Software. ;; -;; You should have received a copy of the GNU Lesser General Public -;; License along with this library; if not, write to the Free Software -;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -;; $Id: gtktypes.lisp,v 1.27 2004-12-29 21:17:37 espen Exp $ +;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +;; IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +;; CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +;; $Id: gtktypes.lisp,v 1.65 2008-10-27 18:42:01 espen Exp $ (in-package "GTK") @@ -37,13 +41,13 @@ (defclass requisition (boxed) (defclass allocation (struct) ((x :allocation :alien - :accessor allocation-width + :accessor allocation-x :initarg :x :type int) (y :allocation :alien - :accessor allocation-width - :initarg :width + :accessor allocation-y + :initarg :y :type int) (width :allocation :alien @@ -106,11 +110,11 @@ (defclass stock-item (struct) :accessor stock-item-translation-domain :initarg :translation-domain :type string)) - (:metaclass struct-class)) + (:metaclass struct-class) + (:ref stock-item-copy) + (:unref stock-item-free)) -;; We don't really need to access any of these slots, but we need to -;; specify the size of the struct somehow -(defclass tree-iter (boxed) +(defclass tree-iter (boxed) ((stamp :allocation :alien :type int) (user-data :allocation :alien :type pointer) (user-data2 :allocation :alien :type pointer) @@ -124,18 +128,22 @@ (defclass tree-iter (boxed) ;; (:metaclass boxed-class)) (deftype tree-path () '(vector integer)) -(register-type 'tree-path "GtkTreePath") +(register-type 'tree-path '|gtk_tree_path_get_type|) -(deftype editable-position () '(or int (enum (:start 0) (:end -1)))) +(deftype position () + '(or int (enum (:start 0) (:end -1) (:first 0) (:last -1)))) -;; Forward definitions -(defclass widget (%object) - () - (:metaclass gobject-class)) -(defclass container (widget) - () - (:metaclass gobject-class)) +(define-type-method from-alien-form ((type position) form &key ref) + (declare (ignore type ref)) + (from-alien-form 'int form)) + +(define-type-method from-alien-function ((type position) &key ref) + (declare (ignore type ref)) + (from-alien-function 'int)) +(define-type-method reader-function ((type position) &optional ref) + (declare (ignore type ref)) + (reader-function 'int)) (define-types-by-introspection "Gtk" ;; Manually defined @@ -146,11 +154,13 @@ (define-types-by-introspection "Gtk" ("GtkTreePath" :ignore t) ; ("GtkStyle" :ignore t) + ("GtkMountOperation" :ignore t) ; Needs GIO + ;; Manual override ("GtkWidget" :slots ((child-properties - :allocation :instance + :special t :accessor widget-child-properties :type container-child) (window @@ -158,6 +168,15 @@ (define-types-by-introspection "Gtk" :getter "gtk_widget_get_window" :reader widget-window :type gdk:window) + (parent :merge t :initarg nil) + (visible :merge t :initarg nil) + (parent-window + :allocation :virtual + :getter %widget-parent-window + :setter "gtk_widget_set_parent_window" + :accessor widget-parent-window + :initarg :parent-window + :type gdk:window) (state :allocation :virtual :getter "gtk_widget_get_state" @@ -190,7 +209,7 @@ (define-types-by-introspection "Gtk" :setter "gtk_widget_set_composite_name" :accessor widget-composite-name :initarg :composite-name - :type string) + :type (copy-of string)) ; will leak the string when setting (settings :allocation :virtual :getter "gtk_widget_get_settings" @@ -206,24 +225,31 @@ (define-types-by-introspection "Gtk" (width-request :merge t :unbound -1) (height-request - :merge t :unbound -1))) + :merge t :unbound -1) + #?-(pkg-exists-p "gtk+-2.0" :atleast-version "2.12.0") + (tooltip-window + :allocation :virtual + :getter "gtk_widget_get_tooltip_window" + :setter "gtk_widget_set_tooltip_window" + :accessor widget-tooltip-window + :initarg :tooltip-window + :type window))) ("GtkContainer" :slots ((child :ignore t) (children :allocation :virtual - :getter container-children :setter (setf container-children) - ;; The following doesn't work because gtk_container_get_children doesn't - ;; increase the reference count of the children -; :getter "gtk_container_get_children" -; :reader container-children -; :type (glist widget) - ) + :getter "gtk_container_get_children" + :reader container-children + :type (glist (copy-of widget))) + (internal-children ; for debugging + :allocation :virtual + :getter container-internal-children) (child-type :allocation :virtual - :getter "gtk_containerchild_type" + :getter "gtk_container_child_type" :reader container-child-type :type gtype) (focus-child @@ -293,7 +319,7 @@ (default-widget :type boolean) (icon-list :allocation :virtual - :getter "gtk_window_get_icon_list" + :getter %window-get-icon-list :setter "gtk_window_set_icon_list" :accessor window-icon-list :initarg :icon-list @@ -305,6 +331,7 @@ (default-widget :accessor window-mnemonic-modifier :initarg :mnemonic-modifier :type gdk:modifier-type) + #?-(pkg-exists-p "gtk+-2.0" :atleast-version "2.10.0") (transient-for :allocation :virtual :getter "gtk_window_get_transient_for" @@ -323,6 +350,7 @@ (default-width :merge t :unbound -1) (default-height :merge t :unbound -1))) ("GtkWindowGroup" + :dependencies (window) :slots ((grabs :allocation :alien @@ -358,6 +386,7 @@ (default-height :merge t :unbound -1))) :accessor menu-item-right-justified-p :initarg :right-justified :type boolean) + #?-(pkg-exists-p "gtk+-2.0" :atleast-version "2.12.0") (submenu :allocation :virtual :getter "gtk_menu_item_get_submenu" @@ -366,6 +395,15 @@ (default-height :merge t :unbound -1))) :initarg :submenu :type widget))) + ("GtkMenuShell" + :slots + ((take-focus-p + :allocation :virtual + :getter "gtk_menu_shell_get_take_focus" + :setter "gtk_menu_shell_set_take_focus" + :accessor menu-shell-take-focus-p + :type boolean))) + ("GtkColorSelectionDialog" :slots ((colorsel @@ -387,13 +425,27 @@ (default-height :merge t :unbound -1))) ("GtkScrolledWindow" :slots - ((hscrollbar - :allocation :alien + (#?-(pkg-exists-p "gtk+-2.0" :atleast-version "2.8.0") + (hscrollbar + :allocation :alien :reader scrolled-window-hscrollbar :type widget) + #?-(pkg-exists-p "gtk+-2.0" :atleast-version "2.8.0") (vscrollbar :allocation :alien :reader scrolled-window-vscrollbar + :type widget) + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.8.0") + (hscrollbar + :allocation :virtual + :getter "gtk_scrolled_window_get_hscrollbar" + :reader scrolled-window-hscrollbar + :type widget) + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.8.0") + (vscrollbar + :allocation :virtual + :getter "gtk_scrolled_window_get_vscrollbar" + :reader scrolled-window-vscrollbar :type widget))) ("GtkPaned" @@ -441,7 +493,7 @@ (default-height :merge t :unbound -1))) :getter "gtk_menu_get_attach_widget" :reader menu-attach-widget :type widget) - #-gtk2.6 + #?-(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (tearoff-state :allocation :virtual :getter "gtk_menu_get_tearoff_state" @@ -450,45 +502,79 @@ (default-height :merge t :unbound -1))) :initarg :tearoff-state :type boolean))) - ("GtkToolbar" + ("GtkPlug" + :slots + ((id + :allocation :virtual + :getter "gtk_plug_get_id" + :reader plug-id + :type gdk:native-window))) + + ("GtkSocket" :slots - ((tooltips + ((id :allocation :virtual + :getter "gtk_socket_get_id" + :reader socket-id + :type gdk:native-window))) + + ("GtkToolbar" + :slots + ((show-tooltips ;; this slot is equivalent to the property + :allocation :virtual ;; "tooltips" in Gtk+ 2.8 :getter "gtk_toolbar_get_tooltips" :setter "gtk_toolbar_set_tooltips" - :accessor toolbar-tooltips-p - :initarg :tooltips + :accessor toolbar-show-tooltips-p + :initarg :show-tooltips :type boolean) - (icon-size - :allocation :virtual - :getter "gtk_toolbar_get_icon_size" - :setter "gtk_toolbar_set_icon_size" - :accessor toolbar-icon-size - :initarg :icon-size - :type icon-size) - (toolbar-style + (tooltips + :allocation :virtual + :getter "gtk_toolbar_get_tooltips_object" + :reader toolbar-tooltips + :type tooltips) + (toolbar-style ; defined manually to get the accesssor name correct :allocation :property :pname "toolbar-style" :initarg :toolbar-style :accessor toolbar-style - :type toolbar-style))) + :type toolbar-style) + (n-items + :allocation :virtual + :getter "gtk_toolbar_get_n_items" + :reader toolbar-n-items + :type int))) ("GtkToolItem" :slots - ((drag-window + ((use-drag-window :allocation :virtual - :getter "gtk_tool_item_get_drag_window" - :setter "gtk_tool_item_set_drag_window" - :accessor tool-item-drag-window + :getter "gtk_tool_item_get_use_drag_window" + :setter "gtk_tool_item_set_use_drag_window" + :accessor tool-item-use-drag-window-p :initarg :drag-window - :type boolean))) + :type boolean) + (tip-text + :allocation :user-data + :setter (setf tool-item-tip-text) + :initarg :tip-text + :reader tool-item-tip-text) + (tip-private + :allocation :user-data + :setter (setf tool-item-tip-private) + :initarg :tip-private + :reader tool-item-tip-private))) + + ("GtkToolButton" + :slots + ((stock-id :merge t :initarg :stock) + (icon-widget :merge t :initarg :icon))) ("GtkToggleToolButton" :slots ((active :allocation :virtual :getter "gtk_toggle_tool_button_get_active" - :setter "gtk_toggle_tool_button_get_active" + :setter "gtk_toggle_tool_button_set_active" :accessor toggle-tool-button-active-p :initarg :active :type boolean))) @@ -499,16 +585,30 @@ (default-height :merge t :unbound -1))) :allocation :virtual :getter "gtk_radio_tool_button_get_group" :reader radio-tool-button-group - :type (copy-of (gslist widget))))) + :type (copy-of (gslist widget))) + (value + :allocation :user-data + :initarg :value + :accessor radio-tool-button-value + :documentation "Value passed as argument to the activate callback"))) ("GtkNotebook" :slots ((current-page :allocation :virtual - :getter notebook-current-page + :getter %notebook-current-page :setter (setf notebook-current-page) + :reader notebook-current-page + :type widget :initarg :current-page) - (page :ignore t))) + (current-page-num + :allocation :virtual + :getter "gtk_notebook_get_current_page" + :setter "gtk_notebook_set_current_page" + :unbound -1 + :initarg :current-page-num + :accessor notebook-current-page-num + :type position))) ("GtkRuler" :slots @@ -542,15 +642,11 @@ (default-height :merge t :unbound -1))) ("GtkTable" :slots ((column-spacing - :allocation :virtual - :getter "gtk_table_get_default_col_spacing" - :setter "gtk_table_set_col_spacings" + :allocation :property :pname "column-spacing" :initarg :column-spacing :type unsigned-int) (row-spacing - :allocation :virtual - :getter "gtk_table_get_default_row_spacing" - :setter "gtk_table_set_row_spacings" + :allocation :property :pname "row-spacing" :initarg :row-spacing :type unsigned-int))) @@ -575,14 +671,30 @@ (default-height :merge t :unbound -1))) :reader entry-layout :type pango:layout) (completion + :allocation :virtual :getter "gtk_entry_get_completion" :setter "gtk_entry_set_completion" :initarg :completion :accessor entry-completion :type entry-completion) (max-length :merge t :unbound 0) - #+gtk2.6 - (with-chars :merge t :unbound -1))) + (alignment + :allocation :virtual + :getter "gtk_entry_get_alignment" + :setter "gtk_entry_set_alignment" + :initarg :alignment + :accessor entry-alignment + :type single-float) + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") + (width-chars :merge t :unbound -1) + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.12.0") + (cursor-adjustment + :allocation :virtual + :getter "gtk_entry_get_cursor_hadjustment" + :setter "gtk_entry_set_cursor_hadjustment" + :initarg :cursor-hadjustment + :accessor entry-cursor-hadjustment + :type adjustment))) ("GtkEntryCompletion" :slots @@ -592,8 +704,16 @@ (default-height :merge t :unbound -1))) :reader entry-completion-entry :type entry) (minimum-key-length :merge t :unbound -1) - #+gtk2.6 - (text-column :merge t :unbound -1))) + ;; Need to be manually defined, as this value through the property + ;; mechanism doesn't work + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") + (text-column + :allocation :virtual + :getter "gtk_entry_completion_get_text_column" + :setter "gtk_entry_completion_set_text_column" + :unbound -1 + :accessor entry-completion-text-column + :type int))) ("GtkRadioButton" :slots @@ -601,7 +721,12 @@ (default-height :merge t :unbound -1))) :allocation :virtual :getter "gtk_radio_button_get_group" :reader radio-button-group - :type (copy-of (gslist widget))))) + :type (copy-of (gslist widget))) + (value + :allocation :user-data + :initarg :value + :accessor radio-button-value + :documentation "Value passed as argument to the activate callback"))) ("GtkRadioMenuItem" :slots @@ -609,25 +734,12 @@ (default-height :merge t :unbound -1))) :allocation :virtual :getter "gtk_radio_menu_item_get_group" :reader radio-menu-item-group - :type (copy-of (gslist widget))))) - - ("GtkFileSelection" - :slots - ((action-area - :allocation :virtual - :getter "gtk_file_selection_get_action_area" - :reader file-selection-action-area - :type widget) - (ok-button - :allocation :virtual - :getter "gtk_file_selection_get_ok_button" - :reader file-selection-ok-button - :type widget) - (cancel-button - :allocation :virtual - :getter "gtk_file_selection_get_cancel_button" - :reader file-selection-cancel-button - :type widget))) + :type (copy-of (gslist widget))) + (value + :allocation :user-data + :initarg :value + :accessor radio-menu-item-value + :documentation "Value passed as argument to the activate callback"))) ("GtkLayout" :slots @@ -680,7 +792,7 @@ (default-height :merge t :unbound -1))) ("GtkImage" :slots ((file :ignore t) - #+gtk2.6 + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") (pixel-size :merge t :unbound -1))) ("GtkLabel" @@ -691,6 +803,14 @@ (default-height :merge t :unbound -1))) :reader label-layout :type pango:layout))) + ("GtkScale" + :slots + ((layout + :allocation :virtual + :getter "gtk_scale_get_layout" + :reader scale-layout + :type pango:layout))) + ("GtkEditable" :slots ((editable @@ -706,7 +826,7 @@ (default-height :merge t :unbound -1))) :setter "gtk_editable_set_position" :reader editable-position :initarg :position - :type editable-position) + :type position) (text :allocation :virtual :getter editable-text @@ -725,38 +845,48 @@ (default-height :merge t :unbound -1))) (current-name :allocation :virtual :setter "gtk_file_chooser_set_current_name" - :accessor file-choser-current-name + :accessor file-chooser-current-name :initarg :current-name :type string) (current-folder :allocation :virtual :setter "gtk_file_chooser_set_current_folder" - :setter "gtk_file_chooser_get_current_folder" - :accessor file-choser-current-folder + :getter "gtk_file_chooser_get_current_folder" + :accessor file-chooser-current-folder :initarg :current-folder :type string) (uri :allocation :virtual :getter "gtk_file_chooser_get_uri" :setter "gtk_file_chooser_set_uri" - :accessor file-choser-uri + :accessor file-chooser-uri :initarg :uri :type string) (current-folder-uri :allocation :virtual :setter "gtk_file_chooser_set_current_folder_uri" - :setter "gtk_file_chooser_get_current_folder_uri" - :accessor file-choser-current-folder-uri + :getter "gtk_file_chooser_get_current_folder_uri" + :accessor file-chooser-current-folder-uri :initarg :current-folder-uri :type string))) + ("GtkFileFilter" + :slots + ((name + :allocation :virtual + :getter "gtk_file_filter_get_name" + :setter "gtk_file_filter_set_name" + :accessor file-filter-name + :initarg :name + :type string))) + ("GtkTreeView" :slots ((columns :allocation :virtual :getter "gtk_tree_view_get_columns" :reader tree-view-columns - :type (glist tree-view-column)) + :type (glist (copy-of tree-view-column))) (selection :allocation :virtual :getter "gtk_tree_view_get_selection" @@ -771,6 +901,10 @@ (default-height :merge t :unbound -1))) :reader tree-model-n-columns :type int))) + ("GtkTreeModelFilter" + :slots + ((virtual-root :merge t :type tree-path))) + ("GtkTreeSelection" :slots ((mode @@ -782,8 +916,8 @@ (default-height :merge t :unbound -1))) :type selection-mode) (tree-view :allocation :virtual - :getter "gtk_tree_selection_get_mode" - :reader tree-selection-mode + :getter "gtk_tree_selection_get_tree_view" + :reader tree-selection-tree-view :type tree-view))) ("GtkComboBox" @@ -841,6 +975,35 @@ (default-height :merge t :unbound -1))) (weight :merge t :type pango:weight))) + ("GtkTextMark" + :slots + ((buffer + :allocation :virtual + :getter "gtk_text_mark_get_buffer" + :reader text-mark-buffer + :type text-buffer) + (name + :allocation :virtual + :getter "gtk_text_mark_get_name" + :reader text-mark-name + :type (copy-of string)) + (visible + :allocation :virtual + :getter "gtk_text_mark_get_visible" + :setter "gtk_text_mark_set_visible" + :accessor text-mark-visible-p + :type boolean) + (deleted + :allocation :virtual + :getter "gtk_text_mark_get_deleted" + :reader text-mark-deleted-p + :type boolean) + (left-gravity + :allocation :virtual + :getter "gtk_text_mark_get_left_gravity" + :reader text-mark-left-gravity-p + :type boolean))) + ("GtkUIManager" :type ui-manager :slots @@ -858,19 +1021,20 @@ (default-height :merge t :unbound -1))) ("GtkUIManagerItemType" :type ui-manager-item-type) - ("GtkToggle" + ("GtkAction" :slots ((accelerator - :allocation :virtual - :getter action-accelerator))) + :allocation :user-data :initarg :accelerator + :reader action-accelerator))) + #?-(pkg-exists-p "gtk+-2.0" :atleast-version "2.10.0") ("GtkToggleAction" :slots ((active :allocation :virtual :getter "gtk_toggle_action_get_active" :setter "gtk_toggle_action_set_active" - :initarg :active +; :initarg :active ;; Handled by initialize-instance :accessor toggle-action-active-p :type boolean))) @@ -881,13 +1045,100 @@ (default-height :merge t :unbound -1))) :getter "gtk_radio_button_get_group" :reader radio-action-group :type (copy-of (gslist widget))) - (%value - :allocation :property :pname "value" - :readable nil :type int) + (self + :allocation :property :pname "value" :type int + :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.") (value + :allocation :user-data :initarg :value :accessor radio-action-value) + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.10.0") + ;; Use radio-action-get-current-value to get the current value of + ;; a radio action group + (current-value :ignore t))) + + ("GtkColorSelection" + :slots + ((previous-alpha + :allocation :virtual + :getter "gtk_color_selection_get_previous_alpha" + :setter "gtk_color_selection_set_previous_alpha" + :initarg :previous-alpha + :accessor color-selection-previous-alpha + :type (unsigned 16)) + (previous-color + :allocation :virtual + :getter color-selection-previous-color + :setter "gtk_color_selection_set_previous_color" + :initarg :previous-color + :writer (setf color-selection-previous-color) + :type gdk:color))) + + ("GtkFontSelection" + :slots + ; deprecated property + ((font :ignore t))) + + ("GtkClipboard" + :slots + ((display + :allocation :virtual + :getter "gtk_clipboard_get_display" + :reader clipboard-display + :type gdk:display))) + + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0") + ("GtkIconView" + :slots + ((text-column + :allocation :virtual + :getter %icon-view-get-text-column + :setter %icon-view-set-text-column + :boundp %icon-view-text-column-boundp + :initarg :text-column + :accessor icon-view-text-column) + (markup-column + :allocation :virtual + :getter %icon-view-get-markup-column + :setter %icon-view-set-markup-column + :boundp %icon-view-markup-column-boundp + :initarg :markup-column + :accessor icon-view-markup-column) + (pixbuf-column + :allocation :virtual + :getter %icon-view-get-pixbuf-column + :setter %icon-view-set-pixbuf-column + :boundp %icon-view-pixbuf-column-boundp + :initarg :pixbuf-column + :accessor icon-view-pixbuf-column))) + + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.10.0") + ("GtkAssistant" + :slots + ((current-page + :allocation :virtual + :getter "gtk_assistant_get_current_page" + :setter "gtk_assistant_set_current_page" + :accessor assistant-current-page + :type int) + (num-pages :allocation :virtual - :getter radio-action-value))) + :getter "gtk_assistant_get_n_page" + :reader assistant-current-page + :type int))) + #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.10.0") + ("GtkRecentChooser" + :slots + ((current-item + :allocation :virtual + :getter "gtk_recent_chooser_get_current_item" + :reader recent-chooser-current-item + :type recent-info) + (current-uri + :allocation :virtual + :getter "gtk_recent_chooser_get_current_uri" + :setter %recent-chooser-set-current-uri + :accessor recent-chooser-current-uri + :type string))) ;; Not needed ("GtkFundamentalType" :ignore t) @@ -911,13 +1162,13 @@ (default-height :merge t :unbound -1))) ("GtkOldEditable" :ignore t) ("GtkCombo" :ignore t) ("GtkOptionMenu" :ignore t) + ("GtkFileSelection" :ignore t) + ("GtkInputDialog") ;; What are these? ("GtkFileSystemModule" :ignore t) ("GtkIMModule" :ignore t) - ("GtkThemeEngine" :ignore t) - - ) + ("GtkThemeEngine" :ignore t)) (defclass text-iter (boxed) @@ -925,7 +1176,7 @@ (defclass text-iter (boxed) :allocation :virtual :getter "gtk_text_iter_get_buffer" :reader text-iter-buffer - :type text-buffer) + :type pointer) ;text-buffer) (offset :allocation :virtual :getter "gtk_text_iter_get_offset" @@ -961,14 +1212,9 @@ (defclass text-iter (boxed) :getter "gtk_text_iter_get_visible_line_offset" :setter "gtk_text_iter_set_visible_line_offset" :accessor text-iter-visible-line-offset - :type int) - ;; Workaround to get correct size - (dummy14 - :allocation :alien :offset #.(* 13 (size-of 'pointer)) - :type pointer)) - (:metaclass boxed-class - ;; I am pretty sure this was working in older versons on CMUCL - :size #.(* 14 (size-of 'pointer)))) + :type int)) + (:metaclass boxed-class) + (:size #.(* 14 (size-of 'pointer)))) (defclass tooltips-data (struct) @@ -989,3 +1235,113 @@ (defclass tooltips-data (struct) :reader tooltips-data-tip-private :type string)) (:metaclass struct-class)) + +(defclass file-filter-info (struct) + ((contains + :allocation :alien + :initarg :contains + :type file-filter-flags) + (filename + :allocation :alien + :initarg :filename + :type string) + (uri + :allocation :alien + :initarg :uri + :type string) + (display-name + :allocation :alien + :initarg :display-name + :type string) + (mime-type + :allocation :alien + :initarg :mime-type + :type string)) + (:metaclass struct-class)) + + +(defclass accel-key (struct) + ((key + :allocation :alien + :type unsigned-int) + (modifiers + :allocation :alien + :type gdk:modifier-type) + (flags + :allocation :alien + :type (unsigned 16))) + (:metaclass struct-class)) + +(defclass accel-group-entry (struct) + ((key + :allocation :alien + :setter nil + :type (inlined accel-key)) + (gclosure + :allocation :alien + :type gclosure) + (accel_path_quark + :allocation :alien + :type quark)) + (:metaclass struct-class)) + +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.8.0") +(define-enum-type drop-position + :no-drop :drop-into :drop-left :drop-right :drop-above :drop-below) + + +(defclass target-entry (struct) + ((target + :allocation :alien + :accessor target-entry-target + :initarg :target + :type string) + (flags + :allocation :alien + :accessor target-entry-flags + :initarg :flags + :type target-flags) + (id + :allocation :alien + :accessor target-entry-id + :initarg :id + :type unsigned-int)) + (:metaclass struct-class)) + + +(defclass selection-data (boxed) + ((selection + :allocation :alien :type gdk:atom + :reader selection-data-selection) + (target + :allocation :alien :type gdk:atom + :reader selection-data-target) + (type + :allocation :alien :type gdk:atom + :reader selection-data-type) + (format + :allocation :alien :type int + :reader selection-data-format) + (data + :allocation :alien :type pointer + :reader selection-data-data) + (length + :allocation :alien :type int + :reader selection-data-length) + (display + :allocation :alien :type gdk:display + :reader selection-data-display)) + (:metaclass boxed-class)) + + +#?-(pkg-exists-p "gtk+-2.0" :atleast-version "2.10.0") +(defclass target-list (proxy) + () + (:metaclass proxy-class) + (:ref target-list-ref) + (:unref target-list-unref)) + +#?(pkg-exists-p "gtk+-2.0" :atleast-version "2.10.0") +(defclass target-list (boxed) + () + (:metaclass boxed-class))