gtk2 1.0.0 → 1.0.1
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.
- data/ChangeLog +52 -0
- data/ext/gtk2/extconf.rb +18 -9
- data/ext/gtk2/rbgdk.h +3 -0
- data/ext/gtk2/rbgdkdragcontext.c +4 -4
- data/ext/gtk2/rbgdkevent.c +18 -5
- data/ext/gtk2/rbgdkpixmap.c +43 -48
- data/ext/gtk2/rbgdkproperty.c +6 -5
- data/ext/gtk2/rbgdkscreen.c +18 -74
- data/ext/gtk2/rbgdkselection.c +2 -2
- data/ext/gtk2/rbgdkwindow.c +11 -18
- data/ext/gtk2/rbgdkwindowattr.c +1 -1
- data/ext/gtk2/rbgtkaccelgroup.c +1 -1
- data/ext/gtk2/rbgtkaction.c +8 -26
- data/ext/gtk2/rbgtkactiongroup.c +6 -6
- data/ext/gtk2/rbgtkadjustment.c +20 -74
- data/ext/gtk2/rbgtkbindingset.c +1 -1
- data/ext/gtk2/rbgtkbuilder.c +2 -1
- data/ext/gtk2/rbgtkbutton.c +1 -9
- data/ext/gtk2/rbgtkcalendar.c +1 -1
- data/ext/gtk2/rbgtkcellrendererspinner.c +0 -3
- data/ext/gtk2/rbgtkcellrenderertext.c +1 -2
- data/ext/gtk2/rbgtkcellview.c +6 -11
- data/ext/gtk2/rbgtkcolorselectiondialog.c +2 -28
- data/ext/gtk2/rbgtkcombo.c +2 -2
- data/ext/gtk2/rbgtkcombobox.c +9 -29
- data/ext/gtk2/rbgtkcontainer.c +1 -1
- data/ext/gtk2/rbgtkcurve.c +4 -2
- data/ext/gtk2/rbgtkdialog.c +2 -3
- data/ext/gtk2/rbgtkdrag.c +3 -3
- data/ext/gtk2/rbgtkentry.c +2 -2
- data/ext/gtk2/rbgtkentrycompletion.c +1 -4
- data/ext/gtk2/rbgtkfilechooser.c +32 -29
- data/ext/gtk2/rbgtkfilechooserdialog.c +8 -6
- data/ext/gtk2/rbgtkfilefilter.c +8 -4
- data/ext/gtk2/rbgtkframe.c +3 -4
- data/ext/gtk2/rbgtkhandlebox.c +0 -7
- data/ext/gtk2/rbgtkicontheme.c +4 -13
- data/ext/gtk2/rbgtkiconview.c +4 -15
- data/ext/gtk2/rbgtkimcontext.c +1 -1
- data/ext/gtk2/rbgtkinvisible.c +5 -21
- data/ext/gtk2/rbgtkitemfactory.c +3 -3
- data/ext/gtk2/rbgtklabel.c +0 -2
- data/ext/gtk2/rbgtklinkbutton.c +0 -2
- data/ext/gtk2/rbgtkmain.c +7 -10
- data/ext/gtk2/rbgtkmenu.c +22 -74
- data/ext/gtk2/rbgtkmenuitem.c +16 -55
- data/ext/gtk2/rbgtkmenushell.c +3 -11
- data/ext/gtk2/rbgtkmessagedialog.c +11 -20
- data/ext/gtk2/rbgtknotebook.c +0 -1
- data/ext/gtk2/rbgtkoptionmenu.c +1 -2
- data/ext/gtk2/rbgtkprintjob.c +1 -2
- data/ext/gtk2/rbgtkprintoperation.c +0 -2
- data/ext/gtk2/rbgtkradioaction.c +2 -7
- data/ext/gtk2/rbgtkradiobutton.c +1 -1
- data/ext/gtk2/rbgtkradiomenuitem.c +4 -6
- data/ext/gtk2/rbgtkradiotoolbutton.c +2 -4
- data/ext/gtk2/rbgtkrange.c +1 -2
- data/ext/gtk2/rbgtkrc.c +8 -9
- data/ext/gtk2/rbgtkrcstyle.c +2 -2
- data/ext/gtk2/rbgtkrecentaction.c +0 -1
- data/ext/gtk2/rbgtkrecentchooser.c +3 -3
- data/ext/gtk2/rbgtkrecentdata.c +2 -9
- data/ext/gtk2/rbgtkrecentfilter.c +2 -1
- data/ext/gtk2/rbgtkrecentfilterinfo.c +5 -16
- data/ext/gtk2/rbgtkrecentinfo.c +2 -2
- data/ext/gtk2/rbgtkrecentmanager.c +1 -2
- data/ext/gtk2/rbgtkruler.c +6 -16
- data/ext/gtk2/rbgtkscalebutton.c +16 -48
- data/ext/gtk2/rbgtkscrolledwindow.c +1 -1
- data/ext/gtk2/rbgtkselectiondata.c +10 -34
- data/ext/gtk2/rbgtksettings.c +1 -1
- data/ext/gtk2/rbgtkspinner.c +0 -3
- data/ext/gtk2/rbgtkstatusbar.c +5 -16
- data/ext/gtk2/rbgtkstatusicon.c +2 -9
- data/ext/gtk2/rbgtkstock.c +4 -4
- data/ext/gtk2/rbgtktable.c +8 -13
- data/ext/gtk2/rbgtktextattributes.c +0 -2
- data/ext/gtk2/rbgtktextbuffer.c +17 -16
- data/ext/gtk2/rbgtktextmark.c +7 -14
- data/ext/gtk2/rbgtktexttag.c +1 -2
- data/ext/gtk2/rbgtktextview.c +3 -4
- data/ext/gtk2/rbgtktoggleaction.c +5 -16
- data/ext/gtk2/rbgtktogglebutton.c +1 -2
- data/ext/gtk2/rbgtktoggletoolbutton.c +5 -16
- data/ext/gtk2/rbgtktoolbar.c +8 -31
- data/ext/gtk2/rbgtktoolitem.c +3 -1
- data/ext/gtk2/rbgtktreerowreference.c +4 -4
- data/ext/gtk2/rbgtktreesortable.c +0 -3
- data/ext/gtk2/rbgtktreestore.c +10 -7
- data/ext/gtk2/rbgtktreeview.c +5 -8
- data/ext/gtk2/rbgtktreeviewcolumn.c +13 -34
- data/ext/gtk2/rbgtkuimanager.c +2 -3
- data/ext/gtk2/rbgtkwidget.c +24 -44
- data/ext/gtk2/rbgtkwindow.c +32 -92
- data/lib/gtk2/base.rb +1 -1
- metadata +13 -13
data/ChangeLog
CHANGED
|
@@ -1,3 +1,55 @@
|
|
|
1
|
+
2011-09-16 Nikolai Weibull <now@bitwi.se>
|
|
2
|
+
|
|
3
|
+
* lib/gtk2.rb: Remove unused variable.
|
|
4
|
+
* gtk2/ext/gtk2/rbgdkscreen.c: Use RVAL2STRV() instead of RVAL2ARGV().
|
|
5
|
+
|
|
6
|
+
2011-09-15 Nikolai Weibull <now@bitwi.se>
|
|
7
|
+
|
|
8
|
+
* ext/gtk2/*.c: Use new G_REPLACE_SET_PROPERTY(),
|
|
9
|
+
G_REPLACE_GET_PROPERTY(), and G_REPLACE_ACTION() macros.
|
|
10
|
+
|
|
11
|
+
2011-09-14 Nikolai Weibull <now@bitwi.se>
|
|
12
|
+
|
|
13
|
+
* ext/gtk2/*.c: Fix various compiler warnings.
|
|
14
|
+
|
|
15
|
+
2011-09-12 Nikolai Weibull <now@bitwi.se>
|
|
16
|
+
|
|
17
|
+
* ext/gtk2/*.c: Remove methods that implement methods already
|
|
18
|
+
implemented as properties.
|
|
19
|
+
* ext/gtk2/*.c: Call StringValue() before calling
|
|
20
|
+
RSTRING_PTR()/RSTRING_LEN(); also use RSTRING_PTR() instead of
|
|
21
|
+
RVAL2CSTR() if StringValue() has already been called on the value.
|
|
22
|
+
|
|
23
|
+
2011-09-11 Kouhei Sutou <kou@cozmixng.org>
|
|
24
|
+
|
|
25
|
+
* ext/gtk2/extconf.rb (InitCreator#print_data): fix wrong
|
|
26
|
+
initialization order bug. If "Init_gtk_gdk_gc()" is the first
|
|
27
|
+
initialize function, the previous implementation can't resolve
|
|
28
|
+
dependency order.
|
|
29
|
+
Reported by ashbb. Thanks!!!
|
|
30
|
+
|
|
31
|
+
2011-09-10 Nikolai Weibull <now@bitwi.se>
|
|
32
|
+
|
|
33
|
+
* ext/gtk2/*.c: Fix all RVAL2CSTRFILENAME calls.
|
|
34
|
+
|
|
35
|
+
2011-09-09 Nikolai Weibull <now@bitwi.se>
|
|
36
|
+
|
|
37
|
+
* ext/gtk2/*.c: Fix all warnings generated with gcc 4.4.5.
|
|
38
|
+
* ext/gtk2/*.c: Fix all RVAL2CSTR calls.
|
|
39
|
+
|
|
40
|
+
2011-08-25 Kouhei Sutou <kou@cozmixng.org>
|
|
41
|
+
|
|
42
|
+
* ext/gtk2/rbgtkfilefilter.c (Gtk::FileFilter#add_custom): fix
|
|
43
|
+
crash bug because of method name is missing.
|
|
44
|
+
Reported by Jeff Moore. Thanks!!!
|
|
45
|
+
|
|
46
|
+
2011-07-31 Kouhei Sutou <kou@cozmixng.org>
|
|
47
|
+
|
|
48
|
+
* ext/gtk2/rbgtkcellrendererspinner.c, ext/gtk2/rbgtkspinner.c:
|
|
49
|
+
don't expand "$Date$" because it may include non LANG=C
|
|
50
|
+
characters. #3383158
|
|
51
|
+
Reported by Antonio Terceiro. Thanks!!!
|
|
52
|
+
|
|
1
53
|
2011-06-05 Kouhei Sutou <kou@cozmixng.org>
|
|
2
54
|
|
|
3
55
|
* sample/gtk-demo/cairo-operator.rb
|
data/ext/gtk2/extconf.rb
CHANGED
|
@@ -31,6 +31,8 @@ rescue LoadError
|
|
|
31
31
|
require 'mkmf-gnome2'
|
|
32
32
|
end
|
|
33
33
|
|
|
34
|
+
have_func("rb_errinfo")
|
|
35
|
+
|
|
34
36
|
["glib2", "atk", "pango", "gdk_pixbuf2"].each do |package|
|
|
35
37
|
directory = "#{package}#{version_suffix}"
|
|
36
38
|
build_dir = "#{directory}/tmp/#{RUBY_PLATFORM}/#{package}/#{RUBY_VERSION}"
|
|
@@ -98,8 +100,6 @@ if target != "win32" and PKGConfig.have_package('gtk+-unix-print-2.0')
|
|
|
98
100
|
$defs.push("-DHAVE_GTK_UNIX_PRINT")
|
|
99
101
|
end
|
|
100
102
|
|
|
101
|
-
have_func("rb_errinfo")
|
|
102
|
-
|
|
103
103
|
create_pkg_config_file("Ruby/GTK2", package_id, ruby_gnome2_version)
|
|
104
104
|
|
|
105
105
|
class InitCreator
|
|
@@ -136,6 +136,16 @@ class InitCreator
|
|
|
136
136
|
end
|
|
137
137
|
end
|
|
138
138
|
|
|
139
|
+
inits[""] = inits[""].sort_by do |value|
|
|
140
|
+
if value == "Init_gtk_gdk_draw()"
|
|
141
|
+
inits[""].size * 2
|
|
142
|
+
elsif value == "Init_gtk_gdk_gc()"
|
|
143
|
+
-inits[""].size
|
|
144
|
+
else
|
|
145
|
+
inits[""].index(value)
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
139
149
|
print_data(inits, "", nil, true)
|
|
140
150
|
print_data(inits, "GTK_DISABLE_DEPRECATED", "ifndef", true)
|
|
141
151
|
print_data(inits, "GTK_ENABLE_BROKEN", "ifdef", true)
|
|
@@ -157,14 +167,13 @@ class InitCreator
|
|
|
157
167
|
print "##{defs} #{type}\n" if defs
|
|
158
168
|
sorted_array = array[type].dup
|
|
159
169
|
dependencies.each do |key, values|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
sorted_array.delete(value)
|
|
165
|
-
sorted_array[key_index - 1, 0] = value
|
|
166
|
-
key_index = sorted_array.index(key)
|
|
170
|
+
next unless sorted_array.include?(key)
|
|
171
|
+
sorted_array.delete(key)
|
|
172
|
+
value_indexes = values.collect do |value|
|
|
173
|
+
sorted_array.index(value)
|
|
167
174
|
end
|
|
175
|
+
max_value_index = value_indexes.compact.max
|
|
176
|
+
sorted_array[max_value_index + 1, 0] = key
|
|
168
177
|
end
|
|
169
178
|
sorted_array.each do |val|
|
|
170
179
|
print "#{extern_def} #{val};\n"
|
data/ext/gtk2/rbgdk.h
CHANGED
|
@@ -23,6 +23,9 @@
|
|
|
23
23
|
#define GEV2RVAL(ev) (make_gdkevent(ev))
|
|
24
24
|
#define RVAL2GEV(ev) (get_gdkevent(ev))
|
|
25
25
|
#define RVAL2ATOM(atom) (get_gdkatom(atom))
|
|
26
|
+
#define RVAL2GDKNATIVEWINDOW(value) ((GdkNativeWindow)NUM2UINT(value))
|
|
27
|
+
/* TODO: Will UINT2NUM work for pointers on 64-bit Windows? */
|
|
28
|
+
#define GDKNATIVEWINDOW2RVAL(value) UINT2NUM((guint32)value)
|
|
26
29
|
|
|
27
30
|
#define GDK_TYPE_GEOMETRY (gdk_geometry_get_type())
|
|
28
31
|
#define GDK_TYPE_REGION (gdk_region_get_type())
|
data/ext/gtk2/rbgdkdragcontext.c
CHANGED
|
@@ -84,24 +84,24 @@ gdkdragcontext_s_get_protocol(int argc, VALUE *argv, VALUE self)
|
|
|
84
84
|
{
|
|
85
85
|
VALUE xid;
|
|
86
86
|
GdkDragProtocol prot;
|
|
87
|
-
|
|
87
|
+
GdkNativeWindow ret;
|
|
88
88
|
|
|
89
89
|
if (argc == 1) {
|
|
90
90
|
rb_scan_args(argc, argv, "10", &xid);
|
|
91
|
-
ret = gdk_drag_get_protocol(
|
|
91
|
+
ret = gdk_drag_get_protocol(RVAL2GDKNATIVEWINDOW(xid), &prot);
|
|
92
92
|
} else {
|
|
93
93
|
#if GTK_CHECK_VERSION(2,2,0)
|
|
94
94
|
VALUE display;
|
|
95
95
|
rb_scan_args(argc, argv, "20", &display, &xid);
|
|
96
96
|
ret = gdk_drag_get_protocol_for_display(GDK_DISPLAY_OBJECT(RVAL2GOBJ(display)),
|
|
97
|
-
|
|
97
|
+
RVAL2GDKNATIVEWINDOW(xid), &prot);
|
|
98
98
|
#else
|
|
99
99
|
rb_warn("Not supported arguments for Gdk::Display in GTK+-2.0.x.");
|
|
100
100
|
ret = gdk_drag_get_protocol(NUM2UINT(xid), &prot);
|
|
101
101
|
#endif
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
-
return rb_ary_new3(2, GENUM2RVAL(prot, GDK_TYPE_DRAG_PROTOCOL),
|
|
104
|
+
return rb_ary_new3(2, GENUM2RVAL(prot, GDK_TYPE_DRAG_PROTOCOL), GDKNATIVEWINDOW2RVAL(ret));
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
/* Instance Methods */
|
data/ext/gtk2/rbgdkevent.c
CHANGED
|
@@ -51,7 +51,7 @@ gdkevent ## type ## _ ## name (VALUE self)\
|
|
|
51
51
|
static VALUE \
|
|
52
52
|
gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
|
|
53
53
|
{\
|
|
54
|
-
get_gdkevent(self)->type.name = RVAL2CSTR(val);\
|
|
54
|
+
get_gdkevent(self)->type.name = (gchar *)RVAL2CSTR(val);\
|
|
55
55
|
return self;\
|
|
56
56
|
}
|
|
57
57
|
|
|
@@ -81,6 +81,19 @@ gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
|
|
|
81
81
|
return self;\
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
#define ATTR_GDKNATIVEWINDOW(type, name)\
|
|
85
|
+
static VALUE \
|
|
86
|
+
gdkevent ## type ## _ ## name (VALUE self)\
|
|
87
|
+
{\
|
|
88
|
+
return GDKNATIVEWINDOW2RVAL(get_gdkevent(self)->type.name);\
|
|
89
|
+
}\
|
|
90
|
+
static VALUE \
|
|
91
|
+
gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
|
|
92
|
+
{\
|
|
93
|
+
get_gdkevent(self)->type.name = RVAL2GDKNATIVEWINDOW(val);\
|
|
94
|
+
return self;\
|
|
95
|
+
}
|
|
96
|
+
|
|
84
97
|
#define ATTR_FLOAT(type, name)\
|
|
85
98
|
static VALUE \
|
|
86
99
|
gdkevent ## type ## _ ## name (VALUE self)\
|
|
@@ -502,7 +515,7 @@ GDKEVENT_INIT(property, GDK_PROPERTY_NOTIFY);
|
|
|
502
515
|
ATTR_ATOM(selection, selection);
|
|
503
516
|
ATTR_ATOM(selection, target);
|
|
504
517
|
ATTR_ATOM(selection, property);
|
|
505
|
-
|
|
518
|
+
ATTR_GDKNATIVEWINDOW(selection, requestor);
|
|
506
519
|
ATTR_INT(selection, time);
|
|
507
520
|
|
|
508
521
|
/* GdkEventDND */
|
|
@@ -557,13 +570,13 @@ gdkeventclient_send_client_message(int argc, VALUE *argv, VALUE self)
|
|
|
557
570
|
rb_scan_args(argc, argv, "11", &xid, &display);
|
|
558
571
|
if (NIL_P(display)){
|
|
559
572
|
return CBOOL2RVAL(gdk_event_send_client_message(
|
|
560
|
-
get_gdkevent(self),
|
|
573
|
+
get_gdkevent(self), RVAL2GDKNATIVEWINDOW(xid)));
|
|
561
574
|
} else {
|
|
562
575
|
#if GTK_CHECK_VERSION(2,2,0)
|
|
563
576
|
return CBOOL2RVAL(gdk_event_send_client_message_for_display(
|
|
564
577
|
GDK_DISPLAY_OBJECT(RVAL2GOBJ(display)),
|
|
565
578
|
get_gdkevent(self),
|
|
566
|
-
|
|
579
|
+
RVAL2GDKNATIVEWINDOW(xid)));
|
|
567
580
|
#else
|
|
568
581
|
rb_warn("this arguments number has been supported since 2.2");
|
|
569
582
|
return Qfalse;
|
|
@@ -610,7 +623,7 @@ GDKEVENT_INIT(setting, GDK_SETTING);
|
|
|
610
623
|
|
|
611
624
|
/* GdkEventOwnerChange */
|
|
612
625
|
#if GTK_CHECK_VERSION(2,6,0)
|
|
613
|
-
|
|
626
|
+
ATTR_GDKNATIVEWINDOW(owner_change, owner);
|
|
614
627
|
ATTR_ENUM(owner_change, reason, GDK_TYPE_OWNER_CHANGE);
|
|
615
628
|
ATTR_ATOM(owner_change, selection);
|
|
616
629
|
ATTR_UINT(owner_change, time);
|
data/ext/gtk2/rbgdkpixmap.c
CHANGED
|
@@ -50,72 +50,67 @@ gdkpmap_create_from_data(int argc, VALUE *argv, VALUE self)
|
|
|
50
50
|
static VALUE
|
|
51
51
|
gdkpmap_create_from_xpm(VALUE self, VALUE win, VALUE color, VALUE fname)
|
|
52
52
|
{
|
|
53
|
-
GdkPixmap *
|
|
53
|
+
GdkPixmap *result;
|
|
54
54
|
GdkBitmap *mask;
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
result = gdk_pixmap_create_from_xpm(GDK_WINDOW(RVAL2GOBJ(win)),
|
|
57
|
+
&mask,
|
|
58
|
+
RVAL2GDKCOLOR(color),
|
|
59
|
+
RVAL2CSTR(fname));
|
|
60
|
+
if (result == NULL)
|
|
61
|
+
rb_raise(rb_eArgError, "Pixmap not created from %s", RVAL2CSTR(fname));
|
|
62
|
+
|
|
63
|
+
return rb_assoc_new(GOBJ2RVAL(result), GOBJ2RVAL(mask));
|
|
62
64
|
}
|
|
63
65
|
|
|
64
66
|
static VALUE
|
|
65
67
|
gdkpmap_create_from_xpm_d(VALUE self, VALUE win, VALUE tcolor, VALUE data)
|
|
66
68
|
{
|
|
67
|
-
GdkPixmap *
|
|
69
|
+
GdkPixmap *result;
|
|
68
70
|
GdkBitmap *mask;
|
|
69
|
-
|
|
70
|
-
gchar **buf;
|
|
71
|
+
const gchar **buf = RVAL2STRV(data);
|
|
71
72
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
new = gdk_pixmap_create_from_xpm_d(GDK_WINDOW(RVAL2GOBJ(win)),
|
|
78
|
-
&mask, RVAL2GDKCOLOR(tcolor), buf);
|
|
73
|
+
result = gdk_pixmap_create_from_xpm_d(GDK_WINDOW(RVAL2GOBJ(win)),
|
|
74
|
+
&mask,
|
|
75
|
+
RVAL2GDKCOLOR(tcolor),
|
|
76
|
+
(gchar **)buf);
|
|
79
77
|
|
|
80
|
-
|
|
78
|
+
g_free(buf);
|
|
79
|
+
|
|
80
|
+
return rb_assoc_new(GOBJ2RVAL(result), GOBJ2RVAL(mask));
|
|
81
81
|
}
|
|
82
82
|
|
|
83
83
|
static VALUE
|
|
84
84
|
gdkpmap_colormap_create_from_xpm(VALUE self, VALUE win, VALUE colormap, VALUE tcolor, VALUE fname)
|
|
85
85
|
{
|
|
86
|
-
GdkPixmap *
|
|
86
|
+
GdkPixmap *result;
|
|
87
87
|
GdkBitmap *mask;
|
|
88
88
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
89
|
+
result = gdk_pixmap_colormap_create_from_xpm(NIL_P(win) ? NULL : GDK_WINDOW(RVAL2GOBJ(win)),
|
|
90
|
+
GDK_COLORMAP(RVAL2GOBJ(colormap)),
|
|
91
|
+
&mask,
|
|
92
|
+
RVAL2GDKCOLOR(tcolor),
|
|
93
|
+
RVAL2CSTR(fname));
|
|
94
|
+
if (result == NULL)
|
|
95
|
+
rb_raise(rb_eArgError, "Pixmap not created from %s", RVAL2CSTR(fname));
|
|
96
|
+
|
|
97
|
+
return rb_assoc_new(GOBJ2RVAL(result), GOBJ2RVAL(mask));
|
|
97
98
|
}
|
|
98
99
|
|
|
99
100
|
static VALUE
|
|
100
101
|
gdkpmap_colormap_create_from_xpm_d(VALUE self, VALUE win, VALUE colormap, VALUE tcolor, VALUE data)
|
|
101
102
|
{
|
|
102
|
-
GdkPixmap *
|
|
103
|
+
GdkPixmap *result;
|
|
103
104
|
GdkBitmap *mask;
|
|
104
|
-
|
|
105
|
-
gchar **buf;
|
|
106
|
-
|
|
107
|
-
Check_Type(data, T_ARRAY);
|
|
108
|
-
buf = ALLOCA_N(char*, RARRAY_LEN(data));
|
|
109
|
-
for (i=0; i<RARRAY_LEN(data); i++) {
|
|
110
|
-
buf[i] = RVAL2CSTR(RARRAY_PTR(data)[i]);
|
|
111
|
-
}
|
|
105
|
+
const gchar **buf = RVAL2STRV(data);
|
|
112
106
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
107
|
+
result = gdk_pixmap_colormap_create_from_xpm_d(NIL_P(win) ? NULL : GDK_WINDOW(RVAL2GOBJ(win)),
|
|
108
|
+
GDK_COLORMAP(RVAL2GOBJ(colormap)),
|
|
109
|
+
&mask,
|
|
110
|
+
RVAL2GDKCOLOR(tcolor),
|
|
111
|
+
(gchar **)buf);
|
|
117
112
|
|
|
118
|
-
return rb_assoc_new(GOBJ2RVAL(
|
|
113
|
+
return rb_assoc_new(GOBJ2RVAL(result), GOBJ2RVAL(mask));
|
|
119
114
|
}
|
|
120
115
|
|
|
121
116
|
#ifdef HAVE_XREADBITMAPFILEDATA
|
|
@@ -156,21 +151,21 @@ gdkpmap_foreign_new(int argc, VALUE *argv, VALUE self)
|
|
|
156
151
|
switch(argc)
|
|
157
152
|
{
|
|
158
153
|
case 1:
|
|
159
|
-
win = gdk_pixmap_foreign_new(
|
|
154
|
+
win = gdk_pixmap_foreign_new(RVAL2GDKNATIVEWINDOW(arg[0]));
|
|
160
155
|
break;
|
|
161
156
|
case 2:
|
|
162
157
|
#if GTK_CHECK_VERSION(2,2,0)
|
|
163
158
|
win = gdk_pixmap_foreign_new_for_display(GDK_DISPLAY_OBJECT(RVAL2GOBJ(arg[0])),
|
|
164
|
-
|
|
159
|
+
RVAL2GDKNATIVEWINDOW(arg[1]));
|
|
165
160
|
#else
|
|
166
|
-
win = gdk_pixmap_foreign_new(
|
|
161
|
+
win = gdk_pixmap_foreign_new(RVAL2GDKNATIVEWINDOW(arg[1]));
|
|
167
162
|
rb_warn("Not supported. Use GTK+-2.2.0 or later.");
|
|
168
163
|
#endif
|
|
169
164
|
break;
|
|
170
165
|
case 5:
|
|
171
166
|
#if GTK_CHECK_VERSION(2,10,0)
|
|
172
167
|
win = gdk_pixmap_foreign_new_for_screen(GDK_SCREEN(RVAL2GOBJ(arg[0])),
|
|
173
|
-
|
|
168
|
+
RVAL2GDKNATIVEWINDOW(arg[1]), /* anid */
|
|
174
169
|
NUM2INT(arg[2]), /* width */
|
|
175
170
|
NUM2INT(arg[3]), /* height */
|
|
176
171
|
NUM2INT(arg[4])); /* depth */
|
|
@@ -194,13 +189,13 @@ gdkpmap_lookup(int argc, VALUE *argv, VALUE self)
|
|
|
194
189
|
switch(argc)
|
|
195
190
|
{
|
|
196
191
|
case 1:
|
|
197
|
-
win = gdk_pixmap_lookup(
|
|
192
|
+
win = gdk_pixmap_lookup(RVAL2GDKNATIVEWINDOW(arg[0]));
|
|
198
193
|
break;
|
|
199
194
|
case 2:
|
|
200
195
|
#if GTK_CHECK_VERSION(2,2,0)
|
|
201
|
-
win = gdk_pixmap_lookup_for_display(RVAL2GOBJ(arg[0]),
|
|
196
|
+
win = gdk_pixmap_lookup_for_display(RVAL2GOBJ(arg[0]), RVAL2GDKNATIVEWINDOW(arg[1]));
|
|
202
197
|
#else
|
|
203
|
-
win = gdk_pixmap_lookup(
|
|
198
|
+
win = gdk_pixmap_lookup(RVAL2GDKNATIVEWINDOW(arg[1]));
|
|
204
199
|
rb_warn("Not supported in GTK+-2.0.x.");
|
|
205
200
|
#endif
|
|
206
201
|
break;
|
data/ext/gtk2/rbgdkproperty.c
CHANGED
|
@@ -246,7 +246,8 @@ gdkprop_get(int argc, VALUE *argv, VALUE self)
|
|
|
246
246
|
VALUE win, property, type, offset=INT2FIX(0), length=INT2FIX(9999), delete;
|
|
247
247
|
|
|
248
248
|
/* for inner processing */
|
|
249
|
-
|
|
249
|
+
gint i;
|
|
250
|
+
size_t j;
|
|
250
251
|
VALUE ret = 0;
|
|
251
252
|
|
|
252
253
|
if(6 == argc)
|
|
@@ -279,12 +280,12 @@ gdkprop_get(int argc, VALUE *argv, VALUE self)
|
|
|
279
280
|
ret = rb_ary_new();
|
|
280
281
|
|
|
281
282
|
if(rtype != GDK_SELECTION_TYPE_ATOM){
|
|
282
|
-
for(
|
|
283
|
-
rb_ary_push(ret, INT2FIX(((unsigned long*)rdat)[
|
|
283
|
+
for(j = 0; j < (rlen/sizeof(unsigned long)); j++){
|
|
284
|
+
rb_ary_push(ret, INT2FIX(((unsigned long*)rdat)[j]));
|
|
284
285
|
}
|
|
285
286
|
} else {
|
|
286
|
-
for(
|
|
287
|
-
rb_ary_push(ret, BOXED2RVAL((GdkAtom)((unsigned long*)rdat)[
|
|
287
|
+
for(j = 0; j < (rlen/sizeof(unsigned long)); j++){
|
|
288
|
+
rb_ary_push(ret, BOXED2RVAL((GdkAtom)((unsigned long*)rdat)[j], GDK_TYPE_ATOM));
|
|
288
289
|
}
|
|
289
290
|
}
|
|
290
291
|
break;
|
data/ext/gtk2/rbgdkscreen.c
CHANGED
|
@@ -270,54 +270,25 @@ gdkscreen_spawn_on_screen(VALUE self, VALUE working_directory, VALUE argv, VALUE
|
|
|
270
270
|
gboolean ret;
|
|
271
271
|
gint child_pid;
|
|
272
272
|
VALUE func = Qnil;
|
|
273
|
-
|
|
274
|
-
gchar
|
|
275
|
-
gchar** genvp = (gchar**)NULL;
|
|
273
|
+
gchar **gargv;
|
|
274
|
+
gchar **genvp;
|
|
276
275
|
|
|
277
276
|
if (rb_block_given_p()) {
|
|
278
277
|
func = rb_block_proc();
|
|
279
278
|
G_RELATIVE(self, func);
|
|
280
279
|
}
|
|
281
280
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
gargc = RARRAY_LEN(argv);
|
|
285
|
-
gargv = ALLOCA_N(gchar*, gargc + 1);
|
|
286
|
-
for (i = 0; i < gargc; i++) {
|
|
287
|
-
if (TYPE(RARRAY_PTR(argv)[i]) == T_STRING) {
|
|
288
|
-
gargv[i] = RVAL2CSTR(RARRAY_PTR(argv)[i]);
|
|
289
|
-
}
|
|
290
|
-
else {
|
|
291
|
-
gargv[i] = "";
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
gargv[gargc] = (gchar*)NULL;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
if (! NIL_P(envp)){
|
|
298
|
-
Check_Type(envp, T_ARRAY);
|
|
299
|
-
genc = RARRAY_LEN(envp);
|
|
300
|
-
genvp = ALLOCA_N(gchar*, genc + 1);
|
|
301
|
-
for (i = 0; i < genc; i++) {
|
|
302
|
-
if (TYPE(RARRAY_PTR(envp)[i]) == T_STRING) {
|
|
303
|
-
genvp[i] = RVAL2CSTR(RARRAY_PTR(envp)[i]);
|
|
304
|
-
}
|
|
305
|
-
else {
|
|
306
|
-
genvp[i] = "";
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
genvp[genc] = (gchar*)NULL;
|
|
310
|
-
}
|
|
311
|
-
|
|
281
|
+
gargv = (gchar **)RVAL2STRV(argv);
|
|
282
|
+
genvp = (gchar **)RVAL2STRV(envp);
|
|
312
283
|
ret = gdk_spawn_on_screen(_SELF(self),
|
|
313
284
|
NIL_P(working_directory) ? NULL : RVAL2CSTR(working_directory),
|
|
314
285
|
gargv, genvp, NUM2INT(flags),
|
|
315
286
|
(GSpawnChildSetupFunc)child_setup, (gpointer)func,
|
|
316
287
|
&child_pid, &err);
|
|
317
|
-
|
|
318
|
-
|
|
288
|
+
g_free(gargv);
|
|
289
|
+
g_free(genvp);
|
|
290
|
+
if (!ret)
|
|
319
291
|
RAISE_GERROR(err);
|
|
320
|
-
}
|
|
321
292
|
|
|
322
293
|
return INT2NUM(child_pid);
|
|
323
294
|
}
|
|
@@ -329,9 +300,8 @@ gdkscreen_spawn_on_screen_with_pipes(VALUE self, VALUE working_directory, VALUE
|
|
|
329
300
|
gboolean ret;
|
|
330
301
|
gint child_pid;
|
|
331
302
|
VALUE func = Qnil;
|
|
332
|
-
|
|
333
|
-
gchar
|
|
334
|
-
gchar** genvp = (gchar**)NULL;
|
|
303
|
+
gchar **gargv;
|
|
304
|
+
gchar **genvp;
|
|
335
305
|
gint standard_input, standard_output, standard_error;
|
|
336
306
|
|
|
337
307
|
if (rb_block_given_p()) {
|
|
@@ -339,36 +309,8 @@ gdkscreen_spawn_on_screen_with_pipes(VALUE self, VALUE working_directory, VALUE
|
|
|
339
309
|
G_RELATIVE(self, func);
|
|
340
310
|
}
|
|
341
311
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
gargc = RARRAY_LEN(argv);
|
|
345
|
-
gargv = ALLOCA_N(gchar*, gargc + 1);
|
|
346
|
-
for (i = 0; i < gargc; i++) {
|
|
347
|
-
if (TYPE(RARRAY_PTR(argv)[i]) == T_STRING) {
|
|
348
|
-
gargv[i] = RVAL2CSTR(RARRAY_PTR(argv)[i]);
|
|
349
|
-
}
|
|
350
|
-
else {
|
|
351
|
-
gargv[i] = "";
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
gargv[gargc] = (gchar*)NULL;
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
if (! NIL_P(envp)){
|
|
358
|
-
Check_Type(envp, T_ARRAY);
|
|
359
|
-
genc = RARRAY_LEN(envp);
|
|
360
|
-
genvp = ALLOCA_N(gchar*, genc + 1);
|
|
361
|
-
for (i = 0; i < genc; i++) {
|
|
362
|
-
if (TYPE(RARRAY_PTR(envp)[i]) == T_STRING) {
|
|
363
|
-
genvp[i] = RVAL2CSTR(RARRAY_PTR(envp)[i]);
|
|
364
|
-
}
|
|
365
|
-
else {
|
|
366
|
-
genvp[i] = "";
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
genvp[genc] = (gchar*)NULL;
|
|
370
|
-
}
|
|
371
|
-
|
|
312
|
+
gargv = (gchar **)RVAL2STRV(argv);
|
|
313
|
+
genvp = (gchar **)RVAL2STRV(envp);
|
|
372
314
|
ret = gdk_spawn_on_screen_with_pipes(_SELF(self),
|
|
373
315
|
NIL_P(working_directory) ? NULL : RVAL2CSTR(working_directory),
|
|
374
316
|
gargv, genvp, NUM2INT(flags),
|
|
@@ -376,8 +318,10 @@ gdkscreen_spawn_on_screen_with_pipes(VALUE self, VALUE working_directory, VALUE
|
|
|
376
318
|
&child_pid,
|
|
377
319
|
&standard_input, &standard_output,
|
|
378
320
|
&standard_error, &err);
|
|
379
|
-
|
|
380
|
-
|
|
321
|
+
g_free(gargv);
|
|
322
|
+
g_free(genvp);
|
|
323
|
+
if (!ret)
|
|
324
|
+
RAISE_GERROR(err);
|
|
381
325
|
|
|
382
326
|
return rb_ary_new3(4, INT2NUM(child_pid),
|
|
383
327
|
rb_funcall(rb_cIO, id_new, 1, INT2NUM(standard_input)),
|
|
@@ -438,6 +382,7 @@ Init_gtk_gdk_screen()
|
|
|
438
382
|
rb_define_singleton_method(gdkScreen, "default", gdkscreen_default, 0);
|
|
439
383
|
rb_define_method(gdkScreen, "default_colormap", gdkscreen_get_default_colormap, 0);
|
|
440
384
|
rb_define_method(gdkScreen, "set_default_colormap", gdkscreen_set_default_colormap, 1);
|
|
385
|
+
G_DEF_SETTER(gdkScreen, "default_colormap");
|
|
441
386
|
rb_define_method(gdkScreen, "system_colormap", gdkscreen_get_system_colormap, 0);
|
|
442
387
|
rb_define_method(gdkScreen, "system_visual", gdkscreen_get_system_visual, 0);
|
|
443
388
|
rb_define_method(gdkScreen, "rgb_colormap", gdkscreen_get_rgb_colormap, 0);
|
|
@@ -466,8 +411,8 @@ Init_gtk_gdk_screen()
|
|
|
466
411
|
rb_define_method(gdkScreen, "get_setting", gdkscreen_get_setting, -1);
|
|
467
412
|
#if GTK_CHECK_VERSION(2,10,0)
|
|
468
413
|
#ifdef HAVE_RB_CAIRO_H
|
|
469
|
-
|
|
470
|
-
|
|
414
|
+
G_REPLACE_GET_PROPERTY(gdkScreen, "font_options", gdkscreen_get_font_options, 0);
|
|
415
|
+
G_REPLACE_SET_PROPERTY(gdkScreen, "font_options", gdkscreen_set_font_options, 1);
|
|
471
416
|
#endif
|
|
472
417
|
rb_define_method(gdkScreen, "active_window", gdkscreen_get_active_window, 0);
|
|
473
418
|
rb_define_method(gdkScreen, "window_stack", gdkscreen_get_window_stack, 0);
|
|
@@ -485,7 +430,6 @@ Init_gtk_gdk_screen()
|
|
|
485
430
|
rb_define_method(gdkScreen, "window_manager_name", gdkscreen_get_window_manager_name, 0);
|
|
486
431
|
rb_define_method(gdkScreen, "screen_number", gdkscreen_get_screen_number, 0);
|
|
487
432
|
#endif
|
|
488
|
-
G_DEF_SETTERS(gdkScreen);
|
|
489
433
|
|
|
490
434
|
#ifdef GDK_WINDOWING_X11
|
|
491
435
|
G_DEF_CLASS3("GdkScreenX11", "ScreenX11", mGdk);
|