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,100 @@
1
+ #!/usr/bin/env ruby
2
+ =begin
3
+ pangolayout.rb - Ruby/GTK sample script.
4
+
5
+ Copyright (c) 2005-2015 Ruby-GNOME2 Project Team
6
+ This program is licenced under the same licence as Ruby-GNOME2.
7
+ =end
8
+
9
+ require "gtk3"
10
+
11
+ RADIUS = 80
12
+ N_WORDS = 16
13
+ HEIGHT = 400
14
+ WIDTH = 400
15
+
16
+ class PaintableWindow < Gtk::Window
17
+ attr_reader :x, :y, :width, :height
18
+
19
+ def initialize(name)
20
+ super(name)
21
+ set_app_paintable(true)
22
+ set_decorated(true)
23
+ set_default_size(WIDTH, HEIGHT)
24
+ signal_connect("destroy") { Gtk.main_quit }
25
+ set_double_buffered(false)
26
+
27
+ # Get the size attributes when the window is resized
28
+ signal_connect "size-allocate" do |_widget, rectangle|
29
+ @x = rectangle.x
30
+ @y = rectangle.y
31
+ @width = rectangle.width
32
+ @height = rectangle.height
33
+ end
34
+
35
+ signal_connect "screen-changed" do |widget, _old_screen|
36
+ screen_changed(widget)
37
+ end
38
+
39
+ screen_changed(self)
40
+ end
41
+
42
+ def supports_alpha?
43
+ @supports_alpha
44
+ end
45
+
46
+ private
47
+
48
+ def screen_changed(widget)
49
+ visual = widget.screen.rgba_visual
50
+ if visual && widget.screen.composited?
51
+ set_visual(visual)
52
+ @supports_alpha = true
53
+ else
54
+ set_visual(widget.screen.system_visual)
55
+ @supports_alpha = false
56
+ end
57
+ end
58
+ end
59
+
60
+ pangolayout = PaintableWindow.new("Pango Render")
61
+
62
+ pangolayout.signal_connect "draw" do |widget, cr|
63
+ # Redraw on a clean destination
64
+ # http://cairographics.org/manual/cairo-cairo-t.html#cairo-operator-t
65
+ cr.set_operator(Cairo::OPERATOR_SOURCE)
66
+
67
+ if widget.supports_alpha?
68
+ cr.set_source_rgba(0, 0, 0, 0.3)
69
+ else
70
+ cr.set_source_rgb(1, 1, 1)
71
+ end
72
+
73
+ cr.paint
74
+
75
+ device_radius = [widget.width, widget.height].min / 6.0
76
+ cr.translate(device_radius + (widget.width - 2 * device_radius) / 2.0,
77
+ device_radius + (widget.height - 2 * device_radius) / 2.0)
78
+ cr.scale(device_radius / RADIUS, device_radius / RADIUS)
79
+
80
+ pango_layout = cr.create_pango_layout
81
+ pango_layout.text = "Ruby-GNOME2"
82
+ pango_layout.font_description = Pango::FontDescription.new("Sans Bold 14")
83
+
84
+ N_WORDS.times do |i|
85
+ angle = 360 * i / N_WORDS.to_f
86
+ cr.set_source_rgb((65_535 * rand) / 65_355,
87
+ (65_535 * rand) / 65_355,
88
+ (65_535 * rand) / 65_355)
89
+
90
+ cr.rotate((angle * Math::PI) / 180.0)
91
+ cr.update_pango_layout(pango_layout)
92
+ width, _height = pango_layout.size
93
+ cr.move_to((width / 2) / Pango::SCALE, RADIUS)
94
+ cr.show_pango_layout(pango_layout)
95
+ end
96
+ end
97
+
98
+ pangolayout.show
99
+
100
+ Gtk.main
@@ -0,0 +1,36 @@
1
+ =begin
2
+ pointer_grab.rb - Gdk::Window#pointer_grab/ungrab sample script.
3
+
4
+ Copyright (C) 2001-2015 Masao Mutoh<mutoh@highway.ne.jp>
5
+ This program is licenced under the same licence as Ruby-GNOME.
6
+ =end
7
+
8
+ require "gtk3"
9
+
10
+ window = Gtk::Window.new("Pointer grab/ungrab sample")
11
+
12
+ cursor = Gdk::Cursor.new(:watch)
13
+ button1 = Gtk::Button.new(:label => "Grab Window!")
14
+ button2 = Gtk::Button.new(:label => "Ungrab Window!")
15
+
16
+ button1.signal_connect("clicked") do
17
+ Gdk.pointer_grab(window.window, true, :button_press_mask,
18
+ window.window, cursor, Gdk::CURRENT_TIME)
19
+ p Gdk.pointer_is_grabbed?
20
+ end
21
+
22
+ button2.signal_connect("clicked") do
23
+ Gdk.pointer_ungrab(Gdk::CURRENT_TIME)
24
+ p Gdk.pointer_is_grabbed?
25
+ end
26
+
27
+ vbox = Gtk::Box.new(:vertical, 0)
28
+ vbox.add(button1)
29
+ vbox.add(button2)
30
+
31
+ window.add(vbox)
32
+ window.set_default_size(200, 100)
33
+ window.show_all
34
+ window.signal_connect("destroy") { Gtk.main_quit }
35
+
36
+ Gtk.main
data/sample/misc/print.rb CHANGED
@@ -1,245 +1,246 @@
1
1
  #!/usr/bin/env ruby
2
2
  =begin
3
- print.rb - Gtk::Print* sample
3
+ print.rb - Gtk::Print* sample
4
4
 
5
- Copyright (C) 2007 Mathieu Blondel
6
- This program is licenced under the same licence as Ruby-GNOME2.
7
-
8
- $Id: print.rb,v 1.1 2007/08/05 15:41:31 mutoh Exp $
5
+ Copyright (C) 2007 Mathieu Blondel
6
+ Copyright (C) 2007-2015 Ruby-GNOME2 Project Team
7
+ This program is licenced under the same licence as Ruby-GNOME2.
9
8
  =end
10
9
 
11
- require 'gtk3'
10
+ require "gtk3"
12
11
 
13
12
  # Values returned by a Pango::Layout or set in a Pango::Layout
14
13
  # are always multiple of Pango::SCALE. Those are convenience methods to
15
14
  # deal with that.
16
15
  class Pango::Layout
17
- def size_in_points
18
- self.size.collect { |v| v / Pango::SCALE }
19
- end
16
+ def size_in_points
17
+ size.collect { |v| v / Pango::SCALE }
18
+ end
20
19
 
21
- def width_in_points
22
- self.size[0] / Pango::SCALE
23
- end
20
+ def width_in_points
21
+ size[0] / Pango::SCALE
22
+ end
24
23
 
25
- def height_in_points
26
- self.size[1] / Pango::SCALE
27
- end
24
+ def height_in_points
25
+ size[1] / Pango::SCALE
26
+ end
28
27
 
29
- def width_in_points=(width)
30
- self.width = width * Pango::SCALE
31
- end
28
+ def width_in_points=(width)
29
+ self.width = width * Pango::SCALE
30
+ end
32
31
  end
33
32
 
34
33
  class Print < Gtk::PrintOperation
35
-
36
- FONT = Pango::FontDescription.new("sans 12")
37
- FONT_SMALL = Pango::FontDescription.new("sans 8")
38
-
39
- FONT_SIZE = 12
40
- FONT_SMALL_SIZE = 8
41
-
42
- def initialize (parent_window, text)
43
- super()
44
- @parent_window = parent_window
45
- @text = text
46
-
47
- # with this option disabled, the origin is the the upper left corner
48
- # *taking into consideration margins* !
49
- self.use_full_page = false
50
- self.unit = Gtk::PaperSize::Unit::POINTS
51
-
52
- # set default paper size
53
- page_setup = Gtk::PageSetup.new
54
- paper_size = Gtk::PaperSize.new(Gtk::PaperSize.default)
55
- page_setup.paper_size_and_default_margins = paper_size
56
- self.default_page_setup = page_setup
57
-
58
- # show a progress bar
59
- self.show_progress = true
60
-
61
- # You must choose between "paginate" and "begin-print".
62
- # "begin-print" is emitted only once and "paginate" is emitted
63
- # until the block returns true.
64
- # In both cases, you must set the number of pages at the end with
65
- # Gtk::PrintOperation#n_pages=
66
- signal_connect("begin-print") do |pop, context|
67
- puts "calls begin-print"
68
- cr = context.cairo_context
69
- paragraphs = @text.split("\n")
70
- layouts = []
71
- paragraphs.each do |para|
72
- layouts << create_layout(cr, para)
73
- end
74
-
75
- # distribute paragraph layouts among pages
76
- @page_layouts = []
77
-
78
- curr_height = 0
79
- n_pages = 0
80
- layouts.each do |layout|
81
- height = layout.height_in_points
82
- if curr_height + height > real_page_height
83
- n_pages += 1
84
- curr_height = 0
85
- end
86
- @page_layouts[n_pages] ||= []
87
- @page_layouts[n_pages] << layout
88
- curr_height += height
89
- end
90
-
91
- pop.n_pages = n_pages + 1
92
- end
93
-
94
- signal_connect("draw-page") do |pop, context, page_num|
95
- puts "calls draw-page %d" % page_num
96
-
97
- cr = context.cairo_context
98
-
99
- x, y = [0,0] # this means we start at the upper left margin
100
-
101
- if @page_layouts[page_num]
102
- @page_layouts[page_num].each do |layout|
103
- cr.move_to(x,y)
104
- cr.show_pango_layout(layout)
105
- y += layout.height_in_points
106
- end
107
- total_pages = @page_layouts.length
108
- else
109
- total_pages = 1
110
- end
111
-
112
- # page_num starts at 0
113
- draw_footer(cr, page_num + 1, total_pages)
34
+ FONT = Pango::FontDescription.new("sans 12")
35
+ FONT_SMALL = Pango::FontDescription.new("sans 8")
36
+
37
+ FONT_SIZE = 12
38
+ FONT_SMALL_SIZE = 8
39
+
40
+ def initialize(parent_window, text)
41
+ super()
42
+ @parent_window = parent_window
43
+ @text = text
44
+
45
+ # with this option disabled, the origin is the the upper left corner
46
+ # *taking into consideration margins* !
47
+ self.use_full_page = false
48
+ self.unit = Gtk::Unit::POINTS
49
+
50
+ # set default paper size
51
+ page_setup = Gtk::PageSetup.new
52
+ paper_size = Gtk::PaperSize.new(Gtk::PaperSize.default)
53
+ page_setup.paper_size_and_default_margins = paper_size
54
+ self.default_page_setup = page_setup
55
+
56
+ # show a progress bar
57
+ self.show_progress = true
58
+
59
+ # You must choose between "paginate" and "begin-print".
60
+ # "begin-print" is emitted only once and "paginate" is emitted
61
+ # until the block returns true.
62
+ # In both cases, you must set the number of pages at the end with
63
+ # Gtk::PrintOperation#n_pages=
64
+ signal_connect("begin-print") do |pop, context|
65
+ puts "calls begin-print"
66
+ cr = context.cairo_context
67
+ paragraphs = @text.split("\n")
68
+ layouts = []
69
+ paragraphs.each do |para|
70
+ layouts << create_layout(cr, para)
71
+ end
72
+
73
+ # distribute paragraph layouts among pages
74
+ @page_layouts = []
75
+
76
+ curr_height = 0
77
+ n_pages = 0
78
+ layouts.each do |layout|
79
+ height = layout.height_in_points
80
+ if curr_height + height > real_page_height
81
+ n_pages += 1
82
+ curr_height = 0
114
83
  end
115
- end
116
-
117
- def run_print_dialog
118
- res = run(Action::PRINT_DIALOG, @parent_window)
119
- case res
120
- when RESULT_ERROR
121
- puts "error"
122
- when RESULT_CANCEL
123
- puts "cancelled"
124
- when RESULT_APPLY
125
- puts "applied"
126
- when RESULT_IN_PROGRESS
127
- puts "in progress"
128
- end
129
- end
130
-
131
- def run_preview
132
- res = run(Action::PREVIEW, @parent_window)
133
- end
134
-
135
- private
136
-
137
- def page_height
138
- setup = self.default_page_setup
139
- # this takes margins into consideration, contrary to get_paper_height
140
- setup.get_page_height(Gtk::PaperSize::Unit::POINTS)
141
- end
84
+ @page_layouts[n_pages] ||= []
85
+ @page_layouts[n_pages] << layout
86
+ curr_height += height
87
+ end
142
88
 
143
- def page_width
144
- setup = self.default_page_setup
145
- width = setup.get_page_width(Gtk::PaperSize::Unit::POINTS)
89
+ pop.n_pages = n_pages + 1
146
90
  end
147
91
 
148
- def real_page_height
149
- page_height - footer_height
150
- end
151
-
152
- def footer_height
153
- 5 * FONT_SMALL_SIZE
154
- end
92
+ signal_connect("draw-page") do |_pop, context, page_num|
93
+ puts format("calls draw-page %d", page_num)
94
+ cr = context.cairo_context
155
95
 
156
- def create_layout(cr, text)
157
- layout = cr.create_pango_layout
96
+ x, y = [0, 0] # this means we start at the upper left margin
158
97
 
159
- layout.width_in_points = page_width
160
- layout.font_description = FONT
161
- layout.wrap = Pango::Layout::WrapMode::CHAR
162
- layout.ellipsize = Pango::Layout::ELLIPSIZE_NONE
163
- layout.single_paragraph_mode = false
164
-
165
- layout.text = text
98
+ if @page_layouts[page_num]
99
+ @page_layouts[page_num].each do |layout|
100
+ cr.move_to(x, y)
101
+ cr.show_pango_layout(layout)
102
+ y += layout.height_in_points
103
+ end
104
+ total_pages = @page_layouts.length
105
+ else
106
+ total_pages = 1
107
+ end
166
108
 
167
- layout
109
+ # page_num starts at 0
110
+ draw_footer(cr, page_num + 1, total_pages)
168
111
  end
169
-
170
- def draw_footer(cr, nth_page, total_page)
171
- layout = cr.create_pango_layout
172
- layout.alignment = Pango::Layout::ALIGN_RIGHT
173
- layout.font_description = FONT_SMALL
174
- layout.text = "Page %d/%d" % [nth_page, total_page] + "\n" + \
175
- Time.now.strftime("Printed on %Y/%m/%d at %H:%M") + "\n" + \
176
- "Powered by Ruby-GNOME2!"
177
- width, height = layout.size_in_points
178
- x, y = [page_width, page_height]
179
- x -= width
180
- y -= height
181
- cr.move_to(x, y)
182
- cr.show_pango_layout(layout)
183
- cr.rel_move_to(width, -2)
184
- cr.rel_line_to(-page_width, 0)
185
- cr.stroke
112
+ end
113
+
114
+ def run_print_dialog
115
+ res = run(Gtk::PrintOperationAction::PRINT_DIALOG, @parent_window)
116
+ case res
117
+ when Gtk::PrintOperationResult::ERROR
118
+ puts "error"
119
+ when Gtk::PrintOperationResult::CANCEL
120
+ puts "cancelled"
121
+ when Gtk::PrintOperationResult::APPLY
122
+ puts "applied"
123
+ when Gtk::PrintOperationResult::IN_PROGRESS
124
+ puts "in progress"
186
125
  end
187
-
126
+ end
127
+
128
+ def run_preview
129
+ res = run(Gtk::PrintOperationAction::PREVIEW, @parent_window)
130
+ end
131
+
132
+ private
133
+
134
+ def page_height
135
+ setup = default_page_setup
136
+ # this takes margins into consideration, contrary to get_paper_height
137
+ setup.get_page_height(Gtk::Unit::POINTS)
138
+ end
139
+
140
+ def page_width
141
+ setup = default_page_setup
142
+ width = setup.get_page_width(Gtk::Unit::POINTS)
143
+ end
144
+
145
+ def real_page_height
146
+ page_height - footer_height
147
+ end
148
+
149
+ def footer_height
150
+ 5 * FONT_SMALL_SIZE
151
+ end
152
+
153
+ def create_layout(cr, text)
154
+ layout = cr.create_pango_layout
155
+
156
+ layout.width_in_points = page_width
157
+ layout.font_description = FONT
158
+ layout.wrap = Pango::Layout::WrapMode::CHAR
159
+ layout.ellipsize = Pango::Layout::ELLIPSIZE_NONE
160
+ layout.single_paragraph_mode = false
161
+
162
+ layout.text = text
163
+
164
+ layout
165
+ end
166
+
167
+ def draw_footer(cr, nth_page, total_page)
168
+ layout = cr.create_pango_layout
169
+ layout.alignment = Pango::Layout::ALIGN_RIGHT
170
+ layout.font_description = FONT_SMALL
171
+ layout.text = format("Page %d/%d\n%s\nPowered by Ruby-GNOME2!",
172
+ nth_page, total_page,
173
+ Time.now.strftime("Printed on %Y/%m/%d at %H:%M"))
174
+ width, height = layout.size_in_points
175
+ x, y = [page_width, page_height]
176
+ x -= width
177
+ y -= height
178
+ cr.move_to(x, y)
179
+ cr.show_pango_layout(layout)
180
+ cr.rel_move_to(width, -2)
181
+ cr.rel_line_to(-page_width, 0)
182
+ cr.stroke
183
+ end
188
184
  end
189
185
 
190
186
  class Window < Gtk::Window
187
+ def initialize
188
+ super
191
189
 
192
- def initialize
193
- super
190
+ signal_connect("delete-event") { Gtk.main_quit }
194
191
 
195
- signal_connect("delete-event") { Gtk.main_quit }
192
+ set_default_size(600, 600)
196
193
 
197
- set_default_size(600, 600)
194
+ @textview = Gtk::TextView.new
195
+ @textview.wrap_mode = Gtk::WrapMode::WORD
196
+ fill_buffer
198
197
 
199
- @textview = Gtk::TextView.new
200
- @textview.wrap_mode = Gtk::TextTag::WrapMode::WORD
198
+ hbox = Gtk::Box.new(:horizontal)
201
199
 
202
- hbox = Gtk::Box.new(:horizontal)
203
-
204
- page_setup_button = Gtk::Button.new
205
- page_setup_button.label = "Page setup"
206
- page_setup_button.signal_connect("clicked") do
207
- @page_setup = Print::run_page_setup_dialog(self, # parent window
208
- @page_setup)
209
- end
200
+ page_setup_button = Gtk::Button.new(:label => "Page setup")
201
+ page_setup_button.signal_connect("clicked") do
202
+ @page_setup = Gtk.print_run_page_setup_dialog(self, # parent window
203
+ @page_setup)
204
+ end
205
+ print_preview_button = Gtk::Button.new(:label => "Print Preview")
206
+ print_preview_button.signal_connect("clicked") do
207
+ printop = Print.new(self, @textview.buffer.text)
208
+ printop.default_page_setup = @page_setup if @page_setup
209
+ printop.run_preview
210
+ end
210
211
 
211
- print_preview_button = Gtk::Button.new(:stock_id => Gtk::Stock::PRINT_PREVIEW)
212
- print_preview_button.signal_connect("clicked") do
213
- printop = Print.new(self, @textview.buffer.text)
214
- printop.default_page_setup = @page_setup if @page_setup
215
- printop.run_preview
216
- end
212
+ print_button = Gtk::Button.new(:label => "Print")
213
+ print_button.signal_connect("clicked") do
214
+ printop = Print.new(self, @textview.buffer.text)
215
+ printop.default_page_setup = @page_setup if @page_setup
216
+ printop.run_print_dialog
217
+ end
217
218
 
218
- print_button = Gtk::Button.new(:stock_id => Gtk::Stock::PRINT)
219
- print_button.signal_connect("clicked") do
220
- printop = Print.new(self, @textview.buffer.text)
221
- printop.default_page_setup = @page_setup if @page_setup
222
- printop.run_print_dialog
223
- end
219
+ [page_setup_button, print_preview_button, print_button].each do |b|
220
+ hbox.pack_start(b, :expand => true, :fill => true) # expand, fill
221
+ end
224
222
 
225
- [page_setup_button, print_preview_button, print_button].each do |b|
226
- hbox.pack_start(b, true, true) # expand, fill
227
- end
223
+ vbox = Gtk::Box.new(:vertical)
224
+ scroll = Gtk::ScrolledWindow.new
225
+ @textview.show
226
+ scroll.add(@textview)
227
+ scroll.set_policy(:automatic, :automatic)
228
+ vbox.pack_start(scroll, :expand => true, :fill => true)
229
+ vbox.pack_end(hbox, :expand => false, :fill => false)
228
230
 
229
- scrollbar = Gtk::Scrollbar.new(:vertical)
231
+ add(vbox)
230
232
 
231
- vbox = Gtk::Box.new(:vertical)
232
- scroll = Gtk::ScrolledWindow.new.add(@textview)
233
- scroll.set_policy(:automatic, :automatic)
234
- vbox.pack_start(scroll)
235
- vbox.pack_end(hbox, false, false)
233
+ show_all
234
+ end
236
235
 
237
- add(vbox)
236
+ private
238
237
 
239
- show_all
240
-
238
+ def fill_buffer
239
+ open(__FILE__).read.each_line do |line|
240
+ @textview.buffer.insert_at_cursor(line)
241
241
  end
242
-
242
+ @textview.buffer.place_cursor(@textview.buffer.start_iter)
243
+ end
243
244
  end
244
245
 
245
246
  Window.new