gtk3 2.2.5-x86-mingw32 → 3.0.0-x86-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 (582) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -0
  3. data/ext/gtk3/depend +0 -5
  4. data/ext/gtk3/extconf.rb +43 -53
  5. data/ext/gtk3/rb-gtk3-container.c +159 -0
  6. data/ext/gtk3/{rbgtk3util.h → rb-gtk3-private.h} +9 -9
  7. data/ext/gtk3/rb-gtk3-widget.c +71 -0
  8. data/ext/gtk3/rb-gtk3.c +407 -0
  9. data/ext/gtk3/{rbgtk-orientable.c → rb-gtk3.h} +10 -7
  10. data/extconf.rb +25 -9
  11. data/lib/2.0/gtk3.so +0 -0
  12. data/lib/2.1/gtk3.so +0 -0
  13. data/lib/2.2/gtk3.so +0 -0
  14. data/lib/gtk3.rb +70 -9
  15. data/lib/gtk3/about-dialog.rb +34 -0
  16. data/lib/gtk3/action-group.rb +131 -0
  17. data/lib/gtk3/action.rb +27 -0
  18. data/lib/gtk3/binding-set.rb +31 -0
  19. data/lib/gtk3/border.rb +28 -0
  20. data/lib/gtk3/box.rb +40 -0
  21. data/lib/gtk3/builder.rb +91 -0
  22. data/lib/gtk3/button.rb +53 -0
  23. data/lib/gtk3/calendar.rb +24 -0
  24. data/lib/gtk3/cell-layout.rb +31 -0
  25. data/{test/test_gtk_accel_group_entry.rb → lib/gtk3/clipboard.rb} +8 -7
  26. data/lib/gtk3/color-chooser-dialog.rb +27 -0
  27. data/lib/gtk3/combo-box-text.rb +30 -0
  28. data/lib/gtk3/combo-box.rb +55 -0
  29. data/lib/gtk3/container.rb +51 -0
  30. data/lib/gtk3/css-provider.rb +38 -0
  31. data/lib/gtk3/deprecated.rb +193 -99
  32. data/lib/gtk3/dialog.rb +65 -0
  33. data/lib/gtk3/file-chooser-dialog.rb +36 -0
  34. data/lib/gtk3/font-chooser-dialog.rb +27 -0
  35. data/lib/gtk3/gdk-drag-context.rb +29 -0
  36. data/lib/gtk3/gesture-multi-press.rb +31 -0
  37. data/lib/gtk3/icon-theme.rb +28 -0
  38. data/lib/gtk3/icon-view.rb +45 -0
  39. data/lib/gtk3/image.rb +113 -0
  40. data/lib/gtk3/label.rb +54 -0
  41. data/{test/test_gtk_tree_selection.rb → lib/gtk3/level-bar.rb} +13 -12
  42. data/lib/gtk3/list-store.rb +81 -0
  43. data/lib/gtk3/loader.rb +403 -0
  44. data/lib/gtk3/menu-item.rb +33 -0
  45. data/lib/gtk3/message-dialog.rb +49 -0
  46. data/lib/gtk3/paned.rb +37 -0
  47. data/lib/gtk3/radio-action.rb +28 -0
  48. data/lib/gtk3/radio-button.rb +49 -0
  49. data/lib/gtk3/recent-chooser-dialog.rb +38 -0
  50. data/lib/gtk3/scale-button.rb +35 -0
  51. data/{test/test_gtk_allocation.rb → lib/gtk3/scrolled-window.rb} +7 -7
  52. data/lib/gtk3/search-bar.rb +27 -0
  53. data/lib/gtk3/selection-data.rb +42 -0
  54. data/lib/gtk3/spin-button.rb +34 -0
  55. data/lib/gtk3/stack.rb +54 -0
  56. data/lib/gtk3/stock.rb +70 -0
  57. data/lib/gtk3/style-context.rb +26 -0
  58. data/lib/gtk3/style-properties.rb +29 -0
  59. data/lib/gtk3/target-entry.rb +27 -0
  60. data/lib/gtk3/target-list.rb +31 -0
  61. data/lib/gtk3/text-buffer.rb +165 -0
  62. data/lib/gtk3/text-iter.rb +39 -0
  63. data/lib/gtk3/text-tag-table.rb +31 -0
  64. data/lib/gtk3/toggle-action.rb +27 -0
  65. data/lib/gtk3/toggle-button.rb +35 -0
  66. data/lib/gtk3/tool-button.rb +36 -0
  67. data/lib/gtk3/tree-iter.rb +52 -0
  68. data/lib/gtk3/tree-model-filter.rb +45 -0
  69. data/lib/gtk3/tree-model.rb +51 -0
  70. data/lib/gtk3/tree-path.rb +29 -0
  71. data/lib/gtk3/tree-selection.rb +30 -0
  72. data/lib/gtk3/tree-store.rb +59 -0
  73. data/lib/gtk3/tree-view-column.rb +35 -0
  74. data/lib/gtk3/tree-view.rb +41 -0
  75. data/lib/gtk3/ui-manager.rb +35 -0
  76. data/lib/gtk3/version.rb +28 -0
  77. data/lib/gtk3/widget.rb +127 -0
  78. data/lib/gtk3/window.rb +29 -0
  79. data/sample/gtk-demo/TODO +69 -0
  80. data/sample/gtk-demo/application.ui +107 -0
  81. data/sample/gtk-demo/builder.rb +2 -2
  82. data/sample/gtk-demo/{button_box.rb → button-box.rb} +16 -17
  83. data/sample/gtk-demo/common.rb +1 -1
  84. data/sample/gtk-demo/css_accordion.rb +5 -5
  85. data/sample/gtk-demo/css_basics.css +22 -0
  86. data/sample/gtk-demo/css_basics.rb +103 -0
  87. data/sample/gtk-demo/dialog.rb +3 -3
  88. data/sample/gtk-demo/entry_completion.rb +1 -1
  89. data/sample/gtk-demo/hypertext.rb +1 -1
  90. data/sample/gtk-demo/main.rb +65 -91
  91. data/sample/gtk-demo/menus.rb +4 -4
  92. data/sample/gtk-demo/menus.ui +107 -0
  93. data/sample/gtk-demo/sizegroup.rb +1 -1
  94. data/sample/misc/aboutdialog.rb +10 -18
  95. data/sample/misc/aboutdialog2.rb +4 -16
  96. data/sample/misc/alpha-demo.rb +17 -16
  97. data/sample/misc/application.rb +31 -0
  98. data/sample/misc/assistant.rb +3 -5
  99. data/sample/misc/bindings.rb +64 -50
  100. data/sample/misc/builder-from-resource.rb +53 -0
  101. data/sample/misc/builder.rb +29 -0
  102. data/sample/misc/builder.ui +46 -0
  103. data/sample/misc/button.rb +18 -19
  104. data/sample/misc/button2.rb +5 -5
  105. data/sample/misc/buttonbox.rb +2 -4
  106. data/sample/misc/cairo-cursor.rb +37 -0
  107. data/sample/misc/cairo-pong.rb +17 -17
  108. data/sample/misc/calendar.rb +18 -18
  109. data/sample/misc/checkbutton.rb +3 -4
  110. data/sample/misc/colorselection.rb +10 -9
  111. data/sample/misc/{combo_check.rb → combo-check.rb} +1 -3
  112. data/sample/misc/combobox-from-cellrender.rb +48 -0
  113. data/sample/misc/combobox.rb +10 -10
  114. data/sample/misc/cursor.rb +5 -5
  115. data/sample/misc/dialog.rb +3 -4
  116. data/sample/misc/dialog2.rb +5 -6
  117. data/sample/misc/dnd.rb +27 -23
  118. data/sample/misc/dndtreeview.rb +16 -18
  119. data/sample/misc/drag-move.rb +3 -6
  120. data/sample/misc/drawing.rb +74 -86
  121. data/sample/misc/entry.rb +2 -4
  122. data/sample/misc/entrycompletion.rb +5 -5
  123. data/sample/misc/eventbox.rb +58 -0
  124. data/sample/misc/expander.rb +6 -5
  125. data/sample/misc/filechooser.rb +5 -7
  126. data/sample/misc/flowbox.rb +86 -0
  127. data/sample/misc/frame.rb +10 -12
  128. data/sample/misc/gdkscreen.rb +3 -3
  129. data/sample/misc/gtkglarea1.rb +114 -0
  130. data/sample/misc/gtkglarea2.rb +194 -0
  131. data/sample/misc/helloworld.rb +2 -5
  132. data/sample/misc/iconview.rb +9 -9
  133. data/sample/misc/image.rb +7 -6
  134. data/sample/misc/keyboard-grab.rb +34 -0
  135. data/sample/misc/label.rb +10 -11
  136. data/sample/misc/linkbutton.rb +3 -10
  137. data/sample/misc/list-store-usage.rb +96 -0
  138. data/sample/misc/listview.rb +9 -11
  139. data/sample/misc/menu.rb +45 -25
  140. data/sample/misc/{misc_button.rb → misc-button.rb} +15 -14
  141. data/sample/misc/mouse-gesture.rb +35 -42
  142. data/sample/misc/pango-layout.rb +100 -0
  143. data/sample/misc/pointer-grab.rb +36 -0
  144. data/sample/misc/print.rb +202 -201
  145. data/sample/misc/properties.rb +16 -14
  146. data/sample/misc/radiobutton.rb +18 -20
  147. data/sample/misc/recentchooserdialog.rb +8 -10
  148. data/sample/misc/rgtk+cairo.rb +26 -27
  149. data/sample/misc/scalebutton.rb +19 -7
  150. data/sample/misc/simple_window.gresource.xml +6 -0
  151. data/sample/misc/simple_window.ui +16 -0
  152. data/sample/misc/statusicon.rb +11 -14
  153. data/sample/misc/stock.rb +14 -11
  154. data/sample/misc/style-property.rb +76 -0
  155. data/sample/misc/t-gtkplug.rb +11 -14
  156. data/sample/misc/t-gtksocket.rb +19 -18
  157. data/sample/misc/template-from-resource.rb +59 -0
  158. data/sample/misc/template.gresource.xml +6 -0
  159. data/sample/misc/template.ui +16 -0
  160. data/sample/misc/textbuffer-serialize.rb +133 -0
  161. data/sample/misc/threads.rb +54 -13
  162. data/sample/misc/to-drawable.rb +34 -0
  163. data/sample/misc/togglebutton.rb +6 -8
  164. data/sample/misc/toolbar.rb +39 -30
  165. data/sample/misc/tooltips.rb +95 -104
  166. data/sample/misc/{tree_combo.rb → tree-combo.rb} +21 -27
  167. data/sample/misc/{tree_progress.rb → tree-progress.rb} +12 -17
  168. data/sample/misc/treemodelfilter.rb +13 -10
  169. data/sample/misc/treeview.rb +18 -20
  170. data/sample/misc/window.rb +2 -4
  171. data/sample/misc/xbm-cursor.rb +86 -0
  172. data/sample/tutorial/README.md +338 -0
  173. data/sample/tutorial/builder.ui +66 -0
  174. data/sample/tutorial/example-0.rb +32 -0
  175. data/sample/tutorial/example-1.rb +47 -0
  176. data/sample/tutorial/example-2.rb +68 -0
  177. data/sample/tutorial/example-4.rb +41 -0
  178. data/sample/tutorial/exampleapp.desktop +6 -0
  179. data/sample/tutorial/exampleapp.png +0 -0
  180. data/sample/tutorial/exampleapp1/exampleapp.rb +57 -0
  181. data/sample/tutorial/exampleapp2/exampleapp.gresource.xml +6 -0
  182. data/sample/tutorial/exampleapp2/exampleapp.rb +87 -0
  183. data/sample/tutorial/exampleapp2/window.ui +32 -0
  184. data/sample/tutorial/exampleapp3/exampleapp.gresource.xml +6 -0
  185. data/sample/tutorial/exampleapp3/exampleapp.rb +106 -0
  186. data/sample/tutorial/exampleapp3/window.ui +32 -0
  187. data/sample/tutorial/exampleapp4/app-menu.ui +18 -0
  188. data/sample/tutorial/exampleapp4/exampleapp.gresource.xml +7 -0
  189. data/sample/tutorial/exampleapp4/exampleapp.rb +124 -0
  190. data/sample/tutorial/exampleapp4/window.ui +32 -0
  191. data/sample/tutorial/exampleapp5/app-menu.ui +18 -0
  192. data/sample/tutorial/exampleapp5/exampleapp.gresource.xml +7 -0
  193. data/sample/tutorial/exampleapp5/exampleapp.rb +135 -0
  194. data/sample/tutorial/exampleapp5/org.gtk.exampleapp.gschema.xml +20 -0
  195. data/sample/tutorial/exampleapp5/window.ui +32 -0
  196. data/sample/tutorial/exampleapp6/app-menu.ui +18 -0
  197. data/sample/tutorial/exampleapp6/exampleapp.gresource.xml +8 -0
  198. data/sample/tutorial/exampleapp6/exampleapp.rb +168 -0
  199. data/sample/tutorial/exampleapp6/org.gtk.exampleapp.gschema.xml +20 -0
  200. data/sample/tutorial/exampleapp6/prefs.ui +70 -0
  201. data/sample/tutorial/exampleapp6/window.ui +32 -0
  202. data/sample/tutorial/exampleapp7/app-menu.ui +18 -0
  203. data/sample/tutorial/exampleapp7/exampleapp.gresource.xml +8 -0
  204. data/sample/tutorial/exampleapp7/exampleapp.rb +200 -0
  205. data/sample/tutorial/exampleapp7/org.gtk.exampleapp.gschema.xml +20 -0
  206. data/sample/tutorial/exampleapp7/prefs.ui +70 -0
  207. data/sample/tutorial/exampleapp7/window.ui +63 -0
  208. data/sample/tutorial/exampleapp8/app-menu.ui +18 -0
  209. data/sample/tutorial/exampleapp8/exampleapp.gresource.xml +9 -0
  210. data/sample/tutorial/exampleapp8/exampleapp.rb +247 -0
  211. data/sample/tutorial/exampleapp8/gears-menu.ui +12 -0
  212. data/sample/tutorial/exampleapp8/org.gtk.exampleapp.gschema.xml +25 -0
  213. data/sample/tutorial/exampleapp8/prefs.ui +70 -0
  214. data/sample/tutorial/exampleapp8/window.ui +100 -0
  215. data/test/fixture/Rakefile +32 -0
  216. data/test/fixture/gnome-logo-icon.png +0 -0
  217. data/test/fixture/image.gresource +0 -0
  218. data/test/fixture/image.gresource.xml +6 -0
  219. data/test/fixture/simple_window.gresource.xml +6 -0
  220. data/test/fixture/simple_window.ui +16 -0
  221. data/test/gtk-test-utils.rb +46 -4
  222. data/test/run-test.rb +9 -1
  223. data/test/{test_gc.rb → test-gc.rb} +0 -0
  224. data/test/{test_gtk_css_provider.rb → test-gdk-display.rb} +6 -8
  225. data/test/test-gdk-event.rb +24 -0
  226. data/test/test-gdk-screen.rb +42 -0
  227. data/test/{test_gtk_about_dialog.rb → test-gtk-about-dialog.rb} +0 -0
  228. data/test/test-gtk-accel-group.rb +23 -0
  229. data/test/{test_gtk_accel_key.rb → test-gtk-accel-key.rb} +0 -0
  230. data/test/{test_gtk_accessible.rb → test-gtk-accessible.rb} +0 -0
  231. data/test/{test_gtk_action_group.rb → test-gtk-action-bar.rb} +20 -23
  232. data/test/test-gtk-action-group.rb +48 -0
  233. data/test/test-gtk-action.rb +41 -0
  234. data/test/test-gtk-assistant.rb +44 -0
  235. data/test/{test_gtk_border.rb → test-gtk-border.rb} +0 -0
  236. data/test/test-gtk-box.rb +28 -0
  237. data/test/{test_gtk_buildable.rb → test-gtk-buildable.rb} +6 -6
  238. data/test/{test_gtk_builder.rb → test-gtk-builder.rb} +45 -11
  239. data/test/test-gtk-button.rb +54 -0
  240. data/test/test-gtk-cell-layout.rb +35 -0
  241. data/test/test-gtk-color-chooser-dialog.rb +41 -0
  242. data/test/test-gtk-combo-box-text.rb +34 -0
  243. data/test/test-gtk-combo-box.rb +97 -0
  244. data/test/test-gtk-container.rb +171 -0
  245. data/test/test-gtk-css-provider.rb +101 -0
  246. data/test/test-gtk-dialog.rb +74 -0
  247. data/test/{test_gtk_entry.rb → test-gtk-entry.rb} +0 -0
  248. data/test/test-gtk-event-controller.rb +35 -0
  249. data/test/test-gtk-file-chooser-dialog.rb +52 -0
  250. data/test/test-gtk-flow-box.rb +64 -0
  251. data/test/test-gtk-font-chooser-dialog.rb +41 -0
  252. data/test/test-gtk-gesture-multi-press.rb +31 -0
  253. data/test/test-gtk-gesture-pan.rb +32 -0
  254. data/test/test-gtk-gesture-single.rb +40 -0
  255. data/test/test-gtk-gesture.rb +29 -0
  256. data/test/{test_gtk_header_bar.rb → test-gtk-header-bar.rb} +15 -1
  257. data/test/{test_gtk_icon_theme.rb → test-gtk-icon-theme.rb} +0 -0
  258. data/test/{test_gtk_icon_view.rb → test-gtk-icon-view.rb} +24 -3
  259. data/test/test-gtk-image.rb +52 -0
  260. data/test/test-gtk-label.rb +39 -0
  261. data/test/{test_gtk_level_bar.rb → test-gtk-level-bar.rb} +12 -0
  262. data/test/test-gtk-list-store.rb +204 -0
  263. data/test/{test_gtk_menu_button.rb → test-gtk-menu-button.rb} +0 -0
  264. data/test/{test_gtk_menu_item.rb → test-gtk-menu-item.rb} +0 -0
  265. data/test/test-gtk-message-dialog.rb +62 -0
  266. data/test/test-gtk-paned.rb +109 -0
  267. data/test/test-gtk-places-sidebar.rb +68 -0
  268. data/test/test-gtk-radio-action.rb +45 -0
  269. data/test/test-gtk-radio-button.rb +82 -0
  270. data/test/test-gtk-recent-chooser-dialog.rb +53 -0
  271. data/test/{test_gtk_recent_data.rb → test-gtk-recent-data.rb} +0 -0
  272. data/test/{test_gtk_recent_filter_info.rb → test-gtk-recent-filter-info.rb} +1 -1
  273. data/test/test-gtk-recent-info.rb +37 -0
  274. data/test/{test_gtk_revealer.rb → test-gtk-revealer.rb} +0 -0
  275. data/test/test-gtk-scale-button.rb +56 -0
  276. data/test/{test_gtk_search_bar.rb → test-gtk-search-bar.rb} +1 -1
  277. data/test/{test_gtk_search_entry.rb → test-gtk-search-entry.rb} +0 -0
  278. data/test/test-gtk-spin-button.rb +45 -0
  279. data/test/{test_gtk_stack_switcher.rb → test-gtk-stack-switcher.rb} +0 -0
  280. data/test/{test_gtk_stack.rb → test-gtk-stack.rb} +8 -1
  281. data/test/test-gtk-stock.rb +26 -0
  282. data/test/{test_gtk_style_context.rb → test-gtk-style-context.rb} +0 -0
  283. data/test/{test_gtk_style_properties.rb → test-gtk-style-properties.rb} +0 -0
  284. data/test/test-gtk-style-provider.rb +25 -0
  285. data/test/test-gtk-switch.rb +34 -0
  286. data/test/test-gtk-target-entry.rb +37 -0
  287. data/test/test-gtk-text-buffer.rb +151 -0
  288. data/test/{test_gtk_container.rb → test-gtk-text-tag-table.rb} +13 -11
  289. data/test/test-gtk-toggle-action.rb +41 -0
  290. data/test/test-gtk-toggle-button.rb +39 -0
  291. data/test/test-gtk-tool-button.rb +53 -0
  292. data/test/test-gtk-tree-iter.rb +53 -0
  293. data/test/test-gtk-tree-model-filter.rb +55 -0
  294. data/test/test-gtk-tree-path.rb +42 -0
  295. data/test/test-gtk-tree-selection.rb +61 -0
  296. data/test/test-gtk-tree-view-column.rb +71 -0
  297. data/test/test-gtk-tree-view.rb +105 -0
  298. data/test/test-gtk-version.rb +47 -0
  299. data/test/test-gtk-widget.rb +148 -0
  300. data/test/{test_gtk.rb → test-gtk.rb} +0 -0
  301. metadata +256 -332
  302. data/ext/gtk3/conversions.c +0 -34
  303. data/ext/gtk3/gtk3.def +0 -10
  304. data/ext/gtk3/init.c +0 -34
  305. data/ext/gtk3/rbgtk-about-dialog.c +0 -113
  306. data/ext/gtk3/rbgtk-accel-group-entry.c +0 -94
  307. data/ext/gtk3/rbgtk-accel-group.c +0 -199
  308. data/ext/gtk3/rbgtk-accel-key.c +0 -120
  309. data/ext/gtk3/rbgtk-accel-label.c +0 -55
  310. data/ext/gtk3/rbgtk-accel-map.c +0 -135
  311. data/ext/gtk3/rbgtk-accelerator.c +0 -78
  312. data/ext/gtk3/rbgtk-accessible.c +0 -40
  313. data/ext/gtk3/rbgtk-action-bar.c +0 -73
  314. data/ext/gtk3/rbgtk-action-group.c +0 -467
  315. data/ext/gtk3/rbgtk-action.c +0 -205
  316. data/ext/gtk3/rbgtk-activatable.c +0 -30
  317. data/ext/gtk3/rbgtk-adjustment.c +0 -98
  318. data/ext/gtk3/rbgtk-alignment.c +0 -75
  319. data/ext/gtk3/rbgtk-allocation.c +0 -166
  320. data/ext/gtk3/rbgtk-app-chooser-button.c +0 -70
  321. data/ext/gtk3/rbgtk-app-chooser-dialog.c +0 -68
  322. data/ext/gtk3/rbgtk-app-chooser-widget.c +0 -40
  323. data/ext/gtk3/rbgtk-app-chooser.c +0 -47
  324. data/ext/gtk3/rbgtk-application.c +0 -69
  325. data/ext/gtk3/rbgtk-arrow.c +0 -56
  326. data/ext/gtk3/rbgtk-aspect-frame.c +0 -56
  327. data/ext/gtk3/rbgtk-assistant.c +0 -218
  328. data/ext/gtk3/rbgtk-bin.c +0 -42
  329. data/ext/gtk3/rbgtk-binding-set.c +0 -154
  330. data/ext/gtk3/rbgtk-border.c +0 -119
  331. data/ext/gtk3/rbgtk-box.c +0 -146
  332. data/ext/gtk3/rbgtk-buildable.c +0 -96
  333. data/ext/gtk3/rbgtk-builder.c +0 -166
  334. data/ext/gtk3/rbgtk-button-box.c +0 -87
  335. data/ext/gtk3/rbgtk-button.c +0 -93
  336. data/ext/gtk3/rbgtk-calendar.c +0 -118
  337. data/ext/gtk3/rbgtk-cell-editable.c +0 -57
  338. data/ext/gtk3/rbgtk-cell-layout.c +0 -144
  339. data/ext/gtk3/rbgtk-cell-renderer-accel.c +0 -41
  340. data/ext/gtk3/rbgtk-cell-renderer-combo.c +0 -38
  341. data/ext/gtk3/rbgtk-cell-renderer-pixbuf.c +0 -41
  342. data/ext/gtk3/rbgtk-cell-renderer-progress.c +0 -38
  343. data/ext/gtk3/rbgtk-cell-renderer-spin.c +0 -39
  344. data/ext/gtk3/rbgtk-cell-renderer-spinner.c +0 -38
  345. data/ext/gtk3/rbgtk-cell-renderer-text.c +0 -48
  346. data/ext/gtk3/rbgtk-cell-renderer-toggle.c +0 -39
  347. data/ext/gtk3/rbgtk-cell-renderer.c +0 -119
  348. data/ext/gtk3/rbgtk-cell-view.c +0 -95
  349. data/ext/gtk3/rbgtk-check-button.c +0 -64
  350. data/ext/gtk3/rbgtk-check-menu-item.c +0 -64
  351. data/ext/gtk3/rbgtk-clip-board.c +0 -389
  352. data/ext/gtk3/rbgtk-color-button.c +0 -55
  353. data/ext/gtk3/rbgtk-color-selection-dialog.c +0 -56
  354. data/ext/gtk3/rbgtk-color-selection.c +0 -219
  355. data/ext/gtk3/rbgtk-combo-box-text.c +0 -138
  356. data/ext/gtk3/rbgtk-combo-box.c +0 -147
  357. data/ext/gtk3/rbgtk-const.c +0 -79
  358. data/ext/gtk3/rbgtk-container.c +0 -788
  359. data/ext/gtk3/rbgtk-css-provider.c +0 -110
  360. data/ext/gtk3/rbgtk-dialog.c +0 -206
  361. data/ext/gtk3/rbgtk-drag-gdk-drag-context.c +0 -108
  362. data/ext/gtk3/rbgtk-drag.c +0 -93
  363. data/ext/gtk3/rbgtk-drawing-area.c +0 -42
  364. data/ext/gtk3/rbgtk-editable.c +0 -149
  365. data/ext/gtk3/rbgtk-entry-buffer.c +0 -87
  366. data/ext/gtk3/rbgtk-entry-completion.c +0 -122
  367. data/ext/gtk3/rbgtk-entry.c +0 -184
  368. data/ext/gtk3/rbgtk-event-box.c +0 -42
  369. data/ext/gtk3/rbgtk-expander.c +0 -49
  370. data/ext/gtk3/rbgtk-file-chooser-button.c +0 -50
  371. data/ext/gtk3/rbgtk-file-chooser-dialog.c +0 -62
  372. data/ext/gtk3/rbgtk-file-chooser-widget.c +0 -40
  373. data/ext/gtk3/rbgtk-file-chooser.c +0 -381
  374. data/ext/gtk3/rbgtk-file-filter.c +0 -128
  375. data/ext/gtk3/rbgtk-file-system-error.c +0 -48
  376. data/ext/gtk3/rbgtk-fixed.c +0 -61
  377. data/ext/gtk3/rbgtk-font-button.c +0 -49
  378. data/ext/gtk3/rbgtk-font-chooser-dialog.c +0 -56
  379. data/ext/gtk3/rbgtk-font-chooser-widget.c +0 -45
  380. data/ext/gtk3/rbgtk-font-chooser.c +0 -78
  381. data/ext/gtk3/rbgtk-frame.c +0 -69
  382. data/ext/gtk3/rbgtk-gdk-event.c +0 -38
  383. data/ext/gtk3/rbgtk-grid.c +0 -105
  384. data/ext/gtk3/rbgtk-handle-box.c +0 -45
  385. data/ext/gtk3/rbgtk-header-bar.c +0 -58
  386. data/ext/gtk3/rbgtk-hsv.c +0 -102
  387. data/ext/gtk3/rbgtk-icon-factory.c +0 -85
  388. data/ext/gtk3/rbgtk-icon-info.c +0 -115
  389. data/ext/gtk3/rbgtk-icon-set.c +0 -84
  390. data/ext/gtk3/rbgtk-icon-size.c +0 -91
  391. data/ext/gtk3/rbgtk-icon-source.c +0 -184
  392. data/ext/gtk3/rbgtk-icon-theme.c +0 -268
  393. data/ext/gtk3/rbgtk-icon-view.c +0 -295
  394. data/ext/gtk3/rbgtk-im-multicontext.c +0 -48
  395. data/ext/gtk3/rbgtk-image-menu-item.c +0 -67
  396. data/ext/gtk3/rbgtk-image.c +0 -162
  397. data/ext/gtk3/rbgtk-imcon-text-simple.c +0 -69
  398. data/ext/gtk3/rbgtk-imcon-text.c +0 -133
  399. data/ext/gtk3/rbgtk-infobar.c +0 -121
  400. data/ext/gtk3/rbgtk-invisible.c +0 -49
  401. data/ext/gtk3/rbgtk-label.c +0 -139
  402. data/ext/gtk3/rbgtk-layout.c +0 -93
  403. data/ext/gtk3/rbgtk-level-bar.c +0 -88
  404. data/ext/gtk3/rbgtk-link-button.c +0 -49
  405. data/ext/gtk3/rbgtk-list-store.c +0 -399
  406. data/ext/gtk3/rbgtk-lock-button.c +0 -50
  407. data/ext/gtk3/rbgtk-menu-button.c +0 -41
  408. data/ext/gtk3/rbgtk-menu-item.c +0 -95
  409. data/ext/gtk3/rbgtk-menu-shell.c +0 -106
  410. data/ext/gtk3/rbgtk-menu-tool-button.c +0 -81
  411. data/ext/gtk3/rbgtk-menu.c +0 -168
  412. data/ext/gtk3/rbgtk-menubar.c +0 -43
  413. data/ext/gtk3/rbgtk-message-dialog.c +0 -74
  414. data/ext/gtk3/rbgtk-misc.c +0 -70
  415. data/ext/gtk3/rbgtk-notebook.c +0 -383
  416. data/ext/gtk3/rbgtk-numerable-icon.c +0 -50
  417. data/ext/gtk3/rbgtk-overlay.c +0 -53
  418. data/ext/gtk3/rbgtk-page-setup-unix-dialog.c +0 -94
  419. data/ext/gtk3/rbgtk-page-setup.c +0 -195
  420. data/ext/gtk3/rbgtk-paned.c +0 -114
  421. data/ext/gtk3/rbgtk-paper-size.c +0 -179
  422. data/ext/gtk3/rbgtk-plug.c +0 -85
  423. data/ext/gtk3/rbgtk-print-context.c +0 -125
  424. data/ext/gtk3/rbgtk-print-job.c +0 -148
  425. data/ext/gtk3/rbgtk-print-operation-preview.c +0 -59
  426. data/ext/gtk3/rbgtk-print-operation.c +0 -149
  427. data/ext/gtk3/rbgtk-print-settings.c +0 -807
  428. data/ext/gtk3/rbgtk-print-unix-dialog.c +0 -90
  429. data/ext/gtk3/rbgtk-printer.c +0 -155
  430. data/ext/gtk3/rbgtk-progress-bar.c +0 -72
  431. data/ext/gtk3/rbgtk-radio-action.c +0 -122
  432. data/ext/gtk3/rbgtk-radio-button.c +0 -89
  433. data/ext/gtk3/rbgtk-radio-menu-item.c +0 -147
  434. data/ext/gtk3/rbgtk-radio-tool-button.c +0 -131
  435. data/ext/gtk3/rbgtk-range.c +0 -68
  436. data/ext/gtk3/rbgtk-recent-action.c +0 -64
  437. data/ext/gtk3/rbgtk-recent-chooser-dialog.c +0 -66
  438. data/ext/gtk3/rbgtk-recent-chooser-menu.c +0 -50
  439. data/ext/gtk3/rbgtk-recent-chooser-widget.c +0 -48
  440. data/ext/gtk3/rbgtk-recent-chooser.c +0 -198
  441. data/ext/gtk3/rbgtk-recent-data.c +0 -188
  442. data/ext/gtk3/rbgtk-recent-filter-info.c +0 -201
  443. data/ext/gtk3/rbgtk-recent-filter.c +0 -169
  444. data/ext/gtk3/rbgtk-recent-info.c +0 -213
  445. data/ext/gtk3/rbgtk-recent-manager.c +0 -134
  446. data/ext/gtk3/rbgtk-revealer.c +0 -42
  447. data/ext/gtk3/rbgtk-scale-button.c +0 -84
  448. data/ext/gtk3/rbgtk-scale.c +0 -97
  449. data/ext/gtk3/rbgtk-scrollable.c +0 -31
  450. data/ext/gtk3/rbgtk-scrollbar.c +0 -52
  451. data/ext/gtk3/rbgtk-scrolled-window.c +0 -122
  452. data/ext/gtk3/rbgtk-search-bar.c +0 -59
  453. data/ext/gtk3/rbgtk-search-entry.c +0 -42
  454. data/ext/gtk3/rbgtk-selection-data.c +0 -281
  455. data/ext/gtk3/rbgtk-selection.c +0 -168
  456. data/ext/gtk3/rbgtk-separator-menu-item.c +0 -39
  457. data/ext/gtk3/rbgtk-separator-tool-item.c +0 -38
  458. data/ext/gtk3/rbgtk-separator.c +0 -44
  459. data/ext/gtk3/rbgtk-settings.c +0 -229
  460. data/ext/gtk3/rbgtk-size-group.c +0 -66
  461. data/ext/gtk3/rbgtk-socket.c +0 -82
  462. data/ext/gtk3/rbgtk-spin-button.c +0 -132
  463. data/ext/gtk3/rbgtk-spinner.c +0 -55
  464. data/ext/gtk3/rbgtk-stack-switcher.c +0 -41
  465. data/ext/gtk3/rbgtk-stack.c +0 -106
  466. data/ext/gtk3/rbgtk-status-bar.c +0 -77
  467. data/ext/gtk3/rbgtk-status-icon.c +0 -122
  468. data/ext/gtk3/rbgtk-stock.c +0 -213
  469. data/ext/gtk3/rbgtk-style-context-gdk-screen.c +0 -61
  470. data/ext/gtk3/rbgtk-style-context.c +0 -411
  471. data/ext/gtk3/rbgtk-style-properties.c +0 -118
  472. data/ext/gtk3/rbgtk-style-provider.c +0 -67
  473. data/ext/gtk3/rbgtk-switch.c +0 -40
  474. data/ext/gtk3/rbgtk-table.c +0 -190
  475. data/ext/gtk3/rbgtk-target-list.c +0 -125
  476. data/ext/gtk3/rbgtk-tearoff-menu-item.c +0 -41
  477. data/ext/gtk3/rbgtk-text-appearance.c +0 -236
  478. data/ext/gtk3/rbgtk-text-attributes.c +0 -326
  479. data/ext/gtk3/rbgtk-text-buffer.c +0 -899
  480. data/ext/gtk3/rbgtk-text-child-anchor.c +0 -56
  481. data/ext/gtk3/rbgtk-text-iter.c +0 -732
  482. data/ext/gtk3/rbgtk-text-mark.c +0 -71
  483. data/ext/gtk3/rbgtk-text-tag-table.c +0 -96
  484. data/ext/gtk3/rbgtk-text-tag.c +0 -68
  485. data/ext/gtk3/rbgtk-text-view.c +0 -336
  486. data/ext/gtk3/rbgtk-theming-engine.c +0 -257
  487. data/ext/gtk3/rbgtk-toggle-action.c +0 -61
  488. data/ext/gtk3/rbgtk-toggle-button.c +0 -87
  489. data/ext/gtk3/rbgtk-toggle-tool-button.c +0 -61
  490. data/ext/gtk3/rbgtk-tool-button.c +0 -66
  491. data/ext/gtk3/rbgtk-tool-item.c +0 -200
  492. data/ext/gtk3/rbgtk-tool-itemgroup.c +0 -70
  493. data/ext/gtk3/rbgtk-tool-shell.c +0 -96
  494. data/ext/gtk3/rbgtk-toolbar.c +0 -118
  495. data/ext/gtk3/rbgtk-tooltip-gdk-display.c +0 -39
  496. data/ext/gtk3/rbgtk-tooltip.c +0 -100
  497. data/ext/gtk3/rbgtk-tree-dragdest.c +0 -28
  498. data/ext/gtk3/rbgtk-tree-dragsource.c +0 -28
  499. data/ext/gtk3/rbgtk-tree-iter.c +0 -258
  500. data/ext/gtk3/rbgtk-tree-model.c +0 -246
  501. data/ext/gtk3/rbgtk-tree-modelfilter.c +0 -197
  502. data/ext/gtk3/rbgtk-tree-modelsort.c +0 -111
  503. data/ext/gtk3/rbgtk-tree-path.c +0 -191
  504. data/ext/gtk3/rbgtk-tree-rowreference.c +0 -140
  505. data/ext/gtk3/rbgtk-tree-selection.c +0 -190
  506. data/ext/gtk3/rbgtk-tree-sortable.c +0 -122
  507. data/ext/gtk3/rbgtk-tree-store.c +0 -330
  508. data/ext/gtk3/rbgtk-tree-view-column.c +0 -256
  509. data/ext/gtk3/rbgtk-tree-view.c +0 -716
  510. data/ext/gtk3/rbgtk-ui-manager.c +0 -189
  511. data/ext/gtk3/rbgtk-viewport.c +0 -44
  512. data/ext/gtk3/rbgtk-volume-button.c +0 -41
  513. data/ext/gtk3/rbgtk-widget-path.c +0 -229
  514. data/ext/gtk3/rbgtk-widget.c +0 -1554
  515. data/ext/gtk3/rbgtk-window-group.c +0 -80
  516. data/ext/gtk3/rbgtk-window.c +0 -565
  517. data/ext/gtk3/rbgtk.c +0 -783
  518. data/ext/gtk3/rbgtk3.h +0 -90
  519. data/ext/gtk3/rbgtk3conversions.h +0 -439
  520. data/ext/gtk3/rbgtk3private.h +0 -300
  521. data/ext/gtk3/rbgtk3util.c +0 -67
  522. data/lib/gtk3/base.rb +0 -67
  523. data/sample/gtk-demo/appwindow.rb +0 -233
  524. data/sample/misc/composited-windows.rb +0 -113
  525. data/sample/misc/itemfactory.rb +0 -73
  526. data/sample/misc/itemfactory2.rb +0 -74
  527. data/sample/misc/keyboard_grab.rb +0 -29
  528. data/sample/misc/pangorenderer.rb +0 -66
  529. data/sample/misc/pointer_grab.rb +0 -34
  530. data/sample/misc/settings.rb +0 -41
  531. data/sample/misc/style_property.rb +0 -67
  532. data/sample/misc/style_property.rc +0 -19
  533. data/sample/misc/textbuffer_serialize.rb +0 -130
  534. data/sample/misc/to_drawable.rb +0 -42
  535. data/sample/misc/uimanager.rb +0 -148
  536. data/sample/misc/uimanager2.rb +0 -91
  537. data/sample/misc/uimanager2.xml +0 -36
  538. data/sample/misc/xbm_cursor.rb +0 -43
  539. data/sample/testgtk/3DRings.xpm +0 -116
  540. data/sample/testgtk/FilesQueue.xpm +0 -98
  541. data/sample/testgtk/Modeller.xpm +0 -117
  542. data/sample/testgtk/README +0 -14
  543. data/sample/testgtk/button.rb +0 -124
  544. data/sample/testgtk/buttonbox.rb +0 -100
  545. data/sample/testgtk/check-n.xpm +0 -21
  546. data/sample/testgtk/check-y.xpm +0 -21
  547. data/sample/testgtk/checkbutton.rb +0 -67
  548. data/sample/testgtk/circles.xbm +0 -46
  549. data/sample/testgtk/colorselect.rb +0 -33
  550. data/sample/testgtk/dialog.rb +0 -48
  551. data/sample/testgtk/entry.rb +0 -73
  552. data/sample/testgtk/filesel.rb +0 -65
  553. data/sample/testgtk/fontselection.rb +0 -56
  554. data/sample/testgtk/labels.rb +0 -74
  555. data/sample/testgtk/layout.rb +0 -108
  556. data/sample/testgtk/marble.xpm +0 -408
  557. data/sample/testgtk/menu.rb +0 -79
  558. data/sample/testgtk/notebook.rb +0 -280
  559. data/sample/testgtk/pixmap.rb +0 -58
  560. data/sample/testgtk/progressbar.rb +0 -173
  561. data/sample/testgtk/radiobutton.rb +0 -61
  562. data/sample/testgtk/range.rb +0 -65
  563. data/sample/testgtk/reparent.rb +0 -91
  564. data/sample/testgtk/sample.rb +0 -80
  565. data/sample/testgtk/savedposition.rb +0 -87
  566. data/sample/testgtk/scrolledwindow.rb +0 -67
  567. data/sample/testgtk/shapedwindow.rb +0 -99
  568. data/sample/testgtk/spinbutton.rb +0 -181
  569. data/sample/testgtk/statusbar.rb +0 -89
  570. data/sample/testgtk/test.xpm +0 -92
  571. data/sample/testgtk/testgtk.rb +0 -176
  572. data/sample/testgtk/testgtkrc +0 -146
  573. data/sample/testgtk/testgtkrc2 +0 -21
  574. data/sample/testgtk/togglebutton.rb +0 -53
  575. data/sample/testgtk/toolbar.rb +0 -82
  576. data/sample/testgtk/tooltips.rb +0 -41
  577. data/sample/testgtk/wmhints.rb +0 -40
  578. data/test/test_gtk_image.rb +0 -8
  579. data/test/test_gtk_list_store.rb +0 -105
  580. data/test/test_gtk_tree_path.rb +0 -20
  581. data/test/test_gtk_unix_print.rb +0 -14
  582. data/test/test_gtk_widget.rb +0 -24
@@ -1,147 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 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 cComboBox
25
- #define _SELF(self) (RVAL2GTKCOMBOBOX(self))
26
-
27
- static VALUE
28
- rg_initialize(int argc, VALUE *argv, VALUE self)
29
- {
30
- VALUE options, rb_entry, rb_model, rb_area;
31
- gboolean entry;
32
- GtkTreeModel *model;
33
- GtkCellArea *area;
34
- GtkWidget *widget;
35
-
36
- rb_scan_args(argc, argv, "01", &options);
37
- rbg_scan_options(options,
38
- "entry", &rb_entry,
39
- "model", &rb_model,
40
- "area", &rb_area,
41
- NULL);
42
- entry = RVAL2CBOOL(rb_entry);
43
- model = NIL_P(rb_model) ? NULL : RVAL2GTKTREEMODEL(rb_model);
44
- area = NIL_P(rb_area) ? NULL : RVAL2GTKCELLAREA(rb_area);
45
-
46
- if (entry) {
47
- if (model)
48
- widget = gtk_combo_box_new_with_model_and_entry(model);
49
- else if (area)
50
- widget = gtk_combo_box_new_with_area_and_entry(area);
51
- else
52
- widget = gtk_combo_box_new_with_entry();
53
- } else {
54
- if (model)
55
- widget = gtk_combo_box_new_with_model(model);
56
- else if (area)
57
- widget = gtk_combo_box_new_with_area(area);
58
- else
59
- widget = gtk_combo_box_new();
60
- }
61
- RBGTK_INITIALIZE(self, widget);
62
-
63
- return Qnil;
64
- }
65
-
66
- static VALUE
67
- rg_active_iter(VALUE self)
68
- {
69
- GtkTreeIter iter;
70
- VALUE val = Qnil;
71
- gboolean ret = gtk_combo_box_get_active_iter(_SELF(self), &iter);
72
- if (ret){
73
- iter.user_data3 = (gpointer)gtk_combo_box_get_model(_SELF(self));
74
- val = GTKTREEITER2RVAL(&iter);
75
- }
76
- return val;
77
- }
78
-
79
- static VALUE
80
- rg_set_active_iter(VALUE self, VALUE iter)
81
- {
82
- gtk_combo_box_set_active_iter(_SELF(self), RVAL2GTKTREEITER(iter));
83
- return self;
84
- }
85
-
86
- static VALUE
87
- rg_popup_accessible(VALUE self)
88
- {
89
- return GOBJ2RVAL(gtk_combo_box_get_popup_accessible(_SELF(self)));
90
- }
91
-
92
- static gboolean
93
- row_separator_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer *func)
94
- {
95
- iter->user_data3 = model;
96
- return RVAL2CBOOL(rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(model),
97
- GTKTREEITER2RVAL(iter)));
98
- }
99
-
100
- static VALUE
101
- rg_set_row_separator_func(VALUE self)
102
- {
103
- VALUE func = rb_block_proc();
104
- G_RELATIVE(self, func);
105
- gtk_combo_box_set_row_separator_func(_SELF(self),
106
- (GtkTreeViewRowSeparatorFunc)row_separator_func,
107
- (gpointer)func, NULL);
108
- return self;
109
- }
110
-
111
- static VALUE
112
- rg_title(VALUE self)
113
- {
114
- return CSTR2RVAL(gtk_combo_box_get_title(_SELF(self)));
115
- }
116
-
117
- /* TODO: merge to popup? */
118
- static VALUE
119
- rg_popup_for_device(VALUE self, VALUE device)
120
- {
121
- gtk_combo_box_popup_for_device(_SELF(self), RVAL2GDKDEVICE(device));
122
-
123
- return self;
124
- }
125
-
126
- static VALUE
127
- rg_set_title(VALUE self, VALUE title)
128
- {
129
- gtk_combo_box_set_title(_SELF(self), RVAL2CSTR(title));
130
-
131
- return self;
132
- }
133
-
134
- void
135
- Init_gtk_combobox(VALUE mGtk)
136
- {
137
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_COMBO_BOX, "ComboBox", mGtk);
138
-
139
- RG_DEF_METHOD(initialize, -1);
140
- RG_DEF_METHOD(active_iter, 0);
141
- RG_DEF_METHOD(set_active_iter, 1);
142
- RG_DEF_METHOD(popup_accessible, 0);
143
- RG_DEF_METHOD(set_row_separator_func, 0);
144
- RG_DEF_METHOD(title, 0);
145
- RG_DEF_METHOD(popup_for_device, 1);
146
- RG_DEF_METHOD(set_title, 1);
147
- }
@@ -1,79 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2002,2003 Ruby-GNOME2 Project Team
5
- * Copyright (C) 1998-2000 Yukihiro Matsumoto,
6
- * Daisuke Kanda,
7
- * Hiroshi Igarashi
8
- *
9
- * This library is free software; you can redistribute it and/or
10
- * modify it under the terms of the GNU Lesser General Public
11
- * License as published by the Free Software Foundation; either
12
- * version 2.1 of the License, or (at your option) any later version.
13
- *
14
- * This library is distributed in the hope that it will be useful,
15
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
- * Lesser General Public License for more details.
18
- *
19
- * You should have received a copy of the GNU Lesser General Public
20
- * License along with this library; if not, write to the Free Software
21
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22
- * MA 02110-1301 USA
23
- */
24
-
25
- #include "rbgtk3private.h"
26
-
27
- void
28
- Init_gtk_const(VALUE mGtk)
29
- {
30
- rb_define_const(mGtk, "BINDING_VERSION",
31
- rb_ary_new3(3, INT2FIX(RBGTK_MAJOR_VERSION),
32
- INT2FIX(RBGTK_MINOR_VERSION),
33
- INT2FIX(RBGTK_MICRO_VERSION)));
34
-
35
- rb_define_const(mGtk, "BUILD_VERSION",
36
- rb_ary_new3(3, INT2FIX(GTK_MAJOR_VERSION),
37
- INT2FIX(GTK_MINOR_VERSION),
38
- INT2FIX(GTK_MICRO_VERSION)));
39
-
40
- rb_define_const(mGtk, "VERSION",
41
- rb_ary_new3(3, INT2FIX(gtk_major_version),
42
- INT2FIX(gtk_minor_version),
43
- INT2FIX(gtk_micro_version)));
44
- rb_define_const(mGtk, "MAJOR_VERSION", INT2FIX(gtk_major_version));
45
- rb_define_const(mGtk, "MINOR_VERSION", INT2FIX(gtk_minor_version));
46
- rb_define_const(mGtk, "MICRO_VERSION", INT2FIX(gtk_micro_version));
47
- rb_define_const(mGtk, "BINARY_AGE", INT2FIX(gtk_binary_age));
48
- rb_define_const(mGtk, "INTERFACE_AGE", INT2FIX(gtk_interface_age));
49
-
50
- G_DEF_CLASS(GTK_TYPE_ACCEL_FLAGS, "AccelFlags", mGtk);
51
- G_DEF_CLASS(GTK_TYPE_ATTACH_OPTIONS, "AttachOptions", mGtk);
52
- G_DEF_CLASS(GTK_TYPE_CORNER_TYPE, "CornerType", mGtk);
53
- G_DEF_CLASS(GTK_TYPE_DELETE_TYPE, "DeleteType", mGtk);
54
- G_DEF_CLASS(GTK_TYPE_DIRECTION_TYPE, "DirectionType", mGtk);
55
- G_DEF_CLASS(GTK_TYPE_EXPANDER_STYLE, "ExpanderStyle", mGtk);
56
- G_DEF_CLASS(GTK_TYPE_JUSTIFICATION, "Justification", mGtk);
57
- G_DEF_CLASS(GTK_TYPE_MESSAGE_TYPE, "MessageType", mGtk);
58
- G_DEF_CLASS(GTK_TYPE_MOVEMENT_STEP, "MovementStep", mGtk);
59
- G_DEF_CLASS(GTK_TYPE_ORIENTATION, "Orientation", mGtk);
60
- G_DEF_CLASS(GTK_TYPE_PACK_TYPE, "PackType", mGtk);
61
- G_DEF_CLASS(GTK_TYPE_PATH_PRIORITY_TYPE, "PathPriorityType", mGtk);
62
- G_DEF_CLASS(GTK_TYPE_PATH_TYPE, "PathType", mGtk);
63
- G_DEF_CLASS(GTK_TYPE_POLICY_TYPE, "PolicyType", mGtk);
64
- G_DEF_CLASS(GTK_TYPE_POSITION_TYPE, "PositionType", mGtk);
65
- G_DEF_CLASS(GTK_TYPE_RELIEF_STYLE, "ReliefStyle", mGtk);
66
- G_DEF_CLASS(GTK_TYPE_RESIZE_MODE, "ResizeMode", mGtk);
67
- G_DEF_CLASS(GTK_TYPE_RESPONSE_TYPE, "ResponseType", mGtk);
68
- G_DEF_CLASS(GTK_TYPE_SCROLL_STEP, "ScrollStep", mGtk);
69
- G_DEF_CLASS(GTK_TYPE_SCROLL_TYPE, "ScrollType", mGtk);
70
- G_DEF_CLASS(GTK_TYPE_SELECTION_MODE, "SelectionMode", mGtk);
71
- G_DEF_CLASS(GTK_TYPE_SHADOW_TYPE, "ShadowType", mGtk);
72
- G_DEF_CLASS(GTK_TYPE_STATE_FLAGS, "StateFlags", mGtk);
73
- G_DEF_CLASS(GTK_TYPE_STATE_TYPE, "StateType", mGtk);
74
- /* deprecated
75
- G_DEF_CLASS(GTK_TYPE_SUBMENU_DIRECTION, "SubmenuDirection", mGtk);
76
- G_DEF_CLASS(GTK_TYPE_SUBMENU_PLACEMENT, "SubmenuPlacement", mGtk);
77
- */
78
- G_DEF_CLASS(GTK_TYPE_SORT_TYPE, "SortType", mGtk);
79
- }
@@ -1,788 +0,0 @@
1
- /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
- /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
- * Copyright (C) 2002-2006 Ruby-GNOME2 Project Team
5
- * Copyright (C) 1998-2000 Yukihiro Matsumoto,
6
- * Daisuke Kanda,
7
- * Hiroshi Igarashi
8
- *
9
- * This library is free software; you can redistribute it and/or
10
- * modify it under the terms of the GNU Lesser General Public
11
- * License as published by the Free Software Foundation; either
12
- * version 2.1 of the License, or (at your option) any later version.
13
- *
14
- * This library is distributed in the hope that it will be useful,
15
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
- * Lesser General Public License for more details.
18
- *
19
- * You should have received a copy of the GNU Lesser General Public
20
- * License along with this library; if not, write to the Free Software
21
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22
- * MA 02110-1301 USA
23
- */
24
-
25
- #include "rbgtk3private.h"
26
-
27
- #define RG_TARGET_NAMESPACE cContainer
28
- #define _SELF(self) (RVAL2GTKCONTAINER(self))
29
-
30
- #define RubyGtkContainerHookModule "RubyGtkContainerHook__"
31
-
32
- /*
33
- We don't need this.
34
- #define GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID(object, property_id, pspec)
35
- */
36
-
37
- static VALUE type_to_prop_setter_table;
38
- static VALUE type_to_prop_getter_table;
39
-
40
- static VALUE
41
- rg_resize_container_p(VALUE self)
42
- {
43
- return CBOOL2RVAL(GTK_IS_RESIZE_CONTAINER(_SELF(self)));
44
- }
45
-
46
- static VALUE
47
- rg_remove(VALUE self, VALUE other)
48
- {
49
- G_CHILD_REMOVE(self, other);
50
- gtk_container_remove(_SELF(self), RVAL2GTKWIDGET(other));
51
- return self;
52
- }
53
-
54
- static VALUE
55
- rg_check_resize(VALUE self)
56
- {
57
- gtk_container_check_resize(_SELF(self));
58
- return self;
59
- }
60
-
61
- static VALUE
62
- rg_each(int argc, VALUE *argv, VALUE self)
63
- {
64
- VALUE callback;
65
-
66
- rb_scan_args(argc, argv, "01", &callback);
67
- if (NIL_P(callback)) {
68
- callback = rb_block_proc();
69
- }
70
- gtk_container_foreach(_SELF(self), exec_callback, (gpointer)callback);
71
- return self;
72
- }
73
-
74
- static VALUE
75
- rg_each_forall(int argc, VALUE *argv, VALUE self)
76
- {
77
- VALUE callback;
78
-
79
- rb_scan_args(argc, argv, "01", &callback);
80
- if (NIL_P(callback)) {
81
- callback = rb_block_proc();
82
- }
83
- gtk_container_forall(_SELF(self), exec_callback, (gpointer)callback);
84
- return self;
85
- }
86
-
87
- static VALUE
88
- rg_children(VALUE self)
89
- {
90
- return GOBJGLIST2RVAL_FREE(gtk_container_get_children(_SELF(self)),
91
- g_list_free, NULL);
92
- }
93
-
94
- static VALUE
95
- rg_set_reallocate_redraws(VALUE self, VALUE needs_redraws)
96
- {
97
- gtk_container_set_reallocate_redraws(_SELF(self), RVAL2CBOOL(needs_redraws));
98
- return self;
99
- }
100
-
101
- static VALUE
102
- rg_set_focus_child(VALUE self, VALUE child)
103
- {
104
- gtk_container_set_focus_child(_SELF(self), RVAL2GTKWIDGET(child));
105
- return self;
106
- }
107
-
108
- static VALUE
109
- rg_set_focus_vadjustment(VALUE self, VALUE adjustment)
110
- {
111
- gtk_container_set_focus_vadjustment(_SELF(self),
112
- NIL_P(adjustment) ? NULL : RVAL2GTKADJUSTMENT(adjustment));
113
- return self;
114
- }
115
-
116
- static VALUE
117
- rg_set_focus_hadjustment(VALUE self, VALUE adjustment)
118
- {
119
- gtk_container_set_focus_hadjustment(_SELF(self),
120
- NIL_P(adjustment) ? NULL : RVAL2GTKADJUSTMENT(adjustment));
121
- return self;
122
- }
123
-
124
- static VALUE
125
- rg_focus_vadjustment(VALUE self)
126
- {
127
- return GOBJ2RVAL(gtk_container_get_focus_vadjustment(_SELF(self)));
128
- }
129
-
130
- static VALUE
131
- rg_focus_hadjustment(VALUE self)
132
- {
133
- return GOBJ2RVAL(gtk_container_get_focus_hadjustment(_SELF(self)));
134
- }
135
-
136
- static VALUE
137
- rg_resize_children(VALUE self)
138
- {
139
- gtk_container_resize_children(_SELF(self));
140
- return self;
141
- }
142
-
143
- static VALUE
144
- rg_child_type(VALUE self)
145
- {
146
- return GTYPE2CLASS(gtk_container_child_type(_SELF(self)));
147
- }
148
-
149
- /*
150
- void gtk_container_child_get (GtkContainer *container,
151
- GtkWidget *child,
152
- const gchar *first_prop_name,
153
- ...);
154
- void gtk_container_child_set (GtkContainer *container,
155
- GtkWidget *child,
156
- const gchar *first_prop_name,
157
- ...);
158
- */
159
-
160
- static void
161
- rbgtkcontainer_register_child_property_setter(GType gtype, const char *name, RValueToGValueFunc func)
162
- {
163
- GObjectClass* oclass;
164
- GParamSpec* pspec;
165
-
166
- VALUE table = rb_hash_aref(type_to_prop_setter_table, INT2FIX(gtype));
167
- if (NIL_P(table)){
168
- table = rb_hash_new();
169
- rb_hash_aset(type_to_prop_setter_table, INT2FIX(gtype), table);
170
- }
171
-
172
- oclass = g_type_class_ref(gtype);
173
- pspec = gtk_container_class_find_child_property(oclass, name);
174
-
175
- rb_hash_aset(table, rb_intern(g_param_spec_get_name(pspec)),
176
- Data_Wrap_Struct(rb_cData, NULL, NULL, func));
177
-
178
- g_type_class_unref(oclass);
179
- }
180
-
181
- static void
182
- rbgtkcontainer_register_child_property_getter(GType gtype, const char *name, GValueToRValueFunc func)
183
- {
184
- GObjectClass* oclass;
185
- GParamSpec* pspec;
186
-
187
- VALUE table = rb_hash_aref(type_to_prop_getter_table, INT2FIX(gtype));
188
- if (NIL_P(table)){
189
- table = rb_hash_new();
190
- rb_hash_aset(type_to_prop_getter_table, INT2FIX(gtype), table);
191
- }
192
-
193
- oclass = g_type_class_ref(gtype);
194
- pspec = gtk_container_class_find_child_property(oclass, name);
195
-
196
- rb_hash_aset(table, rb_intern(g_param_spec_get_name(pspec)),
197
- Data_Wrap_Struct(rb_cData, NULL, NULL, func));
198
- }
199
-
200
- static VALUE
201
- rg_child_get_property(VALUE self, VALUE child, VALUE prop_name)
202
- {
203
- GParamSpec* pspec;
204
- const char* name;
205
-
206
- if (SYMBOL_P(prop_name)) {
207
- name = rb_id2name(SYM2ID(prop_name));
208
- } else {
209
- name = RVAL2CSTR(prop_name);
210
- }
211
-
212
- pspec = gtk_container_class_find_child_property(
213
- G_OBJECT_GET_CLASS(RVAL2GOBJ(self)), name);
214
-
215
- if (!pspec)
216
- rb_raise(rb_eArgError, "No such property: %s", name);
217
- else {
218
- GValueToRValueFunc getter = NULL;
219
- GValue gval = G_VALUE_INIT;
220
- VALUE ret;
221
-
222
- {
223
- VALUE table = rb_hash_aref(type_to_prop_getter_table,
224
- INT2FIX(pspec->owner_type));
225
- if (!NIL_P(table)){
226
- VALUE obj = rb_hash_aref(table, rb_intern(g_param_spec_get_name(pspec)));
227
- if (!NIL_P(obj))
228
- Data_Get_Struct(obj, void, getter);
229
- }
230
- }
231
- g_value_init(&gval, G_PARAM_SPEC_VALUE_TYPE(pspec));
232
- gtk_container_child_get_property(RVAL2GTKCONTAINER(self),
233
- RVAL2GTKWIDGET(child),
234
- name , &gval);
235
- ret = getter ? getter(&gval) : GVAL2RVAL(&gval);
236
-
237
- G_CHILD_ADD(child, ret);
238
-
239
- g_value_unset(&gval);
240
- return ret;
241
- }
242
- }
243
-
244
- static VALUE
245
- rg_child_set_property(VALUE self, VALUE child, VALUE prop_name, VALUE val)
246
- {
247
- GParamSpec* pspec;
248
- const char* name;
249
-
250
- if (SYMBOL_P(prop_name)) {
251
- name = rb_id2name(SYM2ID(prop_name));
252
- } else {
253
- name = RVAL2CSTR(prop_name);
254
- }
255
-
256
- pspec = gtk_container_class_find_child_property(
257
- G_OBJECT_GET_CLASS(RVAL2GOBJ(self)), name);
258
-
259
- if (!pspec)
260
- rb_raise(rb_eArgError, "No such property: %s", name);
261
- else {
262
- RValueToGValueFunc setter = NULL;
263
- GValue gval = G_VALUE_INIT;
264
- g_value_init(&gval, G_PARAM_SPEC_VALUE_TYPE(pspec));
265
-
266
- {
267
- VALUE table = rb_hash_aref(type_to_prop_setter_table,
268
- INT2FIX(pspec->owner_type));
269
- if (!NIL_P(table)){
270
- VALUE obj = rb_hash_aref(table, rb_intern(g_param_spec_get_name(pspec)));
271
- if (!NIL_P(obj))
272
- Data_Get_Struct(obj, void, setter);
273
- }
274
- }
275
-
276
- if (setter)
277
- setter(val, &gval);
278
- else {
279
- if (!NIL_P(val))
280
- rbgobj_rvalue_to_gvalue(val, &gval);
281
- }
282
-
283
- G_CHILD_ADD(child, val);
284
-
285
- gtk_container_child_set_property(RVAL2GTKCONTAINER(self),
286
- RVAL2GTKWIDGET(child), name, &gval);
287
-
288
- g_value_unset(&gval);
289
- return self;
290
- }
291
- }
292
-
293
- static VALUE
294
- rg_add(int argc, VALUE *argv, VALUE self)
295
- {
296
- VALUE other, properties;
297
- GtkWidget *child;
298
-
299
- rb_scan_args(argc, argv, "11", &other, &properties);
300
-
301
- child = RVAL2GTKWIDGET(other);
302
- gtk_widget_freeze_child_notify(child);
303
- gtk_container_add(_SELF(self), child);
304
-
305
- G_CHILD_ADD(self, other);
306
-
307
- if (gtk_widget_get_parent(child) && (! NIL_P(properties))){
308
- int i;
309
- VALUE ary;
310
-
311
- Check_Type(properties, T_HASH);
312
- ary = rb_funcall(properties, rb_intern("to_a"), 0);
313
-
314
- for (i = 0; i < RARRAY_LEN(ary); i++) {
315
- rg_child_set_property(self, other,
316
- RARRAY_PTR(RARRAY_PTR(ary)[i])[0],
317
- RARRAY_PTR(RARRAY_PTR(ary)[i])[1]);
318
- }
319
- }
320
- gtk_widget_thaw_child_notify(child);
321
- return self;
322
- }
323
-
324
- /*
325
- void gtk_container_child_get_valist (GtkContainer *container,
326
- GtkWidget *child,
327
- const gchar *first_property_name,
328
- va_list var_args);
329
- void gtk_container_child_set_valist (GtkContainer *container,
330
- GtkWidget *child,
331
- const gchar *first_property_name,
332
- va_list var_args);
333
- */
334
-
335
- /* deprecated
336
- static VALUE
337
- rg_propagate_expose(VALUE self, VALUE child, VALUE event)
338
- {
339
- gtk_container_propagate_expose(_SELF(self), RVAL2GTKWIDGET(child),
340
- (GdkEventExpose *)RVAL2GEV(event));
341
- return self;
342
- }
343
- */
344
-
345
- static VALUE
346
- rg_focus_chain(VALUE self)
347
- {
348
- gboolean set_explicitly;
349
- GList *glist = NULL;
350
-
351
- set_explicitly = gtk_container_get_focus_chain(_SELF(self), &glist);
352
- if (!set_explicitly) {
353
- return Qnil;
354
- }
355
- return GOBJGLIST2RVAL_FREE(glist, g_list_free, NULL);
356
- }
357
-
358
- struct rval2gtkwidgetglist_args {
359
- VALUE ary;
360
- long n;
361
- GList *result;
362
- };
363
-
364
- static VALUE
365
- rbg_rval2gtkwidgetglist_body(VALUE value)
366
- {
367
- long i;
368
- struct rval2gtkwidgetglist_args *args = (struct rval2gtkwidgetglist_args *)value;
369
-
370
- for (i = 0; i < args->n; i++)
371
- args->result = g_list_append(args->result, RVAL2GTKWIDGET(RARRAY_PTR(args->ary)[i]));
372
-
373
- return Qnil;
374
- }
375
-
376
- static G_GNUC_NORETURN VALUE
377
- rbg_rval2gtkwidgetglist_rescue(VALUE value)
378
- {
379
- g_list_free(((struct rval2gtkwidgetglist_args *)value)->result);
380
-
381
- rb_exc_raise(rb_errinfo());
382
- }
383
-
384
- static GList *
385
- rbg_rval2gtkwidgetglist(VALUE value)
386
- {
387
- struct rval2gtkwidgetglist_args args;
388
-
389
- args.ary = rb_ary_to_ary(value);
390
- args.n = RARRAY_LEN(args.ary);
391
- args.result = NULL;
392
-
393
- rb_rescue(rbg_rval2gtkwidgetglist_body, (VALUE)&args,
394
- rbg_rval2gtkwidgetglist_rescue, (VALUE)&args);
395
-
396
- return args.result;
397
- }
398
-
399
- #define RVAL2GTKWIDGETGLIST(value) rbg_rval2gtkwidgetglist(value)
400
-
401
- static VALUE
402
- rg_set_focus_chain(VALUE self, VALUE rbfocusable_widgets)
403
- {
404
- GtkContainer *container = _SELF(self);
405
- GList *focusable_widgets = RVAL2GTKWIDGETGLIST(rbfocusable_widgets);
406
-
407
- gtk_container_set_focus_chain(container, focusable_widgets);
408
-
409
- g_list_free(focusable_widgets);
410
-
411
- return self;
412
- }
413
-
414
- static VALUE
415
- rg_unset_focus_chain(VALUE self)
416
- {
417
- gtk_container_unset_focus_chain(_SELF(self));
418
- return self;
419
- }
420
-
421
- static VALUE
422
- rg_s_child_property(VALUE self, VALUE property_name)
423
- {
424
- GObjectClass* oclass;
425
- const char* name;
426
- GParamSpec* prop;
427
- VALUE result;
428
-
429
- if (SYMBOL_P(property_name)) {
430
- name = rb_id2name(SYM2ID(property_name));
431
- } else {
432
- name = RVAL2CSTR(property_name);
433
- }
434
-
435
- oclass = g_type_class_ref(CLASS2GTYPE(self));
436
-
437
- prop = gtk_container_class_find_child_property(oclass, name);
438
- if (!prop){
439
- g_type_class_unref(oclass);
440
- rb_raise(rb_eNameError, "no such property: %s", name);
441
- }
442
-
443
- result = GOBJ2RVAL(prop);
444
- g_type_class_unref(oclass);
445
- return result;
446
- }
447
-
448
- static VALUE
449
- rg_s_install_child_property(int argc, VALUE *argv, VALUE self)
450
- {
451
- const RGObjClassInfo* cinfo = rbgobj_lookup_class(self);
452
- GtkContainerClass* gclass;
453
- VALUE spec, prop_id;
454
- GParamSpec* pspec;
455
-
456
- rb_scan_args(argc, argv, "11", &spec, &prop_id);
457
-
458
- pspec = RVAL2GPARAMSPEC(spec);
459
-
460
- if (cinfo->klass != self)
461
- rb_raise(rb_eTypeError, "%s isn't registerd class",
462
- rb_class2name(self));
463
-
464
- gclass = GTK_CONTAINER_CLASS(g_type_class_ref(cinfo->gtype));
465
- gtk_container_class_install_child_property(gclass,
466
- NIL_P(prop_id) ? 1 : NUM2UINT(prop_id),
467
- pspec);
468
-
469
- return self;
470
- }
471
-
472
- static VALUE
473
- rg_s_child_properties(int argc, VALUE *argv, VALUE self)
474
- {
475
- GObjectClass* oclass = g_type_class_ref(CLASS2GTYPE(self));
476
- guint n_properties;
477
- GParamSpec** props;
478
- VALUE inherited_too;
479
- VALUE ary;
480
- guint i;
481
-
482
- if (rb_scan_args(argc, argv, "01", &inherited_too) == 0)
483
- inherited_too = Qtrue;
484
-
485
- props = gtk_container_class_list_child_properties(oclass, &n_properties);
486
-
487
- ary = rb_ary_new();
488
- for (i = 0; i < n_properties; i++){
489
- if (RVAL2CBOOL(inherited_too)
490
- || GTYPE2CLASS(props[i]->owner_type) == self)
491
- rb_ary_push(ary, CSTR2RVAL(props[i]->name));
492
- }
493
- g_free(props);
494
- g_type_class_unref(oclass);
495
- return ary;
496
- }
497
-
498
- /**********************************************************************/
499
-
500
- static VALUE proc_mod_eval;
501
- static GQuark q_ruby_setter;
502
- static GQuark q_ruby_getter;
503
-
504
- static VALUE
505
- cont_initialize(int argc, VALUE *argv, VALUE self)
506
- {
507
- VALUE params_hash;
508
- GObject* gobj;
509
-
510
- rb_scan_args(argc, argv, "01", &params_hash);
511
-
512
- if (!NIL_P(params_hash))
513
- Check_Type(params_hash, T_HASH);
514
-
515
- gobj = rbgobj_gobject_new(RVAL2GTYPE(self), params_hash);
516
-
517
- RBGTK_INITIALIZE(self, gobj);
518
- return Qnil;
519
- }
520
-
521
- // FIXME: use rb_protect
522
- static void
523
- get_prop_func(GObject* object,
524
- G_GNUC_UNUSED guint property_id,
525
- GValue* value,
526
- GParamSpec* pspec)
527
- {
528
- ID ruby_getter = (ID)g_param_spec_get_qdata(pspec, q_ruby_getter);
529
- if (!ruby_getter) {
530
- gchar* name = g_strdup(g_param_spec_get_name(pspec));
531
- gchar* p;
532
- for (p = name; *p; p++) {
533
- if (*p == '-')
534
- *p = '_';
535
- }
536
- ruby_getter = rb_intern(name);
537
- g_param_spec_set_qdata(pspec, q_ruby_getter, (gpointer)ruby_getter);
538
- g_free(name);
539
- }
540
-
541
- {
542
- VALUE ret = rb_funcall(GOBJ2RVAL(object), ruby_getter, 0);
543
- rbgobj_rvalue_to_gvalue(ret, value);
544
- }
545
- }
546
-
547
- // FIXME: use rb_protect
548
- static void
549
- set_prop_func(GObject* object,
550
- G_GNUC_UNUSED guint property_id,
551
- const GValue* value,
552
- GParamSpec* pspec)
553
- {
554
- ID ruby_setter = (ID)g_param_spec_get_qdata(pspec, q_ruby_setter);
555
- if (!ruby_setter) {
556
- gchar* name = g_strconcat(g_param_spec_get_name(pspec), "=", NULL);
557
- gchar* p;
558
- for (p = name; *p; p++) {
559
- if (*p == '-')
560
- *p = '_';
561
- }
562
- ruby_setter = rb_intern(name);
563
- g_param_spec_set_qdata(pspec, q_ruby_setter, (gpointer)ruby_setter);
564
- g_free(name);
565
- }
566
-
567
- rb_funcall(GOBJ2RVAL(object), ruby_setter, 1, GVAL2RVAL(value));
568
- }
569
-
570
- // FIXME: use rb_protect
571
- static void
572
- get_child_prop_func(GtkContainer *container,
573
- GtkWidget *child,
574
- G_GNUC_UNUSED guint property_id,
575
- GValue *value,
576
- GParamSpec *pspec)
577
- {
578
- ID ruby_getter = (ID)g_param_spec_get_qdata(pspec, q_ruby_getter);
579
- if (!ruby_getter) {
580
- gchar* name = g_strconcat("get_", g_param_spec_get_name(pspec), NULL);
581
- gchar* p;
582
- for (p = name; *p; p++) {
583
- if (*p == '-')
584
- *p = '_';
585
- }
586
- ruby_getter = rb_intern(name);
587
- g_param_spec_set_qdata(pspec, q_ruby_getter, (gpointer)ruby_getter);
588
- g_free(name);
589
- }
590
-
591
- {
592
- VALUE ret = rb_funcall(GOBJ2RVAL(container), ruby_getter, 1, GOBJ2RVAL(child));
593
- rbgobj_rvalue_to_gvalue(ret, value);
594
- }
595
- }
596
-
597
- // FIXME: use rb_protect
598
- static void
599
- set_child_prop_func(GtkContainer *container,
600
- GtkWidget *child,
601
- G_GNUC_UNUSED guint property_id,
602
- const GValue *value,
603
- GParamSpec *pspec)
604
- {
605
- ID ruby_setter = (ID)g_param_spec_get_qdata(pspec, q_ruby_setter);
606
- if (!ruby_setter) {
607
- gchar* name = g_strconcat("set_", g_param_spec_get_name(pspec), NULL);
608
- gchar* p;
609
- for (p = name; *p; p++) {
610
- if (*p == '-')
611
- *p = '_';
612
- }
613
- ruby_setter = rb_intern(name);
614
- g_param_spec_set_qdata(pspec, q_ruby_setter, (gpointer)ruby_setter);
615
- g_free(name);
616
- }
617
-
618
- rb_funcall(GOBJ2RVAL(container), ruby_setter, 2, GOBJ2RVAL(child), GVAL2RVAL(value));
619
- }
620
-
621
- // FIXME: use rb_protect
622
- static void
623
- class_init_func(gpointer g_class, G_GNUC_UNUSED gpointer class_data)
624
- {
625
- GObjectClass* g_class1 = G_OBJECT_CLASS(g_class);
626
- GtkContainerClass* g_class2 = GTK_CONTAINER_CLASS(g_class);
627
-
628
- g_class1->set_property = set_prop_func;
629
- g_class1->get_property = get_prop_func;
630
-
631
- g_class2->set_child_property = set_child_prop_func;
632
- g_class2->get_child_property = get_child_prop_func;
633
-
634
- #if 0
635
- VALUE class_init_proc = (VALUE)class_data;
636
- rb_funcall(proc_mod_eval, rb_intern("call"), 2,
637
- GTYPE2CLASS(G_TYPE_FROM_CLASS(g_class)), class_init_proc);
638
- #endif
639
- }
640
-
641
- static VALUE
642
- rg_s_type_register(int argc, VALUE* argv, VALUE self)
643
- {
644
- VALUE type_name, flags;
645
- volatile VALUE class_init_proc = Qnil;
646
- GType parent_type;
647
- GTypeInfo* info;
648
-
649
- rb_scan_args(argc, argv, "03", &type_name, &info, &flags);
650
-
651
- /* TODO: Replace this copy-paste job with the real thing in glib2. */
652
- {
653
- const RGObjClassInfo* cinfo = rbgobj_lookup_class(self);
654
- if (cinfo->klass == self)
655
- rb_raise(rb_eTypeError, "already registered");
656
- }
657
-
658
- {
659
- VALUE superclass = rb_funcall(self, rb_intern("superclass"), 0);
660
- const RGObjClassInfo* cinfo = CLASS2CINFO(superclass);
661
- if (cinfo->klass != superclass)
662
- rb_raise(rb_eTypeError, "super class must be registered to GLib");
663
- parent_type = cinfo->gtype;
664
- }
665
-
666
- if (NIL_P(type_name)){
667
- VALUE s = rb_funcall(self, rb_intern("name"), 0);
668
-
669
- if (strlen(StringValuePtr(s)) == 0)
670
- rb_raise(rb_eTypeError, "can't determine type name");
671
-
672
- type_name = rb_funcall(
673
- rb_eval_string("lambda{|x| x.gsub(/::/,'') }"),
674
- rb_intern("call"), 1, s);
675
- }
676
-
677
- {
678
- GTypeQuery query;
679
- g_type_query(parent_type, &query);
680
-
681
- /* TODO: This should not require a new GTypeInfo, as GLib doesn't
682
- * retain a copy. */
683
- info = g_new0(GTypeInfo, 1);
684
- info->class_size = query.class_size;
685
- info->base_init = NULL;
686
- info->base_finalize = NULL;
687
- info->class_init = class_init_func;
688
- info->class_finalize = NULL;
689
- info->class_data = (gpointer)class_init_proc;
690
- info->instance_size = query.instance_size;
691
- info->n_preallocs = 0;
692
- info->instance_init = NULL;
693
- info->value_table = NULL;
694
- }
695
-
696
- {
697
- GType type = g_type_register_static(parent_type,
698
- StringValuePtr(type_name),
699
- info,
700
- NIL_P(flags) ? 0 : NUM2INT(flags));
701
- G_RELATIVE(self, class_init_proc);
702
-
703
- rbgobj_register_class(self, type, TRUE, TRUE);
704
-
705
- {
706
- RGObjClassInfo* cinfo = (RGObjClassInfo*)rbgobj_lookup_class(self);
707
- cinfo->flags |= RBGOBJ_DEFINED_BY_RUBY;
708
- }
709
-
710
- {
711
- GType parent = g_type_parent(type);
712
- const RGObjClassInfo* cinfo = GTYPE2CINFO(parent);
713
- VALUE m = rb_define_module_under(self, RubyGtkContainerHookModule);
714
-
715
- if (! (cinfo->flags & RBGOBJ_DEFINED_BY_RUBY)) {
716
- rbg_define_method(m, "initialize", cont_initialize, -1);
717
- }
718
-
719
- rb_include_module(self, m);
720
- }
721
-
722
- return Qnil;
723
- }
724
- }
725
- /**********************************************************************/
726
-
727
- static void
728
- cont_mark_callback(GtkWidget *w, G_GNUC_UNUSED gpointer data)
729
- {
730
- rbgobj_gc_mark_instance(w);
731
- }
732
-
733
- static void
734
- cont_mark(void* p)
735
- {
736
- gtk_container_forall(GTK_CONTAINER(p), cont_mark_callback, NULL);
737
- }
738
-
739
- /**********************************************************************/
740
-
741
- void
742
- Init_gtk_container(VALUE mGtk)
743
- {
744
- VALUE RG_TARGET_NAMESPACE;
745
-
746
- RG_TARGET_NAMESPACE = G_DEF_CLASS_WITH_GC_FUNC(GTK_TYPE_CONTAINER, "Container",
747
- mGtk, cont_mark, NULL);
748
- RG_DEF_METHOD_P(resize_container, 0);
749
- RG_DEF_METHOD(add, -1);
750
- RG_DEF_ALIAS("<<", "add");
751
- RG_DEF_METHOD(remove, 1);
752
- RG_DEF_METHOD(check_resize, 0);
753
- RG_DEF_METHOD(each, -1);
754
- RG_DEF_METHOD(each_forall, -1);
755
- RG_DEF_METHOD(children, 0);
756
- RG_DEF_METHOD(set_reallocate_redraws, 1);
757
- RG_DEF_METHOD(set_focus_child, 1);
758
- RG_DEF_METHOD(set_focus_vadjustment, 1);
759
- RG_DEF_METHOD(set_focus_hadjustment, 1);
760
- RG_DEF_METHOD(focus_vadjustment, 0);
761
- RG_DEF_METHOD(focus_hadjustment, 0);
762
- RG_DEF_METHOD(resize_children, 0);
763
- RG_DEF_METHOD(child_type, 0);
764
- RG_DEF_METHOD(child_get_property, 2);
765
- RG_DEF_METHOD(child_set_property, 3);
766
- /* deprecated
767
- RG_DEF_METHOD(propagate_expose, 2);
768
- */
769
- RG_DEF_METHOD(focus_chain, 0);
770
- RG_DEF_METHOD(set_focus_chain, 1);
771
- RG_DEF_METHOD(unset_focus_chain, 0);
772
- RG_DEF_SMETHOD(child_property, 1);
773
- RG_DEF_SMETHOD(child_properties, -1);
774
- RG_DEF_SMETHOD(install_child_property, -1);
775
-
776
- q_ruby_getter = g_quark_from_static_string("__ruby_getter");
777
- q_ruby_setter = g_quark_from_static_string("__ruby_setter");
778
-
779
- RG_DEF_SMETHOD(type_register, -1);
780
-
781
- rb_global_variable(&proc_mod_eval);
782
- proc_mod_eval = rb_eval_string("lambda{|obj,proc| obj.module_eval(&proc)}");
783
-
784
- rb_global_variable(&type_to_prop_setter_table);
785
- rb_global_variable(&type_to_prop_getter_table);
786
- type_to_prop_setter_table = rb_hash_new();
787
- type_to_prop_getter_table = rb_hash_new();
788
- }