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,99 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgtkradiotoolbutton.c -
5
+
6
+ $Author: mutoh $
7
+ $Date: 2006/06/17 06:59:32 $
8
+
9
+ Copyright (C) 2004-2006 Masao Mutoh
10
+ ************************************************/
11
+
12
+ #include "global.h"
13
+
14
+ #if GTK_CHECK_VERSION(2,4,0)
15
+
16
+ #define _SELF(self) (GTK_RADIO_TOOL_BUTTON(RVAL2GOBJ(self)))
17
+
18
+ static VALUE gRToolButton;
19
+
20
+ static VALUE
21
+ rbtn_initialize(argc, argv, self)
22
+ int argc;
23
+ VALUE *argv;
24
+ VALUE self;
25
+ {
26
+ VALUE group_or_stock_id, stock_id;
27
+ GtkToolItem *widget;
28
+
29
+ if (rb_scan_args(argc, argv, "02", &group_or_stock_id, &stock_id) > 0) {
30
+ GSList* list = NULL;
31
+ if (TYPE(group_or_stock_id) == T_ARRAY){
32
+ int i;
33
+ Check_Type(group_or_stock_id, T_ARRAY);
34
+ for (i = 0; i < RARRAY_LEN(group_or_stock_id); i++) {
35
+ list = g_slist_append(list, RVAL2GOBJ(RARRAY_PTR(group_or_stock_id)[i]));
36
+ }
37
+ } else if (rb_obj_is_kind_of(group_or_stock_id, gRToolButton)){
38
+ list = gtk_radio_tool_button_get_group(_SELF(group_or_stock_id));
39
+ } else {
40
+ list = NULL;
41
+ }
42
+ if (NIL_P(stock_id)){
43
+ widget = gtk_radio_tool_button_new(list);
44
+ } else {
45
+ if (TYPE(stock_id) == T_SYMBOL){
46
+ widget = gtk_radio_tool_button_new_from_stock(list, rb_id2name(SYM2ID(stock_id)));
47
+ } else {
48
+ widget = gtk_radio_tool_button_new_from_stock(list, RVAL2CSTR(stock_id));
49
+ }
50
+ }
51
+ } else {
52
+ widget = gtk_radio_tool_button_new(NULL);
53
+ }
54
+
55
+ RBGTK_INITIALIZE(self, widget);
56
+ return Qnil;
57
+ }
58
+
59
+ static VALUE
60
+ rbtn_get_group(self)
61
+ VALUE self;
62
+ {
63
+ /* Owned by GTK+ */
64
+ return GSLIST2ARY(gtk_radio_tool_button_get_group(_SELF(self)));
65
+ }
66
+
67
+ static VALUE
68
+ rbtn_set_group(self, group)
69
+ VALUE self, group;
70
+ {
71
+ GSList* list = NULL;
72
+ if (TYPE(group) == T_ARRAY){
73
+ int i;
74
+ for (i = 0; i < RARRAY_LEN(group); i++){
75
+ list = g_slist_append(list, RVAL2GOBJ(RARRAY_PTR(group)[i]));
76
+ }
77
+ } else {
78
+ list = gtk_radio_tool_button_get_group(_SELF(group));
79
+ }
80
+ gtk_radio_tool_button_set_group(_SELF(self), list);
81
+
82
+ return self;
83
+ }
84
+
85
+ #endif
86
+
87
+ void
88
+ Init_gtk_radiotoolbutton()
89
+ {
90
+ #if GTK_CHECK_VERSION(2,4,0)
91
+ gRToolButton = G_DEF_CLASS(GTK_TYPE_RADIO_TOOL_BUTTON, "RadioToolButton", mGtk);
92
+
93
+ rb_define_method(gRToolButton, "initialize", rbtn_initialize, -1);
94
+ rb_define_method(gRToolButton, "group", rbtn_get_group, 0);
95
+ rb_define_method(gRToolButton, "set_group", rbtn_set_group, 1);
96
+
97
+ G_DEF_SETTERS(gRToolButton);
98
+ #endif
99
+ }
@@ -0,0 +1,98 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgtkrange.c -
5
+
6
+ $Author: ktou $
7
+ $Date: 2006/11/13 12:53:21 $
8
+
9
+ Copyright (C) 2002-2006 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
+ #define _SELF(self) (GTK_RANGE(RVAL2GOBJ(self)))
18
+
19
+ /* Defined as Properties
20
+ GtkAdjustment* gtk_range_get_adjustment (GtkRange *range);
21
+ void gtk_range_set_adjustment (GtkRange *range,
22
+ GtkAdjustment *adjustment);
23
+ void gtk_range_set_update_policy (GtkRange *range,
24
+ GtkUpdateType policy);
25
+ GtkUpdateType gtk_range_get_update_policy (GtkRange *range);
26
+ gboolean gtk_range_get_inverted (GtkRange *range);
27
+ void gtk_range_set_inverted (GtkRange *range,
28
+ gboolean setting);
29
+ void gtk_range_set_upper_stepper_sensitivity
30
+ (GtkRange *range,
31
+ GtkSensitivityType sensitivity);
32
+ GtkSensitivityType gtk_range_get_upper_stepper_sensitivity
33
+ (GtkRange *range);
34
+ void gtk_range_set_lower_stepper_sensitivity
35
+ (GtkRange *range,
36
+ GtkSensitivityType sensitivity);
37
+ GtkSensitivityType gtk_range_get_lower_stepper_sensitivity
38
+ (GtkRange *range);
39
+ void gtk_range_set_show_fill_level (GtkRange *range,
40
+ gboolean show_fill_level);
41
+ gboolean gtk_range_get_show_fill_level (GtkRange *range);
42
+ void gtk_range_set_restrict_to_fill_level (GtkRange *range,
43
+ gboolean restrict_to_fill_level);
44
+ gboolean gtk_range_get_restrict_to_fill_level (GtkRange *range);
45
+ void gtk_range_set_fill_level (GtkRange *range,
46
+ gdouble fill_level);
47
+ gdouble gtk_range_get_fill_level (GtkRange *range);
48
+ */
49
+
50
+ static VALUE
51
+ range_get_value(self)
52
+ VALUE self;
53
+ {
54
+ return rb_float_new(gtk_range_get_value(_SELF(self)));
55
+ }
56
+
57
+ static VALUE
58
+ range_set_increments(self, step, page)
59
+ VALUE self, step, page;
60
+ {
61
+ gtk_range_set_increments(_SELF(self), NUM2DBL(step), NUM2DBL(page));
62
+ return self;
63
+ }
64
+
65
+ static VALUE
66
+ range_set_range(self, min, max)
67
+ VALUE self, min, max;
68
+ {
69
+ gtk_range_set_range(_SELF(self), NUM2DBL(min), NUM2DBL(max));
70
+ return self;
71
+ }
72
+
73
+ static VALUE
74
+ range_set_value(self, value)
75
+ VALUE self, value;
76
+ {
77
+ gtk_range_set_value(_SELF(self), NUM2DBL(value));
78
+ return self;
79
+ }
80
+
81
+ void
82
+ Init_gtk_range()
83
+ {
84
+ VALUE gRange = G_DEF_CLASS(GTK_TYPE_RANGE, "Range", mGtk);
85
+
86
+ rb_define_method(gRange, "value", range_get_value, 0);
87
+ rb_define_method(gRange, "set_increments", range_set_increments, 2);
88
+ rb_define_method(gRange, "set_range", range_set_range, 2);
89
+ rb_define_method(gRange, "set_value", range_set_value, 1);
90
+
91
+ G_DEF_SETTERS(gRange);
92
+
93
+ #if GTK_CHECK_VERSION(2,10,0)
94
+ /* GtkSensitivityType */
95
+ G_DEF_CLASS(GTK_TYPE_SENSITIVITY_TYPE, "SensitivityType", gRange);
96
+ G_DEF_CONSTANTS(gRange, GTK_TYPE_SENSITIVITY_TYPE, "GTK_");
97
+ #endif
98
+ }
@@ -0,0 +1,228 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgtkrc.c -
5
+
6
+ $Author: ggc $
7
+ $Date: 2007/07/13 16:07:32 $
8
+
9
+ Copyright (C) 2002-2005 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
+ /*
18
+ static VALUE
19
+ rc_scanner_new(self)
20
+ VALUE self;
21
+ {
22
+ return BOXED2RVAL(gtk_rc_scanner_new(), GTK_TYPE_GSCANNER);
23
+ }
24
+ */
25
+
26
+ static VALUE
27
+ rc_get_style(self, widget)
28
+ VALUE self, widget;
29
+ {
30
+ GtkStyle* style = gtk_rc_get_style(GTK_WIDGET(RVAL2GOBJ(widget)));
31
+ GType gtype = G_OBJECT_TYPE(style);
32
+ const gchar* name = G_OBJECT_TYPE_NAME(style);
33
+ if (! rb_const_defined_at(mGtk, rb_intern(name))){
34
+ G_DEF_CLASS(gtype, (gchar*)name, mGtk);
35
+ }
36
+ return GOBJ2RVAL(gtk_rc_get_style(GTK_WIDGET(RVAL2GOBJ(widget))));
37
+ }
38
+
39
+ static VALUE
40
+ rc_get_style_by_paths(argc, argv, self)
41
+ int argc;
42
+ VALUE *argv;
43
+ VALUE self;
44
+ {
45
+ VALUE settings, widget_path, class_path, klass;
46
+ GtkStyle* style;
47
+ GType gtype;
48
+ const gchar* name;
49
+
50
+ rb_scan_args(argc, argv, "13", &settings, &widget_path, &class_path, &klass);
51
+
52
+ style = gtk_rc_get_style_by_paths(GTK_SETTINGS(RVAL2GOBJ(settings)),
53
+ NIL_P(widget_path) ? NULL : RVAL2CSTR(widget_path),
54
+ NIL_P(class_path) ? NULL : RVAL2CSTR(class_path),
55
+ NIL_P(klass) ? G_TYPE_NONE : CLASS2GTYPE(klass));
56
+
57
+ if (style){
58
+ gtype = G_OBJECT_TYPE(style);
59
+ name = G_OBJECT_TYPE_NAME(style);
60
+ if (! rb_const_defined_at(mGtk, rb_intern(name))){
61
+ G_DEF_CLASS(gtype, (gchar*)name, mGtk);
62
+ }
63
+ return GOBJ2RVAL(style);
64
+ }
65
+ return Qnil;
66
+ }
67
+
68
+ static VALUE
69
+ rc_parse(self, filename)
70
+ VALUE self, filename;
71
+ {
72
+ gtk_rc_parse(RVAL2CSTR(filename));
73
+ return filename;
74
+ }
75
+
76
+ static VALUE
77
+ rc_parse_string(self, rc_string)
78
+ VALUE self, rc_string;
79
+ {
80
+ gtk_rc_parse_string(RVAL2CSTR(rc_string));
81
+ return rc_string;
82
+ }
83
+
84
+ static VALUE
85
+ rc_reparse_all(self)
86
+ VALUE self;
87
+ {
88
+ return CBOOL2RVAL(gtk_rc_reparse_all());
89
+ }
90
+
91
+ static VALUE
92
+ rc_reparse_all_for_settings(self, settings, force_load)
93
+ VALUE self, settings, force_load;
94
+ {
95
+ return CBOOL2RVAL(gtk_rc_reparse_all_for_settings(GTK_SETTINGS(RVAL2GOBJ(settings)),
96
+ RVAL2CBOOL(force_load)));
97
+ }
98
+
99
+ #if GTK_CHECK_VERSION(2,4,0)
100
+ static VALUE
101
+ rc_reset_styles(self, settings)
102
+ VALUE self, settings;
103
+ {
104
+ gtk_rc_reset_styles(GTK_SETTINGS(RVAL2GOBJ(settings)));
105
+ return settings;
106
+ }
107
+ #endif
108
+
109
+ static VALUE
110
+ rc_add_default_file(self, filename)
111
+ VALUE self, filename;
112
+ {
113
+ gtk_rc_add_default_file(RVAL2CSTR(filename));
114
+ return filename;
115
+ }
116
+
117
+ static VALUE
118
+ rc_get_default_files(self)
119
+ VALUE self;
120
+ {
121
+ gchar** files = gtk_rc_get_default_files();
122
+ VALUE ary = rb_ary_new();
123
+ while(*files){
124
+ rb_ary_push(ary, CSTR2RVAL(*files));
125
+ files++;
126
+ }
127
+ return ary;
128
+ }
129
+
130
+ static VALUE
131
+ rc_set_default_files(self, filenames)
132
+ VALUE self, filenames;
133
+ {
134
+ int i;
135
+ gchar** gfiles = g_new(gchar*, RARRAY_LEN(filenames) + 1);
136
+ for (i = 0; i < RARRAY_LEN(filenames); i++) {
137
+ gfiles[i] = RVAL2CSTR(RARRAY_PTR(filenames)[i]);
138
+ }
139
+ gfiles[RARRAY_LEN(filenames)] = NULL;
140
+ gtk_rc_set_default_files(gfiles);
141
+ return filenames;
142
+ }
143
+ /*
144
+ guint gtk_rc_parse_color (GScanner *scanner,
145
+ GdkColor *color);
146
+ guint gtk_rc_parse_color_full (GScanner *scanner,
147
+ GtkRcStyle *style,
148
+ GdkColor *color);
149
+ guint gtk_rc_parse_state (GScanner *scanner,
150
+ GtkStateType *state);
151
+ guint gtk_rc_parse_priority (GScanner *scanner,
152
+ GtkPathPriorityType *priority);
153
+ */
154
+
155
+ static VALUE
156
+ rc_find_module_in_path(self, module_file)
157
+ VALUE self, module_file;
158
+ {
159
+ return CSTR2RVAL2(gtk_rc_find_module_in_path(RVAL2CSTR(module_file)));
160
+ }
161
+
162
+ /*
163
+ gchar* gtk_rc_find_pixmap_in_path (GtkSettings *settings,
164
+ GScanner *scanner,
165
+ const gchar *pixmap_file);
166
+ */
167
+
168
+ static VALUE
169
+ rc_get_module_dir(self)
170
+ VALUE self;
171
+ {
172
+ return CSTR2RVAL2(gtk_rc_get_module_dir());
173
+ }
174
+
175
+ static VALUE
176
+ rc_get_im_module_path(self)
177
+ VALUE self;
178
+ {
179
+ return CSTR2RVAL(gtk_rc_get_im_module_path());
180
+ }
181
+
182
+ static VALUE
183
+ rc_get_im_module_file(self)
184
+ VALUE self;
185
+ {
186
+ return CSTR2RVAL(gtk_rc_get_im_module_file());
187
+ }
188
+
189
+ static VALUE
190
+ rc_get_theme_dir(self)
191
+ VALUE self;
192
+ {
193
+ return CSTR2RVAL2(gtk_rc_get_theme_dir());
194
+ }
195
+
196
+ void
197
+ Init_gtk_rc()
198
+ {
199
+ VALUE mRC = rb_define_module_under(mGtk, "RC");
200
+
201
+ rb_define_module_function(mRC, "get_style", rc_get_style, 1);
202
+ rb_define_module_function(mRC, "get_style_by_paths", rc_get_style_by_paths, -1);
203
+ rb_define_module_function(mRC, "parse", rc_parse, 1);
204
+ rb_define_module_function(mRC, "parse_string", rc_parse_string, 1);
205
+ rb_define_module_function(mRC, "reparse_all", rc_reparse_all, 0);
206
+ rb_define_module_function(mRC, "reparse_all_for_settings", rc_reparse_all_for_settings, 2);
207
+ #if GTK_CHECK_VERSION(2,4,0)
208
+ rb_define_module_function(mRC, "reset_styles", rc_reset_styles, 1);
209
+ #endif
210
+ rb_define_module_function(mRC, "add_default_file", rc_add_default_file, 1);
211
+ rb_define_module_function(mRC, "default_files", rc_get_default_files, 0);
212
+ rb_define_module_function(mRC, "set_default_files", rc_set_default_files, 1);
213
+ rb_define_module_function(mRC, "find_module_in_path", rc_find_module_in_path, 1);
214
+ rb_define_module_function(mRC, "module_dir", rc_get_module_dir, 0);
215
+ rb_define_module_function(mRC, "im_module_path", rc_get_im_module_path, 0);
216
+ rb_define_module_function(mRC, "im_module_file", rc_get_im_module_file, 0);
217
+ rb_define_module_function(mRC, "theme_dir", rc_get_theme_dir, 0);
218
+
219
+ G_DEF_SETTERS(mRC);
220
+
221
+ /* GtkRcFlags */
222
+ G_DEF_CLASS(GTK_TYPE_RC_FLAGS, "Flags", mRC);
223
+ G_DEF_CONSTANTS(mRC, GTK_TYPE_RC_FLAGS, "GTK_RC_");
224
+
225
+ /* GtkRcTokenType */
226
+ G_DEF_CLASS(GTK_TYPE_RC_TOKEN_TYPE, "TokenType", mRC);
227
+ G_DEF_CONSTANTS(mRC, GTK_TYPE_RC_TOKEN_TYPE, "GTK_RC_");
228
+ }
@@ -0,0 +1,184 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgtkrcstyle.c -
5
+
6
+ $Author: ggc $
7
+ $Date: 2006/06/22 19:52:54 $
8
+
9
+ Copyright (C) 2003 Masao Mutoh
10
+ ************************************************/
11
+
12
+ #include "global.h"
13
+
14
+ #define _SELF(rc) (GTK_RC_STYLE(RVAL2GOBJ(rc)))
15
+
16
+ static VALUE
17
+ rcstyle_initialize(self)
18
+ VALUE self;
19
+ {
20
+ G_INITIALIZE(self, gtk_rc_style_new());
21
+ return Qnil;
22
+ }
23
+
24
+ static VALUE
25
+ rcstyle_name(self)
26
+ VALUE self;
27
+ {
28
+ return CSTR2RVAL(_SELF(self)->name);
29
+ }
30
+
31
+ static VALUE
32
+ rcstyle_set_name(self, name)
33
+ VALUE self, name;
34
+ {
35
+ _SELF(self)->name = RVAL2CSTR(name);
36
+ return self;
37
+ }
38
+
39
+ static VALUE
40
+ rcstyle_bg_pixmap_name(self, idx)
41
+ VALUE self, idx;
42
+ {
43
+ int i = NUM2INT(idx);
44
+
45
+ if (i < 0 || 5 < i)
46
+ rb_raise(rb_eArgError, "state out of range");
47
+ return CSTR2RVAL(_SELF(self)->bg_pixmap_name[i]);
48
+ }
49
+
50
+ static VALUE
51
+ rcstyle_set_bg_pixmap_name(self, idx, bg_pixmap_name)
52
+ VALUE self, idx, bg_pixmap_name;
53
+ {
54
+ int i = NUM2INT(idx);
55
+
56
+ if (i < 0 || 5 < i)
57
+ rb_raise(rb_eArgError, "state out of range");
58
+ _SELF(self)->bg_pixmap_name[i] = RVAL2CSTR(bg_pixmap_name);
59
+ return self;
60
+ }
61
+
62
+ static VALUE
63
+ rcstyle_font_desc(self)
64
+ VALUE self;
65
+ {
66
+ PangoFontDescription* desc = _SELF(self)->font_desc;
67
+ return BOXED2RVAL(desc, PANGO_TYPE_FONT_DESCRIPTION);
68
+ }
69
+
70
+ static VALUE
71
+ rcstyle_set_font_desc(self, font_desc)
72
+ VALUE self, font_desc;
73
+ {
74
+ _SELF(self)->font_desc = (PangoFontDescription*)RVAL2BOXED(font_desc, PANGO_TYPE_FONT_DESCRIPTION);
75
+ return self;
76
+ }
77
+
78
+ static VALUE
79
+ rcstyle_color_flags(VALUE self, VALUE rb_state_type)
80
+ {
81
+ GtkStateType state_type;
82
+
83
+ state_type = RVAL2GTKSTATETYPE(rb_state_type);
84
+ return GTKRCFLAGS2RVAL(_SELF(self)->color_flags[state_type]);
85
+ }
86
+
87
+ static VALUE
88
+ rcstyle_set_color_flags(VALUE self, VALUE rb_state_type, VALUE flags)
89
+ {
90
+ GtkStateType state_type;
91
+
92
+ state_type = RVAL2GTKSTATETYPE(rb_state_type);
93
+ _SELF(self)->color_flags[state_type] = RVAL2GTKRCFLAGS(flags);
94
+ return self;
95
+ }
96
+
97
+ #define DEFINE_STYLE_COLOR(type) \
98
+ static VALUE \
99
+ rcstyle_set_ ## type(self, idx, r, g, b) \
100
+ VALUE self, idx, r, g, b; \
101
+ { \
102
+ GdkColor *color; \
103
+ int i = NUM2INT(idx); \
104
+ \
105
+ if (i < 0 || 5 < i) rb_raise(rb_eArgError, "state out of range"); \
106
+ color = &(_SELF(self) -> type [i]); \
107
+ color->red = NUM2INT(r); \
108
+ color->green = NUM2INT(g); \
109
+ color->blue = NUM2INT(b); \
110
+ return self;\
111
+ } \
112
+ static VALUE \
113
+ rcstyle_ ## type(self, idx) \
114
+ VALUE self, idx; \
115
+ { \
116
+ int i = NUM2INT(idx); \
117
+ \
118
+ if (i < 0 || 5 < i) rb_raise(rb_eArgError, "state out of range"); \
119
+ return BOXED2RVAL(&_SELF(self)-> type [i], GDK_TYPE_COLOR); \
120
+ } \
121
+
122
+ DEFINE_STYLE_COLOR(fg);
123
+ DEFINE_STYLE_COLOR(bg);
124
+ DEFINE_STYLE_COLOR(text);
125
+ DEFINE_STYLE_COLOR(base);
126
+
127
+ static VALUE
128
+ rcstyle_xthickness(self)
129
+ VALUE self;
130
+ {
131
+ return INT2NUM(_SELF(self)->xthickness);
132
+ }
133
+
134
+ static VALUE
135
+ rcstyle_set_xthickness(self, xthickness)
136
+ VALUE self, xthickness;
137
+ {
138
+ _SELF(self)->xthickness = NUM2INT(xthickness);
139
+ return self;
140
+ }
141
+
142
+ static VALUE
143
+ rcstyle_ythickness(self)
144
+ VALUE self;
145
+ {
146
+ return INT2NUM(_SELF(self)->ythickness);
147
+ }
148
+
149
+ static VALUE
150
+ rcstyle_set_ythickness(self, ythickness)
151
+ VALUE self, ythickness;
152
+ {
153
+ _SELF(self)->ythickness = NUM2INT(ythickness);
154
+ return self;
155
+ }
156
+
157
+ void
158
+ Init_gtk_rcstyle()
159
+ {
160
+ VALUE gRcStyle = G_DEF_CLASS(GTK_TYPE_RC_STYLE, "RcStyle", mGtk);
161
+ rb_define_method(gRcStyle, "initialize", rcstyle_initialize, 0);
162
+ rb_define_method(gRcStyle, "color_flags", rcstyle_color_flags, 1);
163
+ rb_define_method(gRcStyle, "set_color_flags", rcstyle_set_color_flags, 2);
164
+ rb_define_method(gRcStyle, "name", rcstyle_name, 0);
165
+ rb_define_method(gRcStyle, "set_name", rcstyle_set_name, 1);
166
+ rb_define_method(gRcStyle, "bg_pixmap_name", rcstyle_bg_pixmap_name, 1);
167
+ rb_define_method(gRcStyle, "set_bg_pixmap_name", rcstyle_set_bg_pixmap_name, 2);
168
+ rb_define_method(gRcStyle, "font_desc", rcstyle_font_desc, 0);
169
+ rb_define_method(gRcStyle, "set_font_desc", rcstyle_set_font_desc, 1);
170
+ rb_define_method(gRcStyle, "fg", rcstyle_fg, 1);
171
+ rb_define_method(gRcStyle, "bg", rcstyle_bg, 1);
172
+ rb_define_method(gRcStyle, "text", rcstyle_text, 1);
173
+ rb_define_method(gRcStyle, "base", rcstyle_base, 1);
174
+ rb_define_method(gRcStyle, "set_fg", rcstyle_set_fg, 4);
175
+ rb_define_method(gRcStyle, "set_bg", rcstyle_set_bg, 4);
176
+ rb_define_method(gRcStyle, "set_text", rcstyle_set_text, 4);
177
+ rb_define_method(gRcStyle, "set_base", rcstyle_set_base, 4);
178
+ rb_define_method(gRcStyle, "xthickness", rcstyle_xthickness, 0);
179
+ rb_define_method(gRcStyle, "ythickness", rcstyle_ythickness, 0);
180
+ rb_define_method(gRcStyle, "set_xthickness", rcstyle_set_xthickness, 1);
181
+ rb_define_method(gRcStyle, "set_ythickness", rcstyle_set_ythickness, 1);
182
+
183
+ G_DEF_SETTERS(gRcStyle);
184
+ }