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,216 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgtkaccelgroup.c -
5
+
6
+ $Author: ggc $
7
+ $Date: 2007/07/13 16:07:31 $
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(w) GTK_ACCEL_GROUP(RVAL2GOBJ(w))
18
+ #define RVAL2MOD(mods) (NIL_P(mods) ? 0 : RVAL2GFLAGS(mods, GDK_TYPE_MODIFIER_TYPE))
19
+
20
+ static VALUE
21
+ gaccelgrp_initialize(self)
22
+ VALUE self;
23
+ {
24
+ G_INITIALIZE(self, gtk_accel_group_new());
25
+ return Qnil;
26
+ }
27
+
28
+ static VALUE
29
+ gaccelgrp_connect(argc, argv, self)
30
+ int argc;
31
+ VALUE *argv;
32
+ VALUE self;
33
+ {
34
+ VALUE key, mods, flags, path, closure;
35
+ GClosure *rclosure;
36
+
37
+ if (argc > 2){
38
+ rb_scan_args(argc, argv, "31", &key, &mods, &flags, &closure);
39
+ if (NIL_P(closure)){
40
+ rclosure = g_rclosure_new(rb_block_proc(), Qnil, NULL);
41
+ } else {
42
+ rclosure = (GClosure*)RVAL2BOXED(closure, G_TYPE_CLOSURE);
43
+ }
44
+ g_rclosure_attach(rclosure, self);
45
+ gtk_accel_group_connect(_SELF(self), NUM2UINT(key),
46
+ RVAL2MOD(mods),
47
+ RVAL2GFLAGS(flags, GTK_TYPE_ACCEL_FLAGS),
48
+ rclosure);
49
+ } else {
50
+ rb_scan_args(argc, argv, "11", &path, &closure);
51
+ if (NIL_P(closure)){
52
+ rclosure = g_rclosure_new(rb_block_proc(), Qnil, NULL);
53
+ } else {
54
+ rclosure = (GClosure*)RVAL2BOXED(closure, G_TYPE_CLOSURE);
55
+ }
56
+ g_rclosure_attach(rclosure, self);
57
+ gtk_accel_group_connect_by_path(_SELF(self), RVAL2CSTR(path), rclosure);
58
+ }
59
+ return self;
60
+ }
61
+
62
+ static VALUE
63
+ gaccelgrp_disconnect_key(self, key, mods)
64
+ VALUE self, key, mods;
65
+ {
66
+ return CBOOL2RVAL(gtk_accel_group_disconnect_key(_SELF(self), NUM2UINT(key),
67
+ RVAL2MOD(mods)));
68
+ }
69
+
70
+ static VALUE
71
+ gaccelgrp_query(self, key, mods)
72
+ VALUE self, key, mods;
73
+ {
74
+ GtkAccelGroupEntry *entries;
75
+ guint n_entries;
76
+ int cnt;
77
+ VALUE result;
78
+
79
+ entries = gtk_accel_group_query(_SELF(self), NUM2UINT(key),
80
+ RVAL2MOD(mods), &n_entries);
81
+ if(n_entries == 0){
82
+ return Qnil;
83
+ }
84
+ else{
85
+ result = rb_ary_new2(n_entries);
86
+ for(cnt=0; cnt<n_entries; cnt++, entries++)
87
+ rb_ary_push(result, BOXED2RVAL(entries, GTK_TYPE_ACCEL_GROUP_ENTRY));
88
+ return result;
89
+ }
90
+ }
91
+
92
+ static VALUE
93
+ gaccelgrp_disconnect(self, closure)
94
+ VALUE self, closure;
95
+ {
96
+ return CBOOL2RVAL(gtk_accel_group_disconnect(_SELF(self),
97
+ (GClosure*)RVAL2BOXED(closure, G_TYPE_CLOSURE)));
98
+ }
99
+
100
+ static VALUE
101
+ gaccelgrp_s_from_accel_closure(self, closure)
102
+ VALUE self, closure;
103
+ {
104
+ return GOBJ2RVAL(gtk_accel_group_from_accel_closure(
105
+ (GClosure*)RVAL2BOXED(closure, G_TYPE_CLOSURE)));
106
+ }
107
+
108
+ #if GTK_CHECK_VERSION(2,2,0)
109
+ static gboolean
110
+ gaccelgrp_find_func(key, closure, func)
111
+ GtkAccelKey *key;
112
+ GClosure *closure;
113
+ gpointer func;
114
+ {
115
+ return RVAL2CBOOL(rb_funcall((VALUE)func, id_call, 2,
116
+ BOXED2RVAL(key, GTK_TYPE_ACCEL_KEY),
117
+ BOXED2RVAL(closure, G_TYPE_CLOSURE)));
118
+ }
119
+
120
+ static VALUE
121
+ gaccelgrp_find(self)
122
+ VALUE self;
123
+ {
124
+ GtkAccelKey *result;
125
+ volatile VALUE func = rb_block_proc();
126
+
127
+ result = gtk_accel_group_find(_SELF(self),
128
+ (GtkAccelGroupFindFunc)gaccelgrp_find_func,
129
+ (gpointer)func);
130
+ return BOXED2RVAL(result, GTK_TYPE_ACCEL_KEY);
131
+ }
132
+ #endif
133
+
134
+ #if GTK_CHECK_VERSION(2,4,0)
135
+ static VALUE
136
+ gaccelgrp_activate(self, accel_quark, acceleratable, accel_key, accel_mods)
137
+ VALUE self, accel_quark, acceleratable, accel_key, accel_mods;
138
+ {
139
+ GQuark quark = 0;
140
+ if (TYPE(accel_quark) == T_STRING){
141
+ quark = g_quark_from_string(RVAL2CSTR(accel_quark));
142
+ } else {
143
+ quark = NUM2UINT(quark);
144
+ }
145
+ return CBOOL2RVAL(gtk_accel_group_activate(_SELF(self), quark, RVAL2GOBJ(acceleratable),
146
+ NUM2UINT(accel_key), RVAL2MOD(accel_mods)));
147
+ }
148
+ #endif
149
+
150
+ static VALUE
151
+ _gaccelgrp_lock_ensure(self)
152
+ VALUE self;
153
+ {
154
+ gtk_accel_group_unlock(_SELF(self));
155
+ return Qnil;
156
+ }
157
+
158
+ static VALUE
159
+ gaccelgrp_lock(self)
160
+ VALUE self;
161
+ {
162
+ gtk_accel_group_lock(_SELF(self));
163
+ if (rb_block_given_p()){
164
+ rb_ensure(rb_yield, self, _gaccelgrp_lock_ensure , self);
165
+ }
166
+ return self;
167
+ }
168
+
169
+ static VALUE
170
+ gaccelgrp_unlock(self)
171
+ VALUE self;
172
+ {
173
+ gtk_accel_group_unlock(_SELF(self));
174
+ return self;
175
+ }
176
+
177
+
178
+ static VALUE
179
+ gaccelgrp_s_activate(self, obj, key, modtype)
180
+ VALUE self, obj, key, modtype;
181
+ {
182
+ return CBOOL2RVAL(gtk_accel_groups_activate(G_OBJECT(RVAL2GOBJ(obj)),
183
+ NUM2UINT(key),
184
+ RVAL2MOD(modtype)));
185
+ }
186
+
187
+ static VALUE
188
+ gaccelgrp_s_from_object(self, object)
189
+ VALUE self, object;
190
+ {
191
+ /* Owned by GTK+ */
192
+ return GSLIST2ARY(gtk_accel_groups_from_object(RVAL2GOBJ(object)));
193
+ }
194
+
195
+ void
196
+ Init_gtk_accel_group()
197
+ {
198
+ VALUE gAccelGroup = G_DEF_CLASS(GTK_TYPE_ACCEL_GROUP, "AccelGroup", mGtk);
199
+
200
+ rb_define_singleton_method(gAccelGroup, "activate", gaccelgrp_s_activate, 3);
201
+ rb_define_singleton_method(gAccelGroup, "from_object", gaccelgrp_s_from_object, 1);
202
+ rb_define_singleton_method(gAccelGroup, "from_accel_closure", gaccelgrp_s_from_accel_closure, 1);
203
+ rb_define_method(gAccelGroup, "initialize", gaccelgrp_initialize, 0);
204
+ #if GTK_CHECK_VERSION(2,4,0)
205
+ rb_define_method(gAccelGroup, "activate", gaccelgrp_activate, 4);
206
+ #endif
207
+ rb_define_method(gAccelGroup, "lock", gaccelgrp_lock, 0);
208
+ rb_define_method(gAccelGroup, "unlock", gaccelgrp_unlock, 0);
209
+ rb_define_method(gAccelGroup, "connect", gaccelgrp_connect, -1);
210
+ rb_define_method(gAccelGroup, "disconnect", gaccelgrp_disconnect, 1);
211
+ rb_define_method(gAccelGroup, "disconnect_key", gaccelgrp_disconnect_key, 2);
212
+ rb_define_method(gAccelGroup, "query", gaccelgrp_query, 2);
213
+ #if GTK_CHECK_VERSION(2,2,0)
214
+ rb_define_method(gAccelGroup, "find", gaccelgrp_find, 0);
215
+ #endif
216
+ }
@@ -0,0 +1,85 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgtkaccelgroupentry.c -
5
+
6
+ $Author: sakai $
7
+ $Date: 2003/02/17 11:29:20 $
8
+
9
+ Copyright (C) 2002,2003 OGASAWARA, Takeshi
10
+ ************************************************/
11
+ #include "global.h"
12
+
13
+ #define _SELF(s) ((GtkAccelGroupEntry*)RVAL2BOXED(s, GTK_TYPE_ACCEL_GROUP_ENTRY))
14
+
15
+ static GtkAccelGroupEntry*
16
+ agentry_copy(const GtkAccelGroupEntry *agentry)
17
+ {
18
+ GtkAccelGroupEntry *new_agentry;
19
+ g_return_val_if_fail (agentry != NULL, NULL);
20
+ new_agentry = g_new(GtkAccelGroupEntry, 1);
21
+ *new_agentry = *agentry;
22
+ return new_agentry;
23
+ }
24
+
25
+ GType
26
+ gtk_accel_group_entry_get_type()
27
+ {
28
+ static GType our_type = 0;
29
+ if(our_type == 0)
30
+ our_type = g_boxed_type_register_static("GtkAccelGroupEntry",
31
+ (GBoxedCopyFunc)agentry_copy,
32
+ (GBoxedFreeFunc)g_free);
33
+ return our_type;
34
+ }
35
+
36
+ /*
37
+ struct _GtkAccelGroupEntry
38
+ {
39
+ GtkAccelKey key;
40
+ GClosure *closure;
41
+ GQuark accel_path_quark;
42
+ };
43
+ */
44
+ static VALUE
45
+ agentry_initialize(self)
46
+ VALUE self;
47
+ {
48
+ GtkAccelGroupEntry key;
49
+ G_INITIALIZE(self, &key);
50
+ return Qnil;
51
+ }
52
+
53
+ static VALUE
54
+ agentry_get_accel_key(self)
55
+ VALUE self;
56
+ {
57
+ return BOXED2RVAL(&_SELF(self)->key, GTK_TYPE_ACCEL_KEY);
58
+ }
59
+
60
+ static VALUE
61
+ agentry_get_closure(self)
62
+ VALUE self;
63
+ {
64
+ return BOXED2RVAL(_SELF(self)->closure, G_TYPE_CLOSURE);
65
+ }
66
+
67
+ static VALUE
68
+ agentry_get_accel_path(self)
69
+ VALUE self;
70
+ {
71
+ const gchar *quark_str = g_quark_to_string(_SELF(self)->accel_path_quark);
72
+ return quark_str ? CSTR2RVAL(quark_str) : Qnil;
73
+ }
74
+
75
+ void
76
+ Init_agentry()
77
+ {
78
+ VALUE gAccelGroupEntry = G_DEF_CLASS(GTK_TYPE_ACCEL_GROUP_ENTRY, "AccelGroupEntry", mGtk);
79
+
80
+ rb_define_method(gAccelGroupEntry, "initialize", agentry_initialize, 0);
81
+
82
+ rb_define_method(gAccelGroupEntry, "accel_key", agentry_get_accel_key, 0);
83
+ rb_define_method(gAccelGroupEntry, "closure", agentry_get_closure, 0);
84
+ rb_define_method(gAccelGroupEntry, "accel_path", agentry_get_accel_path, 0);
85
+ }
@@ -0,0 +1,116 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgtkaccelkey.c -
5
+
6
+ $Author: mutoh $
7
+ $Date: 2004/05/20 16:57:59 $
8
+
9
+ Copyright (C) 2002,2003 OGASAWARA, Takeshi
10
+ ************************************************/
11
+ #include "global.h"
12
+
13
+ #define _SELF(s) ((GtkAccelKey*)RVAL2BOXED(s, GTK_TYPE_ACCEL_KEY))
14
+ #define GTK_TYPE_ACCEL_KEY (gtk_accel_key_get_type())
15
+
16
+ static GtkAccelKey*
17
+ accel_key_copy(const GtkAccelKey *key)
18
+ {
19
+ GtkAccelKey *new_key;
20
+ g_return_val_if_fail (key != NULL, NULL);
21
+ new_key = g_new(GtkAccelKey, 1);
22
+ *new_key = *key;
23
+ return new_key;
24
+ }
25
+
26
+ GType
27
+ gtk_accel_key_get_type()
28
+ {
29
+ static GType our_type = 0;
30
+ if(our_type == 0)
31
+ our_type = g_boxed_type_register_static("GtkAccelKey",
32
+ (GBoxedCopyFunc)accel_key_copy,
33
+ (GBoxedFreeFunc)g_free);
34
+ return our_type;
35
+ }
36
+
37
+ /*
38
+ struct _GtkAccelKey
39
+ {
40
+ guint accel_key;
41
+ GdkModifierType accel_mods;
42
+ guint accel_flags : 16;
43
+ };
44
+ */
45
+
46
+ static VALUE
47
+ accel_key_initialize(self)
48
+ VALUE self;
49
+ {
50
+ GtkAccelKey key;
51
+ G_INITIALIZE(self, &key);
52
+ return Qnil;
53
+ }
54
+
55
+ static VALUE
56
+ accel_key_get_key(self)
57
+ VALUE self;
58
+ {
59
+ return UINT2NUM(_SELF(self)->accel_key);
60
+ }
61
+
62
+ static VALUE
63
+ accel_key_get_mods(self)
64
+ VALUE self;
65
+ {
66
+ return GFLAGS2RVAL(_SELF(self)->accel_mods, GDK_TYPE_MODIFIER_TYPE);
67
+ }
68
+
69
+ static VALUE
70
+ accel_key_get_flags(self)
71
+ VALUE self;
72
+ {
73
+ return INT2FIX(_SELF(self)->accel_flags);
74
+ }
75
+
76
+ static VALUE
77
+ accel_key_set_key(self, key)
78
+ VALUE self, key;
79
+ {
80
+ _SELF(self)->accel_key = NUM2UINT(key);
81
+ return self;
82
+ }
83
+
84
+ static VALUE
85
+ accel_key_set_mods(self, mods)
86
+ VALUE self, mods;
87
+ {
88
+ _SELF(self)->accel_mods = RVAL2GFLAGS(mods, GDK_TYPE_MODIFIER_TYPE);
89
+ return self;
90
+ }
91
+
92
+ static VALUE
93
+ accel_key_set_flags(self, flags)
94
+ VALUE self, flags;
95
+ {
96
+ _SELF(self)->accel_flags = FIX2INT(flags);
97
+ return self;
98
+ }
99
+
100
+ void
101
+ Init_accel_key()
102
+ {
103
+ VALUE gAccelKey = G_DEF_CLASS(GTK_TYPE_ACCEL_KEY, "AccelKey", mGtk);
104
+
105
+ rb_define_method(gAccelKey, "initialize", accel_key_initialize, 0);
106
+
107
+ rb_define_method(gAccelKey, "key", accel_key_get_key, 0);
108
+ rb_define_method(gAccelKey, "mods", accel_key_get_mods, 0);
109
+ rb_define_method(gAccelKey, "flags", accel_key_get_flags, 0);
110
+
111
+ rb_define_method(gAccelKey, "set_key", accel_key_set_key, 1);
112
+ rb_define_method(gAccelKey, "set_mods", accel_key_set_mods, 1);
113
+ rb_define_method(gAccelKey, "set_flags", accel_key_set_flags, 1);
114
+
115
+ G_DEF_SETTERS(gAccelKey);
116
+ }
@@ -0,0 +1,46 @@
1
+ /* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
2
+ /************************************************
3
+
4
+ rbgtkaccellabel.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) 2001 Neil Conway
11
+ ************************************************/
12
+
13
+ #include "global.h"
14
+
15
+ static VALUE
16
+ alabel_initialize(self, string)
17
+ VALUE self, string;
18
+ {
19
+ RBGTK_INITIALIZE(self, gtk_accel_label_new(RVAL2CSTR(string)));
20
+ return Qnil;
21
+ }
22
+
23
+ static VALUE
24
+ alabel_get_accel_width(self)
25
+ VALUE self;
26
+ {
27
+ return INT2NUM(gtk_accel_label_get_accel_width(GTK_ACCEL_LABEL(RVAL2GOBJ(self))));
28
+ }
29
+
30
+ static VALUE
31
+ alabel_refetch(self)
32
+ VALUE self;
33
+ {
34
+ gtk_accel_label_refetch(GTK_ACCEL_LABEL(RVAL2GOBJ(self)));
35
+ return Qfalse; // always returns false
36
+ }
37
+
38
+ void
39
+ Init_gtk_accel_label()
40
+ {
41
+ VALUE gAccelLabel = G_DEF_CLASS(GTK_TYPE_ACCEL_LABEL, "AccelLabel", mGtk);
42
+
43
+ rb_define_method(gAccelLabel, "initialize", alabel_initialize, 1);
44
+ rb_define_method(gAccelLabel, "accel_width", alabel_get_accel_width, 0);
45
+ rb_define_method(gAccelLabel, "refetch", alabel_refetch, 0);
46
+ }