gtk3 2.2.4-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 +7 -0
- data/Rakefile +20 -0
- data/ext/gtk3/conversions.c +34 -0
- data/ext/gtk3/depend +11 -0
- data/ext/gtk3/extconf.rb +99 -0
- data/ext/gtk3/gtk3.def +10 -0
- data/ext/gtk3/init.c +34 -0
- data/ext/gtk3/rbgtk-about-dialog.c +113 -0
- data/ext/gtk3/rbgtk-accel-group-entry.c +94 -0
- data/ext/gtk3/rbgtk-accel-group.c +199 -0
- data/ext/gtk3/rbgtk-accel-key.c +120 -0
- data/ext/gtk3/rbgtk-accel-label.c +55 -0
- data/ext/gtk3/rbgtk-accel-map.c +135 -0
- data/ext/gtk3/rbgtk-accelerator.c +78 -0
- data/ext/gtk3/rbgtk-accessible.c +40 -0
- data/ext/gtk3/rbgtk-action-bar.c +73 -0
- data/ext/gtk3/rbgtk-action-group.c +467 -0
- data/ext/gtk3/rbgtk-action.c +205 -0
- data/ext/gtk3/rbgtk-activatable.c +30 -0
- data/ext/gtk3/rbgtk-adjustment.c +98 -0
- data/ext/gtk3/rbgtk-alignment.c +75 -0
- data/ext/gtk3/rbgtk-allocation.c +166 -0
- data/ext/gtk3/rbgtk-app-chooser-button.c +70 -0
- data/ext/gtk3/rbgtk-app-chooser-dialog.c +68 -0
- data/ext/gtk3/rbgtk-app-chooser-widget.c +40 -0
- data/ext/gtk3/rbgtk-app-chooser.c +47 -0
- data/ext/gtk3/rbgtk-application.c +69 -0
- data/ext/gtk3/rbgtk-arrow.c +56 -0
- data/ext/gtk3/rbgtk-aspect-frame.c +56 -0
- data/ext/gtk3/rbgtk-assistant.c +218 -0
- data/ext/gtk3/rbgtk-bin.c +42 -0
- data/ext/gtk3/rbgtk-binding-set.c +154 -0
- data/ext/gtk3/rbgtk-border.c +119 -0
- data/ext/gtk3/rbgtk-box.c +146 -0
- data/ext/gtk3/rbgtk-buildable.c +96 -0
- data/ext/gtk3/rbgtk-builder.c +166 -0
- data/ext/gtk3/rbgtk-button-box.c +87 -0
- data/ext/gtk3/rbgtk-button.c +93 -0
- data/ext/gtk3/rbgtk-calendar.c +118 -0
- data/ext/gtk3/rbgtk-cell-editable.c +57 -0
- data/ext/gtk3/rbgtk-cell-layout.c +144 -0
- data/ext/gtk3/rbgtk-cell-renderer-accel.c +41 -0
- data/ext/gtk3/rbgtk-cell-renderer-combo.c +38 -0
- data/ext/gtk3/rbgtk-cell-renderer-pixbuf.c +41 -0
- data/ext/gtk3/rbgtk-cell-renderer-progress.c +38 -0
- data/ext/gtk3/rbgtk-cell-renderer-spin.c +39 -0
- data/ext/gtk3/rbgtk-cell-renderer-spinner.c +38 -0
- data/ext/gtk3/rbgtk-cell-renderer-text.c +48 -0
- data/ext/gtk3/rbgtk-cell-renderer-toggle.c +39 -0
- data/ext/gtk3/rbgtk-cell-renderer.c +119 -0
- data/ext/gtk3/rbgtk-cell-view.c +95 -0
- data/ext/gtk3/rbgtk-check-button.c +64 -0
- data/ext/gtk3/rbgtk-check-menu-item.c +64 -0
- data/ext/gtk3/rbgtk-clip-board.c +389 -0
- data/ext/gtk3/rbgtk-color-button.c +55 -0
- data/ext/gtk3/rbgtk-color-selection-dialog.c +56 -0
- data/ext/gtk3/rbgtk-color-selection.c +219 -0
- data/ext/gtk3/rbgtk-combo-box-text.c +138 -0
- data/ext/gtk3/rbgtk-combo-box.c +147 -0
- data/ext/gtk3/rbgtk-const.c +79 -0
- data/ext/gtk3/rbgtk-container.c +788 -0
- data/ext/gtk3/rbgtk-css-provider.c +110 -0
- data/ext/gtk3/rbgtk-dialog.c +206 -0
- data/ext/gtk3/rbgtk-drag-gdk-drag-context.c +108 -0
- data/ext/gtk3/rbgtk-drag.c +93 -0
- data/ext/gtk3/rbgtk-drawing-area.c +42 -0
- data/ext/gtk3/rbgtk-editable.c +149 -0
- data/ext/gtk3/rbgtk-entry-buffer.c +87 -0
- data/ext/gtk3/rbgtk-entry-completion.c +122 -0
- data/ext/gtk3/rbgtk-entry.c +184 -0
- data/ext/gtk3/rbgtk-event-box.c +42 -0
- data/ext/gtk3/rbgtk-expander.c +49 -0
- data/ext/gtk3/rbgtk-file-chooser-button.c +50 -0
- data/ext/gtk3/rbgtk-file-chooser-dialog.c +62 -0
- data/ext/gtk3/rbgtk-file-chooser-widget.c +40 -0
- data/ext/gtk3/rbgtk-file-chooser.c +381 -0
- data/ext/gtk3/rbgtk-file-filter.c +128 -0
- data/ext/gtk3/rbgtk-file-system-error.c +48 -0
- data/ext/gtk3/rbgtk-fixed.c +61 -0
- data/ext/gtk3/rbgtk-font-button.c +49 -0
- data/ext/gtk3/rbgtk-font-chooser-dialog.c +56 -0
- data/ext/gtk3/rbgtk-font-chooser-widget.c +45 -0
- data/ext/gtk3/rbgtk-font-chooser.c +78 -0
- data/ext/gtk3/rbgtk-frame.c +69 -0
- data/ext/gtk3/rbgtk-gdk-event.c +38 -0
- data/ext/gtk3/rbgtk-grid.c +105 -0
- data/ext/gtk3/rbgtk-handle-box.c +45 -0
- data/ext/gtk3/rbgtk-header-bar.c +58 -0
- data/ext/gtk3/rbgtk-hsv.c +102 -0
- data/ext/gtk3/rbgtk-icon-factory.c +85 -0
- data/ext/gtk3/rbgtk-icon-info.c +115 -0
- data/ext/gtk3/rbgtk-icon-set.c +84 -0
- data/ext/gtk3/rbgtk-icon-size.c +91 -0
- data/ext/gtk3/rbgtk-icon-source.c +184 -0
- data/ext/gtk3/rbgtk-icon-theme.c +268 -0
- data/ext/gtk3/rbgtk-icon-view.c +295 -0
- data/ext/gtk3/rbgtk-im-multicontext.c +48 -0
- data/ext/gtk3/rbgtk-image-menu-item.c +67 -0
- data/ext/gtk3/rbgtk-image.c +162 -0
- data/ext/gtk3/rbgtk-imcon-text-simple.c +69 -0
- data/ext/gtk3/rbgtk-imcon-text.c +133 -0
- data/ext/gtk3/rbgtk-infobar.c +121 -0
- data/ext/gtk3/rbgtk-invisible.c +49 -0
- data/ext/gtk3/rbgtk-label.c +139 -0
- data/ext/gtk3/rbgtk-layout.c +93 -0
- data/ext/gtk3/rbgtk-level-bar.c +88 -0
- data/ext/gtk3/rbgtk-link-button.c +49 -0
- data/ext/gtk3/rbgtk-list-store.c +399 -0
- data/ext/gtk3/rbgtk-lock-button.c +50 -0
- data/ext/gtk3/rbgtk-menu-button.c +41 -0
- data/ext/gtk3/rbgtk-menu-item.c +95 -0
- data/ext/gtk3/rbgtk-menu-shell.c +106 -0
- data/ext/gtk3/rbgtk-menu-tool-button.c +81 -0
- data/ext/gtk3/rbgtk-menu.c +168 -0
- data/ext/gtk3/rbgtk-menubar.c +43 -0
- data/ext/gtk3/rbgtk-message-dialog.c +74 -0
- data/ext/gtk3/rbgtk-misc.c +70 -0
- data/ext/gtk3/rbgtk-notebook.c +383 -0
- data/ext/gtk3/rbgtk-numerable-icon.c +50 -0
- data/ext/gtk3/rbgtk-orientable.c +27 -0
- data/ext/gtk3/rbgtk-overlay.c +53 -0
- data/ext/gtk3/rbgtk-page-setup-unix-dialog.c +94 -0
- data/ext/gtk3/rbgtk-page-setup.c +195 -0
- data/ext/gtk3/rbgtk-paned.c +114 -0
- data/ext/gtk3/rbgtk-paper-size.c +179 -0
- data/ext/gtk3/rbgtk-plug.c +85 -0
- data/ext/gtk3/rbgtk-print-context.c +125 -0
- data/ext/gtk3/rbgtk-print-job.c +148 -0
- data/ext/gtk3/rbgtk-print-operation-preview.c +59 -0
- data/ext/gtk3/rbgtk-print-operation.c +149 -0
- data/ext/gtk3/rbgtk-print-settings.c +807 -0
- data/ext/gtk3/rbgtk-print-unix-dialog.c +90 -0
- data/ext/gtk3/rbgtk-printer.c +155 -0
- data/ext/gtk3/rbgtk-progress-bar.c +72 -0
- data/ext/gtk3/rbgtk-radio-action.c +122 -0
- data/ext/gtk3/rbgtk-radio-button.c +89 -0
- data/ext/gtk3/rbgtk-radio-menu-item.c +147 -0
- data/ext/gtk3/rbgtk-radio-tool-button.c +131 -0
- data/ext/gtk3/rbgtk-range.c +68 -0
- data/ext/gtk3/rbgtk-recent-action.c +64 -0
- data/ext/gtk3/rbgtk-recent-chooser-dialog.c +66 -0
- data/ext/gtk3/rbgtk-recent-chooser-menu.c +50 -0
- data/ext/gtk3/rbgtk-recent-chooser-widget.c +48 -0
- data/ext/gtk3/rbgtk-recent-chooser.c +198 -0
- data/ext/gtk3/rbgtk-recent-data.c +188 -0
- data/ext/gtk3/rbgtk-recent-filter-info.c +201 -0
- data/ext/gtk3/rbgtk-recent-filter.c +169 -0
- data/ext/gtk3/rbgtk-recent-info.c +213 -0
- data/ext/gtk3/rbgtk-recent-manager.c +134 -0
- data/ext/gtk3/rbgtk-revealer.c +42 -0
- data/ext/gtk3/rbgtk-scale-button.c +84 -0
- data/ext/gtk3/rbgtk-scale.c +97 -0
- data/ext/gtk3/rbgtk-scrollable.c +31 -0
- data/ext/gtk3/rbgtk-scrollbar.c +52 -0
- data/ext/gtk3/rbgtk-scrolled-window.c +122 -0
- data/ext/gtk3/rbgtk-search-bar.c +59 -0
- data/ext/gtk3/rbgtk-search-entry.c +42 -0
- data/ext/gtk3/rbgtk-selection-data.c +281 -0
- data/ext/gtk3/rbgtk-selection.c +168 -0
- data/ext/gtk3/rbgtk-separator-menu-item.c +39 -0
- data/ext/gtk3/rbgtk-separator-tool-item.c +38 -0
- data/ext/gtk3/rbgtk-separator.c +44 -0
- data/ext/gtk3/rbgtk-settings.c +229 -0
- data/ext/gtk3/rbgtk-size-group.c +66 -0
- data/ext/gtk3/rbgtk-socket.c +82 -0
- data/ext/gtk3/rbgtk-spin-button.c +132 -0
- data/ext/gtk3/rbgtk-spinner.c +55 -0
- data/ext/gtk3/rbgtk-stack-switcher.c +41 -0
- data/ext/gtk3/rbgtk-stack.c +106 -0
- data/ext/gtk3/rbgtk-status-bar.c +77 -0
- data/ext/gtk3/rbgtk-status-icon.c +122 -0
- data/ext/gtk3/rbgtk-stock.c +213 -0
- data/ext/gtk3/rbgtk-style-context-gdk-screen.c +61 -0
- data/ext/gtk3/rbgtk-style-context.c +411 -0
- data/ext/gtk3/rbgtk-style-properties.c +118 -0
- data/ext/gtk3/rbgtk-style-provider.c +67 -0
- data/ext/gtk3/rbgtk-switch.c +40 -0
- data/ext/gtk3/rbgtk-table.c +190 -0
- data/ext/gtk3/rbgtk-target-list.c +125 -0
- data/ext/gtk3/rbgtk-tearoff-menu-item.c +41 -0
- data/ext/gtk3/rbgtk-text-appearance.c +236 -0
- data/ext/gtk3/rbgtk-text-attributes.c +326 -0
- data/ext/gtk3/rbgtk-text-buffer.c +899 -0
- data/ext/gtk3/rbgtk-text-child-anchor.c +56 -0
- data/ext/gtk3/rbgtk-text-iter.c +732 -0
- data/ext/gtk3/rbgtk-text-mark.c +71 -0
- data/ext/gtk3/rbgtk-text-tag-table.c +96 -0
- data/ext/gtk3/rbgtk-text-tag.c +68 -0
- data/ext/gtk3/rbgtk-text-view.c +336 -0
- data/ext/gtk3/rbgtk-theming-engine.c +257 -0
- data/ext/gtk3/rbgtk-toggle-action.c +61 -0
- data/ext/gtk3/rbgtk-toggle-button.c +87 -0
- data/ext/gtk3/rbgtk-toggle-tool-button.c +61 -0
- data/ext/gtk3/rbgtk-tool-button.c +66 -0
- data/ext/gtk3/rbgtk-tool-item.c +200 -0
- data/ext/gtk3/rbgtk-tool-itemgroup.c +70 -0
- data/ext/gtk3/rbgtk-tool-shell.c +96 -0
- data/ext/gtk3/rbgtk-toolbar.c +118 -0
- data/ext/gtk3/rbgtk-tooltip-gdk-display.c +39 -0
- data/ext/gtk3/rbgtk-tooltip.c +100 -0
- data/ext/gtk3/rbgtk-tree-dragdest.c +28 -0
- data/ext/gtk3/rbgtk-tree-dragsource.c +28 -0
- data/ext/gtk3/rbgtk-tree-iter.c +258 -0
- data/ext/gtk3/rbgtk-tree-model.c +246 -0
- data/ext/gtk3/rbgtk-tree-modelfilter.c +197 -0
- data/ext/gtk3/rbgtk-tree-modelsort.c +111 -0
- data/ext/gtk3/rbgtk-tree-path.c +191 -0
- data/ext/gtk3/rbgtk-tree-rowreference.c +140 -0
- data/ext/gtk3/rbgtk-tree-selection.c +190 -0
- data/ext/gtk3/rbgtk-tree-sortable.c +122 -0
- data/ext/gtk3/rbgtk-tree-store.c +330 -0
- data/ext/gtk3/rbgtk-tree-view-column.c +256 -0
- data/ext/gtk3/rbgtk-tree-view.c +716 -0
- data/ext/gtk3/rbgtk-ui-manager.c +189 -0
- data/ext/gtk3/rbgtk-viewport.c +44 -0
- data/ext/gtk3/rbgtk-volume-button.c +41 -0
- data/ext/gtk3/rbgtk-widget-path.c +229 -0
- data/ext/gtk3/rbgtk-widget.c +1554 -0
- data/ext/gtk3/rbgtk-window-group.c +80 -0
- data/ext/gtk3/rbgtk-window.c +565 -0
- data/ext/gtk3/rbgtk.c +783 -0
- data/ext/gtk3/rbgtk3.h +90 -0
- data/ext/gtk3/rbgtk3conversions.h +439 -0
- data/ext/gtk3/rbgtk3private.h +300 -0
- data/ext/gtk3/rbgtk3util.c +67 -0
- data/ext/gtk3/rbgtk3util.h +32 -0
- data/extconf.rb +49 -0
- 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 +11 -0
- data/lib/gtk3/base.rb +67 -0
- data/lib/gtk3/deprecated.rb +1004 -0
- data/sample/gtk-demo/README +7 -0
- data/sample/gtk-demo/alphatest.png +0 -0
- data/sample/gtk-demo/apple-red.png +0 -0
- data/sample/gtk-demo/appwindow.rb +233 -0
- data/sample/gtk-demo/background.jpg +0 -0
- data/sample/gtk-demo/builder.rb +51 -0
- data/sample/gtk-demo/button_box.rb +83 -0
- data/sample/gtk-demo/cairo-arc-negative.rb +41 -0
- data/sample/gtk-demo/cairo-arc.rb +41 -0
- data/sample/gtk-demo/cairo-clip-image.rb +51 -0
- data/sample/gtk-demo/cairo-clip-rectangle.rb +35 -0
- data/sample/gtk-demo/cairo-clip.rb +35 -0
- data/sample/gtk-demo/cairo-curve-rectangle.rb +76 -0
- data/sample/gtk-demo/cairo-curve-to.rb +43 -0
- data/sample/gtk-demo/cairo-dash.rb +39 -0
- data/sample/gtk-demo/cairo-fill-and-stroke.rb +32 -0
- data/sample/gtk-demo/cairo-fill-and-stroke2.rb +38 -0
- data/sample/gtk-demo/cairo-gradient.rb +35 -0
- data/sample/gtk-demo/cairo-image-pattern.rb +39 -0
- data/sample/gtk-demo/cairo-image.rb +49 -0
- data/sample/gtk-demo/cairo-line-cap.rb +53 -0
- data/sample/gtk-demo/cairo-line-join.rb +41 -0
- data/sample/gtk-demo/cairo-long-lines.rb +41 -0
- data/sample/gtk-demo/cairo-operator.rb +83 -0
- data/sample/gtk-demo/cairo-path.rb +28 -0
- data/sample/gtk-demo/cairo-pattern-fill.rb +88 -0
- data/sample/gtk-demo/cairo-self-intersect.rb +32 -0
- data/sample/gtk-demo/cairo-text-align-center.rb +45 -0
- data/sample/gtk-demo/cairo-text-extents.rb +46 -0
- data/sample/gtk-demo/cairo-text.rb +43 -0
- data/sample/gtk-demo/changedisplay.rb +407 -0
- data/sample/gtk-demo/clipboard.rb +67 -0
- data/sample/gtk-demo/colorsel.rb +82 -0
- data/sample/gtk-demo/common.rb +87 -0
- data/sample/gtk-demo/css_accordion.css +53 -0
- data/sample/gtk-demo/css_accordion.rb +75 -0
- data/sample/gtk-demo/demo.ui +258 -0
- data/sample/gtk-demo/dialog.rb +137 -0
- data/sample/gtk-demo/drawingarea.rb +205 -0
- data/sample/gtk-demo/editable_cells.rb +173 -0
- data/sample/gtk-demo/entry_completion.rb +63 -0
- data/sample/gtk-demo/expander.rb +42 -0
- data/sample/gtk-demo/floppybuddy.gif +0 -0
- data/sample/gtk-demo/gnome-applets.png +0 -0
- data/sample/gtk-demo/gnome-calendar.png +0 -0
- data/sample/gtk-demo/gnome-foot.png +0 -0
- data/sample/gtk-demo/gnome-fs-directory.png +0 -0
- data/sample/gtk-demo/gnome-fs-regular.png +0 -0
- data/sample/gtk-demo/gnome-gimp.png +0 -0
- data/sample/gtk-demo/gnome-gmush.png +0 -0
- data/sample/gtk-demo/gnome-gsame.png +0 -0
- data/sample/gtk-demo/gnu-keys.png +0 -0
- data/sample/gtk-demo/gtk-logo-rgb.gif +0 -0
- data/sample/gtk-demo/hypertext.rb +211 -0
- data/sample/gtk-demo/iconview.rb +110 -0
- data/sample/gtk-demo/images.rb +197 -0
- data/sample/gtk-demo/infobar.rb +78 -0
- data/sample/gtk-demo/item_factory.rb +94 -0
- data/sample/gtk-demo/links.rb +53 -0
- data/sample/gtk-demo/list_store.rb +138 -0
- data/sample/gtk-demo/main.rb +384 -0
- data/sample/gtk-demo/menus.rb +172 -0
- data/sample/gtk-demo/panes.rb +156 -0
- data/sample/gtk-demo/pixbufs.rb +167 -0
- data/sample/gtk-demo/printing.rb +128 -0
- data/sample/gtk-demo/reset.css +69 -0
- data/sample/gtk-demo/rotated_text.rb +72 -0
- data/sample/gtk-demo/ruby-gnome2-logo.png +0 -0
- data/sample/gtk-demo/sizegroup.rb +118 -0
- data/sample/gtk-demo/spinner.rb +59 -0
- data/sample/gtk-demo/stock_browser.rb +233 -0
- data/sample/gtk-demo/textview.rb +436 -0
- data/sample/gtk-demo/theming.ui +319 -0
- data/sample/gtk-demo/theming_style_classes.rb +48 -0
- data/sample/gtk-demo/tree_store.rb +270 -0
- data/sample/misc/aboutdialog.rb +42 -0
- data/sample/misc/aboutdialog2.rb +42 -0
- data/sample/misc/alpha-demo.rb +70 -0
- data/sample/misc/assistant.rb +281 -0
- data/sample/misc/bindings.rb +97 -0
- data/sample/misc/button.rb +72 -0
- data/sample/misc/button2.rb +28 -0
- data/sample/misc/buttonbox.rb +93 -0
- data/sample/misc/cairo-pong.rb +217 -0
- data/sample/misc/calendar.rb +66 -0
- data/sample/misc/checkbutton.rb +49 -0
- data/sample/misc/colorselection.rb +22 -0
- data/sample/misc/combo_check.rb +79 -0
- data/sample/misc/combobox.rb +85 -0
- data/sample/misc/composited-windows.rb +113 -0
- data/sample/misc/cursor.rb +34 -0
- data/sample/misc/dialog.rb +44 -0
- data/sample/misc/dialog2.rb +36 -0
- data/sample/misc/dnd.rb +64 -0
- data/sample/misc/dndtreeview.rb +56 -0
- data/sample/misc/drag-move.rb +139 -0
- data/sample/misc/drawing.rb +109 -0
- data/sample/misc/entry.rb +34 -0
- data/sample/misc/entrycompletion.rb +33 -0
- data/sample/misc/expander.rb +27 -0
- data/sample/misc/filechooser.rb +41 -0
- data/sample/misc/frame.rb +69 -0
- data/sample/misc/gdkscreen.rb +32 -0
- data/sample/misc/gnome-logo-icon.png +0 -0
- data/sample/misc/helloworld.rb +35 -0
- data/sample/misc/iconview.rb +38 -0
- data/sample/misc/image.rb +42 -0
- data/sample/misc/itemfactory.rb +73 -0
- data/sample/misc/itemfactory2.rb +74 -0
- data/sample/misc/keyboard_grab.rb +29 -0
- data/sample/misc/label.rb +33 -0
- data/sample/misc/linkbutton.rb +42 -0
- data/sample/misc/listview.rb +92 -0
- data/sample/misc/menu.rb +81 -0
- data/sample/misc/misc_button.rb +49 -0
- data/sample/misc/mouse-gesture.rb +465 -0
- data/sample/misc/pangorenderer.rb +66 -0
- data/sample/misc/pointer_grab.rb +34 -0
- data/sample/misc/print.rb +247 -0
- data/sample/misc/properties.rb +86 -0
- data/sample/misc/radiobutton.rb +47 -0
- data/sample/misc/recentchooserdialog.rb +52 -0
- data/sample/misc/rgtk+cairo.rb +42 -0
- data/sample/misc/scalebutton.rb +19 -0
- data/sample/misc/settings.rb +41 -0
- data/sample/misc/statusicon.rb +106 -0
- data/sample/misc/stock.rb +36 -0
- data/sample/misc/style_property.rb +67 -0
- data/sample/misc/style_property.rc +19 -0
- data/sample/misc/t-gtkplug.rb +58 -0
- data/sample/misc/t-gtksocket.rb +65 -0
- data/sample/misc/test.xpm +92 -0
- data/sample/misc/textbuffer_serialize.rb +130 -0
- data/sample/misc/threads.rb +70 -0
- data/sample/misc/to_drawable.rb +42 -0
- data/sample/misc/togglebutton.rb +34 -0
- data/sample/misc/toolbar.rb +55 -0
- data/sample/misc/tooltips.rb +204 -0
- data/sample/misc/tree_combo.rb +79 -0
- data/sample/misc/tree_progress.rb +61 -0
- data/sample/misc/treemodelfilter.rb +49 -0
- data/sample/misc/treeview.rb +71 -0
- data/sample/misc/uimanager.rb +148 -0
- data/sample/misc/uimanager2.rb +91 -0
- data/sample/misc/uimanager2.xml +36 -0
- data/sample/misc/window.rb +24 -0
- data/sample/misc/xbm_cursor.rb +43 -0
- data/sample/testgtk/3DRings.xpm +116 -0
- data/sample/testgtk/FilesQueue.xpm +98 -0
- data/sample/testgtk/Modeller.xpm +117 -0
- data/sample/testgtk/README +14 -0
- data/sample/testgtk/button.rb +124 -0
- data/sample/testgtk/buttonbox.rb +100 -0
- data/sample/testgtk/check-n.xpm +21 -0
- data/sample/testgtk/check-y.xpm +21 -0
- data/sample/testgtk/checkbutton.rb +67 -0
- data/sample/testgtk/circles.xbm +46 -0
- data/sample/testgtk/colorselect.rb +33 -0
- data/sample/testgtk/dialog.rb +48 -0
- data/sample/testgtk/entry.rb +73 -0
- data/sample/testgtk/filesel.rb +65 -0
- data/sample/testgtk/fontselection.rb +56 -0
- data/sample/testgtk/labels.rb +74 -0
- data/sample/testgtk/layout.rb +108 -0
- data/sample/testgtk/marble.xpm +408 -0
- data/sample/testgtk/menu.rb +79 -0
- data/sample/testgtk/notebook.rb +280 -0
- data/sample/testgtk/pixmap.rb +58 -0
- data/sample/testgtk/progressbar.rb +173 -0
- data/sample/testgtk/radiobutton.rb +61 -0
- data/sample/testgtk/range.rb +65 -0
- data/sample/testgtk/reparent.rb +91 -0
- data/sample/testgtk/sample.rb +80 -0
- data/sample/testgtk/savedposition.rb +87 -0
- data/sample/testgtk/scrolledwindow.rb +67 -0
- data/sample/testgtk/shapedwindow.rb +99 -0
- data/sample/testgtk/spinbutton.rb +181 -0
- data/sample/testgtk/statusbar.rb +89 -0
- data/sample/testgtk/test.xpm +92 -0
- data/sample/testgtk/testgtk.rb +176 -0
- data/sample/testgtk/testgtkrc +146 -0
- data/sample/testgtk/testgtkrc2 +21 -0
- data/sample/testgtk/togglebutton.rb +53 -0
- data/sample/testgtk/toolbar.rb +82 -0
- data/sample/testgtk/tooltips.rb +41 -0
- data/sample/testgtk/wmhints.rb +40 -0
- data/test/gtk-test-utils.rb +15 -0
- data/test/run-test.rb +58 -0
- data/test/test_gc.rb +22 -0
- data/test/test_gtk.rb +23 -0
- data/test/test_gtk_about_dialog.rb +13 -0
- data/test/test_gtk_accel_group_entry.rb +24 -0
- data/test/test_gtk_accel_key.rb +24 -0
- data/test/test_gtk_accessible.rb +31 -0
- data/test/test_gtk_action_group.rb +46 -0
- data/test/test_gtk_allocation.rb +24 -0
- data/test/test_gtk_border.rb +24 -0
- data/test/test_gtk_buildable.rb +56 -0
- data/test/test_gtk_builder.rb +166 -0
- data/test/test_gtk_container.rb +32 -0
- data/test/test_gtk_css_provider.rb +27 -0
- data/test/test_gtk_entry.rb +52 -0
- data/test/test_gtk_header_bar.rb +66 -0
- data/test/test_gtk_icon_theme.rb +31 -0
- data/test/test_gtk_icon_view.rb +41 -0
- data/test/test_gtk_image.rb +8 -0
- data/test/test_gtk_level_bar.rb +82 -0
- data/test/test_gtk_list_store.rb +105 -0
- data/test/test_gtk_menu_button.rb +49 -0
- data/test/test_gtk_menu_item.rb +13 -0
- data/test/test_gtk_recent_data.rb +24 -0
- data/test/test_gtk_recent_filter_info.rb +26 -0
- data/test/test_gtk_revealer.rb +57 -0
- data/test/test_gtk_search_bar.rb +55 -0
- data/test/test_gtk_search_entry.rb +34 -0
- data/test/test_gtk_stack.rb +115 -0
- data/test/test_gtk_stack_switcher.rb +30 -0
- data/test/test_gtk_style_context.rb +30 -0
- data/test/test_gtk_style_properties.rb +38 -0
- data/test/test_gtk_tree_path.rb +20 -0
- data/test/test_gtk_tree_selection.rb +31 -0
- data/test/test_gtk_unix_print.rb +14 -0
- data/test/test_gtk_widget.rb +24 -0
- metadata +582 -0
@@ -0,0 +1,197 @@
|
|
1
|
+
# Copyright (c) 2003-2005 Ruby-GNOME2 Project Team
|
2
|
+
# This program is licenced under the same licence as Ruby-GNOME2.
|
3
|
+
#
|
4
|
+
# $Id: images.rb,v 1.5 2006/04/08 12:30:03 mutoh Exp $
|
5
|
+
=begin
|
6
|
+
= Images
|
7
|
+
|
8
|
+
Gtk::Image is used to display an image; the image can be in a number of formats.
|
9
|
+
Typically, you load an image into a Gdk::Pixbuf, then display the pixbuf.
|
10
|
+
|
11
|
+
This demo code shows some of the more obscure cases, in the simple
|
12
|
+
case a call to Gtk::Image.new is all you need.
|
13
|
+
|
14
|
+
If you want to put image data in your program as a String variable,
|
15
|
+
use the make-inline-pixbuf program that comes with GTK+.
|
16
|
+
This way you won't need to depend on loading external files, your
|
17
|
+
application binary can be self-contained.
|
18
|
+
=end
|
19
|
+
require 'common'
|
20
|
+
|
21
|
+
module Demo
|
22
|
+
class Images < BasicWindow
|
23
|
+
def initialize
|
24
|
+
@pixbuf_loader = nil
|
25
|
+
@load_timeout = 0
|
26
|
+
@image_stream = nil
|
27
|
+
|
28
|
+
super('Images')
|
29
|
+
signal_connect('destroy') do
|
30
|
+
cleanup_callback
|
31
|
+
end
|
32
|
+
|
33
|
+
self.border_width = 8
|
34
|
+
|
35
|
+
vbox = Gtk::VBox.new(false, 8)
|
36
|
+
vbox.border_width = 8
|
37
|
+
add(vbox)
|
38
|
+
|
39
|
+
label = Gtk::Label.new
|
40
|
+
label.set_markup('<u>Image loaded from a file</u>')
|
41
|
+
vbox.pack_start(label, :expand => false, :fill => false, :padding => 0)
|
42
|
+
|
43
|
+
frame = Gtk::Frame.new
|
44
|
+
frame.shadow_type = :in
|
45
|
+
|
46
|
+
# The alignment keeps the frame from growing when users resize
|
47
|
+
# the window
|
48
|
+
align = Gtk::Alignment.new(0.5, 0.5, 0, 0)
|
49
|
+
align.add(frame)
|
50
|
+
vbox.pack_start(align, :expand => false, :fill => false, :padding => 0)
|
51
|
+
|
52
|
+
# demo_find_file looks in the the current directory first,
|
53
|
+
# so you can run gtk-demo without installing GTK, then looks
|
54
|
+
# in the location where the file is installed.
|
55
|
+
pixbuf = nil
|
56
|
+
begin
|
57
|
+
filename = Demo.find_file('gtk-logo-rgb.gif')
|
58
|
+
pixbuf = Gdk::Pixbuf.new(filename)
|
59
|
+
rescue
|
60
|
+
# This code shows off error handling. You can just use
|
61
|
+
# Gtk::Image.new instead if you don't want to report
|
62
|
+
# errors to the user. If the file doesn't load when using
|
63
|
+
# Gtk::Image.new, a 'missing image' icon will
|
64
|
+
# be displayed instead.
|
65
|
+
dialog = Gtk::MessageDialog.new(self,
|
66
|
+
Gtk::Dialog::DESTROY_WITH_PARENT,
|
67
|
+
Gtk::MessageDialog::ERROR,
|
68
|
+
Gtk::MessageDialog::BUTTONS_CLOSE,
|
69
|
+
"Unable to open image file 'gtk-logo-rgb.gif': #{$1}")
|
70
|
+
|
71
|
+
dialog.signal_connect('response') do |widget, data|
|
72
|
+
widget.destroy
|
73
|
+
end
|
74
|
+
dialog.show
|
75
|
+
end
|
76
|
+
|
77
|
+
image = Gtk::Image.new(pixbuf)
|
78
|
+
frame.add(image)
|
79
|
+
|
80
|
+
|
81
|
+
# Animation
|
82
|
+
label = Gtk::Label.new
|
83
|
+
label.set_markup('<u>Animation loaded from a file</u>')
|
84
|
+
vbox.pack_start(label, :expand => false, :fill => false, :padding => 0)
|
85
|
+
|
86
|
+
frame = Gtk::Frame.new
|
87
|
+
frame.shadow_type = :in
|
88
|
+
|
89
|
+
# The alignment keeps the frame from growing when users resize
|
90
|
+
# the window
|
91
|
+
align = Gtk::Alignment.new(0.5, 0.5, 0, 0)
|
92
|
+
align.add(frame)
|
93
|
+
vbox.pack_start(align, :expand => false, :fill => false, :padding => 0)
|
94
|
+
|
95
|
+
filename = Demo.find_file('floppybuddy.gif')
|
96
|
+
image = Gtk::Image.new(filename)
|
97
|
+
frame.add(image)
|
98
|
+
|
99
|
+
|
100
|
+
# Progressive
|
101
|
+
label = Gtk::Label.new
|
102
|
+
label.set_markup('<u>Progressive image loading</u>')
|
103
|
+
vbox.pack_start(label, :expand => false, :fill => false, :padding => 0)
|
104
|
+
|
105
|
+
frame = Gtk::Frame.new(nil)
|
106
|
+
frame.shadow_type = :in
|
107
|
+
|
108
|
+
# The alignment keeps the frame from growing when users resize
|
109
|
+
# the window
|
110
|
+
align = Gtk::Alignment.new(0.5, 0.5, 0, 0)
|
111
|
+
align.add(frame)
|
112
|
+
vbox.pack_start(align, :expand => false, :fill => false, :padding => 0)
|
113
|
+
|
114
|
+
# Create an empty image for now; the progressive loader
|
115
|
+
# will create the pixbuf and fill it in.
|
116
|
+
image = Gtk::Image.new
|
117
|
+
frame.add(image)
|
118
|
+
|
119
|
+
start_progressive_loading(image)
|
120
|
+
|
121
|
+
# Sensitivity control
|
122
|
+
button = Gtk::ToggleButton.new('_Insensitive', true)
|
123
|
+
vbox.pack_start(button, :expand => false, :fill => false, :padding => 0)
|
124
|
+
|
125
|
+
button.signal_connect('toggled') do |widget|
|
126
|
+
vbox.children.each do |widget|
|
127
|
+
if widget != button
|
128
|
+
widget.sensitive = ! button.active?
|
129
|
+
end
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
def start_progressive_loading(image)
|
135
|
+
@load_timeout = Gtk.timeout_add(150) do
|
136
|
+
progressive_timeout(image)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
def progressive_timeout(image)
|
141
|
+
if @image_stream
|
142
|
+
buf = @image_stream.read(256)
|
143
|
+
|
144
|
+
@pixbuf_loader.write(buf)
|
145
|
+
|
146
|
+
if @image_stream.eof?
|
147
|
+
@image_stream.close
|
148
|
+
@image_stream = nil
|
149
|
+
|
150
|
+
@pixbuf_loader.close
|
151
|
+
@pixbuf_loader = nil
|
152
|
+
end
|
153
|
+
else
|
154
|
+
filename = Demo.find_file('alphatest.png')
|
155
|
+
@image_stream = File.open(filename, 'rb')
|
156
|
+
|
157
|
+
if @pixbuf_loader != nil
|
158
|
+
@pixbuf_loader.close
|
159
|
+
@pixbuf_loader = nil
|
160
|
+
end
|
161
|
+
|
162
|
+
@pixbuf_loader = Gdk::PixbufLoader.new
|
163
|
+
|
164
|
+
@pixbuf_loader.signal_connect('area_prepared') do |loader|
|
165
|
+
pixbuf = loader.pixbuf
|
166
|
+
|
167
|
+
# Avoid displaying random memory contents, since the pixbuf
|
168
|
+
# isn't filled in yet.
|
169
|
+
pixbuf.fill!(0xaaaaaaff)
|
170
|
+
|
171
|
+
image.pixbuf = pixbuf
|
172
|
+
end
|
173
|
+
|
174
|
+
@pixbuf_loader.signal_connect('area_updated') do
|
175
|
+
# We know the pixbuf inside the Gtk::Image has changed, but the image
|
176
|
+
# itself doesn't know this; so queue a redraw. If we wanted to be
|
177
|
+
# really efficient, we could use a drawing area or something
|
178
|
+
# instead of a Gtk::Image, so we could control the exact position of
|
179
|
+
# the pixbuf on the display, then we could queue a draw for only
|
180
|
+
# the updated area of the image.
|
181
|
+
image.queue_draw
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
# leave timeout installed
|
186
|
+
return true
|
187
|
+
end
|
188
|
+
|
189
|
+
def cleanup_callback
|
190
|
+
@pixbuf_loader.close if @pixbuf_loader
|
191
|
+
@pixbuf_loader = nil
|
192
|
+
if @load_timeout != 0
|
193
|
+
Gtk.timeout_remove(@load_timeout)
|
194
|
+
end
|
195
|
+
end
|
196
|
+
end
|
197
|
+
end
|
@@ -0,0 +1,78 @@
|
|
1
|
+
# Copyright (c) 2013 Ruby-GNOME2 Project Team
|
2
|
+
# This program is licenced under the same licence as Ruby-GNOME2.
|
3
|
+
#
|
4
|
+
=begin
|
5
|
+
= Info bar
|
6
|
+
|
7
|
+
Info bar widgets are used to report important messages to the user.
|
8
|
+
=end
|
9
|
+
require 'common'
|
10
|
+
|
11
|
+
module Demo
|
12
|
+
class InfoBar < BasicWindow
|
13
|
+
def initialize
|
14
|
+
super('Info Bars')
|
15
|
+
|
16
|
+
self.border_width = 8
|
17
|
+
|
18
|
+
|
19
|
+
vbox = Gtk::Box.new :vertical
|
20
|
+
self.add vbox
|
21
|
+
|
22
|
+
bar = Gtk::InfoBar.new
|
23
|
+
vbox.pack_start bar, :expand => false, :fill => false, :padding => 0
|
24
|
+
bar.message_type = :info
|
25
|
+
label = Gtk::Label.new 'This is an info bar with message type GTK_MESSAGE_INFO'
|
26
|
+
bar.content_area.pack_start label, :expand => false, :fill => false, :padding => 0
|
27
|
+
|
28
|
+
bar = Gtk::InfoBar.new
|
29
|
+
vbox.pack_start bar, :expand => false, :fill => false, :padding => 0
|
30
|
+
bar.message_type = :warning
|
31
|
+
label = Gtk::Label.new 'This is an info bar with message type GTK_MESSAGE_WARNING'
|
32
|
+
bar.content_area.pack_start label, :expand => false, :fill => false, :padding => 0
|
33
|
+
|
34
|
+
bar = Gtk::InfoBar.new [:ok, :ok]
|
35
|
+
bar.signal_connect(:response) {|widget, response_id| on_bar_response widget, response_id}
|
36
|
+
vbox.pack_start bar, :expand => false, :fill => false, :padding => 0
|
37
|
+
bar.message_type = :question
|
38
|
+
label = Gtk::Label.new 'This is an info bar with message type GTK_MESSAGE_QUESTION'
|
39
|
+
bar.content_area.pack_start label, :expand => false, :fill => false, :padding => 0
|
40
|
+
|
41
|
+
bar = Gtk::InfoBar.new
|
42
|
+
vbox.pack_start bar, :expand => false, :fill => false, :padding => 0
|
43
|
+
bar.message_type = :error
|
44
|
+
label = Gtk::Label.new 'This is an info bar with message type GTK_MESSAGE_ERROR'
|
45
|
+
bar.content_area.pack_start label, :expand => false, :fill => false, :padding => 0
|
46
|
+
|
47
|
+
bar = Gtk::InfoBar.new
|
48
|
+
vbox.pack_start bar, :expand => false, :fill => false, :padding => 0
|
49
|
+
bar.message_type = :other
|
50
|
+
label = Gtk::Label.new 'This is an info bar with message type GTK_MESSAGE_OTHER'
|
51
|
+
bar.content_area.pack_start label, :expand => false, :fill => false, :padding => 0
|
52
|
+
|
53
|
+
|
54
|
+
frame = Gtk::Frame.new 'Info bars'
|
55
|
+
vbox.pack_start frame, :expand => false, :fill => false, :padding => 8
|
56
|
+
|
57
|
+
vbox2 = Gtk::Box.new :vertical, 8
|
58
|
+
vbox2.border_width = 8
|
59
|
+
frame.add vbox2
|
60
|
+
|
61
|
+
# Standard message dialog
|
62
|
+
label = Gtk::Label.new 'An example of different info bars'
|
63
|
+
vbox2.pack_start label, :expand => false, :fill => false, :padding => 0
|
64
|
+
end
|
65
|
+
|
66
|
+
def on_bar_response info_bar, response_id
|
67
|
+
dialog = Gtk::MessageDialog.new :parent => self,
|
68
|
+
:flags => [:modal, :destroy_with_parent],
|
69
|
+
:type => :info,
|
70
|
+
:buttons_type => :ok,
|
71
|
+
:message => 'You clicked a button on an info bar'
|
72
|
+
|
73
|
+
dialog.set_secondary_text "Your response has id %d" % response_id
|
74
|
+
dialog.signal_connect(:response) {dialog.destroy}
|
75
|
+
dialog.show_all
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
@@ -0,0 +1,94 @@
|
|
1
|
+
# Copyright (c) 2003-2005 Ruby-GNOME2 Project Team
|
2
|
+
# This program is licenced under the same licence as Ruby-GNOME2.
|
3
|
+
#
|
4
|
+
# $Id: item_factory.rb,v 1.4 2005/02/12 23:02:43 kzys Exp $
|
5
|
+
=begin
|
6
|
+
= Item Factory
|
7
|
+
|
8
|
+
The Gtk::ItemFactory object allows the easy creation of menus
|
9
|
+
from an array of descriptions of menu items.
|
10
|
+
=end
|
11
|
+
require 'common'
|
12
|
+
|
13
|
+
module Demo
|
14
|
+
class ItemFactory < BasicWindow
|
15
|
+
def initialize
|
16
|
+
super('Item Factory')
|
17
|
+
|
18
|
+
accel_group = Gtk::AccelGroup.new
|
19
|
+
item_factory = Gtk::ItemFactory.new(Gtk::ItemFactory::TYPE_MENU_BAR,
|
20
|
+
'<main>', accel_group)
|
21
|
+
|
22
|
+
add_accel_group(accel_group)
|
23
|
+
set_border_width(0)
|
24
|
+
ifactory_cb = proc do |data, widget|
|
25
|
+
puts "ItemFactory: activated \"#{Gtk::ItemFactory.path_from_widget(widget)}\""
|
26
|
+
end
|
27
|
+
menu_items = [
|
28
|
+
['/_File'],
|
29
|
+
['/File/tearoff1',
|
30
|
+
'<Tearoff>', nil, nil, ifactory_cb],
|
31
|
+
['/File/_New',
|
32
|
+
'<Item>', '<control>N', nil, ifactory_cb],
|
33
|
+
['/File/_Open',
|
34
|
+
'<Item>', '<control>O', nil, ifactory_cb],
|
35
|
+
['/File/_Save',
|
36
|
+
'<Item>', '<control>S', nil, ifactory_cb],
|
37
|
+
['/File/Save _As...',
|
38
|
+
'<Item>', nil, nil, ifactory_cb],
|
39
|
+
['/File/sep1', '<Separator>'],
|
40
|
+
['/File/_Quit',
|
41
|
+
'<Item>', '<control>Q', nil, ifactory_cb],
|
42
|
+
|
43
|
+
['/_Preferences'],
|
44
|
+
['/_Preferences/_Color'],
|
45
|
+
[ '/_Preferences/Color/_Red',
|
46
|
+
'<RadioItem>', nil, nil, ifactory_cb],
|
47
|
+
['/_Preferences/Color/_Green',
|
48
|
+
'/Preferences/Color/Red', nil, nil, ifactory_cb],
|
49
|
+
['/_Preferences/Color/_Blue',
|
50
|
+
'/Preferences/Color/Red', nil, nil, ifactory_cb],
|
51
|
+
['/_Preferences/_Shape'],
|
52
|
+
['/_Preferences/Shape/_Square',
|
53
|
+
'<RadioItem>', nil, nil, ifactory_cb],
|
54
|
+
[ '/_Preferences/Shape/_Rectangle',
|
55
|
+
'/Preferences/Shape/Square', nil, nil, ifactory_cb],
|
56
|
+
[ '/_Preferences/Shape/_Oval',
|
57
|
+
'/Preferences/Shape/Rectangle', nil, nil, ifactory_cb],
|
58
|
+
|
59
|
+
[ '/_Help', '<LastBranch>'],
|
60
|
+
[ '/Help/_About', '<Item>', nil, nil, ifactory_cb],
|
61
|
+
]
|
62
|
+
item_factory.create_items(menu_items)
|
63
|
+
|
64
|
+
item_factory.get_item('/Preferences/Shape/Oval').set_active(true)
|
65
|
+
|
66
|
+
box1 = Gtk::VBox.new(false, 0)
|
67
|
+
add(box1)
|
68
|
+
|
69
|
+
box1.pack_start(item_factory.get_widget('<main>'), :expand => false, :fill => false, :padding => 0)
|
70
|
+
|
71
|
+
label = Gtk::Label.new("Type\n<alt>\nto start")
|
72
|
+
label.set_size_request(200, 200)
|
73
|
+
label.set_alignment(0.5, 0.5)
|
74
|
+
box1.pack_start(label, :expand => true, :fill => true, :padding => 0)
|
75
|
+
|
76
|
+
separator = Gtk::HSeparator.new
|
77
|
+
box1.pack_start(separator)
|
78
|
+
|
79
|
+
|
80
|
+
box2 = Gtk::VBox.new(false, 10)
|
81
|
+
box2.set_border_width(10)
|
82
|
+
box1.pack_start(box2, :expand => false, :fill => true, :padding => 0)
|
83
|
+
|
84
|
+
button = Gtk::Button.new('close')
|
85
|
+
# TODO: Need signal_connect_swapped?
|
86
|
+
button.signal_connect('clicked') do
|
87
|
+
quit
|
88
|
+
end
|
89
|
+
box2.pack_start(button, :expand => true, :fill => true, :padding => 0)
|
90
|
+
button.set_flags(Gtk::Widget::CAN_DEFAULT)
|
91
|
+
button.grab_default
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# Copyright (c) 2013 Ruby-GNOME2 Project Team
|
2
|
+
# This program is licenced under the same licence as Ruby-GNOME2.
|
3
|
+
#
|
4
|
+
=begin
|
5
|
+
= Links
|
6
|
+
|
7
|
+
GtkLabel can show hyperlinks. The default action is to call gtk_show_uri() on their URI, but it is possible to override this with a custom handler.
|
8
|
+
=end
|
9
|
+
require 'common'
|
10
|
+
|
11
|
+
module Demo
|
12
|
+
class Links < BasicWindow
|
13
|
+
def initialize
|
14
|
+
super('Links')
|
15
|
+
|
16
|
+
title = 'Links'
|
17
|
+
border_width = 12
|
18
|
+
signal_connect(:destroy) {self.destroy}
|
19
|
+
|
20
|
+
label = Gtk::Label.new "Some <a href=\"http://en.wikipedia.org/wiki/Text\"" +
|
21
|
+
"title=\"plain text\">text</a> may be marked up\n" +
|
22
|
+
"as hyperlinks, which can be clicked\n" +
|
23
|
+
"or activated via <a href=\"keynav\">keynav</a>\n" +
|
24
|
+
"and they work fine with other markup, like when\n" +
|
25
|
+
"searching on <a href=\"http://www.google.com/\">" +
|
26
|
+
"<span color=\"#0266C8\">G</span><span color=\"#F90101\">o</span>" +
|
27
|
+
"<span color=\"#F2B50F\">o</span><span color=\"#0266C8\">g</span>" +
|
28
|
+
"<span color=\"#00933B\">l</span><span color=\"#F90101\">e</span>" +
|
29
|
+
"</a>."
|
30
|
+
label.use_markup = true
|
31
|
+
label.signal_connect(:activate_link) {|widget, uri| activate_link uri}
|
32
|
+
add label
|
33
|
+
label.show
|
34
|
+
end
|
35
|
+
|
36
|
+
def activate_link uri
|
37
|
+
if uri == 'keynav'
|
38
|
+
dialog = Gtk::MessageDialog.new :parent => self,
|
39
|
+
:flags => :destroy_with_parent,
|
40
|
+
:type => :info,
|
41
|
+
:buttons_type => :ok
|
42
|
+
|
43
|
+
dialog.markup = "The term <i>keynav</i> is a shorthand for " +
|
44
|
+
"keyboard navigation and refers to the process of using " +
|
45
|
+
"a program (exclusively) via keyboard input."
|
46
|
+
dialog.present
|
47
|
+
dialog.signal_connect(:response) {dialog.destroy}
|
48
|
+
return true
|
49
|
+
end
|
50
|
+
false
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,138 @@
|
|
1
|
+
# Copyright (c) 2003-2005 Ruby-GNOME2 Project Team
|
2
|
+
# This program is licenced under the same licence as Ruby-GNOME2.
|
3
|
+
#
|
4
|
+
# $Id: list_store.rb,v 1.5 2005/02/06 18:25:13 kzys Exp $
|
5
|
+
=begin
|
6
|
+
= Tree View/List Store
|
7
|
+
|
8
|
+
The Gtk::ListStore is used to store data in list form, to be used
|
9
|
+
later on by a Gtk::TreeView to display it. This demo builds a
|
10
|
+
simple Gtk::ListStore and displays it. See the Stock Browser
|
11
|
+
demo for a more advanced example.
|
12
|
+
=end
|
13
|
+
require 'common'
|
14
|
+
|
15
|
+
module Demo
|
16
|
+
class ListStore < BasicWindow
|
17
|
+
Bug = Struct.new('Bug', :fixed, :number, :severity, :description)
|
18
|
+
COLUMN_FIXED, COLUMN_NUMBER, COLUMN_SEVERITY, COLUMN_DESCRIPTION,
|
19
|
+
NUM_COLUMNS = *(0..5).to_a
|
20
|
+
DATA = [
|
21
|
+
[ false, 60482, 'Normal', 'scrollable notebooks and hidden tabs' ],
|
22
|
+
[ false, 60620, 'Critical', 'gdk_window_clear_area (gdkwindow-win32.c) is not thread-safe' ],
|
23
|
+
[ false, 50214, 'Major', 'Xft support does not clean up correctly' ],
|
24
|
+
[ true, 52877, 'Major', 'GtkFileSelection needs a refresh method. ' ],
|
25
|
+
[ false, 56070, 'Normal', "Can't click button after setting in sensitive" ],
|
26
|
+
[ true, 56355, 'Normal', 'GtkLabel - Not all changes propagate correctly' ],
|
27
|
+
[ false, 50055, 'Normal', 'Rework width/height computations for TreeView' ],
|
28
|
+
[ false, 58278, 'Normal', "gtk_dialog_set_response_sensitive doesn't work" ],
|
29
|
+
[ false, 55767, 'Normal', 'Getters for all setters' ],
|
30
|
+
[ false, 56925, 'Normal', 'Gtkcalender size' ],
|
31
|
+
[ false, 56221, 'Normal', 'Selectable label needs right-click copy menu' ],
|
32
|
+
[ true, 50939, 'Normal', 'Add shift clicking to GtkTextView' ],
|
33
|
+
[ false, 6112, 'Enhancement','netscape-like collapsable toolbars' ],
|
34
|
+
[ false, 1, 'Normal', 'First bug :=)' ],
|
35
|
+
].collect do |ary|
|
36
|
+
Bug.new(*ary)
|
37
|
+
end
|
38
|
+
def initialize
|
39
|
+
super('GtkListStore demo')
|
40
|
+
self.border_width = 8
|
41
|
+
|
42
|
+
vbox = Gtk::VBox.new(false, 8)
|
43
|
+
add(vbox)
|
44
|
+
|
45
|
+
label = Gtk::Label.new('This is the bug list (note: not based on real data, it would be nice to have a nice ODBC interface to bugzilla or so, though).')
|
46
|
+
vbox.pack_start(label, :expand => false, :fill => false, :padding => 0)
|
47
|
+
|
48
|
+
sw = Gtk::ScrolledWindow.new(nil, nil)
|
49
|
+
sw.shadow_type = Gtk::SHADOW_ETCHED_IN
|
50
|
+
sw.set_policy(Gtk::POLICY_NEVER, :automatic)
|
51
|
+
vbox.pack_start(sw, :expand => true, :fill => true, :padding => 0)
|
52
|
+
|
53
|
+
# create tree model
|
54
|
+
model = create_model
|
55
|
+
|
56
|
+
# create tree view
|
57
|
+
treeview = Gtk::TreeView.new(model)
|
58
|
+
treeview.rules_hint = true
|
59
|
+
treeview.search_column = COLUMN_DESCRIPTION
|
60
|
+
|
61
|
+
sw.add(treeview)
|
62
|
+
|
63
|
+
# add columns to the tree view
|
64
|
+
add_columns(treeview)
|
65
|
+
|
66
|
+
set_default_size(280, 250)
|
67
|
+
end
|
68
|
+
|
69
|
+
def create_model
|
70
|
+
# create list store
|
71
|
+
store = Gtk::ListStore.new(TrueClass, Integer, String, String)
|
72
|
+
|
73
|
+
# add data to the list store
|
74
|
+
DATA.each do |bug|
|
75
|
+
iter = store.append
|
76
|
+
bug.each_with_index do |value, index|
|
77
|
+
iter[index] = value
|
78
|
+
end
|
79
|
+
end
|
80
|
+
return store
|
81
|
+
end
|
82
|
+
|
83
|
+
def add_columns(treeview)
|
84
|
+
# column for fixed toggles
|
85
|
+
renderer = Gtk::CellRendererToggle.new
|
86
|
+
renderer.signal_connect('toggled') do |cell, path|
|
87
|
+
fixed_toggled(treeview.model, path)
|
88
|
+
end
|
89
|
+
|
90
|
+
column = Gtk::TreeViewColumn.new('Fixed?',
|
91
|
+
renderer,
|
92
|
+
'active' => COLUMN_FIXED)
|
93
|
+
|
94
|
+
# set this column to a fixed sizing (of 50 pixels)
|
95
|
+
column.sizing = Gtk::TreeViewColumn::FIXED
|
96
|
+
column.fixed_width = 50
|
97
|
+
treeview.append_column(column)
|
98
|
+
|
99
|
+
# column for bug numbers
|
100
|
+
renderer = Gtk::CellRendererText.new
|
101
|
+
column = Gtk::TreeViewColumn.new('Bug number',
|
102
|
+
renderer,
|
103
|
+
'text' => COLUMN_NUMBER)
|
104
|
+
column.set_sort_column_id(COLUMN_NUMBER)
|
105
|
+
treeview.append_column(column)
|
106
|
+
|
107
|
+
# column for severities
|
108
|
+
renderer = Gtk::CellRendererText.new
|
109
|
+
column = Gtk::TreeViewColumn.new('Severity',
|
110
|
+
renderer,
|
111
|
+
'text' => COLUMN_SEVERITY)
|
112
|
+
column.set_sort_column_id(COLUMN_SEVERITY)
|
113
|
+
treeview.append_column(column)
|
114
|
+
|
115
|
+
# column for description
|
116
|
+
renderer = Gtk::CellRendererText.new
|
117
|
+
column = Gtk::TreeViewColumn.new('Description',
|
118
|
+
renderer,
|
119
|
+
'text' => COLUMN_DESCRIPTION)
|
120
|
+
column.set_sort_column_id(COLUMN_DESCRIPTION)
|
121
|
+
treeview.append_column(column)
|
122
|
+
end
|
123
|
+
|
124
|
+
def fixed_toggled(model, path_str)
|
125
|
+
path = Gtk::TreePath.new(path_str)
|
126
|
+
|
127
|
+
# get toggled iter
|
128
|
+
iter = model.get_iter(path)
|
129
|
+
fixed =iter[COLUMN_FIXED]
|
130
|
+
|
131
|
+
# do something with the value
|
132
|
+
fixed ^= 1
|
133
|
+
|
134
|
+
# set new value
|
135
|
+
iter[COLUMN_FIXED] = fixed
|
136
|
+
end
|
137
|
+
end
|
138
|
+
end
|