gtk3 2.2.4-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 (457) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +20 -0
  3. data/ext/gtk3/conversions.c +34 -0
  4. data/ext/gtk3/depend +11 -0
  5. data/ext/gtk3/extconf.rb +99 -0
  6. data/ext/gtk3/gtk3.def +10 -0
  7. data/ext/gtk3/init.c +34 -0
  8. data/ext/gtk3/rbgtk-about-dialog.c +113 -0
  9. data/ext/gtk3/rbgtk-accel-group-entry.c +94 -0
  10. data/ext/gtk3/rbgtk-accel-group.c +199 -0
  11. data/ext/gtk3/rbgtk-accel-key.c +120 -0
  12. data/ext/gtk3/rbgtk-accel-label.c +55 -0
  13. data/ext/gtk3/rbgtk-accel-map.c +135 -0
  14. data/ext/gtk3/rbgtk-accelerator.c +78 -0
  15. data/ext/gtk3/rbgtk-accessible.c +40 -0
  16. data/ext/gtk3/rbgtk-action-bar.c +73 -0
  17. data/ext/gtk3/rbgtk-action-group.c +467 -0
  18. data/ext/gtk3/rbgtk-action.c +205 -0
  19. data/ext/gtk3/rbgtk-activatable.c +30 -0
  20. data/ext/gtk3/rbgtk-adjustment.c +98 -0
  21. data/ext/gtk3/rbgtk-alignment.c +75 -0
  22. data/ext/gtk3/rbgtk-allocation.c +166 -0
  23. data/ext/gtk3/rbgtk-app-chooser-button.c +70 -0
  24. data/ext/gtk3/rbgtk-app-chooser-dialog.c +68 -0
  25. data/ext/gtk3/rbgtk-app-chooser-widget.c +40 -0
  26. data/ext/gtk3/rbgtk-app-chooser.c +47 -0
  27. data/ext/gtk3/rbgtk-application.c +69 -0
  28. data/ext/gtk3/rbgtk-arrow.c +56 -0
  29. data/ext/gtk3/rbgtk-aspect-frame.c +56 -0
  30. data/ext/gtk3/rbgtk-assistant.c +218 -0
  31. data/ext/gtk3/rbgtk-bin.c +42 -0
  32. data/ext/gtk3/rbgtk-binding-set.c +154 -0
  33. data/ext/gtk3/rbgtk-border.c +119 -0
  34. data/ext/gtk3/rbgtk-box.c +146 -0
  35. data/ext/gtk3/rbgtk-buildable.c +96 -0
  36. data/ext/gtk3/rbgtk-builder.c +166 -0
  37. data/ext/gtk3/rbgtk-button-box.c +87 -0
  38. data/ext/gtk3/rbgtk-button.c +93 -0
  39. data/ext/gtk3/rbgtk-calendar.c +118 -0
  40. data/ext/gtk3/rbgtk-cell-editable.c +57 -0
  41. data/ext/gtk3/rbgtk-cell-layout.c +144 -0
  42. data/ext/gtk3/rbgtk-cell-renderer-accel.c +41 -0
  43. data/ext/gtk3/rbgtk-cell-renderer-combo.c +38 -0
  44. data/ext/gtk3/rbgtk-cell-renderer-pixbuf.c +41 -0
  45. data/ext/gtk3/rbgtk-cell-renderer-progress.c +38 -0
  46. data/ext/gtk3/rbgtk-cell-renderer-spin.c +39 -0
  47. data/ext/gtk3/rbgtk-cell-renderer-spinner.c +38 -0
  48. data/ext/gtk3/rbgtk-cell-renderer-text.c +48 -0
  49. data/ext/gtk3/rbgtk-cell-renderer-toggle.c +39 -0
  50. data/ext/gtk3/rbgtk-cell-renderer.c +119 -0
  51. data/ext/gtk3/rbgtk-cell-view.c +95 -0
  52. data/ext/gtk3/rbgtk-check-button.c +64 -0
  53. data/ext/gtk3/rbgtk-check-menu-item.c +64 -0
  54. data/ext/gtk3/rbgtk-clip-board.c +389 -0
  55. data/ext/gtk3/rbgtk-color-button.c +55 -0
  56. data/ext/gtk3/rbgtk-color-selection-dialog.c +56 -0
  57. data/ext/gtk3/rbgtk-color-selection.c +219 -0
  58. data/ext/gtk3/rbgtk-combo-box-text.c +138 -0
  59. data/ext/gtk3/rbgtk-combo-box.c +147 -0
  60. data/ext/gtk3/rbgtk-const.c +79 -0
  61. data/ext/gtk3/rbgtk-container.c +788 -0
  62. data/ext/gtk3/rbgtk-css-provider.c +110 -0
  63. data/ext/gtk3/rbgtk-dialog.c +206 -0
  64. data/ext/gtk3/rbgtk-drag-gdk-drag-context.c +108 -0
  65. data/ext/gtk3/rbgtk-drag.c +93 -0
  66. data/ext/gtk3/rbgtk-drawing-area.c +42 -0
  67. data/ext/gtk3/rbgtk-editable.c +149 -0
  68. data/ext/gtk3/rbgtk-entry-buffer.c +87 -0
  69. data/ext/gtk3/rbgtk-entry-completion.c +122 -0
  70. data/ext/gtk3/rbgtk-entry.c +184 -0
  71. data/ext/gtk3/rbgtk-event-box.c +42 -0
  72. data/ext/gtk3/rbgtk-expander.c +49 -0
  73. data/ext/gtk3/rbgtk-file-chooser-button.c +50 -0
  74. data/ext/gtk3/rbgtk-file-chooser-dialog.c +62 -0
  75. data/ext/gtk3/rbgtk-file-chooser-widget.c +40 -0
  76. data/ext/gtk3/rbgtk-file-chooser.c +381 -0
  77. data/ext/gtk3/rbgtk-file-filter.c +128 -0
  78. data/ext/gtk3/rbgtk-file-system-error.c +48 -0
  79. data/ext/gtk3/rbgtk-fixed.c +61 -0
  80. data/ext/gtk3/rbgtk-font-button.c +49 -0
  81. data/ext/gtk3/rbgtk-font-chooser-dialog.c +56 -0
  82. data/ext/gtk3/rbgtk-font-chooser-widget.c +45 -0
  83. data/ext/gtk3/rbgtk-font-chooser.c +78 -0
  84. data/ext/gtk3/rbgtk-frame.c +69 -0
  85. data/ext/gtk3/rbgtk-gdk-event.c +38 -0
  86. data/ext/gtk3/rbgtk-grid.c +105 -0
  87. data/ext/gtk3/rbgtk-handle-box.c +45 -0
  88. data/ext/gtk3/rbgtk-header-bar.c +58 -0
  89. data/ext/gtk3/rbgtk-hsv.c +102 -0
  90. data/ext/gtk3/rbgtk-icon-factory.c +85 -0
  91. data/ext/gtk3/rbgtk-icon-info.c +115 -0
  92. data/ext/gtk3/rbgtk-icon-set.c +84 -0
  93. data/ext/gtk3/rbgtk-icon-size.c +91 -0
  94. data/ext/gtk3/rbgtk-icon-source.c +184 -0
  95. data/ext/gtk3/rbgtk-icon-theme.c +268 -0
  96. data/ext/gtk3/rbgtk-icon-view.c +295 -0
  97. data/ext/gtk3/rbgtk-im-multicontext.c +48 -0
  98. data/ext/gtk3/rbgtk-image-menu-item.c +67 -0
  99. data/ext/gtk3/rbgtk-image.c +162 -0
  100. data/ext/gtk3/rbgtk-imcon-text-simple.c +69 -0
  101. data/ext/gtk3/rbgtk-imcon-text.c +133 -0
  102. data/ext/gtk3/rbgtk-infobar.c +121 -0
  103. data/ext/gtk3/rbgtk-invisible.c +49 -0
  104. data/ext/gtk3/rbgtk-label.c +139 -0
  105. data/ext/gtk3/rbgtk-layout.c +93 -0
  106. data/ext/gtk3/rbgtk-level-bar.c +88 -0
  107. data/ext/gtk3/rbgtk-link-button.c +49 -0
  108. data/ext/gtk3/rbgtk-list-store.c +399 -0
  109. data/ext/gtk3/rbgtk-lock-button.c +50 -0
  110. data/ext/gtk3/rbgtk-menu-button.c +41 -0
  111. data/ext/gtk3/rbgtk-menu-item.c +95 -0
  112. data/ext/gtk3/rbgtk-menu-shell.c +106 -0
  113. data/ext/gtk3/rbgtk-menu-tool-button.c +81 -0
  114. data/ext/gtk3/rbgtk-menu.c +168 -0
  115. data/ext/gtk3/rbgtk-menubar.c +43 -0
  116. data/ext/gtk3/rbgtk-message-dialog.c +74 -0
  117. data/ext/gtk3/rbgtk-misc.c +70 -0
  118. data/ext/gtk3/rbgtk-notebook.c +383 -0
  119. data/ext/gtk3/rbgtk-numerable-icon.c +50 -0
  120. data/ext/gtk3/rbgtk-orientable.c +27 -0
  121. data/ext/gtk3/rbgtk-overlay.c +53 -0
  122. data/ext/gtk3/rbgtk-page-setup-unix-dialog.c +94 -0
  123. data/ext/gtk3/rbgtk-page-setup.c +195 -0
  124. data/ext/gtk3/rbgtk-paned.c +114 -0
  125. data/ext/gtk3/rbgtk-paper-size.c +179 -0
  126. data/ext/gtk3/rbgtk-plug.c +85 -0
  127. data/ext/gtk3/rbgtk-print-context.c +125 -0
  128. data/ext/gtk3/rbgtk-print-job.c +148 -0
  129. data/ext/gtk3/rbgtk-print-operation-preview.c +59 -0
  130. data/ext/gtk3/rbgtk-print-operation.c +149 -0
  131. data/ext/gtk3/rbgtk-print-settings.c +807 -0
  132. data/ext/gtk3/rbgtk-print-unix-dialog.c +90 -0
  133. data/ext/gtk3/rbgtk-printer.c +155 -0
  134. data/ext/gtk3/rbgtk-progress-bar.c +72 -0
  135. data/ext/gtk3/rbgtk-radio-action.c +122 -0
  136. data/ext/gtk3/rbgtk-radio-button.c +89 -0
  137. data/ext/gtk3/rbgtk-radio-menu-item.c +147 -0
  138. data/ext/gtk3/rbgtk-radio-tool-button.c +131 -0
  139. data/ext/gtk3/rbgtk-range.c +68 -0
  140. data/ext/gtk3/rbgtk-recent-action.c +64 -0
  141. data/ext/gtk3/rbgtk-recent-chooser-dialog.c +66 -0
  142. data/ext/gtk3/rbgtk-recent-chooser-menu.c +50 -0
  143. data/ext/gtk3/rbgtk-recent-chooser-widget.c +48 -0
  144. data/ext/gtk3/rbgtk-recent-chooser.c +198 -0
  145. data/ext/gtk3/rbgtk-recent-data.c +188 -0
  146. data/ext/gtk3/rbgtk-recent-filter-info.c +201 -0
  147. data/ext/gtk3/rbgtk-recent-filter.c +169 -0
  148. data/ext/gtk3/rbgtk-recent-info.c +213 -0
  149. data/ext/gtk3/rbgtk-recent-manager.c +134 -0
  150. data/ext/gtk3/rbgtk-revealer.c +42 -0
  151. data/ext/gtk3/rbgtk-scale-button.c +84 -0
  152. data/ext/gtk3/rbgtk-scale.c +97 -0
  153. data/ext/gtk3/rbgtk-scrollable.c +31 -0
  154. data/ext/gtk3/rbgtk-scrollbar.c +52 -0
  155. data/ext/gtk3/rbgtk-scrolled-window.c +122 -0
  156. data/ext/gtk3/rbgtk-search-bar.c +59 -0
  157. data/ext/gtk3/rbgtk-search-entry.c +42 -0
  158. data/ext/gtk3/rbgtk-selection-data.c +281 -0
  159. data/ext/gtk3/rbgtk-selection.c +168 -0
  160. data/ext/gtk3/rbgtk-separator-menu-item.c +39 -0
  161. data/ext/gtk3/rbgtk-separator-tool-item.c +38 -0
  162. data/ext/gtk3/rbgtk-separator.c +44 -0
  163. data/ext/gtk3/rbgtk-settings.c +229 -0
  164. data/ext/gtk3/rbgtk-size-group.c +66 -0
  165. data/ext/gtk3/rbgtk-socket.c +82 -0
  166. data/ext/gtk3/rbgtk-spin-button.c +132 -0
  167. data/ext/gtk3/rbgtk-spinner.c +55 -0
  168. data/ext/gtk3/rbgtk-stack-switcher.c +41 -0
  169. data/ext/gtk3/rbgtk-stack.c +106 -0
  170. data/ext/gtk3/rbgtk-status-bar.c +77 -0
  171. data/ext/gtk3/rbgtk-status-icon.c +122 -0
  172. data/ext/gtk3/rbgtk-stock.c +213 -0
  173. data/ext/gtk3/rbgtk-style-context-gdk-screen.c +61 -0
  174. data/ext/gtk3/rbgtk-style-context.c +411 -0
  175. data/ext/gtk3/rbgtk-style-properties.c +118 -0
  176. data/ext/gtk3/rbgtk-style-provider.c +67 -0
  177. data/ext/gtk3/rbgtk-switch.c +40 -0
  178. data/ext/gtk3/rbgtk-table.c +190 -0
  179. data/ext/gtk3/rbgtk-target-list.c +125 -0
  180. data/ext/gtk3/rbgtk-tearoff-menu-item.c +41 -0
  181. data/ext/gtk3/rbgtk-text-appearance.c +236 -0
  182. data/ext/gtk3/rbgtk-text-attributes.c +326 -0
  183. data/ext/gtk3/rbgtk-text-buffer.c +899 -0
  184. data/ext/gtk3/rbgtk-text-child-anchor.c +56 -0
  185. data/ext/gtk3/rbgtk-text-iter.c +732 -0
  186. data/ext/gtk3/rbgtk-text-mark.c +71 -0
  187. data/ext/gtk3/rbgtk-text-tag-table.c +96 -0
  188. data/ext/gtk3/rbgtk-text-tag.c +68 -0
  189. data/ext/gtk3/rbgtk-text-view.c +336 -0
  190. data/ext/gtk3/rbgtk-theming-engine.c +257 -0
  191. data/ext/gtk3/rbgtk-toggle-action.c +61 -0
  192. data/ext/gtk3/rbgtk-toggle-button.c +87 -0
  193. data/ext/gtk3/rbgtk-toggle-tool-button.c +61 -0
  194. data/ext/gtk3/rbgtk-tool-button.c +66 -0
  195. data/ext/gtk3/rbgtk-tool-item.c +200 -0
  196. data/ext/gtk3/rbgtk-tool-itemgroup.c +70 -0
  197. data/ext/gtk3/rbgtk-tool-shell.c +96 -0
  198. data/ext/gtk3/rbgtk-toolbar.c +118 -0
  199. data/ext/gtk3/rbgtk-tooltip-gdk-display.c +39 -0
  200. data/ext/gtk3/rbgtk-tooltip.c +100 -0
  201. data/ext/gtk3/rbgtk-tree-dragdest.c +28 -0
  202. data/ext/gtk3/rbgtk-tree-dragsource.c +28 -0
  203. data/ext/gtk3/rbgtk-tree-iter.c +258 -0
  204. data/ext/gtk3/rbgtk-tree-model.c +246 -0
  205. data/ext/gtk3/rbgtk-tree-modelfilter.c +197 -0
  206. data/ext/gtk3/rbgtk-tree-modelsort.c +111 -0
  207. data/ext/gtk3/rbgtk-tree-path.c +191 -0
  208. data/ext/gtk3/rbgtk-tree-rowreference.c +140 -0
  209. data/ext/gtk3/rbgtk-tree-selection.c +190 -0
  210. data/ext/gtk3/rbgtk-tree-sortable.c +122 -0
  211. data/ext/gtk3/rbgtk-tree-store.c +330 -0
  212. data/ext/gtk3/rbgtk-tree-view-column.c +256 -0
  213. data/ext/gtk3/rbgtk-tree-view.c +716 -0
  214. data/ext/gtk3/rbgtk-ui-manager.c +189 -0
  215. data/ext/gtk3/rbgtk-viewport.c +44 -0
  216. data/ext/gtk3/rbgtk-volume-button.c +41 -0
  217. data/ext/gtk3/rbgtk-widget-path.c +229 -0
  218. data/ext/gtk3/rbgtk-widget.c +1554 -0
  219. data/ext/gtk3/rbgtk-window-group.c +80 -0
  220. data/ext/gtk3/rbgtk-window.c +565 -0
  221. data/ext/gtk3/rbgtk.c +783 -0
  222. data/ext/gtk3/rbgtk3.h +90 -0
  223. data/ext/gtk3/rbgtk3conversions.h +439 -0
  224. data/ext/gtk3/rbgtk3private.h +300 -0
  225. data/ext/gtk3/rbgtk3util.c +67 -0
  226. data/ext/gtk3/rbgtk3util.h +32 -0
  227. data/extconf.rb +49 -0
  228. data/lib/2.0/gtk3.so +0 -0
  229. data/lib/2.1/gtk3.so +0 -0
  230. data/lib/2.2/gtk3.so +0 -0
  231. data/lib/gtk3.rb +11 -0
  232. data/lib/gtk3/base.rb +67 -0
  233. data/lib/gtk3/deprecated.rb +1004 -0
  234. data/sample/gtk-demo/README +7 -0
  235. data/sample/gtk-demo/alphatest.png +0 -0
  236. data/sample/gtk-demo/apple-red.png +0 -0
  237. data/sample/gtk-demo/appwindow.rb +233 -0
  238. data/sample/gtk-demo/background.jpg +0 -0
  239. data/sample/gtk-demo/builder.rb +51 -0
  240. data/sample/gtk-demo/button_box.rb +83 -0
  241. data/sample/gtk-demo/cairo-arc-negative.rb +41 -0
  242. data/sample/gtk-demo/cairo-arc.rb +41 -0
  243. data/sample/gtk-demo/cairo-clip-image.rb +51 -0
  244. data/sample/gtk-demo/cairo-clip-rectangle.rb +35 -0
  245. data/sample/gtk-demo/cairo-clip.rb +35 -0
  246. data/sample/gtk-demo/cairo-curve-rectangle.rb +76 -0
  247. data/sample/gtk-demo/cairo-curve-to.rb +43 -0
  248. data/sample/gtk-demo/cairo-dash.rb +39 -0
  249. data/sample/gtk-demo/cairo-fill-and-stroke.rb +32 -0
  250. data/sample/gtk-demo/cairo-fill-and-stroke2.rb +38 -0
  251. data/sample/gtk-demo/cairo-gradient.rb +35 -0
  252. data/sample/gtk-demo/cairo-image-pattern.rb +39 -0
  253. data/sample/gtk-demo/cairo-image.rb +49 -0
  254. data/sample/gtk-demo/cairo-line-cap.rb +53 -0
  255. data/sample/gtk-demo/cairo-line-join.rb +41 -0
  256. data/sample/gtk-demo/cairo-long-lines.rb +41 -0
  257. data/sample/gtk-demo/cairo-operator.rb +83 -0
  258. data/sample/gtk-demo/cairo-path.rb +28 -0
  259. data/sample/gtk-demo/cairo-pattern-fill.rb +88 -0
  260. data/sample/gtk-demo/cairo-self-intersect.rb +32 -0
  261. data/sample/gtk-demo/cairo-text-align-center.rb +45 -0
  262. data/sample/gtk-demo/cairo-text-extents.rb +46 -0
  263. data/sample/gtk-demo/cairo-text.rb +43 -0
  264. data/sample/gtk-demo/changedisplay.rb +407 -0
  265. data/sample/gtk-demo/clipboard.rb +67 -0
  266. data/sample/gtk-demo/colorsel.rb +82 -0
  267. data/sample/gtk-demo/common.rb +87 -0
  268. data/sample/gtk-demo/css_accordion.css +53 -0
  269. data/sample/gtk-demo/css_accordion.rb +75 -0
  270. data/sample/gtk-demo/demo.ui +258 -0
  271. data/sample/gtk-demo/dialog.rb +137 -0
  272. data/sample/gtk-demo/drawingarea.rb +205 -0
  273. data/sample/gtk-demo/editable_cells.rb +173 -0
  274. data/sample/gtk-demo/entry_completion.rb +63 -0
  275. data/sample/gtk-demo/expander.rb +42 -0
  276. data/sample/gtk-demo/floppybuddy.gif +0 -0
  277. data/sample/gtk-demo/gnome-applets.png +0 -0
  278. data/sample/gtk-demo/gnome-calendar.png +0 -0
  279. data/sample/gtk-demo/gnome-foot.png +0 -0
  280. data/sample/gtk-demo/gnome-fs-directory.png +0 -0
  281. data/sample/gtk-demo/gnome-fs-regular.png +0 -0
  282. data/sample/gtk-demo/gnome-gimp.png +0 -0
  283. data/sample/gtk-demo/gnome-gmush.png +0 -0
  284. data/sample/gtk-demo/gnome-gsame.png +0 -0
  285. data/sample/gtk-demo/gnu-keys.png +0 -0
  286. data/sample/gtk-demo/gtk-logo-rgb.gif +0 -0
  287. data/sample/gtk-demo/hypertext.rb +211 -0
  288. data/sample/gtk-demo/iconview.rb +110 -0
  289. data/sample/gtk-demo/images.rb +197 -0
  290. data/sample/gtk-demo/infobar.rb +78 -0
  291. data/sample/gtk-demo/item_factory.rb +94 -0
  292. data/sample/gtk-demo/links.rb +53 -0
  293. data/sample/gtk-demo/list_store.rb +138 -0
  294. data/sample/gtk-demo/main.rb +384 -0
  295. data/sample/gtk-demo/menus.rb +172 -0
  296. data/sample/gtk-demo/panes.rb +156 -0
  297. data/sample/gtk-demo/pixbufs.rb +167 -0
  298. data/sample/gtk-demo/printing.rb +128 -0
  299. data/sample/gtk-demo/reset.css +69 -0
  300. data/sample/gtk-demo/rotated_text.rb +72 -0
  301. data/sample/gtk-demo/ruby-gnome2-logo.png +0 -0
  302. data/sample/gtk-demo/sizegroup.rb +118 -0
  303. data/sample/gtk-demo/spinner.rb +59 -0
  304. data/sample/gtk-demo/stock_browser.rb +233 -0
  305. data/sample/gtk-demo/textview.rb +436 -0
  306. data/sample/gtk-demo/theming.ui +319 -0
  307. data/sample/gtk-demo/theming_style_classes.rb +48 -0
  308. data/sample/gtk-demo/tree_store.rb +270 -0
  309. data/sample/misc/aboutdialog.rb +42 -0
  310. data/sample/misc/aboutdialog2.rb +42 -0
  311. data/sample/misc/alpha-demo.rb +70 -0
  312. data/sample/misc/assistant.rb +281 -0
  313. data/sample/misc/bindings.rb +97 -0
  314. data/sample/misc/button.rb +72 -0
  315. data/sample/misc/button2.rb +28 -0
  316. data/sample/misc/buttonbox.rb +93 -0
  317. data/sample/misc/cairo-pong.rb +217 -0
  318. data/sample/misc/calendar.rb +66 -0
  319. data/sample/misc/checkbutton.rb +49 -0
  320. data/sample/misc/colorselection.rb +22 -0
  321. data/sample/misc/combo_check.rb +79 -0
  322. data/sample/misc/combobox.rb +85 -0
  323. data/sample/misc/composited-windows.rb +113 -0
  324. data/sample/misc/cursor.rb +34 -0
  325. data/sample/misc/dialog.rb +44 -0
  326. data/sample/misc/dialog2.rb +36 -0
  327. data/sample/misc/dnd.rb +64 -0
  328. data/sample/misc/dndtreeview.rb +56 -0
  329. data/sample/misc/drag-move.rb +139 -0
  330. data/sample/misc/drawing.rb +109 -0
  331. data/sample/misc/entry.rb +34 -0
  332. data/sample/misc/entrycompletion.rb +33 -0
  333. data/sample/misc/expander.rb +27 -0
  334. data/sample/misc/filechooser.rb +41 -0
  335. data/sample/misc/frame.rb +69 -0
  336. data/sample/misc/gdkscreen.rb +32 -0
  337. data/sample/misc/gnome-logo-icon.png +0 -0
  338. data/sample/misc/helloworld.rb +35 -0
  339. data/sample/misc/iconview.rb +38 -0
  340. data/sample/misc/image.rb +42 -0
  341. data/sample/misc/itemfactory.rb +73 -0
  342. data/sample/misc/itemfactory2.rb +74 -0
  343. data/sample/misc/keyboard_grab.rb +29 -0
  344. data/sample/misc/label.rb +33 -0
  345. data/sample/misc/linkbutton.rb +42 -0
  346. data/sample/misc/listview.rb +92 -0
  347. data/sample/misc/menu.rb +81 -0
  348. data/sample/misc/misc_button.rb +49 -0
  349. data/sample/misc/mouse-gesture.rb +465 -0
  350. data/sample/misc/pangorenderer.rb +66 -0
  351. data/sample/misc/pointer_grab.rb +34 -0
  352. data/sample/misc/print.rb +247 -0
  353. data/sample/misc/properties.rb +86 -0
  354. data/sample/misc/radiobutton.rb +47 -0
  355. data/sample/misc/recentchooserdialog.rb +52 -0
  356. data/sample/misc/rgtk+cairo.rb +42 -0
  357. data/sample/misc/scalebutton.rb +19 -0
  358. data/sample/misc/settings.rb +41 -0
  359. data/sample/misc/statusicon.rb +106 -0
  360. data/sample/misc/stock.rb +36 -0
  361. data/sample/misc/style_property.rb +67 -0
  362. data/sample/misc/style_property.rc +19 -0
  363. data/sample/misc/t-gtkplug.rb +58 -0
  364. data/sample/misc/t-gtksocket.rb +65 -0
  365. data/sample/misc/test.xpm +92 -0
  366. data/sample/misc/textbuffer_serialize.rb +130 -0
  367. data/sample/misc/threads.rb +70 -0
  368. data/sample/misc/to_drawable.rb +42 -0
  369. data/sample/misc/togglebutton.rb +34 -0
  370. data/sample/misc/toolbar.rb +55 -0
  371. data/sample/misc/tooltips.rb +204 -0
  372. data/sample/misc/tree_combo.rb +79 -0
  373. data/sample/misc/tree_progress.rb +61 -0
  374. data/sample/misc/treemodelfilter.rb +49 -0
  375. data/sample/misc/treeview.rb +71 -0
  376. data/sample/misc/uimanager.rb +148 -0
  377. data/sample/misc/uimanager2.rb +91 -0
  378. data/sample/misc/uimanager2.xml +36 -0
  379. data/sample/misc/window.rb +24 -0
  380. data/sample/misc/xbm_cursor.rb +43 -0
  381. data/sample/testgtk/3DRings.xpm +116 -0
  382. data/sample/testgtk/FilesQueue.xpm +98 -0
  383. data/sample/testgtk/Modeller.xpm +117 -0
  384. data/sample/testgtk/README +14 -0
  385. data/sample/testgtk/button.rb +124 -0
  386. data/sample/testgtk/buttonbox.rb +100 -0
  387. data/sample/testgtk/check-n.xpm +21 -0
  388. data/sample/testgtk/check-y.xpm +21 -0
  389. data/sample/testgtk/checkbutton.rb +67 -0
  390. data/sample/testgtk/circles.xbm +46 -0
  391. data/sample/testgtk/colorselect.rb +33 -0
  392. data/sample/testgtk/dialog.rb +48 -0
  393. data/sample/testgtk/entry.rb +73 -0
  394. data/sample/testgtk/filesel.rb +65 -0
  395. data/sample/testgtk/fontselection.rb +56 -0
  396. data/sample/testgtk/labels.rb +74 -0
  397. data/sample/testgtk/layout.rb +108 -0
  398. data/sample/testgtk/marble.xpm +408 -0
  399. data/sample/testgtk/menu.rb +79 -0
  400. data/sample/testgtk/notebook.rb +280 -0
  401. data/sample/testgtk/pixmap.rb +58 -0
  402. data/sample/testgtk/progressbar.rb +173 -0
  403. data/sample/testgtk/radiobutton.rb +61 -0
  404. data/sample/testgtk/range.rb +65 -0
  405. data/sample/testgtk/reparent.rb +91 -0
  406. data/sample/testgtk/sample.rb +80 -0
  407. data/sample/testgtk/savedposition.rb +87 -0
  408. data/sample/testgtk/scrolledwindow.rb +67 -0
  409. data/sample/testgtk/shapedwindow.rb +99 -0
  410. data/sample/testgtk/spinbutton.rb +181 -0
  411. data/sample/testgtk/statusbar.rb +89 -0
  412. data/sample/testgtk/test.xpm +92 -0
  413. data/sample/testgtk/testgtk.rb +176 -0
  414. data/sample/testgtk/testgtkrc +146 -0
  415. data/sample/testgtk/testgtkrc2 +21 -0
  416. data/sample/testgtk/togglebutton.rb +53 -0
  417. data/sample/testgtk/toolbar.rb +82 -0
  418. data/sample/testgtk/tooltips.rb +41 -0
  419. data/sample/testgtk/wmhints.rb +40 -0
  420. data/test/gtk-test-utils.rb +15 -0
  421. data/test/run-test.rb +58 -0
  422. data/test/test_gc.rb +22 -0
  423. data/test/test_gtk.rb +23 -0
  424. data/test/test_gtk_about_dialog.rb +13 -0
  425. data/test/test_gtk_accel_group_entry.rb +24 -0
  426. data/test/test_gtk_accel_key.rb +24 -0
  427. data/test/test_gtk_accessible.rb +31 -0
  428. data/test/test_gtk_action_group.rb +46 -0
  429. data/test/test_gtk_allocation.rb +24 -0
  430. data/test/test_gtk_border.rb +24 -0
  431. data/test/test_gtk_buildable.rb +56 -0
  432. data/test/test_gtk_builder.rb +166 -0
  433. data/test/test_gtk_container.rb +32 -0
  434. data/test/test_gtk_css_provider.rb +27 -0
  435. data/test/test_gtk_entry.rb +52 -0
  436. data/test/test_gtk_header_bar.rb +66 -0
  437. data/test/test_gtk_icon_theme.rb +31 -0
  438. data/test/test_gtk_icon_view.rb +41 -0
  439. data/test/test_gtk_image.rb +8 -0
  440. data/test/test_gtk_level_bar.rb +82 -0
  441. data/test/test_gtk_list_store.rb +105 -0
  442. data/test/test_gtk_menu_button.rb +49 -0
  443. data/test/test_gtk_menu_item.rb +13 -0
  444. data/test/test_gtk_recent_data.rb +24 -0
  445. data/test/test_gtk_recent_filter_info.rb +26 -0
  446. data/test/test_gtk_revealer.rb +57 -0
  447. data/test/test_gtk_search_bar.rb +55 -0
  448. data/test/test_gtk_search_entry.rb +34 -0
  449. data/test/test_gtk_stack.rb +115 -0
  450. data/test/test_gtk_stack_switcher.rb +30 -0
  451. data/test/test_gtk_style_context.rb +30 -0
  452. data/test/test_gtk_style_properties.rb +38 -0
  453. data/test/test_gtk_tree_path.rb +20 -0
  454. data/test/test_gtk_tree_selection.rb +31 -0
  455. data/test/test_gtk_unix_print.rb +14 -0
  456. data/test/test_gtk_widget.rb +24 -0
  457. metadata +582 -0
@@ -0,0 +1,7 @@
1
+ gtk-demo for Ruby/GTK
2
+
3
+ To run, do
4
+
5
+ ruby main.rb
6
+
7
+ in this directory.
Binary file
Binary file
@@ -0,0 +1,233 @@
1
+ # Copyright (c) 2003-2014 Ruby-GNOME2 Project Team
2
+ # This program is licenced under the same licence as Ruby-GNOME2.
3
+ #
4
+ # $Id: appwindow.rb,v 1.7 2005/03/05 15:01:16 mutoh Exp $
5
+ =begin
6
+ = Application main window
7
+
8
+ Demonstrates a typical application window, with menubar, toolbar, statusbar.
9
+ =end
10
+
11
+ require 'common'
12
+
13
+ module Demo
14
+ class AppWindow < BasicWindow
15
+ def initialize
16
+ register_stock_icons
17
+
18
+ ## Create toplevel window
19
+ super('Application Window')
20
+
21
+ table = Gtk::Table.new(1, 4, false)
22
+ add(table)
23
+
24
+ ## Create the menubar
25
+ accel_group = Gtk::AccelGroup.new
26
+ add_accel_group(accel_group)
27
+
28
+ item_factory = Gtk::ItemFactory.new(Gtk::ItemFactory::TYPE_MENU_BAR,
29
+ '<main>', accel_group)
30
+ # create menu items
31
+ menuitem_cb = proc do |data, widget|
32
+ # TODO: Show item-factory's path to menu item
33
+ dialog = Gtk::MessageDialog.new(self,
34
+ Gtk::Dialog::DESTROY_WITH_PARENT,
35
+ Gtk::MessageDialog::INFO,
36
+ Gtk::MessageDialog::BUTTONS_CLOSE,
37
+ "You selected or toggled the menu item \"#{Gtk::ItemFactory.path_from_widget(widget)}\"")
38
+
39
+ # Close dialog on user response
40
+ dialog.signal_connect('response') do |widget, data|
41
+ widget.destroy
42
+ end
43
+
44
+ dialog.show
45
+ end
46
+
47
+ menu_items = [
48
+ ["/_File"],
49
+ ["/_File/_New",
50
+ "<StockItem>", "<control>N", Gtk::Stock::NEW, menuitem_cb],
51
+ ["/_File/_Open",
52
+ "<StockItem>", "<control>O", Gtk::Stock::OPEN, menuitem_cb],
53
+ ["/File/_Save",
54
+ "<StockItem>", "<control>S", Gtk::Stock::SAVE, menuitem_cb],
55
+ ["/File/Save _As...",
56
+ "<StockItem>", nil, Gtk::Stock::SAVE, menuitem_cb],
57
+ ["/File/sep1",
58
+ "<Separator>", nil, nil, menuitem_cb],
59
+ ["/File/Quit",
60
+ "<StockItem>", "<control>Q", Gtk::Stock::QUIT, menuitem_cb],
61
+
62
+ ["/_Preferences"],
63
+ ["/_Preferences/_Color"],
64
+ ["/_Preferences/Color/_Red",
65
+ "<RadioItem>", nil, nil, menuitem_cb],
66
+ ["/_Preferences/Color/_Green",
67
+ "/Preferences/Color/Red", nil, nil, menuitem_cb],
68
+ ["/_Preferences/Color/_Blue",
69
+ "/Preferences/Color/Red", nil, nil, menuitem_cb],
70
+
71
+ ["/Preferences/_Shape"],
72
+ ["/Preferences/Shape/_Square",
73
+ "<RadioItem>", nil, nil, menuitem_cb],
74
+ ["/Preferences/Shape/_Rectangle",
75
+ "/Preferences/Shape/Square", nil, nil, menuitem_cb],
76
+ ["/Preferences/Shape/_Oval",
77
+ "/Preferences/Shape/Square", nil, nil, menuitem_cb],
78
+
79
+ # If you wanted this to be right justified you would use
80
+ # "<LastBranch>", not "<Branch>". Right justified help menu
81
+ # items are generally considered a bad idea now days.
82
+ ["/_Help"],
83
+ ["/Help/_About", "<Item>", nil, nil, Proc.new{about_cb}],
84
+ ]
85
+ item_factory.create_items(menu_items)
86
+
87
+ table.attach(item_factory.get_widget('<main>'),
88
+ # X direction # Y direction
89
+ 0, 1, 0, 1,
90
+ Gtk::EXPAND | Gtk::FILL, 0,
91
+ 0, 0)
92
+
93
+ ## Create the toolbar
94
+ toolbar = Gtk::Toolbar.new
95
+ # toolbar.set_toolbar_style(Gtk::Toolbar::BOTH)
96
+ toolbar.append(Gtk::Stock::OPEN,
97
+ "This is a demo button with an 'open' icon"
98
+ ) do toolbar_cb end
99
+ toolbar.append(Gtk::Stock::QUIT,
100
+ "This is a demo button with an 'quit' icon"
101
+ ) do toolbar_cb end
102
+ toolbar.append_space
103
+ toolbar.append(:demo_gtk_logo,
104
+ "This is a demo button with an 'gtk' icon"
105
+ ) do toolbar_cb end
106
+ table.attach(toolbar,
107
+ # X direction # Y direction
108
+ 0, 1, 1, 2,
109
+ Gtk::EXPAND | Gtk::FILL, 0,
110
+ 0, 0)
111
+
112
+ ## Create document
113
+ sw = Gtk::ScrolledWindow.new
114
+ sw.set_policy(:automatic, :automatic)
115
+ sw.shadow_type = :in
116
+ table.attach(sw,
117
+ # X direction # Y direction
118
+ 0, 1, 2, 3,
119
+ Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL,
120
+ 0, 0)
121
+
122
+ set_default_size(200, 200)
123
+
124
+ contents = Gtk::TextView.new
125
+ sw.add(contents)
126
+
127
+ ## Create statusbar
128
+ statusbar = Gtk::Statusbar.new
129
+ table.attach(statusbar,
130
+ # X direction # Y direction
131
+ 0, 1, 3, 4,
132
+ Gtk::EXPAND | Gtk::FILL, 0,
133
+ 0, 0)
134
+
135
+ # Show text widget info in the statusbar
136
+ buffer = contents.buffer
137
+ buffer.signal_connect('changed') do |buffer|
138
+ update_statusbar(buffer, statusbar)
139
+ end
140
+ # cursor moved
141
+ buffer.signal_connect('mark_set') do |buffer, iter, mark|
142
+ update_statusbar(buffer, statusbar)
143
+ end
144
+ end
145
+
146
+ def toolbar_cb(*args)
147
+ dialog = Gtk::MessageDialog.new(self,
148
+ Gtk::Dialog::DESTROY_WITH_PARENT,
149
+ Gtk::MessageDialog::INFO,
150
+ Gtk::MessageDialog::BUTTONS_CLOSE,
151
+ "You selected a toolbar button")
152
+
153
+ # Close dialog on user response
154
+ dialog.signal_connect('response') do |widget, data|
155
+ widget.destroy
156
+ end
157
+
158
+ dialog.show
159
+ end
160
+
161
+ def about_cb(*args)
162
+ unless Gtk.check_version?(2, 6, 0)
163
+ puts "This sample requires GTK+ 2.6.0 or later"
164
+ return
165
+ end
166
+
167
+ authors = ["Peter Mattis", "Spencer Kimball", "Josh MacDonald", "and many more..."]
168
+ documentors = ["Owen Taylor", "Tony Gale", "Mattias Clasen <mclasen@redhat.com>",
169
+ "and many more..."]
170
+ license = %Q[
171
+ This library is free software; you can redistribute it and/or
172
+ modify it under the terms of the GNU Library General Public License as
173
+ published by the Free Software Foundation; either version 2 of the
174
+ License, or (at your option) any later version.
175
+
176
+ This library is distributed in the hope that it will be useful,
177
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
178
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the GNU
179
+ Library General Public License for more details.
180
+
181
+ You should have received a copy of the GNU Library General Public
182
+ License along with the Gnome Library; see the file COPYING.LIB.If not,
183
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
184
+ Boston, MA 02111-1307, USA.
185
+ ]
186
+
187
+ transparent = Gdk::Pixbuf.new(Demo.find_file("gtk-logo-rgb.gif")).add_alpha(true, 0xff, 0xff, 0xff)
188
+
189
+ Gtk::AboutDialog.set_email_hook {|about, link|
190
+ puts "send mail to #{link}"
191
+ }
192
+ Gtk::AboutDialog.set_url_hook {|about, link|
193
+ puts "show url #{link}"
194
+ }
195
+ Gtk::AboutDialog.show(self,
196
+ :name => "GTK+ Code Demos",
197
+ :version => Gtk::VERSION.join("."),
198
+ :copyright => "(C) 1997-2004 The GTK+ Team",
199
+ :license => license,
200
+ :website => "http://www.gtk.org",
201
+ :comments => "Program to demonstrate GTK+ functions.",
202
+ :authors => authors,
203
+ :documenters => documentors,
204
+ :logo => transparent)
205
+ end
206
+
207
+ def update_statusbar(buffer, statusbar)
208
+ statusbar.pop(0)
209
+
210
+ iter = buffer.get_iter_at_mark(buffer.get_mark('insert'))
211
+
212
+ statusbar.push(0,
213
+ "Cursor at row #{iter.line} column #{iter.line_offset} - #{buffer.char_count} chars in document")
214
+ end
215
+
216
+ def register_stock_icons
217
+ # Register our stock items
218
+ Gtk::Stock.add(:demo_gtk_logo, '_GTK!')
219
+
220
+ # Add out custom icon factory to the list of defaults
221
+ factory = Gtk::IconFactory.new
222
+ factory.add_default
223
+
224
+ filename = Demo.find_file('gtk-logo-rgb.gif')
225
+ pixbuf = Gdk::Pixbuf.new(filename)
226
+
227
+ transparent = pixbuf.add_alpha(true, 0xff, 0xff, 0xff)
228
+
229
+ icon_set = Gtk::IconSet.new(transparent)
230
+ factory.add('demo_gtk_logo', icon_set)
231
+ end
232
+ end
233
+ end
Binary file
@@ -0,0 +1,51 @@
1
+ # Copyright (c) 2008 Ruby-GNOME2 Project Team
2
+ # This program is licenced under the same licence as Ruby-GNOME2.
3
+ #
4
+ =begin
5
+ = Interface Builder
6
+
7
+ Demonstrates an interface loaded from a XML description.
8
+ =end
9
+
10
+ require 'common'
11
+
12
+ module Demo
13
+ class Dialog < Demo::BasicWindow
14
+ def initialize
15
+ super('Interface Builder')
16
+
17
+ available = Gtk.check_version?(2, 12, 0)
18
+ if available
19
+ label = Gtk::Label.new("Build an interface from XML description.")
20
+ else
21
+ label = Gtk::Label.new("You need GTK+ >= 2.12.0 to run this demo.")
22
+ end
23
+ add(label)
24
+ return unless available
25
+
26
+ @builder = Gtk::Builder.new
27
+ filename = File.join(File.dirname(__FILE__), "demo.ui")
28
+ @builder << filename
29
+ @builder.connect_signals {|name| method(name)}
30
+ @window = @builder["window1"]
31
+ @window.show_all
32
+
33
+ signal_connect("destroy") do
34
+ @window.destroy unless @window.destroyed?
35
+ end
36
+ end
37
+
38
+ private
39
+ def quit_activate
40
+ @window.destroy
41
+ destroy unless destroyed?
42
+ end
43
+
44
+ def about_activate
45
+ dialog = @builder["aboutdialog1"]
46
+ dialog.run
47
+ dialog.hide
48
+ end
49
+ end
50
+ end
51
+
@@ -0,0 +1,83 @@
1
+ # Copyright (c) 2003-2005 Ruby-GNOME2 Project Team
2
+ # This program is licenced under the same licence as Ruby-GNOME2.
3
+ #
4
+ # $Id: button_box.rb,v 1.3 2005/02/12 23:02:43 kzys Exp $
5
+ =begin
6
+ = Button Boxes
7
+
8
+ The Button Box widgets are used to arrange buttons with padding.
9
+ =end
10
+ require 'common'
11
+
12
+ module Demo
13
+ class ButtonBox < BasicWindow
14
+ def initialize
15
+ super('Button Boxes')
16
+ set_border_width(10)
17
+
18
+ main_vbox = Gtk::Box.new(:vertical)
19
+ add(main_vbox)
20
+
21
+ frame_horiz = Gtk::Frame.new('Horizontal Button Boxes')
22
+ main_vbox.pack_start(frame_horiz, :expand => true, :fill => true, :padding => 10)
23
+
24
+ vbox = Gtk::Box.new(:vertical)
25
+ vbox.set_border_width(10)
26
+ frame_horiz.add(vbox)
27
+
28
+ vbox.pack_start(create_bbox(true, 'Spread', 40, :spread),
29
+ :expand => true, :fill => true, :padding => 0)
30
+
31
+ vbox.pack_start(create_bbox(true, 'Edge', 40, :edge),
32
+ :expand => true, :fill => true, :padding => 5)
33
+
34
+ vbox.pack_start(create_bbox(true, 'Start', 40, :start),
35
+ :expand => true, :fill => true, :padding => 5)
36
+
37
+ vbox.pack_start(create_bbox(true, 'End', 40, :end),
38
+ :expand => true, :fill => true, :padding => 5)
39
+
40
+ frame_vert = Gtk::Frame.new('Vertical Button Boxes')
41
+ main_vbox.pack_start(frame_vert, :expand => true, :fill => true, :padding => 10)
42
+
43
+ hbox = Gtk::Box.new(:horizontal, 0)
44
+ hbox.set_border_width(10)
45
+ frame_vert.add(hbox)
46
+
47
+ hbox.pack_start(create_bbox(false, 'Spread', 30, :spread),
48
+ :expand => true, :fill => true, :padding => 0)
49
+
50
+ hbox.pack_start(create_bbox(false, 'Edge', 30, :edge),
51
+ :expand => true, :fill => true, :padding => 5)
52
+
53
+ hbox.pack_start(create_bbox(false, 'Start', 30, :start),
54
+ :expand => true, :fill => true, :padding => 5)
55
+
56
+ hbox.pack_start(create_bbox(false, 'End', 30, :end),
57
+ :expand => true, :fill => true, :padding => 5)
58
+ end
59
+
60
+ def create_bbox(horizontal, title, spacing, layout)
61
+ frame = Gtk::Frame.new(title)
62
+
63
+ bbox = if horizontal
64
+ Gtk::ButtonBox.new(:horizontal)
65
+ else
66
+ Gtk::ButtonBox.new(:vertical)
67
+ end
68
+
69
+ bbox.set_border_width(5)
70
+ frame.add(bbox)
71
+
72
+ bbox.layout_style = layout
73
+ bbox.set_spacing(spacing)
74
+
75
+ [Gtk::Stock::OK, Gtk::Stock::CANCEL, Gtk::Stock::HELP].each do |stock|
76
+ button = Gtk::Button.new(:stock_id => stock)
77
+ bbox.add(button)
78
+ end
79
+
80
+ return frame
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,41 @@
1
+ # Copyright (c) 2005 Ruby-GNOME2 Project Team
2
+ # This program is licenced under the same licence as Ruby-GNOME2.
3
+ #
4
+ # $Id: cairo-arc-negative.rb,v 1.1 2005/10/12 05:38:30 ktou Exp $
5
+ =begin
6
+ = cairo/Arc Negative
7
+
8
+ This demo shows how to use GDK and cairo to draw arc in negative.
9
+ From http://cairographics.org/samples/arc_negative.html.
10
+ =end
11
+ require 'common'
12
+
13
+ module Demo
14
+ class CairoArcNegative < CairoWindow
15
+ CENTER_X = 0.5
16
+ CENTER_Y = 0.5
17
+ RADIUS = 0.4
18
+ ANGLE1 = 45.0 * (Math::PI / 180.0) # angles are specified
19
+ ANGLE2 = 180.0 * (Math::PI / 180.0) # in radians
20
+
21
+ def initialize
22
+ super('cairo arc_negative')
23
+ end
24
+
25
+ def draw(cr)
26
+ cr.arc_negative(CENTER_X, CENTER_Y, RADIUS, ANGLE1, ANGLE2)
27
+ cr.stroke
28
+
29
+ # draw helping lines
30
+ cr.set_source_rgba(1, 0.2, 0.2, 0.6)
31
+ cr.arc(CENTER_X, CENTER_Y, 0.05, 0, 2 * Math::PI)
32
+ cr.fill
33
+ cr.set_line_width(0.03)
34
+ cr.arc(CENTER_X, CENTER_Y, RADIUS, ANGLE1, ANGLE1)
35
+ cr.line_to(CENTER_X, CENTER_Y)
36
+ cr.arc(CENTER_X, CENTER_Y, RADIUS, ANGLE2, ANGLE2)
37
+ cr.line_to(CENTER_X, CENTER_Y)
38
+ cr.stroke
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,41 @@
1
+ # Copyright (c) 2005 Ruby-GNOME2 Project Team
2
+ # This program is licenced under the same licence as Ruby-GNOME2.
3
+ #
4
+ # $Id: cairo-arc.rb,v 1.1 2005/10/12 05:38:30 ktou Exp $
5
+ =begin
6
+ = cairo/Arc
7
+
8
+ This demo shows how to use GDK and cairo to draw arc.
9
+ From http://cairographics.org/samples/arc.html.
10
+ =end
11
+ require 'common'
12
+
13
+ module Demo
14
+ class CairoArc < CairoWindow
15
+ CENTER_X = 0.5
16
+ CENTER_Y = 0.5
17
+ RADIUS = 0.4
18
+ ANGLE1 = 45.0 * (Math::PI / 180.0) # angles are specified
19
+ ANGLE2 = 180.0 * (Math::PI / 180.0) # in radians
20
+
21
+ def initialize
22
+ super('cairo arc')
23
+ end
24
+
25
+ def draw(cr)
26
+ cr.arc(CENTER_X, CENTER_Y, RADIUS, ANGLE1, ANGLE2)
27
+ cr.stroke
28
+
29
+ # draw helping lines
30
+ cr.set_source_rgba(1, 0.2, 0.2, 0.6)
31
+ cr.arc(CENTER_X, CENTER_Y, 0.05, 0, 2 * Math::PI)
32
+ cr.fill
33
+ cr.set_line_width(0.03)
34
+ cr.arc(CENTER_X, CENTER_Y, RADIUS, ANGLE1, ANGLE1)
35
+ cr.line_to(CENTER_X, CENTER_Y)
36
+ cr.arc(CENTER_X, CENTER_Y, RADIUS, ANGLE2, ANGLE2)
37
+ cr.line_to(CENTER_X, CENTER_Y)
38
+ cr.stroke
39
+ end
40
+ end
41
+ end