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,80 @@
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 cWindowGroup
25
+ #define _SELF(self) (RVAL2GTKWINDOWGROUP(self))
26
+
27
+ static VALUE
28
+ rg_initialize(VALUE self)
29
+ {
30
+ G_INITIALIZE(self, gtk_window_group_new());
31
+ return Qnil;
32
+ }
33
+
34
+ static VALUE
35
+ rg_add(VALUE self, VALUE window)
36
+ {
37
+ gtk_window_group_add_window(_SELF(self),
38
+ RVAL2GTKWINDOW(window));
39
+ return self;
40
+ }
41
+
42
+ static VALUE
43
+ rg_remove(VALUE self, VALUE window)
44
+ {
45
+ gtk_window_group_remove_window(_SELF(self),
46
+ RVAL2GTKWINDOW(window));
47
+ return self;
48
+ }
49
+
50
+ static VALUE
51
+ rg_get_current_device_grab(VALUE self, VALUE device)
52
+ {
53
+ return GOBJ2RVAL(gtk_window_group_get_current_device_grab(_SELF(self),
54
+ NIL_P(device) ? NULL : RVAL2GDKDEVICE(device)));
55
+ }
56
+
57
+ static VALUE
58
+ rg_current_grab(VALUE self)
59
+ {
60
+ return GOBJ2RVAL(gtk_window_group_get_current_grab(_SELF(self)));
61
+ }
62
+
63
+ static VALUE
64
+ rg_windows(VALUE self)
65
+ {
66
+ /* TODO: need free? */
67
+ return GOBJGLIST2RVAL(gtk_window_group_list_windows(_SELF(self)));
68
+ }
69
+
70
+ void
71
+ Init_gtk_windowgroup(VALUE mGtk)
72
+ {
73
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_WINDOW_GROUP, "WindowGroup", mGtk);
74
+ RG_DEF_METHOD(initialize, 0);
75
+ RG_DEF_METHOD(add, 1);
76
+ RG_DEF_METHOD(remove, 1);
77
+ RG_DEF_METHOD(get_current_device_grab, 1);
78
+ RG_DEF_METHOD(current_grab, 0);
79
+ RG_DEF_METHOD(windows, 0);
80
+ }
@@ -0,0 +1,565 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2002-2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 1998-2000 Yukihiro Matsumoto,
5
+ * Daisuke Kanda,
6
+ * Hiroshi Igarashi
7
+ *
8
+ * This library is free software; you can redistribute it and/or
9
+ * modify it under the terms of the GNU Lesser General Public
10
+ * License as published by the Free Software Foundation; either
11
+ * version 2.1 of the License, or (at your option) any later version.
12
+ *
13
+ * This library is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
+ * Lesser General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU Lesser General Public
19
+ * License along with this library; if not, write to the Free Software
20
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
21
+ * MA 02110-1301 USA
22
+ */
23
+
24
+ #include "rbgtk3private.h"
25
+
26
+ #define RG_TARGET_NAMESPACE cWindow
27
+ #define _SELF(s) (RVAL2GTKWINDOW(s))
28
+
29
+ static VALUE
30
+ rg_initialize(int argc, VALUE *argv, VALUE self)
31
+ {
32
+ VALUE arg;
33
+ GtkWindowType tp = GTK_WINDOW_TOPLEVEL;
34
+ const gchar *title = NULL;
35
+ GtkWidget* window = NULL;
36
+
37
+ if (rb_scan_args(argc, argv, "01", &arg) == 1) {
38
+ if (TYPE(arg) == T_STRING) {
39
+ StringValue(arg);
40
+ title = RVAL2CSTR(arg);
41
+ } else {
42
+ tp = RVAL2GTKWINDOWTYPE(arg);
43
+ }
44
+ }
45
+ window = gtk_window_new(tp);
46
+
47
+ if (title != NULL)
48
+ gtk_window_set_title(GTK_WINDOW(window), title);
49
+
50
+ RBGTK_INITIALIZE(self, window);
51
+ return Qnil;
52
+ }
53
+
54
+ static VALUE
55
+ rg_set_wmclass(VALUE self, VALUE wmclass_name, VALUE wmclass_class)
56
+ {
57
+ gtk_window_set_wmclass(_SELF(self),
58
+ RVAL2CSTR_ACCEPT_NIL(wmclass_name),
59
+ RVAL2CSTR_ACCEPT_NIL(wmclass_class));
60
+ return self;
61
+ }
62
+
63
+ static VALUE
64
+ rg_add_accel_group(VALUE self, VALUE accel)
65
+ {
66
+ gtk_window_add_accel_group(_SELF(self),
67
+ RVAL2GTKACCELGROUP(accel));
68
+ G_CHILD_ADD(self, accel);
69
+ return self;
70
+ }
71
+
72
+ static VALUE
73
+ rg_remove_accel_group(VALUE self, VALUE accel)
74
+ {
75
+ gtk_window_remove_accel_group(_SELF(self),
76
+ RVAL2GTKACCELGROUP(accel));
77
+ G_CHILD_REMOVE(self, accel);
78
+ return self;
79
+ }
80
+
81
+ static VALUE
82
+ gwin_activate_focus(VALUE self)
83
+ {
84
+ return CBOOL2RVAL(gtk_window_activate_focus(_SELF(self)));
85
+ }
86
+
87
+ static VALUE
88
+ gwin_activate_default(VALUE self)
89
+ {
90
+ return CBOOL2RVAL(gtk_window_activate_default(_SELF(self)));
91
+ }
92
+
93
+ static VALUE
94
+ rg_set_default_size(VALUE self, VALUE w, VALUE h)
95
+ {
96
+ gtk_window_set_default_size(_SELF(self),
97
+ NUM2INT(w), NUM2INT(h));
98
+ return self;
99
+ }
100
+
101
+ static VALUE
102
+ rg_set_geometry_hints(VALUE self, VALUE geometry_widget, VALUE geometry, VALUE geom_mask)
103
+ {
104
+ gtk_window_set_geometry_hints(_SELF(self),
105
+ RVAL2GTKWIDGET(geometry_widget),
106
+ RVAL2GDKGEOMETRY(geometry),
107
+ RVAL2GDKWINDOWHINTS(geom_mask));
108
+ return self;
109
+ }
110
+
111
+ static VALUE
112
+ rg_s_toplevels(G_GNUC_UNUSED VALUE self)
113
+ {
114
+ GList* list = gtk_window_list_toplevels();
115
+ VALUE ret = GOBJGLIST2RVAL(list);
116
+ g_list_foreach(list, (GFunc)g_object_ref, NULL);
117
+ g_list_free(list);
118
+ return ret;
119
+ }
120
+
121
+ static VALUE
122
+ rg_add_mnemonic(VALUE self, VALUE keyval, VALUE target)
123
+ {
124
+ gtk_window_add_mnemonic(_SELF(self), NUM2INT(keyval), RVAL2GTKWIDGET(target));
125
+ return self;
126
+ }
127
+
128
+ static VALUE
129
+ rg_remove_mnemonic(VALUE self, VALUE keyval, VALUE target)
130
+ {
131
+ gtk_window_remove_mnemonic(_SELF(self), NUM2INT(keyval), RVAL2GTKWIDGET(target));
132
+ return self;
133
+ }
134
+
135
+ static VALUE
136
+ rg_mnemonic_activate(VALUE self, VALUE keyval, VALUE modifier)
137
+ {
138
+ return CBOOL2RVAL(gtk_window_mnemonic_activate(_SELF(self),
139
+ NUM2INT(keyval),
140
+ RVAL2GDKMODIFIERTYPE(modifier)));
141
+ }
142
+
143
+ static VALUE
144
+ rg_focus(VALUE self)
145
+ {
146
+ return GOBJ2RVAL(gtk_window_get_focus(_SELF(self)));
147
+ }
148
+
149
+ static VALUE
150
+ rg_set_focus(VALUE self, VALUE win)
151
+ {
152
+ gtk_window_set_focus(_SELF(self),
153
+ NIL_P(win) ? NULL : RVAL2GTKWIDGET(win));
154
+ return self;
155
+ }
156
+
157
+ static VALUE
158
+ rg_set_default(VALUE self, VALUE win)
159
+ {
160
+ gtk_window_set_default(_SELF(self),
161
+ NIL_P(win) ? NULL : RVAL2GTKWIDGET(win));
162
+ return self;
163
+ }
164
+
165
+ static VALUE
166
+ rg_present(int argc, VALUE *argv, VALUE self)
167
+ {
168
+ VALUE timestamp;
169
+ if (rb_scan_args(argc, argv, "01", &timestamp) == 1) {
170
+ gtk_window_present_with_time(_SELF(self), NUM2UINT(timestamp));
171
+ } else {
172
+ gtk_window_present(_SELF(self));
173
+ }
174
+ return self;
175
+ }
176
+
177
+ static VALUE
178
+ rg_iconify(VALUE self)
179
+ {
180
+ gtk_window_iconify(_SELF(self));
181
+ return self;
182
+ }
183
+
184
+ static VALUE
185
+ rg_deiconify(VALUE self)
186
+ {
187
+ gtk_window_deiconify(_SELF(self));
188
+ return self;
189
+ }
190
+
191
+ static VALUE
192
+ rg_stick(VALUE self)
193
+ {
194
+ gtk_window_stick(_SELF(self));
195
+ return self;
196
+ }
197
+
198
+ static VALUE
199
+ rg_unstick(VALUE self)
200
+ {
201
+ gtk_window_unstick(_SELF(self));
202
+ return self;
203
+ }
204
+
205
+ static VALUE
206
+ rg_maximize(VALUE self)
207
+ {
208
+ gtk_window_maximize(_SELF(self));
209
+ return self;
210
+ }
211
+
212
+ static VALUE
213
+ rg_unmaximize(VALUE self)
214
+ {
215
+ gtk_window_unmaximize(_SELF(self));
216
+ return self;
217
+ }
218
+
219
+ static VALUE
220
+ rg_fullscreen(VALUE self)
221
+ {
222
+ gtk_window_fullscreen(_SELF(self));
223
+ return self;
224
+ }
225
+
226
+ static VALUE
227
+ rg_unfullscreen(VALUE self)
228
+ {
229
+ gtk_window_unfullscreen(_SELF(self));
230
+ return self;
231
+ }
232
+
233
+ static VALUE
234
+ rg_set_keep_above(VALUE self, VALUE setting)
235
+ {
236
+ gtk_window_set_keep_above(_SELF(self), RVAL2CBOOL(setting));
237
+ return self;
238
+ }
239
+
240
+ static VALUE
241
+ rg_set_keep_below(VALUE self, VALUE setting)
242
+ {
243
+ gtk_window_set_keep_below(_SELF(self), RVAL2CBOOL(setting));
244
+ return self;
245
+ }
246
+
247
+ static VALUE
248
+ rg_begin_resize_drag(VALUE self, VALUE edge, VALUE button, VALUE root_x, VALUE root_y, VALUE timestamp)
249
+ {
250
+ gtk_window_begin_resize_drag(_SELF(self), RVAL2GDKWINDOWEDGE(edge),
251
+ NUM2INT(button), NUM2INT(root_x),
252
+ NUM2INT(root_y), NUM2UINT(timestamp));
253
+ return self;
254
+ }
255
+
256
+ static VALUE
257
+ rg_begin_move_drag(VALUE self, VALUE button, VALUE root_x, VALUE root_y, VALUE timestamp)
258
+ {
259
+ gtk_window_begin_move_drag(_SELF(self),
260
+ NUM2INT(button), NUM2INT(root_x),
261
+ NUM2INT(root_y), NUM2UINT(timestamp));
262
+ return self;
263
+ }
264
+
265
+ static VALUE
266
+ rg_set_mnemonic_modifier(VALUE self, VALUE modifier)
267
+ {
268
+ gtk_window_set_mnemonic_modifier(_SELF(self),
269
+ RVAL2GDKMODIFIERTYPE(modifier));
270
+ return self;
271
+ }
272
+
273
+ static VALUE
274
+ rg_s_default_icon_list(G_GNUC_UNUSED VALUE self)
275
+ {
276
+ return GOBJGLIST2RVAL_FREE(gtk_window_get_default_icon_list(),
277
+ g_list_free, NULL);
278
+ }
279
+
280
+ static VALUE
281
+ rg_default_size(VALUE self)
282
+ {
283
+ int width, height;
284
+ gtk_window_get_default_size(_SELF(self), &width, &height);
285
+ return rb_ary_new3(2, INT2NUM(width), INT2NUM(height));
286
+ }
287
+
288
+ static VALUE
289
+ rg_icon_list(VALUE self)
290
+ {
291
+ return GOBJGLIST2RVAL_FREE(gtk_window_get_icon_list(_SELF(self)),
292
+ g_list_free, NULL);
293
+ }
294
+
295
+ static VALUE
296
+ rg_mnemonic_modifier(VALUE self)
297
+ {
298
+ return GDKMODIFIERTYPE2RVAL(gtk_window_get_mnemonic_modifier(_SELF(self)));
299
+ }
300
+
301
+ static VALUE
302
+ rg_position(VALUE self)
303
+ {
304
+ int root_x, root_y;
305
+ gtk_window_get_position(_SELF(self), &root_x, &root_y);
306
+ return rb_ary_new3(2, INT2NUM(root_x), INT2NUM(root_y));
307
+ }
308
+
309
+ static VALUE
310
+ rg_size(VALUE self)
311
+ {
312
+ int width, height;
313
+ gtk_window_get_size(_SELF(self), &width, &height);
314
+ return rb_ary_new3(2, INT2NUM(width), INT2NUM(height));
315
+ }
316
+
317
+ static VALUE
318
+ rg_group(VALUE self)
319
+ {
320
+ return GOBJ2RVAL(gtk_window_get_group(_SELF(self)));
321
+ }
322
+
323
+ static VALUE
324
+ rg_move(VALUE self, VALUE x, VALUE y)
325
+ {
326
+ gtk_window_move(_SELF(self), NUM2INT(x), NUM2INT(y));
327
+ return self;
328
+ }
329
+
330
+ static VALUE
331
+ rg_parse_geometry(VALUE self, VALUE geometry)
332
+ {
333
+ return CBOOL2RVAL(gtk_window_parse_geometry(_SELF(self), RVAL2CSTR(geometry)));
334
+ }
335
+
336
+ static VALUE
337
+ rg_reshow_with_initial_size(VALUE self)
338
+ {
339
+ gtk_window_reshow_with_initial_size(_SELF(self));
340
+ return self;
341
+ }
342
+
343
+ static VALUE
344
+ rg_resize(VALUE self, VALUE width, VALUE height)
345
+ {
346
+ gtk_window_resize(_SELF(self), NUM2INT(width), NUM2INT(height));
347
+ return self;
348
+ }
349
+
350
+ static VALUE
351
+ rg_s_set_default_icon_list(G_GNUC_UNUSED VALUE self, VALUE rblist)
352
+ {
353
+ GList *list = RVAL2GDKPIXBUFGLIST(rblist);
354
+
355
+ gtk_window_set_default_icon_list(list);
356
+
357
+ g_list_free(list);
358
+
359
+ return rblist;
360
+ }
361
+
362
+ static VALUE
363
+ rg_s_set_default_icon(VALUE self, VALUE icon_or_filename)
364
+ {
365
+ if (TYPE(icon_or_filename) == T_STRING){
366
+ GError* err;
367
+ gboolean ret = gtk_window_set_default_icon_from_file(RVAL2CSTR(icon_or_filename), &err);
368
+ if (! ret)
369
+ RAISE_GERROR(err);
370
+ } else {
371
+ gtk_window_set_default_icon(RVAL2GDKPIXBUF(icon_or_filename));
372
+ }
373
+ return self;
374
+ }
375
+
376
+ static VALUE
377
+ rg_s_set_default_icon_name(VALUE self, VALUE name)
378
+ {
379
+ gtk_window_set_default_icon_name(RVAL2CSTR(name));
380
+ return self;
381
+ }
382
+
383
+ static VALUE
384
+ gwin_set_icon(VALUE self, VALUE icon_or_filename)
385
+ {
386
+ if (TYPE(icon_or_filename) == T_STRING){
387
+ GError* err;
388
+ gboolean ret = gtk_window_set_icon_from_file(_SELF(self),
389
+ RVAL2CSTR(icon_or_filename), &err);
390
+ if (! ret)
391
+ RAISE_GERROR(err);
392
+ } else {
393
+ gtk_window_set_icon(_SELF(self), RVAL2GDKPIXBUF(icon_or_filename));
394
+ }
395
+ return self;
396
+ }
397
+
398
+ static VALUE
399
+ rg_set_icon_list(VALUE self, VALUE rblist)
400
+ {
401
+ GtkWindow *window = _SELF(self);
402
+ GList *list = RVAL2GDKPIXBUFGLIST(rblist);
403
+
404
+ gtk_window_set_icon_list(window, list);
405
+
406
+ g_list_free(list);
407
+
408
+ /* TODO: Shouldn't we return self? */
409
+ return rblist;
410
+ }
411
+
412
+ static VALUE
413
+ rg_s_set_auto_startup_notification(VALUE self, VALUE setting)
414
+ {
415
+ gtk_window_set_auto_startup_notification(RVAL2CBOOL(setting));
416
+ return self;
417
+ }
418
+
419
+ static void
420
+ mark_toplevels(G_GNUC_UNUSED void *_)
421
+ {
422
+ GList* list = gtk_window_list_toplevels();
423
+ GList* p;
424
+ for (p = list; p; p = g_list_next(p))
425
+ rbgobj_gc_mark_instance(p->data);
426
+ g_list_free(list);
427
+ }
428
+
429
+ static VALUE
430
+ rg_s_default_icon_name(G_GNUC_UNUSED VALUE self)
431
+ {
432
+ return CSTR2RVAL(gtk_window_get_default_icon_name());
433
+ }
434
+
435
+ static VALUE
436
+ rg_activate_key(VALUE self, VALUE event)
437
+ {
438
+ return CBOOL2RVAL(gtk_window_activate_key(_SELF(self),
439
+ RVAL2GDKEVENTKEY(event)));
440
+ }
441
+
442
+ static VALUE
443
+ rg_default_widget(VALUE self)
444
+ {
445
+ return GOBJ2RVAL(gtk_window_get_default_widget(_SELF(self)));
446
+ }
447
+
448
+ static VALUE
449
+ rg_resize_grip_area(VALUE self)
450
+ {
451
+ GdkRectangle rect;
452
+ gboolean result;
453
+
454
+ result = gtk_window_get_resize_grip_area(_SELF(self), &rect);
455
+
456
+ return result ? GDKRECTANGLE2RVAL(&rect) : Qnil;
457
+ }
458
+
459
+ static VALUE
460
+ rg_has_group_p(VALUE self)
461
+ {
462
+ return CBOOL2RVAL(gtk_window_has_group(_SELF(self)));
463
+ }
464
+
465
+ static VALUE
466
+ rg_propagate_key_event(VALUE self, VALUE event)
467
+ {
468
+ return CBOOL2RVAL(gtk_window_propagate_key_event(_SELF(self),
469
+ RVAL2GDKEVENTKEY(event)));
470
+ }
471
+
472
+ static VALUE
473
+ rg_resize_to_geometry(VALUE self, VALUE width, VALUE height)
474
+ {
475
+ gtk_window_resize_to_geometry(_SELF(self), NUM2INT(width), NUM2INT(height));
476
+
477
+ return self;
478
+ }
479
+
480
+ static VALUE
481
+ rg_set_default_geometry(VALUE self, VALUE width, VALUE height)
482
+ {
483
+ gtk_window_set_default_geometry(_SELF(self), NUM2INT(width), NUM2INT(height));
484
+
485
+ return self;
486
+ }
487
+
488
+ static VALUE
489
+ rg_set_titlebar(VALUE self, VALUE titlebar)
490
+ {
491
+ gtk_window_set_titlebar(_SELF(self), RVAL2GTKWIDGET(titlebar));
492
+ return self;
493
+ }
494
+
495
+ void
496
+ Init_gtk_window(VALUE mGtk)
497
+ {
498
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_WINDOW, "Window", mGtk);
499
+
500
+ RG_DEF_METHOD(initialize, -1);
501
+ RG_DEF_METHOD(set_wmclass, 2);
502
+ RG_DEF_METHOD(add_accel_group, 1);
503
+ RG_DEF_METHOD(remove_accel_group, 1);
504
+ G_REPLACE_ACTION(RG_TARGET_NAMESPACE, "activate_focus", gwin_activate_focus, 0);
505
+ G_REPLACE_ACTION(RG_TARGET_NAMESPACE, "activate_default", gwin_activate_default, 0);
506
+ RG_DEF_METHOD(set_default_size, 2);
507
+ RG_DEF_METHOD(set_geometry_hints, 3);
508
+ RG_DEF_SMETHOD(toplevels, 0);
509
+ RG_DEF_METHOD(add_mnemonic, 2);
510
+ RG_DEF_METHOD(remove_mnemonic, 2);
511
+ RG_DEF_METHOD(mnemonic_activate, 2);
512
+ RG_DEF_METHOD(focus, 0);
513
+ RG_DEF_METHOD(set_focus, 1);
514
+ RG_DEF_METHOD(set_default, 1);
515
+ RG_DEF_METHOD(present, -1);
516
+ RG_DEF_METHOD(iconify, 0);
517
+ RG_DEF_METHOD(deiconify, 0);
518
+ RG_DEF_METHOD(stick, 0);
519
+ RG_DEF_METHOD(unstick, 0);
520
+ RG_DEF_METHOD(maximize, 0);
521
+ RG_DEF_METHOD(unmaximize, 0);
522
+ RG_DEF_METHOD(fullscreen, 0);
523
+ RG_DEF_METHOD(unfullscreen, 0);
524
+ RG_DEF_METHOD(set_keep_above, 1);
525
+ RG_DEF_METHOD(set_keep_below, 1);
526
+ RG_DEF_METHOD(begin_resize_drag, 5);
527
+ RG_DEF_METHOD(begin_move_drag, 4);
528
+ RG_DEF_METHOD(set_mnemonic_modifier, 1);
529
+ RG_DEF_METHOD(default_size, 0);
530
+ RG_DEF_SMETHOD(default_icon_list, 0);
531
+ RG_DEF_METHOD(icon_list, 0);
532
+ RG_DEF_METHOD(mnemonic_modifier, 0);
533
+ RG_DEF_METHOD(position, 0);
534
+ RG_DEF_METHOD(size, 0);
535
+ RG_DEF_METHOD(group, 0);
536
+ RG_DEF_METHOD(move, 2);
537
+ RG_DEF_METHOD(parse_geometry, 1);
538
+ RG_DEF_METHOD(reshow_with_initial_size, 0);
539
+ RG_DEF_METHOD(resize, 2);
540
+ RG_DEF_SMETHOD(set_default_icon_list, 1);
541
+ RG_DEF_SMETHOD(set_default_icon, 1);
542
+ RG_DEF_SMETHOD(set_default_icon_name, 1);
543
+ G_REPLACE_SET_PROPERTY(RG_TARGET_NAMESPACE, "icon", gwin_set_icon, 1);
544
+ RG_DEF_METHOD(set_icon_list, 1);
545
+ RG_DEF_SMETHOD(set_auto_startup_notification, 1);
546
+ RG_DEF_SMETHOD(default_icon_name, 0);
547
+ RG_DEF_METHOD(activate_key, 1);
548
+ RG_DEF_METHOD(default_widget, 0);
549
+ RG_DEF_METHOD(resize_grip_area, 0);
550
+ RG_DEF_METHOD_P(has_group, 0);
551
+ RG_DEF_METHOD(propagate_key_event, 1);
552
+ RG_DEF_METHOD(resize_to_geometry, 2);
553
+ RG_DEF_METHOD(set_default_geometry, 2);
554
+ RG_DEF_METHOD(set_titlebar, 1);
555
+
556
+ G_DEF_CLASS(GTK_TYPE_WINDOW_POSITION, "Position", RG_TARGET_NAMESPACE);
557
+ G_DEF_CLASS(GTK_TYPE_WINDOW_TYPE, "Type", RG_TARGET_NAMESPACE);
558
+
559
+ {
560
+ static VALUE toplevels_marker;
561
+ toplevels_marker =
562
+ rb_data_object_alloc(rb_cData, NULL, mark_toplevels, NULL);
563
+ rb_global_variable(&toplevels_marker);
564
+ }
565
+ }