+
+ ("GtkFixed"
+ :slots
+ ((has-window
+ :allocation :virtual
+ :getter "gtk_fixed_get_has_window"
+ :setter "gtk_fixed_set_has_window"
+ :reader fixed-has-window-p
+ :initarg :has-window
+ :type boolean)))
+
+ ("GtkRange"
+ :slots
+ ((value
+ :allocation :virtual
+ :getter "gtk_range_get_value"
+ :setter "gtk_range_set_value"
+ :initarg :value
+ :accessor range-value
+ :type double-float)
+ (upper
+ :allocation :virtual
+ :getter range-upper
+ :setter (setf range-upper)
+ :initarg :upper)
+ (lower
+ :allocation :virtual
+ :getter range-lower
+ :setter (setf range-lower)
+ :initarg :lower)
+ (step-increment
+ :allocation :virtual
+ :getter range-step-increment
+ :setter (setf range-step-increment)
+ :initarg :step-increment)
+ (page-increment
+ :allocation :virtual
+ :getter range-page-increment
+ :setter (setf range-page-increment)
+ :initarg :page-increment)))
+
+ ("GtkImage"
+ :slots
+ ((file :ignore t)
+ #?(pkg-exists-p "gtk+-2.0" :atleast-version "2.6.0")
+ (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
+ :allocation :virtual
+ :getter "gtk_editable_get_editable"
+ :setter "gtk_editable_set_editable"
+ :reader editable-editable-p
+ :initarg :editable
+ :type boolean)
+ (position
+ :allocation :virtual
+ :getter "gtk_editable_get_position"
+ :setter "gtk_editable_set_position"
+ :reader editable-position
+ :initarg :position
+ :type position)
+ (text
+ :allocation :virtual
+ :getter editable-text
+ :setter (setf editable-text)
+ :initarg text)))
+
+ ("GtkFileChooser"
+ :slots
+ ((filename
+ :allocation :virtual
+ :getter "gtk_file_chooser_get_filename"
+ :setter "gtk_file_chooser_set_filename"
+ :accessor file-chooser-filename
+ :initarg :filename
+ :type string)
+ (current-name
+ :allocation :virtual
+ :setter "gtk_file_chooser_set_current_name"
+ :accessor file-chooser-current-name
+ :initarg :current-name
+ :type string)
+ (current-folder
+ :allocation :virtual
+ :setter "gtk_file_chooser_set_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-chooser-uri
+ :initarg :uri
+ :type string)
+ (current-folder-uri
+ :allocation :virtual
+ :setter "gtk_file_chooser_set_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 (copy-of tree-view-column)))
+ (selection
+ :allocation :virtual
+ :getter "gtk_tree_view_get_selection"
+ :reader tree-view-selection
+ :type tree-selection)))
+
+ ("GtkTreeModel"
+ :slots
+ ((n-columns
+ :allocation :virtual
+ :getter "gtk_tree_model_get_n_columns"
+ :reader tree-model-n-columns
+ :type int)))
+
+ ("GtkTreeModelFilter"
+ :slots
+ ((virtual-root :merge t :type tree-path)))
+
+ ("GtkTreeSelection"
+ :slots
+ ((mode
+ :allocation :virtual
+ :getter "gtk_tree_selection_get_mode"
+ :setter "gtk_tree_selection_set_mode"
+ :accessor tree-selection-mode
+ :initarg :mode
+ :type selection-mode)
+ (tree-view
+ :allocation :virtual
+ :getter "gtk_tree_selection_get_tree_view"
+ :reader tree-selection-tree-view
+ :type tree-view)))
+
+ ("GtkComboBox"
+ :slots
+ ((active-iter
+ :allocation :virtual
+ :getter "gtk_combo_box_get_active_iter"
+ :setter "gtk_combo_box_set_active_iter"
+ :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
+ :allocation :virtual
+ :getter "gtk_text_view_get_default_attributes"
+ :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 (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
+ ((action-groups
+ :allocation :virtual
+ :getter "gtk_ui_manager_get_action_groups"
+ :reader ui-manager-action-groups
+ :type (copy-of (glist action-group)))
+ (accel-group
+ :allocation :virtual
+ :getter "gtk_ui_manager_get_accel_group"
+ :reader ui-manager-accel-group
+ :type accel-group)))
+
+ ("GtkUIManagerItemType"
+ :type ui-manager-item-type)
+
+ ("GtkAction"
+ :slots
+ ((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 ;; Handled by initialize-instance
+ :accessor toggle-action-active-p
+ :type boolean)))
+
+ ("GtkRadioAction"
+ :slots
+ ((group
+ :allocation :virtual
+ :getter "gtk_radio_button_get_group"
+ :reader radio-action-group
+ :type (copy-of (gslist widget)))
+ (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 "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)))
+