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.
Files changed (457) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +20 -0
  3. data/ext/gtk3/conversions.c +34 -0
  4. data/ext/gtk3/depend +11 -0
  5. data/ext/gtk3/extconf.rb +99 -0
  6. data/ext/gtk3/gtk3.def +10 -0
  7. data/ext/gtk3/init.c +34 -0
  8. data/ext/gtk3/rbgtk-about-dialog.c +113 -0
  9. data/ext/gtk3/rbgtk-accel-group-entry.c +94 -0
  10. data/ext/gtk3/rbgtk-accel-group.c +199 -0
  11. data/ext/gtk3/rbgtk-accel-key.c +120 -0
  12. data/ext/gtk3/rbgtk-accel-label.c +55 -0
  13. data/ext/gtk3/rbgtk-accel-map.c +135 -0
  14. data/ext/gtk3/rbgtk-accelerator.c +78 -0
  15. data/ext/gtk3/rbgtk-accessible.c +40 -0
  16. data/ext/gtk3/rbgtk-action-bar.c +73 -0
  17. data/ext/gtk3/rbgtk-action-group.c +467 -0
  18. data/ext/gtk3/rbgtk-action.c +205 -0
  19. data/ext/gtk3/rbgtk-activatable.c +30 -0
  20. data/ext/gtk3/rbgtk-adjustment.c +98 -0
  21. data/ext/gtk3/rbgtk-alignment.c +75 -0
  22. data/ext/gtk3/rbgtk-allocation.c +166 -0
  23. data/ext/gtk3/rbgtk-app-chooser-button.c +70 -0
  24. data/ext/gtk3/rbgtk-app-chooser-dialog.c +68 -0
  25. data/ext/gtk3/rbgtk-app-chooser-widget.c +40 -0
  26. data/ext/gtk3/rbgtk-app-chooser.c +47 -0
  27. data/ext/gtk3/rbgtk-application.c +69 -0
  28. data/ext/gtk3/rbgtk-arrow.c +56 -0
  29. data/ext/gtk3/rbgtk-aspect-frame.c +56 -0
  30. data/ext/gtk3/rbgtk-assistant.c +218 -0
  31. data/ext/gtk3/rbgtk-bin.c +42 -0
  32. data/ext/gtk3/rbgtk-binding-set.c +154 -0
  33. data/ext/gtk3/rbgtk-border.c +119 -0
  34. data/ext/gtk3/rbgtk-box.c +146 -0
  35. data/ext/gtk3/rbgtk-buildable.c +96 -0
  36. data/ext/gtk3/rbgtk-builder.c +166 -0
  37. data/ext/gtk3/rbgtk-button-box.c +87 -0
  38. data/ext/gtk3/rbgtk-button.c +93 -0
  39. data/ext/gtk3/rbgtk-calendar.c +118 -0
  40. data/ext/gtk3/rbgtk-cell-editable.c +57 -0
  41. data/ext/gtk3/rbgtk-cell-layout.c +144 -0
  42. data/ext/gtk3/rbgtk-cell-renderer-accel.c +41 -0
  43. data/ext/gtk3/rbgtk-cell-renderer-combo.c +38 -0
  44. data/ext/gtk3/rbgtk-cell-renderer-pixbuf.c +41 -0
  45. data/ext/gtk3/rbgtk-cell-renderer-progress.c +38 -0
  46. data/ext/gtk3/rbgtk-cell-renderer-spin.c +39 -0
  47. data/ext/gtk3/rbgtk-cell-renderer-spinner.c +38 -0
  48. data/ext/gtk3/rbgtk-cell-renderer-text.c +48 -0
  49. data/ext/gtk3/rbgtk-cell-renderer-toggle.c +39 -0
  50. data/ext/gtk3/rbgtk-cell-renderer.c +119 -0
  51. data/ext/gtk3/rbgtk-cell-view.c +95 -0
  52. data/ext/gtk3/rbgtk-check-button.c +64 -0
  53. data/ext/gtk3/rbgtk-check-menu-item.c +64 -0
  54. data/ext/gtk3/rbgtk-clip-board.c +389 -0
  55. data/ext/gtk3/rbgtk-color-button.c +55 -0
  56. data/ext/gtk3/rbgtk-color-selection-dialog.c +56 -0
  57. data/ext/gtk3/rbgtk-color-selection.c +219 -0
  58. data/ext/gtk3/rbgtk-combo-box-text.c +138 -0
  59. data/ext/gtk3/rbgtk-combo-box.c +147 -0
  60. data/ext/gtk3/rbgtk-const.c +79 -0
  61. data/ext/gtk3/rbgtk-container.c +788 -0
  62. data/ext/gtk3/rbgtk-css-provider.c +110 -0
  63. data/ext/gtk3/rbgtk-dialog.c +206 -0
  64. data/ext/gtk3/rbgtk-drag-gdk-drag-context.c +108 -0
  65. data/ext/gtk3/rbgtk-drag.c +93 -0
  66. data/ext/gtk3/rbgtk-drawing-area.c +42 -0
  67. data/ext/gtk3/rbgtk-editable.c +149 -0
  68. data/ext/gtk3/rbgtk-entry-buffer.c +87 -0
  69. data/ext/gtk3/rbgtk-entry-completion.c +122 -0
  70. data/ext/gtk3/rbgtk-entry.c +184 -0
  71. data/ext/gtk3/rbgtk-event-box.c +42 -0
  72. data/ext/gtk3/rbgtk-expander.c +49 -0
  73. data/ext/gtk3/rbgtk-file-chooser-button.c +50 -0
  74. data/ext/gtk3/rbgtk-file-chooser-dialog.c +62 -0
  75. data/ext/gtk3/rbgtk-file-chooser-widget.c +40 -0
  76. data/ext/gtk3/rbgtk-file-chooser.c +381 -0
  77. data/ext/gtk3/rbgtk-file-filter.c +128 -0
  78. data/ext/gtk3/rbgtk-file-system-error.c +48 -0
  79. data/ext/gtk3/rbgtk-fixed.c +61 -0
  80. data/ext/gtk3/rbgtk-font-button.c +49 -0
  81. data/ext/gtk3/rbgtk-font-chooser-dialog.c +56 -0
  82. data/ext/gtk3/rbgtk-font-chooser-widget.c +45 -0
  83. data/ext/gtk3/rbgtk-font-chooser.c +78 -0
  84. data/ext/gtk3/rbgtk-frame.c +69 -0
  85. data/ext/gtk3/rbgtk-gdk-event.c +38 -0
  86. data/ext/gtk3/rbgtk-grid.c +105 -0
  87. data/ext/gtk3/rbgtk-handle-box.c +45 -0
  88. data/ext/gtk3/rbgtk-header-bar.c +58 -0
  89. data/ext/gtk3/rbgtk-hsv.c +102 -0
  90. data/ext/gtk3/rbgtk-icon-factory.c +85 -0
  91. data/ext/gtk3/rbgtk-icon-info.c +115 -0
  92. data/ext/gtk3/rbgtk-icon-set.c +84 -0
  93. data/ext/gtk3/rbgtk-icon-size.c +91 -0
  94. data/ext/gtk3/rbgtk-icon-source.c +184 -0
  95. data/ext/gtk3/rbgtk-icon-theme.c +268 -0
  96. data/ext/gtk3/rbgtk-icon-view.c +295 -0
  97. data/ext/gtk3/rbgtk-im-multicontext.c +48 -0
  98. data/ext/gtk3/rbgtk-image-menu-item.c +67 -0
  99. data/ext/gtk3/rbgtk-image.c +162 -0
  100. data/ext/gtk3/rbgtk-imcon-text-simple.c +69 -0
  101. data/ext/gtk3/rbgtk-imcon-text.c +133 -0
  102. data/ext/gtk3/rbgtk-infobar.c +121 -0
  103. data/ext/gtk3/rbgtk-invisible.c +49 -0
  104. data/ext/gtk3/rbgtk-label.c +139 -0
  105. data/ext/gtk3/rbgtk-layout.c +93 -0
  106. data/ext/gtk3/rbgtk-level-bar.c +88 -0
  107. data/ext/gtk3/rbgtk-link-button.c +49 -0
  108. data/ext/gtk3/rbgtk-list-store.c +399 -0
  109. data/ext/gtk3/rbgtk-lock-button.c +50 -0
  110. data/ext/gtk3/rbgtk-menu-button.c +41 -0
  111. data/ext/gtk3/rbgtk-menu-item.c +95 -0
  112. data/ext/gtk3/rbgtk-menu-shell.c +106 -0
  113. data/ext/gtk3/rbgtk-menu-tool-button.c +81 -0
  114. data/ext/gtk3/rbgtk-menu.c +168 -0
  115. data/ext/gtk3/rbgtk-menubar.c +43 -0
  116. data/ext/gtk3/rbgtk-message-dialog.c +74 -0
  117. data/ext/gtk3/rbgtk-misc.c +70 -0
  118. data/ext/gtk3/rbgtk-notebook.c +383 -0
  119. data/ext/gtk3/rbgtk-numerable-icon.c +50 -0
  120. data/ext/gtk3/rbgtk-orientable.c +27 -0
  121. data/ext/gtk3/rbgtk-overlay.c +53 -0
  122. data/ext/gtk3/rbgtk-page-setup-unix-dialog.c +94 -0
  123. data/ext/gtk3/rbgtk-page-setup.c +195 -0
  124. data/ext/gtk3/rbgtk-paned.c +114 -0
  125. data/ext/gtk3/rbgtk-paper-size.c +179 -0
  126. data/ext/gtk3/rbgtk-plug.c +85 -0
  127. data/ext/gtk3/rbgtk-print-context.c +125 -0
  128. data/ext/gtk3/rbgtk-print-job.c +148 -0
  129. data/ext/gtk3/rbgtk-print-operation-preview.c +59 -0
  130. data/ext/gtk3/rbgtk-print-operation.c +149 -0
  131. data/ext/gtk3/rbgtk-print-settings.c +807 -0
  132. data/ext/gtk3/rbgtk-print-unix-dialog.c +90 -0
  133. data/ext/gtk3/rbgtk-printer.c +155 -0
  134. data/ext/gtk3/rbgtk-progress-bar.c +72 -0
  135. data/ext/gtk3/rbgtk-radio-action.c +122 -0
  136. data/ext/gtk3/rbgtk-radio-button.c +89 -0
  137. data/ext/gtk3/rbgtk-radio-menu-item.c +147 -0
  138. data/ext/gtk3/rbgtk-radio-tool-button.c +131 -0
  139. data/ext/gtk3/rbgtk-range.c +68 -0
  140. data/ext/gtk3/rbgtk-recent-action.c +64 -0
  141. data/ext/gtk3/rbgtk-recent-chooser-dialog.c +66 -0
  142. data/ext/gtk3/rbgtk-recent-chooser-menu.c +50 -0
  143. data/ext/gtk3/rbgtk-recent-chooser-widget.c +48 -0
  144. data/ext/gtk3/rbgtk-recent-chooser.c +198 -0
  145. data/ext/gtk3/rbgtk-recent-data.c +188 -0
  146. data/ext/gtk3/rbgtk-recent-filter-info.c +201 -0
  147. data/ext/gtk3/rbgtk-recent-filter.c +169 -0
  148. data/ext/gtk3/rbgtk-recent-info.c +213 -0
  149. data/ext/gtk3/rbgtk-recent-manager.c +134 -0
  150. data/ext/gtk3/rbgtk-revealer.c +42 -0
  151. data/ext/gtk3/rbgtk-scale-button.c +84 -0
  152. data/ext/gtk3/rbgtk-scale.c +97 -0
  153. data/ext/gtk3/rbgtk-scrollable.c +31 -0
  154. data/ext/gtk3/rbgtk-scrollbar.c +52 -0
  155. data/ext/gtk3/rbgtk-scrolled-window.c +122 -0
  156. data/ext/gtk3/rbgtk-search-bar.c +59 -0
  157. data/ext/gtk3/rbgtk-search-entry.c +42 -0
  158. data/ext/gtk3/rbgtk-selection-data.c +281 -0
  159. data/ext/gtk3/rbgtk-selection.c +168 -0
  160. data/ext/gtk3/rbgtk-separator-menu-item.c +39 -0
  161. data/ext/gtk3/rbgtk-separator-tool-item.c +38 -0
  162. data/ext/gtk3/rbgtk-separator.c +44 -0
  163. data/ext/gtk3/rbgtk-settings.c +229 -0
  164. data/ext/gtk3/rbgtk-size-group.c +66 -0
  165. data/ext/gtk3/rbgtk-socket.c +82 -0
  166. data/ext/gtk3/rbgtk-spin-button.c +132 -0
  167. data/ext/gtk3/rbgtk-spinner.c +55 -0
  168. data/ext/gtk3/rbgtk-stack-switcher.c +41 -0
  169. data/ext/gtk3/rbgtk-stack.c +106 -0
  170. data/ext/gtk3/rbgtk-status-bar.c +77 -0
  171. data/ext/gtk3/rbgtk-status-icon.c +122 -0
  172. data/ext/gtk3/rbgtk-stock.c +213 -0
  173. data/ext/gtk3/rbgtk-style-context-gdk-screen.c +61 -0
  174. data/ext/gtk3/rbgtk-style-context.c +411 -0
  175. data/ext/gtk3/rbgtk-style-properties.c +118 -0
  176. data/ext/gtk3/rbgtk-style-provider.c +67 -0
  177. data/ext/gtk3/rbgtk-switch.c +40 -0
  178. data/ext/gtk3/rbgtk-table.c +190 -0
  179. data/ext/gtk3/rbgtk-target-list.c +125 -0
  180. data/ext/gtk3/rbgtk-tearoff-menu-item.c +41 -0
  181. data/ext/gtk3/rbgtk-text-appearance.c +236 -0
  182. data/ext/gtk3/rbgtk-text-attributes.c +326 -0
  183. data/ext/gtk3/rbgtk-text-buffer.c +899 -0
  184. data/ext/gtk3/rbgtk-text-child-anchor.c +56 -0
  185. data/ext/gtk3/rbgtk-text-iter.c +732 -0
  186. data/ext/gtk3/rbgtk-text-mark.c +71 -0
  187. data/ext/gtk3/rbgtk-text-tag-table.c +96 -0
  188. data/ext/gtk3/rbgtk-text-tag.c +68 -0
  189. data/ext/gtk3/rbgtk-text-view.c +336 -0
  190. data/ext/gtk3/rbgtk-theming-engine.c +257 -0
  191. data/ext/gtk3/rbgtk-toggle-action.c +61 -0
  192. data/ext/gtk3/rbgtk-toggle-button.c +87 -0
  193. data/ext/gtk3/rbgtk-toggle-tool-button.c +61 -0
  194. data/ext/gtk3/rbgtk-tool-button.c +66 -0
  195. data/ext/gtk3/rbgtk-tool-item.c +200 -0
  196. data/ext/gtk3/rbgtk-tool-itemgroup.c +70 -0
  197. data/ext/gtk3/rbgtk-tool-shell.c +96 -0
  198. data/ext/gtk3/rbgtk-toolbar.c +118 -0
  199. data/ext/gtk3/rbgtk-tooltip-gdk-display.c +39 -0
  200. data/ext/gtk3/rbgtk-tooltip.c +100 -0
  201. data/ext/gtk3/rbgtk-tree-dragdest.c +28 -0
  202. data/ext/gtk3/rbgtk-tree-dragsource.c +28 -0
  203. data/ext/gtk3/rbgtk-tree-iter.c +258 -0
  204. data/ext/gtk3/rbgtk-tree-model.c +246 -0
  205. data/ext/gtk3/rbgtk-tree-modelfilter.c +197 -0
  206. data/ext/gtk3/rbgtk-tree-modelsort.c +111 -0
  207. data/ext/gtk3/rbgtk-tree-path.c +191 -0
  208. data/ext/gtk3/rbgtk-tree-rowreference.c +140 -0
  209. data/ext/gtk3/rbgtk-tree-selection.c +190 -0
  210. data/ext/gtk3/rbgtk-tree-sortable.c +122 -0
  211. data/ext/gtk3/rbgtk-tree-store.c +330 -0
  212. data/ext/gtk3/rbgtk-tree-view-column.c +256 -0
  213. data/ext/gtk3/rbgtk-tree-view.c +716 -0
  214. data/ext/gtk3/rbgtk-ui-manager.c +189 -0
  215. data/ext/gtk3/rbgtk-viewport.c +44 -0
  216. data/ext/gtk3/rbgtk-volume-button.c +41 -0
  217. data/ext/gtk3/rbgtk-widget-path.c +229 -0
  218. data/ext/gtk3/rbgtk-widget.c +1554 -0
  219. data/ext/gtk3/rbgtk-window-group.c +80 -0
  220. data/ext/gtk3/rbgtk-window.c +565 -0
  221. data/ext/gtk3/rbgtk.c +783 -0
  222. data/ext/gtk3/rbgtk3.h +90 -0
  223. data/ext/gtk3/rbgtk3conversions.h +439 -0
  224. data/ext/gtk3/rbgtk3private.h +300 -0
  225. data/ext/gtk3/rbgtk3util.c +67 -0
  226. data/ext/gtk3/rbgtk3util.h +32 -0
  227. data/extconf.rb +49 -0
  228. data/lib/2.0/gtk3.so +0 -0
  229. data/lib/2.1/gtk3.so +0 -0
  230. data/lib/2.2/gtk3.so +0 -0
  231. data/lib/gtk3.rb +11 -0
  232. data/lib/gtk3/base.rb +67 -0
  233. data/lib/gtk3/deprecated.rb +1004 -0
  234. data/sample/gtk-demo/README +7 -0
  235. data/sample/gtk-demo/alphatest.png +0 -0
  236. data/sample/gtk-demo/apple-red.png +0 -0
  237. data/sample/gtk-demo/appwindow.rb +233 -0
  238. data/sample/gtk-demo/background.jpg +0 -0
  239. data/sample/gtk-demo/builder.rb +51 -0
  240. data/sample/gtk-demo/button_box.rb +83 -0
  241. data/sample/gtk-demo/cairo-arc-negative.rb +41 -0
  242. data/sample/gtk-demo/cairo-arc.rb +41 -0
  243. data/sample/gtk-demo/cairo-clip-image.rb +51 -0
  244. data/sample/gtk-demo/cairo-clip-rectangle.rb +35 -0
  245. data/sample/gtk-demo/cairo-clip.rb +35 -0
  246. data/sample/gtk-demo/cairo-curve-rectangle.rb +76 -0
  247. data/sample/gtk-demo/cairo-curve-to.rb +43 -0
  248. data/sample/gtk-demo/cairo-dash.rb +39 -0
  249. data/sample/gtk-demo/cairo-fill-and-stroke.rb +32 -0
  250. data/sample/gtk-demo/cairo-fill-and-stroke2.rb +38 -0
  251. data/sample/gtk-demo/cairo-gradient.rb +35 -0
  252. data/sample/gtk-demo/cairo-image-pattern.rb +39 -0
  253. data/sample/gtk-demo/cairo-image.rb +49 -0
  254. data/sample/gtk-demo/cairo-line-cap.rb +53 -0
  255. data/sample/gtk-demo/cairo-line-join.rb +41 -0
  256. data/sample/gtk-demo/cairo-long-lines.rb +41 -0
  257. data/sample/gtk-demo/cairo-operator.rb +83 -0
  258. data/sample/gtk-demo/cairo-path.rb +28 -0
  259. data/sample/gtk-demo/cairo-pattern-fill.rb +88 -0
  260. data/sample/gtk-demo/cairo-self-intersect.rb +32 -0
  261. data/sample/gtk-demo/cairo-text-align-center.rb +45 -0
  262. data/sample/gtk-demo/cairo-text-extents.rb +46 -0
  263. data/sample/gtk-demo/cairo-text.rb +43 -0
  264. data/sample/gtk-demo/changedisplay.rb +407 -0
  265. data/sample/gtk-demo/clipboard.rb +67 -0
  266. data/sample/gtk-demo/colorsel.rb +82 -0
  267. data/sample/gtk-demo/common.rb +87 -0
  268. data/sample/gtk-demo/css_accordion.css +53 -0
  269. data/sample/gtk-demo/css_accordion.rb +75 -0
  270. data/sample/gtk-demo/demo.ui +258 -0
  271. data/sample/gtk-demo/dialog.rb +137 -0
  272. data/sample/gtk-demo/drawingarea.rb +205 -0
  273. data/sample/gtk-demo/editable_cells.rb +173 -0
  274. data/sample/gtk-demo/entry_completion.rb +63 -0
  275. data/sample/gtk-demo/expander.rb +42 -0
  276. data/sample/gtk-demo/floppybuddy.gif +0 -0
  277. data/sample/gtk-demo/gnome-applets.png +0 -0
  278. data/sample/gtk-demo/gnome-calendar.png +0 -0
  279. data/sample/gtk-demo/gnome-foot.png +0 -0
  280. data/sample/gtk-demo/gnome-fs-directory.png +0 -0
  281. data/sample/gtk-demo/gnome-fs-regular.png +0 -0
  282. data/sample/gtk-demo/gnome-gimp.png +0 -0
  283. data/sample/gtk-demo/gnome-gmush.png +0 -0
  284. data/sample/gtk-demo/gnome-gsame.png +0 -0
  285. data/sample/gtk-demo/gnu-keys.png +0 -0
  286. data/sample/gtk-demo/gtk-logo-rgb.gif +0 -0
  287. data/sample/gtk-demo/hypertext.rb +211 -0
  288. data/sample/gtk-demo/iconview.rb +110 -0
  289. data/sample/gtk-demo/images.rb +197 -0
  290. data/sample/gtk-demo/infobar.rb +78 -0
  291. data/sample/gtk-demo/item_factory.rb +94 -0
  292. data/sample/gtk-demo/links.rb +53 -0
  293. data/sample/gtk-demo/list_store.rb +138 -0
  294. data/sample/gtk-demo/main.rb +384 -0
  295. data/sample/gtk-demo/menus.rb +172 -0
  296. data/sample/gtk-demo/panes.rb +156 -0
  297. data/sample/gtk-demo/pixbufs.rb +167 -0
  298. data/sample/gtk-demo/printing.rb +128 -0
  299. data/sample/gtk-demo/reset.css +69 -0
  300. data/sample/gtk-demo/rotated_text.rb +72 -0
  301. data/sample/gtk-demo/ruby-gnome2-logo.png +0 -0
  302. data/sample/gtk-demo/sizegroup.rb +118 -0
  303. data/sample/gtk-demo/spinner.rb +59 -0
  304. data/sample/gtk-demo/stock_browser.rb +233 -0
  305. data/sample/gtk-demo/textview.rb +436 -0
  306. data/sample/gtk-demo/theming.ui +319 -0
  307. data/sample/gtk-demo/theming_style_classes.rb +48 -0
  308. data/sample/gtk-demo/tree_store.rb +270 -0
  309. data/sample/misc/aboutdialog.rb +42 -0
  310. data/sample/misc/aboutdialog2.rb +42 -0
  311. data/sample/misc/alpha-demo.rb +70 -0
  312. data/sample/misc/assistant.rb +281 -0
  313. data/sample/misc/bindings.rb +97 -0
  314. data/sample/misc/button.rb +72 -0
  315. data/sample/misc/button2.rb +28 -0
  316. data/sample/misc/buttonbox.rb +93 -0
  317. data/sample/misc/cairo-pong.rb +217 -0
  318. data/sample/misc/calendar.rb +66 -0
  319. data/sample/misc/checkbutton.rb +49 -0
  320. data/sample/misc/colorselection.rb +22 -0
  321. data/sample/misc/combo_check.rb +79 -0
  322. data/sample/misc/combobox.rb +85 -0
  323. data/sample/misc/composited-windows.rb +113 -0
  324. data/sample/misc/cursor.rb +34 -0
  325. data/sample/misc/dialog.rb +44 -0
  326. data/sample/misc/dialog2.rb +36 -0
  327. data/sample/misc/dnd.rb +64 -0
  328. data/sample/misc/dndtreeview.rb +56 -0
  329. data/sample/misc/drag-move.rb +139 -0
  330. data/sample/misc/drawing.rb +109 -0
  331. data/sample/misc/entry.rb +34 -0
  332. data/sample/misc/entrycompletion.rb +33 -0
  333. data/sample/misc/expander.rb +27 -0
  334. data/sample/misc/filechooser.rb +41 -0
  335. data/sample/misc/frame.rb +69 -0
  336. data/sample/misc/gdkscreen.rb +32 -0
  337. data/sample/misc/gnome-logo-icon.png +0 -0
  338. data/sample/misc/helloworld.rb +35 -0
  339. data/sample/misc/iconview.rb +38 -0
  340. data/sample/misc/image.rb +42 -0
  341. data/sample/misc/itemfactory.rb +73 -0
  342. data/sample/misc/itemfactory2.rb +74 -0
  343. data/sample/misc/keyboard_grab.rb +29 -0
  344. data/sample/misc/label.rb +33 -0
  345. data/sample/misc/linkbutton.rb +42 -0
  346. data/sample/misc/listview.rb +92 -0
  347. data/sample/misc/menu.rb +81 -0
  348. data/sample/misc/misc_button.rb +49 -0
  349. data/sample/misc/mouse-gesture.rb +465 -0
  350. data/sample/misc/pangorenderer.rb +66 -0
  351. data/sample/misc/pointer_grab.rb +34 -0
  352. data/sample/misc/print.rb +247 -0
  353. data/sample/misc/properties.rb +86 -0
  354. data/sample/misc/radiobutton.rb +47 -0
  355. data/sample/misc/recentchooserdialog.rb +52 -0
  356. data/sample/misc/rgtk+cairo.rb +42 -0
  357. data/sample/misc/scalebutton.rb +19 -0
  358. data/sample/misc/settings.rb +41 -0
  359. data/sample/misc/statusicon.rb +106 -0
  360. data/sample/misc/stock.rb +36 -0
  361. data/sample/misc/style_property.rb +67 -0
  362. data/sample/misc/style_property.rc +19 -0
  363. data/sample/misc/t-gtkplug.rb +58 -0
  364. data/sample/misc/t-gtksocket.rb +65 -0
  365. data/sample/misc/test.xpm +92 -0
  366. data/sample/misc/textbuffer_serialize.rb +130 -0
  367. data/sample/misc/threads.rb +70 -0
  368. data/sample/misc/to_drawable.rb +42 -0
  369. data/sample/misc/togglebutton.rb +34 -0
  370. data/sample/misc/toolbar.rb +55 -0
  371. data/sample/misc/tooltips.rb +204 -0
  372. data/sample/misc/tree_combo.rb +79 -0
  373. data/sample/misc/tree_progress.rb +61 -0
  374. data/sample/misc/treemodelfilter.rb +49 -0
  375. data/sample/misc/treeview.rb +71 -0
  376. data/sample/misc/uimanager.rb +148 -0
  377. data/sample/misc/uimanager2.rb +91 -0
  378. data/sample/misc/uimanager2.xml +36 -0
  379. data/sample/misc/window.rb +24 -0
  380. data/sample/misc/xbm_cursor.rb +43 -0
  381. data/sample/testgtk/3DRings.xpm +116 -0
  382. data/sample/testgtk/FilesQueue.xpm +98 -0
  383. data/sample/testgtk/Modeller.xpm +117 -0
  384. data/sample/testgtk/README +14 -0
  385. data/sample/testgtk/button.rb +124 -0
  386. data/sample/testgtk/buttonbox.rb +100 -0
  387. data/sample/testgtk/check-n.xpm +21 -0
  388. data/sample/testgtk/check-y.xpm +21 -0
  389. data/sample/testgtk/checkbutton.rb +67 -0
  390. data/sample/testgtk/circles.xbm +46 -0
  391. data/sample/testgtk/colorselect.rb +33 -0
  392. data/sample/testgtk/dialog.rb +48 -0
  393. data/sample/testgtk/entry.rb +73 -0
  394. data/sample/testgtk/filesel.rb +65 -0
  395. data/sample/testgtk/fontselection.rb +56 -0
  396. data/sample/testgtk/labels.rb +74 -0
  397. data/sample/testgtk/layout.rb +108 -0
  398. data/sample/testgtk/marble.xpm +408 -0
  399. data/sample/testgtk/menu.rb +79 -0
  400. data/sample/testgtk/notebook.rb +280 -0
  401. data/sample/testgtk/pixmap.rb +58 -0
  402. data/sample/testgtk/progressbar.rb +173 -0
  403. data/sample/testgtk/radiobutton.rb +61 -0
  404. data/sample/testgtk/range.rb +65 -0
  405. data/sample/testgtk/reparent.rb +91 -0
  406. data/sample/testgtk/sample.rb +80 -0
  407. data/sample/testgtk/savedposition.rb +87 -0
  408. data/sample/testgtk/scrolledwindow.rb +67 -0
  409. data/sample/testgtk/shapedwindow.rb +99 -0
  410. data/sample/testgtk/spinbutton.rb +181 -0
  411. data/sample/testgtk/statusbar.rb +89 -0
  412. data/sample/testgtk/test.xpm +92 -0
  413. data/sample/testgtk/testgtk.rb +176 -0
  414. data/sample/testgtk/testgtkrc +146 -0
  415. data/sample/testgtk/testgtkrc2 +21 -0
  416. data/sample/testgtk/togglebutton.rb +53 -0
  417. data/sample/testgtk/toolbar.rb +82 -0
  418. data/sample/testgtk/tooltips.rb +41 -0
  419. data/sample/testgtk/wmhints.rb +40 -0
  420. data/test/gtk-test-utils.rb +15 -0
  421. data/test/run-test.rb +58 -0
  422. data/test/test_gc.rb +22 -0
  423. data/test/test_gtk.rb +23 -0
  424. data/test/test_gtk_about_dialog.rb +13 -0
  425. data/test/test_gtk_accel_group_entry.rb +24 -0
  426. data/test/test_gtk_accel_key.rb +24 -0
  427. data/test/test_gtk_accessible.rb +31 -0
  428. data/test/test_gtk_action_group.rb +46 -0
  429. data/test/test_gtk_allocation.rb +24 -0
  430. data/test/test_gtk_border.rb +24 -0
  431. data/test/test_gtk_buildable.rb +56 -0
  432. data/test/test_gtk_builder.rb +166 -0
  433. data/test/test_gtk_container.rb +32 -0
  434. data/test/test_gtk_css_provider.rb +27 -0
  435. data/test/test_gtk_entry.rb +52 -0
  436. data/test/test_gtk_header_bar.rb +66 -0
  437. data/test/test_gtk_icon_theme.rb +31 -0
  438. data/test/test_gtk_icon_view.rb +41 -0
  439. data/test/test_gtk_image.rb +8 -0
  440. data/test/test_gtk_level_bar.rb +82 -0
  441. data/test/test_gtk_list_store.rb +105 -0
  442. data/test/test_gtk_menu_button.rb +49 -0
  443. data/test/test_gtk_menu_item.rb +13 -0
  444. data/test/test_gtk_recent_data.rb +24 -0
  445. data/test/test_gtk_recent_filter_info.rb +26 -0
  446. data/test/test_gtk_revealer.rb +57 -0
  447. data/test/test_gtk_search_bar.rb +55 -0
  448. data/test/test_gtk_search_entry.rb +34 -0
  449. data/test/test_gtk_stack.rb +115 -0
  450. data/test/test_gtk_stack_switcher.rb +30 -0
  451. data/test/test_gtk_style_context.rb +30 -0
  452. data/test/test_gtk_style_properties.rb +38 -0
  453. data/test/test_gtk_tree_path.rb +20 -0
  454. data/test/test_gtk_tree_selection.rb +31 -0
  455. data/test/test_gtk_unix_print.rb +14 -0
  456. data/test/test_gtk_widget.rb +24 -0
  457. metadata +582 -0
@@ -0,0 +1,69 @@
1
+ /* @import this colorsheet to get the default values for every property.
2
+ * This is useful when writing special CSS tests that should not be
3
+ * inluenced by themes - not even the default ones.
4
+ * Keep in mind that the output will be very ugly and not look like
5
+ * anything GTK.
6
+ * Also, when adding new style properties, please add them here.
7
+ */
8
+
9
+ * {
10
+ color: inherit;
11
+ font-size: inherit;
12
+ background-color: initial;
13
+ font-family: inherit;
14
+ font-style: inherit;
15
+ font-variant: inherit;
16
+ font-weight: inherit;
17
+ text-shadow: inherit;
18
+ icon-shadow: inherit;
19
+ box-shadow: initial;
20
+ margin-top: initial;
21
+ margin-left: initial;
22
+ margin-bottom: initial;
23
+ margin-right: initial;
24
+ padding-top: initial;
25
+ padding-left: initial;
26
+ padding-bottom: initial;
27
+ padding-right: initial;
28
+ border-top-style: initial;
29
+ border-top-width: initial;
30
+ border-left-style: initial;
31
+ border-left-width: initial;
32
+ border-bottom-style: initial;
33
+ border-bottom-width: initial;
34
+ border-right-style: initial;
35
+ border-right-width: initial;
36
+ border-top-left-radius: initial;
37
+ border-top-right-radius: initial;
38
+ border-bottom-right-radius: initial;
39
+ border-bottom-left-radius: initial;
40
+ outline-style: initial;
41
+ outline-width: initial;
42
+ outline-offset: initial;
43
+ background-clip: initial;
44
+ background-origin: initial;
45
+ background-size: initial;
46
+ background-position: initial;
47
+ border-top-color: initial;
48
+ border-right-color: initial;
49
+ border-bottom-color: initial;
50
+ border-left-color: initial;
51
+ outline-color: initial;
52
+ background-repeat: initial;
53
+ background-image: initial;
54
+ border-image-source: initial;
55
+ border-image-repeat: initial;
56
+ border-image-slice: initial;
57
+ border-image-width: initial;
58
+ transition-property: initial;
59
+ transition-duration: initial;
60
+ transition-timing-function: initial;
61
+ transition-delay: initial;
62
+ engine: initial;
63
+ gtk-key-bindings: initial;
64
+
65
+ -GtkWidget-focus-line-width: 0;
66
+ -GtkWidget-focus-padding: 0;
67
+ -GtkNotebook-initial-gap: 0;
68
+ }
69
+
@@ -0,0 +1,72 @@
1
+ # Copyright (c) 2005-2014 Ruby-GNOME2 Project Team
2
+ # This program is licenced under the same licence as Ruby-GNOME2.
3
+ #
4
+ # $Id: rotated_text.rb,v 1.2 2005/03/05 15:01:16 mutoh Exp $
5
+ =begin
6
+ = Rotated Text
7
+
8
+ This demo shows how to use Cairo and Pango to draw rotated and transformed text.
9
+ =end
10
+ require "common"
11
+
12
+ module Demo
13
+ class RotatedText < BasicWindow
14
+ RADIUS = 150
15
+ N_WORDS = 10
16
+ FONT = "Sans Bold 27"
17
+
18
+ def initialize
19
+ super("Rotated Text")
20
+
21
+ drawing_area = Gtk::DrawingArea.new
22
+ add(drawing_area)
23
+ drawing_area.override_background_color(:normal, Gdk::RGBA.new(1.0,
24
+ 1.0,
25
+ 1.0,
26
+ 0.0))
27
+
28
+ drawing_area.signal_connect("draw") do |_drawing_area, cairo_context|
29
+ cairo_context.set_source_rgb(1.0, 1.0, 1.0)
30
+ cairo_context.paint
31
+ cairo_context.save do
32
+ width, height = size
33
+ cairo_context.scale(width.to_f / (RADIUS * 2),
34
+ height.to_f / (RADIUS * 2))
35
+ draw_text(cairo_context)
36
+ end
37
+ end
38
+ end
39
+
40
+ private
41
+ def draw_text(cairo_context)
42
+ # Center coordinates on the middle of the region we are drawing
43
+ cairo_context.translate(RADIUS, RADIUS)
44
+
45
+ # Create a PangoLayout, set the font and text
46
+ layout = cairo_context.create_pango_layout
47
+
48
+ layout.text = "Text"
49
+ layout.font_description = Pango::FontDescription.new(FONT)
50
+
51
+ # Draw the layout N_WORDS times in a circle
52
+ N_WORDS.times do |i|
53
+ angle = (360.0 * i) / N_WORDS
54
+
55
+ cairo_context.save do
56
+ # Gradient from red at angle == 60 to blue at angle == 240
57
+ red = (1 + Math.cos((angle - 60) * Math::PI / 180.0)) / 2
58
+ cairo_context.set_source_rgb(red, 0.0, 1.0 - red)
59
+
60
+ cairo_context.rotate(angle * Math::PI / 180.0)
61
+
62
+ # Inform Pango to re-layout the text with the new transformation
63
+ cairo_context.update_pango_layout(layout)
64
+
65
+ width, height = layout.size
66
+ cairo_context.move_to(-(width / Pango::SCALE) / 2, -RADIUS)
67
+ cairo_context.show_pango_layout(layout)
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
@@ -0,0 +1,118 @@
1
+ # Copyright (c) 2003-2005 Ruby-GNOME2 Project Team
2
+ # This program is licenced under the same licence as Ruby-GNOME2.
3
+ #
4
+ # $Id: sizegroup.rb,v 1.5 2005/02/12 23:02:43 kzys Exp $
5
+ =begin
6
+ = Size Groups
7
+
8
+ Gtk::SizeGroup provides a mechanism for grouping a number of
9
+ widgets together so they all request the same amount of space.
10
+ This is typically useful when you want a column of widgets to
11
+ have the same size, but you can't use a Gtk::Table widget.
12
+
13
+ Note that size groups only affect the amount of space requested,
14
+ not the size that the widgets finally receive. If you want the
15
+ widgets in a Gtk::SizeGroup to actually be the same size, you need
16
+ to pack them in such a way that they get the size they request
17
+ and not more. For example, if you are packing your widgets
18
+ into a table, you would not include the Gtk::FILL flag.
19
+ =end
20
+ require 'common'
21
+
22
+ module Demo
23
+ class SizeGroup < Gtk::Dialog
24
+ def initialize
25
+ super('GtkSizeGroup', nil, 0,
26
+ [Gtk::Stock::CLOSE, Gtk::Dialog::RESPONSE_NONE])
27
+
28
+ color_options = %w(Red Green Blue)
29
+ dash_options = %w(Solid Dashed Dotted)
30
+ end_options = %w(Square Round Arrow)
31
+
32
+ set_resizable(false)
33
+
34
+ signal_connect('response') do
35
+ destroy
36
+ end
37
+
38
+ vbox = Gtk::VBox.new(false, 5)
39
+ self.vbox.pack_start(vbox, :expand => true, :fill => true, :padding => 0)
40
+ vbox.set_border_width(5)
41
+
42
+ size_group = Gtk::SizeGroup.new(Gtk::SizeGroup::HORIZONTAL)
43
+
44
+ ## Create one frame holding color options
45
+ frame = Gtk::Frame.new('Color Options')
46
+ vbox.pack_start(frame, :expand => true, :fill => true, :padding => 0)
47
+
48
+ table = Gtk::Table.new(2, 2, false)
49
+ table.set_border_width(5)
50
+ table.set_row_spacings(5)
51
+ table.set_column_spacings(10)
52
+ frame.add(table)
53
+
54
+ add_row(table, 0, size_group, '_Foreground', color_options)
55
+ add_row(table, 1, size_group, '_Background', color_options)
56
+
57
+ ## And another frame holding line style options
58
+ frame = Gtk::Frame.new('Line Options')
59
+ vbox.pack_start(frame, :expand => false, :fill => false, :padding => 0)
60
+
61
+ table = Gtk::Table.new(2, 2, false)
62
+ table.set_border_width(5)
63
+ table.set_row_spacings(5)
64
+ table.set_column_spacings(10)
65
+ frame.add(table)
66
+
67
+ add_row(table, 0, size_group, '_Dashing', dash_options)
68
+ add_row(table, 1, size_group, '_Line ends', end_options)
69
+
70
+ # And a check button to turn grouping on and off
71
+ check_button = Gtk::CheckButton.new('_Enable grouping', true)
72
+ vbox.pack_start(check_button, :expand => false, :fill => false, :padding => 0)
73
+
74
+ check_button.set_active(true)
75
+ check_button.signal_connect('toggled', size_group) do |check_button, size_group|
76
+ new_mode = if check_button.active?
77
+ Gtk::SizeGroup::HORIZONTAL
78
+ else
79
+ Gtk::SizeGroup::VERTICAL
80
+ end
81
+ size_group.set_mode(new_mode)
82
+ end
83
+ end
84
+
85
+ def add_row(table, row, size_group, label_text, options)
86
+ label = Gtk::Label.new(label_text, true)
87
+ label.set_alignment(0, 1)
88
+ table.attach(label,
89
+ 0, 1, row, row + 1,
90
+ Gtk::EXPAND | Gtk::FILL, 0,
91
+ 0, 0)
92
+
93
+ option_menu = create_option_menu(options)
94
+ label.set_mnemonic_widget(option_menu)
95
+ size_group.add_widget(option_menu)
96
+ table.attach(option_menu,
97
+ 1, 2, row, row + 1,
98
+ 0, 0,
99
+ 0, 0)
100
+ end
101
+
102
+ def create_option_menu(strings)
103
+ menu = Gtk::Menu.new
104
+
105
+ strings.each do |str|
106
+ menu_item = Gtk::MenuItem.new(str)
107
+ menu_item.show
108
+
109
+ menu.append(menu_item)
110
+ end
111
+
112
+ option_menu = Gtk::OptionMenu.new
113
+ option_menu.set_menu(menu)
114
+
115
+ return option_menu
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,59 @@
1
+ # Copyright (c) 2013 Ruby-GNOME2 Project Team
2
+ # This program is licenced under the same licence as Ruby-GNOME2.
3
+ #
4
+ =begin
5
+ = Spinner
6
+
7
+ GtkSpinner allows to show that background activity is on-going.
8
+ =end
9
+ require 'common'
10
+
11
+ module Demo
12
+ class Spinner < Gtk::Dialog
13
+ def initialize
14
+ super(:title => 'Spinner',
15
+ :parent => nil,
16
+ :flags => nil,
17
+ :buttons => [[:close, :none]])
18
+
19
+ signal_connect(:response) {self.destroy}
20
+ signal_connect(:destroy) {self.destroy}
21
+
22
+ self.resizable = false
23
+
24
+ vbox = Gtk::Box.new :vertical, 5
25
+
26
+ self.content_area.pack_start vbox, :expand => true, :fill => true, :padding => 0
27
+ vbox.border_width = 5
28
+
29
+ # Sensitive
30
+ hbox = Gtk::Box.new :horizontal, 5
31
+ @spinner_sensitive = Gtk::Spinner.new
32
+ hbox.add @spinner_sensitive
33
+ hbox.add Gtk::Entry.new
34
+ vbox.add hbox
35
+
36
+ # Disabled
37
+ hbox = Gtk::Box.new :horizontal, 5
38
+ @spinner_insensitive = Gtk::Spinner.new
39
+ hbox.add @spinner_insensitive
40
+ hbox.add Gtk::Entry.new
41
+ vbox.add hbox
42
+ hbox.sensitive = false
43
+
44
+ button = Gtk::Button.new :stock_id => :media_play
45
+ button.signal_connect(:clicked) do
46
+ @spinner_sensitive.start
47
+ @spinner_insensitive.start
48
+ end
49
+ vbox.add button
50
+
51
+ button = Gtk::Button.new :stock_id => :media_stop
52
+ button.signal_connect(:clicked) do
53
+ @spinner_sensitive.stop
54
+ @spinner_insensitive.stop
55
+ end
56
+ vbox.add button
57
+ end
58
+ end
59
+ end
@@ -0,0 +1,233 @@
1
+ # Copyright (c) 2003-2005 Ruby-GNOME2 Project Team
2
+ # This program is licenced under the same licence as Ruby-GNOME2.
3
+ #
4
+ # $Id: stock_browser.rb,v 1.5 2005/02/12 23:02:43 kzys Exp $
5
+ =begin
6
+ = Stock Item and Icon Browser
7
+
8
+ This source code for this demo doesn't demonstrate anything
9
+ particularly useful in applications. The purpose of the 'demo' is
10
+ just to provide a handy place to browse the available stock icons
11
+ and stock items.
12
+ =end
13
+ require 'common'
14
+
15
+ module Demo
16
+ class StockBrowser < BasicWindow
17
+ Item = Struct.new('Item',
18
+ :stock_id, :label, :modifier, :keyval, :translation_domain)
19
+ ItemInfo = Struct.new('ItemInfo',
20
+ :id, :item, :small_icon, :const, :accel_str)
21
+ ItemDisplay = Struct.new('ItemDisplay',
22
+ :type_label, :const_label, :id_label, :label_accel_label,
23
+ :icon_image)
24
+
25
+ def initialize
26
+ super('Stock Icons and Items')
27
+ set_default_size(-1, 500)
28
+
29
+ self.border_width = 8
30
+
31
+ hbox = Gtk::Box.new(:horizontal, 8)
32
+ add(hbox)
33
+
34
+ sw = Gtk::ScrolledWindow.new
35
+ sw.set_policy(:never, :automatic)
36
+ hbox.pack_start(sw, :expand => false, :fill => false, :padding => 0)
37
+
38
+ model = create_model
39
+
40
+ treeview = Gtk::TreeView.new(model)
41
+ sw.add(treeview)
42
+
43
+ column = Gtk::TreeViewColumn.new
44
+ column.title = 'Const'
45
+
46
+ cell_renderer = Gtk::CellRendererPixbuf.new
47
+ column.pack_start(cell_renderer, :expand => false)
48
+ column.set_attributes(cell_renderer, "stock_id" => 1)
49
+
50
+ cell_renderer = Gtk::CellRendererText.new
51
+ column.pack_start(cell_renderer, :expand => true)
52
+ column.set_cell_data_func(cell_renderer) do |column, cell, model, iter|
53
+ cell.text = iter[0].const
54
+ end
55
+
56
+ treeview.append_column(column)
57
+
58
+ cell_renderer = Gtk::CellRendererText.new
59
+ treeview.insert_column(-1, 'Label', cell_renderer) do |col, cell, model, iter|
60
+ info = iter[0]
61
+ cell.text = info.item.label if info
62
+ end
63
+
64
+ cell_renderer = Gtk::CellRendererText.new
65
+ treeview.insert_column(-1, 'Accel', cell_renderer) do |col, cell, model, iter|
66
+ info = iter[0]
67
+ cell.text = info.accel_str if info
68
+ end
69
+
70
+ cell_renderer = Gtk::CellRendererText.new
71
+ treeview.insert_column(-1, 'ID', cell_renderer) do |col, cell, model, iter|
72
+ info = iter[0]
73
+ cell.text = info.id if info
74
+ end
75
+
76
+ align = Gtk::Alignment.new(0.5, 0.0, 0.0, 0.0)
77
+ hbox.pack_end(align, :expand => false, :fill => false, :padding => 0)
78
+
79
+ frame = Gtk::Frame.new('Selected Item')
80
+ align.add(frame)
81
+
82
+ vbox = Gtk::Box.new(:vertical, 8)
83
+ vbox.border_width = 4
84
+ frame.add(vbox)
85
+
86
+ display = ItemDisplay.new
87
+ class << treeview
88
+ @display = nil
89
+ attr_accessor :display
90
+ end
91
+ treeview.display = display
92
+
93
+ display.type_label = Gtk::Label.new
94
+ display.const_label = Gtk::Label.new
95
+ display.id_label = Gtk::Label.new
96
+ display.label_accel_label = Gtk::Label.new
97
+ display.icon_image = Gtk::Image.new # empty image
98
+
99
+ vbox.pack_start(display.type_label, :expand => false, :fill => false, :padding => 0)
100
+
101
+ vbox.pack_start(display.icon_image, :expand => false, :fill => false, :padding => 0)
102
+
103
+ vbox.pack_start(display.label_accel_label, :expand => false, :fill => false, :padding => 0)
104
+ vbox.pack_start(display.const_label, :expand => false, :fill => false, :padding => 0)
105
+ vbox.pack_start(display.id_label, :expand => false, :fill => false, :padding => 0)
106
+
107
+ selection = treeview.selection
108
+ selection.mode = :single
109
+
110
+ selection.signal_connect('changed') do |s|
111
+ selection_changed(s)
112
+ end
113
+ end
114
+
115
+ def create_model
116
+ store = Gtk::ListStore.new(ItemInfo, String, String, String)
117
+
118
+ list_ids = Gtk::Stock.ids
119
+ list_ids.sort! do |a, b|
120
+ a.to_s <=> b.to_s
121
+ end
122
+ list_ids.each do |stock_id|
123
+ info = ItemInfo.new
124
+
125
+ info.id = stock_id
126
+
127
+ begin
128
+ info.item = Item.new(*Gtk::Stock.lookup(stock_id))
129
+ rescue ArgumentError
130
+ info.item = Item.new
131
+ end
132
+
133
+ # only show icons for stock IDs that have default icons
134
+ icon_set = Gtk::IconFactory.lookup_default(info.id.to_s)
135
+ if icon_set
136
+ # See what sizes this stock icon really exists at
137
+ sizes = icon_set.sizes
138
+
139
+ # Use menu size if it exists, otherwise first size found
140
+ size = sizes.find do |s| s == :menu end || sizes.first
141
+
142
+ info.small_icon = render_icon_pixbuf(info.id, size)
143
+
144
+ unless size == :menu
145
+ # Make the result the proper size for our thumbnail
146
+ w, h = Gtk::IconSize.lookup(size)
147
+
148
+ scaled = info.small_icon.scale(w, h, Gdk::Pixbuf::INTERP_BILINEAR)
149
+ info.small_icon = scaled
150
+ end
151
+
152
+ else
153
+ info.small_icon = nil
154
+ end
155
+
156
+ if info.item.keyval
157
+ info.accel_str = Gtk::Accelerator.to_name(info.item.keyval,
158
+ info.item.modifier)
159
+ else
160
+ info.accel_str = ''
161
+ end
162
+
163
+ info.const = id_to_const(info.id)
164
+
165
+ iter = store.append
166
+ iter[0] = info
167
+ iter[1] = info.id
168
+ end
169
+
170
+ return store
171
+ end
172
+
173
+ def selection_changed(selection)
174
+ treeview = selection.tree_view
175
+ display = treeview.display
176
+
177
+ iter = selection.selected
178
+ info = iter[0]
179
+
180
+ display.type_label.label = if info.small_icon and info.item.label
181
+ 'Icon and Item'
182
+ elsif info.small_icon
183
+ 'Icon Only'
184
+ elsif info.item.label
185
+ 'Item Only'
186
+ else
187
+ '???????'
188
+ end
189
+ display.const_label.label = info.const
190
+ display.id_label.label = info.id
191
+
192
+ if info.item.label
193
+ str = "%s %s" % [info.item.label, info.accel_str]
194
+ display.label_accel_label.set_text(str, true)
195
+ else
196
+ display.label_accel_label.set_text('')
197
+ end
198
+
199
+ if info.small_icon
200
+ display.icon_image.set_from_stock(info.id, get_largest_size(info.id))
201
+ else
202
+ display.icon_image.pixbuf = nil
203
+ end
204
+ end
205
+
206
+ def get_largest_size(symbol)
207
+ set = Gtk::IconFactory.lookup_default(symbol.id2name)
208
+ best_size = :invalid
209
+ best_pixels = 0
210
+
211
+ sizes = set.sizes
212
+ sizes.collect! do |i|
213
+ width, height = Gtk::IconSize.lookup(i)
214
+ [i, width * height]
215
+ end
216
+ return (sizes.max do |a, b| a[1] <=> b[1] end)[0]
217
+ end
218
+
219
+ def id_to_const(id)
220
+ const = ''
221
+
222
+ s = id.id2name
223
+ if s =~ /^gtk-/
224
+ const += 'Gtk::Stock::'
225
+ s[0,4] = ''
226
+ end
227
+
228
+ const += s.upcase.gsub(/-/, '_')
229
+
230
+ const
231
+ end
232
+ end
233
+ end