gtk2 0.20.1 → 0.90.2

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 (443) hide show
  1. data/ChangeLog +30 -0
  2. data/Rakefile +60 -54
  3. data/ext/gtk2/Makefile +163 -0
  4. data/ext/gtk2/depend +10 -0
  5. data/ext/gtk2/extconf.rb +202 -0
  6. data/{src → ext/gtk2}/global.h +0 -0
  7. data/ext/gtk2/gtk2.def +27 -0
  8. data/{src → ext/gtk2}/init.c +0 -0
  9. data/{src → ext/gtk2}/rbgdk.c +0 -0
  10. data/{src → ext/gtk2}/rbgdk.h +0 -0
  11. data/{src → ext/gtk2}/rbgdkatom.c +0 -0
  12. data/{src → ext/gtk2}/rbgdkcairo.c +0 -0
  13. data/{src → ext/gtk2}/rbgdkcolor.c +0 -0
  14. data/{src → ext/gtk2}/rbgdkcolormap.c +0 -0
  15. data/{src → ext/gtk2}/rbgdkconst.c +0 -0
  16. data/{src → ext/gtk2}/rbgdkconversions.h +0 -0
  17. data/{src → ext/gtk2}/rbgdkcursor.c +0 -0
  18. data/{src → ext/gtk2}/rbgdkdevice.c +0 -0
  19. data/{src → ext/gtk2}/rbgdkdisplay.c +0 -0
  20. data/{src → ext/gtk2}/rbgdkdisplaymanager.c +0 -0
  21. data/{src → ext/gtk2}/rbgdkdragcontext.c +0 -0
  22. data/{src → ext/gtk2}/rbgdkdraw.c +0 -0
  23. data/{src → ext/gtk2}/rbgdkevent.c +0 -0
  24. data/{src → ext/gtk2}/rbgdkgc.c +0 -0
  25. data/{src → ext/gtk2}/rbgdkgeometry.c +0 -0
  26. data/{src → ext/gtk2}/rbgdkimage.c +0 -0
  27. data/{src → ext/gtk2}/rbgdkinput.c +0 -0
  28. data/{src → ext/gtk2}/rbgdkkeymap.c +0 -0
  29. data/{src → ext/gtk2}/rbgdkkeysyms.h +0 -466
  30. data/{src → ext/gtk2}/rbgdkkeyval.c +0 -0
  31. data/{src → ext/gtk2}/rbgdkpango.c +0 -0
  32. data/{src → ext/gtk2}/rbgdkpangorenderer.c +0 -0
  33. data/{src → ext/gtk2}/rbgdkpixbuf.c +0 -0
  34. data/{src → ext/gtk2}/rbgdkpixmap.c +0 -0
  35. data/{src → ext/gtk2}/rbgdkproperty.c +0 -0
  36. data/{src → ext/gtk2}/rbgdkrectangle.c +0 -0
  37. data/{src → ext/gtk2}/rbgdkregion.c +0 -0
  38. data/{src → ext/gtk2}/rbgdkrgb.c +0 -0
  39. data/{src → ext/gtk2}/rbgdkscreen.c +0 -0
  40. data/{src → ext/gtk2}/rbgdkselection.c +0 -0
  41. data/{src → ext/gtk2}/rbgdkthreads.c +0 -0
  42. data/{src → ext/gtk2}/rbgdktimecoord.c +0 -0
  43. data/{src → ext/gtk2}/rbgdkvisual.c +0 -0
  44. data/{src → ext/gtk2}/rbgdkwindow.c +0 -0
  45. data/{src → ext/gtk2}/rbgdkwindowattr.c +0 -0
  46. data/{src → ext/gtk2}/rbgdkx11.c +0 -0
  47. data/{src → ext/gtk2}/rbgtk.c +0 -0
  48. data/{src → ext/gtk2}/rbgtk.h +0 -4
  49. data/{src → ext/gtk2}/rbgtkaboutdialog.c +0 -0
  50. data/{src → ext/gtk2}/rbgtkaccelerator.c +0 -0
  51. data/{src → ext/gtk2}/rbgtkaccelgroup.c +0 -0
  52. data/{src → ext/gtk2}/rbgtkaccelgroupentry.c +0 -0
  53. data/{src → ext/gtk2}/rbgtkaccelkey.c +0 -0
  54. data/{src → ext/gtk2}/rbgtkaccellabel.c +0 -0
  55. data/{src → ext/gtk2}/rbgtkaccelmap.c +0 -0
  56. data/{src → ext/gtk2}/rbgtkaccessible.c +0 -0
  57. data/{src → ext/gtk2}/rbgtkaction.c +0 -0
  58. data/{src → ext/gtk2}/rbgtkactiongroup.c +0 -0
  59. data/{src → ext/gtk2}/rbgtkadjustment.c +0 -0
  60. data/{src → ext/gtk2}/rbgtkalignment.c +0 -0
  61. data/{src → ext/gtk2}/rbgtkallocation.c +0 -0
  62. data/{src → ext/gtk2}/rbgtkarrow.c +0 -0
  63. data/{src → ext/gtk2}/rbgtkaspectframe.c +0 -0
  64. data/{src → ext/gtk2}/rbgtkassistant.c +0 -0
  65. data/{src → ext/gtk2}/rbgtkbbox.c +0 -0
  66. data/{src → ext/gtk2}/rbgtkbin.c +0 -0
  67. data/{src → ext/gtk2}/rbgtkbindingset.c +0 -0
  68. data/{src → ext/gtk2}/rbgtkborder.c +0 -0
  69. data/{src → ext/gtk2}/rbgtkbox.c +0 -0
  70. data/{src → ext/gtk2}/rbgtkbuildable.c +0 -0
  71. data/{src → ext/gtk2}/rbgtkbuilder.c +0 -0
  72. data/{src → ext/gtk2}/rbgtkbutton.c +0 -0
  73. data/{src → ext/gtk2}/rbgtkcalendar.c +0 -0
  74. data/{src → ext/gtk2}/rbgtkcelleditable.c +0 -0
  75. data/{src → ext/gtk2}/rbgtkcelllayout.c +0 -0
  76. data/{src → ext/gtk2}/rbgtkcellrenderer.c +0 -0
  77. data/{src → ext/gtk2}/rbgtkcellrendereraccel.c +0 -0
  78. data/{src → ext/gtk2}/rbgtkcellrenderercombo.c +0 -0
  79. data/{src → ext/gtk2}/rbgtkcellrendererpixbuf.c +0 -0
  80. data/{src → ext/gtk2}/rbgtkcellrendererprogress.c +0 -0
  81. data/{src → ext/gtk2}/rbgtkcellrendererspin.c +0 -0
  82. data/{src → ext/gtk2}/rbgtkcellrenderertext.c +0 -0
  83. data/{src → ext/gtk2}/rbgtkcellrenderertoggle.c +0 -0
  84. data/{src → ext/gtk2}/rbgtkcellview.c +0 -0
  85. data/{src → ext/gtk2}/rbgtkcheckbutton.c +0 -0
  86. data/{src → ext/gtk2}/rbgtkcheckmenuitem.c +0 -0
  87. data/{src → ext/gtk2}/rbgtkclipboard.c +0 -0
  88. data/{src → ext/gtk2}/rbgtkcolorbutton.c +0 -0
  89. data/{src → ext/gtk2}/rbgtkcolorsel.c +0 -0
  90. data/{src → ext/gtk2}/rbgtkcolorselectiondialog.c +0 -0
  91. data/{src → ext/gtk2}/rbgtkcombo.c +0 -0
  92. data/{src → ext/gtk2}/rbgtkcombobox.c +0 -0
  93. data/{src → ext/gtk2}/rbgtkcomboboxentry.c +0 -0
  94. data/{src → ext/gtk2}/rbgtkconst.c +0 -0
  95. data/{src → ext/gtk2}/rbgtkcontainer.c +0 -0
  96. data/{src → ext/gtk2}/rbgtkconversions.h +0 -0
  97. data/{src → ext/gtk2}/rbgtkcurve.c +0 -0
  98. data/{src → ext/gtk2}/rbgtkdialog.c +0 -0
  99. data/{src → ext/gtk2}/rbgtkdrag.c +0 -0
  100. data/{src → ext/gtk2}/rbgtkdrawingarea.c +0 -0
  101. data/{src → ext/gtk2}/rbgtkeditable.c +0 -0
  102. data/{src → ext/gtk2}/rbgtkentry.c +0 -0
  103. data/{src → ext/gtk2}/rbgtkentrycompletion.c +0 -0
  104. data/{src → ext/gtk2}/rbgtkeventbox.c +0 -0
  105. data/{src → ext/gtk2}/rbgtkexpander.c +0 -0
  106. data/{src → ext/gtk2}/rbgtkfilechooser.c +0 -0
  107. data/{src → ext/gtk2}/rbgtkfilechooserbutton.c +0 -0
  108. data/{src → ext/gtk2}/rbgtkfilechooserdialog.c +0 -0
  109. data/{src → ext/gtk2}/rbgtkfilechooserwidget.c +0 -0
  110. data/{src → ext/gtk2}/rbgtkfilefilter.c +0 -0
  111. data/{src → ext/gtk2}/rbgtkfilesel.c +0 -0
  112. data/{src → ext/gtk2}/rbgtkfixed.c +0 -0
  113. data/{src → ext/gtk2}/rbgtkfontbutton.c +0 -0
  114. data/{src → ext/gtk2}/rbgtkfontselection.c +0 -0
  115. data/{src → ext/gtk2}/rbgtkfontselectiondialog.c +0 -0
  116. data/{src → ext/gtk2}/rbgtkframe.c +0 -0
  117. data/{src → ext/gtk2}/rbgtkgamma.c +0 -0
  118. data/{src → ext/gtk2}/rbgtkhandlebox.c +0 -0
  119. data/{src → ext/gtk2}/rbgtkhbbox.c +0 -0
  120. data/{src → ext/gtk2}/rbgtkhbox.c +0 -0
  121. data/{src → ext/gtk2}/rbgtkhpaned.c +0 -0
  122. data/{src → ext/gtk2}/rbgtkhruler.c +0 -0
  123. data/{src → ext/gtk2}/rbgtkhscale.c +0 -0
  124. data/{src → ext/gtk2}/rbgtkhscrollbar.c +0 -0
  125. data/{src → ext/gtk2}/rbgtkhseparator.c +0 -0
  126. data/{src → ext/gtk2}/rbgtkiconfactory.c +0 -0
  127. data/{src → ext/gtk2}/rbgtkiconinfo.c +0 -0
  128. data/{src → ext/gtk2}/rbgtkiconset.c +0 -0
  129. data/{src → ext/gtk2}/rbgtkiconsize.c +0 -0
  130. data/{src → ext/gtk2}/rbgtkiconsource.c +0 -0
  131. data/{src → ext/gtk2}/rbgtkicontheme.c +0 -0
  132. data/{src → ext/gtk2}/rbgtkiconview.c +0 -0
  133. data/{src → ext/gtk2}/rbgtkimage.c +0 -0
  134. data/{src → ext/gtk2}/rbgtkimagemenuitem.c +0 -0
  135. data/{src → ext/gtk2}/rbgtkimcontext.c +0 -0
  136. data/{src → ext/gtk2}/rbgtkimcontextsimple.c +0 -0
  137. data/{src → ext/gtk2}/rbgtkimmulticontext.c +0 -0
  138. data/{src → ext/gtk2}/rbgtkinits.c +2 -6
  139. data/{src → ext/gtk2}/rbgtkinputdialog.c +0 -0
  140. data/{src → ext/gtk2}/rbgtkinvisible.c +0 -0
  141. data/{src → ext/gtk2}/rbgtkitem.c +0 -0
  142. data/{src → ext/gtk2}/rbgtkitemfactory.c +0 -0
  143. data/{src → ext/gtk2}/rbgtklabel.c +0 -0
  144. data/{src → ext/gtk2}/rbgtklayout.c +0 -0
  145. data/{src → ext/gtk2}/rbgtklinkbutton.c +0 -0
  146. data/{src → ext/gtk2}/rbgtkliststore.c +0 -0
  147. data/{src → ext/gtk2}/rbgtkmacros.h +0 -0
  148. data/{src → ext/gtk2}/rbgtkmain.c +0 -0
  149. data/{src → ext/gtk2}/rbgtkmenu.c +0 -0
  150. data/{src → ext/gtk2}/rbgtkmenubar.c +0 -0
  151. data/{src → ext/gtk2}/rbgtkmenuitem.c +0 -0
  152. data/{src → ext/gtk2}/rbgtkmenushell.c +0 -0
  153. data/{src → ext/gtk2}/rbgtkmenutoolbutton.c +0 -0
  154. data/{src → ext/gtk2}/rbgtkmessagedialog.c +0 -0
  155. data/{src → ext/gtk2}/rbgtkmisc.c +0 -0
  156. data/{src → ext/gtk2}/rbgtknotebook.c +0 -0
  157. data/{src → ext/gtk2}/rbgtkobject.c +0 -0
  158. data/{src → ext/gtk2}/rbgtkoptionmenu.c +0 -0
  159. data/{src → ext/gtk2}/rbgtkpagesetup.c +0 -0
  160. data/{src → ext/gtk2}/rbgtkpagesetupunixdialog.c +0 -0
  161. data/{src → ext/gtk2}/rbgtkpaned.c +0 -0
  162. data/{src → ext/gtk2}/rbgtkpapersize.c +0 -0
  163. data/{src → ext/gtk2}/rbgtkplug.c +0 -0
  164. data/{src → ext/gtk2}/rbgtkprintcontext.c +0 -0
  165. data/{src → ext/gtk2}/rbgtkprinter.c +0 -0
  166. data/{src → ext/gtk2}/rbgtkprintjob.c +0 -0
  167. data/{src → ext/gtk2}/rbgtkprintoperation.c +0 -0
  168. data/{src → ext/gtk2}/rbgtkprintoperationpreview.c +0 -0
  169. data/{src → ext/gtk2}/rbgtkprintsettings.c +0 -0
  170. data/{src → ext/gtk2}/rbgtkprintunixdialog.c +0 -0
  171. data/{src → ext/gtk2}/rbgtkprogress.c +0 -0
  172. data/{src → ext/gtk2}/rbgtkprogressbar.c +0 -0
  173. data/{src → ext/gtk2}/rbgtkradioaction.c +0 -0
  174. data/{src → ext/gtk2}/rbgtkradiobutton.c +0 -0
  175. data/{src → ext/gtk2}/rbgtkradiomenuitem.c +0 -0
  176. data/{src → ext/gtk2}/rbgtkradiotoolbutton.c +0 -0
  177. data/{src → ext/gtk2}/rbgtkrange.c +0 -0
  178. data/{src → ext/gtk2}/rbgtkrc.c +0 -0
  179. data/{src → ext/gtk2}/rbgtkrcstyle.c +0 -0
  180. data/{src → ext/gtk2}/rbgtkrecentaction.c +0 -0
  181. data/{src → ext/gtk2}/rbgtkrecentchooser.c +0 -0
  182. data/{src → ext/gtk2}/rbgtkrecentchooserdialog.c +0 -0
  183. data/{src → ext/gtk2}/rbgtkrecentchoosermenu.c +0 -0
  184. data/{src → ext/gtk2}/rbgtkrecentchooserwidget.c +0 -0
  185. data/{src → ext/gtk2}/rbgtkrecentdata.c +0 -0
  186. data/{src → ext/gtk2}/rbgtkrecentfilter.c +0 -0
  187. data/{src → ext/gtk2}/rbgtkrecentfilterinfo.c +0 -0
  188. data/{src → ext/gtk2}/rbgtkrecentinfo.c +0 -0
  189. data/{src → ext/gtk2}/rbgtkrecentmanager.c +0 -0
  190. data/{src → ext/gtk2}/rbgtkruler.c +0 -0
  191. data/{src → ext/gtk2}/rbgtkscale.c +0 -0
  192. data/{src → ext/gtk2}/rbgtkscalebutton.c +0 -0
  193. data/{src → ext/gtk2}/rbgtkscrollbar.c +0 -0
  194. data/{src → ext/gtk2}/rbgtkscrolledwindow.c +0 -0
  195. data/{src → ext/gtk2}/rbgtkselection.c +0 -0
  196. data/{src → ext/gtk2}/rbgtkselectiondata.c +0 -0
  197. data/{src → ext/gtk2}/rbgtkseparator.c +0 -0
  198. data/{src → ext/gtk2}/rbgtkseparatormenuitem.c +0 -0
  199. data/{src → ext/gtk2}/rbgtkseparatortoolitem.c +0 -0
  200. data/{src → ext/gtk2}/rbgtksettings.c +0 -0
  201. data/{src → ext/gtk2}/rbgtksizegroup.c +0 -0
  202. data/{src → ext/gtk2}/rbgtksocket.c +0 -0
  203. data/{src → ext/gtk2}/rbgtkspinbutton.c +0 -0
  204. data/{src → ext/gtk2}/rbgtkstatusbar.c +0 -0
  205. data/{src → ext/gtk2}/rbgtkstatusicon.c +0 -0
  206. data/{src → ext/gtk2}/rbgtkstock.c +0 -0
  207. data/{src → ext/gtk2}/rbgtkstyle.c +0 -0
  208. data/{src → ext/gtk2}/rbgtktable.c +0 -0
  209. data/{src → ext/gtk2}/rbgtktargetlist.c +0 -0
  210. data/{src → ext/gtk2}/rbgtktearoffmenuitem.c +0 -0
  211. data/{src → ext/gtk2}/rbgtktextappearance.c +0 -0
  212. data/{src → ext/gtk2}/rbgtktextattributes.c +0 -0
  213. data/{src → ext/gtk2}/rbgtktextbuffer.c +0 -0
  214. data/{src → ext/gtk2}/rbgtktextchild.c +0 -0
  215. data/{src → ext/gtk2}/rbgtktextiter.c +0 -0
  216. data/{src → ext/gtk2}/rbgtktextmark.c +0 -0
  217. data/{src → ext/gtk2}/rbgtktexttag.c +0 -0
  218. data/{src → ext/gtk2}/rbgtktexttagtable.c +0 -0
  219. data/{src → ext/gtk2}/rbgtktextview.c +0 -0
  220. data/{src → ext/gtk2}/rbgtktoggleaction.c +0 -0
  221. data/{src → ext/gtk2}/rbgtktogglebutton.c +0 -0
  222. data/{src → ext/gtk2}/rbgtktoggletoolbutton.c +0 -0
  223. data/{src → ext/gtk2}/rbgtktoolbar.c +0 -0
  224. data/{src → ext/gtk2}/rbgtktoolbutton.c +0 -0
  225. data/{src → ext/gtk2}/rbgtktoolitem.c +0 -0
  226. data/{src → ext/gtk2}/rbgtktooltip.c +0 -0
  227. data/{src → ext/gtk2}/rbgtktooltips.c +0 -0
  228. data/{src → ext/gtk2}/rbgtktreedragdest.c +0 -0
  229. data/{src → ext/gtk2}/rbgtktreedragsource.c +0 -0
  230. data/{src → ext/gtk2}/rbgtktreeiter.c +0 -0
  231. data/{src → ext/gtk2}/rbgtktreemodel.c +0 -0
  232. data/{src → ext/gtk2}/rbgtktreemodelfilter.c +0 -0
  233. data/{src → ext/gtk2}/rbgtktreemodelsort.c +0 -0
  234. data/{src → ext/gtk2}/rbgtktreepath.c +0 -0
  235. data/{src → ext/gtk2}/rbgtktreerowreference.c +0 -0
  236. data/{src → ext/gtk2}/rbgtktreeselection.c +0 -0
  237. data/{src → ext/gtk2}/rbgtktreesortable.c +0 -0
  238. data/{src → ext/gtk2}/rbgtktreestore.c +0 -0
  239. data/{src → ext/gtk2}/rbgtktreeview.c +0 -0
  240. data/{src → ext/gtk2}/rbgtktreeviewcolumn.c +0 -0
  241. data/{src → ext/gtk2}/rbgtkuimanager.c +0 -0
  242. data/{src → ext/gtk2}/rbgtkvbbox.c +0 -0
  243. data/{src → ext/gtk2}/rbgtkvbox.c +0 -0
  244. data/{src → ext/gtk2}/rbgtkviewport.c +0 -0
  245. data/{src → ext/gtk2}/rbgtkvolumebutton.c +0 -0
  246. data/{src → ext/gtk2}/rbgtkvpaned.c +0 -0
  247. data/{src → ext/gtk2}/rbgtkvruler.c +0 -0
  248. data/{src → ext/gtk2}/rbgtkvscale.c +0 -0
  249. data/{src → ext/gtk2}/rbgtkvscrollbar.c +0 -0
  250. data/{src → ext/gtk2}/rbgtkvseparator.c +0 -0
  251. data/{src → ext/gtk2}/rbgtkwidget.c +0 -0
  252. data/{src → ext/gtk2}/rbgtkwindow.c +0 -0
  253. data/{src → ext/gtk2}/rbgtkwindowgroup.c +0 -0
  254. data/extconf.rb +48 -113
  255. data/{src/lib → lib}/gtk2.rb +0 -0
  256. data/{src/lib → lib}/gtk2/base.rb +12 -1
  257. data/sample/gtk-demo/README +7 -0
  258. data/sample/gtk-demo/alphatest.png +0 -0
  259. data/sample/gtk-demo/apple-red.png +0 -0
  260. data/sample/gtk-demo/appwindow.rb +233 -0
  261. data/sample/gtk-demo/background.jpg +0 -0
  262. data/sample/gtk-demo/builder.rb +51 -0
  263. data/sample/gtk-demo/button_box.rb +84 -0
  264. data/sample/gtk-demo/cairo-arc-negative.rb +41 -0
  265. data/sample/gtk-demo/cairo-arc.rb +41 -0
  266. data/sample/gtk-demo/cairo-clip-image.rb +51 -0
  267. data/sample/gtk-demo/cairo-clip-rectangle.rb +35 -0
  268. data/sample/gtk-demo/cairo-clip.rb +35 -0
  269. data/sample/gtk-demo/cairo-curve-rectangle.rb +76 -0
  270. data/sample/gtk-demo/cairo-curve-to.rb +43 -0
  271. data/sample/gtk-demo/cairo-dash.rb +39 -0
  272. data/sample/gtk-demo/cairo-fill-and-stroke.rb +32 -0
  273. data/sample/gtk-demo/cairo-fill-and-stroke2.rb +38 -0
  274. data/sample/gtk-demo/cairo-gradient.rb +35 -0
  275. data/sample/gtk-demo/cairo-image-pattern.rb +39 -0
  276. data/sample/gtk-demo/cairo-image.rb +49 -0
  277. data/sample/gtk-demo/cairo-line-cap.rb +53 -0
  278. data/sample/gtk-demo/cairo-line-join.rb +41 -0
  279. data/sample/gtk-demo/cairo-long-lines.rb +41 -0
  280. data/sample/gtk-demo/cairo-operator.rb +83 -0
  281. data/sample/gtk-demo/cairo-path.rb +28 -0
  282. data/sample/gtk-demo/cairo-pattern-fill.rb +88 -0
  283. data/sample/gtk-demo/cairo-self-intersect.rb +32 -0
  284. data/sample/gtk-demo/cairo-text-align-center.rb +45 -0
  285. data/sample/gtk-demo/cairo-text-extents.rb +46 -0
  286. data/sample/gtk-demo/cairo-text.rb +43 -0
  287. data/sample/gtk-demo/changedisplay.rb +408 -0
  288. data/sample/gtk-demo/clipboard.rb +72 -0
  289. data/sample/gtk-demo/colorsel.rb +84 -0
  290. data/sample/gtk-demo/common.rb +88 -0
  291. data/sample/gtk-demo/demo.ui +258 -0
  292. data/sample/gtk-demo/dialog.rb +137 -0
  293. data/sample/gtk-demo/drawingarea.rb +226 -0
  294. data/sample/gtk-demo/editable_cells.rb +172 -0
  295. data/sample/gtk-demo/entry_completion.rb +63 -0
  296. data/sample/gtk-demo/expander.rb +40 -0
  297. data/sample/gtk-demo/floppybuddy.gif +0 -0
  298. data/sample/gtk-demo/gnome-applets.png +0 -0
  299. data/sample/gtk-demo/gnome-calendar.png +0 -0
  300. data/sample/gtk-demo/gnome-foot.png +0 -0
  301. data/sample/gtk-demo/gnome-fs-directory.png +0 -0
  302. data/sample/gtk-demo/gnome-fs-regular.png +0 -0
  303. data/sample/gtk-demo/gnome-gimp.png +0 -0
  304. data/sample/gtk-demo/gnome-gmush.png +0 -0
  305. data/sample/gtk-demo/gnome-gsame.png +0 -0
  306. data/sample/gtk-demo/gnu-keys.png +0 -0
  307. data/sample/gtk-demo/gtk-logo-rgb.gif +0 -0
  308. data/sample/gtk-demo/hypertext.rb +211 -0
  309. data/sample/gtk-demo/iconview.rb +109 -0
  310. data/sample/gtk-demo/images.rb +197 -0
  311. data/sample/gtk-demo/item_factory.rb +94 -0
  312. data/sample/gtk-demo/list_store.rb +138 -0
  313. data/sample/gtk-demo/main.rb +380 -0
  314. data/sample/gtk-demo/menus.rb +172 -0
  315. data/sample/gtk-demo/panes.rb +156 -0
  316. data/sample/gtk-demo/pixbufs.rb +176 -0
  317. data/sample/gtk-demo/printing.rb +128 -0
  318. data/sample/gtk-demo/rotated_text.rb +84 -0
  319. data/sample/gtk-demo/ruby-gnome2-logo.png +0 -0
  320. data/sample/gtk-demo/sizegroup.rb +118 -0
  321. data/sample/gtk-demo/stock_browser.rb +235 -0
  322. data/sample/gtk-demo/textview.rb +435 -0
  323. data/sample/gtk-demo/tree_store.rb +270 -0
  324. data/sample/misc/aboutdialog.rb +42 -0
  325. data/sample/misc/aboutdialog2.rb +42 -0
  326. data/sample/misc/alpha-demo.rb +70 -0
  327. data/sample/misc/assistant.rb +347 -0
  328. data/sample/misc/bindings.rb +107 -0
  329. data/sample/misc/button.rb +69 -0
  330. data/sample/misc/button2.rb +28 -0
  331. data/sample/misc/buttonbox.rb +93 -0
  332. data/sample/misc/cairo-pong.rb +215 -0
  333. data/sample/misc/calendar.rb +62 -0
  334. data/sample/misc/checkbutton.rb +46 -0
  335. data/sample/misc/colorselection.rb +25 -0
  336. data/sample/misc/combo_check.rb +71 -0
  337. data/sample/misc/combobox.rb +86 -0
  338. data/sample/misc/composited-windows.rb +113 -0
  339. data/sample/misc/cursor.rb +32 -0
  340. data/sample/misc/dialog.rb +44 -0
  341. data/sample/misc/dialog2.rb +39 -0
  342. data/sample/misc/dnd.rb +65 -0
  343. data/sample/misc/dndtreeview.rb +56 -0
  344. data/sample/misc/drag-move.rb +131 -0
  345. data/sample/misc/drawing.rb +90 -0
  346. data/sample/misc/entry.rb +34 -0
  347. data/sample/misc/entrycompletion.rb +39 -0
  348. data/sample/misc/expander.rb +27 -0
  349. data/sample/misc/filechooser.rb +49 -0
  350. data/sample/misc/fileselection.rb +26 -0
  351. data/sample/misc/frame.rb +69 -0
  352. data/sample/misc/gc.rb +59 -0
  353. data/sample/misc/gdkscreen.rb +32 -0
  354. data/sample/misc/gnome-logo-icon.png +0 -0
  355. data/sample/misc/helloworld.rb +35 -0
  356. data/sample/misc/iconview.rb +38 -0
  357. data/sample/misc/image.rb +42 -0
  358. data/sample/misc/itemfactory.rb +73 -0
  359. data/sample/misc/itemfactory2.rb +74 -0
  360. data/sample/misc/keyboard_grab.rb +29 -0
  361. data/sample/misc/label.rb +33 -0
  362. data/sample/misc/linkbutton.rb +42 -0
  363. data/sample/misc/listview.rb +92 -0
  364. data/sample/misc/menu.rb +81 -0
  365. data/sample/misc/misc_button.rb +59 -0
  366. data/sample/misc/mouse-gesture.rb +465 -0
  367. data/sample/misc/pangorenderer.rb +66 -0
  368. data/sample/misc/pointer_grab.rb +34 -0
  369. data/sample/misc/print.rb +247 -0
  370. data/sample/misc/properties.rb +85 -0
  371. data/sample/misc/radiobutton.rb +47 -0
  372. data/sample/misc/recentchooserdialog.rb +59 -0
  373. data/sample/misc/rgtk+cairo.rb +44 -0
  374. data/sample/misc/scalebutton.rb +25 -0
  375. data/sample/misc/settings.rb +41 -0
  376. data/sample/misc/statusicon.rb +123 -0
  377. data/sample/misc/stock.rb +36 -0
  378. data/sample/misc/style_property.rb +67 -0
  379. data/sample/misc/style_property.rc +19 -0
  380. data/sample/misc/t-gtkplug.rb +58 -0
  381. data/sample/misc/t-gtksocket.rb +65 -0
  382. data/sample/misc/test.xpm +92 -0
  383. data/sample/misc/textbuffer_serialize.rb +130 -0
  384. data/sample/misc/threads.rb +72 -0
  385. data/sample/misc/to_drawable.rb +42 -0
  386. data/sample/misc/togglebutton.rb +34 -0
  387. data/sample/misc/toolbar.rb +55 -0
  388. data/sample/misc/tooltips.rb +204 -0
  389. data/sample/misc/tree_combo.rb +85 -0
  390. data/sample/misc/tree_progress.rb +69 -0
  391. data/sample/misc/treemodelfilter.rb +55 -0
  392. data/sample/misc/treeview.rb +71 -0
  393. data/sample/misc/uimanager.rb +148 -0
  394. data/sample/misc/uimanager2.rb +91 -0
  395. data/sample/misc/uimanager2.xml +36 -0
  396. data/sample/misc/window.rb +24 -0
  397. data/sample/misc/xbm_cursor.rb +43 -0
  398. data/sample/testgtk/3DRings.xpm +116 -0
  399. data/sample/testgtk/FilesQueue.xpm +98 -0
  400. data/sample/testgtk/Modeller.xpm +117 -0
  401. data/sample/testgtk/README +14 -0
  402. data/sample/testgtk/button.rb +133 -0
  403. data/sample/testgtk/buttonbox.rb +108 -0
  404. data/sample/testgtk/check-n.xpm +21 -0
  405. data/sample/testgtk/check-y.xpm +21 -0
  406. data/sample/testgtk/checkbutton.rb +67 -0
  407. data/sample/testgtk/circles.xbm +46 -0
  408. data/sample/testgtk/colorselect.rb +33 -0
  409. data/sample/testgtk/dialog.rb +47 -0
  410. data/sample/testgtk/entry.rb +73 -0
  411. data/sample/testgtk/filesel.rb +67 -0
  412. data/sample/testgtk/fontselection.rb +56 -0
  413. data/sample/testgtk/gammacurve.rb +70 -0
  414. data/sample/testgtk/labels.rb +73 -0
  415. data/sample/testgtk/layout.rb +108 -0
  416. data/sample/testgtk/marble.xpm +408 -0
  417. data/sample/testgtk/menu.rb +79 -0
  418. data/sample/testgtk/notebook.rb +281 -0
  419. data/sample/testgtk/pixmap.rb +58 -0
  420. data/sample/testgtk/progressbar.rb +181 -0
  421. data/sample/testgtk/radiobutton.rb +61 -0
  422. data/sample/testgtk/range.rb +65 -0
  423. data/sample/testgtk/reparent.rb +91 -0
  424. data/sample/testgtk/rulers.rb +46 -0
  425. data/sample/testgtk/sample.rb +80 -0
  426. data/sample/testgtk/savedposition.rb +87 -0
  427. data/sample/testgtk/scrolledwindow.rb +67 -0
  428. data/sample/testgtk/shapedwindow.rb +99 -0
  429. data/sample/testgtk/spinbutton.rb +181 -0
  430. data/sample/testgtk/statusbar.rb +89 -0
  431. data/sample/testgtk/test.xpm +92 -0
  432. data/sample/testgtk/testgtk.rb +179 -0
  433. data/sample/testgtk/testgtkrc +146 -0
  434. data/sample/testgtk/testgtkrc2 +21 -0
  435. data/sample/testgtk/togglebutton.rb +53 -0
  436. data/sample/testgtk/toolbar.rb +82 -0
  437. data/sample/testgtk/tooltips.rb +41 -0
  438. data/sample/testgtk/wmhints.rb +40 -0
  439. data/test/run-test.rb +10 -8
  440. data/test/test_gtk_builder.rb +1 -1
  441. metadata +495 -334
  442. data/src/makeinits.rb +0 -57
  443. data/src/makekeysyms.rb +0 -5
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env ruby
2
+ =begin
3
+ pangorenderer.rb - Ruby/GTK sample script.
4
+
5
+ Copyright (c) 2005,2006 Ruby-GNOME2 Project Team
6
+ This program is licenced under the same licence as Ruby-GNOME2.
7
+
8
+ $Id: pangorenderer.rb,v 1.5 2006/06/17 13:18:12 mutoh Exp $
9
+ =end
10
+
11
+ require 'gtk2'
12
+
13
+ RADIUS = 80
14
+ N_WORDS = 16
15
+
16
+ if str = Gtk.check_version(2, 6, 0)
17
+ puts "This sample requires GTK+ 2.6.0 or later"
18
+ puts str
19
+ exit
20
+ end
21
+
22
+ win = Gtk::Window.new("Gdk::PangoRenderer sample")
23
+ win.signal_connect("destroy"){Gtk.main_quit}
24
+ win.set_default_size(400, 400)
25
+ win.realize
26
+
27
+ matrix = Pango::Matrix.new
28
+
29
+ renderer = Gdk::PangoRenderer.default
30
+ renderer.drawable = win.window
31
+ renderer.gc = Gdk::GC.new(win.window)
32
+ width, height = win.size
33
+
34
+ device_radius = [width, height].min / 6.0
35
+
36
+ matrix.translate!(device_radius + (width - 2 * device_radius) / 2.0,
37
+ device_radius + (height - 2 * device_radius) / 2.0)
38
+ matrix.scale!(device_radius / RADIUS, device_radius / RADIUS)
39
+
40
+ context = Gdk::Pango.context
41
+ layout = Pango::Layout.new(context)
42
+ layout.text = "Ruby-GNOME2"
43
+ layout.font_description = Pango::FontDescription.new("Sans Bold 14")
44
+
45
+ background = Gdk::Color.new(65535, 65535, 65535)
46
+ Gdk::Colormap.system.alloc_color(background, false, true)
47
+ win.window.background = background
48
+
49
+ win.signal_connect("expose_event") do
50
+ (0...N_WORDS).each do |i|
51
+ rotated_matrix = matrix.dup
52
+ angle = 360 * i / N_WORDS.to_f
53
+ color = Gdk::Color.new(65535 * rand, 65535 * rand, 65535 * rand)
54
+ renderer.set_override_color(Pango::Renderer::PART_FOREGROUND, color)
55
+
56
+ rotated_matrix.rotate!(angle)
57
+ context.set_matrix(rotated_matrix)
58
+ layout.context_changed
59
+ width, height = layout.size
60
+ renderer.draw_layout(layout, width / 2, RADIUS * Pango::SCALE)
61
+ end
62
+ end
63
+
64
+ win.show_all
65
+
66
+ Gtk.main
@@ -0,0 +1,34 @@
1
+ =begin
2
+ pointer_grab.rb - Gdk::Window#pointer_grab/ungrab sample script.
3
+
4
+ Copyright (C) 2001-2006 Masao Mutoh<mutoh@highway.ne.jp>
5
+ This program is licenced under the same licence as Ruby-GNOME.
6
+
7
+ $Date: 2006/06/17 13:18:12 $
8
+ $Id: pointer_grab.rb,v 1.5 2006/06/17 13:18:12 mutoh Exp $
9
+ =end
10
+
11
+ require 'gtk2'
12
+
13
+ window = Gtk::Window.new("Pointer grab/ungrab sample")
14
+
15
+ cursor = Gdk::Cursor.new(Gdk::Cursor::WATCH)
16
+ button1 = Gtk::Button.new("Grab Window!")
17
+ button2 = Gtk::Button.new("Ungrab Window!")
18
+
19
+ button1.signal_connect('clicked') do
20
+ Gdk.pointer_grab(window.window, true, Gdk::Event::BUTTON_PRESS_MASK,
21
+ window.window, cursor, Gdk::Event::CURRENT_TIME)
22
+ p Gdk.pointer_is_grabbed?
23
+ end
24
+
25
+ button2.signal_connect('clicked') do
26
+ Gdk.pointer_ungrab(Gdk::Event::CURRENT_TIME)
27
+ p Gdk.pointer_is_grabbed?
28
+ end
29
+
30
+ window.add(Gtk::VBox.new.add(button1).add(button2))
31
+ window.set_default_size(200,100).show_all
32
+ window.signal_connect("destroy"){Gtk.main_quit}
33
+
34
+ Gtk.main
@@ -0,0 +1,247 @@
1
+ #!/usr/bin/env ruby
2
+ =begin
3
+ print.rb - Gtk::Print* sample
4
+
5
+ Copyright (C) 2007 Mathieu Blondel
6
+ This program is licenced under the same licence as Ruby-GNOME2.
7
+
8
+ $Id: print.rb,v 1.1 2007/08/05 15:41:31 mutoh Exp $
9
+ =end
10
+
11
+ require 'gtk2'
12
+
13
+ # Values returned by a Pango::Layout or set in a Pango::Layout
14
+ # are always multiple of Pango::SCALE. Those are convenience methods to
15
+ # deal with that.
16
+ class Pango::Layout
17
+ def size_in_points
18
+ self.size.collect { |v| v / Pango::SCALE }
19
+ end
20
+
21
+ def width_in_points
22
+ self.size[0] / Pango::SCALE
23
+ end
24
+
25
+ def height_in_points
26
+ self.size[1] / Pango::SCALE
27
+ end
28
+
29
+ def width_in_points=(width)
30
+ self.width = width * Pango::SCALE
31
+ end
32
+ end
33
+
34
+ class Print < Gtk::PrintOperation
35
+
36
+ FONT = Pango::FontDescription.new("sans 12")
37
+ FONT_SMALL = Pango::FontDescription.new("sans 8")
38
+
39
+ FONT_SIZE = 12
40
+ FONT_SMALL_SIZE = 8
41
+
42
+ def initialize (parent_window, text)
43
+ super()
44
+ @parent_window = parent_window
45
+ @text = text
46
+
47
+ # with this option disabled, the origin is the the upper left corner
48
+ # *taking into consideration margins* !
49
+ self.use_full_page = false
50
+ self.unit = Gtk::PaperSize::UNIT_POINTS
51
+
52
+ # set default paper size
53
+ page_setup = Gtk::PageSetup.new
54
+ paper_size = Gtk::PaperSize.new(Gtk::PaperSize.default)
55
+ page_setup.paper_size_and_default_margins = paper_size
56
+ self.default_page_setup = page_setup
57
+
58
+ # show a progress bar
59
+ self.show_progress = true
60
+
61
+ # You must choose between "paginate" and "begin-print".
62
+ # "begin-print" is emitted only once and "paginate" is emitted
63
+ # until the block returns true.
64
+ # In both cases, you must set the number of pages at the end with
65
+ # Gtk::PrintOperation#n_pages=
66
+ signal_connect("begin-print") do |pop, context|
67
+ puts "calls begin-print"
68
+ cr = context.cairo_context
69
+ paragraphs = @text.split("\n")
70
+ layouts = []
71
+ paragraphs.each do |para|
72
+ layouts << create_layout(cr, para)
73
+ end
74
+
75
+ # distribute paragraph layouts among pages
76
+ @page_layouts = []
77
+
78
+ curr_height = 0
79
+ n_pages = 0
80
+ layouts.each do |layout|
81
+ height = layout.height_in_points
82
+ if curr_height + height > real_page_height
83
+ n_pages += 1
84
+ curr_height = 0
85
+ end
86
+ @page_layouts[n_pages] ||= []
87
+ @page_layouts[n_pages] << layout
88
+ curr_height += height
89
+ end
90
+
91
+ pop.n_pages = n_pages + 1
92
+ end
93
+
94
+ signal_connect("draw-page") do |pop, context, page_num|
95
+ puts "calls draw-page %d" % page_num
96
+
97
+ cr = context.cairo_context
98
+
99
+ x, y = [0,0] # this means we start at the upper left margin
100
+
101
+ if @page_layouts[page_num]
102
+ @page_layouts[page_num].each do |layout|
103
+ cr.move_to(x,y)
104
+ cr.show_pango_layout(layout)
105
+ y += layout.height_in_points
106
+ end
107
+ total_pages = @page_layouts.length
108
+ else
109
+ total_pages = 1
110
+ end
111
+
112
+ # page_num starts at 0
113
+ draw_footer(cr, page_num + 1, total_pages)
114
+ end
115
+ end
116
+
117
+ def run_print_dialog
118
+ res = run(ACTION_PRINT_DIALOG, @parent_window)
119
+ case res
120
+ when RESULT_ERROR
121
+ puts "error"
122
+ when RESULT_CANCEL
123
+ puts "cancelled"
124
+ when RESULT_APPLY
125
+ puts "applied"
126
+ when RESULT_IN_PROGRESS
127
+ puts "in progress"
128
+ end
129
+ end
130
+
131
+ def run_preview
132
+ res = run(ACTION_PREVIEW, @parent_window)
133
+ end
134
+
135
+ private
136
+
137
+ def page_height
138
+ setup = self.default_page_setup
139
+ # this takes margins into consideration, contrary to get_paper_height
140
+ setup.get_page_height(Gtk::PaperSize::UNIT_POINTS)
141
+ end
142
+
143
+ def page_width
144
+ setup = self.default_page_setup
145
+ width = setup.get_page_width(Gtk::PaperSize::UNIT_POINTS)
146
+ end
147
+
148
+ def real_page_height
149
+ page_height - footer_height
150
+ end
151
+
152
+ def footer_height
153
+ 5 * FONT_SMALL_SIZE
154
+ end
155
+
156
+ def create_layout(cr, text)
157
+ layout = cr.create_pango_layout
158
+
159
+ layout.width_in_points = page_width
160
+ layout.font_description = FONT
161
+ layout.wrap = Pango::Layout::WRAP_CHAR
162
+ layout.ellipsize = Pango::Layout::ELLIPSIZE_NONE
163
+ layout.single_paragraph_mode = false
164
+
165
+ layout.text = text
166
+
167
+ layout
168
+ end
169
+
170
+ def draw_footer(cr, nth_page, total_page)
171
+ layout = cr.create_pango_layout
172
+ layout.alignment = Pango::Layout::ALIGN_RIGHT
173
+ layout.font_description = FONT_SMALL
174
+ layout.text = "Page %d/%d" % [nth_page, total_page] + "\n" + \
175
+ Time.now.strftime("Printed on %Y/%m/%d at %H:%M") + "\n" + \
176
+ "Powered by Ruby-GNOME2!"
177
+ width, height = layout.size_in_points
178
+ x, y = [page_width, page_height]
179
+ x -= width
180
+ y -= height
181
+ cr.move_to(x, y)
182
+ cr.show_pango_layout(layout)
183
+ cr.rel_move_to(width, -2)
184
+ cr.rel_line_to(-page_width, 0)
185
+ cr.stroke
186
+ end
187
+
188
+ end
189
+
190
+ class Window < Gtk::Window
191
+
192
+ def initialize
193
+ super
194
+
195
+ signal_connect("delete-event") { Gtk.main_quit }
196
+
197
+ set_default_size(600, 600)
198
+
199
+ @textview = Gtk::TextView.new
200
+ @textview.wrap_mode = Gtk::TextTag::WRAP_WORD
201
+
202
+ hbox = Gtk::HBox.new
203
+
204
+ page_setup_button = Gtk::Button.new
205
+ page_setup_button.label = "Page setup"
206
+ page_setup_button.signal_connect("clicked") do
207
+ @page_setup = Print::run_page_setup_dialog(self, # parent window
208
+ @page_setup)
209
+ end
210
+
211
+ print_preview_button = Gtk::Button.new(Gtk::Stock::PRINT_PREVIEW)
212
+ print_preview_button.signal_connect("clicked") do
213
+ printop = Print.new(self, @textview.buffer.text)
214
+ printop.default_page_setup = @page_setup if @page_setup
215
+ printop.run_preview
216
+ end
217
+
218
+ print_button = Gtk::Button.new(Gtk::Stock::PRINT)
219
+ print_button.signal_connect("clicked") do
220
+ printop = Print.new(self, @textview.buffer.text)
221
+ printop.default_page_setup = @page_setup if @page_setup
222
+ printop.run_print_dialog
223
+ end
224
+
225
+ [page_setup_button, print_preview_button, print_button].each do |b|
226
+ hbox.pack_start(b, true, true) # expand, fill
227
+ end
228
+
229
+ scrollbar = Gtk::VScrollbar.new
230
+
231
+ vbox = Gtk::VBox.new
232
+ scroll = Gtk::ScrolledWindow.new.add(@textview)
233
+ scroll.set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC)
234
+ vbox.pack_start(scroll)
235
+ vbox.pack_end(hbox, false, false)
236
+
237
+ add(vbox)
238
+
239
+ show_all
240
+
241
+ end
242
+
243
+ end
244
+
245
+ Window.new
246
+
247
+ Gtk.main
@@ -0,0 +1,85 @@
1
+ =begin
2
+ properties.rb -
3
+
4
+ GLib::Object#properties and Gtk::Container#child_properties sample script.
5
+
6
+ Copyright (C) 2004-2006 Masao Mutoh
7
+
8
+ This program is licenced under the same licence as Ruby-GNOME2.
9
+
10
+ $Id: properties.rb,v 1.3 2006/06/17 13:18:12 mutoh Exp $
11
+ =end
12
+
13
+ require 'gtk2'
14
+
15
+ class MyButton < Gtk::Button
16
+ type_register
17
+
18
+ def initialize(label = nil)
19
+ # XXX:
20
+ # When type_register() is used.
21
+ # super is equivalent to GLib::Object#initialize.
22
+ super("label" => label)
23
+ @fuga = 0
24
+ @hoge = 0
25
+ end
26
+
27
+ # define new property "fuga"
28
+ install_property(GLib::Param::Int.new("fuga", # name
29
+ "Fuga", # nick
30
+ "fuga fuga", # blurb
31
+ 0, # min
32
+ 10000, # max
33
+ 0, # default
34
+ GLib::Param::READABLE |
35
+ GLib::Param::WRITABLE))
36
+
37
+ # define new property "hoge"
38
+ install_child_property(GLib::Param::Int.new("hoge", # name
39
+ "Hoge", # nick
40
+ "hoge hoge", # blurb
41
+ 0, # min
42
+ 10000, # max
43
+ 0, # default
44
+ GLib::Param::READABLE |
45
+ GLib::Param::WRITABLE))
46
+
47
+ # implementation of the property "fuga"
48
+ def fuga
49
+ puts "MyButton#fuga is called"
50
+ @fuga
51
+ end
52
+ def fuga=(arg)
53
+ puts "MyButton#fuga= is called"
54
+ @fuga = arg
55
+ notify("fuga")
56
+ end
57
+
58
+ # implementation of the property "hoge"
59
+ def get_hoge(child)
60
+ puts "MyButton#get_hoge is called"
61
+ @hoge
62
+ end
63
+ def set_hoge(child, arg)
64
+ puts "MyButton#set_hoge is called"
65
+ @hoge = arg
66
+ end
67
+ end
68
+
69
+ b = MyButton.new("Hello")
70
+ p b
71
+ p b.label
72
+ p b.gtype
73
+
74
+ p MyButton.properties
75
+ p b.get_property("fuga")
76
+ b.set_property("fuga", 1)
77
+ p b.get_property("fuga")
78
+
79
+ p MyButton.child_properties
80
+ p child = b.child
81
+ p b.child_get_property(child, "hoge")
82
+ b.child_set_property(child, "hoge", 2)
83
+ p b.child_get_property(child, "hoge")
84
+
85
+ p MyButton.ancestors
@@ -0,0 +1,47 @@
1
+ #!/usr/bin/env ruby
2
+ =begin
3
+ radiobutton.rb - Ruby/GTK2 sample script.
4
+
5
+ Copyright (c) 2002-2006 Ruby-GNOME2 Project Team
6
+ This program is licenced under the same licence as Ruby-GNOME2.
7
+
8
+ $Id: radiobutton.rb,v 1.10 2006/06/17 13:18:12 mutoh Exp $
9
+ =end
10
+
11
+ require 'gtk2'
12
+
13
+ window = Gtk::Window.new("Gtk::RadioButton sample")
14
+ window.signal_connect("destroy"){Gtk.main_quit}
15
+
16
+ box1 = Gtk::VBox.new
17
+ window.add(box1)
18
+
19
+ box2 = Gtk::VBox.new(false, 10)
20
+ box2.border_width = 10
21
+ box1.add(box2)
22
+
23
+ button1 = Gtk::RadioButton.new("_button1")
24
+ button2 = Gtk::RadioButton.new(button1, "_button2", false)
25
+ button3 = Gtk::RadioButton.new(button1, Gtk::Stock::QUIT)
26
+
27
+ box2.add(button1).add(button2).add(button3)
28
+
29
+ box1.add(Gtk::HSeparator.new)
30
+
31
+ box2 = Gtk::VBox.new(false, 10)
32
+ box2.border_width = 10
33
+ box1.add(box2)
34
+
35
+ close = Gtk::Button.new("close")
36
+ close.signal_connect("clicked") do
37
+ Gtk.main_quit
38
+ end
39
+ box2.add(close)
40
+
41
+ close.can_default = true
42
+ close.grab_default
43
+
44
+ window.signal_connect("destroy"){Gtk.main_quit}
45
+ window.show_all
46
+
47
+ Gtk.main