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,256 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002-2004 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 cTreeViewColumn
25
+ #define _SELF(s) (RVAL2GTKTREEVIEWCOLUMN(s))
26
+
27
+ static VALUE
28
+ rg_initialize(int argc, VALUE *argv, VALUE self)
29
+ {
30
+ int i;
31
+ int col;
32
+ GtkTreeViewColumn *tvc;
33
+ GtkCellRenderer *renderer;
34
+ const gchar *name;
35
+ VALUE ary, val;
36
+
37
+ tvc = gtk_tree_view_column_new();
38
+ if (argc > 0){
39
+ gtk_tree_view_column_set_title(tvc, RVAL2CSTR(argv[0]));
40
+ if (argc > 1) {
41
+ gtk_tree_view_column_pack_start(tvc, RVAL2GTKCELLRENDERER(argv[1]), TRUE);
42
+ G_CHILD_ADD(self, argv[1]);
43
+ }
44
+ }
45
+
46
+ RBGTK_INITIALIZE(self, tvc);
47
+
48
+ if (argc == 3){
49
+ ary = rb_funcall(argv[2], rb_intern("to_a"), 0);
50
+ renderer = RVAL2GTKCELLRENDERER(argv[1]);
51
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
52
+ val = RARRAY_PTR(RARRAY_PTR(ary)[i])[0];
53
+ if (SYMBOL_P(val)) {
54
+ name = rb_id2name(SYM2ID(val));
55
+ } else {
56
+ name = RVAL2CSTR(val);
57
+ }
58
+ col = NUM2INT(RARRAY_PTR(RARRAY_PTR(ary)[i])[1]);
59
+ gtk_tree_view_column_add_attribute(_SELF(self), renderer, name, col);
60
+ }
61
+ }
62
+
63
+ return Qnil;
64
+ }
65
+
66
+ static VALUE
67
+ rg_pack_start(VALUE self, VALUE cell, VALUE expand)
68
+ {
69
+ G_CHILD_ADD(self, cell);
70
+ gtk_tree_view_column_pack_start(_SELF(self), RVAL2GTKCELLRENDERER(cell), RVAL2CBOOL(expand));
71
+ return self;
72
+ }
73
+
74
+ static VALUE
75
+ rg_pack_end(VALUE self, VALUE cell, VALUE expand)
76
+ {
77
+ G_CHILD_ADD(self, cell);
78
+ gtk_tree_view_column_pack_end(_SELF(self), RVAL2GTKCELLRENDERER(cell), RVAL2CBOOL(expand));
79
+ return self;
80
+ }
81
+
82
+ static VALUE
83
+ rg_clear(VALUE self)
84
+ {
85
+ G_CHILD_REMOVE_ALL(self);
86
+ gtk_tree_view_column_clear(_SELF(self));
87
+ return self;
88
+ }
89
+
90
+ static VALUE
91
+ rg_add_attribute(VALUE self, VALUE cell, VALUE attribute, VALUE column)
92
+ {
93
+ const gchar *name;
94
+ if (SYMBOL_P(attribute)) {
95
+ name = rb_id2name(SYM2ID(attribute));
96
+ } else {
97
+ name = RVAL2CSTR(attribute);
98
+ }
99
+ gtk_tree_view_column_add_attribute(_SELF(self), RVAL2GTKCELLRENDERER(cell),
100
+ name, NUM2INT(column));
101
+ return self;
102
+ }
103
+
104
+ static VALUE
105
+ rg_set_attributes(VALUE self, VALUE renderer, VALUE attributes)
106
+ {
107
+ GtkTreeViewColumn *tvc;
108
+ GtkCellRenderer *grenderer;
109
+ const gchar *name;
110
+ int i, col;
111
+ VALUE ary, val;
112
+
113
+ Check_Type(attributes, T_HASH);
114
+
115
+ tvc = _SELF(self);
116
+ grenderer = RVAL2GTKCELLRENDERER(renderer);
117
+ gtk_tree_view_column_clear_attributes(tvc, grenderer);
118
+
119
+ ary = rb_funcall(attributes, rb_intern("to_a"), 0);
120
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
121
+ val = RARRAY_PTR(RARRAY_PTR(ary)[i])[0];
122
+ if (SYMBOL_P(val)) {
123
+ name = rb_id2name(SYM2ID(val));
124
+ } else {
125
+ name = RVAL2CSTR(val);
126
+ }
127
+ col = NUM2INT(RARRAY_PTR(RARRAY_PTR(ary)[i])[1]);
128
+ gtk_tree_view_column_add_attribute(tvc, grenderer, name, col);
129
+ }
130
+ return self;
131
+ }
132
+
133
+ static void
134
+ cell_data_func(GtkTreeViewColumn *tree_column, GtkCellRenderer *cell, GtkTreeModel *model, GtkTreeIter *iter, gpointer func)
135
+ {
136
+ iter->user_data3 = model;
137
+ rb_funcall((VALUE)func, id_call, 4, GOBJ2RVAL(tree_column),
138
+ GOBJ2RVAL(cell), GOBJ2RVAL(model),
139
+ GTKTREEITER2RVAL(iter));
140
+ }
141
+
142
+ static VALUE
143
+ rg_set_cell_data_func(VALUE self, VALUE renderer)
144
+ {
145
+ volatile VALUE func = rb_block_proc();
146
+ G_RELATIVE(self, func);
147
+ G_RELATIVE(renderer, func);
148
+ gtk_tree_view_column_set_cell_data_func(_SELF(self), RVAL2GTKCELLRENDERER(renderer),
149
+ (GtkTreeCellDataFunc)cell_data_func, (gpointer)func, NULL);
150
+ return self;
151
+ }
152
+
153
+ static VALUE
154
+ rg_clear_attributes(VALUE self, VALUE cell)
155
+ {
156
+ gtk_tree_view_column_clear_attributes(_SELF(self), RVAL2GTKCELLRENDERER(cell));
157
+ return self;
158
+ }
159
+
160
+ static VALUE
161
+ rg_clicked(VALUE self)
162
+ {
163
+ gtk_tree_view_column_clicked(_SELF(self));
164
+ return self;
165
+ }
166
+
167
+ static VALUE
168
+ rg_cell_set_cell_data(VALUE self, VALUE model, VALUE iter, VALUE is_expander, VALUE is_expanded)
169
+ {
170
+ gtk_tree_view_column_cell_set_cell_data(_SELF(self),
171
+ RVAL2GTKTREEMODEL(model),
172
+ RVAL2GTKTREEITER(iter),
173
+ RVAL2CBOOL(is_expander),
174
+ RVAL2CBOOL(is_expanded));
175
+ return self;
176
+ }
177
+
178
+ static VALUE
179
+ rg_cell_size(VALUE self)
180
+ {
181
+ GdkRectangle cell_area;
182
+ gint x_offset, y_offset, width, height;
183
+ VALUE cell;
184
+
185
+ /* Is this collect implement for cell_area ? */
186
+ cell_area.x = -1;
187
+ cell_area.y = -1;
188
+ cell_area.width = -1;
189
+ cell_area.height = -1;
190
+
191
+ gtk_tree_view_column_cell_get_size(_SELF(self), &cell_area,
192
+ &x_offset, &y_offset,
193
+ &width, &height);
194
+ if (cell_area.x == -1 || cell_area.y == -1 ||
195
+ cell_area.width == -1 || cell_area.height == -1){
196
+ cell = Qnil;
197
+ } else {
198
+ cell = GDKRECTANGLE2RVAL(&cell_area);
199
+ }
200
+ return rb_ary_new3(5, cell,
201
+ x_offset ? INT2NUM(x_offset) : Qnil,
202
+ y_offset ? INT2NUM(y_offset) : Qnil,
203
+ width ? INT2NUM(width) : Qnil,
204
+ height ? INT2NUM(height) : Qnil);
205
+ }
206
+
207
+ static VALUE
208
+ rg_cell_is_visible_p(VALUE self)
209
+ {
210
+ return CBOOL2RVAL(gtk_tree_view_column_cell_is_visible(_SELF(self)));
211
+ }
212
+
213
+ static VALUE
214
+ rg_focus_cell(VALUE self, VALUE renderer)
215
+ {
216
+ gtk_tree_view_column_focus_cell(_SELF(self), RVAL2GTKCELLRENDERER(renderer));
217
+
218
+ return self;
219
+ }
220
+
221
+ static VALUE
222
+ rg_queue_resize(VALUE self)
223
+ {
224
+ gtk_tree_view_column_queue_resize(_SELF(self));
225
+ return self;
226
+ }
227
+
228
+ static VALUE
229
+ rg_tree_view(VALUE self)
230
+ {
231
+ return GOBJ2RVAL(gtk_tree_view_column_get_tree_view(_SELF(self)));
232
+ }
233
+
234
+ void
235
+ Init_gtk_treeviewcolumn(VALUE mGtk)
236
+ {
237
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_TREE_VIEW_COLUMN, "TreeViewColumn", mGtk);
238
+
239
+ RG_DEF_METHOD(initialize, -1);
240
+ RG_DEF_METHOD(pack_start, 2);
241
+ RG_DEF_METHOD(pack_end, 2);
242
+ RG_DEF_METHOD(clear, 0);
243
+ RG_DEF_METHOD(add_attribute, 3);
244
+ RG_DEF_METHOD(set_attributes, 2);
245
+ RG_DEF_METHOD(set_cell_data_func, 1);
246
+ RG_DEF_METHOD(clear_attributes, 1);
247
+ RG_DEF_METHOD(clicked, 0);
248
+ RG_DEF_METHOD(cell_set_cell_data, 4);
249
+ RG_DEF_METHOD(cell_size, 0);
250
+ RG_DEF_METHOD_P(cell_is_visible, 0);
251
+ RG_DEF_METHOD(focus_cell, 1);
252
+ RG_DEF_METHOD(queue_resize, 0);
253
+ RG_DEF_METHOD(tree_view, 0);
254
+
255
+ G_DEF_CLASS(GTK_TYPE_TREE_VIEW_COLUMN_SIZING, "Sizing", RG_TARGET_NAMESPACE);
256
+ }
@@ -0,0 +1,716 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002-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 cTreeView
25
+ #define _SELF(s) (RVAL2GTKTREEVIEW(s))
26
+
27
+ static VALUE rb_mGtk;
28
+ static ID id_model;
29
+ static ID id_selection;
30
+
31
+ static VALUE
32
+ rg_initialize(int argc, VALUE *argv, VALUE self)
33
+ {
34
+ VALUE model;
35
+ GtkWidget *widget;
36
+
37
+ if (rb_scan_args(argc, argv, "01", &model) == 1) {
38
+ G_CHILD_SET(self, id_model, model);
39
+ widget = gtk_tree_view_new_with_model(RVAL2GTKTREEMODEL(model));
40
+ }
41
+ else {
42
+ widget = gtk_tree_view_new();
43
+ }
44
+
45
+ RBGTK_INITIALIZE(self, widget);
46
+ return Qnil;
47
+ }
48
+
49
+ static VALUE
50
+ rg_selection(VALUE self)
51
+ {
52
+ VALUE ret = GOBJ2RVAL(gtk_tree_view_get_selection(_SELF(self)));
53
+ G_CHILD_SET(self, id_selection, ret);
54
+ return ret;
55
+ }
56
+
57
+ static VALUE
58
+ rg_columns_autosize(VALUE self)
59
+ {
60
+ gtk_tree_view_columns_autosize(_SELF(self));
61
+ return self;
62
+ }
63
+
64
+ static VALUE
65
+ rg_append_column(VALUE self, VALUE column)
66
+ {
67
+ G_CHILD_ADD(self, column);
68
+ return INT2NUM(gtk_tree_view_append_column(_SELF(self),
69
+ RVAL2GTKTREEVIEWCOLUMN(column)));
70
+ }
71
+
72
+ static VALUE
73
+ rg_remove_column(VALUE self, VALUE column)
74
+ {
75
+ G_CHILD_REMOVE(self, column);
76
+ return INT2NUM(gtk_tree_view_remove_column(_SELF(self),
77
+ RVAL2GTKTREEVIEWCOLUMN(column)));
78
+ }
79
+
80
+ static void
81
+ cell_data_func(GtkTreeViewColumn *column, GtkCellRenderer *cell, GtkTreeModel *model, GtkTreeIter *iter, gpointer func)
82
+ {
83
+ iter->user_data3 = model;
84
+ rb_funcall((VALUE)func, id_call, 4, GOBJ2RVAL(column),
85
+ GOBJ2RVAL(cell), GOBJ2RVAL(model),
86
+ GTKTREEITER2RVAL(iter));
87
+ }
88
+
89
+ static VALUE
90
+ rg_insert_column(int argc, VALUE *argv, VALUE self)
91
+ {
92
+ VALUE args[4];
93
+
94
+ rb_scan_args(argc, argv, "22", /* NORMAL ATTRIBUTES DATA_FUNC */
95
+ &args[0], /* column position position */
96
+ &args[1], /* position title title */
97
+ &args[2], /* renderer renderer */
98
+ &args[3]); /* attributes */
99
+
100
+ if (argc == 2) {
101
+ G_CHILD_ADD(self, args[0]);
102
+ return INT2NUM(gtk_tree_view_insert_column(_SELF(self),
103
+ RVAL2GTKTREEVIEWCOLUMN(args[0]),
104
+ NUM2INT(args[1])));
105
+ } else if (argc == 3) {
106
+ int ret;
107
+ VALUE func = rb_block_proc();
108
+
109
+ G_RELATIVE(self, argv[2]);
110
+ G_RELATIVE(self, func);
111
+ ret = gtk_tree_view_insert_column_with_data_func(_SELF(self),
112
+ NUM2INT(args[0]),
113
+ RVAL2CSTR(args[1]),
114
+ RVAL2GTKCELLRENDERER(args[2]),
115
+ (GtkTreeCellDataFunc)cell_data_func,
116
+ (gpointer)func,
117
+ NULL);
118
+ return INT2NUM(ret);
119
+ } else if (argc == 4) {
120
+ int i;
121
+ int col;
122
+ int ret;
123
+ const gchar *name;
124
+ VALUE ary;
125
+ GtkCellRenderer* renderer = RVAL2GTKCELLRENDERER(args[2]);
126
+
127
+ GtkTreeViewColumn* column = gtk_tree_view_column_new();
128
+
129
+ Check_Type(args[3], T_HASH);
130
+
131
+ /* TODO: Should this really be done before we know that everything
132
+ * below worked without error? */
133
+ G_CHILD_ADD(self, args[2]);
134
+ G_CHILD_ADD(self, args[3]);
135
+
136
+ gtk_tree_view_column_set_title(column, RVAL2CSTR(args[1]));
137
+ gtk_tree_view_column_pack_start(column, renderer, TRUE);
138
+
139
+ ret = gtk_tree_view_insert_column(_SELF(self), column, NUM2INT(args[0]));
140
+ ary = rb_funcall(args[3], rb_intern("to_a"), 0);
141
+ for (i = 0; i < RARRAY_LEN(ary); i++) {
142
+ VALUE val = RARRAY_PTR(RARRAY_PTR(ary)[i])[0];
143
+ if (SYMBOL_P(val)) {
144
+ name = rb_id2name(SYM2ID(val));
145
+ } else {
146
+ name = RVAL2CSTR(val);
147
+ }
148
+ col = NUM2INT(RARRAY_PTR(RARRAY_PTR(ary)[i])[1]);
149
+ gtk_tree_view_column_add_attribute(column,
150
+ renderer,
151
+ name, col);
152
+ }
153
+ return INT2NUM(ret);
154
+ } else {
155
+ rb_raise(rb_eArgError, "Wrong number of arguments: %d", argc);
156
+ }
157
+
158
+ return Qnil;
159
+ }
160
+
161
+ static VALUE
162
+ rg_get_column(VALUE self, VALUE num)
163
+ {
164
+ return GOBJ2RVAL(gtk_tree_view_get_column(_SELF(self), NUM2INT(num)));
165
+ }
166
+
167
+ static VALUE
168
+ rg_columns(VALUE self)
169
+ {
170
+ return GOBJGLIST2RVAL_FREE(gtk_tree_view_get_columns(_SELF(self)),
171
+ g_list_free, NULL);
172
+ }
173
+
174
+ static VALUE
175
+ rg_move_column_after(VALUE self, VALUE column, VALUE base_column)
176
+ {
177
+ gtk_tree_view_move_column_after(_SELF(self), RVAL2GTKTREEVIEWCOLUMN(column),
178
+ NIL_P(base_column) ? NULL : RVAL2GTKTREEVIEWCOLUMN(base_column));
179
+ return self;
180
+ }
181
+
182
+ static gboolean
183
+ column_drop_func(GtkTreeView *treeview, GtkTreeViewColumn *column, GtkTreeViewColumn *prev_column, GtkTreeViewColumn *next_column, gpointer func)
184
+ {
185
+ return RVAL2CBOOL(rb_funcall((VALUE)func, id_call, 4, GOBJ2RVAL(treeview),
186
+ GOBJ2RVAL(column), GOBJ2RVAL(prev_column),
187
+ GOBJ2RVAL(next_column)));
188
+ }
189
+
190
+ static VALUE
191
+ rg_set_column_drag_function(VALUE self)
192
+ {
193
+ VALUE func = rb_block_proc();
194
+ G_RELATIVE(self, func);
195
+ gtk_tree_view_set_column_drag_function(_SELF(self),
196
+ (GtkTreeViewColumnDropFunc)column_drop_func,
197
+ (gpointer)func, NULL);
198
+ return self;
199
+ }
200
+
201
+ static VALUE
202
+ rg_scroll_to_point(VALUE self, VALUE x, VALUE y)
203
+ {
204
+ gtk_tree_view_scroll_to_point(_SELF(self), NUM2INT(x), NUM2INT(y));
205
+ return self;
206
+ }
207
+
208
+ static VALUE
209
+ rg_scroll_to_cell(VALUE self, VALUE path, VALUE column, VALUE use_align, VALUE row_align, VALUE col_align)
210
+ {
211
+ gtk_tree_view_scroll_to_cell(_SELF(self),
212
+ NIL_P(path) ? NULL : RVAL2GTKTREEPATH(path),
213
+ NIL_P(column) ? NULL : RVAL2GTKTREEVIEWCOLUMN(column),
214
+ RVAL2CBOOL(use_align),
215
+ NUM2DBL(row_align), NUM2DBL(col_align));
216
+ return self;
217
+ }
218
+
219
+ static VALUE
220
+ rg_set_cursor(VALUE self, VALUE path, VALUE focus_column, VALUE start_editing)
221
+ {
222
+ gtk_tree_view_set_cursor(_SELF(self), RVAL2GTKTREEPATH(path),
223
+ NIL_P(focus_column) ? NULL : RVAL2GTKTREEVIEWCOLUMN(focus_column),
224
+ RVAL2CBOOL(start_editing));
225
+ return self;
226
+ }
227
+
228
+ static VALUE
229
+ rg_cursor(VALUE self)
230
+ {
231
+ GtkTreePath* path;
232
+ GtkTreeViewColumn* focus_column;
233
+
234
+ gtk_tree_view_get_cursor(_SELF(self), &path, &focus_column);
235
+ return rb_ary_new3(2, path ? GTKTREEPATH2RVAL(path) : Qnil,
236
+ GOBJ2RVAL(focus_column));
237
+ }
238
+
239
+ static VALUE
240
+ rg_expand_all(VALUE self)
241
+ {
242
+ gtk_tree_view_expand_all(_SELF(self));
243
+ return self;
244
+ }
245
+
246
+ static VALUE
247
+ rg_collapse_all(VALUE self)
248
+ {
249
+ gtk_tree_view_collapse_all(_SELF(self));
250
+ return self;
251
+ }
252
+
253
+ static VALUE
254
+ rg_expand_row(VALUE self, VALUE path, VALUE open_all)
255
+ {
256
+ return CBOOL2RVAL(gtk_tree_view_expand_row(_SELF(self),
257
+ RVAL2GTKTREEPATH(path),
258
+ RVAL2CBOOL(open_all)));
259
+ }
260
+
261
+ static VALUE
262
+ rg_expand_to_path(VALUE self, VALUE path)
263
+ {
264
+ gtk_tree_view_expand_to_path(_SELF(self), RVAL2GTKTREEPATH(path));
265
+ return self;
266
+ }
267
+
268
+ static VALUE
269
+ rg_collapse_row(VALUE self, VALUE path)
270
+ {
271
+ return CBOOL2RVAL(gtk_tree_view_collapse_row(_SELF(self),
272
+ RVAL2GTKTREEPATH(path)));
273
+ }
274
+
275
+ static void
276
+ mapping_func(GtkTreeView *treeview, GtkTreePath *path, gpointer func)
277
+ {
278
+ rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(treeview),
279
+ GTKTREEPATH2RVAL(path));
280
+ }
281
+
282
+ static VALUE
283
+ rg_map_expanded_rows(VALUE self)
284
+ {
285
+ VALUE func = rb_block_proc();
286
+ G_RELATIVE(self, func);
287
+ gtk_tree_view_map_expanded_rows(_SELF(self),
288
+ (GtkTreeViewMappingFunc)mapping_func,
289
+ (gpointer)func);
290
+ return self;
291
+ }
292
+
293
+ static VALUE
294
+ rg_row_expanded_p(VALUE self, VALUE path)
295
+ {
296
+ return CBOOL2RVAL(gtk_tree_view_row_expanded(_SELF(self),
297
+ RVAL2GTKTREEPATH(path)));
298
+ }
299
+
300
+ static VALUE
301
+ rg_get_path_at_pos(VALUE self, VALUE x, VALUE y)
302
+ {
303
+ GtkTreePath* path;
304
+ GtkTreeViewColumn* column;
305
+ gint cell_x, cell_y;
306
+ gboolean ret;
307
+
308
+ ret = gtk_tree_view_get_path_at_pos(_SELF(self),
309
+ NUM2INT(x), NUM2INT(y),
310
+ &path, &column, &cell_x, &cell_y);
311
+ return ret ? rb_ary_new3(4,
312
+ path ? GTKTREEPATH2RVAL(path) : Qnil,
313
+ column ? GOBJ2RVAL(column) : Qnil,
314
+ INT2NUM(cell_x), INT2NUM(cell_y)) : Qnil;
315
+ }
316
+
317
+ static VALUE
318
+ rg_get_cell_area(VALUE self, VALUE path, VALUE column)
319
+ {
320
+ GdkRectangle rect;
321
+ gtk_tree_view_get_cell_area(_SELF(self),
322
+ NIL_P(path) ? NULL : RVAL2GTKTREEPATH(path),
323
+ NIL_P(column) ? NULL : RVAL2GTKTREEVIEWCOLUMN(column),
324
+ &rect);
325
+ return GDKRECTANGLE2RVAL(&rect);
326
+ }
327
+
328
+ static VALUE
329
+ rg_get_background_area(VALUE self, VALUE path, VALUE column)
330
+ {
331
+ GdkRectangle rect;
332
+ gtk_tree_view_get_background_area(_SELF(self),
333
+ NIL_P(path) ? NULL : RVAL2GTKTREEPATH(path),
334
+ NIL_P(column) ? NULL : RVAL2GTKTREEVIEWCOLUMN(column),
335
+ &rect);
336
+ return GDKRECTANGLE2RVAL(&rect);
337
+ }
338
+
339
+ static VALUE
340
+ rg_visible_rect(VALUE self)
341
+ {
342
+ GdkRectangle rect;
343
+ gtk_tree_view_get_visible_rect(_SELF(self), &rect);
344
+ return GDKRECTANGLE2RVAL(&rect);
345
+ }
346
+
347
+ static VALUE
348
+ rg_visible_range(VALUE self)
349
+ {
350
+ GtkTreePath* start_path;
351
+ GtkTreePath* end_path;
352
+
353
+ gboolean valid_paths = gtk_tree_view_get_visible_range(_SELF(self), &start_path, &end_path);
354
+
355
+ return valid_paths ? rb_assoc_new(GTKTREEPATH2RVAL(start_path),
356
+ GTKTREEPATH2RVAL(end_path)) : Qnil;
357
+ }
358
+
359
+ static VALUE
360
+ rg_bin_window(VALUE self)
361
+ {
362
+ return GOBJ2RVAL(gtk_tree_view_get_bin_window(_SELF(self)));
363
+ }
364
+
365
+ static VALUE
366
+ rg_convert_bin_window_to_tree_coords(VALUE self, VALUE bx, VALUE by)
367
+ {
368
+ gint tx, ty;
369
+ gtk_tree_view_convert_bin_window_to_tree_coords(_SELF(self),
370
+ NUM2INT(bx), NUM2INT(by),
371
+ &tx, &ty);
372
+ return rb_ary_new3(2, INT2NUM(tx), INT2NUM(ty));
373
+ }
374
+ static VALUE
375
+ rg_convert_bin_window_to_widget_coords(VALUE self, VALUE bx, VALUE by)
376
+ {
377
+ gint wx, wy;
378
+ gtk_tree_view_convert_bin_window_to_widget_coords(_SELF(self),
379
+ NUM2INT(bx), NUM2INT(by),
380
+ &wx, &wy);
381
+ return rb_ary_new3(2, INT2NUM(wx), INT2NUM(wy));
382
+ }
383
+
384
+ static VALUE
385
+ rg_convert_tree_to_bin_window_coords(VALUE self, VALUE tx, VALUE ty)
386
+ {
387
+ gint bx, by;
388
+ gtk_tree_view_convert_tree_to_bin_window_coords(_SELF(self),
389
+ NUM2INT(tx), NUM2INT(ty),
390
+ &bx, &by);
391
+ return rb_ary_new3(2, INT2NUM(bx), INT2NUM(by));
392
+ }
393
+ static VALUE
394
+ rg_convert_tree_to_widget_coords(VALUE self, VALUE tx, VALUE ty)
395
+ {
396
+ gint wx, wy;
397
+ gtk_tree_view_convert_tree_to_widget_coords(_SELF(self),
398
+ NUM2INT(tx), NUM2INT(ty),
399
+ &wx, &wy);
400
+ return rb_ary_new3(2, INT2NUM(wx), INT2NUM(wy));
401
+ }
402
+
403
+ static VALUE
404
+ rg_convert_widget_to_bin_window_coords(VALUE self, VALUE wx, VALUE wy)
405
+ {
406
+ gint bx, by;
407
+ gtk_tree_view_convert_widget_to_bin_window_coords(_SELF(self),
408
+ NUM2INT(wx), NUM2INT(wy),
409
+ &bx, &by);
410
+ return rb_ary_new3(2, INT2NUM(bx), INT2NUM(by));
411
+ }
412
+ static VALUE
413
+ rg_convert_widget_to_tree_coords(VALUE self, VALUE wx, VALUE wy)
414
+ {
415
+ gint tx, ty;
416
+ gtk_tree_view_convert_widget_to_tree_coords(_SELF(self),
417
+ NUM2INT(wx), NUM2INT(wy),
418
+ &tx, &ty);
419
+ return rb_ary_new3(2, INT2NUM(tx), INT2NUM(ty));
420
+ }
421
+
422
+ static VALUE
423
+ rg_enable_model_drag_dest(VALUE self, VALUE rbtargets, VALUE rbactions)
424
+ {
425
+ GtkTreeView *view = _SELF(self);
426
+ GdkDragAction actions = RVAL2GDKDRAGACTION(rbactions);
427
+ long n;
428
+ GtkTargetEntry *targets = RVAL2GTKTARGETENTRIES(rbtargets, &n);
429
+
430
+ gtk_tree_view_enable_model_drag_dest(view, targets, n, actions);
431
+
432
+ g_free(targets);
433
+
434
+ return self;
435
+ }
436
+
437
+ static VALUE
438
+ rg_enable_model_drag_source(VALUE self, VALUE rbstart_button_mask, VALUE rbtargets, VALUE rbactions)
439
+ {
440
+ GtkTreeView *view = _SELF(self);
441
+ GdkModifierType start_button_mask = RVAL2GDKMODIFIERTYPE(rbstart_button_mask);
442
+ GdkDragAction actions = RVAL2GDKDRAGACTION(rbactions);
443
+ long n;
444
+ GtkTargetEntry *targets = RVAL2GTKTARGETENTRIES_ACCEPT_NIL(rbtargets, &n);
445
+
446
+ if (targets == NULL)
447
+ return self;
448
+
449
+ gtk_tree_view_enable_model_drag_source(view, start_button_mask, targets, n, actions);
450
+
451
+ g_free(targets);
452
+
453
+ return self;
454
+ }
455
+
456
+ static VALUE
457
+ rg_unset_rows_drag_source(VALUE self)
458
+ {
459
+ gtk_tree_view_unset_rows_drag_source(_SELF(self));
460
+ return self;
461
+ }
462
+
463
+ static VALUE
464
+ rg_unset_rows_drag_dest(VALUE self)
465
+ {
466
+ gtk_tree_view_unset_rows_drag_dest(_SELF(self));
467
+ return self;
468
+ }
469
+
470
+ static VALUE
471
+ rg_set_drag_dest_row(VALUE self, VALUE path, VALUE pos)
472
+ {
473
+ gtk_tree_view_set_drag_dest_row(_SELF(self),
474
+ NIL_P(path)?NULL:RVAL2GTKTREEPATH(path),
475
+ RVAL2GTKTREEVIEWDROPPOSITION(pos));
476
+ return self;
477
+ }
478
+
479
+ static VALUE
480
+ rg_drag_dest_row(VALUE self)
481
+ {
482
+ GtkTreePath* path = NULL;
483
+ GtkTreeViewDropPosition pos;
484
+ gtk_tree_view_get_drag_dest_row(_SELF(self), &path, &pos);
485
+ return rb_ary_new3(2, path ? GTKTREEPATH2RVAL(path) : Qnil,
486
+ GTKTREEVIEWDROPPOSITION2RVAL(pos));
487
+ }
488
+
489
+ static VALUE
490
+ rg_get_dest_row_at_pos(VALUE self, VALUE drag_x, VALUE drag_y)
491
+ {
492
+ GtkTreePath* path;
493
+ GtkTreeViewDropPosition pos;
494
+ gboolean ret;
495
+
496
+ ret = gtk_tree_view_get_dest_row_at_pos(_SELF(self),
497
+ NUM2INT(drag_x), NUM2INT(drag_y),
498
+ &path, &pos);
499
+ return ret ? rb_ary_new3(2, path ? GTKTREEPATH2RVAL(path) : Qnil,
500
+ GTKTREEVIEWDROPPOSITION2RVAL(pos)) : Qnil;
501
+ }
502
+
503
+ static VALUE
504
+ rg_create_row_drag_icon(VALUE self, VALUE path)
505
+ {
506
+ return GOBJ2RVAL(gtk_tree_view_create_row_drag_icon(_SELF(self),
507
+ RVAL2GTKTREEPATH(path)));
508
+ }
509
+
510
+ /*
511
+ We don't need this.
512
+ GtkTreeViewSearchEqualFunc gtk_tree_view_get_search_equal_func
513
+ (GtkTreeView *tree_view);
514
+ */
515
+
516
+ static gboolean
517
+ search_equal_func(GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer func)
518
+ {
519
+ iter->user_data3 = model;
520
+ return RVAL2CBOOL(rb_funcall((VALUE)func, id_call, 4,
521
+ GOBJ2RVAL(model), INT2NUM(column),
522
+ CSTR2RVAL(key), GTKTREEITER2RVAL(iter)));
523
+ }
524
+
525
+ static VALUE
526
+ rg_set_search_equal_func(VALUE self)
527
+ {
528
+ VALUE func = rb_block_proc();
529
+ G_RELATIVE(self, func);
530
+ gtk_tree_view_set_search_equal_func(_SELF(self),
531
+ (GtkTreeViewSearchEqualFunc)search_equal_func,
532
+ (gpointer)func, NULL);
533
+ return self;
534
+ }
535
+
536
+ /*
537
+ * Optional Signals
538
+ */
539
+ static VALUE
540
+ treeview_signal_func(G_GNUC_UNUSED guint num, const GValue *values)
541
+ {
542
+ GtkTreeView* view = g_value_get_object(&values[0]);
543
+ GtkTreeIter* iter = g_value_get_boxed(&values[1]);
544
+ iter->user_data3 = gtk_tree_view_get_model(view);
545
+
546
+ return rb_ary_new3(3, GOBJ2RVAL(view), GTKTREEITER2RVAL(iter), GVAL2RVAL(&values[2]));
547
+ }
548
+
549
+ static VALUE
550
+ rg_set_cursor_on_cell(VALUE self, VALUE path, VALUE focus_column, VALUE focus_cell, VALUE start_editing)
551
+ {
552
+ gtk_tree_view_set_cursor_on_cell(_SELF(self), RVAL2GTKTREEPATH(path),
553
+ NIL_P(focus_column) ? NULL : RVAL2GTKTREEVIEWCOLUMN(focus_column),
554
+ NIL_P(focus_cell) ? NULL : RVAL2GTKCELLRENDERER(focus_cell),
555
+ RVAL2CBOOL(start_editing));
556
+ return self;
557
+ }
558
+
559
+ /* How can I implement this?
560
+ GtkTreeViewRowSeparatorFunc gtk_tree_view_get_row_separator_func
561
+ (GtkTreeView *tree_view);
562
+ */
563
+
564
+ static gboolean
565
+ row_separator_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer func)
566
+ {
567
+ VALUE ret;
568
+ iter->user_data3 = model;
569
+ ret = rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(model),
570
+ GTKTREEITER2RVAL(iter));
571
+ return CBOOL2RVAL(ret);
572
+ }
573
+
574
+ static VALUE
575
+ rg_set_row_separator_func(VALUE self)
576
+ {
577
+ VALUE func = rb_block_proc();
578
+
579
+ G_RELATIVE(self, func);
580
+ gtk_tree_view_set_row_separator_func(_SELF(self),
581
+ row_separator_func,
582
+ (gpointer)func,
583
+ (GDestroyNotify)NULL);
584
+ return self;
585
+ }
586
+
587
+ static VALUE
588
+ rg_search_entry(VALUE self)
589
+ {
590
+ return GOBJ2RVAL(gtk_tree_view_get_search_entry(_SELF(self)));
591
+ }
592
+
593
+ static VALUE
594
+ rg_set_search_entry(VALUE self, VALUE entry)
595
+ {
596
+ gtk_tree_view_set_search_entry(_SELF(self), RVAL2GTKENTRY(entry));
597
+ return self;
598
+ }
599
+
600
+ /* Can't define this.
601
+ GtkTreeViewSearchPositionFunc gtk_tree_view_get_search_position_func
602
+ (GtkTreeView *tree_view);
603
+ */
604
+
605
+ struct callback_arg
606
+ {
607
+ VALUE callback;
608
+ VALUE tree_view;
609
+ VALUE search_dialog;
610
+ };
611
+
612
+ static VALUE
613
+ invoke_callback(VALUE data)
614
+ {
615
+ struct callback_arg *arg = (struct callback_arg *)data;
616
+ rb_funcall(arg->callback, id_call, 2, arg->tree_view, arg->search_dialog);
617
+ return Qnil;
618
+ }
619
+
620
+ static void
621
+ search_position_func(GtkTreeView *tree_view, GtkWidget *search_dialog, gpointer func)
622
+ {
623
+ struct callback_arg arg;
624
+
625
+ arg.callback = (VALUE)func;
626
+ arg.tree_view = GOBJ2RVAL(tree_view);
627
+ arg.search_dialog = GOBJ2RVAL(search_dialog);
628
+ G_PROTECT_CALLBACK(invoke_callback, &arg);
629
+ }
630
+
631
+ static void
632
+ remove_callback_reference(gpointer data)
633
+ {
634
+ G_CHILD_REMOVE(rb_mGtk, (VALUE)data);
635
+ }
636
+
637
+ static VALUE
638
+ rg_set_search_position_func(VALUE self)
639
+ {
640
+ VALUE func = rb_block_proc();
641
+ G_CHILD_ADD(rb_mGtk, func);
642
+ gtk_tree_view_set_search_position_func(_SELF(self),
643
+ (GtkTreeViewSearchPositionFunc)search_position_func,
644
+ (gpointer)func,
645
+ (GDestroyNotify)remove_callback_reference);
646
+ return self;
647
+ }
648
+
649
+ void
650
+ Init_gtk_treeview(VALUE mGtk)
651
+ {
652
+ rb_mGtk = mGtk;
653
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_TREE_VIEW, "TreeView", mGtk);
654
+
655
+ id_selection = rb_intern("selection");
656
+ id_model = rb_intern("model");
657
+
658
+ RG_DEF_METHOD(initialize, -1);
659
+ RG_DEF_METHOD(selection, 0);
660
+ RG_DEF_METHOD(columns_autosize, 0);
661
+ RG_DEF_METHOD(append_column, 1);
662
+ RG_DEF_METHOD(remove_column, 1);
663
+ RG_DEF_METHOD(insert_column, -1);
664
+ RG_DEF_METHOD(get_column, 1);
665
+ RG_DEF_METHOD(columns, 0);
666
+ RG_DEF_METHOD(move_column_after, 2);
667
+ RG_DEF_METHOD(set_column_drag_function, 0);
668
+ RG_DEF_METHOD(scroll_to_point, 2);
669
+ RG_DEF_METHOD(scroll_to_cell, 5);
670
+ RG_DEF_METHOD(set_cursor, 3);
671
+ RG_DEF_METHOD(cursor, 0);
672
+ RG_DEF_METHOD(expand_all, 0);
673
+ RG_DEF_METHOD(collapse_all, 0);
674
+ RG_DEF_METHOD(expand_row, 2);
675
+ RG_DEF_METHOD(collapse_row, 1);
676
+ RG_DEF_METHOD(expand_to_path, 1);
677
+ RG_DEF_METHOD(map_expanded_rows, 0);
678
+ RG_DEF_METHOD_P(row_expanded, 1);
679
+ RG_DEF_METHOD(get_path_at_pos, 2);
680
+ RG_DEF_ALIAS("get_path", "get_path_at_pos");
681
+ RG_DEF_METHOD(get_cell_area, 2);
682
+ RG_DEF_METHOD(get_background_area, 2);
683
+ RG_DEF_METHOD(visible_rect, 0);
684
+ RG_DEF_METHOD(visible_range, 0);
685
+ RG_DEF_METHOD(bin_window, 0);
686
+ RG_DEF_METHOD(convert_bin_window_to_tree_coords, 2);
687
+ RG_DEF_METHOD(convert_bin_window_to_widget_coords, 2);
688
+ RG_DEF_METHOD(convert_tree_to_bin_window_coords, 2);
689
+ RG_DEF_METHOD(convert_tree_to_widget_coords, 2);
690
+ RG_DEF_METHOD(convert_widget_to_bin_window_coords, 2);
691
+ RG_DEF_METHOD(convert_widget_to_tree_coords, 2);
692
+ RG_DEF_METHOD(enable_model_drag_dest, 2);
693
+ RG_DEF_METHOD(enable_model_drag_source, 3);
694
+ RG_DEF_METHOD(unset_rows_drag_source, 0);
695
+ RG_DEF_METHOD(unset_rows_drag_dest, 0);
696
+ RG_DEF_METHOD(set_drag_dest_row, 2);
697
+ RG_DEF_METHOD(drag_dest_row, 0);
698
+ RG_DEF_METHOD(get_dest_row_at_pos, 2);
699
+ RG_DEF_ALIAS("get_dest_row", "get_dest_row_at_pos");
700
+ RG_DEF_METHOD(create_row_drag_icon, 1);
701
+ RG_DEF_METHOD(set_search_equal_func, 0);
702
+ RG_DEF_METHOD(set_cursor_on_cell, 4);
703
+ RG_DEF_METHOD(set_row_separator_func, 0);
704
+ RG_DEF_METHOD(search_entry, 0);
705
+ RG_DEF_METHOD(set_search_entry, 1);
706
+ RG_DEF_METHOD(set_search_position_func, 0);
707
+
708
+ G_DEF_CLASS(GTK_TYPE_TREE_VIEW_DROP_POSITION, "DropPosition", RG_TARGET_NAMESPACE);
709
+ G_DEF_CLASS(GTK_TYPE_TREE_VIEW_GRID_LINES, "GridLines", RG_TARGET_NAMESPACE);
710
+
711
+ /* Option Signals */
712
+ G_DEF_SIGNAL_FUNC(RG_TARGET_NAMESPACE, "row-collapsed", (GValToRValSignalFunc)treeview_signal_func);
713
+ G_DEF_SIGNAL_FUNC(RG_TARGET_NAMESPACE, "row-expanded", (GValToRValSignalFunc)treeview_signal_func);
714
+ G_DEF_SIGNAL_FUNC(RG_TARGET_NAMESPACE, "test-collapse-row", (GValToRValSignalFunc)treeview_signal_func);
715
+ G_DEF_SIGNAL_FUNC(RG_TARGET_NAMESPACE, "test-expand-row", (GValToRValSignalFunc)treeview_signal_func);
716
+ }