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,48 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002,2003 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 cCellRendererText
25
+ #define _SELF(s) (RVAL2GTKCELLRENDERERTEXT(s))
26
+
27
+ static VALUE
28
+ rg_initialize(VALUE self)
29
+ {
30
+ RBGTK_INITIALIZE(self, gtk_cell_renderer_text_new());
31
+ return Qnil;
32
+ }
33
+
34
+ static VALUE
35
+ rg_set_fixed_height_from_font(VALUE self, VALUE number_of_rows)
36
+ {
37
+ gtk_cell_renderer_text_set_fixed_height_from_font(_SELF(self), NUM2INT(number_of_rows));
38
+ return self;
39
+ }
40
+
41
+ void
42
+ Init_gtk_cellrenderertext(VALUE mGtk)
43
+ {
44
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CELL_RENDERER_TEXT, "CellRendererText", mGtk);
45
+
46
+ RG_DEF_METHOD(initialize, 0);
47
+ RG_DEF_METHOD(set_fixed_height_from_font, 1);
48
+ }
@@ -0,0 +1,39 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002,2003 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 cCellRendererToggle
25
+ #define _SELF(s) (RVAL2GTKCELLRENDERERTOGGLE(s))
26
+
27
+ static VALUE
28
+ rg_initialize(VALUE self)
29
+ {
30
+ RBGTK_INITIALIZE(self, gtk_cell_renderer_toggle_new());
31
+ return Qnil;
32
+ }
33
+
34
+ void
35
+ Init_gtk_cellrenderertoggle(VALUE mGtk)
36
+ {
37
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CELL_RENDERER_TOGGLE, "CellRendererToggle", mGtk);
38
+ RG_DEF_METHOD(initialize, 0);
39
+ }
@@ -0,0 +1,119 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002-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 cCellRenderer
25
+ #define _SELF(s) (RVAL2GTKCELLRENDERER(s))
26
+
27
+ static VALUE
28
+ rg_get_preferred_size(VALUE self, VALUE widget)
29
+ {
30
+ GtkRequisition minimum_size, natural_size;
31
+
32
+ gtk_cell_renderer_get_preferred_size(_SELF(self),
33
+ RVAL2GTKWIDGET(widget),
34
+ &minimum_size, &natural_size);
35
+
36
+ return rb_ary_new3(2,
37
+ GTKREQUISITION2RVAL(&minimum_size),
38
+ GTKREQUISITION2RVAL(&natural_size));
39
+ }
40
+
41
+ /* TODO
42
+ static VALUE
43
+ rg_render(VALUE self, VALUE window, VALUE widget, VALUE background_area, VALUE cell_area, VALUE expose_area, VALUE flags)
44
+ {
45
+ gtk_cell_renderer_render(_SELF(self), RVAL2GDKWINDOW(window),
46
+ RVAL2GTKWIDGET(widget),
47
+ RVAL2GDKRECTANGLE(background_area),
48
+ RVAL2GDKRECTANGLE(cell_area),
49
+ RVAL2GDKRECTANGLE(expose_area),
50
+ RVAL2GTKCELLRENDERERSTATE(flags));
51
+ return self;
52
+ }
53
+ */
54
+
55
+ static VALUE
56
+ rg_activate(VALUE self, VALUE event, VALUE widget, VALUE path, VALUE background_area, VALUE cell_area, VALUE flags)
57
+ {
58
+ gboolean ret =
59
+ gtk_cell_renderer_activate(_SELF(self), (GdkEvent*)RVAL2GEV(event),
60
+ RVAL2GTKWIDGET(widget),
61
+ RVAL2CSTR(path), RVAL2GDKRECTANGLE(background_area),
62
+ RVAL2GDKRECTANGLE(cell_area),
63
+ RVAL2GTKCELLRENDERERSTATE(flags));
64
+ return CBOOL2RVAL(ret);
65
+ }
66
+
67
+ static VALUE
68
+ rg_start_editing(VALUE self, VALUE event, VALUE widget, VALUE path, VALUE background_area, VALUE cell_area, VALUE flags)
69
+ {
70
+ GtkCellEditable* edit =
71
+ gtk_cell_renderer_start_editing(_SELF(self), (GdkEvent*)RVAL2GEV(event),
72
+ RVAL2GTKWIDGET(widget),
73
+ RVAL2CSTR(path), RVAL2GDKRECTANGLE(background_area),
74
+ RVAL2GDKRECTANGLE(cell_area),
75
+ RVAL2GTKCELLRENDERERSTATE(flags));
76
+ return edit ? GOBJ2RVAL(edit) : Qnil;
77
+ }
78
+
79
+ static VALUE
80
+ rg_stop_editing(VALUE self, VALUE canceled)
81
+ {
82
+ gtk_cell_renderer_stop_editing(_SELF(self), RVAL2CBOOL(canceled));
83
+ return self;
84
+ }
85
+
86
+ static VALUE
87
+ rg_fixed_size(VALUE self)
88
+ {
89
+ int width, height;
90
+ gtk_cell_renderer_get_fixed_size(_SELF(self), &width, &height);
91
+ return rb_ary_new3(2, INT2NUM(width), INT2NUM(height));
92
+ }
93
+
94
+ static VALUE
95
+ rg_set_fixed_size(VALUE self, VALUE width, VALUE height)
96
+ {
97
+ gtk_cell_renderer_set_fixed_size(_SELF(self), NUM2INT(width),
98
+ NUM2INT(height));
99
+ return self;
100
+ }
101
+
102
+ void
103
+ Init_gtk_cellrenderer(VALUE mGtk)
104
+ {
105
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CELL_RENDERER, "CellRenderer", mGtk);
106
+
107
+ RG_DEF_METHOD(get_preferred_size, 1);
108
+ /* TODO
109
+ RG_DEF_METHOD(render, 6);
110
+ */
111
+ RG_DEF_METHOD(activate, 6);
112
+ RG_DEF_METHOD(start_editing, 6);
113
+ RG_DEF_METHOD(stop_editing, 1);
114
+ RG_DEF_METHOD(fixed_size, 0);
115
+ RG_DEF_METHOD(set_fixed_size, 2);
116
+
117
+ G_DEF_CLASS(GTK_TYPE_CELL_RENDERER_STATE, "State", RG_TARGET_NAMESPACE);
118
+ G_DEF_CLASS(GTK_TYPE_CELL_RENDERER_MODE, "Mode", RG_TARGET_NAMESPACE);
119
+ }
@@ -0,0 +1,95 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2005,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 cCellView
25
+ #define _SELF(self) (RVAL2GTKCELLVIEW(self))
26
+
27
+ static ID id_model;
28
+ static ID id_text;
29
+
30
+ static VALUE
31
+ rg_initialize(int argc, VALUE *argv, VALUE self)
32
+ {
33
+ VALUE text;
34
+ VALUE with_markup = Qnil;
35
+ GtkWidget *widget = NULL;
36
+
37
+ rb_scan_args(argc, argv, "02", &text, &with_markup);
38
+
39
+ if (NIL_P(text)) {
40
+ widget = gtk_cell_view_new();
41
+ } else {
42
+ G_CHILD_SET(self, id_text, text);
43
+ if (TYPE(text) == T_STRING){
44
+ if (NIL_P(with_markup) || RVAL2CBOOL(with_markup)){
45
+ widget = gtk_cell_view_new_with_markup(RVAL2CSTR(text));
46
+ } else {
47
+ widget = gtk_cell_view_new_with_text(RVAL2CSTR(text));
48
+ }
49
+ } else if (rb_obj_is_kind_of(text, GTYPE2CLASS(GDK_TYPE_PIXBUF))){
50
+ widget = gtk_cell_view_new_with_pixbuf(RVAL2GDKPIXBUF(text));
51
+ } else {
52
+ rb_raise(rb_eArgError,
53
+ "invalid argument %s (expect String or Gdk::Pixbuf)",
54
+ rb_class2name(CLASS_OF(text)));
55
+ }
56
+ }
57
+
58
+ RBGTK_INITIALIZE(self, widget);
59
+
60
+ return Qnil;
61
+ }
62
+
63
+ static VALUE
64
+ rg_set_displayed_row(VALUE self, VALUE path)
65
+ {
66
+ gtk_cell_view_set_displayed_row(_SELF(self),
67
+ NIL_P(path) ? (GtkTreePath*)NULL :
68
+ RVAL2GTKTREEPATH(path));
69
+ return self;
70
+ }
71
+
72
+ static VALUE
73
+ rg_displayed_row(VALUE self)
74
+ {
75
+ return GTKTREEPATH2RVAL(gtk_cell_view_get_displayed_row(_SELF(self)));
76
+ }
77
+
78
+ /* Use Gtk::CellView#background_gdk(Gdk::Color) instead.
79
+ void gtk_cell_view_set_background_color
80
+ (GtkCellView *cell_view,
81
+ const GdkColor *color);
82
+ */
83
+
84
+ void
85
+ Init_gtk_cellview(VALUE mGtk)
86
+ {
87
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CELL_VIEW, "CellView", mGtk);
88
+
89
+ id_model = rb_intern("model");
90
+ id_text = rb_intern("text");
91
+
92
+ RG_DEF_METHOD(initialize, -1);
93
+ RG_DEF_METHOD(set_displayed_row, 1);
94
+ RG_DEF_METHOD(displayed_row, 0);
95
+ }
@@ -0,0 +1,64 @@
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 cCheckButton
28
+
29
+ static VALUE
30
+ rg_initialize(int argc, VALUE *argv, VALUE self)
31
+ {
32
+ VALUE label, use_underline;
33
+ GtkWidget *widget;
34
+
35
+ if (rb_scan_args(argc, argv, "02", &label, &use_underline) > 0) {
36
+ if (TYPE(label) == T_STRING){
37
+ if (NIL_P(use_underline) || RVAL2CBOOL(use_underline)){
38
+ widget = gtk_check_button_new_with_mnemonic(RVAL2CSTR(label));
39
+ } else {
40
+ widget = gtk_check_button_new_with_label(RVAL2CSTR(label));
41
+ }
42
+ } else if (TYPE(label) == T_SYMBOL){
43
+ widget = gtk_check_button_new_with_label(rb_id2name(SYM2ID(label)));
44
+ gtk_button_set_use_stock(GTK_BUTTON(widget), TRUE);
45
+ } else {
46
+ rb_raise(rb_eArgError, "invalid argument %s (expect Symbol(Gtk::Stock constants) or String)",
47
+ rb_class2name(CLASS_OF(label)));
48
+ }
49
+ }
50
+ else {
51
+ widget = gtk_check_button_new();
52
+ }
53
+
54
+ RBGTK_INITIALIZE(self, widget);
55
+ return Qnil;
56
+ }
57
+
58
+ void
59
+ Init_gtk_check_button(VALUE mGtk)
60
+ {
61
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CHECK_BUTTON, "CheckButton", mGtk);
62
+
63
+ RG_DEF_METHOD(initialize, -1);
64
+ }
@@ -0,0 +1,64 @@
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 cCheckMenuItem
28
+
29
+ static VALUE
30
+ rg_initialize(int argc, VALUE *argv, VALUE self)
31
+ {
32
+ VALUE label, use_underline;
33
+ GtkWidget *widget = NULL;
34
+
35
+ if (rb_scan_args(argc, argv, "02", &label, &use_underline) > 0) {
36
+ if (NIL_P(use_underline) || RVAL2CBOOL(use_underline)){
37
+ widget = gtk_check_menu_item_new_with_mnemonic(RVAL2CSTR(label));
38
+ } else {
39
+ widget = gtk_check_menu_item_new_with_label(RVAL2CSTR(label));
40
+ }
41
+ }
42
+ else {
43
+ widget = gtk_check_menu_item_new();
44
+ }
45
+
46
+ RBGTK_INITIALIZE(self, widget);
47
+ return Qnil;
48
+ }
49
+
50
+ static VALUE
51
+ rg_toggled(VALUE self)
52
+ {
53
+ gtk_check_menu_item_toggled(RVAL2GTKCHECKMENUITEM(self));
54
+ return self;
55
+ }
56
+
57
+ void
58
+ Init_gtk_check_menu_item(VALUE mGtk)
59
+ {
60
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CHECK_MENU_ITEM, "CheckMenuItem", mGtk);
61
+
62
+ RG_DEF_METHOD(initialize, -1);
63
+ RG_DEF_METHOD(toggled, 0);
64
+ }
@@ -0,0 +1,389 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2004,2006 Ruby-GNOME2 Project
5
+ * Copyright (C) 2002,2003 OGASAWARA, Takeshi
6
+ *
7
+ * This library is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * This library is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with this library; if not, write to the Free Software
19
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
20
+ * MA 02110-1301 USA
21
+ */
22
+
23
+ #include "rbgtk3private.h"
24
+
25
+ #define RG_TARGET_NAMESPACE cClipboard
26
+ #define _SELF(s) RVAL2GTKCLIPBOARD(s)
27
+
28
+ static VALUE
29
+ rg_s_get(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
30
+ {
31
+ GtkClipboard *clipboard;
32
+
33
+ if (argc == 1){
34
+ VALUE selection;
35
+ rb_scan_args(argc, argv, "10", &selection);
36
+ clipboard = gtk_clipboard_get(RVAL2ATOM(selection));
37
+ } else {
38
+ VALUE display, selection;
39
+ rb_scan_args(argc, argv, "20", &display, &selection);
40
+ clipboard = gtk_clipboard_get_for_display(RVAL2GDKDISPLAYOBJECT(display),
41
+ RVAL2ATOM(selection));
42
+ }
43
+ return GOBJ2RVAL(clipboard);
44
+ }
45
+
46
+ static VALUE
47
+ rg_display(VALUE self)
48
+ {
49
+ return GOBJ2RVAL(gtk_clipboard_get_display(_SELF(self)));
50
+ }
51
+
52
+ static void
53
+ clipboard_get_func(GtkClipboard *clipboard, GtkSelectionData *selection_data, G_GNUC_UNUSED guint info, gpointer func)
54
+ {
55
+ rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(clipboard),
56
+ GTKSELECTIONDATA2RVAL(selection_data));
57
+ }
58
+
59
+ struct clipboard_set_args {
60
+ VALUE self;
61
+ VALUE targets;
62
+ VALUE func;
63
+ };
64
+
65
+ static VALUE
66
+ clipboard_set_body(VALUE value)
67
+ {
68
+ struct clipboard_set_args *args = (struct clipboard_set_args *)value;
69
+ GtkClipboard *clipboard = _SELF(args->self);
70
+ long n;
71
+ GtkTargetEntry *targets = RVAL2GTKTARGETENTRIES(args->targets, &n);
72
+ gboolean result = gtk_clipboard_set_with_data(clipboard,
73
+ targets,
74
+ n,
75
+ (GtkClipboardGetFunc)clipboard_get_func,
76
+ (GtkClipboardClearFunc)NULL,
77
+ (gpointer)args->func);
78
+
79
+ g_free(targets);
80
+
81
+ return CBOOL2RVAL(result);
82
+ }
83
+
84
+ static G_GNUC_NORETURN VALUE
85
+ clipboard_set_rescue(VALUE value)
86
+ {
87
+ struct clipboard_set_args *args = (struct clipboard_set_args *)value;
88
+
89
+ G_CHILD_REMOVE(args->self, args->func);
90
+
91
+ rb_exc_raise(rb_errinfo());
92
+ }
93
+
94
+ static VALUE
95
+ rg_set(VALUE self, VALUE targets)
96
+ {
97
+ struct clipboard_set_args args = { self, targets, rb_block_proc() };
98
+
99
+ G_CHILD_ADD(self, args.func);
100
+
101
+ return rb_rescue(clipboard_set_body, (VALUE)&args,
102
+ clipboard_set_rescue, (VALUE)&args);
103
+ }
104
+
105
+ /*
106
+ Do not implement this. Use Gtk::Clipboard#set_with_data instead.
107
+ gboolean gtk_clipboard_set_with_owner (GtkClipboard *clipboard,
108
+ const GtkTargetEntry *targets,
109
+ guint n_targets,
110
+ GtkClipboardGetFunc get_func,
111
+ GtkClipboardClearFunc clear_func,
112
+ GObject *owner);
113
+
114
+ static VALUE
115
+ rg_owner(VALUE self)
116
+ {
117
+ GObject *gobj;
118
+ gobj = gtk_clipboard_get_owner(_SELF(self));
119
+ return gobj ? GOBJ2RVAL(gobj) : Qnil;
120
+ }
121
+ */
122
+
123
+ static VALUE
124
+ rg_clear(VALUE self)
125
+ {
126
+ gtk_clipboard_clear(_SELF(self));
127
+ return self;
128
+ }
129
+
130
+ static VALUE
131
+ rg_set_text(VALUE self, VALUE text)
132
+ {
133
+ StringValue(text);
134
+ gtk_clipboard_set_text(_SELF(self), RVAL2CSTR(text), RSTRING_LEN(text));
135
+ return self;
136
+ }
137
+
138
+ static VALUE
139
+ rg_set_image(VALUE self, VALUE pixbuf)
140
+ {
141
+ gtk_clipboard_set_image(_SELF(self), RVAL2GDKPIXBUF(pixbuf));
142
+ return self;
143
+ }
144
+
145
+ static void
146
+ clipboard_received_func(GtkClipboard *clipboard, GtkSelectionData *selection_data, gpointer func)
147
+ {
148
+ rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(clipboard),
149
+ GTKSELECTIONDATA2RVAL(selection_data));
150
+ }
151
+
152
+ static VALUE
153
+ rg_request_contents(VALUE self, VALUE target)
154
+ {
155
+ VALUE func = rb_block_proc();
156
+ G_RELATIVE(self, func);
157
+ gtk_clipboard_request_contents(_SELF(self), RVAL2ATOM(target),
158
+ (GtkClipboardReceivedFunc)clipboard_received_func,
159
+ (gpointer)func);
160
+ return self;
161
+ }
162
+
163
+ static void
164
+ clipboard_text_received_func(GtkClipboard *clipboard, const gchar *text,
165
+ gpointer func)
166
+ {
167
+ VALUE vtext = Qnil;
168
+ if (text) {
169
+ vtext = CSTR2RVAL(text);
170
+ }
171
+
172
+ rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(clipboard), vtext);
173
+ }
174
+
175
+ static VALUE
176
+ rg_request_text(VALUE self)
177
+ {
178
+ VALUE func = rb_block_proc();
179
+ G_RELATIVE(self, func);
180
+ gtk_clipboard_request_text(_SELF(self),
181
+ (GtkClipboardTextReceivedFunc)clipboard_text_received_func,
182
+ (gpointer)func);
183
+ return self;
184
+ }
185
+
186
+ static void
187
+ clipboard_image_received_func(GtkClipboard *clipboard, GdkPixbuf *pixbuf, gpointer func)
188
+ {
189
+ rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(clipboard),
190
+ GOBJ2RVAL(pixbuf));
191
+ }
192
+
193
+ static VALUE
194
+ rg_request_image(VALUE self)
195
+ {
196
+ VALUE func = rb_block_proc();
197
+ G_RELATIVE(self, func);
198
+ gtk_clipboard_request_image(_SELF(self),
199
+ (GtkClipboardImageReceivedFunc)clipboard_image_received_func,
200
+ (gpointer)func);
201
+ return self;
202
+ }
203
+
204
+ static void
205
+ clipboard_target_received_func(GtkClipboard *clipboard, GdkAtom *atoms, gint n_atoms, gpointer func)
206
+ {
207
+ gint i;
208
+ VALUE ary = rb_ary_new();
209
+ for (i = 0; i < n_atoms; i++){
210
+ rb_ary_push(ary, GDKATOM2RVAL(atoms[i]));
211
+ }
212
+
213
+ rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(clipboard), ary);
214
+ }
215
+
216
+ static VALUE
217
+ rg_request_targets(VALUE self)
218
+ {
219
+ VALUE func = rb_block_proc();
220
+ G_RELATIVE(self, func);
221
+
222
+ gtk_clipboard_request_targets(_SELF(self),
223
+ (GtkClipboardTargetsReceivedFunc)clipboard_target_received_func,
224
+ (gpointer)func);
225
+ return self;
226
+ }
227
+
228
+ static void
229
+ clipboard_rich_text_received_func(GtkClipboard *clipboard, GdkAtom format, const guint8 *text, gsize length, gpointer func)
230
+ {
231
+ rb_funcall((VALUE)func, id_call, 3, GOBJ2RVAL(clipboard),
232
+ GDKATOM2RVAL(format), rb_str_new((char*)text, length));
233
+ }
234
+
235
+ static VALUE
236
+ rg_request_rich_text(VALUE self, VALUE buffer)
237
+ {
238
+ VALUE func = rb_block_proc();
239
+ G_RELATIVE(self, func);
240
+
241
+ gtk_clipboard_request_rich_text(_SELF(self), RVAL2GTKTEXTBUFFER(buffer),
242
+ (GtkClipboardRichTextReceivedFunc)clipboard_rich_text_received_func,
243
+ (gpointer)func);
244
+ return self;
245
+ }
246
+
247
+ static VALUE
248
+ rg_wait_for_contents(VALUE self, VALUE target)
249
+ {
250
+ return GTKSELECTIONDATA2RVAL(gtk_clipboard_wait_for_contents(_SELF(self),
251
+ RVAL2ATOM(target)));
252
+ }
253
+
254
+ static VALUE
255
+ rg_wait_for_text(VALUE self)
256
+ {
257
+ gchar *str;
258
+ str = gtk_clipboard_wait_for_text(_SELF(self));
259
+ return str ? CSTR2RVAL(str) : Qnil;
260
+ }
261
+
262
+ static VALUE
263
+ rg_wait_for_image(VALUE self)
264
+ {
265
+ GdkPixbuf* pixbuf = gtk_clipboard_wait_for_image(_SELF(self));
266
+ return GOBJ2RVAL(pixbuf);
267
+ }
268
+
269
+ static VALUE
270
+ rg_wait_for_rich_text(VALUE self, VALUE buffer)
271
+ {
272
+ GdkAtom format;
273
+ gsize length;
274
+ guint8* data = gtk_clipboard_wait_for_rich_text(_SELF(self),
275
+ RVAL2GTKTEXTBUFFER(buffer),
276
+ &format, &length);
277
+ if (data){
278
+ VALUE str = rb_str_new((char*)data, length);
279
+ g_free(data);
280
+ return rb_assoc_new(str, GDKATOM2RVAL(format));
281
+ } else {
282
+ return rb_assoc_new(Qnil, GDKATOM2RVAL(format));
283
+ }
284
+
285
+ }
286
+
287
+ static VALUE
288
+ rg_wait_is_text_available_p(VALUE self)
289
+ {
290
+ return CBOOL2RVAL(gtk_clipboard_wait_is_text_available(_SELF(self)));
291
+ }
292
+
293
+ static VALUE
294
+ rg_wait_is_image_available_p(VALUE self)
295
+ {
296
+ return CBOOL2RVAL(gtk_clipboard_wait_is_image_available(_SELF(self)));
297
+ }
298
+
299
+ static VALUE
300
+ rg_wait_is_rich_text_available_p(VALUE self, VALUE buffer)
301
+ {
302
+ return CBOOL2RVAL(gtk_clipboard_wait_is_rich_text_available(_SELF(self), RVAL2GTKTEXTBUFFER(buffer)));
303
+ }
304
+
305
+ static VALUE
306
+ rg_wait_for_targets(VALUE self)
307
+ {
308
+ gint i;
309
+ VALUE ary = Qnil;
310
+ GdkAtom* targets;
311
+ gint n_targets = 0;
312
+ gboolean ret = gtk_clipboard_wait_for_targets(_SELF(self), &targets, &n_targets);
313
+
314
+ if (ret){
315
+ ary = rb_ary_new();
316
+ for (i = 0; i < n_targets; i++){
317
+ if ((GdkAtom)targets == (GdkAtom)GDK_NONE){
318
+ rb_ary_push(ary, rb_eval_string("Gdk::Atom::NONE"));
319
+ }
320
+ else
321
+ rb_ary_push(ary, GDKATOM2RVAL(targets));
322
+ targets++;
323
+ }
324
+ /* How can I this ?
325
+ g_free(&o_targets);
326
+ */
327
+ }
328
+ return ary;
329
+ }
330
+
331
+ static VALUE
332
+ rg_wait_is_target_available_p(VALUE self, VALUE target)
333
+ {
334
+ return CBOOL2RVAL(gtk_clipboard_wait_is_target_available(_SELF(self), RVAL2ATOM(target)));
335
+ }
336
+
337
+ static VALUE
338
+ rg_set_can_store(VALUE self, VALUE rbtargets)
339
+ {
340
+ GtkClipboard *clipboard = _SELF(self);
341
+ long n = 0;
342
+ GtkTargetEntry *targets = RVAL2GTKTARGETENTRIES_ACCEPT_NIL(rbtargets, &n);
343
+
344
+ gtk_clipboard_set_can_store(clipboard, targets, n);
345
+
346
+ g_free(targets);
347
+
348
+ return self;
349
+ }
350
+
351
+ static VALUE
352
+ rg_store(VALUE self)
353
+ {
354
+ gtk_clipboard_store(_SELF(self));
355
+
356
+ return self;
357
+ }
358
+
359
+ void
360
+ Init_gtk_clipboard(VALUE mGtk)
361
+ {
362
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CLIPBOARD, "Clipboard", mGtk);
363
+
364
+ RG_DEF_SMETHOD(get, -1);
365
+ RG_DEF_METHOD(display, 0);
366
+ RG_DEF_METHOD(set, 1);
367
+ /*
368
+ RG_DEF_METHOD(owner, 0);
369
+ */
370
+ RG_DEF_METHOD(clear, 0);
371
+ RG_DEF_METHOD(set_text, 1);
372
+ RG_DEF_METHOD(set_image, 1);
373
+ RG_DEF_METHOD(request_contents, 1);
374
+ RG_DEF_METHOD(request_text, 0);
375
+ RG_DEF_METHOD(request_image, 0);
376
+ RG_DEF_METHOD(request_targets, 0);
377
+ RG_DEF_METHOD(request_rich_text, 1);
378
+ RG_DEF_METHOD(wait_for_contents, 1);
379
+ RG_DEF_METHOD(wait_for_text, 0);
380
+ RG_DEF_METHOD(wait_for_image, 0);
381
+ RG_DEF_METHOD(wait_for_rich_text, 1);
382
+ RG_DEF_METHOD_P(wait_is_text_available, 0);
383
+ RG_DEF_METHOD_P(wait_is_image_available, 0);
384
+ RG_DEF_METHOD_P(wait_is_rich_text_available, 1);
385
+ RG_DEF_METHOD(wait_for_targets, 0);
386
+ RG_DEF_METHOD_P(wait_is_target_available, 1);
387
+ RG_DEF_METHOD(set_can_store, 1);
388
+ RG_DEF_METHOD(store, 0);
389
+ }