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,79 @@
1
+ =begin header
2
+
3
+ menu.rb - a part of testgtk.c rewritten in Ruby/GTK2
4
+
5
+ Copyright (C) 2002-2005 Ruby-GNOME2 Project Team
6
+
7
+ $Id: menu.rb,v 1.6 2005/07/18 17:13:32 mutoh Exp $
8
+
9
+ =end
10
+
11
+ require 'sample'
12
+
13
+ class MenuSample < SampleWindow
14
+ def initialize
15
+ super("menus")
16
+ signal_connect("delete_event") do true end
17
+
18
+ box = Gtk::VBox.new(false, 10)
19
+ add(box)
20
+
21
+ menubar = Gtk::MenuBar.new
22
+ box.pack_start(menubar, false, true, 0)
23
+
24
+ menu = create_menu(2, true)
25
+
26
+ menuitem = Gtk::MenuItem.new("test\nline2")
27
+ menuitem.set_submenu(menu)
28
+ menubar.append(menuitem)
29
+
30
+ menuitem = Gtk::MenuItem.new("foo")
31
+ menuitem.set_submenu(create_menu(3, true))
32
+ menubar.append(menuitem)
33
+
34
+ menuitem = Gtk::MenuItem.new("bar")
35
+ menuitem.set_submenu(create_menu(4, true))
36
+ menuitem.right_justified = true
37
+ menubar.append(menuitem)
38
+
39
+ optionmenu = Gtk::OptionMenu.new
40
+ optionmenu.set_menu(create_menu(1, false))
41
+ optionmenu.history = 4
42
+ box.add(optionmenu)
43
+
44
+ box.add(Gtk::HSeparator.new)
45
+
46
+ button = Gtk::Button.new("close")
47
+ button.signal_connect("clicked"){destroy}
48
+
49
+ box.add(button)
50
+
51
+ button.set_flags(Gtk::Widget::CAN_DEFAULT)
52
+ button.grab_default
53
+ end
54
+ private
55
+ def create_menu(depth, tearoff)
56
+ return nil if depth < 1
57
+
58
+ menu = Gtk::Menu.new
59
+ group = nil
60
+
61
+ if tearoff then
62
+ menuitem = Gtk::TearoffMenuItem.new
63
+ menu.append(menuitem)
64
+ end
65
+
66
+ for i in 0..4
67
+ j = i + 1
68
+ buf = sprintf("item %2d - %d", depth, j)
69
+ menuitem = Gtk::RadioMenuItem.new(group, buf)
70
+ group = menuitem.group
71
+ menu.append(menuitem)
72
+ menuitem.set_sensitive(false) if i == 3
73
+ submenu = create_menu(depth - 1, true)
74
+ menuitem.set_submenu(submenu) unless submenu.nil?
75
+ end
76
+
77
+ menu
78
+ end
79
+ end
@@ -0,0 +1,281 @@
1
+ =begin header
2
+
3
+ notebook.rb - a part of testgtk.c rewritten in Ruby/GTK2
4
+
5
+ Copyright (C) 2002-2005 Ruby-GNOME2 Project Team
6
+
7
+ $Id: notebook.rb,v 1.11 2005/07/18 17:13:32 mutoh Exp $
8
+
9
+ Rewritten by TAKAHASHI Hitoshi <thitoshi@ne.scphys.kyoto-u.ac.jp>
10
+
11
+ Original Copyright:
12
+
13
+ GTK - The GIMP Toolkit
14
+ Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
15
+
16
+ This library is free software; you can redistribute it and/or
17
+ modify it under the terms of the GNU Library General Public
18
+ License as published by the Free Software Foundation; either
19
+ version 2 of the License, or (at your option) any later version.
20
+
21
+ This library is distributed in the hope that it will be useful,
22
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
23
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24
+ Library General Public License for more details.
25
+
26
+ You should have received a copy of the GNU Library General Public
27
+ License along with this library; if not, write to the
28
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
29
+ Boston, MA 02111-1307, USA.
30
+
31
+ =end
32
+
33
+ require 'sample'
34
+
35
+ $book_open_xpm = [
36
+ "16 16 4 1",
37
+ " c None s None",
38
+ ". c black",
39
+ "X c #808080",
40
+ "o c white",
41
+ " ",
42
+ " .. ",
43
+ " .Xo. ... ",
44
+ " .Xoo. ..oo. ",
45
+ " .Xooo.Xooo... ",
46
+ " .Xooo.oooo.X. ",
47
+ " .Xooo.Xooo.X. ",
48
+ " .Xooo.oooo.X. ",
49
+ " .Xooo.Xooo.X. ",
50
+ " .Xooo.oooo.X. ",
51
+ " .Xoo.Xoo..X. ",
52
+ " .Xo.o..ooX. ",
53
+ " .X..XXXXX. ",
54
+ " ..X....... ",
55
+ " .. ",
56
+ " "
57
+ ]
58
+
59
+ $book_closed_xpm = [
60
+ "16 16 6 1",
61
+ " c None s None",
62
+ ". c black",
63
+ "X c red",
64
+ "o c yellow",
65
+ "O c #808080",
66
+ "# c white",
67
+ " ",
68
+ " .. ",
69
+ " ..XX. ",
70
+ " ..XXXXX. ",
71
+ " ..XXXXXXXX. ",
72
+ ".ooXXXXXXXXX. ",
73
+ "..ooXXXXXXXXX. ",
74
+ ".X.ooXXXXXXXXX. ",
75
+ ".XX.ooXXXXXX.. ",
76
+ " .XX.ooXXX..#O ",
77
+ " .XX.oo..##OO. ",
78
+ " .XX..##OO.. ",
79
+ " .X.#OO.. ",
80
+ " ..O.. ",
81
+ " .. ",
82
+ " "
83
+ ]
84
+
85
+ class NotebookSample < SampleWindow
86
+ def initialize
87
+ super("notebook")
88
+
89
+ vbox = Gtk::VBox.new(false, 0)
90
+ add(vbox)
91
+
92
+ @notebook = Gtk::Notebook.new
93
+ @notebook.signal_connect("switch_page") do |widget, page, num_page|
94
+ unless destroyed?
95
+ page_switch(widget, page, num_page)
96
+ end
97
+ end
98
+ @notebook.tab_pos = Gtk::POS_TOP
99
+ vbox.add(@notebook)
100
+ @notebook.border_width = 10
101
+
102
+ @notebook.realize
103
+
104
+ @book_open, @book_open_mask =
105
+ Gdk::Pixmap::create_from_xpm_d(@notebook.window, nil, $book_open_xpm)
106
+ @book_closed, @book_closed_mask =
107
+ Gdk::Pixmap::create_from_xpm_d(@notebook.window, nil, $book_closed_xpm)
108
+
109
+ create_pages(1, 5)
110
+
111
+ vbox.add(Gtk::HSeparator.new)
112
+
113
+ cbutton1 = Gtk::CheckButton.new("popup menu")
114
+ vbox.add(cbutton1)
115
+ cbutton1.signal_connect("clicked"){
116
+ @notebook.enable_popup = cbutton1.active?
117
+ }
118
+
119
+ hbox = Gtk::HBox.new(false, 5)
120
+ hbox.border_width = 10
121
+ vbox.pack_start(hbox, false, false, 0)
122
+
123
+ label = Gtk::Label.new("Notebook Style :")
124
+ hbox.add(label)
125
+
126
+ omenu = build_option_menu([
127
+ OptionMenuItem.new("Standard", proc { standard_notebook }),
128
+ OptionMenuItem.new("No tabs", proc { notabs_notebook }),
129
+ OptionMenuItem.new("Scrollable", proc { scrollable_notebook }) ], 0)
130
+
131
+ hbox.add(omenu)
132
+
133
+ button = Gtk::Button.new("Show all Pages")
134
+
135
+ hbox.add(button)
136
+ button.signal_connect('clicked'){
137
+ @notebook.each do |w|
138
+ w.show
139
+ end
140
+ }
141
+
142
+ hbox = Gtk::HBox.new(true, 10)
143
+ hbox.set_border_width(10)
144
+ vbox.pack_start(hbox, false, true, 0)
145
+
146
+ button = Gtk::Button.new("prev")
147
+ button.signal_connect("clicked"){
148
+ @notebook.prev_page
149
+ }
150
+ hbox.pack_start(button, true, true, 0)
151
+
152
+ button = Gtk::Button.new("next")
153
+ button.signal_connect("clicked"){
154
+ @notebook.next_page
155
+ }
156
+ hbox.pack_start(button, true, true, 0)
157
+
158
+ button = Gtk::Button.new("rotate")
159
+ button.signal_connect("clicked"){
160
+ @notebook.tab_pos = (@notebook.tab_pos.to_i + 1) % 4
161
+ }
162
+ hbox.pack_start(button, true, true, 0)
163
+
164
+ vbox.add(Gtk::HSeparator.new)
165
+
166
+ button = Gtk::Button.new("close")
167
+ button.signal_connect("clicked"){destroy}
168
+
169
+ vbox.pack_start(button, false, false, 5)
170
+
171
+ button.can_default = true
172
+ button.grab_default
173
+ end
174
+
175
+ def standard_notebook
176
+ @notebook.set_show_tabs(true)
177
+ @notebook.set_scrollable(false)
178
+ if @notebook.children.size == 15
179
+ 10.times do
180
+ @notebook.remove_page(5)
181
+ end
182
+ end
183
+ end
184
+
185
+ def notabs_notebook
186
+ @notebook.set_show_tabs(false)
187
+ if @notebook.children.size == 15
188
+ 10.times do
189
+ @notebook.remove_page(5)
190
+ end
191
+ end
192
+ end
193
+
194
+ def scrollable_notebook
195
+ @notebook.set_show_tabs(true)
196
+ @notebook.set_scrollable(true)
197
+ if @notebook.children.size == 5
198
+ create_pages(6, 15)
199
+ end
200
+ end
201
+
202
+ def create_pages(start_page, end_page)
203
+ start_page.upto(end_page) do |i|
204
+ buffer = "Page #{i}"
205
+
206
+ child = Gtk::Frame.new(buffer)
207
+ child.border_width = 10
208
+
209
+ vbox = Gtk::VBox.new(true, 0)
210
+ vbox.border_width = 10
211
+ child.add(vbox)
212
+
213
+ hbox = Gtk::HBox.new(true, 0)
214
+ vbox.pack_start(hbox, false, true, 5)
215
+
216
+ button1 = Gtk::CheckButton.new("Fill Tab")
217
+ hbox.pack_start(button1, true, true, 5)
218
+ button1.active = true
219
+ button1.signal_connect('toggled'){
220
+ expand, fill, pack = @notebook.query_tab_label_packing(child)
221
+ @notebook.set_tab_label_packing(child, expand, button1.active?, pack)
222
+ }
223
+
224
+ button2 = Gtk::CheckButton.new("Expand Tab")
225
+ hbox.pack_start(button2, true, true, 5)
226
+ button2.signal_connect('toggled'){
227
+ expand, fill, pack = @notebook.query_tab_label_packing(child)
228
+ @notebook.set_tab_label_packing(child, button2.active?, fill, pack)
229
+ }
230
+
231
+ button3 = Gtk::CheckButton.new("Pack end")
232
+ hbox.pack_start(button3, true, true, 5)
233
+ button3.signal_connect('toggled'){
234
+ expand, fill, pack = @notebook.query_tab_label_packing(child)
235
+ @notebook.set_tab_label_packing(child, expand, fill,
236
+ if button3.active? then Gtk::PACK_END else Gtk::PACK_START end)
237
+ }
238
+
239
+ button = Gtk::Button.new("Hide Page")
240
+ vbox.pack_end(button, false, false, 5)
241
+ button.signal_connect('clicked'){
242
+ child.hide
243
+ }
244
+
245
+ child.show_all
246
+
247
+ label_box = Gtk::HBox.new(false, 0)
248
+ pixwid = Gtk::Image.new(@book_closed, @book_closed_mask)
249
+ label_box.pack_start(pixwid, false, true, 0)
250
+ pixwid.set_padding(3, 1)
251
+ label = Gtk::Label.new(buffer)
252
+ label_box.pack_start(label, false, true, 0)
253
+ label_box.show_all
254
+
255
+ menu_box = Gtk::HBox.new(false, 0)
256
+ pixwid = Gtk::Image.new(@book_closed, @book_closed_mask)
257
+ menu_box.pack_start(pixwid, false, true, 0)
258
+ pixwid.set_padding(3, 1)
259
+ label = Gtk::Label.new(buffer)
260
+ menu_box.pack_start(label, false, true, 0)
261
+ menu_box.show_all
262
+
263
+ @notebook.append_page_menu(child, label_box, menu_box)
264
+ end
265
+ end
266
+
267
+ def set_page_pixmaps(notebook, page_num, pix, mask)
268
+ child = notebook.get_nth_page(page_num)
269
+ label = notebook.get_tab_label(child).children[0].set(pix, mask)
270
+ end
271
+
272
+ def page_switch(notebook, page, page_num)
273
+ old_page_num = notebook.page
274
+ return if (page_num == old_page_num)
275
+ set_page_pixmaps(notebook, page_num, @book_open, @book_open_mask)
276
+ if (old_page_num != -1)
277
+ set_page_pixmaps(notebook, old_page_num, @book_closed, @book_closed_mask)
278
+ end
279
+ end
280
+ end
281
+
@@ -0,0 +1,58 @@
1
+ =begin header
2
+
3
+ pixmap.rb - a part of testgtk.c rewritten in Ruby/GTK2
4
+
5
+ Copyright (C) 2002-2005 Ruby-GNOME2 Project Team
6
+
7
+ Rewritten by Hiroshi IGARASHI <igarashi@ueda.info.waseda.ac.jp>
8
+ $Date: 2005/07/18 17:13:32 $
9
+ $Id: pixmap.rb,v 1.5 2005/07/18 17:13:32 mutoh Exp $
10
+
11
+ Original Copyright:
12
+
13
+ GTK - The GIMP Toolkit
14
+ Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
15
+
16
+ This library is free software; you can redistribute it and/or
17
+ modify it under the terms of the GNU Library General Public
18
+ License as published by the Free Software Foundation; either
19
+ version 2 of the License, or (at your option) any later version.
20
+
21
+ This library is distributed in the hope that it will be useful,
22
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
23
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24
+ Library General Public License for more details.
25
+
26
+ You should have received a copy of the GNU Library General Public
27
+ License along with this library; if not, write to the
28
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
29
+ Boston, MA 02111-1307, USA.
30
+
31
+ =end
32
+
33
+ require 'sample'
34
+
35
+ class PixmapSample < SampleWindow
36
+ def initialize
37
+ super("pixmap")
38
+
39
+ vbox = Gtk::VBox.new(false, 0)
40
+ add(vbox)
41
+
42
+ button = Gtk::Button.new
43
+ vbox.pack_start(button, false, false, 10)
44
+
45
+ label = Gtk::Label.new("Pixmap\ntest")
46
+ boxbutton = Gtk::HBox.new(false, 0)
47
+ boxbutton.border_width = 2
48
+ boxbutton.add(Gtk::Image.new("test.xpm"))
49
+ boxbutton.add(label)
50
+ button.add(boxbutton)
51
+
52
+ vbox.add(Gtk::HSeparator.new)
53
+
54
+ button = Gtk::Button.new("close")
55
+ button.signal_connect("clicked"){destroy}
56
+ vbox.pack_start(button, false, false, 10)
57
+ end
58
+ end
@@ -0,0 +1,181 @@
1
+ =begin header
2
+
3
+ progressbar.rb - a part of testgtk.c rewritten in Ruby/GTK2
4
+
5
+ Copyright (C) 2002-2005 Ruby-GNOME2 Project Team
6
+
7
+ $Id: progressbar.rb,v 1.9 2005/07/18 17:13:32 mutoh Exp $
8
+
9
+ Rewritten by Minoru Inachi <inachi@earth.interq.or.jp>
10
+
11
+ Original Copyright:
12
+
13
+ GTK - The GIMP Toolkit
14
+ Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
15
+
16
+ This library is free software; you can redistribute it and/or
17
+ modify it under the terms of the GNU Library General Public
18
+ License as published by the Free Software Foundation; either
19
+ version 2 of the License, or (at your option) any later version.
20
+
21
+ This library is distributed in the hope that it will be useful,
22
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
23
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24
+ Library General Public License for more details.
25
+
26
+ You should have received a copy of the GNU Library General Public
27
+ License along with this library; if not, write to the
28
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
29
+ Boston, MA 02111-1307, USA.
30
+
31
+ =end
32
+
33
+ require 'sample'
34
+
35
+ class ProgressBarSample < SampleDialog
36
+
37
+ def initialize
38
+ super("Gtk::ProgressBar")
39
+ set_border_width(10)
40
+
41
+ vbox1 = Gtk::VBox.new(false, 5)
42
+ vbox1.border_width = 10
43
+ vbox.add(vbox1)
44
+
45
+ frame = Gtk::Frame.new("Progress")
46
+ vbox1.add(frame)
47
+
48
+ vbox2 = Gtk::VBox.new(false, 5)
49
+ frame.add(vbox2)
50
+
51
+ align = Gtk::Alignment.new(0.5, 0.5, 0, 0)
52
+ vbox2.pack_start(align, FALSE, FALSE, 5)
53
+
54
+ @pbar = Gtk::ProgressBar.new
55
+ align.add(@pbar)
56
+ @timer = Gtk.timeout_add(100){progress_timeout}
57
+
58
+ align = Gtk::Alignment.new(0.5, 0.5, 0, 0)
59
+ vbox2.pack_start(align, false, false, 5);
60
+
61
+ hbox = Gtk::HBox.new(false, 5)
62
+ align.add(hbox)
63
+ label = Gtk::Label.new("Label updated by user :")
64
+ hbox.add(label)
65
+ @label = Gtk::Label.new("")
66
+ hbox.add(@label)
67
+
68
+ frame = Gtk::Frame.new("Options")
69
+ vbox1.add(frame)
70
+
71
+ vbox2 = Gtk::VBox.new(false, 5)
72
+ frame.add(vbox2)
73
+
74
+ tab = Gtk::Table.new(3, 2, false)
75
+ vbox2.add(tab)
76
+
77
+ label = Gtk::Label.new("Orientation :");
78
+ tab.attach(label, 0, 1, 0, 1,
79
+ Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL,
80
+ 5, 5)
81
+ label.set_alignment(0, 0.5)
82
+
83
+ @omenu1 = build_option_menu(
84
+ [ OptionMenuItem.new("Left-Right", proc { |w| toggle_orientation(w) }),
85
+ OptionMenuItem.new("Right-Left", proc { |w| toggle_orientation(w) }),
86
+ OptionMenuItem.new("Bottom-Top", proc { |w| toggle_orientation(w) }),
87
+ OptionMenuItem.new("Top-Bottom", proc { |w| toggle_orientation(w) })
88
+ ], 0)
89
+ hbox = Gtk::HBox.new(false, 0)
90
+ tab.attach(hbox, 1, 2, 0, 1,
91
+ Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL,
92
+ 5, 5);
93
+ hbox.add(@omenu1)
94
+
95
+ check = Gtk::CheckButton.new("Show text")
96
+ check.signal_connect("clicked") do |w| toggle_show_text(w) end
97
+ tab.attach(check, 0, 1, 1, 2,
98
+ Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL,
99
+ 5, 5)
100
+
101
+ hbox = Gtk::HBox.new(false, 0)
102
+ tab.attach(hbox, 1, 2, 1, 2,
103
+ Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL,
104
+ 5, 5)
105
+
106
+ label = Gtk::Label.new("Text align :")
107
+ tab.attach(label, 0, 1, 2, 3,
108
+ Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL,
109
+ 5, 5)
110
+ label.set_alignment(0, 0.5)
111
+
112
+ hbox = Gtk::HBox.new(false, 0)
113
+ tab.attach(hbox, 1, 2, 2, 3,
114
+ Gtk::EXPAND | Gtk::FILL, Gtk::EXPAND | Gtk::FILL,
115
+ 5, 5)
116
+
117
+ label = Gtk::Label.new("x :")
118
+ hbox.pack_start(label, false, true, 5)
119
+
120
+ adj = Gtk::Adjustment.new(0.5, 0, 1, 0.1, 0.1, 0)
121
+ @x_align_spin = Gtk::SpinButton.new(adj, 0, 1)
122
+ adj.signal_connect("value_changed"){adjust_align}
123
+ hbox.pack_start(@x_align_spin, false, true, 0)
124
+ @x_align_spin.sensitive = false
125
+
126
+ label = Gtk::Label.new("y :")
127
+ hbox.pack_start(label, false, true, 5)
128
+
129
+ adj = Gtk::Adjustment.new(0.5, 0, 1, 0.1, 0.1, 0)
130
+ @y_align_spin = Gtk::SpinButton.new(adj, 0, 1)
131
+ adj.signal_connect("value_changed"){adjust_align}
132
+ hbox.pack_start(@y_align_spin, false, true, 0)
133
+ @y_align_spin.sensitive = false
134
+
135
+ button = Gtk::Button.new("close")
136
+ button.signal_connect("clicked"){
137
+ Gtk::timeout_remove(@timer)
138
+ destroy
139
+ }
140
+ button.can_default = true
141
+ self.action_area.add(button)
142
+ button.grab_default
143
+ end
144
+
145
+ private
146
+ def toggle_orientation(rmitem)
147
+ return unless rmitem.mapped?
148
+
149
+ i = 3
150
+ group = rmitem.group
151
+ group.each do |g|
152
+ break if g.active?
153
+ i -= 1
154
+ end
155
+
156
+ @pbar.orientation = i
157
+ end
158
+
159
+ private
160
+ def progress_timeout
161
+ new_val = @pbar.fraction + 0.05
162
+ new_val = 0.0 if new_val > 1.0
163
+ @pbar.fraction = new_val
164
+ @label.text = "#{(new_val * 100).to_i}"
165
+ true
166
+ end
167
+
168
+ private
169
+ def toggle_show_text(cbutton)
170
+ @pbar.show_text = cbutton.active?
171
+ @x_align_spin.sensitive = cbutton.active?
172
+ @y_align_spin.sensitive = cbutton.active?
173
+ end
174
+
175
+ private
176
+ def adjust_align
177
+ @pbar.text_xalign = @x_align_spin.value
178
+ @pbar.text_yalign = @y_align_spin.value
179
+ end
180
+
181
+ end