;; 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.51 2006-09-27 08:45:29 espen Exp $
+;; $Id: gtktypes.lisp,v 1.65 2008-10-27 18:42:01 espen Exp $
(in-package "GTK")
(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
:type int))
(:metaclass boxed-class))
+(eval-when (:compile-toplevel :load-toplevel :execute)
+ (register-type 'border '|gtk_border_get_type|))
+
(defclass stock-item (struct)
((id
:allocation :alien
(declare (ignore type ref))
(reader-function 'int))
+;; Register GtkObject in advance so that eg GtkTooltips, which inherits from it,
+;; gets a proper supertype. TODO: This is a hack. Where is it supposed to
+;; happen?
+(register-type '%object "GtkObject")
+
(define-types-by-introspection "Gtk"
;; Manually defined
("GtkObject" :ignore t)
("GtkTreePath" :ignore t)
; ("GtkStyle" :ignore t)
+ ("GtkMountOperation" :ignore t) ; Needs GIO
+
;; Manual override
("GtkWidget"
:slots
(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
: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"
: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"
("GtkToolbar"
:slots
- ((show-tooltips
- :allocation :virtual
+ ((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-show-tooltips-p
:getter "gtk_toolbar_get_tooltips_object"
:reader toolbar-tooltips
:type tooltips)
- (toolbar-style
+ (toolbar-style ; defined manually to get the accesssor name correct
:allocation :property
:pname "toolbar-style"
:initarg :toolbar-style
((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)))
; deprecated property
((shadow :ignore t)))
-;; ("GtkTable"
-;; :slots
-;; ((column-spacing
-;; :allocation :virtual
-;; :getter "gtk_table_get_default_col_spacing"
-;; :setter "gtk_table_set_col_spacings"
-;; :initarg :column-spacing
-;; :type unsigned-int)
-;; (row-spacing
-;; :allocation :virtual
-;; :getter "gtk_table_get_default_row_spacing"
-;; :setter "gtk_table_set_row_spacings"
-;; :initarg :row-spacing
-;; :type unsigned-int)))
+ ("GtkTable"
+ :slots
+ ((column-spacing
+ :allocation :property :pname "column-spacing"
+ :initarg :column-spacing
+ :type unsigned-int)
+ (row-spacing
+ :allocation :property :pname "row-spacing"
+ :initarg :row-spacing
+ :type unsigned-int)))
("GtkDialog"
:slots
:accessor entry-completion
:type entry-completion)
(max-length :merge t :unbound 0)
+ (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)))
+ (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
:reader entry-completion-entry
:type entry)
(minimum-key-length :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 :merge t :unbound -1)))
+ (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
(current-folder
:allocation :virtual
:setter "gtk_file_chooser_set_current_folder"
- :setter "gtk_file_chooser_get_current_folder"
+ :getter "gtk_file_chooser_get_current_folder"
:accessor file-chooser-current-folder
:initarg :current-folder
:type string)
(current-folder-uri
:allocation :virtual
:setter "gtk_file_chooser_set_current_folder_uri"
- :setter "gtk_file_chooser_get_current_folder_uri"
+ :getter "gtk_file_chooser_get_current_folder_uri"
:accessor file-chooser-current-folder-uri
:initarg :current-folder-uri
:type string)))
: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"
:reader tree-model-n-columns
:type int)))
+ ("GtkTreeModelFilter"
+ :slots
+ ((virtual-root :merge t :type tree-path)))
+
("GtkTreeSelection"
:slots
((mode
: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"
: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)))
: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)))
+ :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_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 "gtk_color_selection_get_previous_color"
- :setter "gtk_color_selection_get_previous_color"
+ :getter color-selection-previous-color
+ :setter "gtk_color_selection_set_previous_color"
:initarg :previous-color
- :accessor color-selection-previous-color
+ :writer (setf color-selection-previous-color)
:type gdk:color)))
("GtkFontSelection"
(markup-column
:allocation :virtual
:getter %icon-view-get-markup-column
- :setter %icon-view-set-tmarkup-column
+ :setter %icon-view-set-markup-column
:boundp %icon-view-markup-column-boundp
:initarg :markup-column
:accessor icon-view-markup-column)
: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 "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)
("GtkArgFlags" :ignore t)
(: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))