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
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 71fd94e67d7dfa13fd56548df98b986fba3698bd
4
+ data.tar.gz: f13c15eeafba80b8588ace89c8399753199f715f
5
+ SHA512:
6
+ metadata.gz: 5f2726c70c22b9a2c0a3474829549779af281ce664bc0fd1256aeb8be5facd3958705b5c680ffb471475cf7e8f1ff576f7c9ed8a11506509d7a1d0a41217c7b2
7
+ data.tar.gz: 87d8b3b2cc4f233ada4788fc3c6c03a62e1145652b5ab0c563d1da26f9706cc6ff30bc5e1f72aed2403e818dea2185d59a88b8cbe38b9ba06c85958f242dfa4c
data/Rakefile ADDED
@@ -0,0 +1,20 @@
1
+ # -*- ruby -*-
2
+
3
+ $LOAD_PATH.unshift("./../glib2/lib")
4
+ require 'gnome2/rake/package-task'
5
+
6
+ package_task = GNOME2::Rake::PackageTask.new do |package|
7
+ package.summary = "Ruby/GTK3 is a Ruby binding of GTK+-3.x."
8
+ package.description = "Ruby/GTK3 is a Ruby binding of GTK+-3.x."
9
+ package.dependency.gem.runtime = [
10
+ "glib2",
11
+ "gio2",
12
+ "atk",
13
+ "pango",
14
+ "gdk_pixbuf2",
15
+ "gdk3",
16
+ ]
17
+ package.windows.packages = []
18
+ package.windows.dependencies = []
19
+ end
20
+ package_task.define
@@ -0,0 +1,34 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2012 Ruby-GNOME2 Project Team
4
+ *
5
+ * This library is free software; you can redistribute it and/or
6
+ * modify it under the terms of the GNU Lesser General Public
7
+ * License as published by the Free Software Foundation; either
8
+ * version 2.1 of the License, or (at your option) any later version.
9
+ *
10
+ * This library is distributed in the hope that it will be useful,
11
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
+ * Lesser General Public License for more details.
14
+ *
15
+ * You should have received a copy of the GNU Lesser General Public
16
+ * License along with this library; if not, write to the Free Software
17
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
18
+ * MA 02110-1301 USA
19
+ */
20
+
21
+ #include "rbgtk3private.h"
22
+
23
+ static VALUE
24
+ cairo_context_gvalue2rvalue(const GValue *value)
25
+ {
26
+ return CRCONTEXT2RVAL(g_value_get_boxed(value));
27
+ }
28
+
29
+ void
30
+ Init_conversions(void)
31
+ {
32
+ rbgobj_register_g2r_func(CAIRO_GOBJECT_TYPE_CONTEXT, cairo_context_gvalue2rvalue);
33
+ }
34
+
data/ext/gtk3/depend ADDED
@@ -0,0 +1,11 @@
1
+ install-so: install-headers
2
+ install-headers:
3
+ $(INSTALL_DATA) $(srcdir)/rbgtk3.h $(RUBYARCHDIR)
4
+ $(INSTALL_DATA) $(srcdir)/rbgtk3conversions.h $(RUBYARCHDIR)
5
+
6
+ install: install-pc
7
+ install-pc:
8
+ if test -n "$(pkgconfigdir)"; then \
9
+ $(MAKEDIRS) $(pkgconfigdir); \
10
+ $(INSTALL_DATA) ruby-gtk3.pc $(pkgconfigdir); \
11
+ fi
@@ -0,0 +1,99 @@
1
+ =begin
2
+ extconf.rb for Ruby/GTK extention library
3
+ =end
4
+
5
+ require 'pathname'
6
+
7
+ source_dir = Pathname(__FILE__).dirname
8
+ base_dir = source_dir.parent.parent.expand_path
9
+ top_dir = base_dir.parent.expand_path
10
+ top_build_dir = Pathname(".").parent.parent.parent.expand_path
11
+
12
+ mkmf_gnome2_dir = top_dir + "glib2" + 'lib'
13
+ version_suffix = ""
14
+ unless mkmf_gnome2_dir.exist?
15
+ if /(-\d+\.\d+\.\d+)(?:\.\d+)?\z/ =~ base_dir.basename.to_s
16
+ version_suffix = $1
17
+ mkmf_gnome2_dir = top_dir + "glib2#{version_suffix}" + 'lib'
18
+ end
19
+ end
20
+
21
+ $LOAD_PATH.unshift(mkmf_gnome2_dir.to_s)
22
+
23
+ module_name = "gtk3"
24
+ package_id = "gtk+-3.0"
25
+
26
+ begin
27
+ require 'mkmf-gnome2'
28
+ rescue LoadError
29
+ require 'rubygems'
30
+ gem 'glib2'
31
+ require 'mkmf-gnome2'
32
+ end
33
+
34
+ have_func("rb_errinfo")
35
+
36
+ ["glib2", "cairo-gobject", "atk", "pango", "gdk_pixbuf2", "gdk3"].each do |package|
37
+ depended_module_name = package.gsub(/-/, "_")
38
+ directory = "#{package}#{version_suffix}"
39
+ build_dir = "#{directory}/tmp/#{RUBY_PLATFORM}/#{depended_module_name}/#{RUBY_VERSION}"
40
+ add_depend_package(package, "#{directory}/ext/#{package}",
41
+ top_dir.to_s,
42
+ :top_build_dir => top_build_dir.to_s,
43
+ :target_build_dir => build_dir)
44
+ end
45
+
46
+ unless check_cairo(:top_dir => top_dir)
47
+ exit(false)
48
+ end
49
+
50
+ setup_windows(module_name, base_dir)
51
+
52
+ unless required_pkg_config_package(package_id,
53
+ :debian => "libgtk-3-dev",
54
+ :fedora => "gtk3-devel",
55
+ :homebrew => "gtk+3",
56
+ :macports => "gtk3")
57
+ exit(false)
58
+ end
59
+
60
+ have_header("st.h")
61
+ have_header("ruby/st.h")
62
+
63
+ STDOUT.print("checking for targets... ")
64
+ STDOUT.flush
65
+ targets = PKGConfig.variable(package_id, "targets").split(/\s+/)
66
+ STDOUT.print(targets.join(" "), "\n")
67
+
68
+ gtk_header = "gtk/gtk.h"
69
+ have_func('gtk_plug_get_type', gtk_header)
70
+ have_func('gtk_socket_get_type', gtk_header)
71
+ have_func('pango_render_part_get_type', gtk_header)
72
+ have_header('gtk/gtkfilesystem.h') do |src|
73
+ "#define GTK_FILE_SYSTEM_ENABLE_UNSUPPORTED\n#{src}"
74
+ end
75
+
76
+ xlib_header = "X11/Xlib.h"
77
+ if targets.include?("x11") and have_header('X11/Xlib.h') and have_library("X11")
78
+ have_func("XReadBitmapFileData", xlib_header)
79
+ have_func("XGetErrorText", xlib_header)
80
+ end
81
+
82
+ if !targets.include?("win32") and PKGConfig.have_package('gtk+-unix-print-3.0')
83
+ $defs.push("-DHAVE_GTK_UNIX_PRINT")
84
+ end
85
+
86
+ create_pkg_config_file("Ruby/GTK3", package_id, ruby_gnome2_version)
87
+
88
+ ensure_objs
89
+
90
+ $defs << "-DRUBY_GTK3_COMPILATION"
91
+ create_makefile(module_name)
92
+
93
+ pkg_config_dir = with_config("pkg-config-dir")
94
+ if pkg_config_dir.is_a?(String)
95
+ File.open("Makefile", "ab") do |makefile|
96
+ makefile.puts
97
+ makefile.puts("pkgconfigdir=#{pkg_config_dir}")
98
+ end
99
+ end
data/ext/gtk3/gtk3.def ADDED
@@ -0,0 +1,10 @@
1
+ EXPORTS
2
+ Init_gtk3
3
+ rbgtk_initialize_gtkobject
4
+ gtk_accel_group_entry_get_type
5
+ gtk_accel_key_get_type
6
+ gtk_allocation_get_type
7
+ gtk_bindingset_get_type
8
+ gtk_recent_data_get_type
9
+ gtk_recent_filter_info_get_type
10
+ gtk_text_appearance_get_type
data/ext/gtk3/init.c ADDED
@@ -0,0 +1,34 @@
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-2001 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
+ extern void Init_gtk3(void);
28
+
29
+ void
30
+ Init_gtk3(void)
31
+ {
32
+ Init_gtk();
33
+ Init_conversions();
34
+ }
@@ -0,0 +1,113 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2005 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 cAboutDialog
25
+ #define _SELF(self) (RVAL2GTKABOUTDIALOG(self))
26
+
27
+ static VALUE
28
+ rg_initialize(VALUE self)
29
+ {
30
+ RBGTK_INITIALIZE(self, gtk_about_dialog_new());
31
+ return Qnil;
32
+ }
33
+
34
+ typedef struct {
35
+ const char *name;
36
+ gpointer value;
37
+ } prop_data;
38
+
39
+ #define ABOUT_PROP_NUM (15)
40
+
41
+ static VALUE
42
+ rg_s_show(VALUE self, VALUE parent, VALUE props)
43
+ {
44
+ int i;
45
+ VALUE ary;
46
+ prop_data pd[ABOUT_PROP_NUM];
47
+
48
+ Check_Type(props, T_HASH);
49
+
50
+ ary = rb_funcall(props, rb_intern("to_a"), 0);
51
+
52
+ if (RARRAY_LEN(ary) > ABOUT_PROP_NUM)
53
+ rb_raise(rb_eArgError, "Too many args.");
54
+
55
+ for (i = 0; i < ABOUT_PROP_NUM; i++){
56
+ pd[i].name = (const char*)NULL;
57
+ pd[i].value = (gpointer)NULL;
58
+ }
59
+ for (i = 0; i < RARRAY_LEN(ary); i++){
60
+ if (TYPE(RARRAY_PTR(RARRAY_PTR(ary)[i])[0]) == T_SYMBOL){
61
+ pd[i].name = rb_id2name(SYM2ID(RARRAY_PTR(RARRAY_PTR(ary)[i])[0]));
62
+ } else {
63
+ pd[i].name = RVAL2CSTR(RARRAY_PTR(RARRAY_PTR(ary)[i])[0]);
64
+ }
65
+ if (strncmp(pd[i].name, "artists", strlen("artists")) == 0||
66
+ strncmp(pd[i].name, "authors", strlen("authors")) == 0||
67
+ strncmp(pd[i].name, "documenters", strlen("documenters")) == 0){
68
+ GValue gval = G_VALUE_INIT;
69
+ g_value_init(&gval, G_TYPE_STRV);
70
+ rbgobj_rvalue_to_gvalue(RARRAY_PTR(RARRAY_PTR(ary)[i])[1], &gval);
71
+
72
+ pd[i].value = g_boxed_copy(G_TYPE_STRV, g_value_get_boxed(&gval));
73
+ } else if (strncmp(pd[i].name, "logo", strlen("logo")) == 0 &&
74
+ strlen(pd[i].name) == strlen("logo")){
75
+ pd[i].value = g_object_ref(RVAL2GOBJ(RARRAY_PTR(RARRAY_PTR(ary)[i])[1]));
76
+ } else if (strncmp(pd[i].name, "wrap_license", strlen("wrap_license")) == 0){
77
+ pd[i].value = GINT_TO_POINTER(RVAL2CBOOL(RARRAY_PTR(RARRAY_PTR(ary)[i])[1]));
78
+ } else if (strncmp(pd[i].name, "license_type", strlen("license_type")) == 0){
79
+ pd[i].value = GINT_TO_POINTER(RVAL2GTKLICENSE(RARRAY_PTR(RARRAY_PTR(ary)[i])[1]));
80
+ } else {
81
+ pd[i].value = g_strdup(RVAL2CSTR(RARRAY_PTR(RARRAY_PTR(ary)[i])[1]));
82
+ }
83
+ }
84
+
85
+ gtk_show_about_dialog(RVAL2GTKWINDOW(parent),
86
+ pd[0].name, pd[0].value,
87
+ pd[1].name, pd[1].value,
88
+ pd[2].name, pd[2].value,
89
+ pd[3].name, pd[3].value,
90
+ pd[4].name, pd[4].value,
91
+ pd[5].name, pd[5].value,
92
+ pd[6].name, pd[6].value,
93
+ pd[7].name, pd[7].value,
94
+ pd[8].name, pd[8].value,
95
+ pd[9].name, pd[9].value,
96
+ pd[10].name, pd[10].value,
97
+ pd[11].name, pd[11].value,
98
+ pd[12].name, pd[12].value,
99
+ pd[13].name, pd[13].value,
100
+ pd[14].name, pd[14].value,
101
+ NULL);
102
+ return self;
103
+ }
104
+
105
+ void
106
+ Init_gtk_aboutdialog(VALUE mGtk)
107
+ {
108
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_ABOUT_DIALOG, "AboutDialog", mGtk);
109
+ G_DEF_CLASS(GTK_TYPE_LICENSE, "License", RG_TARGET_NAMESPACE);
110
+
111
+ RG_DEF_METHOD(initialize, 0);
112
+ RG_DEF_SMETHOD(show, 2);
113
+ }
@@ -0,0 +1,94 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011-2013 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002,2003 OGASAWARA, Takeshi
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 cAccelGroupEntry
25
+ #define _SELF(s) (RVAL2GTKACCELGROUPENTRY(s))
26
+
27
+ static GtkAccelGroupEntry *
28
+ agentry_copy(const GtkAccelGroupEntry *agentry)
29
+ {
30
+ GtkAccelGroupEntry *new_agentry;
31
+ g_return_val_if_fail (agentry != NULL, NULL);
32
+ new_agentry = g_new(GtkAccelGroupEntry, 1);
33
+ *new_agentry = *agentry;
34
+ return new_agentry;
35
+ }
36
+
37
+ GType
38
+ gtk_accel_group_entry_get_type(void)
39
+ {
40
+ static GType our_type = 0;
41
+ if(our_type == 0)
42
+ our_type = g_boxed_type_register_static("GtkAccelGroupEntry",
43
+ (GBoxedCopyFunc)agentry_copy,
44
+ (GBoxedFreeFunc)g_free);
45
+ return our_type;
46
+ }
47
+
48
+ /*
49
+ struct _GtkAccelGroupEntry
50
+ {
51
+ GtkAccelKey key;
52
+ GClosure *closure;
53
+ GQuark accel_path_quark;
54
+ };
55
+ */
56
+ static VALUE
57
+ rg_initialize(VALUE self)
58
+ {
59
+ GtkAccelGroupEntry key;
60
+ memset(&key, 0, sizeof(GtkAccelGroupEntry));
61
+ G_INITIALIZE(self, g_boxed_copy(GTK_TYPE_ACCEL_GROUP_ENTRY, &key));
62
+ return Qnil;
63
+ }
64
+
65
+ static VALUE
66
+ rg_accel_key(VALUE self)
67
+ {
68
+ return GTKACCELKEY2RVAL(&_SELF(self)->key);
69
+ }
70
+
71
+ static VALUE
72
+ rg_closure(VALUE self)
73
+ {
74
+ return GCLOSURE2RVAL(_SELF(self)->closure);
75
+ }
76
+
77
+ static VALUE
78
+ rg_accel_path(VALUE self)
79
+ {
80
+ const gchar *quark_str = g_quark_to_string(_SELF(self)->accel_path_quark);
81
+ return quark_str ? CSTR2RVAL(quark_str) : Qnil;
82
+ }
83
+
84
+ void
85
+ Init_gtk_accel_group_entry(VALUE mGtk)
86
+ {
87
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_ACCEL_GROUP_ENTRY, "AccelGroupEntry", mGtk);
88
+
89
+ RG_DEF_METHOD(initialize, 0);
90
+
91
+ RG_DEF_METHOD(accel_key, 0);
92
+ RG_DEF_METHOD(closure, 0);
93
+ RG_DEF_METHOD(accel_path, 0);
94
+ }
@@ -0,0 +1,199 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002,2003 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 cAccelGroup
28
+ #define _SELF(w) RVAL2GTKACCELGROUP(w)
29
+ #define RVAL2MOD(mods) (NIL_P(mods) ? 0 : RVAL2GDKMODIFIERTYPE(mods))
30
+
31
+ static VALUE
32
+ rg_initialize(VALUE self)
33
+ {
34
+ G_INITIALIZE(self, gtk_accel_group_new());
35
+ return Qnil;
36
+ }
37
+
38
+ static VALUE
39
+ rg_connect(int argc, VALUE *argv, VALUE self)
40
+ {
41
+ VALUE key, mods, flags, path, closure;
42
+ GClosure *rclosure;
43
+
44
+ if (argc > 2){
45
+ rb_scan_args(argc, argv, "31", &key, &mods, &flags, &closure);
46
+ if (NIL_P(closure)){
47
+ rclosure = g_rclosure_new(rb_block_proc(), Qnil, NULL);
48
+ } else {
49
+ rclosure = RVAL2GCLOSURE(closure);
50
+ }
51
+ g_rclosure_attach(rclosure, self);
52
+ gtk_accel_group_connect(_SELF(self), NUM2UINT(key),
53
+ RVAL2MOD(mods),
54
+ RVAL2GTKACCELFLAGS(flags),
55
+ rclosure);
56
+ } else {
57
+ rb_scan_args(argc, argv, "11", &path, &closure);
58
+ if (NIL_P(closure)){
59
+ rclosure = g_rclosure_new(rb_block_proc(), Qnil, NULL);
60
+ } else {
61
+ rclosure = RVAL2GCLOSURE(closure);
62
+ }
63
+ g_rclosure_attach(rclosure, self);
64
+ gtk_accel_group_connect_by_path(_SELF(self), RVAL2CSTR(path), rclosure);
65
+ }
66
+ return self;
67
+ }
68
+
69
+ static VALUE
70
+ rg_disconnect_key(VALUE self, VALUE key, VALUE mods)
71
+ {
72
+ return CBOOL2RVAL(gtk_accel_group_disconnect_key(_SELF(self), NUM2UINT(key),
73
+ RVAL2MOD(mods)));
74
+ }
75
+
76
+ static VALUE
77
+ rg_query(VALUE self, VALUE key, VALUE mods)
78
+ {
79
+ GtkAccelGroupEntry *entries;
80
+ guint n_entries;
81
+ guint cnt;
82
+ VALUE result;
83
+
84
+ entries = gtk_accel_group_query(_SELF(self), NUM2UINT(key),
85
+ RVAL2MOD(mods), &n_entries);
86
+ if(n_entries == 0){
87
+ return Qnil;
88
+ }
89
+ else{
90
+ result = rb_ary_new2(n_entries);
91
+ for(cnt=0; cnt<n_entries; cnt++, entries++)
92
+ rb_ary_push(result, GTKACCELGROUPENTRY2RVAL(entries));
93
+ return result;
94
+ }
95
+ }
96
+
97
+ static VALUE
98
+ rg_disconnect(VALUE self, VALUE closure)
99
+ {
100
+ return CBOOL2RVAL(gtk_accel_group_disconnect(_SELF(self),
101
+ RVAL2GCLOSURE(closure)));
102
+ }
103
+
104
+ static VALUE
105
+ rg_s_from_accel_closure(G_GNUC_UNUSED VALUE self, VALUE closure)
106
+ {
107
+ return GOBJ2RVAL(gtk_accel_group_from_accel_closure(
108
+ RVAL2GCLOSURE(closure)));
109
+ }
110
+
111
+ static gboolean
112
+ gaccelgrp_find_func(GtkAccelKey *key, GClosure *closure, gpointer func)
113
+ {
114
+ return RVAL2CBOOL(rb_funcall((VALUE)func, id_call, 2,
115
+ GTKACCELKEY2RVAL(key),
116
+ GCLOSURE2RVAL(closure)));
117
+ }
118
+
119
+ static VALUE
120
+ rg_find(VALUE self)
121
+ {
122
+ GtkAccelKey *result;
123
+ volatile VALUE func = rb_block_proc();
124
+
125
+ result = gtk_accel_group_find(_SELF(self),
126
+ (GtkAccelGroupFindFunc)gaccelgrp_find_func,
127
+ (gpointer)func);
128
+ return GTKACCELKEY2RVAL(result);
129
+ }
130
+
131
+ static VALUE
132
+ rg_activate(VALUE self, VALUE accel_quark, VALUE acceleratable, VALUE accel_key, VALUE accel_mods)
133
+ {
134
+ GQuark quark = 0;
135
+ if (TYPE(accel_quark) == T_STRING){
136
+ quark = g_quark_from_string(RVAL2CSTR(accel_quark));
137
+ } else {
138
+ quark = NUM2UINT(quark);
139
+ }
140
+ return CBOOL2RVAL(gtk_accel_group_activate(_SELF(self), quark, RVAL2GOBJ(acceleratable),
141
+ NUM2UINT(accel_key), RVAL2MOD(accel_mods)));
142
+ }
143
+
144
+ static VALUE
145
+ _gaccelgrp_lock_ensure(VALUE self)
146
+ {
147
+ gtk_accel_group_unlock(_SELF(self));
148
+ return Qnil;
149
+ }
150
+
151
+ static VALUE
152
+ rg_lock(VALUE self)
153
+ {
154
+ gtk_accel_group_lock(_SELF(self));
155
+ if (rb_block_given_p()){
156
+ rb_ensure(rb_yield, self, _gaccelgrp_lock_ensure , self);
157
+ }
158
+ return self;
159
+ }
160
+
161
+ static VALUE
162
+ rg_unlock(VALUE self)
163
+ {
164
+ gtk_accel_group_unlock(_SELF(self));
165
+ return self;
166
+ }
167
+
168
+ static VALUE
169
+ rg_s_activate(G_GNUC_UNUSED VALUE self, VALUE obj, VALUE key, VALUE modtype)
170
+ {
171
+ return CBOOL2RVAL(gtk_accel_groups_activate(RVAL2GOBJ(obj),
172
+ NUM2UINT(key),
173
+ RVAL2MOD(modtype)));
174
+ }
175
+
176
+ static VALUE
177
+ rg_s_from_object(G_GNUC_UNUSED VALUE self, VALUE object)
178
+ {
179
+ return GOBJGSLIST2RVAL(gtk_accel_groups_from_object(RVAL2GOBJ(object)));
180
+ }
181
+
182
+ void
183
+ Init_gtk_accel_group(VALUE mGtk)
184
+ {
185
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_ACCEL_GROUP, "AccelGroup", mGtk);
186
+
187
+ RG_DEF_SMETHOD(activate, 3);
188
+ RG_DEF_SMETHOD(from_object, 1);
189
+ RG_DEF_SMETHOD(from_accel_closure, 1);
190
+ RG_DEF_METHOD(initialize, 0);
191
+ RG_DEF_METHOD(activate, 4);
192
+ RG_DEF_METHOD(lock, 0);
193
+ RG_DEF_METHOD(unlock, 0);
194
+ RG_DEF_METHOD(connect, -1);
195
+ RG_DEF_METHOD(disconnect, 1);
196
+ RG_DEF_METHOD(disconnect_key, 2);
197
+ RG_DEF_METHOD(query, 2);
198
+ RG_DEF_METHOD(find, 0);
199
+ }