gtk3 2.2.5-x64-mingw32 → 3.0.0-x64-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f2508a56f89405e67d945164c012dd8d4bc6948f
4
- data.tar.gz: eb824dc82daa5db0bf313737c6e6a83ae5966365
3
+ metadata.gz: 68f5fe89fda2496abb0db878b88e51398f7fd03a
4
+ data.tar.gz: be37e36d87505e9df5ea486b66084c1267c796e9
5
5
  SHA512:
6
- metadata.gz: 2f1d367903b7b78d7c60db6266773d883894c5e11a8563ce0619d7502cb760612f894033acbae0fbbbe3904de16d370ca5ea3e419fd0a3d72f3fe314272cbc4e
7
- data.tar.gz: b077a284c9810937a053b95f1bd0a4cc18c30d12dcc13790908bad88ac953bd1ca71d0fc148d4323e728911e609402cb705a37ac9b3bf6b4e6bc6c10dc0cff38
6
+ metadata.gz: 7101c7139306b9e661c58ffe9302ad07286f9dc7053d39503547c1f1b690c526199fc926acc7f5e8eed785a12d29c2f98c4a323a1157696bc76a75c5b03bf744
7
+ data.tar.gz: e74038a4ca34391eb0b44a26774e53f37c35be5c9917eaef3b70082f096a8dd9fd33473f1fac86a99bb2921c270416035b5dfd0fa1eafec231fe4ee99d906160
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 = []
data/ext/gtk3/depend CHANGED
@@ -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 \
data/ext/gtk3/extconf.rb CHANGED
@@ -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
+ }