(defpackage :gtk-generation
(:use :cl :gobject :cffi :glib)
- (:export #:gtk-generate))
+ (:export #:gtk-generate
+ #:gtk-generate-child-properties))
(in-package :gtk-generation)
(defun gtk-generate (filename)
(with-open-file (stream filename :direction :output :if-exists :supersede)
- (gobject::generate-types-hierarchy-to-file
+ (generate-types-hierarchy-to-file
stream
"GtkObject"
:include-referenced t
"GtkPrintOperationPreview"
"GtkRecentChooser"
"GtkToolShell"
+ "GtkOrientable"
+ "GtkActivatable"
"AtkImplementorIface")
:objects '("GtkSettings" "GtkRcStyle" "GtkStyle" "GtkTooltip" "GtkAccelGroup"
"GtkAccelMap" "GtkAction" "GtkActionGroup" "GtkBuilder" "GtkClipboard"
"GtkTextBuffer" "GtkTextChildAnchor" "GtkTextMark" "GtkTextTag"
"GtkTextTagTable" "GtkTreeModelFilter" "GtkTreeModelSort"
"GtkTreeSelection" "GtkTreeStore" "GtkUIManager" "GtkWindowGroup"
- "GtkToggleAction" "GtkRecentAction" "GtkRadioAction")
+ "GtkToggleAction" "GtkRecentAction" "GtkRadioAction" "GtkItemFactory")
:flags '("GtkTextSearchFlags" "GtkAccelFlags" "GtkArgFlags" "GtkAttachOptions"
"GtkButtonAction" "GtkCalendarDisplayOptions" "GtkCellRendererState"
"GtkDebugFlag" "GtkDestDefaults" "GtkDialogFlags" "GtkFileFilterFlags"
"GtkTreeViewMode" "GtkVisibility")
:exclusions '("PangoStretch" "PangoVariant" "PangoStyle" "PangoUnderline")
:additional-properties
- '(("GtkTreeViewColumn"
+ '(("GtkWindow"
+ (:cffi gtk::focus gtk::gtk-window-focus (g-object gtk::widget) "gtk_window_get_focus" "gtk_window_set_focus")
+ (:cffi gtk::default-widget gtk::gtk-window-default-widget (g-object gtk::widget) "gtk_window_get_default_widget" "gtk_window_set_default")
+ (:cffi gtk::has-frame gtk::gtk-window-has-frame :boolean "gtk_window_get_has_frame" "gtk_window_set_has_frame")
+ (:cffi gtk::mnemonic-modifier gtk::gtk-window-mnemonic-modifier (g-object gdk::modifier-type) "gtk_window_get_mnemonic_modifier" "gtk_window_set_mnemonic_modifier")
+ (:cffi gtk::icon-list gtk::gtk-window-icon-list (glist gtk::pixbuf :free-from-foreign t :free-to-foreign t) "gtk_window_get_icon_list" "gtk_window_set_icon_list")
+ (:cffi gtk::group gtk::gtk-window-group (g-object gtk::window-group) "gtk_window_get_group" nil))
+ ("GtkDialog"
+ (:cffi gtk::action-area gtk::dialog-action-area (g-object gtk::widget) "gtk_dialog_get_action_area" nil)
+ (:cffi gtk::content-area gtk::dialog-content-area (g-object gtk::widget) "gtk_dialog_get_content_area" nil))
+ ("GtkTreeViewColumn"
(:cffi gtk::tree-view gtk::tree-view-column-tree-view g-object "gtk_tree_view_column_get_tree_view" nil)
(:cffi gtk::sort-column-id gtk::tree-view-column-sort-column-id :int "gtk_tree_view_column_get_sort_column_id" "gtk_tree_view_column_set_sort_column_id")
- (:cffi gtk::cell-renderers gtk::tree-view-column-cell-renderers (glist g-object :free-from-foreign t) "gtk_tree_view_column_get_cell_renderers" nil))
+ (:cffi gtk::cell-renderers gtk::tree-view-column-cell-renderers (glist g-object :free-from-foreign t) "gtk_tree_view_column_get_cell_renderers" nil))
("GtkTreeSelection"
(:cffi gtk::mode gtk::tree-selection-mode gtk::selection-mode "gtk_tree_selection_get_mode" "gtk_tree_selection_set_mode")
(:cffi gtk::select-function gtk::tree-selection-select-function nil gtk::tree-selection-get-selection-function gtk::tree-selection-set-select-function))
(:cffi gtk::search-position-func gtk::tree-view-search-position-func nil nil gtk::tree-view-set-search-position-func)
(:cffi gtk::row-separator-func gtk::tree-view-row-separator-func nil nil gtk::tree-view-set-row-separartor-func))
("GtkCellView"
- (:cffi gtk::displayed-row gtk::cell-view-displayed-row (g-boxed-ref gtk::tree-path) "gtk_cell_view_get_displayed_row" "gtk_cell_view_set_displayed_row"))
+ (:cffi gtk::displayed-row gtk::cell-view-displayed-row (g-boxed-foreign gtk::tree-path) "gtk_cell_view_get_displayed_row" "gtk_cell_view_set_displayed_row"))
("GtkComboBox"
- (:cffi gtk::active-iter gtk::combo-box-active-iter (g-boxed-ref gtk::tree-iter) gtk::combo-box-get-active-iter "gtk_combo_box_set_active_iter")
+ (:cffi gtk::active-iter gtk::combo-box-active-iter (g-boxed-foreign gtk::tree-iter) gtk::combo-box-get-active-iter "gtk_combo_box_set_active_iter")
(:cffi gtk::row-separator-func gtk::combo-box-separator-func nil nil gtk::combo-box-set-separator-func))
("GtkMenu"
(:cffi gtk::screen gtk::menu-screen g-object nil "gtk_menu_set_screen"))
(:cffi gtk::translation-domain gtk::action-group-translation-domain nil nil gtk::gtk-action-group-set-translation-domain))
("GtkAction"
(:cffi gtk::accel-path gtk::action-accel-path (:string :free-from-foreign nil :free-to-foreign t) "gtk_action_get_accel_path" "gtk_action_set_accel_path")
- (:cffi gtk::accel-group gtk::action-accel-group g-object nil "gtk_action_set_accel_group"))))))
\ No newline at end of file
+ (:cffi gtk::accel-group gtk::action-accel-group g-object nil "gtk_action_set_accel_group"))
+ ("GtkFileChooser"
+ (:cffi gtk::current-name gtk::file-chooser-current-name (:string :free-to-foreign t :encoding :utf-8) nil "gtk_file_chooser_set_current_name")
+ (:cffi gtk::filename gtk::file-chooser-filename (glib:g-string :free-from-foreign t :free-to-foreign t) "gtk_file_chooser_get_filename" "gtk_file_chooser_set_filename")
+ (:cffi gtk::current-folder gtk::file-chooser-current-folder (glib:g-string :free-from-foreign t :free-to-foreign t) "gtk_file_chooser_get_current_folder" "gtk_file_chooser_set_current_folder")
+ (:cffi gtk::uri gtk::file-chooser-uri (glib:g-string :free-from-foreign t :free-to-foreign t) "gtk_file_chooser_get_uri" "gtk_file_chooser_set_uri")
+ (:cffi gtk::current-folder-uri gtk::file-chooser-current-folder-uri (glib:g-string :free-from-foreign t :free-to-foreign t) "gtk_file_chooser_get_current_folder_uri" "gtk_file_chooser_set_current_folder_uri")
+ (:cffi gtk::preview-filename gtk::file-chooser-preview-filename (glib:g-string :free-from-foreign t :free-to-foreign t) "gtk_file_chooser_get_preview_filename" nil)
+ (:cffi gtk::preview-uri gtk::file-chooser-preview-uri (glib:g-string :free-from-foreign t :free-to-foreign t) "gtk_file_chooser_get_preview_uri" nil))
+ ("GtkFileFilter"
+ (:cffi gtk::name gtk::file-filter-name :string "gtk_file_filter_get_name" "gtk_file_filter_set_name"))
+ ("GtkFontSelectionDialog"
+ (:cffi gtk::font-name gtk::font-selection-dialog-font-name (glib:g-string :free-from-foreign t :free-to-foreign t) "gtk_font_selection_dialog_get_font_name" "gtk_font_selection_dialog_set_font_name")
+ (:cffi gtk::preview-text gtk::font-selection-dialog-preview-text :string "gtk_font_selection_dialog_get_preview_text" "gtk_font_selection_dialog_set_preview_text")
+ (:cffi gtk::apply-button gtk::font-selection-dialog-apply-button g-object "gtk_font_selection_dialog_get_apply_button" nil)
+ (:cffi gtk::cancel-button gtk::font-selection-dialog-cancel-button g-object "gtk_font_selection_dialog_get_cancel_button" nil)
+ (:cffi gtk::ok-button gtk::font-selection-dialog-ok-button g-object "gtk_font_selection_dialog_get_ok_button" nil))
+ ("GtkFixed"
+ (:cffi gtk::has-window gtk::fixed-has-window :boolean "gtk_fixed_get_has_window" "gtk_fixed_set_has_window"))
+ ("GtkLayout"
+ (:cffi gtk::bin-window gtk::layout-bin-window g-object "gtk_layout_get_bin_window" nil))
+ ("GtkCalendar"
+ (:cffi gtk::detail-function gtk::calendar-detail-function nil nil gtk::calendar-set-detail-function))
+ ("GtkContainer"
+ (:cffi gtk::focus-child gtk::container-focus-child g-object "gtk_container_get_focus_child" "gtk_container_set_focus_child")
+ (:cffi gtk::focus-vadjustment gtk::container-focus-vadjustment g-object "gtk_container_get_focus_vadjustment" "gtk_container_set_focus_vadjustment")
+ (:cffi gtk::focus-hadjustment gtk::container-focus-hadjustment g-object "gtk_container_get_focus_hadjustment" "gtk_container_set_focus_hadjustment"))
+ ("GtkWidget"
+ (:cffi gtk::direction gtk::widget-direction gtk::text-direction "gtk_widget_get_direction" "gtk_widget_set_direction")
+ (:cffi gtk::composite-name gtk::widget-composite-name (glib:g-string :free-from-foreign t :free-to-foreign t) "gtk_widget_get_composite_name" "gtk_widget_set_composite_name")
+ (:cffi gtk::redraw-on-allocate gtk::widget-redraw-on-allocate :boolean nil "gtk_widget_set_redraw_on_allocate")
+ (:cffi gtk::accessible gtk::widget-accessible g-object "gtk_widget_get_accessible" nil)
+ (:cffi gtk::tooltip-window gtk::widget-tooltip-window g-object "gtk_widget_get_tooltip_window" "gtk_widget_set_tooltip_window")
+
+ (:cffi gtk::parent-window gtk::widget-parent-window (g-object gdk::window) "gtk_widget_get_parent_window" "gtk_widget_set_parent_window")
+ (:cffi gtk::toplevel gtk::widget-toplevel (g-object gtk::widget) "gtk_widget_get_toplevel" nil)
+ (:cffi gtk::colormap gtk::widget-colormap (g-object gdk::gdk-colormap) "gtk_widget_get_colormap" "gtk_widget_set_colormap")
+ (:cffi gtk::visual gtk::widget-visual (g-object gdk::visual) "gtk_widget_get_visual" nil)
+ (:cffi gtk::modifier-style gtk::widget-modifier-style (g-object gtk::rc-style) "gtk_widget_get_modifier_style" "gtk_widget_modify_style")
+ (:cffi gtk::pango-context gtk::widget-pango-context g-object "gtk_widget_get_pango_context" nil)
+ (:cffi gtk::child-visible gtk::widget-child-visible :boolean "gtk_widget_get_child_visible" "gtk_widget_set_child_visible"))
+ ("GtkTextTag"
+ (:cffi gtk::priority gtk::text-tag-priority :int "gtk_text_tag_get_priority" "gtk_text_tag_set_priority"))))))
+
+(defun gtk-generate-child-properties (filename)
+ (with-open-file (stream filename :direction :output :if-exists :supersede)
+ (let ((*package* (find-package :gtk))
+ (*print-case* :downcase))
+ (write-string "(in-package :gtk)" stream)
+ (terpri stream)
+ (format stream "~{~S~%~%~}" (gtk:generate-child-properties)))))
\ No newline at end of file