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,122 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgdkatom.c -
5
+
6
+ $Author: sakai $
7
+ $Date: 2007/07/15 15:03:11 $
8
+
9
+ Copyright (C) 2002,2003 Masao Mutoh
10
+ ************************************************/
11
+
12
+
13
+ #include "global.h"
14
+
15
+ #define _SELF(a) (((GdkAtomData*)RVAL2BOXED(a, GDK_TYPE_ATOM))->atom)
16
+
17
+ /*****************************************/
18
+ GdkAtomData*
19
+ gdk_atom_copy (const GdkAtom atom)
20
+ {
21
+ GdkAtomData* data;
22
+ data = g_new(GdkAtomData, 1);
23
+ data->atom = atom;
24
+ return data;
25
+ }
26
+
27
+ GType
28
+ gdk_atom_get_type (void)
29
+ {
30
+ static GType our_type = 0;
31
+ if (our_type == 0)
32
+ our_type = g_boxed_type_register_static ("GdkAtomData",
33
+ (GBoxedCopyFunc)gdk_atom_copy,
34
+ (GBoxedFreeFunc)g_free);
35
+ return our_type;
36
+ }
37
+
38
+
39
+ GdkAtom
40
+ get_gdkatom(atom)
41
+ VALUE atom;
42
+ {
43
+ if (TYPE(atom) == T_STRING)
44
+ return gdk_atom_intern(RVAL2CSTR(atom), FALSE);
45
+ return ((GdkAtomData*)RVAL2BOXED(atom, GDK_TYPE_ATOM))->atom;
46
+ }
47
+ /*****************************************/
48
+
49
+ static VALUE
50
+ gdkatom_s_intern(argc, argv, self)
51
+ int argc;
52
+ VALUE *argv;
53
+ VALUE self;
54
+ {
55
+ VALUE name;
56
+ VALUE exist;
57
+
58
+ rb_scan_args(argc, argv, "11", &name, &exist);
59
+
60
+ return BOXED2RVAL(gdk_atom_intern(RVAL2CSTR(name), RVAL2CBOOL(exist)),
61
+ GDK_TYPE_ATOM);
62
+ }
63
+
64
+ /* We don't need them.
65
+ GdkAtom gdk_atom_intern_static_string(const gchar *atom_name);
66
+ */
67
+
68
+ static VALUE
69
+ gdkatom_initialize(self, num)
70
+ VALUE self, num;
71
+ {
72
+ guint atom = FIX2INT(num);
73
+ if (atom == 0){
74
+ /* This is a trick for passing 0(NULL) */
75
+ G_INITIALIZE(self, GUINT_TO_POINTER(1));
76
+ _SELF(self) = GUINT_TO_POINTER(GDK_NONE);
77
+ } else {
78
+ G_INITIALIZE(self, GUINT_TO_POINTER(atom));
79
+ }
80
+
81
+ return Qnil;
82
+ }
83
+
84
+ static VALUE
85
+ gdkatom_name(self)
86
+ VALUE self;
87
+ {
88
+ return CSTR2RVAL2(gdk_atom_name(_SELF(self)));
89
+ }
90
+
91
+ static VALUE
92
+ gdkatom_to_i(self)
93
+ VALUE self;
94
+ {
95
+ return UINT2NUM(GPOINTER_TO_UINT(_SELF(self)));
96
+ }
97
+
98
+ static VALUE
99
+ gdkatom_eq(self, other)
100
+ VALUE self, other;
101
+ {
102
+ return CBOOL2RVAL(_SELF(self) == _SELF(other));
103
+ }
104
+
105
+ void
106
+ Init_gtk_gdk_atom()
107
+ {
108
+ VALUE none;
109
+ VALUE gdkAtom = G_DEF_CLASS(GDK_TYPE_ATOM, "Atom", mGdk);
110
+
111
+ rb_define_singleton_method(gdkAtom, "intern", gdkatom_s_intern, -1);
112
+
113
+ rb_define_method(gdkAtom, "initialize", gdkatom_initialize, 1);
114
+ rb_define_method(gdkAtom, "name", gdkatom_name, 0);
115
+ rb_define_method(gdkAtom, "to_i", gdkatom_to_i, 0);
116
+ rb_define_method(gdkAtom, "==", gdkatom_eq, 1);
117
+
118
+ /* This is a trick to define GDK_NONE as a BOXED object */
119
+ none = BOXED2RVAL((gpointer)1, GDK_TYPE_ATOM);
120
+ rb_define_const(gdkAtom, "NONE", none);
121
+ _SELF(none) = GDK_NONE;
122
+ }
@@ -0,0 +1,100 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgdkcairo.c -
5
+
6
+ $Author: ktou $
7
+ $Date: 2007/08/13 11:09:22 $
8
+
9
+ Copyright (C) 2005 Kouhei Sutou
10
+ ************************************************/
11
+
12
+ #include "global.h"
13
+
14
+ #if GTK_CHECK_VERSION(2,8,0) && defined(HAVE_RB_CAIRO_H)
15
+ # define CAIRO_AVAILABLE 1
16
+ #endif
17
+
18
+ #ifdef CAIRO_AVAILABLE
19
+
20
+ #include <rb_cairo.h>
21
+
22
+ #define _SELF(self) RVAL2CRCONTEXT(self)
23
+
24
+ static VALUE
25
+ gdkdraw_cairo_set_source_color(self, color)
26
+ VALUE self, color;
27
+ {
28
+ gdk_cairo_set_source_color(_SELF(self), RVAL2GDKCOLOR(color));
29
+ rb_cairo_check_status(cairo_status(_SELF(self)));
30
+ return self;
31
+ }
32
+
33
+ /* Move to gdkpixbuf/rbgdk-pixbuf.c
34
+ void gdk_cairo_set_source_pixbuf (cairo_t *cr,
35
+ GdkPixbuf *pixbuf,
36
+ double pixbuf_x,
37
+ double pixbuf_y);
38
+ */
39
+
40
+
41
+ #if GTK_CHECK_VERSION(2,10,0)
42
+ static VALUE
43
+ gdkdraw_cairo_set_source_pixmap(self, pixmap, pixmap_x, pixmap_y)
44
+ VALUE self, pixmap, pixmap_x, pixmap_y;
45
+ {
46
+ gdk_cairo_set_source_pixmap(_SELF(self), GDK_PIXMAP(RVAL2GOBJ(pixmap)),
47
+ NUM2DBL(pixmap_x), NUM2DBL(pixmap_y));
48
+ rb_cairo_check_status(cairo_status(_SELF(self)));
49
+ return self;
50
+ }
51
+ #endif
52
+
53
+ static VALUE
54
+ gdkdraw_cairo_rectangle(self, rectangle)
55
+ VALUE self, rectangle;
56
+ {
57
+ gdk_cairo_rectangle(_SELF(self),
58
+ (GdkRectangle*)RVAL2BOXED(rectangle, GDK_TYPE_RECTANGLE));
59
+ rb_cairo_check_status(cairo_status(_SELF(self)));
60
+ return self;
61
+ }
62
+
63
+ static VALUE
64
+ gdkdraw_cairo_region(self, region)
65
+ VALUE self, region;
66
+ {
67
+ gdk_cairo_region(_SELF(self), (GdkRegion*)RVAL2BOXED(region, GDK_TYPE_REGION));
68
+ rb_cairo_check_status(cairo_status(_SELF(self)));
69
+ return self;
70
+ }
71
+ #endif
72
+
73
+ static VALUE
74
+ cairo_available_p(VALUE self)
75
+ {
76
+ #if CAIRO_AVAILABLE
77
+ return Qtrue;
78
+ #else
79
+ return Qfalse;
80
+ #endif
81
+ }
82
+
83
+ void
84
+ Init_gtk_gdk_cairo()
85
+ {
86
+ #if CAIRO_AVAILABLE
87
+ rb_define_method(rb_cCairo_Context, "set_source_gdk_color",
88
+ gdkdraw_cairo_set_source_color, 1);
89
+ #if GTK_CHECK_VERSION(2,10,0)
90
+ rb_define_method(rb_cCairo_Context, "set_source_pixmap", gdkdraw_cairo_set_source_pixmap, 3);
91
+ #endif
92
+ rb_define_method(rb_cCairo_Context, "gdk_rectangle", gdkdraw_cairo_rectangle, 1);
93
+ rb_define_method(rb_cCairo_Context, "gdk_region", gdkdraw_cairo_region, 1);
94
+
95
+ G_DEF_SETTERS(rb_cCairo_Context);
96
+ #endif
97
+
98
+ rb_define_module_function(mGdk, "cairo_available?", cairo_available_p, 0);
99
+ }
100
+
@@ -0,0 +1,151 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgdkcolor.c -
5
+
6
+ $Author: ggc $
7
+ $Date: 2007/07/13 14:27:08 $
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
+ #define _SELF(c) (RVAL2GDKCOLOR(c))
18
+
19
+ VALUE rb_cGdkColor = Qnil;
20
+
21
+ static VALUE
22
+ gdkcolor_initialize(self, red, green, blue)
23
+ VALUE self;
24
+ VALUE red, green, blue;
25
+ {
26
+ GdkColor c;
27
+ c.pixel = 0;
28
+ c.red = NUM2INT(red);
29
+ c.green = NUM2INT(green);
30
+ c.blue = NUM2INT(blue);
31
+
32
+ G_INITIALIZE(self, &c);
33
+
34
+ return Qnil;
35
+ }
36
+
37
+ static VALUE
38
+ gdkcolor_s_parse(self, name)
39
+ VALUE self;
40
+ VALUE name;
41
+ {
42
+ GdkColor c;
43
+ if (! gdk_color_parse(RVAL2CSTR(name), &c)) {
44
+ rb_raise(rb_eArgError, "can't parse color name `%s'", RVAL2CSTR(name));
45
+ }
46
+ return BOXED2RVAL(&c, GDK_TYPE_COLOR);
47
+ }
48
+
49
+ static VALUE
50
+ gdkcolor_pixel(self)
51
+ VALUE self;
52
+ {
53
+ return INT2NUM(_SELF(self)->pixel);
54
+ }
55
+
56
+ static VALUE
57
+ gdkcolor_red(self)
58
+ VALUE self;
59
+ {
60
+
61
+ return INT2FIX(_SELF(self)->red);
62
+ }
63
+
64
+ static VALUE
65
+ gdkcolor_set_red(self, red)
66
+ VALUE self;
67
+ VALUE red;
68
+ {
69
+ _SELF(self)->red = NUM2INT(red);
70
+ return self;
71
+ }
72
+
73
+ static VALUE
74
+ gdkcolor_green(self)
75
+ VALUE self;
76
+ {
77
+ return INT2FIX(_SELF(self)->green);
78
+ }
79
+
80
+ static VALUE
81
+ gdkcolor_set_green(self, green)
82
+ VALUE self;
83
+ VALUE green;
84
+ {
85
+ _SELF(self)->green = NUM2INT(green);
86
+ return self;
87
+ }
88
+
89
+ static VALUE
90
+ gdkcolor_blue(self)
91
+ VALUE self;
92
+ {
93
+ return INT2FIX(_SELF(self)->blue);
94
+ }
95
+
96
+ static VALUE
97
+ gdkcolor_set_blue(self, blue)
98
+ VALUE self;
99
+ VALUE blue;
100
+ {
101
+ _SELF(self)->blue = NUM2INT(blue);
102
+ return self;
103
+ }
104
+
105
+ static VALUE
106
+ gdkcolor_to_a(self)
107
+ VALUE self;
108
+ {
109
+ GdkColor *c = _SELF(self);
110
+ return rb_ary_new3(3, INT2FIX(c->red),
111
+ INT2FIX(c->green), INT2FIX(c->blue));
112
+ }
113
+
114
+ static VALUE
115
+ gdkcolor_equal(self, other)
116
+ VALUE self, other;
117
+ {
118
+ return CBOOL2RVAL(gdk_color_equal(_SELF(self), _SELF(other)));
119
+ }
120
+
121
+ #if GTK_CHECK_VERSION(2, 12, 0)
122
+ static VALUE
123
+ gdkcolor_to_string(VALUE self, VALUE other)
124
+ {
125
+ return CSTR2RVAL_FREE(gdk_color_to_string(_SELF(self)));
126
+ }
127
+ #endif
128
+
129
+ void
130
+ Init_gtk_gdk_color()
131
+ {
132
+ rb_cGdkColor = G_DEF_CLASS(GDK_TYPE_COLOR, "Color", mGdk);
133
+
134
+ rb_define_singleton_method(rb_cGdkColor, "parse", gdkcolor_s_parse, 1);
135
+ rb_define_method(rb_cGdkColor, "initialize", gdkcolor_initialize, 3);
136
+ rb_define_method(rb_cGdkColor, "pixel", gdkcolor_pixel, 0);
137
+ rb_define_method(rb_cGdkColor, "red", gdkcolor_red, 0);
138
+ rb_define_method(rb_cGdkColor, "set_red", gdkcolor_set_red, 1);
139
+ rb_define_method(rb_cGdkColor, "green", gdkcolor_green, 0);
140
+ rb_define_method(rb_cGdkColor, "set_green", gdkcolor_set_green, 1);
141
+ rb_define_method(rb_cGdkColor, "blue", gdkcolor_blue, 0);
142
+ rb_define_method(rb_cGdkColor, "set_blue", gdkcolor_set_blue, 1);
143
+ rb_define_method(rb_cGdkColor, "to_a", gdkcolor_to_a, 0);
144
+ rb_define_method(rb_cGdkColor, "==", gdkcolor_equal, 1);
145
+ #if GTK_CHECK_VERSION(2, 12, 0)
146
+ rb_define_method(rb_cGdkColor, "to_s", gdkcolor_to_string, 0);
147
+ #endif
148
+
149
+ G_DEF_SETTERS(rb_cGdkColor);
150
+ }
151
+
@@ -0,0 +1,142 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgdkcolormap.c -
5
+
6
+ $Author: ggc $
7
+ $Date: 2007/07/13 16:07:31 $
8
+
9
+ Copyright (C) 2002,2003 Masao Mutoh
10
+
11
+ This file is devided from rbgdkcolor.c.
12
+ rbgdkcolor.c -
13
+ Copyright (C) 1998-2000 Yukihiro Matsumoto,
14
+ Daisuke Kanda,
15
+ Hiroshi Igarashi
16
+ ************************************************/
17
+
18
+ #include "global.h"
19
+
20
+ #define _SELF(self) (GDK_COLORMAP(RVAL2GOBJ(self)))
21
+
22
+ static VALUE
23
+ gdkcmap_initialize(self, visual, allocate)
24
+ VALUE self, visual, allocate;
25
+ {
26
+ GdkColormap *cmap = gdk_colormap_new(GDK_VISUAL(RVAL2GOBJ(visual)),
27
+ RVAL2CBOOL(allocate));
28
+ G_INITIALIZE(self, cmap);
29
+ return Qnil;
30
+ }
31
+
32
+ static VALUE
33
+ gdkcmap_s_get_system(self)
34
+ VALUE self;
35
+ {
36
+ return GOBJ2RVAL(gdk_colormap_get_system());
37
+ }
38
+
39
+ /* Don't implement this. Because API is ugly
40
+ (especially treating of "success").
41
+ Use Gdk::Colormap#alloc_color instead.
42
+ gint gdk_colormap_alloc_colors (GdkColormap *colormap,
43
+ GdkColor *colors,
44
+ gint ncolors,
45
+ gboolean writeable,
46
+ gboolean best_match,
47
+ gboolean *success);
48
+ */
49
+
50
+ static VALUE
51
+ gdkcmap_alloc_color(self, color, writeable, best_match)
52
+ VALUE self, color, writeable, best_match;
53
+ {
54
+ gboolean result;
55
+ GdkColor *c = RVAL2GDKCOLOR(color);
56
+ result = gdk_colormap_alloc_color(_SELF(self), c,
57
+ RVAL2CBOOL(writeable), RVAL2CBOOL(best_match));
58
+ return result ? INT2NUM(c->pixel) : Qnil;
59
+ }
60
+
61
+ /* Don't implement Gdk::Colormap#free_colors.
62
+ Because it should be pair with Gdk::Colormap#alloc_colors */
63
+ static VALUE
64
+ gdkcmap_free_color(self, color)
65
+ VALUE self, color;
66
+ {
67
+ gdk_colormap_free_colors(_SELF(self), RVAL2GDKCOLOR(color), 1);
68
+ return self;
69
+ }
70
+
71
+ static VALUE
72
+ gdkcmap_query_color(self, pixel)
73
+ VALUE self, pixel;
74
+ {
75
+ GdkColor color;
76
+ gdk_colormap_query_color(_SELF(self), NUM2ULONG(pixel), &color);
77
+ return GDKCOLOR2RVAL(&color);
78
+ }
79
+
80
+ static VALUE
81
+ gdkcmap_get_visual(self)
82
+ VALUE self;
83
+ {
84
+ return GOBJ2RVAL(gdk_colormap_get_visual(_SELF(self)));
85
+ }
86
+
87
+ #if GTK_CHECK_VERSION(2,2,0)
88
+ static VALUE
89
+ gdkcmap_get_screen(self)
90
+ VALUE self;
91
+ {
92
+ return GOBJ2RVAL(gdk_colormap_get_screen(_SELF(self)));
93
+ }
94
+ #endif
95
+
96
+ static VALUE
97
+ gdkcmap_colors(self)
98
+ VALUE self;
99
+ {
100
+ GdkColormap *cmap;
101
+ GdkColor *colors;
102
+ GdkVisual *visual;
103
+ VALUE ary;
104
+ int i;
105
+
106
+ cmap = _SELF(self);
107
+ colors = cmap->colors;
108
+
109
+ visual = gdk_colormap_get_visual(cmap);
110
+
111
+ if (visual->type == GDK_VISUAL_GRAYSCALE ||
112
+ visual->type == GDK_VISUAL_PSEUDO_COLOR) {
113
+ ary = rb_ary_new2(cmap->size);
114
+ for (i = 0; i < cmap->size; i++) {
115
+ rb_ary_push(ary, BOXED2RVAL(colors, GDK_TYPE_COLOR));
116
+ colors++;
117
+ }
118
+ return ary;
119
+ } else {
120
+ return Qnil;
121
+ }
122
+ }
123
+
124
+ void
125
+ Init_gtk_gdk_colormap()
126
+ {
127
+ VALUE gdkColormap = G_DEF_CLASS(GDK_TYPE_COLORMAP, "Colormap", mGdk);
128
+
129
+ rb_define_singleton_method(gdkColormap, "system",
130
+ gdkcmap_s_get_system, 0);
131
+ rb_define_method(gdkColormap, "initialize", gdkcmap_initialize, 2);
132
+ rb_define_method(gdkColormap, "alloc_color", gdkcmap_alloc_color, 3);
133
+ rb_define_method(gdkColormap, "free_color", gdkcmap_free_color, 1);
134
+ rb_define_method(gdkColormap, "query_color", gdkcmap_query_color, 1);
135
+ rb_define_method(gdkColormap, "visual", gdkcmap_get_visual, 0);
136
+ #if GTK_CHECK_VERSION(2,2,0)
137
+ rb_define_method(gdkColormap, "screen", gdkcmap_get_screen, 0);
138
+ #endif
139
+ rb_define_method(gdkColormap, "colors", gdkcmap_colors, 0);
140
+ }
141
+
142
+