gtk3 2.2.5 → 3.0.1

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 (586) 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/gtk3.rb +70 -9
  12. data/lib/gtk3/about-dialog.rb +34 -0
  13. data/lib/gtk3/action-group.rb +131 -0
  14. data/lib/gtk3/action.rb +27 -0
  15. data/lib/gtk3/binding-set.rb +31 -0
  16. data/lib/gtk3/border.rb +28 -0
  17. data/lib/gtk3/box.rb +40 -0
  18. data/lib/gtk3/builder.rb +91 -0
  19. data/lib/gtk3/button.rb +53 -0
  20. data/lib/gtk3/calendar.rb +24 -0
  21. data/lib/gtk3/cell-layout.rb +31 -0
  22. data/{test/test_gtk_accel_group_entry.rb → lib/gtk3/clipboard.rb} +8 -7
  23. data/lib/gtk3/color-chooser-dialog.rb +27 -0
  24. data/lib/gtk3/combo-box-text.rb +30 -0
  25. data/lib/gtk3/combo-box.rb +55 -0
  26. data/lib/gtk3/container.rb +51 -0
  27. data/lib/gtk3/css-provider.rb +38 -0
  28. data/lib/gtk3/deprecated.rb +193 -99
  29. data/lib/gtk3/dialog.rb +65 -0
  30. data/lib/gtk3/file-chooser-dialog.rb +36 -0
  31. data/lib/gtk3/font-chooser-dialog.rb +27 -0
  32. data/lib/gtk3/gdk-drag-context.rb +29 -0
  33. data/lib/gtk3/gesture-multi-press.rb +31 -0
  34. data/lib/gtk3/icon-theme.rb +28 -0
  35. data/lib/gtk3/icon-view.rb +45 -0
  36. data/lib/gtk3/image.rb +113 -0
  37. data/lib/gtk3/label.rb +54 -0
  38. data/{test/test_gtk_tree_selection.rb → lib/gtk3/level-bar.rb} +13 -12
  39. data/lib/gtk3/list-store.rb +81 -0
  40. data/lib/gtk3/loader.rb +403 -0
  41. data/lib/gtk3/menu-item.rb +33 -0
  42. data/lib/gtk3/message-dialog.rb +49 -0
  43. data/lib/gtk3/paned.rb +37 -0
  44. data/lib/gtk3/radio-action.rb +28 -0
  45. data/lib/gtk3/radio-button.rb +49 -0
  46. data/lib/gtk3/recent-chooser-dialog.rb +38 -0
  47. data/lib/gtk3/scale-button.rb +35 -0
  48. data/{test/test_gtk_allocation.rb → lib/gtk3/scrolled-window.rb} +7 -7
  49. data/lib/gtk3/search-bar.rb +27 -0
  50. data/lib/gtk3/selection-data.rb +42 -0
  51. data/lib/gtk3/spin-button.rb +34 -0
  52. data/lib/gtk3/stack.rb +54 -0
  53. data/lib/gtk3/stock.rb +70 -0
  54. data/lib/gtk3/style-context.rb +26 -0
  55. data/lib/gtk3/style-properties.rb +29 -0
  56. data/lib/gtk3/target-entry.rb +27 -0
  57. data/lib/gtk3/target-list.rb +31 -0
  58. data/lib/gtk3/text-buffer.rb +165 -0
  59. data/lib/gtk3/text-iter.rb +39 -0
  60. data/lib/gtk3/text-tag-table.rb +31 -0
  61. data/lib/gtk3/toggle-action.rb +27 -0
  62. data/lib/gtk3/toggle-button.rb +35 -0
  63. data/lib/gtk3/tool-button.rb +36 -0
  64. data/lib/gtk3/tree-iter.rb +52 -0
  65. data/lib/gtk3/tree-model-filter.rb +45 -0
  66. data/lib/gtk3/tree-model.rb +51 -0
  67. data/lib/gtk3/tree-path.rb +29 -0
  68. data/lib/gtk3/tree-selection.rb +30 -0
  69. data/lib/gtk3/tree-store.rb +59 -0
  70. data/lib/gtk3/tree-view-column.rb +35 -0
  71. data/lib/gtk3/tree-view.rb +41 -0
  72. data/lib/gtk3/ui-manager.rb +35 -0
  73. data/lib/gtk3/version.rb +28 -0
  74. data/lib/gtk3/widget.rb +127 -0
  75. data/lib/gtk3/window.rb +29 -0
  76. data/sample/gtk-demo/TODO +69 -0
  77. data/sample/gtk-demo/application.ui +107 -0
  78. data/sample/gtk-demo/builder.rb +2 -2
  79. data/sample/gtk-demo/{button_box.rb → button-box.rb} +16 -17
  80. data/sample/gtk-demo/common.rb +1 -1
  81. data/sample/gtk-demo/css_accordion.rb +5 -5
  82. data/sample/gtk-demo/css_basics.css +22 -0
  83. data/sample/gtk-demo/css_basics.rb +103 -0
  84. data/sample/gtk-demo/dialog.rb +3 -3
  85. data/sample/gtk-demo/entry_completion.rb +1 -1
  86. data/sample/gtk-demo/hypertext.rb +1 -1
  87. data/sample/gtk-demo/main.rb +65 -91
  88. data/sample/gtk-demo/menus.rb +4 -4
  89. data/sample/gtk-demo/menus.ui +107 -0
  90. data/sample/gtk-demo/sizegroup.rb +1 -1
  91. data/sample/misc/aboutdialog.rb +10 -18
  92. data/sample/misc/aboutdialog2.rb +4 -16
  93. data/sample/misc/alpha-demo.rb +17 -16
  94. data/sample/misc/application.rb +31 -0
  95. data/sample/misc/assistant.rb +3 -5
  96. data/sample/misc/bindings.rb +64 -50
  97. data/sample/misc/builder-from-resource.rb +53 -0
  98. data/sample/misc/builder.rb +29 -0
  99. data/sample/misc/builder.ui +46 -0
  100. data/sample/misc/button.rb +18 -19
  101. data/sample/misc/button2.rb +5 -5
  102. data/sample/misc/buttonbox.rb +2 -4
  103. data/sample/misc/cairo-cursor.rb +37 -0
  104. data/sample/misc/cairo-pong.rb +17 -17
  105. data/sample/misc/calendar.rb +18 -18
  106. data/sample/misc/checkbutton.rb +3 -4
  107. data/sample/misc/colorselection.rb +10 -9
  108. data/sample/misc/{combo_check.rb → combo-check.rb} +1 -3
  109. data/sample/misc/combobox-from-cellrender.rb +48 -0
  110. data/sample/misc/combobox.rb +10 -10
  111. data/sample/misc/cursor.rb +5 -5
  112. data/sample/misc/dialog.rb +3 -4
  113. data/sample/misc/dialog2.rb +5 -6
  114. data/sample/misc/dnd.rb +27 -23
  115. data/sample/misc/dndtreeview.rb +16 -18
  116. data/sample/misc/drag-move.rb +3 -6
  117. data/sample/misc/drawing.rb +74 -86
  118. data/sample/misc/entry.rb +2 -4
  119. data/sample/misc/entrycompletion.rb +5 -5
  120. data/sample/misc/eventbox.rb +58 -0
  121. data/sample/misc/expander.rb +6 -5
  122. data/sample/misc/filechooser.rb +5 -7
  123. data/sample/misc/flowbox.rb +86 -0
  124. data/sample/misc/frame.rb +10 -12
  125. data/sample/misc/gdkscreen.rb +3 -3
  126. data/sample/misc/gtkglarea1.rb +114 -0
  127. data/sample/misc/gtkglarea2.rb +194 -0
  128. data/sample/misc/helloworld.rb +2 -5
  129. data/sample/misc/iconview.rb +9 -9
  130. data/sample/misc/image.rb +7 -6
  131. data/sample/misc/keyboard-grab.rb +34 -0
  132. data/sample/misc/label.rb +10 -11
  133. data/sample/misc/linkbutton.rb +3 -10
  134. data/sample/misc/list-store-usage.rb +96 -0
  135. data/sample/misc/listview.rb +9 -11
  136. data/sample/misc/menu.rb +45 -25
  137. data/sample/misc/{misc_button.rb → misc-button.rb} +15 -14
  138. data/sample/misc/mouse-gesture.rb +35 -42
  139. data/sample/misc/pango-layout.rb +100 -0
  140. data/sample/misc/pointer-grab.rb +36 -0
  141. data/sample/misc/print.rb +202 -201
  142. data/sample/misc/properties.rb +16 -14
  143. data/sample/misc/radiobutton.rb +18 -20
  144. data/sample/misc/recentchooserdialog.rb +8 -10
  145. data/sample/misc/rgtk+cairo.rb +26 -27
  146. data/sample/misc/scalebutton.rb +19 -7
  147. data/sample/misc/simple_window.gresource.xml +6 -0
  148. data/sample/misc/simple_window.ui +16 -0
  149. data/sample/misc/statusicon.rb +11 -14
  150. data/sample/misc/stock.rb +14 -11
  151. data/sample/misc/style-property.rb +76 -0
  152. data/sample/misc/t-gtkplug.rb +11 -14
  153. data/sample/misc/t-gtksocket.rb +19 -18
  154. data/sample/misc/template-from-resource.rb +59 -0
  155. data/sample/misc/template.gresource.xml +6 -0
  156. data/sample/misc/template.ui +16 -0
  157. data/sample/misc/textbuffer-serialize.rb +133 -0
  158. data/sample/misc/threads.rb +54 -13
  159. data/sample/misc/to-drawable.rb +34 -0
  160. data/sample/misc/togglebutton.rb +6 -8
  161. data/sample/misc/toolbar.rb +39 -30
  162. data/sample/misc/tooltips.rb +95 -104
  163. data/sample/misc/{tree_combo.rb → tree-combo.rb} +21 -27
  164. data/sample/misc/{tree_progress.rb → tree-progress.rb} +12 -17
  165. data/sample/misc/treemodelfilter.rb +13 -10
  166. data/sample/misc/treeview.rb +18 -20
  167. data/sample/misc/window.rb +2 -4
  168. data/sample/misc/xbm-cursor.rb +86 -0
  169. data/sample/tutorial/README.md +441 -0
  170. data/sample/tutorial/builder.ui +66 -0
  171. data/sample/tutorial/example-0.rb +32 -0
  172. data/sample/tutorial/example-1.rb +47 -0
  173. data/sample/tutorial/example-2.rb +68 -0
  174. data/sample/tutorial/example-4.rb +41 -0
  175. data/sample/tutorial/exampleapp.desktop +6 -0
  176. data/sample/tutorial/exampleapp.png +0 -0
  177. data/sample/tutorial/exampleapp1/exampleapp.rb +57 -0
  178. data/sample/tutorial/exampleapp2/exampleapp.gresource.xml +6 -0
  179. data/sample/tutorial/exampleapp2/exampleapp.rb +87 -0
  180. data/sample/tutorial/exampleapp2/window.ui +32 -0
  181. data/sample/tutorial/exampleapp3/exampleapp.gresource.xml +6 -0
  182. data/sample/tutorial/exampleapp3/exampleapp.rb +106 -0
  183. data/sample/tutorial/exampleapp3/window.ui +32 -0
  184. data/sample/tutorial/exampleapp4/app-menu.ui +18 -0
  185. data/sample/tutorial/exampleapp4/exampleapp.gresource.xml +7 -0
  186. data/sample/tutorial/exampleapp4/exampleapp.rb +124 -0
  187. data/sample/tutorial/exampleapp4/window.ui +32 -0
  188. data/sample/tutorial/exampleapp5/app-menu.ui +18 -0
  189. data/sample/tutorial/exampleapp5/exampleapp.gresource.xml +7 -0
  190. data/sample/tutorial/exampleapp5/exampleapp.rb +135 -0
  191. data/sample/tutorial/exampleapp5/org.gtk.exampleapp.gschema.xml +20 -0
  192. data/sample/tutorial/exampleapp5/window.ui +32 -0
  193. data/sample/tutorial/exampleapp6/app-menu.ui +18 -0
  194. data/sample/tutorial/exampleapp6/exampleapp.gresource.xml +8 -0
  195. data/sample/tutorial/exampleapp6/exampleapp.rb +168 -0
  196. data/sample/tutorial/exampleapp6/org.gtk.exampleapp.gschema.xml +20 -0
  197. data/sample/tutorial/exampleapp6/prefs.ui +70 -0
  198. data/sample/tutorial/exampleapp6/window.ui +32 -0
  199. data/sample/tutorial/exampleapp7/app-menu.ui +18 -0
  200. data/sample/tutorial/exampleapp7/exampleapp.gresource.xml +8 -0
  201. data/sample/tutorial/exampleapp7/exampleapp.rb +200 -0
  202. data/sample/tutorial/exampleapp7/org.gtk.exampleapp.gschema.xml +20 -0
  203. data/sample/tutorial/exampleapp7/prefs.ui +70 -0
  204. data/sample/tutorial/exampleapp7/window.ui +63 -0
  205. data/sample/tutorial/exampleapp8/app-menu.ui +18 -0
  206. data/sample/tutorial/exampleapp8/exampleapp.gresource.xml +9 -0
  207. data/sample/tutorial/exampleapp8/exampleapp.rb +247 -0
  208. data/sample/tutorial/exampleapp8/gears-menu.ui +12 -0
  209. data/sample/tutorial/exampleapp8/org.gtk.exampleapp.gschema.xml +25 -0
  210. data/sample/tutorial/exampleapp8/prefs.ui +70 -0
  211. data/sample/tutorial/exampleapp8/window.ui +100 -0
  212. data/sample/tutorial/exampleapp9/app-menu.ui +18 -0
  213. data/sample/tutorial/exampleapp9/exampleapp.gresource.xml +9 -0
  214. data/sample/tutorial/exampleapp9/exampleapp.rb +268 -0
  215. data/sample/tutorial/exampleapp9/gears-menu.ui +16 -0
  216. data/sample/tutorial/exampleapp9/org.gtk.exampleapp.gschema.xml +25 -0
  217. data/sample/tutorial/exampleapp9/prefs.ui +70 -0
  218. data/sample/tutorial/exampleapp9/window.ui +117 -0
  219. data/test/fixture/Rakefile +32 -0
  220. data/test/fixture/gnome-logo-icon.png +0 -0
  221. data/test/fixture/image.gresource +0 -0
  222. data/test/fixture/image.gresource.xml +6 -0
  223. data/test/fixture/simple_window.gresource.xml +6 -0
  224. data/test/fixture/simple_window.ui +16 -0
  225. data/test/gtk-test-utils.rb +46 -4
  226. data/test/run-test.rb +9 -1
  227. data/test/{test_gc.rb → test-gc.rb} +0 -0
  228. data/test/{test_gtk_css_provider.rb → test-gdk-display.rb} +6 -8
  229. data/test/test-gdk-event.rb +24 -0
  230. data/test/test-gdk-screen.rb +42 -0
  231. data/test/{test_gtk_about_dialog.rb → test-gtk-about-dialog.rb} +0 -0
  232. data/test/test-gtk-accel-group.rb +23 -0
  233. data/test/{test_gtk_accel_key.rb → test-gtk-accel-key.rb} +0 -0
  234. data/test/{test_gtk_accessible.rb → test-gtk-accessible.rb} +0 -0
  235. data/test/{test_gtk_action_group.rb → test-gtk-action-bar.rb} +20 -23
  236. data/test/test-gtk-action-group.rb +48 -0
  237. data/test/test-gtk-action.rb +41 -0
  238. data/test/test-gtk-assistant.rb +44 -0
  239. data/test/{test_gtk_border.rb → test-gtk-border.rb} +0 -0
  240. data/test/test-gtk-box.rb +28 -0
  241. data/test/{test_gtk_buildable.rb → test-gtk-buildable.rb} +6 -6
  242. data/test/{test_gtk_builder.rb → test-gtk-builder.rb} +45 -11
  243. data/test/test-gtk-button.rb +54 -0
  244. data/test/test-gtk-cell-layout.rb +35 -0
  245. data/test/test-gtk-color-chooser-dialog.rb +41 -0
  246. data/test/test-gtk-combo-box-text.rb +34 -0
  247. data/test/test-gtk-combo-box.rb +97 -0
  248. data/test/test-gtk-container.rb +171 -0
  249. data/test/test-gtk-css-provider.rb +101 -0
  250. data/test/test-gtk-dialog.rb +74 -0
  251. data/test/{test_gtk_entry.rb → test-gtk-entry.rb} +0 -0
  252. data/test/test-gtk-event-controller.rb +35 -0
  253. data/test/test-gtk-file-chooser-dialog.rb +52 -0
  254. data/test/test-gtk-flow-box.rb +64 -0
  255. data/test/test-gtk-font-chooser-dialog.rb +41 -0
  256. data/test/test-gtk-gesture-multi-press.rb +31 -0
  257. data/test/test-gtk-gesture-pan.rb +32 -0
  258. data/test/test-gtk-gesture-single.rb +40 -0
  259. data/test/test-gtk-gesture.rb +29 -0
  260. data/test/{test_gtk_header_bar.rb → test-gtk-header-bar.rb} +15 -1
  261. data/test/{test_gtk_icon_theme.rb → test-gtk-icon-theme.rb} +0 -0
  262. data/test/{test_gtk_icon_view.rb → test-gtk-icon-view.rb} +24 -3
  263. data/test/test-gtk-image.rb +52 -0
  264. data/test/test-gtk-label.rb +39 -0
  265. data/test/{test_gtk_level_bar.rb → test-gtk-level-bar.rb} +12 -0
  266. data/test/test-gtk-list-store.rb +204 -0
  267. data/test/{test_gtk_menu_button.rb → test-gtk-menu-button.rb} +0 -0
  268. data/test/{test_gtk_menu_item.rb → test-gtk-menu-item.rb} +0 -0
  269. data/test/test-gtk-message-dialog.rb +62 -0
  270. data/test/test-gtk-paned.rb +109 -0
  271. data/test/test-gtk-places-sidebar.rb +68 -0
  272. data/test/test-gtk-radio-action.rb +45 -0
  273. data/test/test-gtk-radio-button.rb +82 -0
  274. data/test/test-gtk-recent-chooser-dialog.rb +53 -0
  275. data/test/{test_gtk_recent_data.rb → test-gtk-recent-data.rb} +0 -0
  276. data/test/{test_gtk_recent_filter_info.rb → test-gtk-recent-filter-info.rb} +1 -1
  277. data/test/test-gtk-recent-info.rb +37 -0
  278. data/test/{test_gtk_revealer.rb → test-gtk-revealer.rb} +0 -0
  279. data/test/test-gtk-scale-button.rb +56 -0
  280. data/test/{test_gtk_search_bar.rb → test-gtk-search-bar.rb} +1 -1
  281. data/test/{test_gtk_search_entry.rb → test-gtk-search-entry.rb} +0 -0
  282. data/test/test-gtk-spin-button.rb +45 -0
  283. data/test/{test_gtk_stack_switcher.rb → test-gtk-stack-switcher.rb} +0 -0
  284. data/test/{test_gtk_stack.rb → test-gtk-stack.rb} +8 -1
  285. data/test/test-gtk-stock.rb +26 -0
  286. data/test/{test_gtk_style_context.rb → test-gtk-style-context.rb} +0 -0
  287. data/test/{test_gtk_style_properties.rb → test-gtk-style-properties.rb} +0 -0
  288. data/test/test-gtk-style-provider.rb +25 -0
  289. data/test/test-gtk-switch.rb +34 -0
  290. data/test/test-gtk-target-entry.rb +37 -0
  291. data/test/test-gtk-text-buffer.rb +151 -0
  292. data/test/{test_gtk_container.rb → test-gtk-text-tag-table.rb} +13 -11
  293. data/test/test-gtk-toggle-action.rb +41 -0
  294. data/test/test-gtk-toggle-button.rb +39 -0
  295. data/test/test-gtk-tool-button.rb +53 -0
  296. data/test/test-gtk-tree-iter.rb +53 -0
  297. data/test/test-gtk-tree-model-filter.rb +55 -0
  298. data/test/test-gtk-tree-path.rb +42 -0
  299. data/test/test-gtk-tree-selection.rb +61 -0
  300. data/test/test-gtk-tree-view-column.rb +71 -0
  301. data/test/test-gtk-tree-view.rb +105 -0
  302. data/test/test-gtk-version.rb +47 -0
  303. data/test/test-gtk-widget.rb +148 -0
  304. data/test/{test_gtk.rb → test-gtk.rb} +0 -0
  305. metadata +263 -332
  306. data/ext/gtk3/conversions.c +0 -34
  307. data/ext/gtk3/gtk3.def +0 -10
  308. data/ext/gtk3/init.c +0 -34
  309. data/ext/gtk3/rbgtk-about-dialog.c +0 -113
  310. data/ext/gtk3/rbgtk-accel-group-entry.c +0 -94
  311. data/ext/gtk3/rbgtk-accel-group.c +0 -199
  312. data/ext/gtk3/rbgtk-accel-key.c +0 -120
  313. data/ext/gtk3/rbgtk-accel-label.c +0 -55
  314. data/ext/gtk3/rbgtk-accel-map.c +0 -135
  315. data/ext/gtk3/rbgtk-accelerator.c +0 -78
  316. data/ext/gtk3/rbgtk-accessible.c +0 -40
  317. data/ext/gtk3/rbgtk-action-bar.c +0 -73
  318. data/ext/gtk3/rbgtk-action-group.c +0 -467
  319. data/ext/gtk3/rbgtk-action.c +0 -205
  320. data/ext/gtk3/rbgtk-activatable.c +0 -30
  321. data/ext/gtk3/rbgtk-adjustment.c +0 -98
  322. data/ext/gtk3/rbgtk-alignment.c +0 -75
  323. data/ext/gtk3/rbgtk-allocation.c +0 -166
  324. data/ext/gtk3/rbgtk-app-chooser-button.c +0 -70
  325. data/ext/gtk3/rbgtk-app-chooser-dialog.c +0 -68
  326. data/ext/gtk3/rbgtk-app-chooser-widget.c +0 -40
  327. data/ext/gtk3/rbgtk-app-chooser.c +0 -47
  328. data/ext/gtk3/rbgtk-application.c +0 -69
  329. data/ext/gtk3/rbgtk-arrow.c +0 -56
  330. data/ext/gtk3/rbgtk-aspect-frame.c +0 -56
  331. data/ext/gtk3/rbgtk-assistant.c +0 -218
  332. data/ext/gtk3/rbgtk-bin.c +0 -42
  333. data/ext/gtk3/rbgtk-binding-set.c +0 -154
  334. data/ext/gtk3/rbgtk-border.c +0 -119
  335. data/ext/gtk3/rbgtk-box.c +0 -146
  336. data/ext/gtk3/rbgtk-buildable.c +0 -96
  337. data/ext/gtk3/rbgtk-builder.c +0 -166
  338. data/ext/gtk3/rbgtk-button-box.c +0 -87
  339. data/ext/gtk3/rbgtk-button.c +0 -93
  340. data/ext/gtk3/rbgtk-calendar.c +0 -118
  341. data/ext/gtk3/rbgtk-cell-editable.c +0 -57
  342. data/ext/gtk3/rbgtk-cell-layout.c +0 -144
  343. data/ext/gtk3/rbgtk-cell-renderer-accel.c +0 -41
  344. data/ext/gtk3/rbgtk-cell-renderer-combo.c +0 -38
  345. data/ext/gtk3/rbgtk-cell-renderer-pixbuf.c +0 -41
  346. data/ext/gtk3/rbgtk-cell-renderer-progress.c +0 -38
  347. data/ext/gtk3/rbgtk-cell-renderer-spin.c +0 -39
  348. data/ext/gtk3/rbgtk-cell-renderer-spinner.c +0 -38
  349. data/ext/gtk3/rbgtk-cell-renderer-text.c +0 -48
  350. data/ext/gtk3/rbgtk-cell-renderer-toggle.c +0 -39
  351. data/ext/gtk3/rbgtk-cell-renderer.c +0 -119
  352. data/ext/gtk3/rbgtk-cell-view.c +0 -95
  353. data/ext/gtk3/rbgtk-check-button.c +0 -64
  354. data/ext/gtk3/rbgtk-check-menu-item.c +0 -64
  355. data/ext/gtk3/rbgtk-clip-board.c +0 -389
  356. data/ext/gtk3/rbgtk-color-button.c +0 -55
  357. data/ext/gtk3/rbgtk-color-selection-dialog.c +0 -56
  358. data/ext/gtk3/rbgtk-color-selection.c +0 -219
  359. data/ext/gtk3/rbgtk-combo-box-text.c +0 -138
  360. data/ext/gtk3/rbgtk-combo-box.c +0 -147
  361. data/ext/gtk3/rbgtk-const.c +0 -79
  362. data/ext/gtk3/rbgtk-container.c +0 -788
  363. data/ext/gtk3/rbgtk-css-provider.c +0 -110
  364. data/ext/gtk3/rbgtk-dialog.c +0 -206
  365. data/ext/gtk3/rbgtk-drag-gdk-drag-context.c +0 -108
  366. data/ext/gtk3/rbgtk-drag.c +0 -93
  367. data/ext/gtk3/rbgtk-drawing-area.c +0 -42
  368. data/ext/gtk3/rbgtk-editable.c +0 -149
  369. data/ext/gtk3/rbgtk-entry-buffer.c +0 -87
  370. data/ext/gtk3/rbgtk-entry-completion.c +0 -122
  371. data/ext/gtk3/rbgtk-entry.c +0 -184
  372. data/ext/gtk3/rbgtk-event-box.c +0 -42
  373. data/ext/gtk3/rbgtk-expander.c +0 -49
  374. data/ext/gtk3/rbgtk-file-chooser-button.c +0 -50
  375. data/ext/gtk3/rbgtk-file-chooser-dialog.c +0 -62
  376. data/ext/gtk3/rbgtk-file-chooser-widget.c +0 -40
  377. data/ext/gtk3/rbgtk-file-chooser.c +0 -381
  378. data/ext/gtk3/rbgtk-file-filter.c +0 -128
  379. data/ext/gtk3/rbgtk-file-system-error.c +0 -48
  380. data/ext/gtk3/rbgtk-fixed.c +0 -61
  381. data/ext/gtk3/rbgtk-font-button.c +0 -49
  382. data/ext/gtk3/rbgtk-font-chooser-dialog.c +0 -56
  383. data/ext/gtk3/rbgtk-font-chooser-widget.c +0 -45
  384. data/ext/gtk3/rbgtk-font-chooser.c +0 -78
  385. data/ext/gtk3/rbgtk-frame.c +0 -69
  386. data/ext/gtk3/rbgtk-gdk-event.c +0 -38
  387. data/ext/gtk3/rbgtk-grid.c +0 -105
  388. data/ext/gtk3/rbgtk-handle-box.c +0 -45
  389. data/ext/gtk3/rbgtk-header-bar.c +0 -58
  390. data/ext/gtk3/rbgtk-hsv.c +0 -102
  391. data/ext/gtk3/rbgtk-icon-factory.c +0 -85
  392. data/ext/gtk3/rbgtk-icon-info.c +0 -115
  393. data/ext/gtk3/rbgtk-icon-set.c +0 -84
  394. data/ext/gtk3/rbgtk-icon-size.c +0 -91
  395. data/ext/gtk3/rbgtk-icon-source.c +0 -184
  396. data/ext/gtk3/rbgtk-icon-theme.c +0 -268
  397. data/ext/gtk3/rbgtk-icon-view.c +0 -295
  398. data/ext/gtk3/rbgtk-im-multicontext.c +0 -48
  399. data/ext/gtk3/rbgtk-image-menu-item.c +0 -67
  400. data/ext/gtk3/rbgtk-image.c +0 -162
  401. data/ext/gtk3/rbgtk-imcon-text-simple.c +0 -69
  402. data/ext/gtk3/rbgtk-imcon-text.c +0 -133
  403. data/ext/gtk3/rbgtk-infobar.c +0 -121
  404. data/ext/gtk3/rbgtk-invisible.c +0 -49
  405. data/ext/gtk3/rbgtk-label.c +0 -139
  406. data/ext/gtk3/rbgtk-layout.c +0 -93
  407. data/ext/gtk3/rbgtk-level-bar.c +0 -88
  408. data/ext/gtk3/rbgtk-link-button.c +0 -49
  409. data/ext/gtk3/rbgtk-list-store.c +0 -399
  410. data/ext/gtk3/rbgtk-lock-button.c +0 -50
  411. data/ext/gtk3/rbgtk-menu-button.c +0 -41
  412. data/ext/gtk3/rbgtk-menu-item.c +0 -95
  413. data/ext/gtk3/rbgtk-menu-shell.c +0 -106
  414. data/ext/gtk3/rbgtk-menu-tool-button.c +0 -81
  415. data/ext/gtk3/rbgtk-menu.c +0 -168
  416. data/ext/gtk3/rbgtk-menubar.c +0 -43
  417. data/ext/gtk3/rbgtk-message-dialog.c +0 -74
  418. data/ext/gtk3/rbgtk-misc.c +0 -70
  419. data/ext/gtk3/rbgtk-notebook.c +0 -383
  420. data/ext/gtk3/rbgtk-numerable-icon.c +0 -50
  421. data/ext/gtk3/rbgtk-overlay.c +0 -53
  422. data/ext/gtk3/rbgtk-page-setup-unix-dialog.c +0 -94
  423. data/ext/gtk3/rbgtk-page-setup.c +0 -195
  424. data/ext/gtk3/rbgtk-paned.c +0 -114
  425. data/ext/gtk3/rbgtk-paper-size.c +0 -179
  426. data/ext/gtk3/rbgtk-plug.c +0 -85
  427. data/ext/gtk3/rbgtk-print-context.c +0 -125
  428. data/ext/gtk3/rbgtk-print-job.c +0 -148
  429. data/ext/gtk3/rbgtk-print-operation-preview.c +0 -59
  430. data/ext/gtk3/rbgtk-print-operation.c +0 -149
  431. data/ext/gtk3/rbgtk-print-settings.c +0 -807
  432. data/ext/gtk3/rbgtk-print-unix-dialog.c +0 -90
  433. data/ext/gtk3/rbgtk-printer.c +0 -155
  434. data/ext/gtk3/rbgtk-progress-bar.c +0 -72
  435. data/ext/gtk3/rbgtk-radio-action.c +0 -122
  436. data/ext/gtk3/rbgtk-radio-button.c +0 -89
  437. data/ext/gtk3/rbgtk-radio-menu-item.c +0 -147
  438. data/ext/gtk3/rbgtk-radio-tool-button.c +0 -131
  439. data/ext/gtk3/rbgtk-range.c +0 -68
  440. data/ext/gtk3/rbgtk-recent-action.c +0 -64
  441. data/ext/gtk3/rbgtk-recent-chooser-dialog.c +0 -66
  442. data/ext/gtk3/rbgtk-recent-chooser-menu.c +0 -50
  443. data/ext/gtk3/rbgtk-recent-chooser-widget.c +0 -48
  444. data/ext/gtk3/rbgtk-recent-chooser.c +0 -198
  445. data/ext/gtk3/rbgtk-recent-data.c +0 -188
  446. data/ext/gtk3/rbgtk-recent-filter-info.c +0 -201
  447. data/ext/gtk3/rbgtk-recent-filter.c +0 -169
  448. data/ext/gtk3/rbgtk-recent-info.c +0 -213
  449. data/ext/gtk3/rbgtk-recent-manager.c +0 -134
  450. data/ext/gtk3/rbgtk-revealer.c +0 -42
  451. data/ext/gtk3/rbgtk-scale-button.c +0 -84
  452. data/ext/gtk3/rbgtk-scale.c +0 -97
  453. data/ext/gtk3/rbgtk-scrollable.c +0 -31
  454. data/ext/gtk3/rbgtk-scrollbar.c +0 -52
  455. data/ext/gtk3/rbgtk-scrolled-window.c +0 -122
  456. data/ext/gtk3/rbgtk-search-bar.c +0 -59
  457. data/ext/gtk3/rbgtk-search-entry.c +0 -42
  458. data/ext/gtk3/rbgtk-selection-data.c +0 -281
  459. data/ext/gtk3/rbgtk-selection.c +0 -168
  460. data/ext/gtk3/rbgtk-separator-menu-item.c +0 -39
  461. data/ext/gtk3/rbgtk-separator-tool-item.c +0 -38
  462. data/ext/gtk3/rbgtk-separator.c +0 -44
  463. data/ext/gtk3/rbgtk-settings.c +0 -229
  464. data/ext/gtk3/rbgtk-size-group.c +0 -66
  465. data/ext/gtk3/rbgtk-socket.c +0 -82
  466. data/ext/gtk3/rbgtk-spin-button.c +0 -132
  467. data/ext/gtk3/rbgtk-spinner.c +0 -55
  468. data/ext/gtk3/rbgtk-stack-switcher.c +0 -41
  469. data/ext/gtk3/rbgtk-stack.c +0 -106
  470. data/ext/gtk3/rbgtk-status-bar.c +0 -77
  471. data/ext/gtk3/rbgtk-status-icon.c +0 -122
  472. data/ext/gtk3/rbgtk-stock.c +0 -213
  473. data/ext/gtk3/rbgtk-style-context-gdk-screen.c +0 -61
  474. data/ext/gtk3/rbgtk-style-context.c +0 -411
  475. data/ext/gtk3/rbgtk-style-properties.c +0 -118
  476. data/ext/gtk3/rbgtk-style-provider.c +0 -67
  477. data/ext/gtk3/rbgtk-switch.c +0 -40
  478. data/ext/gtk3/rbgtk-table.c +0 -190
  479. data/ext/gtk3/rbgtk-target-list.c +0 -125
  480. data/ext/gtk3/rbgtk-tearoff-menu-item.c +0 -41
  481. data/ext/gtk3/rbgtk-text-appearance.c +0 -236
  482. data/ext/gtk3/rbgtk-text-attributes.c +0 -326
  483. data/ext/gtk3/rbgtk-text-buffer.c +0 -899
  484. data/ext/gtk3/rbgtk-text-child-anchor.c +0 -56
  485. data/ext/gtk3/rbgtk-text-iter.c +0 -732
  486. data/ext/gtk3/rbgtk-text-mark.c +0 -71
  487. data/ext/gtk3/rbgtk-text-tag-table.c +0 -96
  488. data/ext/gtk3/rbgtk-text-tag.c +0 -68
  489. data/ext/gtk3/rbgtk-text-view.c +0 -336
  490. data/ext/gtk3/rbgtk-theming-engine.c +0 -257
  491. data/ext/gtk3/rbgtk-toggle-action.c +0 -61
  492. data/ext/gtk3/rbgtk-toggle-button.c +0 -87
  493. data/ext/gtk3/rbgtk-toggle-tool-button.c +0 -61
  494. data/ext/gtk3/rbgtk-tool-button.c +0 -66
  495. data/ext/gtk3/rbgtk-tool-item.c +0 -200
  496. data/ext/gtk3/rbgtk-tool-itemgroup.c +0 -70
  497. data/ext/gtk3/rbgtk-tool-shell.c +0 -96
  498. data/ext/gtk3/rbgtk-toolbar.c +0 -118
  499. data/ext/gtk3/rbgtk-tooltip-gdk-display.c +0 -39
  500. data/ext/gtk3/rbgtk-tooltip.c +0 -100
  501. data/ext/gtk3/rbgtk-tree-dragdest.c +0 -28
  502. data/ext/gtk3/rbgtk-tree-dragsource.c +0 -28
  503. data/ext/gtk3/rbgtk-tree-iter.c +0 -258
  504. data/ext/gtk3/rbgtk-tree-model.c +0 -246
  505. data/ext/gtk3/rbgtk-tree-modelfilter.c +0 -197
  506. data/ext/gtk3/rbgtk-tree-modelsort.c +0 -111
  507. data/ext/gtk3/rbgtk-tree-path.c +0 -191
  508. data/ext/gtk3/rbgtk-tree-rowreference.c +0 -140
  509. data/ext/gtk3/rbgtk-tree-selection.c +0 -190
  510. data/ext/gtk3/rbgtk-tree-sortable.c +0 -122
  511. data/ext/gtk3/rbgtk-tree-store.c +0 -330
  512. data/ext/gtk3/rbgtk-tree-view-column.c +0 -256
  513. data/ext/gtk3/rbgtk-tree-view.c +0 -716
  514. data/ext/gtk3/rbgtk-ui-manager.c +0 -189
  515. data/ext/gtk3/rbgtk-viewport.c +0 -44
  516. data/ext/gtk3/rbgtk-volume-button.c +0 -41
  517. data/ext/gtk3/rbgtk-widget-path.c +0 -229
  518. data/ext/gtk3/rbgtk-widget.c +0 -1554
  519. data/ext/gtk3/rbgtk-window-group.c +0 -80
  520. data/ext/gtk3/rbgtk-window.c +0 -565
  521. data/ext/gtk3/rbgtk.c +0 -783
  522. data/ext/gtk3/rbgtk3.h +0 -90
  523. data/ext/gtk3/rbgtk3conversions.h +0 -439
  524. data/ext/gtk3/rbgtk3private.h +0 -300
  525. data/ext/gtk3/rbgtk3util.c +0 -67
  526. data/lib/gtk3/base.rb +0 -67
  527. data/sample/gtk-demo/appwindow.rb +0 -233
  528. data/sample/misc/composited-windows.rb +0 -113
  529. data/sample/misc/itemfactory.rb +0 -73
  530. data/sample/misc/itemfactory2.rb +0 -74
  531. data/sample/misc/keyboard_grab.rb +0 -29
  532. data/sample/misc/pangorenderer.rb +0 -66
  533. data/sample/misc/pointer_grab.rb +0 -34
  534. data/sample/misc/settings.rb +0 -41
  535. data/sample/misc/style_property.rb +0 -67
  536. data/sample/misc/style_property.rc +0 -19
  537. data/sample/misc/textbuffer_serialize.rb +0 -130
  538. data/sample/misc/to_drawable.rb +0 -42
  539. data/sample/misc/uimanager.rb +0 -148
  540. data/sample/misc/uimanager2.rb +0 -91
  541. data/sample/misc/uimanager2.xml +0 -36
  542. data/sample/misc/xbm_cursor.rb +0 -43
  543. data/sample/testgtk/3DRings.xpm +0 -116
  544. data/sample/testgtk/FilesQueue.xpm +0 -98
  545. data/sample/testgtk/Modeller.xpm +0 -117
  546. data/sample/testgtk/README +0 -14
  547. data/sample/testgtk/button.rb +0 -124
  548. data/sample/testgtk/buttonbox.rb +0 -100
  549. data/sample/testgtk/check-n.xpm +0 -21
  550. data/sample/testgtk/check-y.xpm +0 -21
  551. data/sample/testgtk/checkbutton.rb +0 -67
  552. data/sample/testgtk/circles.xbm +0 -46
  553. data/sample/testgtk/colorselect.rb +0 -33
  554. data/sample/testgtk/dialog.rb +0 -48
  555. data/sample/testgtk/entry.rb +0 -73
  556. data/sample/testgtk/filesel.rb +0 -65
  557. data/sample/testgtk/fontselection.rb +0 -56
  558. data/sample/testgtk/labels.rb +0 -74
  559. data/sample/testgtk/layout.rb +0 -108
  560. data/sample/testgtk/marble.xpm +0 -408
  561. data/sample/testgtk/menu.rb +0 -79
  562. data/sample/testgtk/notebook.rb +0 -280
  563. data/sample/testgtk/pixmap.rb +0 -58
  564. data/sample/testgtk/progressbar.rb +0 -173
  565. data/sample/testgtk/radiobutton.rb +0 -61
  566. data/sample/testgtk/range.rb +0 -65
  567. data/sample/testgtk/reparent.rb +0 -91
  568. data/sample/testgtk/sample.rb +0 -80
  569. data/sample/testgtk/savedposition.rb +0 -87
  570. data/sample/testgtk/scrolledwindow.rb +0 -67
  571. data/sample/testgtk/shapedwindow.rb +0 -99
  572. data/sample/testgtk/spinbutton.rb +0 -181
  573. data/sample/testgtk/statusbar.rb +0 -89
  574. data/sample/testgtk/test.xpm +0 -92
  575. data/sample/testgtk/testgtk.rb +0 -176
  576. data/sample/testgtk/testgtkrc +0 -146
  577. data/sample/testgtk/testgtkrc2 +0 -21
  578. data/sample/testgtk/togglebutton.rb +0 -53
  579. data/sample/testgtk/toolbar.rb +0 -82
  580. data/sample/testgtk/tooltips.rb +0 -41
  581. data/sample/testgtk/wmhints.rb +0 -40
  582. data/test/test_gtk_image.rb +0 -8
  583. data/test/test_gtk_list_store.rb +0 -105
  584. data/test/test_gtk_tree_path.rb +0 -20
  585. data/test/test_gtk_unix_print.rb +0 -14
  586. data/test/test_gtk_widget.rb +0 -24
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3eb890cc7ba7871c822de48ab2c8d3b9733f6efa
4
- data.tar.gz: 78c7b5eeca4f6ab87ec0346d8447bbe7ed23b70f
3
+ metadata.gz: 5f6da2c8a444318964cf1d4de2dda142ad0045c2
4
+ data.tar.gz: 920d29c7d8b7170fda9beaa04301f54cba01da16
5
5
  SHA512:
6
- metadata.gz: f209dd3c6e7307e15e73e1e05281c80b83b8b25322a375f77740b0909c172ba3ceb06f9dcf92af8dd1d431d42f1ba4555b09dde8c1da59bc3b02a15e5b91c4a4
7
- data.tar.gz: 0e5bfba6cbc8db2e8701a080fb629fb8538b4026bebe311782d4c810c3c65b087319b691370d11f0de26fcaaea6837b8060a8fbb621da1c9616d019e749bbe60
6
+ metadata.gz: 2e33c80ba01299db6148655f2754061ff85cffe0498da51109f933304a03228f749842c5a578ce166b9cb783294868a8ee77b740d5cd68cfbb72a141cdcc3307
7
+ data.tar.gz: 4da854cdbce25693246e988dbc3fd8ce4bd64375a48f7af10f4b6fc6804577f36b1050a2c577a240ad13aff9c7c8064f8606cbb6b027bcf35b295290f9fff9d7
data/Rakefile CHANGED
@@ -13,6 +13,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
13
13
  "pango",
14
14
  "gdk_pixbuf2",
15
15
  "gdk3",
16
+ "gobject-introspection",
16
17
  ]
17
18
  package.windows.packages = []
18
19
  package.windows.dependencies = []
@@ -1,8 +1,3 @@
1
- install-so: install-headers
2
- install-headers:
3
- $(INSTALL_DATA) $(srcdir)/rbgtk3.h $(RUBYARCHDIR)
4
- $(INSTALL_DATA) $(srcdir)/rbgtk3conversions.h $(RUBYARCHDIR)
5
-
6
1
  install: install-pc
7
2
  install-pc:
8
3
  if test -n "$(pkgconfigdir)"; then \
@@ -1,20 +1,33 @@
1
- =begin
2
- extconf.rb for Ruby/GTK extention library
3
- =end
4
-
5
- require 'pathname'
6
-
7
- source_dir = Pathname(__FILE__).dirname
8
- base_dir = source_dir.parent.parent.expand_path
9
- top_dir = base_dir.parent.expand_path
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Copyright (C) 2015 Ruby-GNOME2 Project Team
4
+ #
5
+ # This library is free software; you can redistribute it and/or
6
+ # modify it under the terms of the GNU Lesser General Public
7
+ # License as published by the Free Software Foundation; either
8
+ # version 2.1 of the License, or (at your option) any later version.
9
+ #
10
+ # This library is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ # Lesser General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU Lesser General Public
16
+ # License along with this library; if not, write to the Free Software
17
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
+
19
+ require "pathname"
20
+
21
+ base_dir = Pathname(__FILE__).dirname.parent.parent.expand_path
22
+ top_dir = base_dir.parent
10
23
  top_build_dir = Pathname(".").parent.parent.parent.expand_path
11
24
 
12
- mkmf_gnome2_dir = top_dir + "glib2" + 'lib'
25
+ mkmf_gnome2_dir = top_dir + "glib2" + "lib"
13
26
  version_suffix = ""
14
27
  unless mkmf_gnome2_dir.exist?
15
- if /(-\d+\.\d+\.\d+)(?:\.\d+)?\z/ =~ base_dir.basename.to_s
28
+ if /(-\d+\.\d+\.\d+)\z/ =~ base_dir.basename.to_s
16
29
  version_suffix = $1
17
- mkmf_gnome2_dir = top_dir + "glib2#{version_suffix}" + 'lib'
30
+ mkmf_gnome2_dir = top_dir + "glib2#{version_suffix}" + "lib"
18
31
  end
19
32
  end
20
33
 
@@ -23,20 +36,21 @@ $LOAD_PATH.unshift(mkmf_gnome2_dir.to_s)
23
36
  module_name = "gtk3"
24
37
  package_id = "gtk+-3.0"
25
38
 
26
- begin
27
- require 'mkmf-gnome2'
28
- rescue LoadError
29
- require 'rubygems'
30
- gem 'glib2'
31
- require 'mkmf-gnome2'
32
- end
33
-
34
- have_func("rb_errinfo")
35
-
36
- ["glib2", "cairo-gobject", "atk", "pango", "gdk_pixbuf2", "gdk3"].each do |package|
37
- depended_module_name = package.gsub(/-/, "_")
39
+ require "mkmf-gnome2"
40
+
41
+ depended_packages = [
42
+ "glib2",
43
+ "gobject-introspection",
44
+ "cairo-gobject",
45
+ "atk",
46
+ "pango",
47
+ "gdk_pixbuf2",
48
+ "gdk3",
49
+ ].each do |package|
38
50
  directory = "#{package}#{version_suffix}"
39
- build_dir = "#{directory}/tmp/#{RUBY_PLATFORM}/#{depended_module_name}/#{RUBY_VERSION}"
51
+ build_base_path = "#{directory}/tmp/#{RUBY_PLATFORM}"
52
+ package_library_name = package.gsub(/-/, "_")
53
+ build_dir = "#{build_base_path}/#{package_library_name}/#{RUBY_VERSION}"
40
54
  add_depend_package(package, "#{directory}/ext/#{package}",
41
55
  top_dir.to_s,
42
56
  :top_build_dir => top_build_dir.to_s,
@@ -51,41 +65,17 @@ setup_windows(module_name, base_dir)
51
65
 
52
66
  unless required_pkg_config_package(package_id,
53
67
  :debian => "libgtk-3-dev",
54
- :fedora => "gtk3-devel",
68
+ :redhat => "gtk3-devel",
55
69
  :homebrew => "gtk+3",
56
70
  :macports => "gtk3")
57
71
  exit(false)
58
72
  end
59
73
 
60
- have_header("st.h")
61
- have_header("ruby/st.h")
62
-
63
- STDOUT.print("checking for targets... ")
64
- STDOUT.flush
65
- targets = PKGConfig.variable(package_id, "targets").split(/\s+/)
66
- STDOUT.print(targets.join(" "), "\n")
67
-
68
- gtk_header = "gtk/gtk.h"
69
- have_func('gtk_plug_get_type', gtk_header)
70
- have_func('gtk_socket_get_type', gtk_header)
71
- have_func('pango_render_part_get_type', gtk_header)
72
- have_header('gtk/gtkfilesystem.h') do |src|
73
- "#define GTK_FILE_SYSTEM_ENABLE_UNSUPPORTED\n#{src}"
74
- end
75
-
76
- xlib_header = "X11/Xlib.h"
77
- if targets.include?("x11") and have_header('X11/Xlib.h') and have_library("X11")
78
- have_func("XReadBitmapFileData", xlib_header)
79
- have_func("XGetErrorText", xlib_header)
80
- end
81
-
82
- if !targets.include?("win32") and PKGConfig.have_package('gtk+-unix-print-3.0')
83
- $defs.push("-DHAVE_GTK_UNIX_PRINT")
74
+ unless PKGConfig.have_package("gobject-introspection-1.0")
75
+ exit(false)
84
76
  end
85
77
 
86
- create_pkg_config_file("Ruby/GTK3", package_id, ruby_gnome2_version)
87
-
88
- ensure_objs
78
+ create_pkg_config_file("Ruby/GTK3", package_id)
89
79
 
90
80
  $defs << "-DRUBY_GTK3_COMPILATION"
91
81
  create_makefile(module_name)
@@ -0,0 +1,159 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2015 Ruby-GNOME2 Project Team
4
+ *
5
+ * This library is free software; you can redistribute it and/or
6
+ * modify it under the terms of the GNU Lesser General Public
7
+ * License as published by the Free Software Foundation; either
8
+ * version 2.1 of the License, or (at your option) any later version.
9
+ *
10
+ * This library is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ * Lesser General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Lesser General Public
16
+ * License along with this library; if not, write to the Free Software
17
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
+ * MA 02110-1301 USA
19
+ */
20
+
21
+ #include "rb-gtk3-private.h"
22
+
23
+ #define RG_TARGET_NAMESPACE cContainer
24
+ #define _SELF(self) (RVAL2GTKCONTAINER(self))
25
+
26
+ static GQuark q_ruby_setter;
27
+ static GQuark q_ruby_getter;
28
+
29
+ static void rb_gtk3_container_mark(gpointer object);
30
+
31
+ static void
32
+ rb_gtk3_container_mark_callback(GtkWidget *widget,
33
+ G_GNUC_UNUSED gpointer data)
34
+ {
35
+ if (rbgobj_gc_mark_instance(widget))
36
+ return;
37
+
38
+ if (GTK_IS_CONTAINER(widget))
39
+ rb_gtk3_container_mark(widget);
40
+ }
41
+
42
+ static void
43
+ rb_gtk3_container_mark(gpointer object)
44
+ {
45
+ gtk_container_forall(GTK_CONTAINER(object),
46
+ rb_gtk3_container_mark_callback,
47
+ NULL);
48
+ }
49
+
50
+ /* FIXME: use rb_protect */
51
+ static void
52
+ get_child_prop_func(GtkContainer *container,
53
+ GtkWidget *child,
54
+ G_GNUC_UNUSED guint property_id,
55
+ GValue *value,
56
+ GParamSpec *pspec)
57
+ {
58
+ ID ruby_getter = (ID)g_param_spec_get_qdata(pspec, q_ruby_getter);
59
+ if (!ruby_getter) {
60
+ gchar *name = g_strconcat("get_", g_param_spec_get_name(pspec), NULL);
61
+ gchar *p;
62
+ for (p = name; *p; p++) {
63
+ if (*p == '-')
64
+ *p = '_';
65
+ }
66
+ ruby_getter = rb_intern(name);
67
+ g_param_spec_set_qdata(pspec, q_ruby_getter, (gpointer)ruby_getter);
68
+ g_free(name);
69
+ }
70
+
71
+ {
72
+ VALUE ret = rb_funcall(GOBJ2RVAL(container), ruby_getter, 1, GOBJ2RVAL(child));
73
+ rbgobj_rvalue_to_gvalue(ret, value);
74
+ }
75
+ }
76
+
77
+ /* FIXME: use rb_protect */
78
+ static void
79
+ set_child_prop_func(GtkContainer *container,
80
+ GtkWidget *child,
81
+ G_GNUC_UNUSED guint property_id,
82
+ const GValue *value,
83
+ GParamSpec *pspec)
84
+ {
85
+ ID ruby_setter = (ID)g_param_spec_get_qdata(pspec, q_ruby_setter);
86
+ if (!ruby_setter) {
87
+ gchar *name = g_strconcat("set_", g_param_spec_get_name(pspec), NULL);
88
+ gchar *p;
89
+ for (p = name; *p; p++) {
90
+ if (*p == '-')
91
+ *p = '_';
92
+ }
93
+ ruby_setter = rb_intern(name);
94
+ g_param_spec_set_qdata(pspec, q_ruby_setter, (gpointer)ruby_setter);
95
+ g_free(name);
96
+ }
97
+
98
+ rb_funcall(GOBJ2RVAL(container), ruby_setter,
99
+ 2,
100
+ GOBJ2RVAL(child), GVAL2RVAL(value));
101
+ }
102
+
103
+ static void
104
+ class_init_func(gpointer g_class, gpointer class_data)
105
+ {
106
+ GtkContainerClass *g_container_class = GTK_CONTAINER_CLASS(g_class);
107
+
108
+ rbgobj_class_init_func(g_class, class_data);
109
+
110
+ g_container_class->set_child_property = set_child_prop_func;
111
+ g_container_class->get_child_property = get_child_prop_func;
112
+
113
+ rbgtk3_class_init_func(g_class, class_data);
114
+ }
115
+
116
+ static VALUE
117
+ rg_initialize(int argc, VALUE *argv, VALUE self)
118
+ {
119
+ rb_call_super(argc, argv);
120
+ rbgtk3_initialize(self);
121
+ return Qnil;
122
+ }
123
+
124
+ static VALUE
125
+ rg_s_type_register(int argc, VALUE *argv, VALUE klass)
126
+ {
127
+ VALUE type_name;
128
+
129
+ rb_scan_args(argc, argv, "01", &type_name);
130
+
131
+ rbgobj_register_type(klass, type_name, class_init_func);
132
+
133
+ {
134
+ VALUE initialize_module;
135
+ initialize_module = rb_define_module_under(klass, "ContainerHook");
136
+ rbg_define_method(initialize_module,
137
+ "initialize", rg_initialize, -1);
138
+ rb_include_module(klass, initialize_module);
139
+ }
140
+
141
+ return Qnil;
142
+ }
143
+
144
+ void
145
+ rbgtk3_container_init(void)
146
+ {
147
+ VALUE mGtk;
148
+ VALUE RG_TARGET_NAMESPACE;
149
+
150
+ q_ruby_getter = g_quark_from_static_string("__ruby_getter");
151
+ q_ruby_setter = g_quark_from_static_string("__ruby_setter");
152
+
153
+ mGtk = rb_const_get(rb_cObject, rb_intern("Gtk"));
154
+ RG_TARGET_NAMESPACE = rb_const_get(mGtk, rb_intern("Container"));
155
+
156
+ rbgobj_register_mark_func(GTK_TYPE_CONTAINER, rb_gtk3_container_mark);
157
+
158
+ RG_DEF_SMETHOD(type_register, -1);
159
+ }
@@ -1,6 +1,6 @@
1
1
  /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
2
  /*
3
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
3
+ * Copyright (C) 2015 Ruby-GNOME2 Project Team
4
4
  *
5
5
  * This library is free software; you can redistribute it and/or
6
6
  * modify it under the terms of the GNU Lesser General Public
@@ -18,15 +18,15 @@
18
18
  * MA 02110-1301 USA
19
19
  */
20
20
 
21
- #ifndef __RBGTK3UTIL_H__
22
- #define __RBGTK3UTIL_H__
21
+ #ifndef RB_GTK3_PRIVATE_H
22
+ #define RB_GTK3_PRIVATE_H
23
23
 
24
- G_BEGIN_DECLS
24
+ #include "rb-gtk3.h"
25
25
 
26
- typedef VALUE (*RBGTKAddButtonFunc)(VALUE self, VALUE button_text, VALUE response_id);
26
+ G_GNUC_INTERNAL void rbgtk3_class_init_func(gpointer g_class, gpointer class_data);
27
+ G_GNUC_INTERNAL void rbgtk3_initialize(VALUE self);
27
28
 
28
- G_GNUC_INTERNAL VALUE rbgtk_add_buttons(VALUE self, VALUE buttons, RBGTKAddButtonFunc add_button);
29
+ G_GNUC_INTERNAL void rbgtk3_container_init(void);
30
+ G_GNUC_INTERNAL void rbgtk3_widget_init(void);
29
31
 
30
- G_END_DECLS
31
-
32
- #endif /* __RBGTK3UTIL_H__ */
32
+ #endif
@@ -0,0 +1,71 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2015 Ruby-GNOME2 Project Team
4
+ *
5
+ * This library is free software; you can redistribute it and/or
6
+ * modify it under the terms of the GNU Lesser General Public
7
+ * License as published by the Free Software Foundation; either
8
+ * version 2.1 of the License, or (at your option) any later version.
9
+ *
10
+ * This library is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ * Lesser General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Lesser General Public
16
+ * License along with this library; if not, write to the Free Software
17
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
+ * MA 02110-1301 USA
19
+ */
20
+
21
+ #include "rb-gtk3-private.h"
22
+
23
+ #define RG_TARGET_NAMESPACE cWidget
24
+ #define _SELF(self) (RVAL2GTKWIDGET(self))
25
+
26
+ static void
27
+ class_init_func(gpointer g_class, gpointer class_data)
28
+ {
29
+ rbgobj_class_init_func(g_class, class_data);
30
+ rbgtk3_class_init_func(g_class, class_data);
31
+ }
32
+
33
+ static VALUE
34
+ rg_initialize(int argc, VALUE *argv, VALUE self)
35
+ {
36
+ rb_call_super(argc, argv);
37
+ rbgtk3_initialize(self);
38
+ return Qnil;
39
+ }
40
+
41
+ static VALUE
42
+ rg_s_type_register(int argc, VALUE *argv, VALUE klass)
43
+ {
44
+ VALUE type_name;
45
+
46
+ rb_scan_args(argc, argv, "01", &type_name);
47
+
48
+ rbgobj_register_type(klass, type_name, class_init_func);
49
+
50
+ {
51
+ VALUE initialize_module;
52
+ initialize_module = rb_define_module_under(klass, "WidgetHook");
53
+ rbg_define_method(initialize_module,
54
+ "initialize", rg_initialize, -1);
55
+ rb_include_module(klass, initialize_module);
56
+ }
57
+
58
+ return Qnil;
59
+ }
60
+
61
+ void
62
+ rbgtk3_widget_init(void)
63
+ {
64
+ VALUE mGtk;
65
+ VALUE RG_TARGET_NAMESPACE;
66
+
67
+ mGtk = rb_const_get(rb_cObject, rb_intern("Gtk"));
68
+ RG_TARGET_NAMESPACE = rb_const_get(mGtk, rb_intern("Widget"));
69
+
70
+ RG_DEF_SMETHOD(type_register, -1);
71
+ }
@@ -0,0 +1,407 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2015 Ruby-GNOME2 Project Team
4
+ *
5
+ * This library is free software; you can redistribute it and/or
6
+ * modify it under the terms of the GNU Lesser General Public
7
+ * License as published by the Free Software Foundation; either
8
+ * version 2.1 of the License, or (at your option) any later version.
9
+ *
10
+ * This library is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ * Lesser General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Lesser General Public
16
+ * License along with this library; if not, write to the Free Software
17
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
+ * MA 02110-1301 USA
19
+ */
20
+
21
+ #include "rb-gtk3-private.h"
22
+
23
+ /*
24
+ #if GTK_CHECK_VERSION(3, 10, 0)
25
+ # define RB_GTK_ACTION_IS_DEPRECATED
26
+ # define RB_GTK_ACTION_GROUP_IS_DEPRECATED
27
+ # define RB_GTK_UI_MANAGER_IS_DEPRECATED
28
+ #endif
29
+ */
30
+
31
+ static gboolean
32
+ name_equal(GIArgInfo *info, const gchar *target_name)
33
+ {
34
+ GITypeInfo type_info;
35
+ GIBaseInfo *interface_info;
36
+ const gchar *namespace;
37
+ const gchar *name;
38
+ gboolean equal_name_p = FALSE;
39
+
40
+ g_arg_info_load_type(info, &type_info);
41
+ interface_info = g_type_info_get_interface(&type_info);
42
+ namespace = g_base_info_get_namespace(interface_info);
43
+ name = g_base_info_get_name(interface_info);
44
+ if (strcmp(namespace, "Gtk") == 0 && strcmp(name, target_name) == 0) {
45
+ equal_name_p = TRUE;
46
+ }
47
+ g_base_info_unref(interface_info);
48
+
49
+ return equal_name_p;
50
+ }
51
+
52
+ static void
53
+ rb_gtk3_callback_callback(GtkWidget *widget, gpointer user_data)
54
+ {
55
+ RBGICallbackData *callback_data = user_data;
56
+ ID id_call;
57
+
58
+ CONST_ID(id_call, "call");
59
+ rb_funcall(callback_data->rb_callback, id_call, 1,
60
+ GOBJ2RVAL(widget));
61
+ }
62
+
63
+ static gint
64
+ rb_gtk3_assistant_page_func_callback(gint current_page, gpointer user_data)
65
+ {
66
+ RBGICallbackData *callback_data = user_data;
67
+ ID id_call;
68
+ VALUE rb_next_page;
69
+
70
+ CONST_ID(id_call, "call");
71
+ rb_next_page = rb_funcall(callback_data->rb_callback, id_call, 1,
72
+ INT2NUM(current_page));
73
+ return NUM2INT(rb_next_page);
74
+ }
75
+
76
+ static void
77
+ rb_gtk3_builder_connect_func_callback(GtkBuilder *builder,
78
+ GObject *object,
79
+ const gchar *signal_name,
80
+ const gchar *handler_name,
81
+ GObject *connect_object,
82
+ GConnectFlags flags,
83
+ gpointer user_data)
84
+ {
85
+ RBGICallbackData *callback_data = user_data;
86
+ ID id___connect_signals__;
87
+ VALUE rb_object;
88
+
89
+ CONST_ID(id___connect_signals__, "__connect_signals__");
90
+ rb_object = GOBJ2RVAL(object);
91
+ G_RELATIVE(rb_object, callback_data->rb_callback);
92
+ rb_funcall(GOBJ2RVAL(builder), id___connect_signals__, 6,
93
+ callback_data->rb_callback,
94
+ rb_object,
95
+ CSTR2RVAL(signal_name),
96
+ CSTR2RVAL(handler_name),
97
+ GOBJ2RVAL(connect_object),
98
+ GCONNECTFLAGS2RVAL(flags));
99
+ }
100
+
101
+ static const gchar *
102
+ rb_gtk3_translate_func_callback(const gchar *path,
103
+ gpointer user_data)
104
+ {
105
+ RBGICallbackData *callback_data = user_data;
106
+ ID id_call;
107
+ VALUE rb_translated;
108
+
109
+ CONST_ID(id_call, "call");
110
+ rb_translated = rb_funcall(callback_data->rb_callback,
111
+ id_call,
112
+ 1,
113
+ CSTR2RVAL(path));
114
+ return RVAL2CSTR(rb_translated);
115
+ }
116
+
117
+ static void
118
+ rb_gtk3_tree_cell_data_func_callback(GtkTreeViewColumn *column,
119
+ GtkCellRenderer *cell,
120
+ GtkTreeModel *model,
121
+ GtkTreeIter *iter,
122
+ gpointer user_data)
123
+ {
124
+ RBGICallbackData *callback_data = user_data;
125
+ ID id_set_model;
126
+ ID id_call;
127
+ VALUE rb_model;
128
+ VALUE rb_iter;
129
+
130
+ CONST_ID(id_set_model, "model=");
131
+ rb_model = GOBJ2RVAL(model);
132
+ rb_iter = BOXED2RVAL(iter, GTK_TYPE_TREE_ITER);
133
+ rb_funcall(rb_iter, id_set_model, 1, rb_model);
134
+
135
+ CONST_ID(id_call, "call");
136
+ rb_funcall(callback_data->rb_callback,
137
+ id_call,
138
+ 4,
139
+ GOBJ2RVAL(column),
140
+ GOBJ2RVAL(cell),
141
+ rb_model,
142
+ rb_iter);
143
+ }
144
+
145
+ static void
146
+ rb_gtk3_tree_model_filter_modify_func_callback(GtkTreeModel *model,
147
+ GtkTreeIter *iter,
148
+ GValue *value,
149
+ gint column,
150
+ gpointer user_data)
151
+ {
152
+ RBGICallbackData *callback_data = user_data;
153
+ ID id_set_model;
154
+ ID id_call;
155
+ VALUE rb_model;
156
+ VALUE rb_iter;
157
+ VALUE rb_value;
158
+ VALUE rb_column;
159
+
160
+ CONST_ID(id_set_model, "model=");
161
+ rb_model = GOBJ2RVAL(model);
162
+ rb_iter = BOXED2RVAL(iter, GTK_TYPE_TREE_ITER);
163
+ rb_funcall(rb_iter, id_set_model, 1, rb_model);
164
+ rb_column = INT2NUM(column);
165
+
166
+ CONST_ID(id_call, "call");
167
+ rb_value = rb_funcall(callback_data->rb_callback,
168
+ id_call,
169
+ 3,
170
+ rb_model,
171
+ rb_iter,
172
+ rb_column);
173
+ rbgobj_rvalue_to_gvalue(rb_value, value);
174
+ }
175
+
176
+ static gboolean
177
+ rb_gtk3_tree_model_filter_visible_func_callback(GtkTreeModel *model,
178
+ GtkTreeIter *iter,
179
+ gpointer user_data)
180
+ {
181
+ RBGICallbackData *callback_data = user_data;
182
+ ID id_set_model;
183
+ ID id_call;
184
+ VALUE rb_model;
185
+ VALUE rb_iter;
186
+ VALUE rb_visible;
187
+ gboolean visible = FALSE;
188
+
189
+ CONST_ID(id_set_model, "model=");
190
+ rb_model = GOBJ2RVAL(model);
191
+ rb_iter = BOXED2RVAL(iter, GTK_TYPE_TREE_ITER);
192
+ rb_funcall(rb_iter, id_set_model, 1, rb_model);
193
+
194
+ CONST_ID(id_call, "call");
195
+ rb_visible = rb_funcall(callback_data->rb_callback,
196
+ id_call,
197
+ 2,
198
+ rb_model,
199
+ rb_iter);
200
+ visible = RVAL2CBOOL(rb_visible);
201
+
202
+ return visible;
203
+ }
204
+
205
+ static gboolean
206
+ rb_gtk3_tree_model_foreach_func_callback(GtkTreeModel *model,
207
+ GtkTreePath *path,
208
+ GtkTreeIter *iter,
209
+ gpointer user_data)
210
+ {
211
+ RBGICallbackData *callback_data = user_data;
212
+ ID id_set_model;
213
+ ID id_call;
214
+ VALUE rb_model;
215
+ VALUE rb_iter;
216
+ gboolean stop = FALSE;
217
+
218
+ CONST_ID(id_set_model, "model=");
219
+ rb_model = GOBJ2RVAL(model);
220
+ rb_iter = BOXED2RVAL(iter, GTK_TYPE_TREE_ITER);
221
+ rb_funcall(rb_iter, id_set_model, 1, rb_model);
222
+
223
+ CONST_ID(id_call, "call");
224
+ rb_funcall(callback_data->rb_callback,
225
+ id_call,
226
+ 3,
227
+ rb_model,
228
+ BOXED2RVAL(path, GTK_TYPE_TREE_PATH),
229
+ rb_iter);
230
+
231
+ return stop;
232
+ }
233
+
234
+ static void
235
+ rb_gtk3_tree_selection_foreach_func_callback(GtkTreeModel *model,
236
+ GtkTreePath *path,
237
+ GtkTreeIter *iter,
238
+ gpointer user_data)
239
+ {
240
+ RBGICallbackData *callback_data = user_data;
241
+ ID id_set_model;
242
+ ID id_call;
243
+ VALUE rb_model;
244
+ VALUE rb_iter;
245
+
246
+ CONST_ID(id_set_model, "model=");
247
+ rb_model = GOBJ2RVAL(model);
248
+ rb_iter = BOXED2RVAL(iter, GTK_TYPE_TREE_ITER);
249
+ rb_funcall(rb_iter, id_set_model, 1, rb_model);
250
+
251
+ CONST_ID(id_call, "call");
252
+ rb_funcall(callback_data->rb_callback,
253
+ id_call,
254
+ 3,
255
+ rb_model,
256
+ BOXED2RVAL(path, GTK_TYPE_TREE_PATH),
257
+ rb_iter);
258
+ }
259
+
260
+ static void
261
+ rb_gtk3_tree_view_mapping_func_callback(GtkTreeView *tree_view,
262
+ GtkTreePath *path,
263
+ gpointer user_data)
264
+ {
265
+ RBGICallbackData *callback_data = user_data;
266
+ ID id_call;
267
+
268
+ CONST_ID(id_call, "call");
269
+ rb_funcall(callback_data->rb_callback,
270
+ id_call,
271
+ 2,
272
+ GOBJ2RVAL(tree_view),
273
+ BOXED2RVAL(path, GTK_TYPE_TREE_PATH));
274
+ }
275
+
276
+ static gpointer
277
+ rb_gtk3_callback_finder(GIArgInfo *info)
278
+ {
279
+ if (name_equal(info, "Callback")) {
280
+ return rb_gtk3_callback_callback;
281
+ } else if (name_equal(info, "AssistantPageFunc")) {
282
+ return rb_gtk3_assistant_page_func_callback;
283
+ } else if (name_equal(info, "BuilderConnectFunc")) {
284
+ return rb_gtk3_builder_connect_func_callback;
285
+ } else if (name_equal(info, "TranslateFunc")) {
286
+ return rb_gtk3_translate_func_callback;
287
+ } else if (name_equal(info, "TreeCellDataFunc")) {
288
+ return rb_gtk3_tree_cell_data_func_callback;
289
+ } else if (name_equal(info, "TreeModelFilterModifyFunc")) {
290
+ return rb_gtk3_tree_model_filter_modify_func_callback;
291
+ } else if (name_equal(info, "TreeModelFilterVisibleFunc")) {
292
+ return rb_gtk3_tree_model_filter_visible_func_callback;
293
+ } else if (name_equal(info, "TreeModelForeachFunc")) {
294
+ return rb_gtk3_tree_model_foreach_func_callback;
295
+ } else if (name_equal(info, "TreeSelectionForeachFunc")) {
296
+ return rb_gtk3_tree_selection_foreach_func_callback;
297
+ } else if (name_equal(info, "TreeViewMappingFunc")) {
298
+ return rb_gtk3_tree_view_mapping_func_callback;
299
+ } else {
300
+ return NULL;
301
+ }
302
+ }
303
+
304
+ #ifndef RB_GTK_ACTION_IS_DEPRECATED
305
+ static void
306
+ rb_gtk3_action_mark(gpointer object)
307
+ {
308
+ GtkAction *action;
309
+ GSList *proxies, *node;
310
+
311
+ action = GTK_ACTION(object);
312
+ proxies = gtk_action_get_proxies(action);
313
+ for (node = proxies; node; node = g_slist_next(node)) {
314
+ GtkWidget *proxy = node->data;
315
+ rbgobj_gc_mark_instance(proxy);
316
+ }
317
+ }
318
+ #endif
319
+
320
+ static void
321
+ rb_gtk3_builder_mark(gpointer object)
322
+ {
323
+ GtkBuilder *builder;
324
+ GSList *objects;
325
+
326
+ builder = GTK_BUILDER(object);
327
+ objects = gtk_builder_get_objects(builder);
328
+ g_slist_foreach(objects, (GFunc)rbgobj_gc_mark_instance, NULL);
329
+ g_slist_free(objects);
330
+ }
331
+
332
+ #ifndef RB_GTK_ACTION_GROUP_IS_DEPRECATED
333
+ static void
334
+ rb_gtk3_action_group_mark(gpointer object)
335
+ {
336
+ GtkActionGroup *group;
337
+ GList *actions, *node;
338
+
339
+ group = GTK_ACTION_GROUP(object);
340
+ actions = gtk_action_group_list_actions(group);
341
+ for (node = actions; node; node = g_list_next(node)) {
342
+ GtkWidget *action = node->data;
343
+ rbgobj_gc_mark_instance(action);
344
+ }
345
+ g_list_free(actions);
346
+ }
347
+ #endif
348
+
349
+ #ifndef RB_GTK_UI_MANAGER_IS_DEPRECATED
350
+ static void
351
+ rb_gtk3_ui_manager_mark(gpointer object)
352
+ {
353
+ GtkUIManager *manager;
354
+ GList *action_groups, *node;
355
+
356
+ manager = GTK_UI_MANAGER(object);
357
+ action_groups = gtk_ui_manager_get_action_groups(manager);
358
+ for (node = action_groups; node; node = g_list_next(node)) {
359
+ GtkWidget *action_group = node->data;
360
+ rbgobj_gc_mark_instance(action_group);
361
+ }
362
+
363
+ rbgobj_gc_mark_instance(gtk_ui_manager_get_accel_group(manager));
364
+ }
365
+ #endif
366
+
367
+ void
368
+ rbgtk3_class_init_func(gpointer g_class, G_GNUC_UNUSED gpointer class_data)
369
+ {
370
+ VALUE rb_class;
371
+
372
+ rb_class = GTYPE2CLASS(G_TYPE_FROM_CLASS(g_class));
373
+ rb_funcall(rb_class, rb_intern("init"), 0);
374
+ }
375
+
376
+ void
377
+ rbgtk3_initialize(VALUE self)
378
+ {
379
+ GObject *object;
380
+
381
+ object = RVAL2GOBJ(self);
382
+ g_object_ref_sink(object);
383
+
384
+ rb_funcall(self, rb_intern("initialize_post"), 0);
385
+ }
386
+
387
+ void
388
+ Init_gtk3(void)
389
+ {
390
+ rb_gi_callback_register_finder(rb_gtk3_callback_finder);
391
+
392
+ #ifndef RB_GTK_ACTION_IS_DEPRECATED
393
+ rbgobj_register_mark_func(GTK_TYPE_ACTION, rb_gtk3_action_mark);
394
+ #endif
395
+ rbgobj_register_mark_func(GTK_TYPE_BUILDER, rb_gtk3_builder_mark);
396
+ #ifndef RB_GTK_ACTION_GROUP_IS_DEPRECATED
397
+ rbgobj_register_mark_func(GTK_TYPE_ACTION_GROUP, rb_gtk3_action_group_mark);
398
+ #endif
399
+ #ifndef RB_GTK_UI_MANAGER_IS_DEPRECATED
400
+ rbgobj_register_mark_func(GTK_TYPE_UI_MANAGER, rb_gtk3_ui_manager_mark);
401
+ #endif
402
+
403
+ rbgtk3_container_init();
404
+ rbgtk3_widget_init();
405
+
406
+ rbgobj_boxed_not_copy_obj(GTK_TYPE_SELECTION_DATA);
407
+ }