gtk3 0.0.1 → 1.2.0

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 (425) hide show
  1. data/Rakefile +32 -0
  2. data/ext/gtk3/conversions.c +34 -0
  3. data/ext/gtk3/depend +11 -0
  4. data/ext/gtk3/extconf.rb +108 -0
  5. data/ext/gtk3/gtk3.def +10 -0
  6. data/ext/gtk3/init.c +38 -0
  7. data/ext/gtk3/rbgdkdisplay.c +39 -0
  8. data/ext/gtk3/rbgdkdragcontext.c +108 -0
  9. data/ext/gtk3/rbgdkevent.c +38 -0
  10. data/ext/gtk3/rbgdkscreen.c +61 -0
  11. data/ext/gtk3/rbgtk.c +625 -0
  12. data/ext/gtk3/rbgtk3.h +57 -0
  13. data/ext/gtk3/rbgtk3conversions.h +347 -0
  14. data/ext/gtk3/rbgtk3private.h +282 -0
  15. data/ext/gtk3/rbgtk3util.c +67 -0
  16. data/ext/gtk3/rbgtk3util.h +32 -0
  17. data/ext/gtk3/rbgtkaboutdialog.c +117 -0
  18. data/ext/gtk3/rbgtkaccelerator.c +78 -0
  19. data/ext/gtk3/rbgtkaccelgroup.c +199 -0
  20. data/ext/gtk3/rbgtkaccelgroupentry.c +93 -0
  21. data/ext/gtk3/rbgtkaccelkey.c +119 -0
  22. data/ext/gtk3/rbgtkaccellabel.c +55 -0
  23. data/ext/gtk3/rbgtkaccelmap.c +135 -0
  24. data/ext/gtk3/rbgtkaccessible.c +56 -0
  25. data/ext/gtk3/rbgtkaction.c +205 -0
  26. data/ext/gtk3/rbgtkactiongroup.c +466 -0
  27. data/ext/gtk3/rbgtkactivatable.c +30 -0
  28. data/ext/gtk3/rbgtkadjustment.c +98 -0
  29. data/ext/gtk3/rbgtkalignment.c +75 -0
  30. data/ext/gtk3/rbgtkallocation.c +166 -0
  31. data/ext/gtk3/rbgtkappchooser.c +47 -0
  32. data/ext/gtk3/rbgtkappchooserbutton.c +70 -0
  33. data/ext/gtk3/rbgtkappchooserdialog.c +68 -0
  34. data/ext/gtk3/rbgtkappchooserwidget.c +40 -0
  35. data/ext/gtk3/rbgtkapplication.c +69 -0
  36. data/ext/gtk3/rbgtkarrow.c +56 -0
  37. data/ext/gtk3/rbgtkaspectframe.c +56 -0
  38. data/ext/gtk3/rbgtkassistant.c +218 -0
  39. data/ext/gtk3/rbgtkbin.c +42 -0
  40. data/ext/gtk3/rbgtkbindingset.c +164 -0
  41. data/ext/gtk3/rbgtkborder.c +119 -0
  42. data/ext/gtk3/rbgtkbox.c +146 -0
  43. data/ext/gtk3/rbgtkbuildable.c +96 -0
  44. data/ext/gtk3/rbgtkbuilder.c +166 -0
  45. data/ext/gtk3/rbgtkbutton.c +93 -0
  46. data/ext/gtk3/rbgtkbuttonbox.c +87 -0
  47. data/ext/gtk3/rbgtkcalendar.c +118 -0
  48. data/ext/gtk3/rbgtkcelleditable.c +57 -0
  49. data/ext/gtk3/rbgtkcelllayout.c +144 -0
  50. data/ext/gtk3/rbgtkcellrenderer.c +116 -0
  51. data/ext/gtk3/rbgtkcellrendereraccel.c +41 -0
  52. data/ext/gtk3/rbgtkcellrenderercombo.c +38 -0
  53. data/ext/gtk3/rbgtkcellrendererpixbuf.c +41 -0
  54. data/ext/gtk3/rbgtkcellrendererprogress.c +38 -0
  55. data/ext/gtk3/rbgtkcellrendererspin.c +39 -0
  56. data/ext/gtk3/rbgtkcellrendererspinner.c +38 -0
  57. data/ext/gtk3/rbgtkcellrenderertext.c +48 -0
  58. data/ext/gtk3/rbgtkcellrenderertoggle.c +39 -0
  59. data/ext/gtk3/rbgtkcellview.c +109 -0
  60. data/ext/gtk3/rbgtkcheckbutton.c +64 -0
  61. data/ext/gtk3/rbgtkcheckmenuitem.c +64 -0
  62. data/ext/gtk3/rbgtkclipboard.c +389 -0
  63. data/ext/gtk3/rbgtkcolorbutton.c +49 -0
  64. data/ext/gtk3/rbgtkcolorselection.c +219 -0
  65. data/ext/gtk3/rbgtkcolorselectiondialog.c +56 -0
  66. data/ext/gtk3/rbgtkcombobox.c +147 -0
  67. data/ext/gtk3/rbgtkcomboboxtext.c +138 -0
  68. data/ext/gtk3/rbgtkconst.c +79 -0
  69. data/ext/gtk3/rbgtkcontainer.c +784 -0
  70. data/ext/gtk3/rbgtkcssprovider.c +110 -0
  71. data/ext/gtk3/rbgtkdialog.c +186 -0
  72. data/ext/gtk3/rbgtkdrag.c +93 -0
  73. data/ext/gtk3/rbgtkdrawingarea.c +42 -0
  74. data/ext/gtk3/rbgtkeditable.c +149 -0
  75. data/ext/gtk3/rbgtkentry.c +198 -0
  76. data/ext/gtk3/rbgtkentrybuffer.c +87 -0
  77. data/ext/gtk3/rbgtkentrycompletion.c +122 -0
  78. data/ext/gtk3/rbgtkeventbox.c +42 -0
  79. data/ext/gtk3/rbgtkexpander.c +49 -0
  80. data/ext/gtk3/rbgtkfilechooser.c +384 -0
  81. data/ext/gtk3/rbgtkfilechooserbutton.c +50 -0
  82. data/ext/gtk3/rbgtkfilechooserdialog.c +62 -0
  83. data/ext/gtk3/rbgtkfilechooserwidget.c +40 -0
  84. data/ext/gtk3/rbgtkfilefilter.c +128 -0
  85. data/ext/gtk3/rbgtkfilesystemerror.c +48 -0
  86. data/ext/gtk3/rbgtkfixed.c +61 -0
  87. data/ext/gtk3/rbgtkfontbutton.c +49 -0
  88. data/ext/gtk3/rbgtkfontchooser.c +78 -0
  89. data/ext/gtk3/rbgtkfontchooserdialog.c +56 -0
  90. data/ext/gtk3/rbgtkfontchooserwidget.c +45 -0
  91. data/ext/gtk3/rbgtkframe.c +69 -0
  92. data/ext/gtk3/rbgtkgrid.c +105 -0
  93. data/ext/gtk3/rbgtkhandlebox.c +45 -0
  94. data/ext/gtk3/rbgtkhsv.c +102 -0
  95. data/ext/gtk3/rbgtkiconfactory.c +85 -0
  96. data/ext/gtk3/rbgtkiconinfo.c +115 -0
  97. data/ext/gtk3/rbgtkiconset.c +84 -0
  98. data/ext/gtk3/rbgtkiconsize.c +91 -0
  99. data/ext/gtk3/rbgtkiconsource.c +184 -0
  100. data/ext/gtk3/rbgtkicontheme.c +268 -0
  101. data/ext/gtk3/rbgtkiconview.c +270 -0
  102. data/ext/gtk3/rbgtkimage.c +96 -0
  103. data/ext/gtk3/rbgtkimagemenuitem.c +67 -0
  104. data/ext/gtk3/rbgtkimcontext.c +133 -0
  105. data/ext/gtk3/rbgtkimcontextsimple.c +69 -0
  106. data/ext/gtk3/rbgtkimmulticontext.c +48 -0
  107. data/ext/gtk3/rbgtkinfobar.c +121 -0
  108. data/ext/gtk3/rbgtkinvisible.c +49 -0
  109. data/ext/gtk3/rbgtklabel.c +139 -0
  110. data/ext/gtk3/rbgtklayout.c +93 -0
  111. data/ext/gtk3/rbgtklinkbutton.c +55 -0
  112. data/ext/gtk3/rbgtkliststore.c +408 -0
  113. data/ext/gtk3/rbgtklockbutton.c +50 -0
  114. data/ext/gtk3/rbgtkmenu.c +168 -0
  115. data/ext/gtk3/rbgtkmenubar.c +43 -0
  116. data/ext/gtk3/rbgtkmenuitem.c +95 -0
  117. data/ext/gtk3/rbgtkmenushell.c +106 -0
  118. data/ext/gtk3/rbgtkmenutoolbutton.c +81 -0
  119. data/ext/gtk3/rbgtkmessagedialog.c +74 -0
  120. data/ext/gtk3/rbgtkmisc.c +70 -0
  121. data/ext/gtk3/rbgtknotebook.c +383 -0
  122. data/ext/gtk3/rbgtknumerableicon.c +50 -0
  123. data/ext/gtk3/rbgtkorientable.c +27 -0
  124. data/ext/gtk3/rbgtkoverlay.c +53 -0
  125. data/ext/gtk3/rbgtkpagesetup.c +195 -0
  126. data/ext/gtk3/rbgtkpagesetupunixdialog.c +94 -0
  127. data/ext/gtk3/rbgtkpaned.c +114 -0
  128. data/ext/gtk3/rbgtkpapersize.c +179 -0
  129. data/ext/gtk3/rbgtkplug.c +85 -0
  130. data/ext/gtk3/rbgtkprintcontext.c +125 -0
  131. data/ext/gtk3/rbgtkprinter.c +155 -0
  132. data/ext/gtk3/rbgtkprintjob.c +148 -0
  133. data/ext/gtk3/rbgtkprintoperation.c +149 -0
  134. data/ext/gtk3/rbgtkprintoperationpreview.c +59 -0
  135. data/ext/gtk3/rbgtkprintsettings.c +807 -0
  136. data/ext/gtk3/rbgtkprintunixdialog.c +90 -0
  137. data/ext/gtk3/rbgtkprogressbar.c +72 -0
  138. data/ext/gtk3/rbgtkradioaction.c +122 -0
  139. data/ext/gtk3/rbgtkradiobutton.c +89 -0
  140. data/ext/gtk3/rbgtkradiomenuitem.c +147 -0
  141. data/ext/gtk3/rbgtkradiotoolbutton.c +131 -0
  142. data/ext/gtk3/rbgtkrange.c +68 -0
  143. data/ext/gtk3/rbgtkrecentaction.c +64 -0
  144. data/ext/gtk3/rbgtkrecentchooser.c +198 -0
  145. data/ext/gtk3/rbgtkrecentchooserdialog.c +66 -0
  146. data/ext/gtk3/rbgtkrecentchoosermenu.c +50 -0
  147. data/ext/gtk3/rbgtkrecentchooserwidget.c +48 -0
  148. data/ext/gtk3/rbgtkrecentdata.c +187 -0
  149. data/ext/gtk3/rbgtkrecentfilter.c +169 -0
  150. data/ext/gtk3/rbgtkrecentfilterinfo.c +200 -0
  151. data/ext/gtk3/rbgtkrecentinfo.c +213 -0
  152. data/ext/gtk3/rbgtkrecentmanager.c +134 -0
  153. data/ext/gtk3/rbgtkscale.c +97 -0
  154. data/ext/gtk3/rbgtkscalebutton.c +84 -0
  155. data/ext/gtk3/rbgtkscrollable.c +31 -0
  156. data/ext/gtk3/rbgtkscrollbar.c +52 -0
  157. data/ext/gtk3/rbgtkscrolledwindow.c +122 -0
  158. data/ext/gtk3/rbgtkselection.c +168 -0
  159. data/ext/gtk3/rbgtkselectiondata.c +282 -0
  160. data/ext/gtk3/rbgtkseparator.c +44 -0
  161. data/ext/gtk3/rbgtkseparatormenuitem.c +39 -0
  162. data/ext/gtk3/rbgtkseparatortoolitem.c +38 -0
  163. data/ext/gtk3/rbgtksettings.c +229 -0
  164. data/ext/gtk3/rbgtksizegroup.c +66 -0
  165. data/ext/gtk3/rbgtksocket.c +82 -0
  166. data/ext/gtk3/rbgtkspinbutton.c +132 -0
  167. data/ext/gtk3/rbgtkspinner.c +55 -0
  168. data/ext/gtk3/rbgtkstatusbar.c +77 -0
  169. data/ext/gtk3/rbgtkstatusicon.c +122 -0
  170. data/ext/gtk3/rbgtkstock.c +213 -0
  171. data/ext/gtk3/rbgtkstylecontext.c +411 -0
  172. data/ext/gtk3/rbgtkstyleproperties.c +119 -0
  173. data/ext/gtk3/rbgtkstyleprovider.c +68 -0
  174. data/ext/gtk3/rbgtkswitch.c +40 -0
  175. data/ext/gtk3/rbgtktable.c +190 -0
  176. data/ext/gtk3/rbgtktargetlist.c +125 -0
  177. data/ext/gtk3/rbgtktearoffmenuitem.c +41 -0
  178. data/ext/gtk3/rbgtktextappearance.c +236 -0
  179. data/ext/gtk3/rbgtktextattributes.c +326 -0
  180. data/ext/gtk3/rbgtktextbuffer.c +899 -0
  181. data/ext/gtk3/rbgtktextchildanchor.c +56 -0
  182. data/ext/gtk3/rbgtktextiter.c +732 -0
  183. data/ext/gtk3/rbgtktextmark.c +71 -0
  184. data/ext/gtk3/rbgtktexttag.c +68 -0
  185. data/ext/gtk3/rbgtktexttagtable.c +96 -0
  186. data/ext/gtk3/rbgtktextview.c +336 -0
  187. data/ext/gtk3/rbgtkthemingengine.c +257 -0
  188. data/ext/gtk3/rbgtktoggleaction.c +61 -0
  189. data/ext/gtk3/rbgtktogglebutton.c +87 -0
  190. data/ext/gtk3/rbgtktoggletoolbutton.c +61 -0
  191. data/ext/gtk3/rbgtktoolbar.c +118 -0
  192. data/ext/gtk3/rbgtktoolbutton.c +66 -0
  193. data/ext/gtk3/rbgtktoolitem.c +200 -0
  194. data/ext/gtk3/rbgtktoolitemgroup.c +70 -0
  195. data/ext/gtk3/rbgtktoolshell.c +96 -0
  196. data/ext/gtk3/rbgtktooltip.c +100 -0
  197. data/ext/gtk3/rbgtktreedragdest.c +28 -0
  198. data/ext/gtk3/rbgtktreedragsource.c +28 -0
  199. data/ext/gtk3/rbgtktreeiter.c +258 -0
  200. data/ext/gtk3/rbgtktreemodel.c +236 -0
  201. data/ext/gtk3/rbgtktreemodelfilter.c +197 -0
  202. data/ext/gtk3/rbgtktreemodelsort.c +111 -0
  203. data/ext/gtk3/rbgtktreepath.c +191 -0
  204. data/ext/gtk3/rbgtktreerowreference.c +140 -0
  205. data/ext/gtk3/rbgtktreeselection.c +205 -0
  206. data/ext/gtk3/rbgtktreesortable.c +122 -0
  207. data/ext/gtk3/rbgtktreestore.c +330 -0
  208. data/ext/gtk3/rbgtktreeview.c +715 -0
  209. data/ext/gtk3/rbgtktreeviewcolumn.c +256 -0
  210. data/ext/gtk3/rbgtkuimanager.c +189 -0
  211. data/ext/gtk3/rbgtkviewport.c +44 -0
  212. data/ext/gtk3/rbgtkvolumebutton.c +41 -0
  213. data/ext/gtk3/rbgtkwidget.c +1564 -0
  214. data/ext/gtk3/rbgtkwidgetpath.c +229 -0
  215. data/ext/gtk3/rbgtkwindow.c +557 -0
  216. data/ext/gtk3/rbgtkwindowgroup.c +80 -0
  217. data/extconf.rb +49 -0
  218. data/lib/gtk3.rb +10 -0
  219. data/lib/gtk3/base.rb +67 -0
  220. data/lib/gtk3/deprecated.rb +1001 -0
  221. data/sample/gtk-demo/README +7 -0
  222. data/sample/gtk-demo/alphatest.png +0 -0
  223. data/sample/gtk-demo/apple-red.png +0 -0
  224. data/sample/gtk-demo/appwindow.rb +233 -0
  225. data/sample/gtk-demo/background.jpg +0 -0
  226. data/sample/gtk-demo/builder.rb +51 -0
  227. data/sample/gtk-demo/button_box.rb +84 -0
  228. data/sample/gtk-demo/cairo-arc-negative.rb +41 -0
  229. data/sample/gtk-demo/cairo-arc.rb +41 -0
  230. data/sample/gtk-demo/cairo-clip-image.rb +51 -0
  231. data/sample/gtk-demo/cairo-clip-rectangle.rb +35 -0
  232. data/sample/gtk-demo/cairo-clip.rb +35 -0
  233. data/sample/gtk-demo/cairo-curve-rectangle.rb +76 -0
  234. data/sample/gtk-demo/cairo-curve-to.rb +43 -0
  235. data/sample/gtk-demo/cairo-dash.rb +39 -0
  236. data/sample/gtk-demo/cairo-fill-and-stroke.rb +32 -0
  237. data/sample/gtk-demo/cairo-fill-and-stroke2.rb +38 -0
  238. data/sample/gtk-demo/cairo-gradient.rb +35 -0
  239. data/sample/gtk-demo/cairo-image-pattern.rb +39 -0
  240. data/sample/gtk-demo/cairo-image.rb +49 -0
  241. data/sample/gtk-demo/cairo-line-cap.rb +53 -0
  242. data/sample/gtk-demo/cairo-line-join.rb +41 -0
  243. data/sample/gtk-demo/cairo-long-lines.rb +41 -0
  244. data/sample/gtk-demo/cairo-operator.rb +83 -0
  245. data/sample/gtk-demo/cairo-path.rb +28 -0
  246. data/sample/gtk-demo/cairo-pattern-fill.rb +88 -0
  247. data/sample/gtk-demo/cairo-self-intersect.rb +32 -0
  248. data/sample/gtk-demo/cairo-text-align-center.rb +45 -0
  249. data/sample/gtk-demo/cairo-text-extents.rb +46 -0
  250. data/sample/gtk-demo/cairo-text.rb +43 -0
  251. data/sample/gtk-demo/changedisplay.rb +408 -0
  252. data/sample/gtk-demo/clipboard.rb +72 -0
  253. data/sample/gtk-demo/colorsel.rb +84 -0
  254. data/sample/gtk-demo/common.rb +88 -0
  255. data/sample/gtk-demo/demo.ui +258 -0
  256. data/sample/gtk-demo/dialog.rb +137 -0
  257. data/sample/gtk-demo/drawingarea.rb +226 -0
  258. data/sample/gtk-demo/editable_cells.rb +172 -0
  259. data/sample/gtk-demo/entry_completion.rb +63 -0
  260. data/sample/gtk-demo/expander.rb +40 -0
  261. data/sample/gtk-demo/floppybuddy.gif +0 -0
  262. data/sample/gtk-demo/gnome-applets.png +0 -0
  263. data/sample/gtk-demo/gnome-calendar.png +0 -0
  264. data/sample/gtk-demo/gnome-foot.png +0 -0
  265. data/sample/gtk-demo/gnome-fs-directory.png +0 -0
  266. data/sample/gtk-demo/gnome-fs-regular.png +0 -0
  267. data/sample/gtk-demo/gnome-gimp.png +0 -0
  268. data/sample/gtk-demo/gnome-gmush.png +0 -0
  269. data/sample/gtk-demo/gnome-gsame.png +0 -0
  270. data/sample/gtk-demo/gnu-keys.png +0 -0
  271. data/sample/gtk-demo/gtk-logo-rgb.gif +0 -0
  272. data/sample/gtk-demo/hypertext.rb +211 -0
  273. data/sample/gtk-demo/iconview.rb +109 -0
  274. data/sample/gtk-demo/images.rb +197 -0
  275. data/sample/gtk-demo/item_factory.rb +94 -0
  276. data/sample/gtk-demo/list_store.rb +138 -0
  277. data/sample/gtk-demo/main.rb +382 -0
  278. data/sample/gtk-demo/menus.rb +172 -0
  279. data/sample/gtk-demo/panes.rb +156 -0
  280. data/sample/gtk-demo/pixbufs.rb +176 -0
  281. data/sample/gtk-demo/printing.rb +128 -0
  282. data/sample/gtk-demo/rotated_text.rb +84 -0
  283. data/sample/gtk-demo/ruby-gnome2-logo.png +0 -0
  284. data/sample/gtk-demo/sizegroup.rb +118 -0
  285. data/sample/gtk-demo/stock_browser.rb +235 -0
  286. data/sample/gtk-demo/textview.rb +436 -0
  287. data/sample/gtk-demo/tree_store.rb +270 -0
  288. data/sample/misc/aboutdialog.rb +42 -0
  289. data/sample/misc/aboutdialog2.rb +42 -0
  290. data/sample/misc/alpha-demo.rb +70 -0
  291. data/sample/misc/assistant.rb +347 -0
  292. data/sample/misc/bindings.rb +107 -0
  293. data/sample/misc/button.rb +69 -0
  294. data/sample/misc/button2.rb +28 -0
  295. data/sample/misc/buttonbox.rb +93 -0
  296. data/sample/misc/cairo-pong.rb +215 -0
  297. data/sample/misc/calendar.rb +66 -0
  298. data/sample/misc/checkbutton.rb +46 -0
  299. data/sample/misc/colorselection.rb +25 -0
  300. data/sample/misc/combo_check.rb +71 -0
  301. data/sample/misc/combobox.rb +86 -0
  302. data/sample/misc/composited-windows.rb +113 -0
  303. data/sample/misc/cursor.rb +32 -0
  304. data/sample/misc/dialog.rb +44 -0
  305. data/sample/misc/dialog2.rb +39 -0
  306. data/sample/misc/dnd.rb +64 -0
  307. data/sample/misc/dndtreeview.rb +56 -0
  308. data/sample/misc/drag-move.rb +131 -0
  309. data/sample/misc/drawing.rb +90 -0
  310. data/sample/misc/entry.rb +34 -0
  311. data/sample/misc/entrycompletion.rb +33 -0
  312. data/sample/misc/expander.rb +27 -0
  313. data/sample/misc/filechooser.rb +41 -0
  314. data/sample/misc/frame.rb +69 -0
  315. data/sample/misc/gdkscreen.rb +32 -0
  316. data/sample/misc/gnome-logo-icon.png +0 -0
  317. data/sample/misc/helloworld.rb +35 -0
  318. data/sample/misc/iconview.rb +38 -0
  319. data/sample/misc/image.rb +42 -0
  320. data/sample/misc/itemfactory.rb +73 -0
  321. data/sample/misc/itemfactory2.rb +74 -0
  322. data/sample/misc/keyboard_grab.rb +29 -0
  323. data/sample/misc/label.rb +33 -0
  324. data/sample/misc/linkbutton.rb +42 -0
  325. data/sample/misc/listview.rb +92 -0
  326. data/sample/misc/menu.rb +81 -0
  327. data/sample/misc/misc_button.rb +49 -0
  328. data/sample/misc/mouse-gesture.rb +465 -0
  329. data/sample/misc/pangorenderer.rb +66 -0
  330. data/sample/misc/pointer_grab.rb +34 -0
  331. data/sample/misc/print.rb +247 -0
  332. data/sample/misc/properties.rb +85 -0
  333. data/sample/misc/radiobutton.rb +47 -0
  334. data/sample/misc/recentchooserdialog.rb +52 -0
  335. data/sample/misc/rgtk+cairo.rb +42 -0
  336. data/sample/misc/scalebutton.rb +19 -0
  337. data/sample/misc/settings.rb +41 -0
  338. data/sample/misc/statusicon.rb +123 -0
  339. data/sample/misc/stock.rb +36 -0
  340. data/sample/misc/style_property.rb +67 -0
  341. data/sample/misc/style_property.rc +19 -0
  342. data/sample/misc/t-gtkplug.rb +58 -0
  343. data/sample/misc/t-gtksocket.rb +65 -0
  344. data/sample/misc/test.xpm +92 -0
  345. data/sample/misc/textbuffer_serialize.rb +130 -0
  346. data/sample/misc/threads.rb +72 -0
  347. data/sample/misc/to_drawable.rb +42 -0
  348. data/sample/misc/togglebutton.rb +34 -0
  349. data/sample/misc/toolbar.rb +55 -0
  350. data/sample/misc/tooltips.rb +204 -0
  351. data/sample/misc/tree_combo.rb +79 -0
  352. data/sample/misc/tree_progress.rb +63 -0
  353. data/sample/misc/treemodelfilter.rb +49 -0
  354. data/sample/misc/treeview.rb +71 -0
  355. data/sample/misc/uimanager.rb +148 -0
  356. data/sample/misc/uimanager2.rb +91 -0
  357. data/sample/misc/uimanager2.xml +36 -0
  358. data/sample/misc/window.rb +24 -0
  359. data/sample/misc/xbm_cursor.rb +43 -0
  360. data/sample/testgtk/3DRings.xpm +116 -0
  361. data/sample/testgtk/FilesQueue.xpm +98 -0
  362. data/sample/testgtk/Modeller.xpm +117 -0
  363. data/sample/testgtk/README +14 -0
  364. data/sample/testgtk/button.rb +124 -0
  365. data/sample/testgtk/buttonbox.rb +100 -0
  366. data/sample/testgtk/check-n.xpm +21 -0
  367. data/sample/testgtk/check-y.xpm +21 -0
  368. data/sample/testgtk/checkbutton.rb +67 -0
  369. data/sample/testgtk/circles.xbm +46 -0
  370. data/sample/testgtk/colorselect.rb +33 -0
  371. data/sample/testgtk/dialog.rb +48 -0
  372. data/sample/testgtk/entry.rb +73 -0
  373. data/sample/testgtk/filesel.rb +65 -0
  374. data/sample/testgtk/fontselection.rb +56 -0
  375. data/sample/testgtk/labels.rb +74 -0
  376. data/sample/testgtk/layout.rb +108 -0
  377. data/sample/testgtk/marble.xpm +408 -0
  378. data/sample/testgtk/menu.rb +79 -0
  379. data/sample/testgtk/notebook.rb +280 -0
  380. data/sample/testgtk/pixmap.rb +58 -0
  381. data/sample/testgtk/progressbar.rb +173 -0
  382. data/sample/testgtk/radiobutton.rb +61 -0
  383. data/sample/testgtk/range.rb +65 -0
  384. data/sample/testgtk/reparent.rb +91 -0
  385. data/sample/testgtk/sample.rb +80 -0
  386. data/sample/testgtk/savedposition.rb +87 -0
  387. data/sample/testgtk/scrolledwindow.rb +67 -0
  388. data/sample/testgtk/shapedwindow.rb +99 -0
  389. data/sample/testgtk/spinbutton.rb +181 -0
  390. data/sample/testgtk/statusbar.rb +89 -0
  391. data/sample/testgtk/test.xpm +92 -0
  392. data/sample/testgtk/testgtk.rb +176 -0
  393. data/sample/testgtk/testgtkrc +146 -0
  394. data/sample/testgtk/testgtkrc2 +21 -0
  395. data/sample/testgtk/togglebutton.rb +53 -0
  396. data/sample/testgtk/toolbar.rb +82 -0
  397. data/sample/testgtk/tooltips.rb +41 -0
  398. data/sample/testgtk/wmhints.rb +40 -0
  399. data/test/gtk-test-utils.rb +15 -0
  400. data/test/run-test.rb +32 -0
  401. data/test/test_gc.rb +25 -0
  402. data/test/test_gdk.rb +18 -0
  403. data/test/test_gdk_color.rb +10 -0
  404. data/test/test_gdk_display.rb +37 -0
  405. data/test/test_gdk_event.rb +11 -0
  406. data/test/test_gdk_gc.rb +7 -0
  407. data/test/test_gdk_keymap.rb +8 -0
  408. data/test/test_gdk_pango.rb +9 -0
  409. data/test/test_gdk_selection_data.rb +17 -0
  410. data/test/test_gdk_window.rb +29 -0
  411. data/test/test_gdk_window_attribute.rb +9 -0
  412. data/test/test_gtk_about_dialog.rb +14 -0
  413. data/test/test_gtk_buildable.rb +66 -0
  414. data/test/test_gtk_builder.rb +188 -0
  415. data/test/test_gtk_entry.rb +18 -0
  416. data/test/test_gtk_icon_theme.rb +30 -0
  417. data/test/test_gtk_image.rb +8 -0
  418. data/test/test_gtk_list_store.rb +65 -0
  419. data/test/test_gtk_menu_item.rb +13 -0
  420. data/test/test_gtk_rc_style.rb +14 -0
  421. data/test/test_gtk_tree_path.rb +20 -0
  422. data/test/test_gtk_unix_print.rb +14 -0
  423. data/test/test_gtk_widget.rb +32 -0
  424. metadata +553 -94
  425. data/LICENSE +0 -19
@@ -0,0 +1,96 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2008 Ruby-GNOME2 Project Team
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
+ * MA 02110-1301 USA
20
+ */
21
+
22
+ #include "rbgtk3private.h"
23
+
24
+ #define RG_TARGET_NAMESPACE cBuildable
25
+ #define _SELF(self) (RVAL2GTKBUILDABLE(self))
26
+
27
+ static VALUE
28
+ rg_builder_name(VALUE self)
29
+ {
30
+ return CSTR2RVAL(gtk_buildable_get_name(_SELF(self)));
31
+ }
32
+
33
+ static VALUE
34
+ rg_set_builder_name(VALUE self, VALUE name)
35
+ {
36
+ gtk_buildable_set_name(_SELF(self), RVAL2CSTR(name));
37
+ return self;
38
+ }
39
+
40
+ static VALUE
41
+ rg_add_child(int argc, VALUE *argv, VALUE self)
42
+ {
43
+ VALUE builder, child, type;
44
+
45
+ rb_scan_args(argc, argv, "21", &builder, &child, &type);
46
+ gtk_buildable_add_child(_SELF(self), RVAL2GTKBUILDER(builder), RVAL2GOBJ(child),
47
+ RVAL2CSTR_ACCEPT_NIL(type));
48
+ return self;
49
+ }
50
+
51
+ static VALUE
52
+ rg_set_buildable_property(VALUE self, VALUE rb_builder,
53
+ VALUE rb_name, VALUE rb_value)
54
+ {
55
+ GtkBuilder *builder;
56
+ const gchar *name;
57
+ GValue value = G_VALUE_INIT;
58
+
59
+ builder = RVAL2GTKBUILDER(rb_builder);
60
+ name = RVAL2CSTR(rb_name);
61
+ rbgobj_initialize_gvalue(&value, rb_value);
62
+ gtk_buildable_set_buildable_property(_SELF(self), builder, name, &value);
63
+
64
+ return self;
65
+ }
66
+
67
+ static VALUE
68
+ rg_construct_child(VALUE self, VALUE builder, VALUE name)
69
+ {
70
+ return GOBJ2RVAL(gtk_buildable_construct_child(_SELF(self),
71
+ RVAL2GTKBUILDER(builder),
72
+ RVAL2CSTR(name)));
73
+ }
74
+
75
+ static VALUE
76
+ rg_get_internal_child(VALUE self, VALUE builder, VALUE child_name)
77
+ {
78
+ return GOBJ2RVAL(gtk_buildable_get_internal_child(_SELF(self),
79
+ RVAL2GTKBUILDER(builder),
80
+ RVAL2CSTR(child_name)));
81
+ }
82
+
83
+ void
84
+ Init_gtk_buildable(VALUE mGtk)
85
+ {
86
+ VALUE RG_TARGET_NAMESPACE;
87
+
88
+ RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_BUILDABLE, "Buildable", mGtk);
89
+
90
+ RG_DEF_METHOD(builder_name, 0);
91
+ RG_DEF_METHOD(set_builder_name, 1);
92
+ RG_DEF_METHOD(add_child, -1);
93
+ RG_DEF_METHOD(set_buildable_property, 3);
94
+ RG_DEF_METHOD(construct_child, 2);
95
+ RG_DEF_METHOD(get_internal_child, 2);
96
+ }
@@ -0,0 +1,166 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2008 Ruby-GNOME2 Project Team
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with this library; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
+ * MA 02110-1301 USA
20
+ */
21
+
22
+ #include "rbgtk3private.h"
23
+ #include <glib-enum-types.h> /* From Ruby/GLib2 */
24
+
25
+ #define RG_TARGET_NAMESPACE cBuilder
26
+ #define _SELF(self) (RVAL2GTKBUILDER(self))
27
+
28
+ static ID id___connect_signals__;
29
+
30
+ static void
31
+ builder_mark(gpointer object)
32
+ {
33
+ GtkBuilder *builder = object;
34
+ GSList *objects;
35
+
36
+ objects = gtk_builder_get_objects(builder);
37
+ g_slist_foreach(objects, (GFunc)rbgobj_gc_mark_instance, NULL);
38
+ g_slist_free(objects);
39
+ }
40
+
41
+ static VALUE
42
+ rg_initialize(VALUE self)
43
+ {
44
+ GtkBuilder *builder;
45
+
46
+ builder = gtk_builder_new();
47
+ G_INITIALIZE(self, builder);
48
+
49
+ return Qnil;
50
+ }
51
+
52
+ static VALUE
53
+ rg_add_from_file(VALUE self, VALUE filename)
54
+ {
55
+ GError *error = NULL;
56
+
57
+ if (gtk_builder_add_from_file(_SELF(self),
58
+ RVAL2CSTR(filename),
59
+ &error) == 0)
60
+ RAISE_GERROR(error);
61
+
62
+ return self;
63
+ }
64
+
65
+ static VALUE
66
+ rg_add_from_string(VALUE self, VALUE string)
67
+ {
68
+ GError *error = NULL;
69
+
70
+ StringValue(string);
71
+ if (gtk_builder_add_from_string(_SELF(self),
72
+ RSTRING_PTR(string),
73
+ RSTRING_LEN(string),
74
+ &error) == 0)
75
+ RAISE_GERROR(error);
76
+
77
+ return self;
78
+ }
79
+
80
+ static VALUE
81
+ rg_add(VALUE self, VALUE filename_or_xml)
82
+ {
83
+ const char xml_detect_re_str[] = "(?:\\A<|[\\r\\n])";
84
+ VALUE xml_detect_re;
85
+
86
+ xml_detect_re = rb_reg_new(xml_detect_re_str, strlen(xml_detect_re_str), 0);
87
+ if (NIL_P(rb_reg_match(xml_detect_re, filename_or_xml)))
88
+ return rg_add_from_file(self, filename_or_xml);
89
+ else
90
+ return rg_add_from_string(self, filename_or_xml);
91
+ }
92
+
93
+ static VALUE
94
+ rg_get_object(VALUE self, VALUE name)
95
+ {
96
+ return GOBJ2RVAL(gtk_builder_get_object(_SELF(self), RVAL2CSTR(name)));
97
+ }
98
+
99
+ static VALUE
100
+ rg_objects(VALUE self)
101
+ {
102
+ return GOBJGSLIST2RVAL_FREE(gtk_builder_get_objects(_SELF(self)),
103
+ g_slist_free, NULL);
104
+ }
105
+
106
+ static void
107
+ connect_signals(GtkBuilder *builder, GObject *object, const gchar *signal_name,
108
+ const gchar *handler_name, GObject *connect_object,
109
+ GConnectFlags flags, gpointer user_data)
110
+ {
111
+ VALUE signal_connector = (VALUE)user_data;
112
+
113
+ rb_funcall(GOBJ2RVAL(builder), id___connect_signals__, 6,
114
+ signal_connector, GOBJ2RVAL(object), CSTR2RVAL(signal_name),
115
+ CSTR2RVAL(handler_name), GOBJ2RVAL(connect_object),
116
+ GCONNECTFLAGS2RVAL(flags));
117
+ }
118
+
119
+ static VALUE
120
+ rg_connect_signals(VALUE self)
121
+ {
122
+ VALUE signal_connector;
123
+
124
+ signal_connector = rb_block_proc();
125
+ G_CHILD_ADD(self, signal_connector);
126
+ gtk_builder_connect_signals_full(_SELF(self), connect_signals,
127
+ (gpointer)signal_connector);
128
+ G_CHILD_REMOVE(self, signal_connector);
129
+
130
+ return self;
131
+ }
132
+
133
+ static VALUE
134
+ rg_get_type(VALUE self, VALUE name)
135
+ {
136
+ return GTYPE2CLASS(gtk_builder_get_type_from_name(_SELF(self),
137
+ RVAL2CSTR(name)));
138
+ }
139
+
140
+ void
141
+ Init_gtk_builder(VALUE mGtk)
142
+ {
143
+ VALUE RG_TARGET_NAMESPACE;
144
+
145
+ id___connect_signals__ = rb_intern("__connect_signals__");
146
+
147
+ RG_TARGET_NAMESPACE = G_DEF_CLASS_WITH_GC_FUNC(GTK_TYPE_BUILDER, "Builder", mGtk,
148
+ builder_mark, NULL);
149
+
150
+ G_DEF_CLASS(GTK_TYPE_BUILDER_ERROR, "BuilderError", mGtk);
151
+
152
+ RG_DEF_METHOD(initialize, 0);
153
+
154
+ RG_DEF_METHOD(add_from_file, 1);
155
+ RG_DEF_METHOD(add_from_string, 1);
156
+ RG_DEF_METHOD(add, 1);
157
+ RG_DEF_ALIAS("<<", "add");
158
+
159
+ RG_DEF_METHOD(get_object, 1);
160
+ RG_DEF_ALIAS("[]", "get_object");
161
+ RG_DEF_METHOD(objects, 0);
162
+
163
+ RG_DEF_METHOD(connect_signals, 0);
164
+
165
+ RG_DEF_METHOD(get_type, 1);
166
+ }
@@ -0,0 +1,93 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002-2004 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 cButton
28
+ #define _SELF(self) (RVAL2GTKBUTTON(self))
29
+
30
+ static VALUE
31
+ rg_initialize(int argc, VALUE *argv, VALUE self)
32
+ {
33
+ VALUE button;
34
+ GtkWidget *widget = NULL;
35
+
36
+ rb_scan_args(argc, argv, "01", &button);
37
+ if (NIL_P(button)) {
38
+ widget = gtk_button_new();
39
+ } else if (TYPE(button) == T_HASH) {
40
+ VALUE label, mnemonic, stock_id, buffer;
41
+ rbg_scan_options(button,
42
+ "label", &label,
43
+ "mnemonic", &mnemonic,
44
+ "stock_id", &stock_id,
45
+ NULL);
46
+
47
+ if (!NIL_P(label))
48
+ widget = gtk_button_new_with_label(RVAL2CSTR(label));
49
+ else if (!NIL_P(mnemonic))
50
+ widget = gtk_button_new_with_mnemonic(RVAL2CSTR(mnemonic));
51
+ else if (!NIL_P(stock_id))
52
+ widget = gtk_button_new_from_stock(RVAL2GLIBID(stock_id, buffer));
53
+ }
54
+ if (!widget)
55
+ rb_raise(rb_eArgError, "Invalid arguments.");
56
+
57
+ RBGTK_INITIALIZE(self, widget);
58
+
59
+ return Qnil;
60
+ }
61
+
62
+ static VALUE
63
+ rg_set_alignment(VALUE self, VALUE xalign, VALUE yalign)
64
+ {
65
+ gtk_button_set_alignment(_SELF(self), NUM2DBL(xalign), NUM2DBL(yalign));
66
+ return self;
67
+ }
68
+
69
+ static VALUE
70
+ rg_alignment(VALUE self)
71
+ {
72
+ gfloat xalign, yalign;
73
+ gtk_button_get_alignment(_SELF(self), &xalign, &yalign);
74
+
75
+ return rb_assoc_new(rb_float_new(xalign), rb_float_new(yalign));
76
+ }
77
+
78
+ static VALUE
79
+ rg_event_window(VALUE self)
80
+ {
81
+ return GOBJ2RVAL(gtk_button_get_event_window(_SELF(self)));
82
+ }
83
+
84
+ void
85
+ Init_gtk_button(VALUE mGtk)
86
+ {
87
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_BUTTON, "Button", mGtk);
88
+
89
+ RG_DEF_METHOD(initialize, -1);
90
+ RG_DEF_METHOD(set_alignment, 2);
91
+ RG_DEF_METHOD(alignment, 0);
92
+ RG_DEF_METHOD(event_window, 0);
93
+ }
@@ -0,0 +1,87 @@
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 cButtonBox
28
+ #define _SELF(self) (RVAL2GTKBUTTONBOX(self))
29
+
30
+ static VALUE
31
+ rg_initialize(VALUE self, VALUE orientation)
32
+ {
33
+ RBGTK_INITIALIZE(self, gtk_button_box_new(RVAL2GTKORIENTATION(orientation)));
34
+
35
+ return Qnil;
36
+ }
37
+
38
+ static VALUE
39
+ rg_set_child_secondary(VALUE self, VALUE child, VALUE is_secondary)
40
+ {
41
+ gtk_button_box_set_child_secondary(_SELF(self),
42
+ RVAL2GTKWIDGET(child),
43
+ RVAL2CBOOL(is_secondary));
44
+ return self;
45
+ }
46
+
47
+ static VALUE
48
+ rg_get_child_secondary(VALUE self, VALUE child)
49
+ {
50
+ return CBOOL2RVAL(gtk_button_box_get_child_secondary(_SELF(self),
51
+ RVAL2GTKWIDGET(child)));
52
+ }
53
+
54
+ #if GTK_CHECK_VERSION(3, 2, 0)
55
+ static VALUE
56
+ rg_get_child_non_homogeneous(VALUE self, VALUE child)
57
+ {
58
+ return CBOOL2RVAL(gtk_button_box_get_child_non_homogeneous(_SELF(self),
59
+ RVAL2GTKWIDGET(child)));
60
+ }
61
+
62
+ static VALUE
63
+ rg_set_child_non_homogeneous(VALUE self, VALUE child, VALUE non_homogeneous)
64
+ {
65
+ gtk_button_box_set_child_non_homogeneous(_SELF(self),
66
+ RVAL2GTKWIDGET(child),
67
+ RVAL2CBOOL(non_homogeneous));
68
+
69
+ return self;
70
+ }
71
+ #endif
72
+
73
+ void
74
+ Init_gtk_button_box(VALUE mGtk)
75
+ {
76
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_BUTTON_BOX, "ButtonBox", mGtk);
77
+
78
+ RG_DEF_METHOD(initialize, 1);
79
+ RG_DEF_METHOD(set_child_secondary, 2);
80
+ RG_DEF_METHOD(get_child_secondary, 1);
81
+ #if GTK_CHECK_VERSION(3, 2, 0)
82
+ RG_DEF_METHOD(get_child_non_homogeneous, 1);
83
+ RG_DEF_METHOD(set_child_non_homogeneous, 2);
84
+ #endif
85
+
86
+ G_DEF_CLASS(GTK_TYPE_BUTTON_BOX_STYLE, "Style", RG_TARGET_NAMESPACE);
87
+ }
@@ -0,0 +1,118 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (C) 2011 Ruby-GNOME2 Project Team
4
+ * Copyright (C) 2002-2004 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 cCalendar
28
+ #define _SELF(self) (RVAL2GTKCALENDAR(self))
29
+
30
+ static VALUE
31
+ rg_initialize(VALUE self)
32
+ {
33
+ RBGTK_INITIALIZE(self, gtk_calendar_new());
34
+ return Qnil;
35
+ }
36
+
37
+ static VALUE
38
+ rg_select_month(VALUE self, VALUE month, VALUE year)
39
+ {
40
+ gtk_calendar_select_month(_SELF(self),
41
+ NUM2INT(month)-1,
42
+ NUM2INT(year));
43
+ return self;
44
+ }
45
+
46
+ static VALUE
47
+ rg_select_day(VALUE self, VALUE day)
48
+ {
49
+ gtk_calendar_select_day(_SELF(self), NUM2INT(day));
50
+ return self;
51
+ }
52
+
53
+ static VALUE
54
+ rg_mark_day(VALUE self, VALUE day)
55
+ {
56
+ gtk_calendar_mark_day(_SELF(self), NUM2INT(day));
57
+ return self;
58
+ }
59
+
60
+ static VALUE
61
+ rg_unmark_day(VALUE self, VALUE day)
62
+ {
63
+ gtk_calendar_unmark_day(_SELF(self), NUM2INT(day));
64
+ return self;
65
+ }
66
+
67
+ static VALUE
68
+ rg_clear_marks(VALUE self)
69
+ {
70
+ gtk_calendar_clear_marks(_SELF(self));
71
+ return self;
72
+ }
73
+
74
+ static VALUE
75
+ rg_date(VALUE self)
76
+ {
77
+ VALUE ret;
78
+ guint year, month, day;
79
+
80
+ gtk_calendar_get_date(_SELF(self), &year, &month, &day);
81
+ ret = rb_ary_new();
82
+ rb_ary_push(ret, INT2FIX(year));
83
+ rb_ary_push(ret, INT2FIX(month+1));
84
+ rb_ary_push(ret, INT2FIX(day));
85
+ return ret;
86
+ }
87
+
88
+ static VALUE
89
+ rg_display_options(VALUE self)
90
+ {
91
+ return GTKCALENDARDISPLAYOPTIONS2RVAL(gtk_calendar_get_display_options(_SELF(self)));
92
+ }
93
+
94
+ static VALUE
95
+ rg_set_display_options(VALUE self, VALUE flags)
96
+ {
97
+ gtk_calendar_set_display_options(_SELF(self),
98
+ RVAL2GTKCALENDARDISPLAYOPTIONS(flags));
99
+ return self;
100
+ }
101
+
102
+ void
103
+ Init_gtk_calendar(VALUE mGtk)
104
+ {
105
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CALENDAR, "Calendar", mGtk);
106
+
107
+ RG_DEF_METHOD(initialize, 0);
108
+ RG_DEF_METHOD(select_month, 2);
109
+ RG_DEF_METHOD(select_day, 1);
110
+ RG_DEF_METHOD(mark_day, 1);
111
+ RG_DEF_METHOD(unmark_day, 1);
112
+ RG_DEF_METHOD(clear_marks, 0);
113
+ RG_DEF_METHOD(date, 0);
114
+ RG_DEF_METHOD(display_options, 0);
115
+ RG_DEF_METHOD(set_display_options, 1);
116
+
117
+ G_DEF_CLASS(GTK_TYPE_CALENDAR_DISPLAY_OPTIONS, "DisplayOptions", RG_TARGET_NAMESPACE);
118
+ }