gtk3 2.2.5-x64-mingw32 → 3.0.0-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +1 -0
- data/ext/gtk3/depend +0 -5
- data/ext/gtk3/extconf.rb +43 -53
- data/ext/gtk3/rb-gtk3-container.c +159 -0
- data/ext/gtk3/{rbgtk3util.h → rb-gtk3-private.h} +9 -9
- data/ext/gtk3/rb-gtk3-widget.c +71 -0
- data/ext/gtk3/rb-gtk3.c +407 -0
- data/ext/gtk3/{rbgtk-orientable.c → rb-gtk3.h} +10 -7
- data/extconf.rb +25 -9
- data/lib/2.0/gtk3.so +0 -0
- data/lib/2.1/gtk3.so +0 -0
- data/lib/2.2/gtk3.so +0 -0
- data/lib/gtk3.rb +70 -9
- data/lib/gtk3/about-dialog.rb +34 -0
- data/lib/gtk3/action-group.rb +131 -0
- data/lib/gtk3/action.rb +27 -0
- data/lib/gtk3/binding-set.rb +31 -0
- data/lib/gtk3/border.rb +28 -0
- data/lib/gtk3/box.rb +40 -0
- data/lib/gtk3/builder.rb +91 -0
- data/lib/gtk3/button.rb +53 -0
- data/lib/gtk3/calendar.rb +24 -0
- data/lib/gtk3/cell-layout.rb +31 -0
- data/{test/test_gtk_accel_group_entry.rb → lib/gtk3/clipboard.rb} +8 -7
- data/lib/gtk3/color-chooser-dialog.rb +27 -0
- data/lib/gtk3/combo-box-text.rb +30 -0
- data/lib/gtk3/combo-box.rb +55 -0
- data/lib/gtk3/container.rb +51 -0
- data/lib/gtk3/css-provider.rb +38 -0
- data/lib/gtk3/deprecated.rb +193 -99
- data/lib/gtk3/dialog.rb +65 -0
- data/lib/gtk3/file-chooser-dialog.rb +36 -0
- data/lib/gtk3/font-chooser-dialog.rb +27 -0
- data/lib/gtk3/gdk-drag-context.rb +29 -0
- data/lib/gtk3/gesture-multi-press.rb +31 -0
- data/lib/gtk3/icon-theme.rb +28 -0
- data/lib/gtk3/icon-view.rb +45 -0
- data/lib/gtk3/image.rb +113 -0
- data/lib/gtk3/label.rb +54 -0
- data/{test/test_gtk_tree_selection.rb → lib/gtk3/level-bar.rb} +13 -12
- data/lib/gtk3/list-store.rb +81 -0
- data/lib/gtk3/loader.rb +403 -0
- data/lib/gtk3/menu-item.rb +33 -0
- data/lib/gtk3/message-dialog.rb +49 -0
- data/lib/gtk3/paned.rb +37 -0
- data/lib/gtk3/radio-action.rb +28 -0
- data/lib/gtk3/radio-button.rb +49 -0
- data/lib/gtk3/recent-chooser-dialog.rb +38 -0
- data/lib/gtk3/scale-button.rb +35 -0
- data/{test/test_gtk_allocation.rb → lib/gtk3/scrolled-window.rb} +7 -7
- data/lib/gtk3/search-bar.rb +27 -0
- data/lib/gtk3/selection-data.rb +42 -0
- data/lib/gtk3/spin-button.rb +34 -0
- data/lib/gtk3/stack.rb +54 -0
- data/lib/gtk3/stock.rb +70 -0
- data/lib/gtk3/style-context.rb +26 -0
- data/lib/gtk3/style-properties.rb +29 -0
- data/lib/gtk3/target-entry.rb +27 -0
- data/lib/gtk3/target-list.rb +31 -0
- data/lib/gtk3/text-buffer.rb +165 -0
- data/lib/gtk3/text-iter.rb +39 -0
- data/lib/gtk3/text-tag-table.rb +31 -0
- data/lib/gtk3/toggle-action.rb +27 -0
- data/lib/gtk3/toggle-button.rb +35 -0
- data/lib/gtk3/tool-button.rb +36 -0
- data/lib/gtk3/tree-iter.rb +52 -0
- data/lib/gtk3/tree-model-filter.rb +45 -0
- data/lib/gtk3/tree-model.rb +51 -0
- data/lib/gtk3/tree-path.rb +29 -0
- data/lib/gtk3/tree-selection.rb +30 -0
- data/lib/gtk3/tree-store.rb +59 -0
- data/lib/gtk3/tree-view-column.rb +35 -0
- data/lib/gtk3/tree-view.rb +41 -0
- data/lib/gtk3/ui-manager.rb +35 -0
- data/lib/gtk3/version.rb +28 -0
- data/lib/gtk3/widget.rb +127 -0
- data/lib/gtk3/window.rb +29 -0
- data/sample/gtk-demo/TODO +69 -0
- data/sample/gtk-demo/application.ui +107 -0
- data/sample/gtk-demo/builder.rb +2 -2
- data/sample/gtk-demo/{button_box.rb → button-box.rb} +16 -17
- data/sample/gtk-demo/common.rb +1 -1
- data/sample/gtk-demo/css_accordion.rb +5 -5
- data/sample/gtk-demo/css_basics.css +22 -0
- data/sample/gtk-demo/css_basics.rb +103 -0
- data/sample/gtk-demo/dialog.rb +3 -3
- data/sample/gtk-demo/entry_completion.rb +1 -1
- data/sample/gtk-demo/hypertext.rb +1 -1
- data/sample/gtk-demo/main.rb +65 -91
- data/sample/gtk-demo/menus.rb +4 -4
- data/sample/gtk-demo/menus.ui +107 -0
- data/sample/gtk-demo/sizegroup.rb +1 -1
- data/sample/misc/aboutdialog.rb +10 -18
- data/sample/misc/aboutdialog2.rb +4 -16
- data/sample/misc/alpha-demo.rb +17 -16
- data/sample/misc/application.rb +31 -0
- data/sample/misc/assistant.rb +3 -5
- data/sample/misc/bindings.rb +64 -50
- data/sample/misc/builder-from-resource.rb +53 -0
- data/sample/misc/builder.rb +29 -0
- data/sample/misc/builder.ui +46 -0
- data/sample/misc/button.rb +18 -19
- data/sample/misc/button2.rb +5 -5
- data/sample/misc/buttonbox.rb +2 -4
- data/sample/misc/cairo-cursor.rb +37 -0
- data/sample/misc/cairo-pong.rb +17 -17
- data/sample/misc/calendar.rb +18 -18
- data/sample/misc/checkbutton.rb +3 -4
- data/sample/misc/colorselection.rb +10 -9
- data/sample/misc/{combo_check.rb → combo-check.rb} +1 -3
- data/sample/misc/combobox-from-cellrender.rb +48 -0
- data/sample/misc/combobox.rb +10 -10
- data/sample/misc/cursor.rb +5 -5
- data/sample/misc/dialog.rb +3 -4
- data/sample/misc/dialog2.rb +5 -6
- data/sample/misc/dnd.rb +27 -23
- data/sample/misc/dndtreeview.rb +16 -18
- data/sample/misc/drag-move.rb +3 -6
- data/sample/misc/drawing.rb +74 -86
- data/sample/misc/entry.rb +2 -4
- data/sample/misc/entrycompletion.rb +5 -5
- data/sample/misc/eventbox.rb +58 -0
- data/sample/misc/expander.rb +6 -5
- data/sample/misc/filechooser.rb +5 -7
- data/sample/misc/flowbox.rb +86 -0
- data/sample/misc/frame.rb +10 -12
- data/sample/misc/gdkscreen.rb +3 -3
- data/sample/misc/gtkglarea1.rb +114 -0
- data/sample/misc/gtkglarea2.rb +194 -0
- data/sample/misc/helloworld.rb +2 -5
- data/sample/misc/iconview.rb +9 -9
- data/sample/misc/image.rb +7 -6
- data/sample/misc/keyboard-grab.rb +34 -0
- data/sample/misc/label.rb +10 -11
- data/sample/misc/linkbutton.rb +3 -10
- data/sample/misc/list-store-usage.rb +96 -0
- data/sample/misc/listview.rb +9 -11
- data/sample/misc/menu.rb +45 -25
- data/sample/misc/{misc_button.rb → misc-button.rb} +15 -14
- data/sample/misc/mouse-gesture.rb +35 -42
- data/sample/misc/pango-layout.rb +100 -0
- data/sample/misc/pointer-grab.rb +36 -0
- data/sample/misc/print.rb +202 -201
- data/sample/misc/properties.rb +16 -14
- data/sample/misc/radiobutton.rb +18 -20
- data/sample/misc/recentchooserdialog.rb +8 -10
- data/sample/misc/rgtk+cairo.rb +26 -27
- data/sample/misc/scalebutton.rb +19 -7
- data/sample/misc/simple_window.gresource.xml +6 -0
- data/sample/misc/simple_window.ui +16 -0
- data/sample/misc/statusicon.rb +11 -14
- data/sample/misc/stock.rb +14 -11
- data/sample/misc/style-property.rb +76 -0
- data/sample/misc/t-gtkplug.rb +11 -14
- data/sample/misc/t-gtksocket.rb +19 -18
- data/sample/misc/template-from-resource.rb +59 -0
- data/sample/misc/template.gresource.xml +6 -0
- data/sample/misc/template.ui +16 -0
- data/sample/misc/textbuffer-serialize.rb +133 -0
- data/sample/misc/threads.rb +54 -13
- data/sample/misc/to-drawable.rb +34 -0
- data/sample/misc/togglebutton.rb +6 -8
- data/sample/misc/toolbar.rb +39 -30
- data/sample/misc/tooltips.rb +95 -104
- data/sample/misc/{tree_combo.rb → tree-combo.rb} +21 -27
- data/sample/misc/{tree_progress.rb → tree-progress.rb} +12 -17
- data/sample/misc/treemodelfilter.rb +13 -10
- data/sample/misc/treeview.rb +18 -20
- data/sample/misc/window.rb +2 -4
- data/sample/misc/xbm-cursor.rb +86 -0
- data/sample/tutorial/README.md +338 -0
- data/sample/tutorial/builder.ui +66 -0
- data/sample/tutorial/example-0.rb +32 -0
- data/sample/tutorial/example-1.rb +47 -0
- data/sample/tutorial/example-2.rb +68 -0
- data/sample/tutorial/example-4.rb +41 -0
- data/sample/tutorial/exampleapp.desktop +6 -0
- data/sample/tutorial/exampleapp.png +0 -0
- data/sample/tutorial/exampleapp1/exampleapp.rb +57 -0
- data/sample/tutorial/exampleapp2/exampleapp.gresource.xml +6 -0
- data/sample/tutorial/exampleapp2/exampleapp.rb +87 -0
- data/sample/tutorial/exampleapp2/window.ui +32 -0
- data/sample/tutorial/exampleapp3/exampleapp.gresource.xml +6 -0
- data/sample/tutorial/exampleapp3/exampleapp.rb +106 -0
- data/sample/tutorial/exampleapp3/window.ui +32 -0
- data/sample/tutorial/exampleapp4/app-menu.ui +18 -0
- data/sample/tutorial/exampleapp4/exampleapp.gresource.xml +7 -0
- data/sample/tutorial/exampleapp4/exampleapp.rb +124 -0
- data/sample/tutorial/exampleapp4/window.ui +32 -0
- data/sample/tutorial/exampleapp5/app-menu.ui +18 -0
- data/sample/tutorial/exampleapp5/exampleapp.gresource.xml +7 -0
- data/sample/tutorial/exampleapp5/exampleapp.rb +135 -0
- data/sample/tutorial/exampleapp5/org.gtk.exampleapp.gschema.xml +20 -0
- data/sample/tutorial/exampleapp5/window.ui +32 -0
- data/sample/tutorial/exampleapp6/app-menu.ui +18 -0
- data/sample/tutorial/exampleapp6/exampleapp.gresource.xml +8 -0
- data/sample/tutorial/exampleapp6/exampleapp.rb +168 -0
- data/sample/tutorial/exampleapp6/org.gtk.exampleapp.gschema.xml +20 -0
- data/sample/tutorial/exampleapp6/prefs.ui +70 -0
- data/sample/tutorial/exampleapp6/window.ui +32 -0
- data/sample/tutorial/exampleapp7/app-menu.ui +18 -0
- data/sample/tutorial/exampleapp7/exampleapp.gresource.xml +8 -0
- data/sample/tutorial/exampleapp7/exampleapp.rb +200 -0
- data/sample/tutorial/exampleapp7/org.gtk.exampleapp.gschema.xml +20 -0
- data/sample/tutorial/exampleapp7/prefs.ui +70 -0
- data/sample/tutorial/exampleapp7/window.ui +63 -0
- data/sample/tutorial/exampleapp8/app-menu.ui +18 -0
- data/sample/tutorial/exampleapp8/exampleapp.gresource.xml +9 -0
- data/sample/tutorial/exampleapp8/exampleapp.rb +247 -0
- data/sample/tutorial/exampleapp8/gears-menu.ui +12 -0
- data/sample/tutorial/exampleapp8/org.gtk.exampleapp.gschema.xml +25 -0
- data/sample/tutorial/exampleapp8/prefs.ui +70 -0
- data/sample/tutorial/exampleapp8/window.ui +100 -0
- data/test/fixture/Rakefile +32 -0
- data/test/fixture/gnome-logo-icon.png +0 -0
- data/test/fixture/image.gresource +0 -0
- data/test/fixture/image.gresource.xml +6 -0
- data/test/fixture/simple_window.gresource.xml +6 -0
- data/test/fixture/simple_window.ui +16 -0
- data/test/gtk-test-utils.rb +46 -4
- data/test/run-test.rb +9 -1
- data/test/{test_gc.rb → test-gc.rb} +0 -0
- data/test/{test_gtk_css_provider.rb → test-gdk-display.rb} +6 -8
- data/test/test-gdk-event.rb +24 -0
- data/test/test-gdk-screen.rb +42 -0
- data/test/{test_gtk_about_dialog.rb → test-gtk-about-dialog.rb} +0 -0
- data/test/test-gtk-accel-group.rb +23 -0
- data/test/{test_gtk_accel_key.rb → test-gtk-accel-key.rb} +0 -0
- data/test/{test_gtk_accessible.rb → test-gtk-accessible.rb} +0 -0
- data/test/{test_gtk_action_group.rb → test-gtk-action-bar.rb} +20 -23
- data/test/test-gtk-action-group.rb +48 -0
- data/test/test-gtk-action.rb +41 -0
- data/test/test-gtk-assistant.rb +44 -0
- data/test/{test_gtk_border.rb → test-gtk-border.rb} +0 -0
- data/test/test-gtk-box.rb +28 -0
- data/test/{test_gtk_buildable.rb → test-gtk-buildable.rb} +6 -6
- data/test/{test_gtk_builder.rb → test-gtk-builder.rb} +45 -11
- data/test/test-gtk-button.rb +54 -0
- data/test/test-gtk-cell-layout.rb +35 -0
- data/test/test-gtk-color-chooser-dialog.rb +41 -0
- data/test/test-gtk-combo-box-text.rb +34 -0
- data/test/test-gtk-combo-box.rb +97 -0
- data/test/test-gtk-container.rb +171 -0
- data/test/test-gtk-css-provider.rb +101 -0
- data/test/test-gtk-dialog.rb +74 -0
- data/test/{test_gtk_entry.rb → test-gtk-entry.rb} +0 -0
- data/test/test-gtk-event-controller.rb +35 -0
- data/test/test-gtk-file-chooser-dialog.rb +52 -0
- data/test/test-gtk-flow-box.rb +64 -0
- data/test/test-gtk-font-chooser-dialog.rb +41 -0
- data/test/test-gtk-gesture-multi-press.rb +31 -0
- data/test/test-gtk-gesture-pan.rb +32 -0
- data/test/test-gtk-gesture-single.rb +40 -0
- data/test/test-gtk-gesture.rb +29 -0
- data/test/{test_gtk_header_bar.rb → test-gtk-header-bar.rb} +15 -1
- data/test/{test_gtk_icon_theme.rb → test-gtk-icon-theme.rb} +0 -0
- data/test/{test_gtk_icon_view.rb → test-gtk-icon-view.rb} +24 -3
- data/test/test-gtk-image.rb +52 -0
- data/test/test-gtk-label.rb +39 -0
- data/test/{test_gtk_level_bar.rb → test-gtk-level-bar.rb} +12 -0
- data/test/test-gtk-list-store.rb +204 -0
- data/test/{test_gtk_menu_button.rb → test-gtk-menu-button.rb} +0 -0
- data/test/{test_gtk_menu_item.rb → test-gtk-menu-item.rb} +0 -0
- data/test/test-gtk-message-dialog.rb +62 -0
- data/test/test-gtk-paned.rb +109 -0
- data/test/test-gtk-places-sidebar.rb +68 -0
- data/test/test-gtk-radio-action.rb +45 -0
- data/test/test-gtk-radio-button.rb +82 -0
- data/test/test-gtk-recent-chooser-dialog.rb +53 -0
- data/test/{test_gtk_recent_data.rb → test-gtk-recent-data.rb} +0 -0
- data/test/{test_gtk_recent_filter_info.rb → test-gtk-recent-filter-info.rb} +1 -1
- data/test/test-gtk-recent-info.rb +37 -0
- data/test/{test_gtk_revealer.rb → test-gtk-revealer.rb} +0 -0
- data/test/test-gtk-scale-button.rb +56 -0
- data/test/{test_gtk_search_bar.rb → test-gtk-search-bar.rb} +1 -1
- data/test/{test_gtk_search_entry.rb → test-gtk-search-entry.rb} +0 -0
- data/test/test-gtk-spin-button.rb +45 -0
- data/test/{test_gtk_stack_switcher.rb → test-gtk-stack-switcher.rb} +0 -0
- data/test/{test_gtk_stack.rb → test-gtk-stack.rb} +8 -1
- data/test/test-gtk-stock.rb +26 -0
- data/test/{test_gtk_style_context.rb → test-gtk-style-context.rb} +0 -0
- data/test/{test_gtk_style_properties.rb → test-gtk-style-properties.rb} +0 -0
- data/test/test-gtk-style-provider.rb +25 -0
- data/test/test-gtk-switch.rb +34 -0
- data/test/test-gtk-target-entry.rb +37 -0
- data/test/test-gtk-text-buffer.rb +151 -0
- data/test/{test_gtk_container.rb → test-gtk-text-tag-table.rb} +13 -11
- data/test/test-gtk-toggle-action.rb +41 -0
- data/test/test-gtk-toggle-button.rb +39 -0
- data/test/test-gtk-tool-button.rb +53 -0
- data/test/test-gtk-tree-iter.rb +53 -0
- data/test/test-gtk-tree-model-filter.rb +55 -0
- data/test/test-gtk-tree-path.rb +42 -0
- data/test/test-gtk-tree-selection.rb +61 -0
- data/test/test-gtk-tree-view-column.rb +71 -0
- data/test/test-gtk-tree-view.rb +105 -0
- data/test/test-gtk-version.rb +47 -0
- data/test/test-gtk-widget.rb +148 -0
- data/test/{test_gtk.rb → test-gtk.rb} +0 -0
- metadata +256 -332
- data/ext/gtk3/conversions.c +0 -34
- data/ext/gtk3/gtk3.def +0 -10
- data/ext/gtk3/init.c +0 -34
- data/ext/gtk3/rbgtk-about-dialog.c +0 -113
- data/ext/gtk3/rbgtk-accel-group-entry.c +0 -94
- data/ext/gtk3/rbgtk-accel-group.c +0 -199
- data/ext/gtk3/rbgtk-accel-key.c +0 -120
- data/ext/gtk3/rbgtk-accel-label.c +0 -55
- data/ext/gtk3/rbgtk-accel-map.c +0 -135
- data/ext/gtk3/rbgtk-accelerator.c +0 -78
- data/ext/gtk3/rbgtk-accessible.c +0 -40
- data/ext/gtk3/rbgtk-action-bar.c +0 -73
- data/ext/gtk3/rbgtk-action-group.c +0 -467
- data/ext/gtk3/rbgtk-action.c +0 -205
- data/ext/gtk3/rbgtk-activatable.c +0 -30
- data/ext/gtk3/rbgtk-adjustment.c +0 -98
- data/ext/gtk3/rbgtk-alignment.c +0 -75
- data/ext/gtk3/rbgtk-allocation.c +0 -166
- data/ext/gtk3/rbgtk-app-chooser-button.c +0 -70
- data/ext/gtk3/rbgtk-app-chooser-dialog.c +0 -68
- data/ext/gtk3/rbgtk-app-chooser-widget.c +0 -40
- data/ext/gtk3/rbgtk-app-chooser.c +0 -47
- data/ext/gtk3/rbgtk-application.c +0 -69
- data/ext/gtk3/rbgtk-arrow.c +0 -56
- data/ext/gtk3/rbgtk-aspect-frame.c +0 -56
- data/ext/gtk3/rbgtk-assistant.c +0 -218
- data/ext/gtk3/rbgtk-bin.c +0 -42
- data/ext/gtk3/rbgtk-binding-set.c +0 -154
- data/ext/gtk3/rbgtk-border.c +0 -119
- data/ext/gtk3/rbgtk-box.c +0 -146
- data/ext/gtk3/rbgtk-buildable.c +0 -96
- data/ext/gtk3/rbgtk-builder.c +0 -166
- data/ext/gtk3/rbgtk-button-box.c +0 -87
- data/ext/gtk3/rbgtk-button.c +0 -93
- data/ext/gtk3/rbgtk-calendar.c +0 -118
- data/ext/gtk3/rbgtk-cell-editable.c +0 -57
- data/ext/gtk3/rbgtk-cell-layout.c +0 -144
- data/ext/gtk3/rbgtk-cell-renderer-accel.c +0 -41
- data/ext/gtk3/rbgtk-cell-renderer-combo.c +0 -38
- data/ext/gtk3/rbgtk-cell-renderer-pixbuf.c +0 -41
- data/ext/gtk3/rbgtk-cell-renderer-progress.c +0 -38
- data/ext/gtk3/rbgtk-cell-renderer-spin.c +0 -39
- data/ext/gtk3/rbgtk-cell-renderer-spinner.c +0 -38
- data/ext/gtk3/rbgtk-cell-renderer-text.c +0 -48
- data/ext/gtk3/rbgtk-cell-renderer-toggle.c +0 -39
- data/ext/gtk3/rbgtk-cell-renderer.c +0 -119
- data/ext/gtk3/rbgtk-cell-view.c +0 -95
- data/ext/gtk3/rbgtk-check-button.c +0 -64
- data/ext/gtk3/rbgtk-check-menu-item.c +0 -64
- data/ext/gtk3/rbgtk-clip-board.c +0 -389
- data/ext/gtk3/rbgtk-color-button.c +0 -55
- data/ext/gtk3/rbgtk-color-selection-dialog.c +0 -56
- data/ext/gtk3/rbgtk-color-selection.c +0 -219
- data/ext/gtk3/rbgtk-combo-box-text.c +0 -138
- data/ext/gtk3/rbgtk-combo-box.c +0 -147
- data/ext/gtk3/rbgtk-const.c +0 -79
- data/ext/gtk3/rbgtk-container.c +0 -788
- data/ext/gtk3/rbgtk-css-provider.c +0 -110
- data/ext/gtk3/rbgtk-dialog.c +0 -206
- data/ext/gtk3/rbgtk-drag-gdk-drag-context.c +0 -108
- data/ext/gtk3/rbgtk-drag.c +0 -93
- data/ext/gtk3/rbgtk-drawing-area.c +0 -42
- data/ext/gtk3/rbgtk-editable.c +0 -149
- data/ext/gtk3/rbgtk-entry-buffer.c +0 -87
- data/ext/gtk3/rbgtk-entry-completion.c +0 -122
- data/ext/gtk3/rbgtk-entry.c +0 -184
- data/ext/gtk3/rbgtk-event-box.c +0 -42
- data/ext/gtk3/rbgtk-expander.c +0 -49
- data/ext/gtk3/rbgtk-file-chooser-button.c +0 -50
- data/ext/gtk3/rbgtk-file-chooser-dialog.c +0 -62
- data/ext/gtk3/rbgtk-file-chooser-widget.c +0 -40
- data/ext/gtk3/rbgtk-file-chooser.c +0 -381
- data/ext/gtk3/rbgtk-file-filter.c +0 -128
- data/ext/gtk3/rbgtk-file-system-error.c +0 -48
- data/ext/gtk3/rbgtk-fixed.c +0 -61
- data/ext/gtk3/rbgtk-font-button.c +0 -49
- data/ext/gtk3/rbgtk-font-chooser-dialog.c +0 -56
- data/ext/gtk3/rbgtk-font-chooser-widget.c +0 -45
- data/ext/gtk3/rbgtk-font-chooser.c +0 -78
- data/ext/gtk3/rbgtk-frame.c +0 -69
- data/ext/gtk3/rbgtk-gdk-event.c +0 -38
- data/ext/gtk3/rbgtk-grid.c +0 -105
- data/ext/gtk3/rbgtk-handle-box.c +0 -45
- data/ext/gtk3/rbgtk-header-bar.c +0 -58
- data/ext/gtk3/rbgtk-hsv.c +0 -102
- data/ext/gtk3/rbgtk-icon-factory.c +0 -85
- data/ext/gtk3/rbgtk-icon-info.c +0 -115
- data/ext/gtk3/rbgtk-icon-set.c +0 -84
- data/ext/gtk3/rbgtk-icon-size.c +0 -91
- data/ext/gtk3/rbgtk-icon-source.c +0 -184
- data/ext/gtk3/rbgtk-icon-theme.c +0 -268
- data/ext/gtk3/rbgtk-icon-view.c +0 -295
- data/ext/gtk3/rbgtk-im-multicontext.c +0 -48
- data/ext/gtk3/rbgtk-image-menu-item.c +0 -67
- data/ext/gtk3/rbgtk-image.c +0 -162
- data/ext/gtk3/rbgtk-imcon-text-simple.c +0 -69
- data/ext/gtk3/rbgtk-imcon-text.c +0 -133
- data/ext/gtk3/rbgtk-infobar.c +0 -121
- data/ext/gtk3/rbgtk-invisible.c +0 -49
- data/ext/gtk3/rbgtk-label.c +0 -139
- data/ext/gtk3/rbgtk-layout.c +0 -93
- data/ext/gtk3/rbgtk-level-bar.c +0 -88
- data/ext/gtk3/rbgtk-link-button.c +0 -49
- data/ext/gtk3/rbgtk-list-store.c +0 -399
- data/ext/gtk3/rbgtk-lock-button.c +0 -50
- data/ext/gtk3/rbgtk-menu-button.c +0 -41
- data/ext/gtk3/rbgtk-menu-item.c +0 -95
- data/ext/gtk3/rbgtk-menu-shell.c +0 -106
- data/ext/gtk3/rbgtk-menu-tool-button.c +0 -81
- data/ext/gtk3/rbgtk-menu.c +0 -168
- data/ext/gtk3/rbgtk-menubar.c +0 -43
- data/ext/gtk3/rbgtk-message-dialog.c +0 -74
- data/ext/gtk3/rbgtk-misc.c +0 -70
- data/ext/gtk3/rbgtk-notebook.c +0 -383
- data/ext/gtk3/rbgtk-numerable-icon.c +0 -50
- data/ext/gtk3/rbgtk-overlay.c +0 -53
- data/ext/gtk3/rbgtk-page-setup-unix-dialog.c +0 -94
- data/ext/gtk3/rbgtk-page-setup.c +0 -195
- data/ext/gtk3/rbgtk-paned.c +0 -114
- data/ext/gtk3/rbgtk-paper-size.c +0 -179
- data/ext/gtk3/rbgtk-plug.c +0 -85
- data/ext/gtk3/rbgtk-print-context.c +0 -125
- data/ext/gtk3/rbgtk-print-job.c +0 -148
- data/ext/gtk3/rbgtk-print-operation-preview.c +0 -59
- data/ext/gtk3/rbgtk-print-operation.c +0 -149
- data/ext/gtk3/rbgtk-print-settings.c +0 -807
- data/ext/gtk3/rbgtk-print-unix-dialog.c +0 -90
- data/ext/gtk3/rbgtk-printer.c +0 -155
- data/ext/gtk3/rbgtk-progress-bar.c +0 -72
- data/ext/gtk3/rbgtk-radio-action.c +0 -122
- data/ext/gtk3/rbgtk-radio-button.c +0 -89
- data/ext/gtk3/rbgtk-radio-menu-item.c +0 -147
- data/ext/gtk3/rbgtk-radio-tool-button.c +0 -131
- data/ext/gtk3/rbgtk-range.c +0 -68
- data/ext/gtk3/rbgtk-recent-action.c +0 -64
- data/ext/gtk3/rbgtk-recent-chooser-dialog.c +0 -66
- data/ext/gtk3/rbgtk-recent-chooser-menu.c +0 -50
- data/ext/gtk3/rbgtk-recent-chooser-widget.c +0 -48
- data/ext/gtk3/rbgtk-recent-chooser.c +0 -198
- data/ext/gtk3/rbgtk-recent-data.c +0 -188
- data/ext/gtk3/rbgtk-recent-filter-info.c +0 -201
- data/ext/gtk3/rbgtk-recent-filter.c +0 -169
- data/ext/gtk3/rbgtk-recent-info.c +0 -213
- data/ext/gtk3/rbgtk-recent-manager.c +0 -134
- data/ext/gtk3/rbgtk-revealer.c +0 -42
- data/ext/gtk3/rbgtk-scale-button.c +0 -84
- data/ext/gtk3/rbgtk-scale.c +0 -97
- data/ext/gtk3/rbgtk-scrollable.c +0 -31
- data/ext/gtk3/rbgtk-scrollbar.c +0 -52
- data/ext/gtk3/rbgtk-scrolled-window.c +0 -122
- data/ext/gtk3/rbgtk-search-bar.c +0 -59
- data/ext/gtk3/rbgtk-search-entry.c +0 -42
- data/ext/gtk3/rbgtk-selection-data.c +0 -281
- data/ext/gtk3/rbgtk-selection.c +0 -168
- data/ext/gtk3/rbgtk-separator-menu-item.c +0 -39
- data/ext/gtk3/rbgtk-separator-tool-item.c +0 -38
- data/ext/gtk3/rbgtk-separator.c +0 -44
- data/ext/gtk3/rbgtk-settings.c +0 -229
- data/ext/gtk3/rbgtk-size-group.c +0 -66
- data/ext/gtk3/rbgtk-socket.c +0 -82
- data/ext/gtk3/rbgtk-spin-button.c +0 -132
- data/ext/gtk3/rbgtk-spinner.c +0 -55
- data/ext/gtk3/rbgtk-stack-switcher.c +0 -41
- data/ext/gtk3/rbgtk-stack.c +0 -106
- data/ext/gtk3/rbgtk-status-bar.c +0 -77
- data/ext/gtk3/rbgtk-status-icon.c +0 -122
- data/ext/gtk3/rbgtk-stock.c +0 -213
- data/ext/gtk3/rbgtk-style-context-gdk-screen.c +0 -61
- data/ext/gtk3/rbgtk-style-context.c +0 -411
- data/ext/gtk3/rbgtk-style-properties.c +0 -118
- data/ext/gtk3/rbgtk-style-provider.c +0 -67
- data/ext/gtk3/rbgtk-switch.c +0 -40
- data/ext/gtk3/rbgtk-table.c +0 -190
- data/ext/gtk3/rbgtk-target-list.c +0 -125
- data/ext/gtk3/rbgtk-tearoff-menu-item.c +0 -41
- data/ext/gtk3/rbgtk-text-appearance.c +0 -236
- data/ext/gtk3/rbgtk-text-attributes.c +0 -326
- data/ext/gtk3/rbgtk-text-buffer.c +0 -899
- data/ext/gtk3/rbgtk-text-child-anchor.c +0 -56
- data/ext/gtk3/rbgtk-text-iter.c +0 -732
- data/ext/gtk3/rbgtk-text-mark.c +0 -71
- data/ext/gtk3/rbgtk-text-tag-table.c +0 -96
- data/ext/gtk3/rbgtk-text-tag.c +0 -68
- data/ext/gtk3/rbgtk-text-view.c +0 -336
- data/ext/gtk3/rbgtk-theming-engine.c +0 -257
- data/ext/gtk3/rbgtk-toggle-action.c +0 -61
- data/ext/gtk3/rbgtk-toggle-button.c +0 -87
- data/ext/gtk3/rbgtk-toggle-tool-button.c +0 -61
- data/ext/gtk3/rbgtk-tool-button.c +0 -66
- data/ext/gtk3/rbgtk-tool-item.c +0 -200
- data/ext/gtk3/rbgtk-tool-itemgroup.c +0 -70
- data/ext/gtk3/rbgtk-tool-shell.c +0 -96
- data/ext/gtk3/rbgtk-toolbar.c +0 -118
- data/ext/gtk3/rbgtk-tooltip-gdk-display.c +0 -39
- data/ext/gtk3/rbgtk-tooltip.c +0 -100
- data/ext/gtk3/rbgtk-tree-dragdest.c +0 -28
- data/ext/gtk3/rbgtk-tree-dragsource.c +0 -28
- data/ext/gtk3/rbgtk-tree-iter.c +0 -258
- data/ext/gtk3/rbgtk-tree-model.c +0 -246
- data/ext/gtk3/rbgtk-tree-modelfilter.c +0 -197
- data/ext/gtk3/rbgtk-tree-modelsort.c +0 -111
- data/ext/gtk3/rbgtk-tree-path.c +0 -191
- data/ext/gtk3/rbgtk-tree-rowreference.c +0 -140
- data/ext/gtk3/rbgtk-tree-selection.c +0 -190
- data/ext/gtk3/rbgtk-tree-sortable.c +0 -122
- data/ext/gtk3/rbgtk-tree-store.c +0 -330
- data/ext/gtk3/rbgtk-tree-view-column.c +0 -256
- data/ext/gtk3/rbgtk-tree-view.c +0 -716
- data/ext/gtk3/rbgtk-ui-manager.c +0 -189
- data/ext/gtk3/rbgtk-viewport.c +0 -44
- data/ext/gtk3/rbgtk-volume-button.c +0 -41
- data/ext/gtk3/rbgtk-widget-path.c +0 -229
- data/ext/gtk3/rbgtk-widget.c +0 -1554
- data/ext/gtk3/rbgtk-window-group.c +0 -80
- data/ext/gtk3/rbgtk-window.c +0 -565
- data/ext/gtk3/rbgtk.c +0 -783
- data/ext/gtk3/rbgtk3.h +0 -90
- data/ext/gtk3/rbgtk3conversions.h +0 -439
- data/ext/gtk3/rbgtk3private.h +0 -300
- data/ext/gtk3/rbgtk3util.c +0 -67
- data/lib/gtk3/base.rb +0 -67
- data/sample/gtk-demo/appwindow.rb +0 -233
- data/sample/misc/composited-windows.rb +0 -113
- data/sample/misc/itemfactory.rb +0 -73
- data/sample/misc/itemfactory2.rb +0 -74
- data/sample/misc/keyboard_grab.rb +0 -29
- data/sample/misc/pangorenderer.rb +0 -66
- data/sample/misc/pointer_grab.rb +0 -34
- data/sample/misc/settings.rb +0 -41
- data/sample/misc/style_property.rb +0 -67
- data/sample/misc/style_property.rc +0 -19
- data/sample/misc/textbuffer_serialize.rb +0 -130
- data/sample/misc/to_drawable.rb +0 -42
- data/sample/misc/uimanager.rb +0 -148
- data/sample/misc/uimanager2.rb +0 -91
- data/sample/misc/uimanager2.xml +0 -36
- data/sample/misc/xbm_cursor.rb +0 -43
- data/sample/testgtk/3DRings.xpm +0 -116
- data/sample/testgtk/FilesQueue.xpm +0 -98
- data/sample/testgtk/Modeller.xpm +0 -117
- data/sample/testgtk/README +0 -14
- data/sample/testgtk/button.rb +0 -124
- data/sample/testgtk/buttonbox.rb +0 -100
- data/sample/testgtk/check-n.xpm +0 -21
- data/sample/testgtk/check-y.xpm +0 -21
- data/sample/testgtk/checkbutton.rb +0 -67
- data/sample/testgtk/circles.xbm +0 -46
- data/sample/testgtk/colorselect.rb +0 -33
- data/sample/testgtk/dialog.rb +0 -48
- data/sample/testgtk/entry.rb +0 -73
- data/sample/testgtk/filesel.rb +0 -65
- data/sample/testgtk/fontselection.rb +0 -56
- data/sample/testgtk/labels.rb +0 -74
- data/sample/testgtk/layout.rb +0 -108
- data/sample/testgtk/marble.xpm +0 -408
- data/sample/testgtk/menu.rb +0 -79
- data/sample/testgtk/notebook.rb +0 -280
- data/sample/testgtk/pixmap.rb +0 -58
- data/sample/testgtk/progressbar.rb +0 -173
- data/sample/testgtk/radiobutton.rb +0 -61
- data/sample/testgtk/range.rb +0 -65
- data/sample/testgtk/reparent.rb +0 -91
- data/sample/testgtk/sample.rb +0 -80
- data/sample/testgtk/savedposition.rb +0 -87
- data/sample/testgtk/scrolledwindow.rb +0 -67
- data/sample/testgtk/shapedwindow.rb +0 -99
- data/sample/testgtk/spinbutton.rb +0 -181
- data/sample/testgtk/statusbar.rb +0 -89
- data/sample/testgtk/test.xpm +0 -92
- data/sample/testgtk/testgtk.rb +0 -176
- data/sample/testgtk/testgtkrc +0 -146
- data/sample/testgtk/testgtkrc2 +0 -21
- data/sample/testgtk/togglebutton.rb +0 -53
- data/sample/testgtk/toolbar.rb +0 -82
- data/sample/testgtk/tooltips.rb +0 -41
- data/sample/testgtk/wmhints.rb +0 -40
- data/test/test_gtk_image.rb +0 -8
- data/test/test_gtk_list_store.rb +0 -105
- data/test/test_gtk_tree_path.rb +0 -20
- data/test/test_gtk_unix_print.rb +0 -14
- data/test/test_gtk_widget.rb +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 68f5fe89fda2496abb0db878b88e51398f7fd03a
|
4
|
+
data.tar.gz: be37e36d87505e9df5ea486b66084c1267c796e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7101c7139306b9e661c58ffe9302ad07286f9dc7053d39503547c1f1b690c526199fc926acc7f5e8eed785a12d29c2f98c4a323a1157696bc76a75c5b03bf744
|
7
|
+
data.tar.gz: e74038a4ca34391eb0b44a26774e53f37c35be5c9917eaef3b70082f096a8dd9fd33473f1fac86a99bb2921c270416035b5dfd0fa1eafec231fe4ee99d906160
|
data/Rakefile
CHANGED
data/ext/gtk3/depend
CHANGED
data/ext/gtk3/extconf.rb
CHANGED
@@ -1,20 +1,33 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Copyright (C) 2015 Ruby-GNOME2 Project Team
|
4
|
+
#
|
5
|
+
# This library is free software; you can redistribute it and/or
|
6
|
+
# modify it under the terms of the GNU Lesser General Public
|
7
|
+
# License as published by the Free Software Foundation; either
|
8
|
+
# version 2.1 of the License, or (at your option) any later version.
|
9
|
+
#
|
10
|
+
# This library is distributed in the hope that it will be useful,
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
# Lesser General Public License for more details.
|
14
|
+
#
|
15
|
+
# You should have received a copy of the GNU Lesser General Public
|
16
|
+
# License along with this library; if not, write to the Free Software
|
17
|
+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
18
|
+
|
19
|
+
require "pathname"
|
20
|
+
|
21
|
+
base_dir = Pathname(__FILE__).dirname.parent.parent.expand_path
|
22
|
+
top_dir = base_dir.parent
|
10
23
|
top_build_dir = Pathname(".").parent.parent.parent.expand_path
|
11
24
|
|
12
|
-
mkmf_gnome2_dir = top_dir + "glib2" +
|
25
|
+
mkmf_gnome2_dir = top_dir + "glib2" + "lib"
|
13
26
|
version_suffix = ""
|
14
27
|
unless mkmf_gnome2_dir.exist?
|
15
|
-
if /(-\d+\.\d+\.\d+)
|
28
|
+
if /(-\d+\.\d+\.\d+)\z/ =~ base_dir.basename.to_s
|
16
29
|
version_suffix = $1
|
17
|
-
mkmf_gnome2_dir = top_dir + "glib2#{version_suffix}" +
|
30
|
+
mkmf_gnome2_dir = top_dir + "glib2#{version_suffix}" + "lib"
|
18
31
|
end
|
19
32
|
end
|
20
33
|
|
@@ -23,20 +36,21 @@ $LOAD_PATH.unshift(mkmf_gnome2_dir.to_s)
|
|
23
36
|
module_name = "gtk3"
|
24
37
|
package_id = "gtk+-3.0"
|
25
38
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
depended_module_name = package.gsub(/-/, "_")
|
39
|
+
require "mkmf-gnome2"
|
40
|
+
|
41
|
+
depended_packages = [
|
42
|
+
"glib2",
|
43
|
+
"gobject-introspection",
|
44
|
+
"cairo-gobject",
|
45
|
+
"atk",
|
46
|
+
"pango",
|
47
|
+
"gdk_pixbuf2",
|
48
|
+
"gdk3",
|
49
|
+
].each do |package|
|
38
50
|
directory = "#{package}#{version_suffix}"
|
39
|
-
|
51
|
+
build_base_path = "#{directory}/tmp/#{RUBY_PLATFORM}"
|
52
|
+
package_library_name = package.gsub(/-/, "_")
|
53
|
+
build_dir = "#{build_base_path}/#{package_library_name}/#{RUBY_VERSION}"
|
40
54
|
add_depend_package(package, "#{directory}/ext/#{package}",
|
41
55
|
top_dir.to_s,
|
42
56
|
:top_build_dir => top_build_dir.to_s,
|
@@ -51,41 +65,17 @@ setup_windows(module_name, base_dir)
|
|
51
65
|
|
52
66
|
unless required_pkg_config_package(package_id,
|
53
67
|
:debian => "libgtk-3-dev",
|
54
|
-
:
|
68
|
+
:redhat => "gtk3-devel",
|
55
69
|
:homebrew => "gtk+3",
|
56
70
|
:macports => "gtk3")
|
57
71
|
exit(false)
|
58
72
|
end
|
59
73
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
STDOUT.print("checking for targets... ")
|
64
|
-
STDOUT.flush
|
65
|
-
targets = PKGConfig.variable(package_id, "targets").split(/\s+/)
|
66
|
-
STDOUT.print(targets.join(" "), "\n")
|
67
|
-
|
68
|
-
gtk_header = "gtk/gtk.h"
|
69
|
-
have_func('gtk_plug_get_type', gtk_header)
|
70
|
-
have_func('gtk_socket_get_type', gtk_header)
|
71
|
-
have_func('pango_render_part_get_type', gtk_header)
|
72
|
-
have_header('gtk/gtkfilesystem.h') do |src|
|
73
|
-
"#define GTK_FILE_SYSTEM_ENABLE_UNSUPPORTED\n#{src}"
|
74
|
-
end
|
75
|
-
|
76
|
-
xlib_header = "X11/Xlib.h"
|
77
|
-
if targets.include?("x11") and have_header('X11/Xlib.h') and have_library("X11")
|
78
|
-
have_func("XReadBitmapFileData", xlib_header)
|
79
|
-
have_func("XGetErrorText", xlib_header)
|
80
|
-
end
|
81
|
-
|
82
|
-
if !targets.include?("win32") and PKGConfig.have_package('gtk+-unix-print-3.0')
|
83
|
-
$defs.push("-DHAVE_GTK_UNIX_PRINT")
|
74
|
+
unless PKGConfig.have_package("gobject-introspection-1.0")
|
75
|
+
exit(false)
|
84
76
|
end
|
85
77
|
|
86
|
-
create_pkg_config_file("Ruby/GTK3", package_id
|
87
|
-
|
88
|
-
ensure_objs
|
78
|
+
create_pkg_config_file("Ruby/GTK3", package_id)
|
89
79
|
|
90
80
|
$defs << "-DRUBY_GTK3_COMPILATION"
|
91
81
|
create_makefile(module_name)
|
@@ -0,0 +1,159 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2015 Ruby-GNOME2 Project Team
|
4
|
+
*
|
5
|
+
* This library is free software; you can redistribute it and/or
|
6
|
+
* modify it under the terms of the GNU Lesser General Public
|
7
|
+
* License as published by the Free Software Foundation; either
|
8
|
+
* version 2.1 of the License, or (at your option) any later version.
|
9
|
+
*
|
10
|
+
* This library is distributed in the hope that it will be useful,
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
* Lesser General Public License for more details.
|
14
|
+
*
|
15
|
+
* You should have received a copy of the GNU Lesser General Public
|
16
|
+
* License along with this library; if not, write to the Free Software
|
17
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
18
|
+
* MA 02110-1301 USA
|
19
|
+
*/
|
20
|
+
|
21
|
+
#include "rb-gtk3-private.h"
|
22
|
+
|
23
|
+
#define RG_TARGET_NAMESPACE cContainer
|
24
|
+
#define _SELF(self) (RVAL2GTKCONTAINER(self))
|
25
|
+
|
26
|
+
static GQuark q_ruby_setter;
|
27
|
+
static GQuark q_ruby_getter;
|
28
|
+
|
29
|
+
static void rb_gtk3_container_mark(gpointer object);
|
30
|
+
|
31
|
+
static void
|
32
|
+
rb_gtk3_container_mark_callback(GtkWidget *widget,
|
33
|
+
G_GNUC_UNUSED gpointer data)
|
34
|
+
{
|
35
|
+
if (rbgobj_gc_mark_instance(widget))
|
36
|
+
return;
|
37
|
+
|
38
|
+
if (GTK_IS_CONTAINER(widget))
|
39
|
+
rb_gtk3_container_mark(widget);
|
40
|
+
}
|
41
|
+
|
42
|
+
static void
|
43
|
+
rb_gtk3_container_mark(gpointer object)
|
44
|
+
{
|
45
|
+
gtk_container_forall(GTK_CONTAINER(object),
|
46
|
+
rb_gtk3_container_mark_callback,
|
47
|
+
NULL);
|
48
|
+
}
|
49
|
+
|
50
|
+
/* FIXME: use rb_protect */
|
51
|
+
static void
|
52
|
+
get_child_prop_func(GtkContainer *container,
|
53
|
+
GtkWidget *child,
|
54
|
+
G_GNUC_UNUSED guint property_id,
|
55
|
+
GValue *value,
|
56
|
+
GParamSpec *pspec)
|
57
|
+
{
|
58
|
+
ID ruby_getter = (ID)g_param_spec_get_qdata(pspec, q_ruby_getter);
|
59
|
+
if (!ruby_getter) {
|
60
|
+
gchar *name = g_strconcat("get_", g_param_spec_get_name(pspec), NULL);
|
61
|
+
gchar *p;
|
62
|
+
for (p = name; *p; p++) {
|
63
|
+
if (*p == '-')
|
64
|
+
*p = '_';
|
65
|
+
}
|
66
|
+
ruby_getter = rb_intern(name);
|
67
|
+
g_param_spec_set_qdata(pspec, q_ruby_getter, (gpointer)ruby_getter);
|
68
|
+
g_free(name);
|
69
|
+
}
|
70
|
+
|
71
|
+
{
|
72
|
+
VALUE ret = rb_funcall(GOBJ2RVAL(container), ruby_getter, 1, GOBJ2RVAL(child));
|
73
|
+
rbgobj_rvalue_to_gvalue(ret, value);
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
/* FIXME: use rb_protect */
|
78
|
+
static void
|
79
|
+
set_child_prop_func(GtkContainer *container,
|
80
|
+
GtkWidget *child,
|
81
|
+
G_GNUC_UNUSED guint property_id,
|
82
|
+
const GValue *value,
|
83
|
+
GParamSpec *pspec)
|
84
|
+
{
|
85
|
+
ID ruby_setter = (ID)g_param_spec_get_qdata(pspec, q_ruby_setter);
|
86
|
+
if (!ruby_setter) {
|
87
|
+
gchar *name = g_strconcat("set_", g_param_spec_get_name(pspec), NULL);
|
88
|
+
gchar *p;
|
89
|
+
for (p = name; *p; p++) {
|
90
|
+
if (*p == '-')
|
91
|
+
*p = '_';
|
92
|
+
}
|
93
|
+
ruby_setter = rb_intern(name);
|
94
|
+
g_param_spec_set_qdata(pspec, q_ruby_setter, (gpointer)ruby_setter);
|
95
|
+
g_free(name);
|
96
|
+
}
|
97
|
+
|
98
|
+
rb_funcall(GOBJ2RVAL(container), ruby_setter,
|
99
|
+
2,
|
100
|
+
GOBJ2RVAL(child), GVAL2RVAL(value));
|
101
|
+
}
|
102
|
+
|
103
|
+
static void
|
104
|
+
class_init_func(gpointer g_class, gpointer class_data)
|
105
|
+
{
|
106
|
+
GtkContainerClass *g_container_class = GTK_CONTAINER_CLASS(g_class);
|
107
|
+
|
108
|
+
rbgobj_class_init_func(g_class, class_data);
|
109
|
+
|
110
|
+
g_container_class->set_child_property = set_child_prop_func;
|
111
|
+
g_container_class->get_child_property = get_child_prop_func;
|
112
|
+
|
113
|
+
rbgtk3_class_init_func(g_class, class_data);
|
114
|
+
}
|
115
|
+
|
116
|
+
static VALUE
|
117
|
+
rg_initialize(int argc, VALUE *argv, VALUE self)
|
118
|
+
{
|
119
|
+
rb_call_super(argc, argv);
|
120
|
+
rbgtk3_initialize(self);
|
121
|
+
return Qnil;
|
122
|
+
}
|
123
|
+
|
124
|
+
static VALUE
|
125
|
+
rg_s_type_register(int argc, VALUE *argv, VALUE klass)
|
126
|
+
{
|
127
|
+
VALUE type_name;
|
128
|
+
|
129
|
+
rb_scan_args(argc, argv, "01", &type_name);
|
130
|
+
|
131
|
+
rbgobj_register_type(klass, type_name, class_init_func);
|
132
|
+
|
133
|
+
{
|
134
|
+
VALUE initialize_module;
|
135
|
+
initialize_module = rb_define_module_under(klass, "ContainerHook");
|
136
|
+
rbg_define_method(initialize_module,
|
137
|
+
"initialize", rg_initialize, -1);
|
138
|
+
rb_include_module(klass, initialize_module);
|
139
|
+
}
|
140
|
+
|
141
|
+
return Qnil;
|
142
|
+
}
|
143
|
+
|
144
|
+
void
|
145
|
+
rbgtk3_container_init(void)
|
146
|
+
{
|
147
|
+
VALUE mGtk;
|
148
|
+
VALUE RG_TARGET_NAMESPACE;
|
149
|
+
|
150
|
+
q_ruby_getter = g_quark_from_static_string("__ruby_getter");
|
151
|
+
q_ruby_setter = g_quark_from_static_string("__ruby_setter");
|
152
|
+
|
153
|
+
mGtk = rb_const_get(rb_cObject, rb_intern("Gtk"));
|
154
|
+
RG_TARGET_NAMESPACE = rb_const_get(mGtk, rb_intern("Container"));
|
155
|
+
|
156
|
+
rbgobj_register_mark_func(GTK_TYPE_CONTAINER, rb_gtk3_container_mark);
|
157
|
+
|
158
|
+
RG_DEF_SMETHOD(type_register, -1);
|
159
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
2
|
/*
|
3
|
-
* Copyright (C)
|
3
|
+
* Copyright (C) 2015 Ruby-GNOME2 Project Team
|
4
4
|
*
|
5
5
|
* This library is free software; you can redistribute it and/or
|
6
6
|
* modify it under the terms of the GNU Lesser General Public
|
@@ -18,15 +18,15 @@
|
|
18
18
|
* MA 02110-1301 USA
|
19
19
|
*/
|
20
20
|
|
21
|
-
#ifndef
|
22
|
-
#define
|
21
|
+
#ifndef RB_GTK3_PRIVATE_H
|
22
|
+
#define RB_GTK3_PRIVATE_H
|
23
23
|
|
24
|
-
|
24
|
+
#include "rb-gtk3.h"
|
25
25
|
|
26
|
-
|
26
|
+
G_GNUC_INTERNAL void rbgtk3_class_init_func(gpointer g_class, gpointer class_data);
|
27
|
+
G_GNUC_INTERNAL void rbgtk3_initialize(VALUE self);
|
27
28
|
|
28
|
-
G_GNUC_INTERNAL
|
29
|
+
G_GNUC_INTERNAL void rbgtk3_container_init(void);
|
30
|
+
G_GNUC_INTERNAL void rbgtk3_widget_init(void);
|
29
31
|
|
30
|
-
|
31
|
-
|
32
|
-
#endif /* __RBGTK3UTIL_H__ */
|
32
|
+
#endif
|
@@ -0,0 +1,71 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2015 Ruby-GNOME2 Project Team
|
4
|
+
*
|
5
|
+
* This library is free software; you can redistribute it and/or
|
6
|
+
* modify it under the terms of the GNU Lesser General Public
|
7
|
+
* License as published by the Free Software Foundation; either
|
8
|
+
* version 2.1 of the License, or (at your option) any later version.
|
9
|
+
*
|
10
|
+
* This library is distributed in the hope that it will be useful,
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
* Lesser General Public License for more details.
|
14
|
+
*
|
15
|
+
* You should have received a copy of the GNU Lesser General Public
|
16
|
+
* License along with this library; if not, write to the Free Software
|
17
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
18
|
+
* MA 02110-1301 USA
|
19
|
+
*/
|
20
|
+
|
21
|
+
#include "rb-gtk3-private.h"
|
22
|
+
|
23
|
+
#define RG_TARGET_NAMESPACE cWidget
|
24
|
+
#define _SELF(self) (RVAL2GTKWIDGET(self))
|
25
|
+
|
26
|
+
static void
|
27
|
+
class_init_func(gpointer g_class, gpointer class_data)
|
28
|
+
{
|
29
|
+
rbgobj_class_init_func(g_class, class_data);
|
30
|
+
rbgtk3_class_init_func(g_class, class_data);
|
31
|
+
}
|
32
|
+
|
33
|
+
static VALUE
|
34
|
+
rg_initialize(int argc, VALUE *argv, VALUE self)
|
35
|
+
{
|
36
|
+
rb_call_super(argc, argv);
|
37
|
+
rbgtk3_initialize(self);
|
38
|
+
return Qnil;
|
39
|
+
}
|
40
|
+
|
41
|
+
static VALUE
|
42
|
+
rg_s_type_register(int argc, VALUE *argv, VALUE klass)
|
43
|
+
{
|
44
|
+
VALUE type_name;
|
45
|
+
|
46
|
+
rb_scan_args(argc, argv, "01", &type_name);
|
47
|
+
|
48
|
+
rbgobj_register_type(klass, type_name, class_init_func);
|
49
|
+
|
50
|
+
{
|
51
|
+
VALUE initialize_module;
|
52
|
+
initialize_module = rb_define_module_under(klass, "WidgetHook");
|
53
|
+
rbg_define_method(initialize_module,
|
54
|
+
"initialize", rg_initialize, -1);
|
55
|
+
rb_include_module(klass, initialize_module);
|
56
|
+
}
|
57
|
+
|
58
|
+
return Qnil;
|
59
|
+
}
|
60
|
+
|
61
|
+
void
|
62
|
+
rbgtk3_widget_init(void)
|
63
|
+
{
|
64
|
+
VALUE mGtk;
|
65
|
+
VALUE RG_TARGET_NAMESPACE;
|
66
|
+
|
67
|
+
mGtk = rb_const_get(rb_cObject, rb_intern("Gtk"));
|
68
|
+
RG_TARGET_NAMESPACE = rb_const_get(mGtk, rb_intern("Widget"));
|
69
|
+
|
70
|
+
RG_DEF_SMETHOD(type_register, -1);
|
71
|
+
}
|
data/ext/gtk3/rb-gtk3.c
ADDED
@@ -0,0 +1,407 @@
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2015 Ruby-GNOME2 Project Team
|
4
|
+
*
|
5
|
+
* This library is free software; you can redistribute it and/or
|
6
|
+
* modify it under the terms of the GNU Lesser General Public
|
7
|
+
* License as published by the Free Software Foundation; either
|
8
|
+
* version 2.1 of the License, or (at your option) any later version.
|
9
|
+
*
|
10
|
+
* This library is distributed in the hope that it will be useful,
|
11
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
* Lesser General Public License for more details.
|
14
|
+
*
|
15
|
+
* You should have received a copy of the GNU Lesser General Public
|
16
|
+
* License along with this library; if not, write to the Free Software
|
17
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
18
|
+
* MA 02110-1301 USA
|
19
|
+
*/
|
20
|
+
|
21
|
+
#include "rb-gtk3-private.h"
|
22
|
+
|
23
|
+
/*
|
24
|
+
#if GTK_CHECK_VERSION(3, 10, 0)
|
25
|
+
# define RB_GTK_ACTION_IS_DEPRECATED
|
26
|
+
# define RB_GTK_ACTION_GROUP_IS_DEPRECATED
|
27
|
+
# define RB_GTK_UI_MANAGER_IS_DEPRECATED
|
28
|
+
#endif
|
29
|
+
*/
|
30
|
+
|
31
|
+
static gboolean
|
32
|
+
name_equal(GIArgInfo *info, const gchar *target_name)
|
33
|
+
{
|
34
|
+
GITypeInfo type_info;
|
35
|
+
GIBaseInfo *interface_info;
|
36
|
+
const gchar *namespace;
|
37
|
+
const gchar *name;
|
38
|
+
gboolean equal_name_p = FALSE;
|
39
|
+
|
40
|
+
g_arg_info_load_type(info, &type_info);
|
41
|
+
interface_info = g_type_info_get_interface(&type_info);
|
42
|
+
namespace = g_base_info_get_namespace(interface_info);
|
43
|
+
name = g_base_info_get_name(interface_info);
|
44
|
+
if (strcmp(namespace, "Gtk") == 0 && strcmp(name, target_name) == 0) {
|
45
|
+
equal_name_p = TRUE;
|
46
|
+
}
|
47
|
+
g_base_info_unref(interface_info);
|
48
|
+
|
49
|
+
return equal_name_p;
|
50
|
+
}
|
51
|
+
|
52
|
+
static void
|
53
|
+
rb_gtk3_callback_callback(GtkWidget *widget, gpointer user_data)
|
54
|
+
{
|
55
|
+
RBGICallbackData *callback_data = user_data;
|
56
|
+
ID id_call;
|
57
|
+
|
58
|
+
CONST_ID(id_call, "call");
|
59
|
+
rb_funcall(callback_data->rb_callback, id_call, 1,
|
60
|
+
GOBJ2RVAL(widget));
|
61
|
+
}
|
62
|
+
|
63
|
+
static gint
|
64
|
+
rb_gtk3_assistant_page_func_callback(gint current_page, gpointer user_data)
|
65
|
+
{
|
66
|
+
RBGICallbackData *callback_data = user_data;
|
67
|
+
ID id_call;
|
68
|
+
VALUE rb_next_page;
|
69
|
+
|
70
|
+
CONST_ID(id_call, "call");
|
71
|
+
rb_next_page = rb_funcall(callback_data->rb_callback, id_call, 1,
|
72
|
+
INT2NUM(current_page));
|
73
|
+
return NUM2INT(rb_next_page);
|
74
|
+
}
|
75
|
+
|
76
|
+
static void
|
77
|
+
rb_gtk3_builder_connect_func_callback(GtkBuilder *builder,
|
78
|
+
GObject *object,
|
79
|
+
const gchar *signal_name,
|
80
|
+
const gchar *handler_name,
|
81
|
+
GObject *connect_object,
|
82
|
+
GConnectFlags flags,
|
83
|
+
gpointer user_data)
|
84
|
+
{
|
85
|
+
RBGICallbackData *callback_data = user_data;
|
86
|
+
ID id___connect_signals__;
|
87
|
+
VALUE rb_object;
|
88
|
+
|
89
|
+
CONST_ID(id___connect_signals__, "__connect_signals__");
|
90
|
+
rb_object = GOBJ2RVAL(object);
|
91
|
+
G_RELATIVE(rb_object, callback_data->rb_callback);
|
92
|
+
rb_funcall(GOBJ2RVAL(builder), id___connect_signals__, 6,
|
93
|
+
callback_data->rb_callback,
|
94
|
+
rb_object,
|
95
|
+
CSTR2RVAL(signal_name),
|
96
|
+
CSTR2RVAL(handler_name),
|
97
|
+
GOBJ2RVAL(connect_object),
|
98
|
+
GCONNECTFLAGS2RVAL(flags));
|
99
|
+
}
|
100
|
+
|
101
|
+
static const gchar *
|
102
|
+
rb_gtk3_translate_func_callback(const gchar *path,
|
103
|
+
gpointer user_data)
|
104
|
+
{
|
105
|
+
RBGICallbackData *callback_data = user_data;
|
106
|
+
ID id_call;
|
107
|
+
VALUE rb_translated;
|
108
|
+
|
109
|
+
CONST_ID(id_call, "call");
|
110
|
+
rb_translated = rb_funcall(callback_data->rb_callback,
|
111
|
+
id_call,
|
112
|
+
1,
|
113
|
+
CSTR2RVAL(path));
|
114
|
+
return RVAL2CSTR(rb_translated);
|
115
|
+
}
|
116
|
+
|
117
|
+
static void
|
118
|
+
rb_gtk3_tree_cell_data_func_callback(GtkTreeViewColumn *column,
|
119
|
+
GtkCellRenderer *cell,
|
120
|
+
GtkTreeModel *model,
|
121
|
+
GtkTreeIter *iter,
|
122
|
+
gpointer user_data)
|
123
|
+
{
|
124
|
+
RBGICallbackData *callback_data = user_data;
|
125
|
+
ID id_set_model;
|
126
|
+
ID id_call;
|
127
|
+
VALUE rb_model;
|
128
|
+
VALUE rb_iter;
|
129
|
+
|
130
|
+
CONST_ID(id_set_model, "model=");
|
131
|
+
rb_model = GOBJ2RVAL(model);
|
132
|
+
rb_iter = BOXED2RVAL(iter, GTK_TYPE_TREE_ITER);
|
133
|
+
rb_funcall(rb_iter, id_set_model, 1, rb_model);
|
134
|
+
|
135
|
+
CONST_ID(id_call, "call");
|
136
|
+
rb_funcall(callback_data->rb_callback,
|
137
|
+
id_call,
|
138
|
+
4,
|
139
|
+
GOBJ2RVAL(column),
|
140
|
+
GOBJ2RVAL(cell),
|
141
|
+
rb_model,
|
142
|
+
rb_iter);
|
143
|
+
}
|
144
|
+
|
145
|
+
static void
|
146
|
+
rb_gtk3_tree_model_filter_modify_func_callback(GtkTreeModel *model,
|
147
|
+
GtkTreeIter *iter,
|
148
|
+
GValue *value,
|
149
|
+
gint column,
|
150
|
+
gpointer user_data)
|
151
|
+
{
|
152
|
+
RBGICallbackData *callback_data = user_data;
|
153
|
+
ID id_set_model;
|
154
|
+
ID id_call;
|
155
|
+
VALUE rb_model;
|
156
|
+
VALUE rb_iter;
|
157
|
+
VALUE rb_value;
|
158
|
+
VALUE rb_column;
|
159
|
+
|
160
|
+
CONST_ID(id_set_model, "model=");
|
161
|
+
rb_model = GOBJ2RVAL(model);
|
162
|
+
rb_iter = BOXED2RVAL(iter, GTK_TYPE_TREE_ITER);
|
163
|
+
rb_funcall(rb_iter, id_set_model, 1, rb_model);
|
164
|
+
rb_column = INT2NUM(column);
|
165
|
+
|
166
|
+
CONST_ID(id_call, "call");
|
167
|
+
rb_value = rb_funcall(callback_data->rb_callback,
|
168
|
+
id_call,
|
169
|
+
3,
|
170
|
+
rb_model,
|
171
|
+
rb_iter,
|
172
|
+
rb_column);
|
173
|
+
rbgobj_rvalue_to_gvalue(rb_value, value);
|
174
|
+
}
|
175
|
+
|
176
|
+
static gboolean
|
177
|
+
rb_gtk3_tree_model_filter_visible_func_callback(GtkTreeModel *model,
|
178
|
+
GtkTreeIter *iter,
|
179
|
+
gpointer user_data)
|
180
|
+
{
|
181
|
+
RBGICallbackData *callback_data = user_data;
|
182
|
+
ID id_set_model;
|
183
|
+
ID id_call;
|
184
|
+
VALUE rb_model;
|
185
|
+
VALUE rb_iter;
|
186
|
+
VALUE rb_visible;
|
187
|
+
gboolean visible = FALSE;
|
188
|
+
|
189
|
+
CONST_ID(id_set_model, "model=");
|
190
|
+
rb_model = GOBJ2RVAL(model);
|
191
|
+
rb_iter = BOXED2RVAL(iter, GTK_TYPE_TREE_ITER);
|
192
|
+
rb_funcall(rb_iter, id_set_model, 1, rb_model);
|
193
|
+
|
194
|
+
CONST_ID(id_call, "call");
|
195
|
+
rb_visible = rb_funcall(callback_data->rb_callback,
|
196
|
+
id_call,
|
197
|
+
2,
|
198
|
+
rb_model,
|
199
|
+
rb_iter);
|
200
|
+
visible = RVAL2CBOOL(rb_visible);
|
201
|
+
|
202
|
+
return visible;
|
203
|
+
}
|
204
|
+
|
205
|
+
static gboolean
|
206
|
+
rb_gtk3_tree_model_foreach_func_callback(GtkTreeModel *model,
|
207
|
+
GtkTreePath *path,
|
208
|
+
GtkTreeIter *iter,
|
209
|
+
gpointer user_data)
|
210
|
+
{
|
211
|
+
RBGICallbackData *callback_data = user_data;
|
212
|
+
ID id_set_model;
|
213
|
+
ID id_call;
|
214
|
+
VALUE rb_model;
|
215
|
+
VALUE rb_iter;
|
216
|
+
gboolean stop = FALSE;
|
217
|
+
|
218
|
+
CONST_ID(id_set_model, "model=");
|
219
|
+
rb_model = GOBJ2RVAL(model);
|
220
|
+
rb_iter = BOXED2RVAL(iter, GTK_TYPE_TREE_ITER);
|
221
|
+
rb_funcall(rb_iter, id_set_model, 1, rb_model);
|
222
|
+
|
223
|
+
CONST_ID(id_call, "call");
|
224
|
+
rb_funcall(callback_data->rb_callback,
|
225
|
+
id_call,
|
226
|
+
3,
|
227
|
+
rb_model,
|
228
|
+
BOXED2RVAL(path, GTK_TYPE_TREE_PATH),
|
229
|
+
rb_iter);
|
230
|
+
|
231
|
+
return stop;
|
232
|
+
}
|
233
|
+
|
234
|
+
static void
|
235
|
+
rb_gtk3_tree_selection_foreach_func_callback(GtkTreeModel *model,
|
236
|
+
GtkTreePath *path,
|
237
|
+
GtkTreeIter *iter,
|
238
|
+
gpointer user_data)
|
239
|
+
{
|
240
|
+
RBGICallbackData *callback_data = user_data;
|
241
|
+
ID id_set_model;
|
242
|
+
ID id_call;
|
243
|
+
VALUE rb_model;
|
244
|
+
VALUE rb_iter;
|
245
|
+
|
246
|
+
CONST_ID(id_set_model, "model=");
|
247
|
+
rb_model = GOBJ2RVAL(model);
|
248
|
+
rb_iter = BOXED2RVAL(iter, GTK_TYPE_TREE_ITER);
|
249
|
+
rb_funcall(rb_iter, id_set_model, 1, rb_model);
|
250
|
+
|
251
|
+
CONST_ID(id_call, "call");
|
252
|
+
rb_funcall(callback_data->rb_callback,
|
253
|
+
id_call,
|
254
|
+
3,
|
255
|
+
rb_model,
|
256
|
+
BOXED2RVAL(path, GTK_TYPE_TREE_PATH),
|
257
|
+
rb_iter);
|
258
|
+
}
|
259
|
+
|
260
|
+
static void
|
261
|
+
rb_gtk3_tree_view_mapping_func_callback(GtkTreeView *tree_view,
|
262
|
+
GtkTreePath *path,
|
263
|
+
gpointer user_data)
|
264
|
+
{
|
265
|
+
RBGICallbackData *callback_data = user_data;
|
266
|
+
ID id_call;
|
267
|
+
|
268
|
+
CONST_ID(id_call, "call");
|
269
|
+
rb_funcall(callback_data->rb_callback,
|
270
|
+
id_call,
|
271
|
+
2,
|
272
|
+
GOBJ2RVAL(tree_view),
|
273
|
+
BOXED2RVAL(path, GTK_TYPE_TREE_PATH));
|
274
|
+
}
|
275
|
+
|
276
|
+
static gpointer
|
277
|
+
rb_gtk3_callback_finder(GIArgInfo *info)
|
278
|
+
{
|
279
|
+
if (name_equal(info, "Callback")) {
|
280
|
+
return rb_gtk3_callback_callback;
|
281
|
+
} else if (name_equal(info, "AssistantPageFunc")) {
|
282
|
+
return rb_gtk3_assistant_page_func_callback;
|
283
|
+
} else if (name_equal(info, "BuilderConnectFunc")) {
|
284
|
+
return rb_gtk3_builder_connect_func_callback;
|
285
|
+
} else if (name_equal(info, "TranslateFunc")) {
|
286
|
+
return rb_gtk3_translate_func_callback;
|
287
|
+
} else if (name_equal(info, "TreeCellDataFunc")) {
|
288
|
+
return rb_gtk3_tree_cell_data_func_callback;
|
289
|
+
} else if (name_equal(info, "TreeModelFilterModifyFunc")) {
|
290
|
+
return rb_gtk3_tree_model_filter_modify_func_callback;
|
291
|
+
} else if (name_equal(info, "TreeModelFilterVisibleFunc")) {
|
292
|
+
return rb_gtk3_tree_model_filter_visible_func_callback;
|
293
|
+
} else if (name_equal(info, "TreeModelForeachFunc")) {
|
294
|
+
return rb_gtk3_tree_model_foreach_func_callback;
|
295
|
+
} else if (name_equal(info, "TreeSelectionForeachFunc")) {
|
296
|
+
return rb_gtk3_tree_selection_foreach_func_callback;
|
297
|
+
} else if (name_equal(info, "TreeViewMappingFunc")) {
|
298
|
+
return rb_gtk3_tree_view_mapping_func_callback;
|
299
|
+
} else {
|
300
|
+
return NULL;
|
301
|
+
}
|
302
|
+
}
|
303
|
+
|
304
|
+
#ifndef RB_GTK_ACTION_IS_DEPRECATED
|
305
|
+
static void
|
306
|
+
rb_gtk3_action_mark(gpointer object)
|
307
|
+
{
|
308
|
+
GtkAction *action;
|
309
|
+
GSList *proxies, *node;
|
310
|
+
|
311
|
+
action = GTK_ACTION(object);
|
312
|
+
proxies = gtk_action_get_proxies(action);
|
313
|
+
for (node = proxies; node; node = g_slist_next(node)) {
|
314
|
+
GtkWidget *proxy = node->data;
|
315
|
+
rbgobj_gc_mark_instance(proxy);
|
316
|
+
}
|
317
|
+
}
|
318
|
+
#endif
|
319
|
+
|
320
|
+
static void
|
321
|
+
rb_gtk3_builder_mark(gpointer object)
|
322
|
+
{
|
323
|
+
GtkBuilder *builder;
|
324
|
+
GSList *objects;
|
325
|
+
|
326
|
+
builder = GTK_BUILDER(object);
|
327
|
+
objects = gtk_builder_get_objects(builder);
|
328
|
+
g_slist_foreach(objects, (GFunc)rbgobj_gc_mark_instance, NULL);
|
329
|
+
g_slist_free(objects);
|
330
|
+
}
|
331
|
+
|
332
|
+
#ifndef RB_GTK_ACTION_GROUP_IS_DEPRECATED
|
333
|
+
static void
|
334
|
+
rb_gtk3_action_group_mark(gpointer object)
|
335
|
+
{
|
336
|
+
GtkActionGroup *group;
|
337
|
+
GList *actions, *node;
|
338
|
+
|
339
|
+
group = GTK_ACTION_GROUP(object);
|
340
|
+
actions = gtk_action_group_list_actions(group);
|
341
|
+
for (node = actions; node; node = g_list_next(node)) {
|
342
|
+
GtkWidget *action = node->data;
|
343
|
+
rbgobj_gc_mark_instance(action);
|
344
|
+
}
|
345
|
+
g_list_free(actions);
|
346
|
+
}
|
347
|
+
#endif
|
348
|
+
|
349
|
+
#ifndef RB_GTK_UI_MANAGER_IS_DEPRECATED
|
350
|
+
static void
|
351
|
+
rb_gtk3_ui_manager_mark(gpointer object)
|
352
|
+
{
|
353
|
+
GtkUIManager *manager;
|
354
|
+
GList *action_groups, *node;
|
355
|
+
|
356
|
+
manager = GTK_UI_MANAGER(object);
|
357
|
+
action_groups = gtk_ui_manager_get_action_groups(manager);
|
358
|
+
for (node = action_groups; node; node = g_list_next(node)) {
|
359
|
+
GtkWidget *action_group = node->data;
|
360
|
+
rbgobj_gc_mark_instance(action_group);
|
361
|
+
}
|
362
|
+
|
363
|
+
rbgobj_gc_mark_instance(gtk_ui_manager_get_accel_group(manager));
|
364
|
+
}
|
365
|
+
#endif
|
366
|
+
|
367
|
+
void
|
368
|
+
rbgtk3_class_init_func(gpointer g_class, G_GNUC_UNUSED gpointer class_data)
|
369
|
+
{
|
370
|
+
VALUE rb_class;
|
371
|
+
|
372
|
+
rb_class = GTYPE2CLASS(G_TYPE_FROM_CLASS(g_class));
|
373
|
+
rb_funcall(rb_class, rb_intern("init"), 0);
|
374
|
+
}
|
375
|
+
|
376
|
+
void
|
377
|
+
rbgtk3_initialize(VALUE self)
|
378
|
+
{
|
379
|
+
GObject *object;
|
380
|
+
|
381
|
+
object = RVAL2GOBJ(self);
|
382
|
+
g_object_ref_sink(object);
|
383
|
+
|
384
|
+
rb_funcall(self, rb_intern("initialize_post"), 0);
|
385
|
+
}
|
386
|
+
|
387
|
+
void
|
388
|
+
Init_gtk3(void)
|
389
|
+
{
|
390
|
+
rb_gi_callback_register_finder(rb_gtk3_callback_finder);
|
391
|
+
|
392
|
+
#ifndef RB_GTK_ACTION_IS_DEPRECATED
|
393
|
+
rbgobj_register_mark_func(GTK_TYPE_ACTION, rb_gtk3_action_mark);
|
394
|
+
#endif
|
395
|
+
rbgobj_register_mark_func(GTK_TYPE_BUILDER, rb_gtk3_builder_mark);
|
396
|
+
#ifndef RB_GTK_ACTION_GROUP_IS_DEPRECATED
|
397
|
+
rbgobj_register_mark_func(GTK_TYPE_ACTION_GROUP, rb_gtk3_action_group_mark);
|
398
|
+
#endif
|
399
|
+
#ifndef RB_GTK_UI_MANAGER_IS_DEPRECATED
|
400
|
+
rbgobj_register_mark_func(GTK_TYPE_UI_MANAGER, rb_gtk3_ui_manager_mark);
|
401
|
+
#endif
|
402
|
+
|
403
|
+
rbgtk3_container_init();
|
404
|
+
rbgtk3_widget_init();
|
405
|
+
|
406
|
+
rbgobj_boxed_not_copy_obj(GTK_TYPE_SELECTION_DATA);
|
407
|
+
}
|