gtk2 0.20.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 (281) hide show
  1. data/ChangeLog +6664 -0
  2. data/README +33 -0
  3. data/Rakefile +71 -0
  4. data/extconf.rb +116 -0
  5. data/src/global.h +33 -0
  6. data/src/init.c +39 -0
  7. data/src/lib/gtk2.rb +13 -0
  8. data/src/lib/gtk2/base.rb +95 -0
  9. data/src/makeinits.rb +57 -0
  10. data/src/makekeysyms.rb +5 -0
  11. data/src/rbgdk.c +395 -0
  12. data/src/rbgdk.h +50 -0
  13. data/src/rbgdkatom.c +122 -0
  14. data/src/rbgdkcairo.c +100 -0
  15. data/src/rbgdkcolor.c +151 -0
  16. data/src/rbgdkcolormap.c +142 -0
  17. data/src/rbgdkconst.c +29 -0
  18. data/src/rbgdkconversions.h +18 -0
  19. data/src/rbgdkcursor.c +115 -0
  20. data/src/rbgdkdevice.c +235 -0
  21. data/src/rbgdkdisplay.c +634 -0
  22. data/src/rbgdkdisplaymanager.c +50 -0
  23. data/src/rbgdkdragcontext.c +280 -0
  24. data/src/rbgdkdraw.c +487 -0
  25. data/src/rbgdkevent.c +1020 -0
  26. data/src/rbgdkgc.c +456 -0
  27. data/src/rbgdkgeometry.c +272 -0
  28. data/src/rbgdkimage.c +155 -0
  29. data/src/rbgdkinput.c +70 -0
  30. data/src/rbgdkkeymap.c +153 -0
  31. data/src/rbgdkkeysyms.h +2174 -0
  32. data/src/rbgdkkeyval.c +105 -0
  33. data/src/rbgdkpango.c +171 -0
  34. data/src/rbgdkpangorenderer.c +132 -0
  35. data/src/rbgdkpixbuf.c +178 -0
  36. data/src/rbgdkpixmap.c +255 -0
  37. data/src/rbgdkproperty.c +342 -0
  38. data/src/rbgdkrectangle.c +146 -0
  39. data/src/rbgdkregion.c +242 -0
  40. data/src/rbgdkrgb.c +197 -0
  41. data/src/rbgdkscreen.c +535 -0
  42. data/src/rbgdkselection.c +161 -0
  43. data/src/rbgdkthreads.c +68 -0
  44. data/src/rbgdktimecoord.c +118 -0
  45. data/src/rbgdkvisual.c +273 -0
  46. data/src/rbgdkwindow.c +1302 -0
  47. data/src/rbgdkwindowattr.c +213 -0
  48. data/src/rbgdkx11.c +256 -0
  49. data/src/rbgtk.c +93 -0
  50. data/src/rbgtk.h +121 -0
  51. data/src/rbgtkaboutdialog.c +195 -0
  52. data/src/rbgtkaccelerator.c +78 -0
  53. data/src/rbgtkaccelgroup.c +216 -0
  54. data/src/rbgtkaccelgroupentry.c +85 -0
  55. data/src/rbgtkaccelkey.c +116 -0
  56. data/src/rbgtkaccellabel.c +46 -0
  57. data/src/rbgtkaccelmap.c +162 -0
  58. data/src/rbgtkaccessible.c +29 -0
  59. data/src/rbgtkaction.c +277 -0
  60. data/src/rbgtkactiongroup.c +377 -0
  61. data/src/rbgtkadjustment.c +153 -0
  62. data/src/rbgtkalignment.c +71 -0
  63. data/src/rbgtkallocation.c +171 -0
  64. data/src/rbgtkarrow.c +47 -0
  65. data/src/rbgtkaspectframe.c +46 -0
  66. data/src/rbgtkassistant.c +230 -0
  67. data/src/rbgtkbbox.c +47 -0
  68. data/src/rbgtkbin.c +31 -0
  69. data/src/rbgtkbindingset.c +192 -0
  70. data/src/rbgtkborder.c +80 -0
  71. data/src/rbgtkbox.c +142 -0
  72. data/src/rbgtkbuildable.c +115 -0
  73. data/src/rbgtkbuilder.c +154 -0
  74. data/src/rbgtkbutton.c +151 -0
  75. data/src/rbgtkcalendar.c +159 -0
  76. data/src/rbgtkcelleditable.c +49 -0
  77. data/src/rbgtkcelllayout.c +144 -0
  78. data/src/rbgtkcellrenderer.c +139 -0
  79. data/src/rbgtkcellrendereraccel.c +42 -0
  80. data/src/rbgtkcellrenderercombo.c +37 -0
  81. data/src/rbgtkcellrendererpixbuf.c +33 -0
  82. data/src/rbgtkcellrendererprogress.c +37 -0
  83. data/src/rbgtkcellrendererspin.c +38 -0
  84. data/src/rbgtkcellrenderertext.c +45 -0
  85. data/src/rbgtkcellrenderertoggle.c +32 -0
  86. data/src/rbgtkcellview.c +134 -0
  87. data/src/rbgtkcheckbutton.c +55 -0
  88. data/src/rbgtkcheckmenuitem.c +56 -0
  89. data/src/rbgtkclipboard.c +473 -0
  90. data/src/rbgtkcolorbutton.c +63 -0
  91. data/src/rbgtkcolorsel.c +175 -0
  92. data/src/rbgtkcolorselectiondialog.c +72 -0
  93. data/src/rbgtkcombo.c +117 -0
  94. data/src/rbgtkcombobox.c +240 -0
  95. data/src/rbgtkcomboboxentry.c +60 -0
  96. data/src/rbgtkconst.c +163 -0
  97. data/src/rbgtkcontainer.c +776 -0
  98. data/src/rbgtkconversions.h +26 -0
  99. data/src/rbgtkcurve.c +105 -0
  100. data/src/rbgtkdialog.c +244 -0
  101. data/src/rbgtkdrag.c +436 -0
  102. data/src/rbgtkdrawingarea.c +31 -0
  103. data/src/rbgtkeditable.c +152 -0
  104. data/src/rbgtkentry.c +161 -0
  105. data/src/rbgtkentrycompletion.c +167 -0
  106. data/src/rbgtkeventbox.c +31 -0
  107. data/src/rbgtkexpander.c +67 -0
  108. data/src/rbgtkfilechooser.c +403 -0
  109. data/src/rbgtkfilechooserbutton.c +72 -0
  110. data/src/rbgtkfilechooserdialog.c +58 -0
  111. data/src/rbgtkfilechooserwidget.c +50 -0
  112. data/src/rbgtkfilefilter.c +139 -0
  113. data/src/rbgtkfilesel.c +155 -0
  114. data/src/rbgtkfixed.c +72 -0
  115. data/src/rbgtkfontbutton.c +69 -0
  116. data/src/rbgtkfontselection.c +30 -0
  117. data/src/rbgtkfontselectiondialog.c +106 -0
  118. data/src/rbgtkframe.c +64 -0
  119. data/src/rbgtkgamma.c +47 -0
  120. data/src/rbgtkhandlebox.c +42 -0
  121. data/src/rbgtkhbbox.c +31 -0
  122. data/src/rbgtkhbox.c +38 -0
  123. data/src/rbgtkhpaned.c +31 -0
  124. data/src/rbgtkhruler.c +31 -0
  125. data/src/rbgtkhscale.c +45 -0
  126. data/src/rbgtkhscrollbar.c +38 -0
  127. data/src/rbgtkhseparator.c +30 -0
  128. data/src/rbgtkiconfactory.c +80 -0
  129. data/src/rbgtkiconinfo.c +118 -0
  130. data/src/rbgtkiconset.c +87 -0
  131. data/src/rbgtkiconsize.c +90 -0
  132. data/src/rbgtkiconsource.c +176 -0
  133. data/src/rbgtkicontheme.c +309 -0
  134. data/src/rbgtkiconview.c +351 -0
  135. data/src/rbgtkimage.c +152 -0
  136. data/src/rbgtkimagemenuitem.c +52 -0
  137. data/src/rbgtkimcontext.c +134 -0
  138. data/src/rbgtkimcontextsimple.c +48 -0
  139. data/src/rbgtkimmulticontext.c +38 -0
  140. data/src/rbgtkinits.c +473 -0
  141. data/src/rbgtkinputdialog.c +30 -0
  142. data/src/rbgtkinvisible.c +68 -0
  143. data/src/rbgtkitem.c +51 -0
  144. data/src/rbgtkitemfactory.c +312 -0
  145. data/src/rbgtklabel.c +168 -0
  146. data/src/rbgtklayout.c +91 -0
  147. data/src/rbgtklinkbutton.c +68 -0
  148. data/src/rbgtkliststore.c +412 -0
  149. data/src/rbgtkmacros.h +26 -0
  150. data/src/rbgtkmain.c +532 -0
  151. data/src/rbgtkmenu.c +272 -0
  152. data/src/rbgtkmenubar.c +48 -0
  153. data/src/rbgtkmenuitem.c +171 -0
  154. data/src/rbgtkmenushell.c +128 -0
  155. data/src/rbgtkmenutoolbutton.c +74 -0
  156. data/src/rbgtkmessagedialog.c +102 -0
  157. data/src/rbgtkmisc.c +63 -0
  158. data/src/rbgtknotebook.c +484 -0
  159. data/src/rbgtkobject.c +186 -0
  160. data/src/rbgtkoptionmenu.c +65 -0
  161. data/src/rbgtkpagesetup.c +196 -0
  162. data/src/rbgtkpagesetupunixdialog.c +80 -0
  163. data/src/rbgtkpaned.c +114 -0
  164. data/src/rbgtkpapersize.c +186 -0
  165. data/src/rbgtkplug.c +84 -0
  166. data/src/rbgtkprintcontext.c +124 -0
  167. data/src/rbgtkprinter.c +155 -0
  168. data/src/rbgtkprintjob.c +151 -0
  169. data/src/rbgtkprintoperation.c +152 -0
  170. data/src/rbgtkprintoperationpreview.c +54 -0
  171. data/src/rbgtkprintsettings.c +794 -0
  172. data/src/rbgtkprintunixdialog.c +98 -0
  173. data/src/rbgtkprogress.c +21 -0
  174. data/src/rbgtkprogressbar.c +72 -0
  175. data/src/rbgtkradioaction.c +102 -0
  176. data/src/rbgtkradiobutton.c +83 -0
  177. data/src/rbgtkradiomenuitem.c +115 -0
  178. data/src/rbgtkradiotoolbutton.c +99 -0
  179. data/src/rbgtkrange.c +98 -0
  180. data/src/rbgtkrc.c +228 -0
  181. data/src/rbgtkrcstyle.c +184 -0
  182. data/src/rbgtkrecentaction.c +52 -0
  183. data/src/rbgtkrecentchooser.c +276 -0
  184. data/src/rbgtkrecentchooserdialog.c +59 -0
  185. data/src/rbgtkrecentchoosermenu.c +55 -0
  186. data/src/rbgtkrecentchooserwidget.c +45 -0
  187. data/src/rbgtkrecentdata.c +152 -0
  188. data/src/rbgtkrecentfilter.c +180 -0
  189. data/src/rbgtkrecentfilterinfo.c +197 -0
  190. data/src/rbgtkrecentinfo.c +232 -0
  191. data/src/rbgtkrecentmanager.c +164 -0
  192. data/src/rbgtkruler.c +82 -0
  193. data/src/rbgtkscale.c +47 -0
  194. data/src/rbgtkscalebutton.c +115 -0
  195. data/src/rbgtkscrollbar.c +21 -0
  196. data/src/rbgtkscrolledwindow.c +160 -0
  197. data/src/rbgtkselection.c +171 -0
  198. data/src/rbgtkselectiondata.c +333 -0
  199. data/src/rbgtkseparator.c +21 -0
  200. data/src/rbgtkseparatormenuitem.c +28 -0
  201. data/src/rbgtkseparatortoolitem.c +40 -0
  202. data/src/rbgtksettings.c +225 -0
  203. data/src/rbgtksizegroup.c +74 -0
  204. data/src/rbgtksocket.c +72 -0
  205. data/src/rbgtkspinbutton.c +138 -0
  206. data/src/rbgtkstatusbar.c +90 -0
  207. data/src/rbgtkstatusicon.c +120 -0
  208. data/src/rbgtkstock.c +264 -0
  209. data/src/rbgtkstyle.c +722 -0
  210. data/src/rbgtktable.c +190 -0
  211. data/src/rbgtktargetlist.c +148 -0
  212. data/src/rbgtktearoffmenuitem.c +30 -0
  213. data/src/rbgtktextappearance.c +173 -0
  214. data/src/rbgtktextattributes.c +209 -0
  215. data/src/rbgtktextbuffer.c +993 -0
  216. data/src/rbgtktextchild.c +49 -0
  217. data/src/rbgtktextiter.c +553 -0
  218. data/src/rbgtktextmark.c +87 -0
  219. data/src/rbgtktexttag.c +66 -0
  220. data/src/rbgtktexttagtable.c +94 -0
  221. data/src/rbgtktextview.c +351 -0
  222. data/src/rbgtktoggleaction.c +76 -0
  223. data/src/rbgtktogglebutton.c +84 -0
  224. data/src/rbgtktoggletoolbutton.c +70 -0
  225. data/src/rbgtktoolbar.c +373 -0
  226. data/src/rbgtktoolbutton.c +75 -0
  227. data/src/rbgtktoolitem.c +184 -0
  228. data/src/rbgtktooltip.c +76 -0
  229. data/src/rbgtktooltips.c +107 -0
  230. data/src/rbgtktreedragdest.c +19 -0
  231. data/src/rbgtktreedragsource.c +19 -0
  232. data/src/rbgtktreeiter.c +259 -0
  233. data/src/rbgtktreemodel.c +256 -0
  234. data/src/rbgtktreemodelfilter.c +214 -0
  235. data/src/rbgtktreemodelsort.c +113 -0
  236. data/src/rbgtktreepath.c +195 -0
  237. data/src/rbgtktreerowreference.c +168 -0
  238. data/src/rbgtktreeselection.c +235 -0
  239. data/src/rbgtktreesortable.c +127 -0
  240. data/src/rbgtktreestore.c +379 -0
  241. data/src/rbgtktreeview.c +881 -0
  242. data/src/rbgtktreeviewcolumn.c +331 -0
  243. data/src/rbgtkuimanager.c +210 -0
  244. data/src/rbgtkvbbox.c +31 -0
  245. data/src/rbgtkvbox.c +38 -0
  246. data/src/rbgtkviewport.c +33 -0
  247. data/src/rbgtkvolumebutton.c +36 -0
  248. data/src/rbgtkvpaned.c +31 -0
  249. data/src/rbgtkvruler.c +30 -0
  250. data/src/rbgtkvscale.c +45 -0
  251. data/src/rbgtkvscrollbar.c +38 -0
  252. data/src/rbgtkvseparator.c +30 -0
  253. data/src/rbgtkwidget.c +1414 -0
  254. data/src/rbgtkwindow.c +822 -0
  255. data/src/rbgtkwindowgroup.c +48 -0
  256. data/test/gtk-test-utils.rb +15 -0
  257. data/test/run-test.rb +30 -0
  258. data/test/test_gc.rb +25 -0
  259. data/test/test_gdk.rb +18 -0
  260. data/test/test_gdk_color.rb +10 -0
  261. data/test/test_gdk_display.rb +37 -0
  262. data/test/test_gdk_event.rb +11 -0
  263. data/test/test_gdk_gc.rb +7 -0
  264. data/test/test_gdk_keymap.rb +8 -0
  265. data/test/test_gdk_pango.rb +9 -0
  266. data/test/test_gdk_selection_data.rb +17 -0
  267. data/test/test_gdk_window.rb +29 -0
  268. data/test/test_gdk_window_attribute.rb +9 -0
  269. data/test/test_gtk_about_dialog.rb +14 -0
  270. data/test/test_gtk_buildable.rb +66 -0
  271. data/test/test_gtk_builder.rb +188 -0
  272. data/test/test_gtk_entry.rb +18 -0
  273. data/test/test_gtk_icon_theme.rb +30 -0
  274. data/test/test_gtk_image.rb +8 -0
  275. data/test/test_gtk_list_store.rb +65 -0
  276. data/test/test_gtk_menu_item.rb +13 -0
  277. data/test/test_gtk_rc_style.rb +14 -0
  278. data/test/test_gtk_tree_path.rb +20 -0
  279. data/test/test_gtk_unix_print.rb +14 -0
  280. data/test/test_gtk_widget.rb +32 -0
  281. metadata +393 -0
@@ -0,0 +1,31 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgtkeventbox.c -
5
+
6
+ $Author: mutoh $
7
+ $Date: 2003/02/01 16:46:23 $
8
+
9
+ Copyright (C) 2002,2003 Ruby-GNOME2 Project Team
10
+ Copyright (C) 1998-2000 Yukihiro Matsumoto,
11
+ Daisuke Kanda,
12
+ Hiroshi Igarashi
13
+ ************************************************/
14
+
15
+ #include "global.h"
16
+
17
+ static VALUE
18
+ eventbox_initialize(self)
19
+ VALUE self;
20
+ {
21
+ RBGTK_INITIALIZE(self, gtk_event_box_new());
22
+ return Qnil;
23
+ }
24
+
25
+ void
26
+ Init_gtk_eventbox()
27
+ {
28
+ VALUE gEventBox = G_DEF_CLASS(GTK_TYPE_EVENT_BOX, "EventBox", mGtk);
29
+
30
+ rb_define_method(gEventBox, "initialize", eventbox_initialize, 0);
31
+ }
@@ -0,0 +1,67 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgtkexpander.c -
5
+
6
+ $Author: ggc $
7
+ $Date: 2007/07/13 16:07:31 $
8
+
9
+ Copyright (C) 2004 Masao Mutoh
10
+ ************************************************/
11
+
12
+ #include "global.h"
13
+
14
+ #if GTK_CHECK_VERSION(2,4,0)
15
+
16
+ #define _SELF(self) (GTK_EXPANDER(RVAL2GOBJ(self)))
17
+
18
+ static VALUE
19
+ expander_initialize(argc, argv, self)
20
+ int argc;
21
+ VALUE* argv;
22
+ VALUE self;
23
+ {
24
+ VALUE label, with_mnemonic;
25
+ GtkWidget* widget = NULL;
26
+
27
+ rb_scan_args(argc, argv, "11", &label, &with_mnemonic);
28
+ if (NIL_P(with_mnemonic) || ! RVAL2CBOOL(with_mnemonic)){
29
+ widget = gtk_expander_new(RVAL2CSTR(label));
30
+ } else {
31
+ widget = gtk_expander_new_with_mnemonic(RVAL2CSTR(label));
32
+ }
33
+
34
+ RBGTK_INITIALIZE(self, widget);
35
+ return Qnil;
36
+ }
37
+ /* Defined as Property.
38
+ void gtk_expander_set_expanded (GtkExpander *expander,
39
+ gboolean expanded);
40
+ gboolean gtk_expander_get_expanded (GtkExpander *expander);
41
+ void gtk_expander_set_spacing (GtkExpander *expander,
42
+ gint spacing);
43
+ gint gtk_expander_get_spacing (GtkExpander *expander);
44
+ void gtk_expander_set_label (GtkExpander *expander,
45
+ const gchar *label);
46
+ G_CONST_RETURN gchar* gtk_expander_get_label
47
+ (GtkExpander *expander);
48
+ void gtk_expander_set_use_underline (GtkExpander *expander,
49
+ gboolean use_underline);
50
+ gboolean gtk_expander_get_use_underline (GtkExpander *expander);
51
+ void gtk_expander_set_use_markup (GtkExpander *expander,
52
+ gboolean use_markup);
53
+ gboolean gtk_expander_get_use_markup (GtkExpander *expander);
54
+ void gtk_expander_set_label_widget (GtkExpander *expander,
55
+ GtkWidget *label_widget);
56
+ GtkWidget* gtk_expander_get_label_widget (GtkExpander *expander);
57
+ */
58
+ #endif
59
+
60
+ void
61
+ Init_gtk_expander()
62
+ {
63
+ #if GTK_CHECK_VERSION(2,4,0)
64
+ VALUE gExpander = G_DEF_CLASS(GTK_TYPE_EXPANDER, "Expander", mGtk);
65
+ rb_define_method(gExpander, "initialize", expander_initialize, -1);
66
+ #endif
67
+ }
@@ -0,0 +1,403 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgtkfilechooser.c -
5
+
6
+ $Author: ggc $
7
+ $Date: 2007/07/13 16:07:31 $
8
+
9
+ Copyright (C) 2005,2006 Ruby-GNOME2 Project Team
10
+ Copyright (C) 2004 Seiya Nishizawa, Masao Mutoh
11
+ ************************************************/
12
+
13
+ #include "global.h"
14
+
15
+ #if GTK_CHECK_VERSION(2,4,0)
16
+
17
+ #define _SELF(self) GTK_FILE_CHOOSER(RVAL2GOBJ(self))
18
+
19
+ #ifdef HAVE_GTK_GTKFILESYSTEM_H
20
+ /* For error handling */
21
+ # define GTK_FILE_SYSTEM_ENABLE_UNSUPPORTED
22
+ # include <gtk/gtkfilesystem.h>
23
+ #endif
24
+
25
+ static VALUE
26
+ gslist2ary_free(list)
27
+ GSList* list;
28
+ {
29
+ GSList* l;
30
+ VALUE ary = rb_ary_new();
31
+ for (l = list; l != NULL; l = g_slist_next(l)) {
32
+ rb_ary_push(ary, CSTR2RVAL2(l->data));
33
+ }
34
+ g_slist_free(list);
35
+ return ary;
36
+ }
37
+
38
+ static VALUE
39
+ fcho_set_action(self, action)
40
+ VALUE self, action;
41
+ {
42
+ gtk_file_chooser_set_action(
43
+ _SELF(self),
44
+ RVAL2GENUM(action, GTK_TYPE_FILE_CHOOSER_ACTION));
45
+ return self;
46
+ }
47
+
48
+ static VALUE
49
+ fcho_get_action(self)
50
+ VALUE self;
51
+ {
52
+ return GENUM2RVAL(gtk_file_chooser_get_action(_SELF(self)), GTK_TYPE_FILE_CHOOSER_ACTION);
53
+ }
54
+
55
+ /* They are defined as properties
56
+ gtk_file_chooser_set_local_only(_SELF(self), RVAL2CBOOL(local));
57
+ gtk_file_chooser_get_local_only(_SELF(self));
58
+ gtk_file_chooser_set_select_multiple(_SELF(self), RVAL2CBOOL(multiple));
59
+ gtk_file_chooser_get_select_multiple(_SELF(self));
60
+ */
61
+
62
+ /* Defined as Property
63
+ void gtk_file_chooser_set_show_hidden
64
+ (GtkFileChooser *chooser,
65
+ gboolean show_hidden);
66
+ gboolean gtk_file_chooser_get_show_hidden
67
+ (GtkFileChooser *chooser);
68
+ */
69
+
70
+ static VALUE
71
+ fcho_set_current_name(self, name)
72
+ VALUE self, name;
73
+ {
74
+ gtk_file_chooser_set_current_name(_SELF(self), RVAL2CSTR(name));
75
+ return self;
76
+ }
77
+
78
+ static VALUE
79
+ fcho_get_filename(self)
80
+ VALUE self;
81
+ {
82
+ return CSTR2RVAL2(gtk_file_chooser_get_filename(_SELF(self)));
83
+ }
84
+
85
+ static VALUE
86
+ fcho_set_filename(self, name)
87
+ VALUE self, name;
88
+ {
89
+ gboolean ret = gtk_file_chooser_set_filename(_SELF(self), RVAL2CSTR(name));
90
+ if (! ret) rb_raise(rb_eRuntimeError, "Can't set filename");
91
+ return self;
92
+ }
93
+
94
+ static VALUE
95
+ fcho_select_filename(self, filename)
96
+ VALUE self, filename;
97
+ {
98
+ return CBOOL2RVAL(gtk_file_chooser_select_filename(_SELF(self), RVAL2CSTR(filename)));
99
+ }
100
+
101
+ static VALUE
102
+ fcho_unselect_filename(self, filename)
103
+ VALUE self, filename;
104
+ {
105
+ gtk_file_chooser_unselect_filename(_SELF(self), RVAL2CSTR(filename));
106
+ return self;
107
+ }
108
+
109
+ static VALUE
110
+ fcho_select_all(self)
111
+ VALUE self;
112
+ {
113
+ gtk_file_chooser_select_all(_SELF(self));
114
+ return self;
115
+ }
116
+
117
+ static VALUE
118
+ fcho_unselect_all(self)
119
+ VALUE self;
120
+ {
121
+ gtk_file_chooser_unselect_all(_SELF(self));
122
+ return self;
123
+ }
124
+
125
+ static VALUE
126
+ fcho_get_filenames(self)
127
+ VALUE self;
128
+ {
129
+ return gslist2ary_free(gtk_file_chooser_get_filenames(_SELF(self)));
130
+ }
131
+
132
+ static VALUE
133
+ fcho_set_current_folder(self, filename)
134
+ VALUE self, filename;
135
+ {
136
+ gboolean ret = gtk_file_chooser_set_current_folder(_SELF(self), RVAL2CSTR(filename));
137
+ if (! ret) rb_raise(rb_eRuntimeError, "Can't set current folder");
138
+ return self;
139
+ }
140
+
141
+ static VALUE
142
+ fcho_get_current_folder(self)
143
+ VALUE self;
144
+ {
145
+ return CSTR2RVAL2(gtk_file_chooser_get_current_folder(_SELF(self)));
146
+ }
147
+
148
+ static VALUE
149
+ fcho_get_uri(self)
150
+ VALUE self;
151
+ {
152
+ return CSTR2RVAL2(gtk_file_chooser_get_uri(_SELF(self)));
153
+ }
154
+
155
+ static VALUE
156
+ fcho_set_uri(self, uri)
157
+ VALUE self, uri;
158
+ {
159
+ gboolean ret = gtk_file_chooser_set_uri(_SELF(self), RVAL2CSTR(uri));
160
+ if (! ret) rb_raise(rb_eRuntimeError, "Can't set uri");
161
+ return self;
162
+ }
163
+
164
+ static VALUE
165
+ fcho_select_uri(self, uri)
166
+ VALUE self, uri;
167
+ {
168
+ return CBOOL2RVAL(gtk_file_chooser_select_uri(_SELF(self), RVAL2CSTR(uri)));
169
+ }
170
+
171
+ static VALUE
172
+ fcho_unselect_uri(self, uri)
173
+ VALUE self, uri;
174
+ {
175
+ gtk_file_chooser_unselect_uri(_SELF(self), RVAL2CSTR(uri));
176
+ return self;
177
+ }
178
+
179
+ static VALUE
180
+ fcho_get_uris(self)
181
+ VALUE self;
182
+ {
183
+ return gslist2ary_free(gtk_file_chooser_get_uris(_SELF(self)));
184
+ }
185
+
186
+ static VALUE
187
+ fcho_set_current_folder_uri(self, uri)
188
+ VALUE self, uri;
189
+ {
190
+ gboolean ret = gtk_file_chooser_set_current_folder_uri(_SELF(self), RVAL2CSTR(uri));
191
+ if (! ret) rb_raise(rb_eRuntimeError, "Can't set current folder uri");
192
+ return self;
193
+ }
194
+
195
+ static VALUE
196
+ fcho_get_current_folder_uri(self)
197
+ VALUE self;
198
+ {
199
+ return CSTR2RVAL2(gtk_file_chooser_get_current_folder_uri(_SELF(self)));
200
+ }
201
+
202
+ /* They are defined as properties.
203
+ gtk_file_chooser_set_preview_widget(_SELF(self), GTK_WIDGET(RVAL2GOBJ(widget));
204
+ gtk_file_chooser_get_preview_widget(_SELF(self)));
205
+ gtk_file_chooser_set_preview_widget_active(_SELF(self), RVAL2CBOOL(active));
206
+ gtk_file_chooser_get_preview_widget_active(_SELF(self));
207
+ gtk_file_chooser_set_use_preview_label(_SELF(self), RVAL2CBOOL(label));
208
+ gtk_file_chooser_get_use_preview_label(_SELF(self));
209
+ */
210
+
211
+ static VALUE
212
+ fcho_get_preview_filename(self)
213
+ VALUE self;
214
+ {
215
+ return CSTR2RVAL2(gtk_file_chooser_get_preview_filename(_SELF(self)));
216
+ }
217
+
218
+ static VALUE
219
+ fcho_get_preview_uri(self)
220
+ VALUE self;
221
+ {
222
+ return CSTR2RVAL2(gtk_file_chooser_get_preview_uri(_SELF(self)));
223
+ }
224
+
225
+ /* They are defined as properties.
226
+ gtk_file_chooser_set_extra_widget(_SELF(self), GTK_WIDGET(RVAL2GOBJ(widget)));
227
+ gtk_file_chooser_get_extra_widget(_SELF(self));
228
+ */
229
+
230
+ static VALUE
231
+ fcho_add_filter(self, filter)
232
+ VALUE self, filter;
233
+ {
234
+ gtk_file_chooser_add_filter(_SELF(self), GTK_FILE_FILTER(RVAL2GOBJ(filter)));
235
+ return self;
236
+ }
237
+
238
+ static VALUE
239
+ fcho_remove_filter(self, filter)
240
+ VALUE self, filter;
241
+ {
242
+ gtk_file_chooser_remove_filter(_SELF(self), GTK_FILE_FILTER(RVAL2GOBJ(filter)));
243
+ return self;
244
+ }
245
+
246
+ static VALUE
247
+ fcho_list_filters(self)
248
+ VALUE self;
249
+ {
250
+ return GSLIST2ARYF(gtk_file_chooser_list_filters(_SELF(self)));
251
+ }
252
+
253
+ /*
254
+ They are defined as property.
255
+ gtk_file_chooser_set_filter(_SELF(self), GTK_FILE_FILTER(RVAL2GOBJ(filter)));
256
+ gtk_file_chooser_get_filter(_SELF(self));
257
+ */
258
+
259
+ static VALUE
260
+ fcho_add_shortcut_folder(self, folder)
261
+ VALUE self, folder;
262
+ {
263
+ GError *error = NULL;
264
+ if (! gtk_file_chooser_add_shortcut_folder(_SELF(self), RVAL2CSTR(folder), &error))
265
+ RAISE_GERROR(error);
266
+ return self;
267
+ }
268
+
269
+ static VALUE
270
+ fcho_remove_shortcut_folder(self, folder)
271
+ VALUE self, folder;
272
+ {
273
+ GError *error = NULL;
274
+ if (! gtk_file_chooser_remove_shortcut_folder(_SELF(self), RVAL2CSTR(folder), &error))
275
+ RAISE_GERROR(error);
276
+ return self;
277
+ }
278
+
279
+ static VALUE
280
+ fcho_list_shortcut_folders(self)
281
+ VALUE self;
282
+ {
283
+ return gslist2ary_free(gtk_file_chooser_list_shortcut_folders(_SELF(self)));
284
+ }
285
+
286
+
287
+ static VALUE
288
+ fcho_add_shortcut_folder_uri(self, uri)
289
+ VALUE self, uri;
290
+ {
291
+ GError *error = NULL;
292
+ if (! gtk_file_chooser_add_shortcut_folder_uri(_SELF(self), RVAL2CSTR(uri), &error))
293
+ RAISE_GERROR(error);
294
+ return self;
295
+ }
296
+
297
+ static VALUE
298
+ fcho_remove_shortcut_folder_uri(self, uri)
299
+ VALUE self, uri;
300
+ {
301
+ GError *error = NULL;
302
+ if (! gtk_file_chooser_remove_shortcut_folder_uri(_SELF(self), RVAL2CSTR(uri), &error))
303
+ RAISE_GERROR(error);
304
+ return self;
305
+ }
306
+
307
+ static VALUE
308
+ fcho_list_shortcut_folder_uris(self)
309
+ VALUE self;
310
+ {
311
+ return gslist2ary_free(gtk_file_chooser_list_shortcut_folder_uris(_SELF(self)));
312
+ }
313
+ #endif
314
+
315
+ /* Properties.
316
+ void gtk_file_chooser_set_do_overwrite_confirmation
317
+ (GtkFileChooser *chooser,
318
+ gboolean do_overwrite_confirmation);
319
+ gboolean gtk_file_chooser_get_do_overwrite_confirmation
320
+ (GtkFileChooser *chooser);
321
+ */
322
+
323
+ void
324
+ Init_gtk_file_chooser()
325
+ {
326
+ #if GTK_CHECK_VERSION(2,4,0)
327
+
328
+ VALUE gFileCho = G_DEF_INTERFACE(GTK_TYPE_FILE_CHOOSER, "FileChooser", mGtk);
329
+ #ifdef GTK_FILE_SYSTEM_ERROR
330
+ VALUE eFileSystemError;
331
+ #endif
332
+
333
+ rb_define_method(gFileCho, "set_action", fcho_set_action, 1);
334
+ rb_define_method(gFileCho, "action", fcho_get_action, 0);
335
+ rb_define_method(gFileCho, "set_current_name", fcho_set_current_name, 1);
336
+ rb_define_method(gFileCho, "set_filename", fcho_set_filename, 1);
337
+ rb_define_method(gFileCho, "filename", fcho_get_filename, 0);
338
+ rb_define_method(gFileCho, "select_filename", fcho_select_filename, 1);
339
+ rb_define_method(gFileCho, "unselect_filename", fcho_unselect_filename, 1);
340
+ rb_define_method(gFileCho, "select_all", fcho_select_all, 0);
341
+ rb_define_method(gFileCho, "unselect_all", fcho_unselect_all, 0);
342
+ rb_define_method(gFileCho, "filenames", fcho_get_filenames, 0);
343
+ rb_define_method(gFileCho, "set_current_folder", fcho_set_current_folder, 1);
344
+ rb_define_method(gFileCho, "current_folder", fcho_get_current_folder, 0);
345
+ rb_define_method(gFileCho, "set_uri", fcho_set_uri, 1);
346
+ rb_define_method(gFileCho, "uri", fcho_get_uri, 0);
347
+ rb_define_method(gFileCho, "select_uri", fcho_select_uri, 1);
348
+ rb_define_method(gFileCho, "unselect_uri", fcho_unselect_uri, 1);
349
+ rb_define_method(gFileCho, "uris", fcho_get_uris, 0);
350
+ rb_define_method(gFileCho, "set_current_folder_uri", fcho_set_current_folder_uri, 1);
351
+ rb_define_method(gFileCho, "current_folder_uri", fcho_get_current_folder_uri, 0);
352
+ rb_define_method(gFileCho, "preview_filename", fcho_get_preview_filename, 0);
353
+ rb_define_method(gFileCho, "preview_uri", fcho_get_preview_uri, 0);
354
+ rb_define_method(gFileCho, "add_filter", fcho_add_filter, 1);
355
+ rb_define_method(gFileCho, "remove_filter", fcho_remove_filter, 1);
356
+ rb_define_method(gFileCho, "filters", fcho_list_filters, 0);
357
+ rb_define_method(gFileCho, "add_shortcut_folder", fcho_add_shortcut_folder, 1);
358
+ rb_define_method(gFileCho, "remove_shortcut_folder", fcho_remove_shortcut_folder, 1);
359
+ rb_define_method(gFileCho, "shortcut_folders", fcho_list_shortcut_folders, 0);
360
+ rb_define_method(gFileCho, "add_shortcut_folder_uri", fcho_add_shortcut_folder_uri, 1);
361
+ rb_define_method(gFileCho, "remove_shortcut_folder_uri", fcho_remove_shortcut_folder_uri, 1);
362
+
363
+ rb_define_method(gFileCho, "shortcut_folder_uris", fcho_list_shortcut_folder_uris, 0);
364
+
365
+ G_DEF_SETTERS(gFileCho);
366
+
367
+ /* GtkFileChooserAction */
368
+ G_DEF_CLASS(GTK_TYPE_FILE_CHOOSER_ACTION, "Action", gFileCho);
369
+ G_DEF_CONSTANTS(gFileCho, GTK_TYPE_FILE_CHOOSER_ACTION, "GTK_FILE_CHOOSER_");
370
+
371
+ /* GtkFileChooserError */
372
+ G_DEF_ERROR(GTK_FILE_CHOOSER_ERROR, "FileChooserError", mGtk, rb_eRuntimeError,
373
+ GTK_TYPE_FILE_CHOOSER_ERROR);
374
+
375
+ #ifdef GTK_FILE_SYSTEM_ERROR
376
+ /* GtkFileSystemError */
377
+ eFileSystemError = G_DEF_ERROR2(GTK_FILE_SYSTEM_ERROR, "FileSystemError",
378
+ mGtk, rb_eRuntimeError);
379
+ rb_define_const(eFileSystemError, "NONEXISTENT",
380
+ INT2NUM(GTK_FILE_SYSTEM_ERROR_NONEXISTENT));
381
+ rb_define_const(eFileSystemError, "NOT_FOLDER",
382
+ INT2NUM(GTK_FILE_SYSTEM_ERROR_NOT_FOLDER));
383
+ rb_define_const(eFileSystemError, "INVALID_URI",
384
+ INT2NUM(GTK_FILE_SYSTEM_ERROR_INVALID_URI));
385
+ rb_define_const(eFileSystemError, "BAD_FILENAME",
386
+ INT2NUM(GTK_FILE_SYSTEM_ERROR_BAD_FILENAME));
387
+ rb_define_const(eFileSystemError, "FAILED",
388
+ INT2NUM(GTK_FILE_SYSTEM_ERROR_FAILED));
389
+ rb_define_const(eFileSystemError, "ALREADY_EXSITS",
390
+ INT2NUM(GTK_FILE_SYSTEM_ERROR_ALREADY_EXISTS));
391
+ #endif
392
+
393
+ #if GTK_CHECK_VERSION(2,8,0)
394
+ /* GtkFileChooserConfirmation */
395
+ G_DEF_CLASS(GTK_TYPE_FILE_CHOOSER_CONFIRMATION, "Confirmation", gFileCho);
396
+ G_DEF_CONSTANTS(gFileCho, GTK_TYPE_FILE_CHOOSER_CONFIRMATION, "GTK_FILE_CHOOSER_");
397
+ #endif
398
+
399
+ G_DEF_CLASS3("GtkFileChooserEmbed", "FileChooserEmbed", mGtk);
400
+
401
+ #endif
402
+ }
403
+