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
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <schemalist>
3
+ <schema path="/org/gtk/exampleapp/" id="org.gtk.exampleapp">
4
+ <key name="font" type="s">
5
+ <default>'Monospace 12'</default>
6
+ <summary>Font</summary>
7
+ <description>The font to be used for content.</description>
8
+ </key>
9
+ <key name="transition" type="s">
10
+ <choices>
11
+ <choice value='none'/>
12
+ <choice value='crossfade'/>
13
+ <choice value='slide-left-right'/>
14
+ </choices>
15
+ <default>'none'</default>
16
+ <summary>Transition</summary>
17
+ <description>The transition to use when switching tabs.</description>
18
+ </key>
19
+ </schema>
20
+ </schemalist>
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <interface>
3
+ <!-- interface-requires gtk+ 3.8 -->
4
+ <template class="ExampleAppWindow" parent="GtkApplicationWindow">
5
+ <property name="title" translatable="yes">Example Application</property>
6
+ <property name="default-width">600</property>
7
+ <property name="default-height">400</property>
8
+ <child>
9
+ <object class="GtkBox" id="content_box">
10
+ <property name="visible">True</property>
11
+ <property name="orientation">vertical</property>
12
+ <child>
13
+ <object class="GtkHeaderBar" id="header">
14
+ <property name="visible">True</property>
15
+ <child type="title">
16
+ <object class="GtkStackSwitcher" id="tabs">
17
+ <property name="visible">True</property>
18
+ <property name="margin">6</property>
19
+ <property name="stack">stack</property>
20
+ </object>
21
+ </child>
22
+ </object>
23
+ </child>
24
+ <child>
25
+ <object class="GtkStack" id="stack">
26
+ <property name="visible">True</property>
27
+ </object>
28
+ </child>
29
+ </object>
30
+ </child>
31
+ </template>
32
+ </interface>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0"?>
2
+ <interface>
3
+ <!-- interface-requires gtk+ 3.0 -->
4
+ <menu id="appmenu">
5
+ <section>
6
+ <item>
7
+ <attribute name="label" translatable="yes">_Preferences</attribute>
8
+ <attribute name="action">app.preferences</attribute>
9
+ </item>
10
+ </section>
11
+ <section>
12
+ <item>
13
+ <attribute name="label" translatable="yes">_Quit</attribute>
14
+ <attribute name="action">app.quit</attribute>
15
+ </item>
16
+ </section>
17
+ </menu>
18
+ </interface>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <gresources>
3
+ <gresource prefix="/org/gtk/exampleapp">
4
+ <file preprocess="xml-stripblanks">window.ui</file>
5
+ <file preprocess="xml-stripblanks">app-menu.ui</file>
6
+ <file preprocess="xml-stripblanks">prefs.ui</file>
7
+ </gresource>
8
+ </gresources>
@@ -0,0 +1,168 @@
1
+ # Copyright (C) 2015 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+ #
17
+ # Original:
18
+ # * URL: https://git.gnome.org/browse/gtk+/tree/examples/application6/exampleapp.c
19
+ # * URL: https://git.gnome.org/browse/gtk+/tree/examples/application6/exampleappwin.c
20
+ # * License: LGPL 2
21
+
22
+ require "gtk3"
23
+
24
+ require "fileutils"
25
+
26
+ current_path = File.expand_path(File.dirname(__FILE__))
27
+ gresource_bin = "#{current_path}/exampleapp.gresource"
28
+ gresource_xml = "#{current_path}/exampleapp.gresource.xml"
29
+
30
+ system("glib-compile-resources",
31
+ "--target", gresource_bin,
32
+ "--sourcedir", current_path,
33
+ gresource_xml)
34
+
35
+ gschema_bin = "#{current_path}/gschemas.compiled"
36
+ gschema_xml = "#{current_path}/org.gtk.exampleapp.gschema.xml"
37
+
38
+ system("glib-compile-schemas", current_path)
39
+
40
+
41
+ at_exit do
42
+ FileUtils.rm_f([gresource_bin, gschema_bin])
43
+ end
44
+
45
+ resource = Gio::Resource.load(gresource_bin)
46
+ Gio::Resources.register(resource)
47
+
48
+ ENV["GSETTINGS_SCHEMA_DIR"] = current_path
49
+
50
+ class ExampleAppPrefs < Gtk::Dialog
51
+ type_register
52
+ class << self
53
+ def init
54
+ set_template(:resource => "/org/gtk/exampleapp/prefs.ui")
55
+ bind_template_child("font")
56
+ bind_template_child("transition")
57
+ end
58
+ end
59
+ def initialize(args)
60
+ parent = args[:transient_for]
61
+ bar = args[:use_header_bar]
62
+ super(:transient_for => parent, :use_header_bar => 1)
63
+ settings = Gio::Settings.new("org.gtk.exampleapp")
64
+ settings.bind("font",
65
+ font,
66
+ "font",
67
+ Gio::SettingsBindFlags::DEFAULT)
68
+ settings.bind("transition",
69
+ transition,
70
+ "active-id",
71
+ Gio::SettingsBindFlags::DEFAULT)
72
+ end
73
+ end
74
+
75
+ class ExampleAppWindow < Gtk::ApplicationWindow
76
+ # https://github.com/ruby-gnome2/ruby-gnome2/pull/445
77
+ # https://github.com/ruby-gnome2/ruby-gnome2/issues/503
78
+ type_register
79
+ class << self
80
+ def init
81
+ set_template(:resource => "/org/gtk/exampleapp/window.ui")
82
+ bind_template_child("stack")
83
+ end
84
+ end
85
+
86
+ def initialize(application)
87
+ super(:application => application)
88
+ @settings = Gio::Settings.new("org.gtk.exampleapp")
89
+ @settings.bind("transition",
90
+ stack,
91
+ "transition-type",
92
+ Gio::SettingsBindFlags::DEFAULT)
93
+ end
94
+
95
+ def open(file)
96
+ basename = file.basename
97
+ scrolled = Gtk::ScrolledWindow.new
98
+ scrolled.show
99
+ scrolled.set_hexpand(true)
100
+ scrolled.set_vexpand(true)
101
+ view = Gtk::TextView.new
102
+ view.set_editable(false)
103
+ view.set_cursor_visible(false)
104
+ view.show
105
+ scrolled.add(view)
106
+ stack.add_titled(scrolled, basename, basename)
107
+ stream = file.read
108
+ buffer = view.buffer
109
+ buffer.text = stream.read
110
+ tag = buffer.create_tag()
111
+ @settings.bind("font", tag, "font", Gio::SettingsBindFlags::DEFAULT)
112
+ buffer.apply_tag(tag, buffer.start_iter, buffer.end_iter)
113
+ end
114
+ end
115
+
116
+ class ExampleApp < Gtk::Application
117
+ def initialize
118
+ super("org.gtk.exampleapp", :handles_open)
119
+
120
+ signal_connect "startup" do |application|
121
+ quit_accels = ["<Ctrl>Q"]
122
+ action = Gio::SimpleAction.new("quit")
123
+ action.signal_connect("activate") do |_action, _parameter|
124
+ application.quit
125
+ end
126
+ application.add_action(action)
127
+ application.set_accels_for_action("app.quit", quit_accels)
128
+
129
+ action = Gio::SimpleAction.new("preferences")
130
+ action.signal_connect("activate") do |_action, _parameter|
131
+ win = application.windows.first
132
+
133
+ prefs = ExampleAppPrefs.new(:transient_for => win,
134
+ :use_header_bar => true)
135
+ prefs.present
136
+ end
137
+ application.add_action(action)
138
+
139
+ builder = Gtk::Builder.new(:resource => "/org/gtk/exampleapp/app-menu.ui")
140
+ app_menu = builder.get_object("appmenu")
141
+ application.set_app_menu(app_menu)
142
+
143
+ end
144
+ signal_connect "activate" do |application|
145
+ window = ExampleAppWindow.new(application)
146
+ window.present
147
+ end
148
+
149
+ signal_connect "open" do |application, files, hint|
150
+ windows = application.windows
151
+ win = nil
152
+ unless windows.empty?
153
+ win = windows.first
154
+ else
155
+ win = ExampleAppWindow.new(application)
156
+ end
157
+
158
+ files.each { |file| win.open(file) }
159
+
160
+ win.present
161
+ end
162
+
163
+ end
164
+ end
165
+
166
+ app = ExampleApp.new
167
+
168
+ puts app.run([$PROGRAM_NAME] + ARGV)
@@ -0,0 +1,20 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <schemalist>
3
+ <schema path="/org/gtk/exampleapp/" id="org.gtk.exampleapp">
4
+ <key name="font" type="s">
5
+ <default>'Monospace 12'</default>
6
+ <summary>Font</summary>
7
+ <description>The font to be used for content.</description>
8
+ </key>
9
+ <key name="transition" type="s">
10
+ <choices>
11
+ <choice value='none'/>
12
+ <choice value='crossfade'/>
13
+ <choice value='slide-left-right'/>
14
+ </choices>
15
+ <default>'none'</default>
16
+ <summary>Transition</summary>
17
+ <description>The transition to use when switching tabs.</description>
18
+ </key>
19
+ </schema>
20
+ </schemalist>
@@ -0,0 +1,70 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <interface>
3
+ <!-- interface-requires gtk+ 3.8 -->
4
+ <template class="ExampleAppPrefs" parent="GtkDialog">
5
+ <property name="title" translatable="yes">Preferences</property>
6
+ <property name="resizable">False</property>
7
+ <property name="modal">True</property>
8
+ <child internal-child="vbox">
9
+ <object class="GtkBox" id="vbox">
10
+ <child>
11
+ <object class="GtkGrid" id="grid">
12
+ <property name="visible">True</property>
13
+ <property name="margin">6</property>
14
+ <property name="row-spacing">12</property>
15
+ <property name="column-spacing">6</property>
16
+ <child>
17
+ <object class="GtkLabel" id="fontlabel">
18
+ <property name="visible">True</property>
19
+ <property name="label">_Font:</property>
20
+ <property name="use-underline">True</property>
21
+ <property name="mnemonic-widget">font</property>
22
+ <property name="xalign">1</property>
23
+ </object>
24
+ <packing>
25
+ <property name="left-attach">0</property>
26
+ <property name="top-attach">0</property>
27
+ </packing>
28
+ </child>
29
+ <child>
30
+ <object class="GtkFontButton" id="font">
31
+ <property name="visible">True</property>
32
+ </object>
33
+ <packing>
34
+ <property name="left-attach">1</property>
35
+ <property name="top-attach">0</property>
36
+ </packing>
37
+ </child>
38
+ <child>
39
+ <object class="GtkLabel" id="transitionlabel">
40
+ <property name="visible">True</property>
41
+ <property name="label">_Transition:</property>
42
+ <property name="use-underline">True</property>
43
+ <property name="mnemonic-widget">transition</property>
44
+ <property name="xalign">1</property>
45
+ </object>
46
+ <packing>
47
+ <property name="left-attach">0</property>
48
+ <property name="top-attach">1</property>
49
+ </packing>
50
+ </child>
51
+ <child>
52
+ <object class="GtkComboBoxText" id="transition">
53
+ <property name="visible">True</property>
54
+ <items>
55
+ <item translatable="yes" id="none">None</item>
56
+ <item translatable="yes" id="crossfade">Fade</item>
57
+ <item translatable="yes" id="slide-left-right">Slide</item>
58
+ </items>
59
+ </object>
60
+ <packing>
61
+ <property name="left-attach">1</property>
62
+ <property name="top-attach">1</property>
63
+ </packing>
64
+ </child>
65
+ </object>
66
+ </child>
67
+ </object>
68
+ </child>
69
+ </template>
70
+ </interface>
@@ -0,0 +1,32 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <interface>
3
+ <!-- interface-requires gtk+ 3.8 -->
4
+ <template class="ExampleAppWindow" parent="GtkApplicationWindow">
5
+ <property name="title" translatable="yes">Example Application</property>
6
+ <property name="default-width">600</property>
7
+ <property name="default-height">400</property>
8
+ <child>
9
+ <object class="GtkBox" id="content_box">
10
+ <property name="visible">True</property>
11
+ <property name="orientation">vertical</property>
12
+ <child>
13
+ <object class="GtkHeaderBar" id="header">
14
+ <property name="visible">True</property>
15
+ <child type="title">
16
+ <object class="GtkStackSwitcher" id="tabs">
17
+ <property name="visible">True</property>
18
+ <property name="margin">6</property>
19
+ <property name="stack">stack</property>
20
+ </object>
21
+ </child>
22
+ </object>
23
+ </child>
24
+ <child>
25
+ <object class="GtkStack" id="stack">
26
+ <property name="visible">True</property>
27
+ </object>
28
+ </child>
29
+ </object>
30
+ </child>
31
+ </template>
32
+ </interface>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0"?>
2
+ <interface>
3
+ <!-- interface-requires gtk+ 3.0 -->
4
+ <menu id="appmenu">
5
+ <section>
6
+ <item>
7
+ <attribute name="label" translatable="yes">_Preferences</attribute>
8
+ <attribute name="action">app.preferences</attribute>
9
+ </item>
10
+ </section>
11
+ <section>
12
+ <item>
13
+ <attribute name="label" translatable="yes">_Quit</attribute>
14
+ <attribute name="action">app.quit</attribute>
15
+ </item>
16
+ </section>
17
+ </menu>
18
+ </interface>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <gresources>
3
+ <gresource prefix="/org/gtk/exampleapp">
4
+ <file preprocess="xml-stripblanks">window.ui</file>
5
+ <file preprocess="xml-stripblanks">app-menu.ui</file>
6
+ <file preprocess="xml-stripblanks">prefs.ui</file>
7
+ </gresource>
8
+ </gresources>
@@ -0,0 +1,200 @@
1
+ # Copyright (C) 2015 Ruby-GNOME2 Project Team
2
+ #
3
+ # This library is free software; you can redistribute it and/or
4
+ # modify it under the terms of the GNU Lesser General Public
5
+ # License as published by the Free Software Foundation; either
6
+ # version 2.1 of the License, or (at your option) any later version.
7
+ #
8
+ # This library is distributed in the hope that it will be useful,
9
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
+ # Lesser General Public License for more details.
12
+ #
13
+ # You should have received a copy of the GNU Lesser General Public
14
+ # License along with this library; if not, write to the Free Software
15
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
+ #
17
+ # Original:
18
+ # * URL: https://git.gnome.org/browse/gtk+/tree/examples/application7/exampleapp.c
19
+ # * URL: https://git.gnome.org/browse/gtk+/tree/examples/application7/exampleappwin.c
20
+ # * License: LGPL 2
21
+
22
+ require "gtk3"
23
+
24
+ require "fileutils"
25
+
26
+ current_path = File.expand_path(File.dirname(__FILE__))
27
+ gresource_bin = "#{current_path}/exampleapp.gresource"
28
+ gresource_xml = "#{current_path}/exampleapp.gresource.xml"
29
+
30
+ system("glib-compile-resources",
31
+ "--target", gresource_bin,
32
+ "--sourcedir", current_path,
33
+ gresource_xml)
34
+
35
+ gschema_bin = "#{current_path}/gschemas.compiled"
36
+ gschema_xml = "#{current_path}/org.gtk.exampleapp.gschema.xml"
37
+
38
+ system("glib-compile-schemas", current_path)
39
+
40
+
41
+ at_exit do
42
+ FileUtils.rm_f([gresource_bin, gschema_bin])
43
+ end
44
+
45
+ resource = Gio::Resource.load(gresource_bin)
46
+ Gio::Resources.register(resource)
47
+
48
+ ENV["GSETTINGS_SCHEMA_DIR"] = current_path
49
+
50
+ class ExampleAppPrefs < Gtk::Dialog
51
+ type_register
52
+
53
+ class << self
54
+ def init
55
+ set_template(:resource => "/org/gtk/exampleapp/prefs.ui")
56
+ bind_template_child("font")
57
+ bind_template_child("transition")
58
+ end
59
+ end
60
+
61
+ def initialize(args)
62
+ parent = args[:transient_for]
63
+ bar = args[:use_header_bar]
64
+ super(:transient_for => parent, :use_header_bar => 1)
65
+ settings = Gio::Settings.new("org.gtk.exampleapp")
66
+ settings.bind("font",
67
+ font,
68
+ "font",
69
+ Gio::SettingsBindFlags::DEFAULT)
70
+ settings.bind("transition",
71
+ transition,
72
+ "active-id",
73
+ Gio::SettingsBindFlags::DEFAULT)
74
+ end
75
+ end
76
+
77
+ class ExampleAppWindow < Gtk::ApplicationWindow
78
+ type_register
79
+ class << self
80
+ def init
81
+ set_template(:resource => "/org/gtk/exampleapp/window.ui")
82
+ bind_template_child("stack")
83
+ bind_template_child("search")
84
+ bind_template_child("searchbar")
85
+ set_connect_func do |name|
86
+ method(name)
87
+ end
88
+ end
89
+
90
+ private
91
+
92
+ def search_text_changed(search_entry)
93
+ text = search_entry.text
94
+ return if text.empty?
95
+
96
+ win = search_entry.toplevel
97
+ tab = win.stack.visible_child
98
+ view = tab.child
99
+ buffer = view.buffer
100
+ range = buffer.start_iter.forward_search(text, Gtk::TextSearchFlags::CASE_INSENSITIVE)
101
+ return unless range
102
+ buffer.select_range(range[0], range[1])
103
+ view.scroll_to_iter(range[0], 0.0, false, 0.0, 0.0)
104
+ end
105
+
106
+ def visible_child_changed(stack, params)
107
+ return if stack.in_destruction?
108
+ win = stack.toplevel
109
+ win.searchbar.set_search_mode(false)
110
+ end
111
+ end
112
+
113
+ def initialize(application)
114
+ super(:application => application)
115
+ @settings = Gio::Settings.new("org.gtk.exampleapp")
116
+ @settings.bind("transition",
117
+ stack,
118
+ "transition-type",
119
+ Gio::SettingsBindFlags::DEFAULT)
120
+ search.bind_property("active", searchbar, "search-mode-enabled", :bidirectional)
121
+ end
122
+
123
+ def open(file)
124
+ basename = file.basename
125
+
126
+ scrolled = Gtk::ScrolledWindow.new
127
+ scrolled.show
128
+ scrolled.set_hexpand(true)
129
+ scrolled.set_vexpand(true)
130
+
131
+ view = Gtk::TextView.new
132
+ view.set_editable(false)
133
+ view.set_cursor_visible(false)
134
+ view.show
135
+ scrolled.add(view)
136
+
137
+ stack.add_titled(scrolled, basename, basename)
138
+
139
+ stream = file.read
140
+ buffer = view.buffer
141
+ buffer.text = stream.read
142
+ tag = buffer.create_tag()
143
+ @settings.bind("font", tag, "font", Gio::SettingsBindFlags::DEFAULT)
144
+ buffer.apply_tag(tag, buffer.start_iter, buffer.end_iter)
145
+ search.sensitive = true
146
+ end
147
+ end
148
+
149
+ class ExampleApp < Gtk::Application
150
+ def initialize
151
+ super("org.gtk.exampleapp", :handles_open)
152
+
153
+ signal_connect "startup" do |application|
154
+ quit_accels = ["<Ctrl>Q"]
155
+ action = Gio::SimpleAction.new("quit")
156
+ action.signal_connect("activate") do |_action, _parameter|
157
+ application.quit
158
+ end
159
+ application.add_action(action)
160
+ application.set_accels_for_action("app.quit", quit_accels)
161
+
162
+ action = Gio::SimpleAction.new("preferences")
163
+ action.signal_connect("activate") do |_action, _parameter|
164
+ win = application.windows.first
165
+ prefs = ExampleAppPrefs.new(:transient_for => win,
166
+ :use_header_bar => true)
167
+ prefs.present
168
+ end
169
+ application.add_action(action)
170
+
171
+ builder = Gtk::Builder.new(:resource => "/org/gtk/exampleapp/app-menu.ui")
172
+ app_menu = builder.get_object("appmenu")
173
+ application.set_app_menu(app_menu)
174
+ end
175
+
176
+ signal_connect "activate" do |application|
177
+ window = ExampleAppWindow.new(application)
178
+ window.present
179
+ end
180
+
181
+ signal_connect "open" do |application, files, hint|
182
+ windows = application.windows
183
+ win = nil
184
+ unless windows.empty?
185
+ win = windows.first
186
+ else
187
+ win = ExampleAppWindow.new(application)
188
+ end
189
+
190
+ files.each { |file| win.open(file) }
191
+
192
+ win.present
193
+ end
194
+
195
+ end
196
+ end
197
+
198
+ app = ExampleApp.new
199
+
200
+ puts app.run([$PROGRAM_NAME] + ARGV)