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,268 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2004,2005 Masao Mutoh
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
+ * MA 02110-1301 USA
20
+ */
21
+
22
+ #include "rbgtk3private.h"
23
+
24
+ #define RG_TARGET_NAMESPACE cIconTheme
25
+ #define _SELF(i) RVAL2GTKICONTHEME(i)
26
+
27
+ static VALUE
28
+ rg_initialize(VALUE self)
29
+ {
30
+ G_INITIALIZE(self, gtk_icon_theme_new());
31
+ return Qnil;
32
+ }
33
+
34
+ static VALUE
35
+ rg_s_default(G_GNUC_UNUSED VALUE self)
36
+ {
37
+ return GOBJ2RVAL(gtk_icon_theme_get_default());
38
+ }
39
+
40
+ static VALUE
41
+ rg_s_get_for_screen(G_GNUC_UNUSED VALUE self, VALUE screen)
42
+ {
43
+ return GOBJ2RVAL(gtk_icon_theme_get_for_screen(RVAL2GDKSCREEN(screen)));
44
+ }
45
+
46
+ static VALUE
47
+ rg_set_screen(VALUE self, VALUE screen)
48
+ {
49
+ gtk_icon_theme_set_screen(_SELF(self), RVAL2GDKSCREEN(screen));
50
+ return self;
51
+ }
52
+
53
+ static VALUE
54
+ rg_set_search_path(VALUE self, VALUE rbpath)
55
+ {
56
+ GtkIconTheme *theme = _SELF(self);
57
+ long n;
58
+ const gchar **path = RVAL2STRS(rbpath, n);
59
+
60
+ gtk_icon_theme_set_search_path(theme, path, n);
61
+
62
+ g_free(path);
63
+
64
+ return self;
65
+ }
66
+
67
+ static VALUE
68
+ rg_search_path(VALUE self)
69
+ {
70
+ gchar **path;
71
+
72
+ gtk_icon_theme_get_search_path(_SELF(self), &path, NULL);
73
+
74
+ return STRV2RVAL_FREE(path);
75
+ }
76
+
77
+ static VALUE
78
+ rg_append_search_path(VALUE self, VALUE path)
79
+ {
80
+ gtk_icon_theme_append_search_path(_SELF(self), RVAL2CSTR(path));
81
+ return self;
82
+ }
83
+
84
+ static VALUE
85
+ rg_prepend_search_path(VALUE self, VALUE path)
86
+ {
87
+ gtk_icon_theme_prepend_search_path(_SELF(self), RVAL2CSTR(path));
88
+ return self;
89
+ }
90
+
91
+ static VALUE
92
+ rg_set_custom_theme(VALUE self, VALUE theme_name)
93
+ {
94
+ gtk_icon_theme_set_custom_theme(_SELF(self),
95
+ RVAL2CSTR_ACCEPT_NIL(theme_name));
96
+ return self;
97
+ }
98
+
99
+ static VALUE
100
+ rg_has_icon_p(VALUE self, VALUE icon_name)
101
+ {
102
+ return CBOOL2RVAL(gtk_icon_theme_has_icon(_SELF(self),
103
+ RVAL2CSTR(icon_name)));
104
+ }
105
+
106
+ static VALUE
107
+ rg_lookup_icon(VALUE self, VALUE icon, VALUE size, VALUE flags)
108
+ {
109
+ GtkIconInfo* info;
110
+
111
+ if (TYPE(icon) == T_STRING) {
112
+ info = gtk_icon_theme_lookup_icon(_SELF(self),
113
+ RVAL2CSTR(icon),
114
+ NUM2INT(size),
115
+ RVAL2GTKICONLOOKUPFLAGS(flags));
116
+ } else {
117
+ info = gtk_icon_theme_lookup_by_gicon(_SELF(self),
118
+ RVAL2GICON(icon),
119
+ NUM2INT(size),
120
+ RVAL2GTKICONLOOKUPFLAGS(flags));
121
+ }
122
+
123
+ /* TODO: need gtk_icon_info_free? */
124
+ return GTKICONINFO2RVAL(info);
125
+ }
126
+
127
+ static VALUE
128
+ rg_load_icon(VALUE self, VALUE icon_name, VALUE size, VALUE flags)
129
+ {
130
+ GError *error = NULL;
131
+ GdkPixbuf *pixbuf;
132
+
133
+ pixbuf = gtk_icon_theme_load_icon(_SELF(self),
134
+ RVAL2CSTR(icon_name),
135
+ NUM2INT(size),
136
+ RVAL2GTKICONLOOKUPFLAGS(flags),
137
+ &error);
138
+ if (!pixbuf)
139
+ RAISE_GERROR(error);
140
+ return GOBJ2RVAL(pixbuf);
141
+ }
142
+
143
+ static VALUE
144
+ rg_icons(int argc, VALUE *argv, VALUE self)
145
+ {
146
+ VALUE context;
147
+ GList *icons;
148
+
149
+ rb_scan_args(argc, argv, "01", &context);
150
+
151
+ icons = gtk_icon_theme_list_icons(_SELF(self),
152
+ RVAL2CSTR_ACCEPT_NIL(context));
153
+ return CSTRGLIST2RVAL_FREE(icons, g_list_free, g_free);
154
+ }
155
+
156
+ static VALUE
157
+ rg_get_icon_sizes(VALUE self, VALUE icon_name)
158
+ {
159
+ VALUE ary = rb_ary_new();
160
+
161
+ gint* sizes = gtk_icon_theme_get_icon_sizes(_SELF(self), RVAL2CSTR(icon_name));
162
+ gint* tmp_sizes = sizes;
163
+ while (*tmp_sizes) {
164
+ rb_ary_push(ary, INT2NUM(*tmp_sizes));
165
+ tmp_sizes++;
166
+ }
167
+ g_free(sizes);
168
+ return ary;
169
+ }
170
+
171
+ static VALUE
172
+ rg_example_icon_name(VALUE self)
173
+ {
174
+ return CSTR2RVAL_FREE(gtk_icon_theme_get_example_icon_name(_SELF(self)));
175
+ }
176
+
177
+ static VALUE
178
+ rg_rescan_if_needed(VALUE self)
179
+ {
180
+ return CBOOL2RVAL(gtk_icon_theme_rescan_if_needed(_SELF(self)));
181
+ }
182
+
183
+ static VALUE
184
+ rg_s_add_builtin_icon(VALUE self, VALUE icon_name, VALUE size, VALUE pixbuf)
185
+ {
186
+ gtk_icon_theme_add_builtin_icon(RVAL2CSTR(icon_name), NUM2INT(size),
187
+ RVAL2GDKPIXBUF(pixbuf));
188
+ return self;
189
+ }
190
+
191
+ static VALUE
192
+ rg_choose_icon(int argc, VALUE *argv, VALUE self)
193
+ {
194
+ VALUE rb_icon_names, rb_size, rb_flags;
195
+ gint size;
196
+ const gchar **icon_names;
197
+ GtkIconLookupFlags flags;
198
+ GtkIconInfo *info;
199
+
200
+ rb_scan_args(argc, argv, "21", &rb_icon_names, &rb_size, &rb_flags);
201
+
202
+ if (RVAL2CBOOL(rb_obj_is_kind_of(rb_icon_names, rb_cString))) {
203
+ icon_names = ALLOCA_N(const gchar *, 2);
204
+ icon_names[0] = RVAL2CSTR(rb_icon_names);
205
+ icon_names[1] = NULL;
206
+ }
207
+ else if (RVAL2CBOOL(rb_obj_is_kind_of(rb_icon_names, rb_cArray))) {
208
+ icon_names = RVAL2STRV(rb_icon_names);
209
+ }
210
+ else {
211
+ rb_raise(rb_eArgError,
212
+ "expected (name, size), (name, size, flags), "
213
+ "([name1, name2, ...], size) or "
214
+ "([name1, name2, ...], size, flags): %s",
215
+ RBG_INSPECT(rb_ary_new4(argc, argv)));
216
+ }
217
+
218
+ size = NUM2INT(rb_size);
219
+
220
+ if (NIL_P(rb_flags)) {
221
+ flags = GTK_ICON_LOOKUP_GENERIC_FALLBACK;
222
+ }
223
+ else {
224
+ flags = RVAL2GTKICONLOOKUPFLAGS(rb_flags);
225
+ }
226
+
227
+ info = gtk_icon_theme_choose_icon(_SELF(self),
228
+ icon_names,
229
+ size, flags);
230
+ return GTKICONINFO2RVAL(info);
231
+ }
232
+
233
+ static VALUE
234
+ rg_contexts(VALUE self)
235
+ {
236
+ return CSTRGLIST2RVAL_FREE(gtk_icon_theme_list_contexts(_SELF(self)),
237
+ g_list_free, g_free);
238
+ }
239
+
240
+ void
241
+ Init_gtk_icon_theme(VALUE mGtk)
242
+ {
243
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_ICON_THEME, "IconTheme", mGtk);
244
+
245
+ RG_DEF_METHOD(initialize, 0);
246
+ RG_DEF_SMETHOD(default, 0);
247
+ RG_DEF_SMETHOD(get_for_screen, 1);
248
+ RG_DEF_METHOD(set_screen, 1);
249
+ RG_DEF_METHOD(set_search_path, 1);
250
+ RG_DEF_METHOD(search_path, 0);
251
+ RG_DEF_METHOD(append_search_path, 1);
252
+ RG_DEF_METHOD(prepend_search_path, 1);
253
+ RG_DEF_METHOD(set_custom_theme, 1);
254
+ RG_DEF_METHOD_P(has_icon, 1);
255
+ RG_DEF_METHOD(lookup_icon, 3);
256
+ RG_DEF_METHOD(load_icon, 3);
257
+ RG_DEF_METHOD(icons, -1);
258
+ RG_DEF_METHOD(get_icon_sizes, 1);
259
+ RG_DEF_METHOD(example_icon_name, 0);
260
+ RG_DEF_METHOD(rescan_if_needed, 0);
261
+ RG_DEF_SMETHOD(add_builtin_icon, 3);
262
+ RG_DEF_METHOD(choose_icon, -1);
263
+ RG_DEF_METHOD(contexts, 0);
264
+
265
+ G_DEF_ERROR(GTK_ICON_THEME_ERROR, "IconThemeError", mGtk, rb_eRuntimeError,
266
+ GTK_TYPE_ICON_THEME_ERROR);
267
+ G_DEF_CLASS(GTK_TYPE_ICON_LOOKUP_FLAGS, "LookupFlags", RG_TARGET_NAMESPACE);
268
+ }
@@ -0,0 +1,295 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011-2014 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2005 Masao Mutoh
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
+ * MA 02110-1301 USA
20
+ */
21
+
22
+ #include "rbgtk3private.h"
23
+
24
+ #define RG_TARGET_NAMESPACE cIconView
25
+ #define _SELF(s) (RVAL2GTKICONVIEW(s))
26
+
27
+ static ID id_model;
28
+ static ID id_select_path;
29
+
30
+ static VALUE
31
+ rg_initialize(int argc, VALUE *argv, VALUE self)
32
+ {
33
+ VALUE model;
34
+ rb_scan_args(argc, argv, "01", &model);
35
+ if (NIL_P(model)){
36
+ RBGTK_INITIALIZE(self, gtk_icon_view_new());
37
+ } else {
38
+ G_CHILD_SET(self, id_model, model);
39
+ RBGTK_INITIALIZE(self,
40
+ gtk_icon_view_new_with_model(RVAL2GTKTREEMODEL(model)));
41
+ }
42
+ return Qnil;
43
+ }
44
+
45
+ static VALUE
46
+ rg_get_path_at_pos(VALUE self, VALUE x, VALUE y)
47
+ {
48
+ return GTKTREEPATH2RVAL(gtk_icon_view_get_path_at_pos(_SELF(self), NUM2INT(x), NUM2INT(y)));
49
+ }
50
+
51
+ static void
52
+ iview_foreach_func(GtkIconView *iview, GtkTreePath *path, gpointer *func)
53
+ {
54
+ rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(iview), GTKTREEPATH2RVAL(path));
55
+ }
56
+
57
+ static VALUE
58
+ rg_selected_each(VALUE self)
59
+ {
60
+ VALUE func = rb_block_proc();
61
+ G_RELATIVE(self, func);
62
+ gtk_icon_view_selected_foreach(_SELF(self),
63
+ (GtkIconViewForeachFunc)iview_foreach_func,
64
+ (gpointer)func);
65
+ return self;
66
+ }
67
+
68
+ #if GTK_CHECK_VERSION(3, 6, 0)
69
+ static VALUE
70
+ rg_get_cell_rect(int argc, VALUE *argv, VALUE self)
71
+ {
72
+ VALUE path, cell;
73
+ GdkRectangle rectangle;
74
+ gboolean found;
75
+
76
+ rb_scan_args(argc, argv, "11", &path, &cell);
77
+
78
+ found = gtk_icon_view_get_cell_rect(_SELF(self),
79
+ RVAL2GTKTREEPATH(path),
80
+ RVAL2GTKCELLRENDERER(cell),
81
+ &rectangle);
82
+ if (!found) {
83
+ return Qnil;
84
+ }
85
+
86
+ return GDKRECTANGLE2RVAL(&rectangle);
87
+ }
88
+ #endif
89
+
90
+ static VALUE
91
+ rg_select_path(VALUE self, VALUE path)
92
+ {
93
+ G_CHILD_SET(self, id_select_path, path);
94
+ gtk_icon_view_select_path(_SELF(self), RVAL2GTKTREEPATH(path));
95
+ return self;
96
+ }
97
+
98
+ static VALUE
99
+ rg_unselect_path(VALUE self, VALUE path)
100
+ {
101
+ G_CHILD_UNSET(self, id_select_path);
102
+ gtk_icon_view_unselect_path(_SELF(self), RVAL2GTKTREEPATH(path));
103
+ return self;
104
+ }
105
+
106
+ static VALUE
107
+ rg_path_is_selected_p(VALUE self, VALUE path)
108
+ {
109
+ return CBOOL2RVAL(gtk_icon_view_path_is_selected(_SELF(self), RVAL2GTKTREEPATH(path)));
110
+ }
111
+
112
+ static VALUE
113
+ rg_selected_items(VALUE self)
114
+ {
115
+ GList* list = gtk_icon_view_get_selected_items(_SELF(self));
116
+ VALUE ret = BOXEDGLIST2RVAL(list, GTK_TYPE_TREE_PATH);
117
+ g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL);
118
+ g_list_free(list);
119
+ return ret;
120
+ }
121
+
122
+ static VALUE
123
+ rg_item_activated(VALUE self, VALUE path)
124
+ {
125
+ gtk_icon_view_item_activated(_SELF(self), RVAL2GTKTREEPATH(path));
126
+ return self;
127
+ }
128
+
129
+ static VALUE
130
+ rg_create_drag_icon(VALUE self, VALUE path)
131
+ {
132
+ return GOBJ2RVAL(gtk_icon_view_create_drag_icon(_SELF(self), RVAL2GTKTREEPATH(path)));
133
+ }
134
+
135
+ static VALUE
136
+ rg_enable_model_drag_dest(VALUE self, VALUE rbtargets, VALUE rbactions)
137
+ {
138
+ GtkIconView *icon_view = _SELF(self);
139
+ GdkDragAction actions = RVAL2GDKDRAGACTION(rbactions);
140
+ long n;
141
+ GtkTargetEntry *targets = RVAL2GTKTARGETENTRIES(rbtargets, &n);
142
+
143
+ gtk_icon_view_enable_model_drag_dest(icon_view, targets, n, actions);
144
+
145
+ g_free(targets);
146
+
147
+ return self;
148
+ }
149
+
150
+ static VALUE
151
+ rg_enable_model_drag_source(VALUE self, VALUE rbstart_button_mask, VALUE rbtargets, VALUE rbactions)
152
+ {
153
+ GtkIconView *icon_view = _SELF(self);
154
+ GdkModifierType start_button_mask = RVAL2GDKMODIFIERTYPE(rbstart_button_mask);
155
+ GdkDragAction actions = RVAL2GDKDRAGACTION(rbactions);
156
+ long n;
157
+ GtkTargetEntry *targets = RVAL2GTKTARGETENTRIES(rbtargets, &n);
158
+
159
+ gtk_icon_view_enable_model_drag_source(icon_view, start_button_mask, targets, n, actions);
160
+
161
+ g_free(targets);
162
+
163
+ return self;
164
+ }
165
+
166
+ static VALUE
167
+ rg_cursor(VALUE self)
168
+ {
169
+ GtkTreePath* path;
170
+ GtkCellRenderer* cell;
171
+ gboolean cursor_set = gtk_icon_view_get_cursor(_SELF(self), &path, &cell);
172
+ return cursor_set ? rb_assoc_new(GTKTREEPATH2RVAL(path), GOBJ2RVAL(cell)) : Qnil;
173
+ }
174
+
175
+ static VALUE
176
+ rg_get_dest_item(VALUE self, VALUE drag_x, VALUE drag_y)
177
+ {
178
+ GtkTreePath* path;
179
+ GtkIconViewDropPosition pos;
180
+ gboolean item_at_pos = gtk_icon_view_get_dest_item_at_pos(_SELF(self), NUM2INT(drag_x), NUM2INT(drag_y), &path, &pos);
181
+ return item_at_pos ? rb_assoc_new(GTKTREEPATH2RVAL(path),
182
+ GTKICONVIEWDROPPOSITION2RVAL(pos)) : Qnil;
183
+ }
184
+
185
+ static VALUE
186
+ rg_drag_dest_item(VALUE self)
187
+ {
188
+ GtkTreePath* path;
189
+ GtkIconViewDropPosition pos;
190
+ gtk_icon_view_get_drag_dest_item(_SELF(self), &path, &pos);
191
+ return rb_assoc_new(GTKTREEPATH2RVAL(path),
192
+ GTKICONVIEWDROPPOSITION2RVAL(pos));
193
+ }
194
+
195
+ static VALUE
196
+ rg_get_item(VALUE self, VALUE x, VALUE y)
197
+ {
198
+ GtkTreePath* path;
199
+ GtkCellRenderer* cell;
200
+ gboolean item_at_pos = gtk_icon_view_get_item_at_pos(_SELF(self), NUM2INT(x), NUM2INT(y), &path, &cell);
201
+ return item_at_pos ? rb_assoc_new(GTKTREEPATH2RVAL(path), GOBJ2RVAL(cell)) : Qnil;
202
+ }
203
+
204
+ static VALUE
205
+ rg_visible_range(VALUE self)
206
+ {
207
+ GtkTreePath* start_path;
208
+ GtkTreePath* end_path;
209
+
210
+ gboolean valid_paths = gtk_icon_view_get_visible_range(_SELF(self), &start_path, &end_path);
211
+
212
+ return valid_paths ? rb_assoc_new(GTKTREEPATH2RVAL(start_path),
213
+ GTKTREEPATH2RVAL(end_path)) : Qnil;
214
+ }
215
+
216
+ static VALUE
217
+ rg_scroll_to_path(VALUE self, VALUE path, VALUE use_align, VALUE row_align, VALUE col_align)
218
+ {
219
+ gtk_icon_view_scroll_to_path(_SELF(self),
220
+ RVAL2GTKTREEPATH(path),
221
+ RVAL2CBOOL(use_align),
222
+ NUM2DBL(row_align),
223
+ NUM2DBL(col_align));
224
+ return self;
225
+ }
226
+
227
+ static VALUE
228
+ rg_set_cursor(VALUE self, VALUE path, VALUE cell, VALUE start_editing)
229
+ {
230
+ gtk_icon_view_set_cursor(_SELF(self),
231
+ RVAL2GTKTREEPATH(path),
232
+ NIL_P(cell) ? NULL : RVAL2GTKCELLRENDERER(cell),
233
+ RVAL2CBOOL(start_editing));
234
+ return self;
235
+ }
236
+
237
+ static VALUE
238
+ rg_set_drag_dest_item(VALUE self, VALUE path, VALUE pos)
239
+ {
240
+ gtk_icon_view_set_drag_dest_item(_SELF(self),
241
+ NIL_P(path) ? NULL : RVAL2GTKTREEPATH(path),
242
+ RVAL2GTKICONVIEWDROPPOSITION(pos));
243
+ return self;
244
+ }
245
+
246
+ static VALUE
247
+ rg_unset_model_drag_dest(VALUE self)
248
+ {
249
+ gtk_icon_view_unset_model_drag_dest(_SELF(self));
250
+ return self;
251
+ }
252
+
253
+ static VALUE
254
+ rg_unset_model_drag_source(VALUE self)
255
+ {
256
+ gtk_icon_view_unset_model_drag_source(_SELF(self));
257
+ return self;
258
+ }
259
+
260
+ void
261
+ Init_gtk_iconview(VALUE mGtk)
262
+ {
263
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_ICON_VIEW, "IconView", mGtk);
264
+
265
+ id_model = rb_intern("model");
266
+ id_select_path = rb_intern("select_path");
267
+
268
+ RG_DEF_METHOD(initialize, -1);
269
+ RG_DEF_METHOD(get_path_at_pos, 2);
270
+ RG_DEF_ALIAS("get_path", "get_path_at_pos");
271
+ RG_DEF_METHOD(selected_each, 0);
272
+ #if GTK_CHECK_VERSION(3, 6, 0)
273
+ RG_DEF_METHOD(get_cell_rect, -1);
274
+ #endif
275
+ RG_DEF_METHOD(select_path, 1);
276
+ RG_DEF_METHOD(unselect_path, 1);
277
+ RG_DEF_METHOD_P(path_is_selected, 1);
278
+ RG_DEF_METHOD(selected_items, 0);
279
+ RG_DEF_METHOD(item_activated, 1);
280
+ RG_DEF_METHOD(create_drag_icon, 1);
281
+ RG_DEF_METHOD(enable_model_drag_dest, 2);
282
+ RG_DEF_METHOD(enable_model_drag_source, 3);
283
+ RG_DEF_METHOD(cursor, 0);
284
+ RG_DEF_METHOD(get_dest_item, 2);
285
+ RG_DEF_METHOD(drag_dest_item, 0);
286
+ RG_DEF_METHOD(get_item, 2);
287
+ RG_DEF_METHOD(visible_range, 0);
288
+ RG_DEF_METHOD(scroll_to_path, 4);
289
+ RG_DEF_METHOD(set_cursor, 3);
290
+ RG_DEF_METHOD(set_drag_dest_item, 2);
291
+ RG_DEF_METHOD(unset_model_drag_dest, 0);
292
+ RG_DEF_METHOD(unset_model_drag_source, 0);
293
+
294
+ G_DEF_CLASS(GTK_TYPE_ICON_VIEW_DROP_POSITION, "Type", RG_TARGET_NAMESPACE);
295
+ }