X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/clg/blobdiff_plain/5e17fb786e938559779fa96f283c23647c7d1f0b..dfa4f31424800fdb6fb63514121b9cc893269276:/gtk/gtktypes.lisp diff --git a/gtk/gtktypes.lisp b/gtk/gtktypes.lisp index 6e2c5da..aeab0f6 100644 --- a/gtk/gtktypes.lisp +++ b/gtk/gtktypes.lisp @@ -15,8 +15,7 @@ ;; 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.21 2004-12-04 18:18:21 espen Exp $ - +;; $Id: gtktypes.lisp,v 1.34 2005-03-06 17:26:23 espen Exp $ (in-package "GTK") @@ -124,16 +123,14 @@ (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|) -(defclass text-iter (boxed) - ((dummy14 - :allocation :alien :offset #.(* 13 (size-of 'pointer)) - :type pointer)) - (:metaclass boxed-class)) - +(deftype position () + '(or int (enum (:start 0) (:end -1) (:first 0) (:last -1)))) +(defmethod reader-function ((type (eql 'position)) &rest args) + (declare (ignore type args)) + (reader-function 'int)) (define-types-by-introspection "Gtk" ;; Manually defined @@ -142,25 +139,29 @@ (define-types-by-introspection "Gtk" ("GtkBorder" :ignore t) ("GtkTreeIter" :ignore t) ("GtkTreePath" :ignore t) +; ("GtkStyle" :ignore t) ;; Manual override ("GtkWidget" :slots - ((child-slots + ((child-properties :allocation :instance - :accessor widget-child-slots + :accessor widget-child-properties :type container-child) - (parent-window - :allocation :virtual - :getter "gtk_widget_get_parent_window" - :setter "gtk_widget_set_parent_window" - :accessor widget-parent-window - :type gdk:window) (window :allocation :virtual :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" @@ -193,7 +194,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" @@ -205,16 +206,30 @@ (define-types-by-introspection "Gtk" :setter "gtk_widget_set_child_visible" :accessor widget-child-visible-p :initarg :child-visible - :type boolean))) + :type boolean) + (width-request + :merge t :unbound -1) + (height-request + :merge t :unbound -1))) ("GtkContainer" :slots - ((child - :ignore t) + ((child :ignore t) (children :allocation :virtual :getter container-children - :setter (setf 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) + ) + (child-type + :allocation :virtual + :getter "gtk_container_child_type" + :reader container-child-type + :type gtype) (focus-child :allocation :virtual :getter "gtk_container_get_focus_child" @@ -239,7 +254,14 @@ (define-types-by-introspection "Gtk" :setter "gtk_container_set_focus_vadjustment" :accessor container-focus-vadjustment :initarg :focus-vadjustment - :type adjustment))) + :type adjustment) + (reallocate-redraws + :allocation :virtual + :getter "gtk_container_get_reallocate_redraws" + :setter "gtk_container_set_reallocate_redraws" + :accessor container-reallocate-redraws + :initarg :reallocate-redraws + :type boolean))) ("GtkBin" :slots @@ -252,14 +274,7 @@ (define-types-by-introspection "Gtk" ("GtkWindow" :slots - ((gravity - :allocation :virtual - :getter "gtk_window_get_gravity" - :setter "gtk_window_set_gravity" - :accessor window-gravity - :initarg :gravity - :type gdk:gravity) - (focus-widget + ((focus-widget :allocation :virtual :getter "gtk_window_get_focus" :setter "gtk_window_set_focus" @@ -273,13 +288,6 @@ (default-widget :accessor window-default-widget :initarg :default-widget :type widget) - (decorated - :allocation :virtual - :getter "gtk_window_get_decorated" - :setter "gtk_window_set_decorated" - :accessor window-decorated-p - :initarg :decorated - :type boolean) (has-frame :allocation :virtual :getter "gtk_window_get_has_frame" @@ -287,25 +295,13 @@ (default-widget :accessor window-has-frame-p :initarg :has-frame :type boolean) - (role + (icon-list :allocation :virtual - :getter "gtk_window_get_role" - :setter "gtk_window_set_role" - :accessor window-role - :initarg :role - :type string) - (type-hint - :allocation :virtual - :getter "gtk_window_get_type_hint" - :setter "gtk_window_set_type_hint" - :accessor window-type-hint - :initarg :type-hint - :type gdk:window-type-hint) - (icon - :allocation :virtual - :getter window-icon - :setter (setf window-icon) - :initarg :icon) + :getter "gtk_window_get_icon_list" + :setter "gtk_window_set_icon_list" + :accessor window-icon-list + :initarg :icon-list + :type (glist gdk:pixbuf)) (mnemonic-modifier :allocation :virtual :getter "gtk_window_get_mnemonic_modifier" @@ -319,8 +315,24 @@ (default-widget :setter "gtk_window_set_transient_for" :accessor window-transient-for :initarg :transient-for - :type window))) + :type window) + (group + :allocation :virtual + :getter "gtk_window_get_group" + :setter (setf window-group) + :reader window-group + :initarg :group + :type window-group) + (default-width :merge t :unbound -1) + (default-height :merge t :unbound -1))) + ("GtkWindowGroup" + :slots + ((grabs + :allocation :alien + :accessor window-group-grabs + :type (gslist window)))) + ("GtkTooltips" :slots ((enabled @@ -331,31 +343,18 @@ (default-widget :initarg :enabled :type boolean))) - ("GtkOptionMenu" - :slots - ((menu - :allocation :virtual - :getter "gtk_option_menu_get_menu" - :setter (setf option-menu-menu) - :reader option-menu-menu - :initarg :menu - :type menu) - (history - :allocation :virtual - :getter "gtk_option_menu_get_history" - :setter "gtk_option_menu_set_history" - :accessor option-menu-history - :initarg :history - :type unsigned-int))) - ("GtkMenuItem" :slots ((label :allocation :virtual :getter menu-item-label :setter (setf menu-item-label) - :initarg :label :type string) + (use-underline + :allocation :user-data + :initform nil + :initarg :use-underline + :accessor menu-item-use-underline-p) (right-justified :allocation :virtual :getter "gtk_menu_item_get_right_justified" @@ -366,10 +365,10 @@ (default-widget (submenu :allocation :virtual :getter "gtk_menu_item_get_submenu" - :setter (setf menu-item-submenu) - :reader menu-item-submenu + :setter "gtk_menu_item_set_submenu" + :accessor menu-item-submenu :initarg :submenu - :type menu-item))) + :type widget))) ("GtkColorSelectionDialog" :slots @@ -405,14 +404,16 @@ (default-widget :slots ((child1 :allocation :virtual - :getter paned-child1 - :setter (setf paned-child1) + :getter "gtk_paned_get_child1" + :setter "gtk_paned_add1" + :accessor paned-child1 :initarg :child1 :type widget) (child2 :allocation :virtual - :getter paned-child2 - :setter (setf paned-child2) + :getter "gtk_paned_get_child2" + :setter "gtk_paned_add2" + :accessor paned-child2 :initarg :child2 :type widget))) @@ -425,13 +426,6 @@ (default-widget :accessor menu-accel-group :initarg :accel-group :type accel-group) - (title - :allocation :virtual - :getter "gtk_menu_get_title" - :setter "gtk_menu_set_title" - :accessor menu-title - :initarg :title - :type string) (active :allocation :virtual :getter "gtk_menu_get_active" @@ -439,45 +433,118 @@ (default-widget :reader menu-active :initarg :active :type widget) - (tornoff + (screen + :allocation :virtual + :getter "gtk_menu_get_screen" + :setter "gtk_menu_set_screen" + :accessor menu-screen + :initarg :screen + :type gdk:screen) + (attach-widget + :allocation :virtual + :getter "gtk_menu_get_attach_widget" + :reader menu-attach-widget + :type widget) + #-gtk2.6 + (tearoff-state :allocation :virtual :getter "gtk_menu_get_tearoff_state" :setter "gtk_menu_set_tearoff_state" - :accessor menu-tornoff-p - :initarg :tearoff + :accessor menu-tearoff-state-p + :initarg :tearoff-state :type boolean))) ("GtkToolbar" :slots - ((tooltips + ((show-tooltips :allocation :virtual :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 + (tooltips :allocation :virtual - :getter "gtk_toolbar_get_icon_size" - :setter "gtk_toolbar_set_icon_size" - :accessor toolbar-icon-size - :initarg :icon-size - :type icon-size) + :getter "gtk_toolbar_get_tooltips_object" + :reader toolbar-tooltips + :type tooltips) (toolbar-style :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 + ((use-drag-window + :allocation :virtual + :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) + (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" + :accessor toggle-tool-button-active-p + :initarg :active + :type boolean))) + + ("GtkRadioToolButton" + :slots + ((group + :allocation :virtual + :getter "gtk_radio_tool_button_get_group" + :reader radio-tool-button-group + :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 @@ -498,6 +565,16 @@ (default-widget (activity-blocks :ignore t) (discrete-blocks :ignore t))) + ("GtkHandleBox" + :slots + ; deprecated property + ((shadow :ignore t))) + + ("GtkFrame" + :slots + ; deprecated property + ((shadow :ignore t))) + ("GtkTable" :slots ((column-spacing @@ -526,21 +603,46 @@ (default-widget :reader dialog-action-area :type widget))) - ("GtkCombo" + ("GtkEntry" + :slots + ((layout + :allocation :virtual + :getter "gtk_entry_get_layout" + :reader entry-layout + :type pango:layout) + (completion + :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 + (width-chars :merge t :unbound -1))) + + ("GtkEntryCompletion" :slots ((entry :allocation :virtual - :getter "gtk_combo_get_entry" - :reader combo-entry - :type entry))) - + :getter "gtk_entry_completion_get_entry" + :reader entry-completion-entry + :type entry) + (minimum-key-length :merge t :unbound -1) + #+gtk2.6 + (text-column :merge t :unbound -1))) + ("GtkRadioButton" :slots ((group :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 @@ -548,25 +650,12 @@ (default-widget :allocation :virtual :getter "gtk_radio_menu_item_get_group" :reader radio-menu-item-group - :type (static (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 @@ -618,8 +707,26 @@ (default-widget ("GtkImage" :slots - ((file :ignore t))) - + ((file :ignore t) + #+gtk2.6 + (pixel-size :merge t :unbound -1))) + + ("GtkLabel" + :slots + ((layout + :allocation :virtual + :getter "gtk_label_get_layout" + :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 @@ -635,7 +742,7 @@ (default-widget :setter "gtk_editable_set_position" :reader editable-position :initarg :position - :type int) + :type position) (text :allocation :virtual :getter editable-text @@ -654,31 +761,41 @@ (default-widget (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 + :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 + :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 @@ -724,6 +841,25 @@ (default-widget :accessor combo-box-active-iter :type tree-iter))) + ("GtkTextBuffer" + :slots + ((line-count + :allocation :virtual + :getter "gtk_text_buffer_get_line_count" + :reader text-buffer-line-count + :type int) + (char-count + :allocation :virtual + :getter "gtk_text_buffer_get_char_count" + :reader text-buffer-char-count + :type int) + (modified + :allocation :virtual + :getter "gtk_text_buffer_get_modified" + :setter "gtk_text_buffer_set_modified" + :accessor text-buffer-modifed-p + :type boolean))) + ("GtkTextView" :slots ((default-attributes @@ -732,6 +868,54 @@ (default-widget :reader text-view-default-attributes :type text-attributes))) + ("GtkTextTagTable" + :slots + ((size + :allocation :virtual + :getter "gtk_text_tag_table_get_size" + :reader text-tag-table-size + :type int))) + + ("GtkTextTag" + :slots + ((priority + :allocation :virtual + :getter "gtk_text_tag_get_priority" + :setter "gtk_text_tag_set_priority" + :accessor text-tag-priority + :type int) + (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 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 @@ -770,7 +954,7 @@ (default-widget ((group :allocation :virtual :getter "gtk_radio_button_get_group" - :reader radio-button-group + :reader radio-action-group :type (copy-of (gslist widget))) (%value :allocation :property :pname "value" @@ -779,7 +963,37 @@ (default-widget :allocation :virtual :getter radio-action-value))) - + ("GtkColorSelection" + :slots + ((previous-alpha + :allocation :virtual + :getter "gtk_color_selection_get_previous_alpha" + :setter "gtk_color_selection_get_previous_alpha" + :initarg :previous-alpha + :accessor color-selection-previous-alpha + :type (unsigned 16)) + (previous-color + :allocation :virtual + :getter "gtk_color_selection_get_previous_color" + :setter "gtk_color_selection_get_previous_color" + :initarg :previous-color + :accessor 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))) + + ;; Not needed ("GtkFundamentalType" :ignore t) ("GtkArgFlags" :ignore t) @@ -802,10 +1016,105 @@ (default-widget ("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) + ((buffer + :allocation :virtual + :getter "gtk_text_iter_get_buffer" + :reader text-iter-buffer + :type pointer) ;text-buffer) + (offset + :allocation :virtual + :getter "gtk_text_iter_get_offset" + :setter "gtk_text_iter_set_offset" + :accessor text-iter-offset + :type int) + (line + :allocation :virtual + :getter "gtk_text_iter_get_line" + :setter "gtk_text_iter_set_line" + :accessor text-iter-line + :type int) + (line-offset + :allocation :virtual + :getter "gtk_text_iter_get_line_offset" + :setter "gtk_text_iter_set_line_offset" + :accessor text-iter-line-offset + :type int) + (line-index + :allocation :virtual + :getter "gtk_text_iter_get_line_index" + :setter "gtk_text_iter_set_line_index" + :accessor text-iter-line-index + :type int) + (visible-line-index + :allocation :virtual + :getter "gtk_text_iter_get_visible_line_index" + :setter "gtk_text_iter_set_visible_line_index" + :accessor text-iter-visible-line-index + :type int) + (visible-line-offset + :allocation :virtual + :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)) + )) - ) + +(defclass tooltips-data (struct) + ((tooltips + :allocation :alien + :reader tooltips-data-tooltips + :type tooltips) + (widget + :allocation :alien + :reader tooltips-data-widget + :type widget) + (tip-text + :allocation :alien + :reader tooltips-data-tip-text + :type string) + (tip-private + :allocation :alien + :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))