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,201 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011-2013 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 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
+ /*****************************************/
25
+ static GtkRecentFilterInfo*
26
+ rf_copy(const GtkRecentFilterInfo* info)
27
+ {
28
+ GtkRecentFilterInfo* new_info;
29
+ g_return_val_if_fail (info != NULL, NULL);
30
+ new_info = g_new(GtkRecentFilterInfo, 1);
31
+ *new_info = *info;
32
+ return new_info;
33
+ }
34
+
35
+ static void
36
+ rf_free(GtkRecentFilterInfo* boxed)
37
+ {
38
+ if (boxed) {
39
+ g_free(boxed->applications);
40
+ g_free(boxed->groups);
41
+ g_free(boxed);
42
+ }
43
+ }
44
+
45
+ GType
46
+ gtk_recent_filter_info_get_type(void)
47
+ {
48
+ static GType our_type = 0;
49
+ if (our_type == 0)
50
+ our_type = g_boxed_type_register_static ("GtkRecentFilterInfo",
51
+ (GBoxedCopyFunc)rf_copy,
52
+ (GBoxedFreeFunc)rf_free);
53
+ return our_type;
54
+ }
55
+ /*****************************************/
56
+
57
+ #define RG_TARGET_NAMESPACE cRecentFilterInfo
58
+ #define _SELF(w) (RVAL2GTKRECENTFILTERINFO(w))
59
+
60
+ static VALUE
61
+ rg_initialize(VALUE self)
62
+ {
63
+ GtkRecentFilterInfo finfo;
64
+ memset(&finfo, 0, sizeof(GtkRecentFilterInfo));
65
+ G_INITIALIZE(self, g_boxed_copy(GTK_TYPE_RECENT_FILTER_INFO, &finfo));
66
+ return Qnil;
67
+ }
68
+
69
+ static VALUE
70
+ rg_contains(VALUE self)
71
+ {
72
+ return GTKRECENTFILTERFLAGS2RVAL(_SELF(self)->contains);
73
+ }
74
+
75
+ static VALUE
76
+ rg_set_contains(VALUE self, VALUE contains)
77
+ {
78
+ _SELF(self)->contains = RVAL2GTKRECENTFILTERFLAGS(contains);
79
+ return self;
80
+ }
81
+
82
+ static VALUE
83
+ rg_uri(VALUE self)
84
+ {
85
+ return CSTR2RVAL(_SELF(self)->uri);
86
+ }
87
+
88
+ static VALUE
89
+ rg_set_uri(VALUE self, VALUE val)
90
+ {
91
+ _SELF(self)->uri = RVAL2CSTR(val);
92
+ return self;
93
+ }
94
+
95
+ static VALUE
96
+ rg_display_name(VALUE self)
97
+ {
98
+ return CSTR2RVAL(_SELF(self)->display_name);
99
+ }
100
+
101
+ static VALUE
102
+ rg_set_display_name(VALUE self, VALUE val)
103
+ {
104
+ _SELF(self)->display_name = RVAL2CSTR(val);
105
+ return self;
106
+ }
107
+
108
+ static VALUE
109
+ rg_mime_type(VALUE self)
110
+ {
111
+ return CSTR2RVAL(_SELF(self)->mime_type);
112
+ }
113
+
114
+ static VALUE
115
+ rg_set_mime_type(VALUE self, VALUE val)
116
+ {
117
+ _SELF(self)->mime_type = RVAL2CSTR(val);
118
+ return self;
119
+ }
120
+
121
+ static VALUE
122
+ rg_applications(VALUE self)
123
+ {
124
+ const gchar** apps = _SELF(self)->applications;
125
+ VALUE ary = rb_ary_new();
126
+
127
+ gint i = 0;
128
+ while (apps[i]) {
129
+ rb_ary_push(ary, CSTR2RVAL((gchar*)apps[i]));
130
+ i++;
131
+ }
132
+ return ary;
133
+ }
134
+
135
+ static VALUE
136
+ rg_set_applications(VALUE self, VALUE applications)
137
+ {
138
+ /* NOTE: This can't be right. What guarantees that the entries in
139
+ * applications will be around? It should be RVAL2STRV_DUP and use
140
+ * g_strfreev in free above. */
141
+ _SELF(self)->applications = RVAL2STRV(applications);
142
+
143
+ return self;
144
+ }
145
+
146
+ static VALUE
147
+ rg_groups(VALUE self)
148
+ {
149
+ const gchar** grps = _SELF(self)->groups;
150
+ VALUE ary = rb_ary_new();
151
+
152
+ gint i = 0;
153
+ while (grps[i]) {
154
+ rb_ary_push(ary, CSTR2RVAL((gchar*)grps[i]));
155
+ i++;
156
+ }
157
+ return ary;
158
+ }
159
+
160
+ static VALUE
161
+ rg_set_groups(VALUE self, VALUE groups)
162
+ {
163
+ _SELF(self)->groups = RVAL2STRV(groups);
164
+
165
+ return self;
166
+ }
167
+
168
+ static VALUE
169
+ rg_age(VALUE self)
170
+ {
171
+ return INT2NUM(_SELF(self)->age);
172
+ }
173
+
174
+ static VALUE
175
+ rg_set_age(VALUE self, VALUE age)
176
+ {
177
+ _SELF(self)->age = NUM2INT(age);
178
+ return self;
179
+ }
180
+
181
+ void
182
+ Init_gtk_recent_filter_info(VALUE mGtk)
183
+ {
184
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RECENT_FILTER_INFO, "RecentFilterInfo", mGtk);
185
+
186
+ RG_DEF_METHOD(initialize, 0);
187
+ RG_DEF_METHOD(contains, 0);
188
+ RG_DEF_METHOD(set_contains, 1);
189
+ RG_DEF_METHOD(uri, 0);
190
+ RG_DEF_METHOD(set_uri, 1);
191
+ RG_DEF_METHOD(display_name, 0);
192
+ RG_DEF_METHOD(set_display_name, 1);
193
+ RG_DEF_METHOD(mime_type, 0);
194
+ RG_DEF_METHOD(set_mime_type, 1);
195
+ RG_DEF_METHOD(applications, 0);
196
+ RG_DEF_METHOD(set_applications, 1);
197
+ RG_DEF_METHOD(groups, 0);
198
+ RG_DEF_METHOD(set_groups, 1);
199
+ RG_DEF_METHOD(age, 0);
200
+ RG_DEF_METHOD(set_age, 1);
201
+ }
@@ -0,0 +1,169 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 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 cRecentFilter
25
+ #define _SELF(self) (RVAL2GTKRECENTFILTER(self))
26
+
27
+ static VALUE rb_mGtk;
28
+
29
+ static VALUE
30
+ rg_initialize(VALUE self)
31
+ {
32
+ RBGTK_INITIALIZE(self, gtk_recent_filter_new());
33
+ return Qnil;
34
+ }
35
+
36
+ static VALUE
37
+ rg_name(VALUE self)
38
+ {
39
+ return CSTR2RVAL(gtk_recent_filter_get_name(_SELF(self)));
40
+ }
41
+
42
+ static VALUE
43
+ rg_set_name(VALUE self, VALUE name)
44
+ {
45
+ gtk_recent_filter_set_name(_SELF(self), RVAL2CSTR(name));
46
+ return self;
47
+ }
48
+
49
+ static VALUE
50
+ rg_add_mime_type(VALUE self, VALUE mime_type)
51
+ {
52
+ gtk_recent_filter_add_mime_type(_SELF(self), RVAL2CSTR(mime_type));
53
+ return self;
54
+ }
55
+
56
+ static VALUE
57
+ rg_add_pattern(VALUE self, VALUE pattern)
58
+ {
59
+ gtk_recent_filter_add_pattern(_SELF(self), RVAL2CSTR(pattern));
60
+ return self;
61
+ }
62
+
63
+ static VALUE
64
+ rg_add_pixbuf_formats(VALUE self)
65
+ {
66
+ gtk_recent_filter_add_pixbuf_formats(_SELF(self));
67
+ return self;
68
+ }
69
+
70
+ static VALUE
71
+ rg_add_application(VALUE self, VALUE application)
72
+ {
73
+ gtk_recent_filter_add_application(_SELF(self), RVAL2CSTR(application));
74
+ return self;
75
+ }
76
+
77
+ static VALUE
78
+ rg_add_group(VALUE self, VALUE group)
79
+ {
80
+ gtk_recent_filter_add_group(_SELF(self), RVAL2CSTR(group));
81
+ return self;
82
+ }
83
+
84
+ static VALUE
85
+ rg_add_age(VALUE self, VALUE days)
86
+ {
87
+ gtk_recent_filter_add_age(_SELF(self), NUM2INT(days));
88
+ return self;
89
+ }
90
+
91
+ struct callback_arg
92
+ {
93
+ VALUE callback;
94
+ VALUE info;
95
+ };
96
+
97
+ static VALUE
98
+ invoke_callback(VALUE arg_)
99
+ {
100
+ struct callback_arg *arg = (struct callback_arg *)arg_;
101
+ return rb_funcall(arg->callback, id_call, 1, arg->info);
102
+ }
103
+
104
+ static gboolean
105
+ filter_func(const GtkRecentFilterInfo *info, gpointer func)
106
+ {
107
+ VALUE result;
108
+ struct callback_arg arg;
109
+
110
+ arg.callback = (VALUE)func;
111
+ arg.info = GTKRECENTFILTERINFO2RVAL((gpointer)info);
112
+
113
+ result = G_PROTECT_CALLBACK(invoke_callback, &arg);
114
+ return NIL_P(rb_errinfo()) ? TRUE : RVAL2CBOOL(result);
115
+ }
116
+
117
+ static void
118
+ remove_callback_reference(gpointer data)
119
+ {
120
+ G_CHILD_REMOVE(rb_mGtk, (VALUE)data);
121
+ }
122
+
123
+ static VALUE
124
+ rg_add_custom(VALUE self, VALUE needed)
125
+ {
126
+ VALUE func = rb_block_proc();
127
+ G_CHILD_ADD(rb_mGtk, func);
128
+
129
+ gtk_recent_filter_add_custom(_SELF(self),
130
+ RVAL2GTKRECENTFILTERFLAGS(needed),
131
+ (GtkRecentFilterFunc)filter_func,
132
+ (gpointer)func,
133
+ (GDestroyNotify)remove_callback_reference);
134
+ return self;
135
+ }
136
+
137
+ static VALUE
138
+ rg_needed(VALUE self)
139
+ {
140
+ return GTKRECENTFILTERFLAGS2RVAL(gtk_recent_filter_get_needed(_SELF(self)));
141
+ }
142
+
143
+ static VALUE
144
+ rg_filter(VALUE self, VALUE filter_info)
145
+ {
146
+ return CBOOL2RVAL(gtk_recent_filter_filter(_SELF(self),
147
+ RVAL2GTKRECENTFILTERINFO(filter_info)));
148
+ }
149
+
150
+ void
151
+ Init_gtk_recent_filter(VALUE mGtk)
152
+ {
153
+ rb_mGtk = mGtk;
154
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RECENT_FILTER, "RecentFilter", mGtk);
155
+ RG_DEF_METHOD(initialize, 0);
156
+ RG_DEF_METHOD(name, 0);
157
+ RG_DEF_METHOD(set_name, 1);
158
+ RG_DEF_METHOD(add_mime_type, 1);
159
+ RG_DEF_METHOD(add_pattern, 1);
160
+ RG_DEF_METHOD(add_pixbuf_formats, 0);
161
+ RG_DEF_METHOD(add_application, 1);
162
+ RG_DEF_METHOD(add_group, 1);
163
+ RG_DEF_METHOD(add_age, 1);
164
+ RG_DEF_METHOD(add_custom, 1);
165
+ RG_DEF_METHOD(needed, 0);
166
+ RG_DEF_METHOD(filter, 1);
167
+
168
+ G_DEF_CLASS(GTK_TYPE_RECENT_FILTER_FLAGS, "Flags", RG_TARGET_NAMESPACE);
169
+ }
@@ -0,0 +1,213 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 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 cRecentInfo
25
+ #define _SELF(self) (RVAL2GTKRECENTINFO(self))
26
+
27
+ static VALUE
28
+ rg_uri(VALUE self)
29
+ {
30
+ return CSTR2RVAL(gtk_recent_info_get_uri(_SELF(self)));
31
+ }
32
+
33
+ static VALUE
34
+ rg_display_name(VALUE self)
35
+ {
36
+ return CSTR2RVAL(gtk_recent_info_get_display_name(_SELF(self)));
37
+ }
38
+
39
+ static VALUE
40
+ rg_description(VALUE self)
41
+ {
42
+ return CSTR2RVAL(gtk_recent_info_get_description(_SELF(self)));
43
+ }
44
+
45
+ static VALUE
46
+ rg_mime_type(VALUE self)
47
+ {
48
+ return CSTR2RVAL(gtk_recent_info_get_mime_type(_SELF(self)));
49
+ }
50
+
51
+ static VALUE
52
+ rg_added(VALUE self)
53
+ {
54
+ time_t t = gtk_recent_info_get_added(_SELF(self));
55
+ return rb_funcall(rb_cTime, rb_intern("at"), 1, INT2NUM(t));
56
+ }
57
+
58
+ static VALUE
59
+ rg_modified(VALUE self)
60
+ {
61
+ time_t t = gtk_recent_info_get_modified(_SELF(self));
62
+ return rb_funcall(rb_cTime, rb_intern("at"), 1, INT2NUM(t));
63
+ }
64
+
65
+ static VALUE
66
+ rg_visited(VALUE self)
67
+ {
68
+ time_t t = gtk_recent_info_get_visited(_SELF(self));
69
+ return rb_funcall(rb_cTime, rb_intern("at"), 1, INT2NUM(t));
70
+ }
71
+
72
+ static VALUE
73
+ rg_private_hint_p(VALUE self)
74
+ {
75
+ return CBOOL2RVAL(gtk_recent_info_get_private_hint(_SELF(self)));
76
+ }
77
+
78
+ static VALUE
79
+ rg_application_info(VALUE self, VALUE app_name)
80
+ {
81
+ const gchar *app_exec;
82
+ guint count;
83
+ time_t t;
84
+ gboolean ret = gtk_recent_info_get_application_info(_SELF(self),
85
+ RVAL2CSTR(app_name),
86
+ &app_exec,
87
+ &count,
88
+ &t);
89
+ VALUE ary = rb_ary_new();
90
+ if (ret){
91
+ rb_ary_push(ary, CSTR2RVAL(app_exec));
92
+ rb_ary_push(ary, UINT2NUM(count));
93
+ rb_ary_push(ary, rb_funcall(rb_cTime, rb_intern("at"), 1, INT2NUM(t)));
94
+ }
95
+ return ary;
96
+ }
97
+
98
+ static VALUE
99
+ rg_applications(VALUE self)
100
+ {
101
+ gsize i;
102
+ gsize length;
103
+ gchar** str = gtk_recent_info_get_applications(_SELF(self), &length);
104
+ VALUE ary = rb_ary_new();
105
+ for(i = 0; i < length; i++){
106
+ rb_ary_push(ary, CSTR2RVAL(str[i]));
107
+ }
108
+ g_strfreev(str);
109
+ return ary;
110
+ }
111
+
112
+ static VALUE
113
+ rg_last_application(VALUE self)
114
+ {
115
+ return CSTR2RVAL(gtk_recent_info_last_application(_SELF(self)));
116
+ }
117
+
118
+ static VALUE
119
+ rg_groups(VALUE self)
120
+ {
121
+ gsize i;
122
+ gsize length;
123
+ gchar** str = gtk_recent_info_get_groups(_SELF(self), &length);
124
+ VALUE ary = rb_ary_new();
125
+ for(i = 0; i < length; i++){
126
+ rb_ary_push(ary, CSTR2RVAL(str[i]));
127
+ }
128
+ g_strfreev(str);
129
+ return ary;
130
+ }
131
+
132
+ static VALUE
133
+ rg_has_group_p(VALUE self, VALUE group_name)
134
+ {
135
+ return CBOOL2RVAL(gtk_recent_info_has_group(_SELF(self),
136
+ RVAL2CSTR(group_name)));
137
+ }
138
+
139
+ static VALUE
140
+ rg_has_application_p(VALUE self, VALUE app_name)
141
+ {
142
+ return CBOOL2RVAL(gtk_recent_info_has_application(_SELF(self),
143
+ RVAL2CSTR(app_name)));
144
+ }
145
+
146
+ static VALUE
147
+ rg_get_icon(VALUE self, VALUE size)
148
+ {
149
+ return GOBJ2RVAL(gtk_recent_info_get_icon(_SELF(self), NUM2INT(size)));
150
+ }
151
+
152
+ static VALUE
153
+ rg_short_name(VALUE self)
154
+ {
155
+ return CSTR2RVAL(gtk_recent_info_get_short_name(_SELF(self)));
156
+ }
157
+
158
+ static VALUE
159
+ rg_uri_display(VALUE self)
160
+ {
161
+ return CSTR2RVAL(gtk_recent_info_get_uri_display(_SELF(self)));
162
+ }
163
+
164
+ static VALUE
165
+ rg_age(VALUE self)
166
+ {
167
+ return INT2NUM(gtk_recent_info_get_age(_SELF(self)));
168
+ }
169
+
170
+ static VALUE
171
+ rg_local_p(VALUE self)
172
+ {
173
+ return CBOOL2RVAL(gtk_recent_info_is_local(_SELF(self)));
174
+ }
175
+
176
+ static VALUE
177
+ rg_exist_p(VALUE self)
178
+ {
179
+ return CBOOL2RVAL(gtk_recent_info_exists(_SELF(self)));
180
+ }
181
+
182
+ static VALUE
183
+ rg_operator_ri_match(VALUE self, VALUE other)
184
+ {
185
+ return CBOOL2RVAL(gtk_recent_info_match(_SELF(self), _SELF(other)));
186
+ }
187
+
188
+ void
189
+ Init_gtk_recent_info(VALUE mGtk)
190
+ {
191
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RECENT_INFO, "RecentInfo", mGtk);
192
+ RG_DEF_METHOD(uri, 0);
193
+ RG_DEF_METHOD(display_name, 0);
194
+ RG_DEF_METHOD(description, 0);
195
+ RG_DEF_METHOD(mime_type, 0);
196
+ RG_DEF_METHOD(added, 0);
197
+ RG_DEF_METHOD(modified, 0);
198
+ RG_DEF_METHOD(visited, 0);
199
+ RG_DEF_METHOD_P(private_hint, 0);
200
+ RG_DEF_METHOD(application_info, 1);
201
+ RG_DEF_METHOD(applications, 0);
202
+ RG_DEF_METHOD(last_application, 0);
203
+ RG_DEF_METHOD(groups, 0);
204
+ RG_DEF_METHOD_P(has_group, 1);
205
+ RG_DEF_METHOD_P(has_application, 1);
206
+ RG_DEF_METHOD(get_icon, 1);
207
+ RG_DEF_METHOD(short_name, 0);
208
+ RG_DEF_METHOD(uri_display, 0);
209
+ RG_DEF_METHOD(age, 0);
210
+ RG_DEF_METHOD_P(local, 0);
211
+ RG_DEF_METHOD_P(exist, 0);
212
+ RG_DEF_METHOD_OPERATOR("==", ri_match, 1);
213
+ }