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,90 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2006 Ruby-GNOME2 Project Team
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
+ * MA 02110-1301 USA
20
+ */
21
+
22
+ #include "rbgtk3private.h"
23
+
24
+ #ifdef HAVE_GTK_UNIX_PRINT
25
+ #include <gtk/gtkunixprint.h>
26
+
27
+ #define RG_TARGET_NAMESPACE cPrintUnixDialog
28
+ #define _SELF(s) (RVAL2GTKPRINTUNIXDIALOG(s))
29
+ #ifndef GTK_TYPE_PRINT_CAPABILITIES
30
+ # define GTK_TYPE_PRINT_CAPABILITIES (gtk_print_capabilities_get_type())
31
+ #endif
32
+
33
+ static VALUE
34
+ rg_initialize(int argc, VALUE *argv, VALUE self)
35
+ {
36
+ VALUE options, rb_title, rb_parent;
37
+ const gchar *title;
38
+ GtkWindow *parent;
39
+ GtkWidget *dialog;
40
+
41
+ rb_scan_args(argc, argv, "01", &options);
42
+ rbg_scan_options(options,
43
+ "title", &rb_title,
44
+ "parent", &rb_parent,
45
+ NULL);
46
+ title = RVAL2CSTR_ACCEPT_NIL(rb_title);
47
+ parent = NIL_P(rb_parent) ? NULL : RVAL2GTKWINDOW(rb_parent);
48
+
49
+ dialog = gtk_print_unix_dialog_new(title, parent);
50
+ RBGTK_INITIALIZE(self, dialog);
51
+
52
+ return Qnil;
53
+ }
54
+
55
+ static VALUE
56
+ rg_add_custom_tab(VALUE self, VALUE child, VALUE tab_label)
57
+ {
58
+ gtk_print_unix_dialog_add_custom_tab(_SELF(self),
59
+ RVAL2GTKWIDGET(child),
60
+ RVAL2GTKWIDGET(tab_label));
61
+ return self;
62
+ }
63
+
64
+ static VALUE
65
+ rg_set_manual_capability(VALUE self, VALUE rb_capabilities)
66
+ {
67
+ GtkPrintCapabilities capabilities;
68
+
69
+ capabilities = RVAL2GTKPRINTCAPABILITIES(rb_capabilities);
70
+ gtk_print_unix_dialog_set_manual_capabilities(_SELF(self), capabilities);
71
+ return self;
72
+ }
73
+ #endif
74
+
75
+ void
76
+ Init_gtk_print_unix_dialog(VALUE mGtk)
77
+ {
78
+ #ifdef HAVE_GTK_UNIX_PRINT
79
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_PRINT_UNIX_DIALOG,
80
+ "PrintUnixDialog", mGtk);
81
+
82
+ RG_DEF_METHOD(initialize, -1);
83
+ RG_DEF_METHOD(add_custom_tab, 2);
84
+ RG_DEF_METHOD(set_manual_capability, 1);
85
+ RG_DEF_ALIAS("settings", "print_settings");
86
+ RG_DEF_ALIAS("set_settings", "set_print_settings");
87
+
88
+ G_DEF_CLASS(GTK_TYPE_PRINT_CAPABILITIES, "Capabilities", RG_TARGET_NAMESPACE);
89
+ #endif
90
+ }
@@ -0,0 +1,155 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2006 Ruby-GNOME2 Project Team
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
+ * MA 02110-1301 USA
20
+ */
21
+
22
+ #include "rbgtk3private.h"
23
+
24
+ #ifdef HAVE_GTK_UNIX_PRINT
25
+ #include <gtk/gtkunixprint.h>
26
+
27
+ #ifndef GTK_TYPE_PRINT_BACKEND
28
+ #define GTK_TYPE_PRINT_BACKEND (gtk_print_backend_get_type ())
29
+ #define GTK_PRINT_BACKEND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PRINT_BACKEND, GtkPrintBackend))
30
+ GType gtk_print_backend_get_type (void) G_GNUC_CONST;
31
+ #endif
32
+
33
+ #define RG_TARGET_NAMESPACE cPrinter
34
+ #define _SELF(s) (RVAL2GTKPRINTER(s))
35
+
36
+ static VALUE rb_mGtk;
37
+
38
+ static VALUE
39
+ rg_initialize(VALUE self, VALUE name, VALUE backend, VALUE rb_virtual)
40
+ {
41
+ GtkPrinter *printer;
42
+
43
+ printer = gtk_printer_new(RVAL2CSTR(name),
44
+ RVAL2GTKPRINTBACKEND(backend),
45
+ RVAL2CBOOL(rb_virtual));
46
+
47
+ G_INITIALIZE(self, printer);
48
+ return Qnil;
49
+ }
50
+
51
+ static VALUE
52
+ rg_description(VALUE self)
53
+ {
54
+ return CSTR2RVAL(gtk_printer_get_description(_SELF(self)));
55
+ }
56
+
57
+ static VALUE
58
+ rg_active_p(VALUE self)
59
+ {
60
+ return CBOOL2RVAL(gtk_printer_is_default(_SELF(self)));
61
+ }
62
+
63
+ static VALUE
64
+ rg_default_p(VALUE self)
65
+ {
66
+ return CBOOL2RVAL(gtk_printer_is_default(_SELF(self)));
67
+ }
68
+
69
+ static VALUE
70
+ rg_operator_p_compare(VALUE self, VALUE other)
71
+ {
72
+ if (rb_obj_is_kind_of(other, GTYPE2CLASS(GTK_TYPE_PRINTER))){
73
+ return INT2NUM(gtk_printer_compare(_SELF(self), _SELF(other)));
74
+ } else {
75
+ rb_raise(rb_eTypeError, "%s isn't a kind of Gtk::Printer", rb_class2name(other));
76
+ }
77
+ }
78
+
79
+ struct callback_arg
80
+ {
81
+ VALUE callback;
82
+ int argc;
83
+ VALUE *argv;
84
+ };
85
+
86
+ static VALUE
87
+ invoke_callback(VALUE data)
88
+ {
89
+ struct callback_arg *arg = (struct callback_arg *)data;
90
+
91
+ return rb_funcall2(arg->callback, id_call, arg->argc, arg->argv);
92
+ }
93
+
94
+ static gboolean
95
+ each_printer(GtkPrinter *printer, gpointer data)
96
+ {
97
+ VALUE result;
98
+ VALUE argv[1];
99
+ struct callback_arg arg;
100
+
101
+ argv[0] = GOBJ2RVAL(printer);
102
+
103
+ arg.callback = (VALUE)data;
104
+ arg.argc = 1;
105
+ arg.argv = argv;
106
+
107
+ result = G_PROTECT_CALLBACK(invoke_callback, &arg);
108
+ return NIL_P(rb_errinfo()) ? TRUE : RVAL2CBOOL(result);
109
+ }
110
+
111
+ static void
112
+ remove_callback_reference(gpointer data)
113
+ {
114
+ VALUE callback = (VALUE)data;
115
+ G_CHILD_REMOVE(rb_mGtk, callback);
116
+ }
117
+
118
+ static VALUE
119
+ rg_s_each(int argc, VALUE *argv, VALUE self)
120
+ {
121
+ VALUE wait, block;
122
+ rb_scan_args(argc, argv, "01", &wait);
123
+
124
+ block = rb_block_proc();
125
+ G_CHILD_ADD(rb_mGtk, block);
126
+ gtk_enumerate_printers(each_printer, (gpointer)block,
127
+ remove_callback_reference, RVAL2CBOOL(wait));
128
+
129
+ return self;
130
+ }
131
+ #endif
132
+
133
+ void
134
+ Init_gtk_printer(VALUE mGtk)
135
+ {
136
+ #ifdef HAVE_GTK_UNIX_PRINT
137
+ rb_mGtk = mGtk;
138
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_PRINTER, "Printer", mGtk);
139
+ rb_include_module(RG_TARGET_NAMESPACE, rb_mComparable);
140
+
141
+ G_DEF_CLASS(GTK_TYPE_PRINT_BACKEND, "PrintBackend", mGtk);
142
+
143
+ RG_DEF_SMETHOD(each, -1);
144
+
145
+ RG_DEF_METHOD(initialize, 3);
146
+ RG_DEF_METHOD(description, 0);
147
+ RG_DEF_METHOD_P(active, 0);
148
+ RG_DEF_METHOD_P(default, 0);
149
+ RG_DEF_METHOD_OPERATOR("<=>", p_compare, 1);
150
+
151
+ G_DEF_CLASS3("GtkPrintBackendCups", "PrintBackendCups", mGtk);
152
+ G_DEF_CLASS3("GtkPrintBackendFile", "PrintBackendFile", mGtk);
153
+ G_DEF_CLASS3("GtkPrintBackendLpr", "PrintBackendLpr", mGtk);
154
+ #endif
155
+ }
@@ -0,0 +1,72 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002-2005 Ruby-GNOME2 Project Team
5
+ * Copyright (C) 1998-2000 Yukihiro Matsumoto,
6
+ * Daisuke Kanda,
7
+ * Hiroshi Igarashi
8
+ *
9
+ * This library is free software; you can redistribute it and/or
10
+ * modify it under the terms of the GNU Lesser General Public
11
+ * License as published by the Free Software Foundation; either
12
+ * version 2.1 of the License, or (at your option) any later version.
13
+ *
14
+ * This library is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ * Lesser General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Lesser General Public
20
+ * License along with this library; if not, write to the Free Software
21
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22
+ * MA 02110-1301 USA
23
+ */
24
+
25
+ #include "rbgtk3private.h"
26
+
27
+ #define RG_TARGET_NAMESPACE cProgressBar
28
+
29
+ static VALUE
30
+ rg_initialize(VALUE self)
31
+ {
32
+ RBGTK_INITIALIZE(self, gtk_progress_bar_new());
33
+ return Qnil;
34
+ }
35
+
36
+ static VALUE
37
+ rg_pulse(VALUE self)
38
+ {
39
+ gtk_progress_bar_pulse(RVAL2GTKPROGRESSBAR(self));
40
+ return self;
41
+ }
42
+
43
+ void
44
+ Init_gtk_progress_bar(VALUE mGtk)
45
+ {
46
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_PROGRESS_BAR, "ProgressBar", mGtk);
47
+
48
+ /* GtkProgressBarOrientation */
49
+ /* deprecated
50
+ G_DEF_CLASS(GTK_TYPE_PROGRESS_BAR_ORIENTATION, "Orientation", RG_TARGET_NAMESPACE);
51
+ */
52
+
53
+ RG_DEF_METHOD(initialize, 0);
54
+ RG_DEF_METHOD(pulse, 0);
55
+
56
+ /* undef deprecated properties */
57
+ rb_undef_method(RG_TARGET_NAMESPACE, "adjustment");
58
+ rb_undef_method(RG_TARGET_NAMESPACE, "adjustment=");
59
+ rb_undef_method(RG_TARGET_NAMESPACE, "set_adjustment");
60
+ rb_undef_method(RG_TARGET_NAMESPACE, "bar_style");
61
+ rb_undef_method(RG_TARGET_NAMESPACE, "bar_style=");
62
+ rb_undef_method(RG_TARGET_NAMESPACE, "set_bar_style");
63
+ rb_undef_method(RG_TARGET_NAMESPACE, "discrete_blocks");
64
+ rb_undef_method(RG_TARGET_NAMESPACE, "discrete_blocks=");
65
+ rb_undef_method(RG_TARGET_NAMESPACE, "set_discrete_blocks");
66
+ rb_undef_method(RG_TARGET_NAMESPACE, "activity_blocks");
67
+ rb_undef_method(RG_TARGET_NAMESPACE, "activity_blocks=");
68
+ rb_undef_method(RG_TARGET_NAMESPACE, "set_activity_blocks");
69
+ rb_undef_method(RG_TARGET_NAMESPACE, "activity_step");
70
+ rb_undef_method(RG_TARGET_NAMESPACE, "activity_step=");
71
+ rb_undef_method(RG_TARGET_NAMESPACE, "set_activity_step");
72
+ }
@@ -0,0 +1,122 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2004-2006 Masao Mutoh
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
+ * MA 02110-1301 USA
20
+ */
21
+
22
+ #include "rbgtk3private.h"
23
+
24
+ #define RG_TARGET_NAMESPACE cRadioAction
25
+ #define _SELF(self) (RVAL2GTKRADIOACTION(self))
26
+
27
+ static VALUE
28
+ rg_initialize(int argc, VALUE *argv, VALUE self)
29
+ {
30
+ VALUE name, value, options, label, tooltip, stock_id, buffer;
31
+
32
+ rb_scan_args(argc, argv, "21", &name, &value, &options);
33
+ rbg_scan_options(options,
34
+ "label", &label,
35
+ "tooltip", &tooltip,
36
+ "stock_id", &stock_id,
37
+ NULL);
38
+
39
+ G_INITIALIZE(self, gtk_radio_action_new(RVAL2CSTR(name),
40
+ RVAL2CSTR_ACCEPT_NIL(label),
41
+ RVAL2CSTR_ACCEPT_NIL(tooltip),
42
+ RVAL2GLIBID_ACCEPT_NIL(stock_id, buffer),
43
+ NUM2INT(value)));
44
+
45
+ return Qnil;
46
+ }
47
+
48
+ static VALUE
49
+ raction_get_group(VALUE self)
50
+ {
51
+ return GOBJGSLIST2RVAL(gtk_radio_action_get_group(_SELF(self)));
52
+ }
53
+
54
+ struct rbgtk_rval2gtkradioactiongslist_args {
55
+ VALUE ary;
56
+ long n;
57
+ GSList *result;
58
+ };
59
+
60
+ static VALUE
61
+ rbgtk_rval2gtkradioactiongslist_body(VALUE value)
62
+ {
63
+ long i;
64
+ struct rbgtk_rval2gtkradioactiongslist_args *args = (struct rbgtk_rval2gtkradioactiongslist_args *)value;
65
+
66
+ for (i = 0; i < args->n; i++)
67
+ args->result = g_slist_append(args->result, RVAL2GTKRADIOACTION(RARRAY_PTR(args->ary)[i]));
68
+
69
+ return Qnil;
70
+ }
71
+
72
+ static G_GNUC_NORETURN VALUE
73
+ rbgtk_rval2gtkradioactiongslist_rescue(VALUE value)
74
+ {
75
+ g_slist_free(((struct rbgtk_rval2gtkradioactiongslist_args *)value)->result);
76
+
77
+ rb_exc_raise(rb_errinfo());
78
+ }
79
+
80
+ static GSList *
81
+ rbgtk_rval2gtkradioactiongslist(VALUE value)
82
+ {
83
+ struct rbgtk_rval2gtkradioactiongslist_args args;
84
+
85
+ args.ary = rb_ary_to_ary(value);
86
+ args.n = RARRAY_LEN(args.ary);
87
+ args.result = NULL;
88
+
89
+ rb_rescue(rbgtk_rval2gtkradioactiongslist_body, (VALUE)&args,
90
+ rbgtk_rval2gtkradioactiongslist_rescue, (VALUE)&args);
91
+
92
+ return args.result;
93
+ }
94
+
95
+ #define RVAL2GTKRADIOACTIONGSLIST(value) rbgtk_rval2gtkradioactiongslist(value)
96
+
97
+ static VALUE
98
+ raction_set_group(VALUE self, VALUE rbgroup)
99
+ {
100
+ GtkRadioAction *action = _SELF(self);
101
+
102
+ /* TODO: This might leak. Use gtk_radio_action_join_group() in 3.0. */
103
+ if (TYPE(rbgroup) == T_ARRAY)
104
+ gtk_radio_action_set_group(action, RVAL2GTKRADIOACTIONGSLIST(rbgroup));
105
+ else if (NIL_P(rbgroup))
106
+ gtk_radio_action_set_group(action, NULL);
107
+ else
108
+ gtk_radio_action_set_group(action,
109
+ gtk_radio_action_get_group(RVAL2GTKRADIOACTION(rbgroup)));
110
+
111
+ return self;
112
+ }
113
+
114
+ void
115
+ Init_gtk_radio_action(VALUE mGtk)
116
+ {
117
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RADIO_ACTION, "RadioAction", mGtk);
118
+
119
+ RG_DEF_METHOD(initialize, -1);
120
+ G_REPLACE_GET_PROPERTY(RG_TARGET_NAMESPACE, "group", raction_get_group, 0);
121
+ G_REPLACE_SET_PROPERTY(RG_TARGET_NAMESPACE, "group", raction_set_group, 1);
122
+ }
@@ -0,0 +1,89 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002-2006 Ruby-GNOME2 Project Team
5
+ * Copyright (C) 1998-2000 Yukihiro Matsumoto,
6
+ * Daisuke Kanda,
7
+ * Hiroshi Igarashi
8
+ *
9
+ * This library is free software; you can redistribute it and/or
10
+ * modify it under the terms of the GNU Lesser General Public
11
+ * License as published by the Free Software Foundation; either
12
+ * version 2.1 of the License, or (at your option) any later version.
13
+ *
14
+ * This library is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+ * Lesser General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU Lesser General Public
20
+ * License along with this library; if not, write to the Free Software
21
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22
+ * MA 02110-1301 USA
23
+ */
24
+
25
+ #include "rbgtk3private.h"
26
+
27
+ #define RG_TARGET_NAMESPACE cRadioButton
28
+
29
+ static VALUE RG_TARGET_NAMESPACE;
30
+
31
+ #define _GROUP(s) (NIL_P(s) ? NULL : RVAL2GTKRADIOBUTTON(s))
32
+
33
+ static GtkWidget*
34
+ create_button(VALUE group, VALUE label, VALUE use_underline)
35
+ {
36
+ GtkWidget* widget = NULL;
37
+
38
+ if (TYPE(label) == T_STRING){
39
+ if (NIL_P(use_underline) || RVAL2CBOOL(use_underline)){
40
+ widget = gtk_radio_button_new_with_mnemonic_from_widget(_GROUP(group), RVAL2CSTR(label));
41
+ } else {
42
+ widget = gtk_radio_button_new_with_label_from_widget(_GROUP(group), RVAL2CSTR(label));
43
+ }
44
+ } else if (TYPE(label) == T_SYMBOL){
45
+ widget = gtk_radio_button_new_with_label_from_widget(_GROUP(group), rb_id2name(SYM2ID(label)));
46
+ gtk_button_set_use_stock(GTK_BUTTON(widget), TRUE);
47
+ } else if (NIL_P(label)){
48
+ widget = gtk_radio_button_new_from_widget(_GROUP(group));
49
+ } else {
50
+ rb_raise(rb_eArgError, "invalid argument %s (expect Symbol(Gtk::Stock constants) or String)",
51
+ rb_class2name(CLASS_OF(label)));
52
+ }
53
+ return widget;
54
+ }
55
+
56
+ static VALUE
57
+ rg_initialize(int argc, VALUE *argv, VALUE self)
58
+ {
59
+ VALUE group_or_label, label_or_use_underline, use_underline;
60
+ GtkWidget *widget;
61
+
62
+ if (rb_scan_args(argc, argv, "03", &group_or_label, &label_or_use_underline, &use_underline) > 0) {
63
+ if (rb_obj_is_kind_of(group_or_label, RG_TARGET_NAMESPACE)){
64
+ widget = create_button(group_or_label, label_or_use_underline, use_underline);
65
+ } else {
66
+ widget = create_button(Qnil, group_or_label, label_or_use_underline);
67
+ }
68
+ } else {
69
+ widget = gtk_radio_button_new(NULL);
70
+ }
71
+
72
+ RBGTK_INITIALIZE(self, widget);
73
+ return Qnil;
74
+ }
75
+
76
+ static VALUE
77
+ rg_group(VALUE self)
78
+ {
79
+ return GOBJGSLIST2RVAL(gtk_radio_button_get_group(RVAL2GTKRADIOBUTTON(self)));
80
+ }
81
+
82
+ void
83
+ Init_gtk_radio_button(VALUE mGtk)
84
+ {
85
+ RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RADIO_BUTTON, "RadioButton", mGtk);
86
+
87
+ RG_DEF_METHOD(initialize, -1);
88
+ RG_DEF_METHOD(group, 0);
89
+ }