gtk2 1.0.3 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +66 -1
- data/ext/gtk2/extconf.rb +0 -96
- data/ext/gtk2/global.h +274 -13
- data/ext/gtk2/gtk2.def +5 -3
- data/ext/gtk2/init.c +263 -19
- data/ext/gtk2/rbgdk.c +245 -89
- data/ext/gtk2/rbgdk.h +32 -6
- data/ext/gtk2/rbgdkatom.c +38 -28
- data/ext/gtk2/rbgdkcairo.c +32 -42
- data/ext/gtk2/rbgdkcolor.c +52 -42
- data/ext/gtk2/rbgdkcolormap.c +42 -37
- data/ext/gtk2/rbgdkconst.c +23 -13
- data/ext/gtk2/rbgdkconversions.h +19 -6
- data/ext/gtk2/rbgdkcursor.c +37 -25
- data/ext/gtk2/rbgdkdevice.c +77 -67
- data/ext/gtk2/rbgdkdisplay.c +158 -150
- data/ext/gtk2/rbgdkdisplaymanager.c +27 -15
- data/ext/gtk2/rbgdkdragcontext.c +121 -70
- data/ext/gtk2/rbgdkdraw.c +252 -160
- data/ext/gtk2/rbgdkevent.c +30 -20
- data/ext/gtk2/rbgdkgc.c +123 -116
- data/ext/gtk2/rbgdkgeometry.c +77 -68
- data/ext/gtk2/rbgdkimage.c +58 -47
- data/ext/gtk2/rbgdkinput.c +33 -26
- data/ext/gtk2/rbgdkkeymap.c +38 -27
- data/ext/gtk2/rbgdkkeyval.c +44 -32
- data/ext/gtk2/rbgdkpango.c +66 -39
- data/ext/gtk2/rbgdkpangorenderer.c +63 -35
- data/ext/gtk2/rbgdkpixbuf.c +36 -25
- data/ext/gtk2/rbgdkpixmap.c +65 -49
- data/ext/gtk2/rbgdkproperty.c +66 -60
- data/ext/gtk2/rbgdkrectangle.c +54 -46
- data/ext/gtk2/rbgdkregion.c +144 -79
- data/ext/gtk2/rbgdkrgb.c +74 -58
- data/ext/gtk2/rbgdkscreen.c +103 -97
- data/ext/gtk2/rbgdkselection.c +49 -39
- data/ext/gtk2/rbgdkthreads.c +32 -19
- data/ext/gtk2/rbgdktimecoord.c +60 -38
- data/ext/gtk2/rbgdkvisual.c +79 -71
- data/ext/gtk2/rbgdkwindow.c +284 -305
- data/ext/gtk2/rbgdkwindowattr.c +69 -58
- data/ext/gtk2/rbgdkx11.c +41 -28
- data/ext/gtk2/rbgtk.c +498 -19
- data/ext/gtk2/rbgtk.h +35 -20
- data/ext/gtk2/rbgtkaboutdialog.c +33 -80
- data/ext/gtk2/rbgtkaccelerator.c +36 -23
- data/ext/gtk2/rbgtkaccelgroup.c +50 -40
- data/ext/gtk2/rbgtkaccelgroupentry.c +32 -20
- data/ext/gtk2/rbgtkaccelkey.c +40 -28
- data/ext/gtk2/rbgtkaccellabel.c +30 -18
- data/ext/gtk2/rbgtkaccelmap.c +55 -42
- data/ext/gtk2/rbgtkaccessible.c +25 -14
- data/ext/gtk2/rbgtkaction.c +68 -68
- data/ext/gtk2/rbgtkactiongroup.c +317 -195
- data/ext/gtk2/rbgtkadjustment.c +33 -46
- data/ext/gtk2/rbgtkalignment.c +36 -24
- data/ext/gtk2/rbgtkallocation.c +53 -42
- data/ext/gtk2/rbgtkarrow.c +34 -22
- data/ext/gtk2/rbgtkaspectframe.c +32 -20
- data/ext/gtk2/rbgtkassistant.c +81 -61
- data/ext/gtk2/rbgtkbbox.c +32 -20
- data/ext/gtk2/rbgtkbin.c +28 -16
- data/ext/gtk2/rbgtkbindingset.c +42 -35
- data/ext/gtk2/rbgtkborder.c +34 -23
- data/ext/gtk2/rbgtkbox.c +40 -29
- data/ext/gtk2/rbgtkbuildable.c +57 -45
- data/ext/gtk2/rbgtkbuilder.c +53 -38
- data/ext/gtk2/rbgtkbutton.c +41 -55
- data/ext/gtk2/rbgtkcalendar.c +51 -40
- data/ext/gtk2/rbgtkcelleditable.c +28 -17
- data/ext/gtk2/rbgtkcelllayout.c +41 -30
- data/ext/gtk2/rbgtkcellrenderer.c +43 -32
- data/ext/gtk2/rbgtkcellrendereraccel.c +26 -18
- data/ext/gtk2/rbgtkcellrenderercombo.c +25 -17
- data/ext/gtk2/rbgtkcellrendererpixbuf.c +24 -17
- data/ext/gtk2/rbgtkcellrendererprogress.c +25 -17
- data/ext/gtk2/rbgtkcellrendererspin.c +24 -16
- data/ext/gtk2/rbgtkcellrendererspinner.c +23 -11
- data/ext/gtk2/rbgtkcellrenderertext.c +28 -21
- data/ext/gtk2/rbgtkcellrenderertoggle.c +24 -16
- data/ext/gtk2/rbgtkcellview.c +34 -33
- data/ext/gtk2/rbgtkcheckbutton.c +28 -16
- data/ext/gtk2/rbgtkcheckmenuitem.c +31 -19
- data/ext/gtk2/rbgtkclipboard.c +123 -77
- data/ext/gtk2/rbgtkcolorbutton.c +26 -31
- data/ext/gtk2/rbgtkcolorsel.c +109 -55
- data/ext/gtk2/rbgtkcolorselectiondialog.c +28 -19
- data/ext/gtk2/rbgtkcombo.c +43 -32
- data/ext/gtk2/rbgtkcombobox.c +44 -83
- data/ext/gtk2/rbgtkcomboboxentry.c +26 -21
- data/ext/gtk2/rbgtkconst.c +23 -13
- data/ext/gtk2/rbgtkcontainer.c +153 -100
- data/ext/gtk2/rbgtkconversions.h +19 -6
- data/ext/gtk2/rbgtkcurve.c +46 -36
- data/ext/gtk2/rbgtkdialog.c +104 -70
- data/ext/gtk2/rbgtkdrag.c +173 -121
- data/ext/gtk2/rbgtkdrawingarea.c +28 -16
- data/ext/gtk2/rbgtkeditable.c +63 -51
- data/ext/gtk2/rbgtkentry.c +48 -85
- data/ext/gtk2/rbgtkentrycompletion.c +42 -55
- data/ext/gtk2/rbgtkeventbox.c +28 -16
- data/ext/gtk2/rbgtkexpander.c +26 -35
- data/ext/gtk2/rbgtkfilechooser.c +87 -143
- data/ext/gtk2/rbgtkfilechooserbutton.c +26 -32
- data/ext/gtk2/rbgtkfilechooserdialog.c +25 -15
- data/ext/gtk2/rbgtkfilechooserwidget.c +26 -15
- data/ext/gtk2/rbgtkfilefilter.c +45 -35
- data/ext/gtk2/rbgtkfilesel.c +54 -43
- data/ext/gtk2/rbgtkfilesystemerror.c +51 -0
- data/ext/gtk2/rbgtkfixed.c +36 -25
- data/ext/gtk2/rbgtkfontbutton.c +26 -37
- data/ext/gtk2/rbgtkfontselection.c +27 -15
- data/ext/gtk2/rbgtkfontselectiondialog.c +43 -32
- data/ext/gtk2/rbgtkframe.c +39 -28
- data/ext/gtk2/rbgtkgamma.c +32 -20
- data/ext/gtk2/rbgtkhandlebox.c +31 -19
- data/ext/gtk2/rbgtkhbbox.c +28 -16
- data/ext/gtk2/rbgtkhbox.c +29 -17
- data/ext/gtk2/rbgtkhpaned.c +28 -16
- data/ext/gtk2/rbgtkhruler.c +28 -16
- data/ext/gtk2/rbgtkhscale.c +28 -16
- data/ext/gtk2/rbgtkhscrollbar.c +28 -16
- data/ext/gtk2/rbgtkhseparator.c +28 -16
- data/ext/gtk2/rbgtkiconfactory.c +35 -23
- data/ext/gtk2/rbgtkiconinfo.c +42 -30
- data/ext/gtk2/rbgtkiconset.c +31 -19
- data/ext/gtk2/rbgtkiconsize.c +38 -25
- data/ext/gtk2/rbgtkiconsource.c +62 -50
- data/ext/gtk2/rbgtkicontheme.c +95 -95
- data/ext/gtk2/rbgtkiconview.c +87 -121
- data/ext/gtk2/rbgtkimage.c +31 -40
- data/ext/gtk2/rbgtkimagemenuitem.c +26 -14
- data/ext/gtk2/rbgtkimcontext.c +46 -34
- data/ext/gtk2/rbgtkimcontextsimple.c +47 -24
- data/ext/gtk2/rbgtkimmulticontext.c +26 -14
- data/ext/gtk2/rbgtkinputdialog.c +28 -16
- data/ext/gtk2/rbgtkinvisible.c +24 -18
- data/ext/gtk2/rbgtkitem.c +32 -20
- data/ext/gtk2/rbgtkitemfactory.c +65 -57
- data/ext/gtk2/rbgtklabel.c +46 -57
- data/ext/gtk2/rbgtklayout.c +40 -29
- data/ext/gtk2/rbgtklinkbutton.c +26 -15
- data/ext/gtk2/rbgtkliststore.c +145 -102
- data/ext/gtk2/rbgtkmacros.h +19 -6
- data/ext/gtk2/rbgtkmenu.c +47 -59
- data/ext/gtk2/rbgtkmenubar.c +30 -30
- data/ext/gtk2/rbgtkmenuitem.c +34 -41
- data/ext/gtk2/rbgtkmenushell.c +43 -42
- data/ext/gtk2/rbgtkmenutoolbutton.c +27 -16
- data/ext/gtk2/rbgtkmessagedialog.c +31 -25
- data/ext/gtk2/rbgtkmisc.c +33 -22
- data/ext/gtk2/rbgtknotebook.c +98 -134
- data/ext/gtk2/rbgtkobject.c +46 -81
- data/ext/gtk2/rbgtkoptionmenu.c +35 -23
- data/ext/gtk2/rbgtkpagesetup.c +64 -54
- data/ext/gtk2/rbgtkpagesetupunixdialog.c +34 -27
- data/ext/gtk2/rbgtkpaned.c +46 -36
- data/ext/gtk2/rbgtkpapersize.c +60 -54
- data/ext/gtk2/rbgtkplug.c +32 -20
- data/ext/gtk2/rbgtkprintcontext.c +43 -35
- data/ext/gtk2/rbgtkprinter.c +36 -37
- data/ext/gtk2/rbgtkprintjob.c +36 -37
- data/ext/gtk2/rbgtkprintoperation.c +44 -33
- data/ext/gtk2/rbgtkprintoperationpreview.c +30 -18
- data/ext/gtk2/rbgtkprintsettings.c +248 -192
- data/ext/gtk2/rbgtkprintunixdialog.c +33 -45
- data/ext/gtk2/rbgtkprogress.c +23 -13
- data/ext/gtk2/rbgtkprogressbar.c +47 -46
- data/ext/gtk2/rbgtkradioaction.c +84 -39
- data/ext/gtk2/rbgtkradiobutton.c +33 -21
- data/ext/gtk2/rbgtkradiomenuitem.c +86 -45
- data/ext/gtk2/rbgtkradiotoolbutton.c +99 -53
- data/ext/gtk2/rbgtkrange.c +36 -56
- data/ext/gtk2/rbgtkrc.c +61 -49
- data/ext/gtk2/rbgtkrcstyle.c +59 -48
- data/ext/gtk2/rbgtkrecentaction.c +28 -16
- data/ext/gtk2/rbgtkrecentchooser.c +58 -92
- data/ext/gtk2/rbgtkrecentchooserdialog.c +29 -18
- data/ext/gtk2/rbgtkrecentchoosermenu.c +25 -21
- data/ext/gtk2/rbgtkrecentchooserwidget.c +24 -13
- data/ext/gtk2/rbgtkrecentdata.c +47 -36
- data/ext/gtk2/rbgtkrecentfilter.c +55 -46
- data/ext/gtk2/rbgtkrecentfilterinfo.c +51 -40
- data/ext/gtk2/rbgtkrecentinfo.c +66 -56
- data/ext/gtk2/rbgtkrecentmanager.c +47 -43
- data/ext/gtk2/rbgtkruler.c +35 -30
- data/ext/gtk2/rbgtkscale.c +29 -18
- data/ext/gtk2/rbgtkscalebutton.c +27 -27
- data/ext/gtk2/rbgtkscrollbar.c +23 -13
- data/ext/gtk2/rbgtkscrolledwindow.c +44 -60
- data/ext/gtk2/rbgtkselection.c +87 -67
- data/ext/gtk2/rbgtkselectiondata.c +74 -65
- data/ext/gtk2/rbgtkseparator.c +23 -13
- data/ext/gtk2/rbgtkseparatormenuitem.c +25 -13
- data/ext/gtk2/rbgtkseparatortoolitem.c +26 -21
- data/ext/gtk2/rbgtksettings.c +123 -103
- data/ext/gtk2/rbgtksizegroup.c +33 -30
- data/ext/gtk2/rbgtksocket.c +32 -20
- data/ext/gtk2/rbgtkspinbutton.c +48 -38
- data/ext/gtk2/rbgtkspinner.c +27 -14
- data/ext/gtk2/rbgtkstatusbar.c +36 -31
- data/ext/gtk2/rbgtkstatusicon.c +31 -44
- data/ext/gtk2/rbgtkstock.c +137 -125
- data/ext/gtk2/rbgtkstyle.c +177 -161
- data/ext/gtk2/rbgtktable.c +58 -47
- data/ext/gtk2/rbgtktargetlist.c +56 -36
- data/ext/gtk2/rbgtktearoffmenuitem.c +28 -16
- data/ext/gtk2/rbgtktextappearance.c +44 -34
- data/ext/gtk2/rbgtktextattributes.c +54 -42
- data/ext/gtk2/rbgtktextbuffer.c +188 -191
- data/ext/gtk2/rbgtktextchild.c +29 -18
- data/ext/gtk2/rbgtktextiter.c +153 -145
- data/ext/gtk2/rbgtktextmark.c +33 -30
- data/ext/gtk2/rbgtktexttag.c +34 -22
- data/ext/gtk2/rbgtktexttagtable.c +36 -25
- data/ext/gtk2/rbgtktextview.c +85 -73
- data/ext/gtk2/rbgtktoggleaction.c +27 -22
- data/ext/gtk2/rbgtktogglebutton.c +37 -26
- data/ext/gtk2/rbgtktoggletoolbutton.c +26 -20
- data/ext/gtk2/rbgtktoolbar.c +66 -69
- data/ext/gtk2/rbgtktoolbutton.c +27 -40
- data/ext/gtk2/rbgtktoolitem.c +60 -62
- data/ext/gtk2/rbgtktooltip.c +36 -25
- data/ext/gtk2/rbgtktooltips.c +42 -34
- data/ext/gtk2/rbgtktreedragdest.c +20 -11
- data/ext/gtk2/rbgtktreedragsource.c +20 -11
- data/ext/gtk2/rbgtktreeiter.c +58 -47
- data/ext/gtk2/rbgtktreemodel.c +83 -65
- data/ext/gtk2/rbgtktreemodelfilter.c +47 -35
- data/ext/gtk2/rbgtktreemodelsort.c +38 -27
- data/ext/gtk2/rbgtktreepath.c +55 -44
- data/ext/gtk2/rbgtktreerowreference.c +60 -42
- data/ext/gtk2/rbgtktreeselection.c +61 -52
- data/ext/gtk2/rbgtktreesortable.c +52 -42
- data/ext/gtk2/rbgtktreestore.c +88 -67
- data/ext/gtk2/rbgtktreeview.c +157 -185
- data/ext/gtk2/rbgtktreeviewcolumn.c +57 -62
- data/ext/gtk2/rbgtkuimanager.c +61 -61
- data/ext/gtk2/rbgtkvbbox.c +28 -16
- data/ext/gtk2/rbgtkvbox.c +29 -17
- data/ext/gtk2/rbgtkviewport.c +28 -16
- data/ext/gtk2/rbgtkvolumebutton.c +28 -16
- data/ext/gtk2/rbgtkvpaned.c +28 -16
- data/ext/gtk2/rbgtkvruler.c +28 -16
- data/ext/gtk2/rbgtkvscale.c +28 -16
- data/ext/gtk2/rbgtkvscrollbar.c +28 -16
- data/ext/gtk2/rbgtkvseparator.c +28 -16
- data/ext/gtk2/rbgtkwidget.c +284 -296
- data/ext/gtk2/rbgtkwindow.c +156 -214
- data/ext/gtk2/rbgtkwindowgroup.c +35 -24
- data/sample/testgtk/labels.rb +1 -0
- data/sample/testgtk/testgtk.rb +2 -0
- metadata +16 -17
- data/ChangeLog +0 -6902
- data/ext/gtk2/rbgtkmain.c +0 -493
data/ext/gtk2/rbgtkcombobox.c
CHANGED
@@ -1,23 +1,34 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2004 Masao Mutoh
|
5
|
+
*
|
6
|
+
* This library is free software; you can redistribute it and/or
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
8
|
+
* License as published by the Free Software Foundation; either
|
9
|
+
* version 2.1 of the License, or (at your option) any later version.
|
10
|
+
*
|
11
|
+
* This library is distributed in the hope that it will be useful,
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
* Lesser General Public License for more details.
|
15
|
+
*
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
17
|
+
* License along with this library; if not, write to the Free Software
|
18
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19
|
+
* MA 02110-1301 USA
|
20
|
+
*/
|
11
21
|
|
12
22
|
#include "global.h"
|
13
|
-
|
23
|
+
|
14
24
|
#if GTK_CHECK_VERSION(2,4,0)
|
15
25
|
|
26
|
+
#define RG_TARGET_NAMESPACE cComboBox
|
16
27
|
#define _SELF(self) (GTK_COMBO_BOX(RVAL2GOBJ(self)))
|
17
28
|
#define RVAL2WIDGET(w) (GTK_WIDGET(RVAL2GOBJ(w)))
|
18
29
|
|
19
30
|
static VALUE
|
20
|
-
|
31
|
+
rg_initialize(int argc, VALUE *argv, VALUE self)
|
21
32
|
{
|
22
33
|
VALUE model_or_false;
|
23
34
|
GtkWidget* widget;
|
@@ -39,22 +50,8 @@ combobox_initialize(int argc, VALUE *argv, VALUE self)
|
|
39
50
|
return Qnil;
|
40
51
|
}
|
41
52
|
|
42
|
-
/* Defined as properties.
|
43
|
-
void gtk_combo_box_set_wrap_width (GtkComboBox *combo_box,
|
44
|
-
gint width);
|
45
|
-
void gtk_combo_box_set_row_span_column
|
46
|
-
(GtkComboBox *combo_box,
|
47
|
-
gint row_span);
|
48
|
-
void gtk_combo_box_set_column_span_column
|
49
|
-
(GtkComboBox *combo_box,
|
50
|
-
gint column_span);
|
51
|
-
gint gtk_combo_box_get_active (GtkComboBox *combo_box);
|
52
|
-
void gtk_combo_box_set_active (GtkComboBox *combo_box,
|
53
|
-
gint index);
|
54
|
-
*/
|
55
|
-
|
56
53
|
static VALUE
|
57
|
-
|
54
|
+
rg_active_iter(VALUE self)
|
58
55
|
{
|
59
56
|
GtkTreeIter iter;
|
60
57
|
VALUE val = Qnil;
|
@@ -67,75 +64,50 @@ combobox_get_active_iter(VALUE self)
|
|
67
64
|
}
|
68
65
|
|
69
66
|
static VALUE
|
70
|
-
|
67
|
+
rg_set_active_iter(VALUE self, VALUE iter)
|
71
68
|
{
|
72
69
|
gtk_combo_box_set_active_iter(_SELF(self), RVAL2GTKTREEITER(iter));
|
73
70
|
return self;
|
74
71
|
}
|
75
72
|
|
76
|
-
/* Defined as properties
|
77
|
-
GtkTreeModel* gtk_combo_box_get_model (GtkComboBox *combo_box);
|
78
|
-
void gtk_combo_box_set_model (GtkComboBox *combo_box,
|
79
|
-
GtkTreeModel *model);
|
80
|
-
*/
|
81
|
-
|
82
|
-
|
83
73
|
static VALUE
|
84
|
-
|
74
|
+
rg_append_text(VALUE self, VALUE text)
|
85
75
|
{
|
86
76
|
gtk_combo_box_append_text(_SELF(self), RVAL2CSTR(text));
|
87
77
|
return self;
|
88
78
|
}
|
89
79
|
|
90
80
|
static VALUE
|
91
|
-
|
81
|
+
rg_insert_text(VALUE self, VALUE position, VALUE text)
|
92
82
|
{
|
93
83
|
gtk_combo_box_insert_text(_SELF(self), NUM2INT(position), RVAL2CSTR(text));
|
94
84
|
return self;
|
95
85
|
}
|
96
86
|
|
97
87
|
static VALUE
|
98
|
-
|
88
|
+
rg_prepend_text(VALUE self, VALUE text)
|
99
89
|
{
|
100
90
|
gtk_combo_box_prepend_text(_SELF(self), RVAL2CSTR(text));
|
101
91
|
return self;
|
102
92
|
}
|
103
93
|
|
104
94
|
static VALUE
|
105
|
-
|
95
|
+
rg_remove_text(VALUE self, VALUE position)
|
106
96
|
{
|
107
97
|
gtk_combo_box_remove_text(_SELF(self), NUM2INT(position));
|
108
98
|
return self;
|
109
99
|
}
|
110
|
-
|
111
|
-
/* Defined as Signals
|
112
|
-
void gtk_combo_box_popup (GtkComboBox *combo_box);
|
113
|
-
void gtk_combo_box_popdown (GtkComboBox *combo_box);
|
114
|
-
*/
|
115
100
|
|
116
101
|
#if GTK_CHECK_VERSION(2,6,0)
|
117
|
-
/* Defined as Property
|
118
|
-
void gtk_combo_box_set_add_tearoffs (GtkComboBox *combo_box,
|
119
|
-
gboolean add_tearoffs);
|
120
|
-
gboolean gtk_combo_box_get_add_tearoffs (GtkComboBox *combo_box);
|
121
|
-
gint gtk_combo_box_get_column_span_column
|
122
|
-
(GtkComboBox *combo_box);
|
123
|
-
gint gtk_combo_box_get_wrap_width (GtkComboBox *combo_box);
|
124
|
-
|
125
|
-
gboolean gtk_combo_box_get_focus_on_click
|
126
|
-
(GtkComboBox *combo);
|
127
|
-
gint gtk_combo_box_get_row_span_column
|
128
|
-
(GtkComboBox *combo_box);
|
129
|
-
*/
|
130
102
|
|
131
103
|
static VALUE
|
132
|
-
|
104
|
+
rg_active_text(VALUE self)
|
133
105
|
{
|
134
106
|
return CSTR2RVAL_FREE(gtk_combo_box_get_active_text(_SELF(self)));
|
135
107
|
}
|
136
108
|
|
137
109
|
static VALUE
|
138
|
-
|
110
|
+
rg_popup_accessible(VALUE self)
|
139
111
|
{
|
140
112
|
return GOBJ2RVAL(gtk_combo_box_get_popup_accessible(_SELF(self)));
|
141
113
|
}
|
@@ -154,7 +126,7 @@ row_separator_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer *func)
|
|
154
126
|
}
|
155
127
|
|
156
128
|
static VALUE
|
157
|
-
|
129
|
+
rg_set_row_separator_func(VALUE self)
|
158
130
|
{
|
159
131
|
VALUE func = rb_block_proc();
|
160
132
|
G_RELATIVE(self, func);
|
@@ -164,39 +136,28 @@ combobox_set_row_separator_func(VALUE self)
|
|
164
136
|
return self;
|
165
137
|
}
|
166
138
|
|
167
|
-
/* Defined as Properties
|
168
|
-
void gtk_combo_box_set_focus_on_click (GtkComboBox *combo,
|
169
|
-
gboolean focus_on_click);
|
170
|
-
*/
|
171
|
-
|
172
139
|
#endif
|
173
140
|
#endif
|
174
141
|
|
175
|
-
/* Defined as Properties
|
176
|
-
void gtk_combo_box_set_title (GtkComboBox *combo_box,
|
177
|
-
const gchar *title);
|
178
|
-
const gchar* gtk_combo_box_get_title (GtkComboBox *combo_box);
|
179
|
-
*/
|
180
|
-
|
181
142
|
void
|
182
|
-
Init_gtk_combobox()
|
143
|
+
Init_gtk_combobox(VALUE mGtk)
|
183
144
|
{
|
184
145
|
#if GTK_CHECK_VERSION(2,4,0)
|
185
|
-
VALUE
|
146
|
+
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_COMBO_BOX, "ComboBox", mGtk);
|
186
147
|
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
G_DEF_SETTER(
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
148
|
+
RG_DEF_METHOD(initialize, -1);
|
149
|
+
RG_DEF_METHOD(active_iter, 0);
|
150
|
+
RG_DEF_METHOD(set_active_iter, 1);
|
151
|
+
G_DEF_SETTER(RG_TARGET_NAMESPACE, "active_iter");
|
152
|
+
RG_DEF_METHOD(append_text, 1);
|
153
|
+
RG_DEF_METHOD(insert_text, 2);
|
154
|
+
RG_DEF_METHOD(prepend_text, 1);
|
155
|
+
RG_DEF_METHOD(remove_text, 1);
|
195
156
|
|
196
157
|
#if GTK_CHECK_VERSION(2,6,0)
|
197
|
-
|
198
|
-
|
199
|
-
|
158
|
+
RG_DEF_METHOD(active_text, 0);
|
159
|
+
RG_DEF_METHOD(popup_accessible, 0);
|
160
|
+
RG_DEF_METHOD(set_row_separator_func, 0);
|
200
161
|
#endif
|
201
162
|
#endif
|
202
163
|
}
|
@@ -1,20 +1,32 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2004 Masao Mutoh
|
5
|
+
*
|
6
|
+
* This library is free software; you can redistribute it and/or
|
7
|
+
* modify it under the terms of the GNU Lesser General Public
|
8
|
+
* License as published by the Free Software Foundation; either
|
9
|
+
* version 2.1 of the License, or (at your option) any later version.
|
10
|
+
*
|
11
|
+
* This library is distributed in the hope that it will be useful,
|
12
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
14
|
+
* Lesser General Public License for more details.
|
15
|
+
*
|
16
|
+
* You should have received a copy of the GNU Lesser General Public
|
17
|
+
* License along with this library; if not, write to the Free Software
|
18
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
19
|
+
* MA 02110-1301 USA
|
20
|
+
*/
|
11
21
|
|
12
22
|
#include "global.h"
|
13
|
-
|
23
|
+
|
14
24
|
#if GTK_CHECK_VERSION(2,4,0)
|
15
25
|
|
26
|
+
#define RG_TARGET_NAMESPACE cComboBoxEntry
|
27
|
+
|
16
28
|
static VALUE
|
17
|
-
|
29
|
+
rg_initialize(int argc, VALUE *argv, VALUE self)
|
18
30
|
{
|
19
31
|
VALUE model_or_false, text_column;
|
20
32
|
GtkWidget* widget;
|
@@ -38,20 +50,13 @@ comboboxentry_initialize(int argc, VALUE *argv, VALUE self)
|
|
38
50
|
return Qnil;
|
39
51
|
}
|
40
52
|
|
41
|
-
/* Defined as property.
|
42
|
-
void gtk_combo_box_entry_set_text_column
|
43
|
-
(GtkComboBoxEntry *entry_box,
|
44
|
-
gint text_column);
|
45
|
-
gint gtk_combo_box_entry_get_text_column
|
46
|
-
(GtkComboBoxEntry *entry_box);
|
47
|
-
*/
|
48
53
|
#endif
|
49
54
|
|
50
55
|
void
|
51
|
-
Init_gtk_comboboxentry()
|
56
|
+
Init_gtk_comboboxentry(VALUE mGtk)
|
52
57
|
{
|
53
58
|
#if GTK_CHECK_VERSION(2,4,0)
|
54
|
-
VALUE
|
55
|
-
|
59
|
+
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_COMBO_BOX_ENTRY, "ComboBoxEntry", mGtk);
|
60
|
+
RG_DEF_METHOD(initialize, -1);
|
56
61
|
#endif
|
57
62
|
}
|
data/ext/gtk2/rbgtkconst.c
CHANGED
@@ -1,16 +1,26 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2002,2003 Ruby-GNOME2 Project Team
|
5
|
+
* Copyright (C) 1998-2000 Yukihiro Matsumoto,
|
6
|
+
* Daisuke Kanda,
|
7
|
+
* Hiroshi Igarashi
|
8
|
+
*
|
9
|
+
* This library is free software; you can redistribute it and/or
|
10
|
+
* modify it under the terms of the GNU Lesser General Public
|
11
|
+
* License as published by the Free Software Foundation; either
|
12
|
+
* version 2.1 of the License, or (at your option) any later version.
|
13
|
+
*
|
14
|
+
* This library is distributed in the hope that it will be useful,
|
15
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
17
|
+
* Lesser General Public License for more details.
|
18
|
+
*
|
19
|
+
* You should have received a copy of the GNU Lesser General Public
|
20
|
+
* License along with this library; if not, write to the Free Software
|
21
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
22
|
+
* MA 02110-1301 USA
|
23
|
+
*/
|
14
24
|
|
15
25
|
#include "global.h"
|
16
26
|
|
@@ -18,7 +28,7 @@
|
|
18
28
|
* constants
|
19
29
|
*/
|
20
30
|
void
|
21
|
-
Init_gtk_const()
|
31
|
+
Init_gtk_const(VALUE mGtk)
|
22
32
|
{
|
23
33
|
/*
|
24
34
|
* version information
|
data/ext/gtk2/rbgtkcontainer.c
CHANGED
@@ -1,19 +1,30 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2002-2006 Ruby-GNOME2 Project Team
|
5
|
+
* Copyright (C) 1998-2000 Yukihiro Matsumoto,
|
6
|
+
* Daisuke Kanda,
|
7
|
+
* Hiroshi Igarashi
|
8
|
+
*
|
9
|
+
* This library is free software; you can redistribute it and/or
|
10
|
+
* modify it under the terms of the GNU Lesser General Public
|
11
|
+
* License as published by the Free Software Foundation; either
|
12
|
+
* version 2.1 of the License, or (at your option) any later version.
|
13
|
+
*
|
14
|
+
* This library is distributed in the hope that it will be useful,
|
15
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
16
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
17
|
+
* Lesser General Public License for more details.
|
18
|
+
*
|
19
|
+
* You should have received a copy of the GNU Lesser General Public
|
20
|
+
* License along with this library; if not, write to the Free Software
|
21
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
22
|
+
* MA 02110-1301 USA
|
23
|
+
*/
|
14
24
|
|
15
25
|
#include "global.h"
|
16
26
|
|
27
|
+
#define RG_TARGET_NAMESPACE cContainer
|
17
28
|
#define _SELF(s) (GTK_CONTAINER(RVAL2GOBJ(self)))
|
18
29
|
|
19
30
|
/*
|
@@ -25,13 +36,13 @@ static VALUE type_to_prop_setter_table;
|
|
25
36
|
static VALUE type_to_prop_getter_table;
|
26
37
|
|
27
38
|
static VALUE
|
28
|
-
|
39
|
+
rg_resize_container_p(VALUE self)
|
29
40
|
{
|
30
41
|
return CBOOL2RVAL(GTK_IS_RESIZE_CONTAINER(_SELF(self)));
|
31
42
|
}
|
32
43
|
|
33
44
|
static VALUE
|
34
|
-
|
45
|
+
rg_remove(VALUE self, VALUE other)
|
35
46
|
{
|
36
47
|
G_CHILD_REMOVE(self, other);
|
37
48
|
gtk_container_remove(_SELF(self), GTK_WIDGET(RVAL2GOBJ(other)));
|
@@ -39,14 +50,14 @@ cont_remove(VALUE self, VALUE other)
|
|
39
50
|
}
|
40
51
|
|
41
52
|
static VALUE
|
42
|
-
|
53
|
+
rg_check_resize(VALUE self)
|
43
54
|
{
|
44
55
|
gtk_container_check_resize(_SELF(self));
|
45
56
|
return self;
|
46
57
|
}
|
47
58
|
|
48
59
|
static VALUE
|
49
|
-
|
60
|
+
rg_each(int argc, VALUE *argv, VALUE self)
|
50
61
|
{
|
51
62
|
VALUE callback;
|
52
63
|
|
@@ -59,7 +70,7 @@ cont_foreach(int argc, VALUE *argv, VALUE self)
|
|
59
70
|
}
|
60
71
|
|
61
72
|
static VALUE
|
62
|
-
|
73
|
+
rg_each_forall(int argc, VALUE *argv, VALUE self)
|
63
74
|
{
|
64
75
|
VALUE callback;
|
65
76
|
|
@@ -72,28 +83,27 @@ cont_forall(int argc, VALUE *argv, VALUE self)
|
|
72
83
|
}
|
73
84
|
|
74
85
|
static VALUE
|
75
|
-
|
86
|
+
rg_children(VALUE self)
|
76
87
|
{
|
77
88
|
return GLIST2ARYF(gtk_container_get_children(_SELF(self)));
|
78
89
|
}
|
79
90
|
|
80
91
|
static VALUE
|
81
|
-
|
92
|
+
rg_set_reallocate_redraws(VALUE self, VALUE needs_redraws)
|
82
93
|
{
|
83
94
|
gtk_container_set_reallocate_redraws(_SELF(self), RVAL2CBOOL(needs_redraws));
|
84
95
|
return self;
|
85
96
|
}
|
86
97
|
|
87
|
-
|
88
98
|
static VALUE
|
89
|
-
|
99
|
+
rg_set_focus_child(VALUE self, VALUE child)
|
90
100
|
{
|
91
101
|
gtk_container_set_focus_child(_SELF(self), GTK_WIDGET(RVAL2GOBJ(child)));
|
92
102
|
return self;
|
93
103
|
}
|
94
104
|
|
95
105
|
static VALUE
|
96
|
-
|
106
|
+
rg_set_focus_vadjustment(VALUE self, VALUE adjustment)
|
97
107
|
{
|
98
108
|
gtk_container_set_focus_vadjustment(_SELF(self),
|
99
109
|
NIL_P(adjustment) ? NULL : GTK_ADJUSTMENT(RVAL2GOBJ(adjustment)));
|
@@ -101,7 +111,7 @@ cont_set_focus_vadjustment(VALUE self, VALUE adjustment)
|
|
101
111
|
}
|
102
112
|
|
103
113
|
static VALUE
|
104
|
-
|
114
|
+
rg_set_focus_hadjustment(VALUE self, VALUE adjustment)
|
105
115
|
{
|
106
116
|
gtk_container_set_focus_hadjustment(_SELF(self),
|
107
117
|
NIL_P(adjustment) ? NULL : GTK_ADJUSTMENT(RVAL2GOBJ(adjustment)));
|
@@ -109,28 +119,28 @@ cont_set_focus_hadjustment(VALUE self, VALUE adjustment)
|
|
109
119
|
}
|
110
120
|
|
111
121
|
static VALUE
|
112
|
-
|
122
|
+
rg_focus_vadjustment(VALUE self)
|
113
123
|
{
|
114
124
|
GtkAdjustment* adj = gtk_container_get_focus_vadjustment(_SELF(self));
|
115
125
|
return adj ? GOBJ2RVAL(adj) : Qnil;
|
116
126
|
}
|
117
127
|
|
118
128
|
static VALUE
|
119
|
-
|
129
|
+
rg_focus_hadjustment(VALUE self)
|
120
130
|
{
|
121
131
|
GtkAdjustment* adj = gtk_container_get_focus_hadjustment(_SELF(self));
|
122
132
|
return adj ? GOBJ2RVAL(adj) : Qnil;
|
123
133
|
}
|
124
134
|
|
125
135
|
static VALUE
|
126
|
-
|
136
|
+
rg_resize_children(VALUE self)
|
127
137
|
{
|
128
138
|
gtk_container_resize_children(_SELF(self));
|
129
139
|
return self;
|
130
140
|
}
|
131
141
|
|
132
142
|
static VALUE
|
133
|
-
|
143
|
+
rg_child_type(VALUE self)
|
134
144
|
{
|
135
145
|
return GTYPE2CLASS(gtk_container_child_type(_SELF(self)));
|
136
146
|
}
|
@@ -187,7 +197,7 @@ rbgtkcontainer_register_child_property_getter(GType gtype, const char *name, GVa
|
|
187
197
|
}
|
188
198
|
|
189
199
|
static VALUE
|
190
|
-
|
200
|
+
rg_child_get_property(VALUE self, VALUE child, VALUE prop_name)
|
191
201
|
{
|
192
202
|
GParamSpec* pspec;
|
193
203
|
const char* name;
|
@@ -205,9 +215,9 @@ cont_child_get_property(VALUE self, VALUE child, VALUE prop_name)
|
|
205
215
|
rb_raise(rb_eArgError, "No such property: %s", name);
|
206
216
|
else {
|
207
217
|
GValueToRValueFunc getter = NULL;
|
208
|
-
GValue gval =
|
218
|
+
GValue gval = G_VALUE_INIT;
|
209
219
|
VALUE ret;
|
210
|
-
|
220
|
+
|
211
221
|
{
|
212
222
|
VALUE table = rb_hash_aref(type_to_prop_getter_table,
|
213
223
|
INT2FIX(pspec->owner_type));
|
@@ -231,7 +241,7 @@ cont_child_get_property(VALUE self, VALUE child, VALUE prop_name)
|
|
231
241
|
}
|
232
242
|
|
233
243
|
static VALUE
|
234
|
-
|
244
|
+
rg_child_set_property(VALUE self, VALUE child, VALUE prop_name, VALUE val)
|
235
245
|
{
|
236
246
|
GParamSpec* pspec;
|
237
247
|
const char* name;
|
@@ -249,7 +259,7 @@ cont_child_set_property(VALUE self, VALUE child, VALUE prop_name, VALUE val)
|
|
249
259
|
rb_raise(rb_eArgError, "No such property: %s", name);
|
250
260
|
else {
|
251
261
|
RValueToGValueFunc setter = NULL;
|
252
|
-
GValue gval =
|
262
|
+
GValue gval = G_VALUE_INIT;
|
253
263
|
g_value_init(&gval, G_PARAM_SPEC_VALUE_TYPE(pspec));
|
254
264
|
|
255
265
|
{
|
@@ -280,7 +290,7 @@ cont_child_set_property(VALUE self, VALUE child, VALUE prop_name, VALUE val)
|
|
280
290
|
}
|
281
291
|
|
282
292
|
static VALUE
|
283
|
-
|
293
|
+
rg_add(int argc, VALUE *argv, VALUE self)
|
284
294
|
{
|
285
295
|
VALUE other, properties;
|
286
296
|
GtkWidget *child;
|
@@ -297,13 +307,13 @@ cont_add(int argc, VALUE *argv, VALUE self)
|
|
297
307
|
int i;
|
298
308
|
VALUE ary;
|
299
309
|
GObject* obj;
|
300
|
-
|
310
|
+
|
301
311
|
Check_Type(properties, T_HASH);
|
302
312
|
ary = rb_funcall(properties, rb_intern("to_a"), 0);
|
303
313
|
obj = RVAL2GOBJ(self);
|
304
|
-
|
314
|
+
|
305
315
|
for (i = 0; i < RARRAY_LEN(ary); i++) {
|
306
|
-
|
316
|
+
rg_child_set_property(self, other,
|
307
317
|
RARRAY_PTR(RARRAY_PTR(ary)[i])[0],
|
308
318
|
RARRAY_PTR(RARRAY_PTR(ary)[i])[1]);
|
309
319
|
}
|
@@ -324,7 +334,7 @@ void gtk_container_child_set_valist (GtkContainer *container,
|
|
324
334
|
*/
|
325
335
|
|
326
336
|
static VALUE
|
327
|
-
|
337
|
+
rg_propagate_expose(VALUE self, VALUE child, VALUE event)
|
328
338
|
{
|
329
339
|
gtk_container_propagate_expose(_SELF(self), GTK_WIDGET(RVAL2GOBJ(child)),
|
330
340
|
(GdkEventExpose *)RVAL2GEV(event));
|
@@ -332,7 +342,7 @@ cont_propagate_expose(VALUE self, VALUE child, VALUE event)
|
|
332
342
|
}
|
333
343
|
|
334
344
|
static VALUE
|
335
|
-
|
345
|
+
rg_focus_chain(VALUE self)
|
336
346
|
{
|
337
347
|
gboolean ret;
|
338
348
|
GList *glist = NULL;
|
@@ -340,31 +350,71 @@ cont_get_focus_chain(VALUE self)
|
|
340
350
|
return GLIST2ARYF(glist);
|
341
351
|
}
|
342
352
|
|
353
|
+
struct rval2gtkwidgetglist_args {
|
354
|
+
VALUE ary;
|
355
|
+
long n;
|
356
|
+
GList *result;
|
357
|
+
};
|
358
|
+
|
343
359
|
static VALUE
|
344
|
-
|
360
|
+
rbg_rval2gtkwidgetglist_body(VALUE value)
|
345
361
|
{
|
346
|
-
|
347
|
-
|
362
|
+
long i;
|
363
|
+
struct rval2gtkwidgetglist_args *args = (struct rval2gtkwidgetglist_args *)value;
|
348
364
|
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
365
|
+
for (i = 0; i < args->n; i++)
|
366
|
+
args->result = g_list_append(args->result, GTK_WIDGET(RVAL2GOBJ(RARRAY_PTR(args->ary)[i])));
|
367
|
+
|
368
|
+
return Qnil;
|
369
|
+
}
|
370
|
+
|
371
|
+
static G_GNUC_NORETURN VALUE
|
372
|
+
rbg_rval2gtkwidgetglist_rescue(VALUE value)
|
373
|
+
{
|
374
|
+
g_list_free(((struct rval2gtkwidgetglist_args *)value)->result);
|
375
|
+
|
376
|
+
rb_exc_raise(rb_errinfo());
|
377
|
+
}
|
378
|
+
|
379
|
+
static GList *
|
380
|
+
rbg_rval2gtkwidgetglist(VALUE value)
|
381
|
+
{
|
382
|
+
struct rval2gtkwidgetglist_args args;
|
383
|
+
|
384
|
+
args.ary = rb_ary_to_ary(value);
|
385
|
+
args.n = RARRAY_LEN(args.ary);
|
386
|
+
args.result = NULL;
|
387
|
+
|
388
|
+
rb_rescue(rbg_rval2gtkwidgetglist_body, (VALUE)&args,
|
389
|
+
rbg_rval2gtkwidgetglist_rescue, (VALUE)&args);
|
390
|
+
|
391
|
+
return args.result;
|
392
|
+
}
|
393
|
+
|
394
|
+
#define RVAL2GTKWIDGETGLIST(value) rbg_rval2gtkwidgetglist(value)
|
395
|
+
|
396
|
+
static VALUE
|
397
|
+
rg_set_focus_chain(VALUE self, VALUE rbfocusable_widgets)
|
398
|
+
{
|
399
|
+
GtkContainer *container = _SELF(self);
|
400
|
+
GList *focusable_widgets = RVAL2GTKWIDGETGLIST(rbfocusable_widgets);
|
401
|
+
|
402
|
+
gtk_container_set_focus_chain(container, focusable_widgets);
|
403
|
+
|
404
|
+
g_list_free(focusable_widgets);
|
355
405
|
|
356
406
|
return self;
|
357
407
|
}
|
358
408
|
|
359
409
|
static VALUE
|
360
|
-
|
410
|
+
rg_unset_focus_chain(VALUE self)
|
361
411
|
{
|
362
412
|
gtk_container_unset_focus_chain(_SELF(self));
|
363
413
|
return self;
|
364
414
|
}
|
365
415
|
|
366
416
|
static VALUE
|
367
|
-
|
417
|
+
rg_s_child_property(VALUE self, VALUE property_name)
|
368
418
|
{
|
369
419
|
GObjectClass* oclass;
|
370
420
|
const char* name;
|
@@ -391,7 +441,7 @@ cont_s_child_property(VALUE self, VALUE property_name)
|
|
391
441
|
}
|
392
442
|
|
393
443
|
static VALUE
|
394
|
-
|
444
|
+
rg_s_install_child_property(int argc, VALUE *argv, VALUE self)
|
395
445
|
{
|
396
446
|
const RGObjClassInfo* cinfo = rbgobj_lookup_class(self);
|
397
447
|
GtkContainerClass* gclass;
|
@@ -415,7 +465,7 @@ cont_s_install_child_property(int argc, VALUE *argv, VALUE self)
|
|
415
465
|
}
|
416
466
|
|
417
467
|
static VALUE
|
418
|
-
|
468
|
+
rg_s_child_properties(int argc, VALUE *argv, VALUE self)
|
419
469
|
{
|
420
470
|
GObjectClass* oclass = g_type_class_ref(CLASS2GTYPE(self));
|
421
471
|
guint n_properties;
|
@@ -451,7 +501,7 @@ cont_initialize(int argc, VALUE *argv, VALUE self)
|
|
451
501
|
{
|
452
502
|
VALUE params_hash;
|
453
503
|
GObject* gobj;
|
454
|
-
|
504
|
+
|
455
505
|
rb_scan_args(argc, argv, "01", ¶ms_hash);
|
456
506
|
|
457
507
|
if (!NIL_P(params_hash))
|
@@ -466,7 +516,7 @@ cont_initialize(int argc, VALUE *argv, VALUE self)
|
|
466
516
|
// FIXME: use rb_protect
|
467
517
|
static void
|
468
518
|
get_prop_func(GObject* object,
|
469
|
-
guint property_id,
|
519
|
+
G_GNUC_UNUSED guint property_id,
|
470
520
|
GValue* value,
|
471
521
|
GParamSpec* pspec)
|
472
522
|
{
|
@@ -492,7 +542,7 @@ get_prop_func(GObject* object,
|
|
492
542
|
// FIXME: use rb_protect
|
493
543
|
static void
|
494
544
|
set_prop_func(GObject* object,
|
495
|
-
guint property_id,
|
545
|
+
G_GNUC_UNUSED guint property_id,
|
496
546
|
const GValue* value,
|
497
547
|
GParamSpec* pspec)
|
498
548
|
{
|
@@ -514,11 +564,11 @@ set_prop_func(GObject* object,
|
|
514
564
|
|
515
565
|
// FIXME: use rb_protect
|
516
566
|
static void
|
517
|
-
get_child_prop_func(GtkContainer*
|
518
|
-
GtkWidget*
|
519
|
-
guint
|
520
|
-
GValue*
|
521
|
-
GParamSpec*
|
567
|
+
get_child_prop_func(GtkContainer *container,
|
568
|
+
GtkWidget *child,
|
569
|
+
G_GNUC_UNUSED guint property_id,
|
570
|
+
GValue *value,
|
571
|
+
GParamSpec *pspec)
|
522
572
|
{
|
523
573
|
ID ruby_getter = (ID)g_param_spec_get_qdata(pspec, q_ruby_getter);
|
524
574
|
if (!ruby_getter) {
|
@@ -541,11 +591,11 @@ get_child_prop_func(GtkContainer* container,
|
|
541
591
|
|
542
592
|
// FIXME: use rb_protect
|
543
593
|
static void
|
544
|
-
set_child_prop_func(GtkContainer*
|
545
|
-
GtkWidget*
|
546
|
-
guint
|
547
|
-
const GValue*
|
548
|
-
GParamSpec*
|
594
|
+
set_child_prop_func(GtkContainer *container,
|
595
|
+
GtkWidget *child,
|
596
|
+
G_GNUC_UNUSED guint property_id,
|
597
|
+
const GValue *value,
|
598
|
+
GParamSpec *pspec)
|
549
599
|
{
|
550
600
|
ID ruby_setter = (ID)g_param_spec_get_qdata(pspec, q_ruby_setter);
|
551
601
|
if (!ruby_setter) {
|
@@ -565,7 +615,7 @@ set_child_prop_func(GtkContainer* container,
|
|
565
615
|
|
566
616
|
// FIXME: use rb_protect
|
567
617
|
static void
|
568
|
-
class_init_func(gpointer g_class, gpointer class_data)
|
618
|
+
class_init_func(gpointer g_class, G_GNUC_UNUSED gpointer class_data)
|
569
619
|
{
|
570
620
|
GObjectClass* g_class1 = G_OBJECT_CLASS(g_class);
|
571
621
|
GtkContainerClass* g_class2 = GTK_CONTAINER_CLASS(g_class);
|
@@ -584,7 +634,7 @@ class_init_func(gpointer g_class, gpointer class_data)
|
|
584
634
|
}
|
585
635
|
|
586
636
|
static VALUE
|
587
|
-
|
637
|
+
rg_s_type_register(int argc, VALUE* argv, VALUE self)
|
588
638
|
{
|
589
639
|
VALUE type_name, flags;
|
590
640
|
volatile VALUE class_init_proc = Qnil;
|
@@ -593,6 +643,7 @@ type_register(int argc, VALUE* argv, VALUE self)
|
|
593
643
|
|
594
644
|
rb_scan_args(argc, argv, "03", &type_name, &info, &flags);
|
595
645
|
|
646
|
+
/* TODO: Replace this copy-paste job with the real thing in glib2. */
|
596
647
|
{
|
597
648
|
const RGObjClassInfo* cinfo = rbgobj_lookup_class(self);
|
598
649
|
if (cinfo->klass == self)
|
@@ -622,6 +673,8 @@ type_register(int argc, VALUE* argv, VALUE self)
|
|
622
673
|
GTypeQuery query;
|
623
674
|
g_type_query(parent_type, &query);
|
624
675
|
|
676
|
+
/* TODO: This should not require a new GTypeInfo, as GLib doesn't
|
677
|
+
* retain a copy. */
|
625
678
|
info = g_new0(GTypeInfo, 1);
|
626
679
|
info->class_size = query.class_size;
|
627
680
|
info->base_init = NULL;
|
@@ -667,7 +720,7 @@ type_register(int argc, VALUE* argv, VALUE self)
|
|
667
720
|
/**********************************************************************/
|
668
721
|
|
669
722
|
static void
|
670
|
-
cont_mark_callback(GtkWidget*
|
723
|
+
cont_mark_callback(GtkWidget *w, G_GNUC_UNUSED gpointer data)
|
671
724
|
{
|
672
725
|
rbgobj_gc_mark_instance(w);
|
673
726
|
}
|
@@ -681,47 +734,47 @@ cont_mark(void* p)
|
|
681
734
|
/**********************************************************************/
|
682
735
|
|
683
736
|
void
|
684
|
-
Init_gtk_container()
|
685
|
-
{
|
686
|
-
VALUE
|
687
|
-
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
692
|
-
|
693
|
-
|
694
|
-
|
695
|
-
|
696
|
-
|
697
|
-
|
698
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
|
709
|
-
|
710
|
-
|
711
|
-
|
712
|
-
|
713
|
-
|
714
|
-
|
737
|
+
Init_gtk_container(VALUE mGtk)
|
738
|
+
{
|
739
|
+
VALUE RG_TARGET_NAMESPACE;
|
740
|
+
|
741
|
+
RG_TARGET_NAMESPACE = G_DEF_CLASS_WITH_GC_FUNC(GTK_TYPE_CONTAINER, "Container",
|
742
|
+
mGtk, cont_mark, NULL);
|
743
|
+
RG_DEF_METHOD_P(resize_container, 0);
|
744
|
+
RG_DEF_METHOD(add, -1);
|
745
|
+
RG_DEF_ALIAS("<<", "add");
|
746
|
+
RG_DEF_METHOD(remove, 1);
|
747
|
+
RG_DEF_METHOD(check_resize, 0);
|
748
|
+
RG_DEF_METHOD(each, -1);
|
749
|
+
RG_DEF_METHOD(each_forall, -1);
|
750
|
+
RG_DEF_METHOD(children, 0);
|
751
|
+
RG_DEF_METHOD(set_reallocate_redraws, 1);
|
752
|
+
RG_DEF_METHOD(set_focus_child, 1);
|
753
|
+
RG_DEF_METHOD(set_focus_vadjustment, 1);
|
754
|
+
RG_DEF_METHOD(set_focus_hadjustment, 1);
|
755
|
+
RG_DEF_METHOD(focus_vadjustment, 0);
|
756
|
+
RG_DEF_METHOD(focus_hadjustment, 0);
|
757
|
+
RG_DEF_METHOD(resize_children, 0);
|
758
|
+
RG_DEF_METHOD(child_type, 0);
|
759
|
+
RG_DEF_METHOD(child_get_property, 2);
|
760
|
+
RG_DEF_METHOD(child_set_property, 3);
|
761
|
+
RG_DEF_METHOD(propagate_expose, 2);
|
762
|
+
RG_DEF_METHOD(focus_chain, 0);
|
763
|
+
RG_DEF_METHOD(set_focus_chain, 1);
|
764
|
+
RG_DEF_METHOD(unset_focus_chain, 0);
|
765
|
+
RG_DEF_SMETHOD(child_property, 1);
|
766
|
+
RG_DEF_SMETHOD(child_properties, -1);
|
767
|
+
RG_DEF_SMETHOD(install_child_property, -1);
|
715
768
|
|
716
769
|
q_ruby_getter = g_quark_from_static_string("__ruby_getter");
|
717
770
|
q_ruby_setter = g_quark_from_static_string("__ruby_setter");
|
718
771
|
|
719
|
-
|
772
|
+
RG_DEF_SMETHOD(type_register, -1);
|
720
773
|
|
721
774
|
rb_global_variable(&proc_mod_eval);
|
722
775
|
proc_mod_eval = rb_eval_string("lambda{|obj,proc| obj.module_eval(&proc)}");
|
723
776
|
|
724
|
-
G_DEF_SETTERS(
|
777
|
+
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
|
725
778
|
|
726
779
|
rb_global_variable(&type_to_prop_setter_table);
|
727
780
|
rb_global_variable(&type_to_prop_getter_table);
|