gtk2 1.0.3 → 1.1.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.
- 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
@@ -1,19 +1,28 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2003 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
|
+
*/
|
12
21
|
|
13
22
|
#include "global.h"
|
14
23
|
|
15
24
|
void
|
16
|
-
Init_gtk_treedragdest()
|
25
|
+
Init_gtk_treedragdest(VALUE mGtk)
|
17
26
|
{
|
18
27
|
G_DEF_INTERFACE(GTK_TYPE_TREE_DRAG_DEST, "TreeDragDest", mGtk);
|
19
28
|
}
|
@@ -1,19 +1,28 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2003 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
|
+
*/
|
12
21
|
|
13
22
|
#include "global.h"
|
14
23
|
|
15
24
|
void
|
16
|
-
Init_gtk_treedragsource()
|
25
|
+
Init_gtk_treedragsource(VALUE mGtk)
|
17
26
|
{
|
18
27
|
G_DEF_INTERFACE(GTK_TYPE_TREE_DRAG_SOURCE, "TreeDragSource", mGtk);
|
19
28
|
}
|
data/ext/gtk2/rbgtktreeiter.c
CHANGED
@@ -1,17 +1,28 @@
|
|
1
1
|
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
2
|
+
/*
|
3
|
+
* Copyright (C) 2011 Ruby-GNOME2 Project Team
|
4
|
+
* Copyright (C) 2002-2004 Ruby-GNOME2 Project Team
|
5
|
+
* Copyright (C) 2002,2003 Masao Mutoh
|
6
|
+
*
|
7
|
+
* This library is free software; you can redistribute it and/or
|
8
|
+
* modify it under the terms of the GNU Lesser General Public
|
9
|
+
* License as published by the Free Software Foundation; either
|
10
|
+
* version 2.1 of the License, or (at your option) any later version.
|
11
|
+
*
|
12
|
+
* This library is distributed in the hope that it will be useful,
|
13
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
14
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
15
|
+
* Lesser General Public License for more details.
|
16
|
+
*
|
17
|
+
* You should have received a copy of the GNU Lesser General Public
|
18
|
+
* License along with this library; if not, write to the Free Software
|
19
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
20
|
+
* MA 02110-1301 USA
|
21
|
+
*/
|
12
22
|
|
13
23
|
#include "global.h"
|
14
24
|
|
25
|
+
#define RG_TARGET_NAMESPACE cTreeIter
|
15
26
|
#define _SELF(i) ((GtkTreeIter*)RVAL2BOXED(i, GTK_TYPE_TREE_ITER))
|
16
27
|
|
17
28
|
void
|
@@ -22,7 +33,7 @@ rbgtk_register_treeiter_set_value_func(GType gtype, rbgtkiter_set_value_func fun
|
|
22
33
|
}
|
23
34
|
|
24
35
|
static VALUE
|
25
|
-
|
36
|
+
rg_first_bang(VALUE self)
|
26
37
|
{
|
27
38
|
GtkTreeIter* iter = _SELF(self);
|
28
39
|
GtkTreeModel* model = (GtkTreeModel*)iter->user_data3;
|
@@ -32,7 +43,7 @@ treeiter_first(VALUE self)
|
|
32
43
|
}
|
33
44
|
|
34
45
|
static VALUE
|
35
|
-
|
46
|
+
rg_next_bang(VALUE self)
|
36
47
|
{
|
37
48
|
GtkTreeIter* iter = _SELF(self);
|
38
49
|
GtkTreeModel* model = (GtkTreeModel*)iter->user_data3;
|
@@ -46,9 +57,9 @@ treeiter_next(VALUE self)
|
|
46
57
|
}
|
47
58
|
|
48
59
|
static VALUE
|
49
|
-
|
60
|
+
rg_get_value(VALUE self, VALUE column)
|
50
61
|
{
|
51
|
-
GValue value =
|
62
|
+
GValue value = G_VALUE_INIT;
|
52
63
|
GtkTreeIter* iter = _SELF(self);
|
53
64
|
GtkTreeModel* model = (GtkTreeModel*)iter->user_data3;
|
54
65
|
VALUE ret = Qnil;
|
@@ -62,7 +73,7 @@ treeiter_get_value(VALUE self, VALUE column)
|
|
62
73
|
}
|
63
74
|
|
64
75
|
static VALUE
|
65
|
-
|
76
|
+
rg_first_child(VALUE self)
|
66
77
|
{
|
67
78
|
GtkTreeIter child;
|
68
79
|
GtkTreeIter* iter = _SELF(self);
|
@@ -73,7 +84,7 @@ treeiter_children(VALUE self)
|
|
73
84
|
}
|
74
85
|
|
75
86
|
static VALUE
|
76
|
-
|
87
|
+
rg_path(VALUE self)
|
77
88
|
{
|
78
89
|
VALUE retval = Qnil;
|
79
90
|
GtkTreeIter* iter = _SELF(self);
|
@@ -85,7 +96,7 @@ treeiter_get_path(VALUE self)
|
|
85
96
|
}
|
86
97
|
|
87
98
|
static VALUE
|
88
|
-
|
99
|
+
rg_has_child_p(VALUE self)
|
89
100
|
{
|
90
101
|
GtkTreeIter* iter = _SELF(self);
|
91
102
|
GtkTreeModel* model = (GtkTreeModel*)iter->user_data3;
|
@@ -93,7 +104,7 @@ treeiter_has_child(VALUE self)
|
|
93
104
|
}
|
94
105
|
|
95
106
|
static VALUE
|
96
|
-
|
107
|
+
rg_n_children(VALUE self)
|
97
108
|
{
|
98
109
|
GtkTreeIter* iter = _SELF(self);
|
99
110
|
GtkTreeModel* model = (GtkTreeModel*)iter->user_data3;
|
@@ -101,7 +112,7 @@ treeiter_n_children(VALUE self)
|
|
101
112
|
}
|
102
113
|
|
103
114
|
static VALUE
|
104
|
-
|
115
|
+
rg_nth_child(VALUE self, VALUE n)
|
105
116
|
{
|
106
117
|
GtkTreeIter child;
|
107
118
|
GtkTreeIter* iter = _SELF(self);
|
@@ -112,7 +123,7 @@ treeiter_nth_child(VALUE self, VALUE n)
|
|
112
123
|
}
|
113
124
|
|
114
125
|
static VALUE
|
115
|
-
|
126
|
+
rg_parent(VALUE self)
|
116
127
|
{
|
117
128
|
GtkTreeIter parent;
|
118
129
|
GtkTreeIter* iter = _SELF(self);
|
@@ -123,7 +134,7 @@ treeiter_parent(VALUE self)
|
|
123
134
|
}
|
124
135
|
|
125
136
|
static VALUE
|
126
|
-
|
137
|
+
rg_set_value(VALUE self, VALUE column, VALUE value)
|
127
138
|
{
|
128
139
|
GtkTreeIter* iter = _SELF(self);
|
129
140
|
GtkTreeModel* model = (GtkTreeModel*)iter->user_data3;
|
@@ -131,7 +142,7 @@ treeiter_set_value(VALUE self, VALUE column, VALUE value)
|
|
131
142
|
VALUE obj = rb_hash_aref(treeiter_set_value_table, INT2NUM(G_TYPE_FROM_INSTANCE(model)));
|
132
143
|
rbgtkiter_set_value_func func;
|
133
144
|
GType gtype = gtk_tree_model_get_column_type(model, NUM2INT(column));
|
134
|
-
GValue gval =
|
145
|
+
GValue gval = G_VALUE_INIT;
|
135
146
|
|
136
147
|
if (NIL_P(obj))
|
137
148
|
rb_raise(rb_eTypeError, "Gtk::TreeModel is invalid.");
|
@@ -147,14 +158,14 @@ treeiter_set_value(VALUE self, VALUE column, VALUE value)
|
|
147
158
|
}
|
148
159
|
|
149
160
|
static VALUE
|
150
|
-
|
161
|
+
rg_operator_treeiter_set_value_eql(VALUE self, VALUE column, VALUE value)
|
151
162
|
{
|
152
|
-
|
163
|
+
rg_set_value(self, column, value);
|
153
164
|
return value;
|
154
165
|
}
|
155
166
|
|
156
167
|
static VALUE
|
157
|
-
|
168
|
+
rg_operator_treeiter_eql(VALUE self, VALUE other)
|
158
169
|
{
|
159
170
|
gint i, num1, num2;
|
160
171
|
GtkTreeIter* iter1 = _SELF(self);
|
@@ -189,12 +200,12 @@ treeiter_eql(VALUE self, VALUE other)
|
|
189
200
|
}
|
190
201
|
|
191
202
|
for (i = 0; i < num1; i++){
|
192
|
-
GValue gval1 =
|
193
|
-
GValue gval2 =
|
203
|
+
GValue gval1 = G_VALUE_INIT;
|
204
|
+
GValue gval2 = G_VALUE_INIT;
|
194
205
|
VALUE ret1, ret2;
|
195
206
|
gtk_tree_model_get_value(model1, iter1, i, &gval1);
|
196
207
|
gtk_tree_model_get_value(model2, iter2, i, &gval2);
|
197
|
-
|
208
|
+
|
198
209
|
ret1 = GVAL2RVAL(&gval1);
|
199
210
|
ret2 = GVAL2RVAL(&gval2);
|
200
211
|
g_value_unset(&gval1);
|
@@ -207,7 +218,7 @@ treeiter_eql(VALUE self, VALUE other)
|
|
207
218
|
|
208
219
|
#if GTK_CHECK_VERSION(2,2,0)
|
209
220
|
static VALUE
|
210
|
-
|
221
|
+
rg_to_str(VALUE self)
|
211
222
|
{
|
212
223
|
GtkTreeIter* iter = _SELF(self);
|
213
224
|
GtkTreeModel* model = (GtkTreeModel*)iter->user_data3;
|
@@ -220,25 +231,25 @@ treeiter_to_string(VALUE self)
|
|
220
231
|
#endif
|
221
232
|
|
222
233
|
void
|
223
|
-
Init_gtk_treeiter()
|
234
|
+
Init_gtk_treeiter(VALUE mGtk)
|
224
235
|
{
|
225
|
-
VALUE
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
236
|
+
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_TREE_ITER, "TreeIter", mGtk);
|
237
|
+
|
238
|
+
RG_DEF_METHOD_BANG(first, 0);
|
239
|
+
RG_DEF_METHOD_BANG(next, 0);
|
240
|
+
RG_DEF_METHOD(get_value, 1);
|
241
|
+
RG_DEF_ALIAS("[]", "get_value");
|
242
|
+
RG_DEF_METHOD(first_child, 0);
|
243
|
+
RG_DEF_METHOD(path, 0);
|
244
|
+
RG_DEF_METHOD_P(has_child, 0);
|
245
|
+
RG_DEF_METHOD(n_children, 0);
|
246
|
+
RG_DEF_METHOD(nth_child, 1);
|
247
|
+
RG_DEF_METHOD(parent, 0);
|
248
|
+
RG_DEF_METHOD(set_value, 2);
|
249
|
+
RG_DEF_METHOD_OPERATOR("[]=", treeiter_set_value_eql, 2);
|
250
|
+
RG_DEF_METHOD_OPERATOR("==", treeiter_eql, 1);
|
240
251
|
#if GTK_CHECK_VERSION(2,2,0)
|
241
|
-
|
242
|
-
|
252
|
+
RG_DEF_METHOD(to_str, 0);
|
253
|
+
RG_DEF_ALIAS("to_s", "to_str");
|
243
254
|
#endif
|
244
255
|
}
|
data/ext/gtk2/rbgtktreemodel.c
CHANGED
@@ -1,39 +1,50 @@
|
|
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) 2002,2003 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
|
|
24
|
+
#define RG_TARGET_NAMESPACE mTreeModel
|
14
25
|
#define _SELF(s) (GTK_TREE_MODEL(RVAL2GOBJ(s)))
|
15
26
|
|
16
27
|
static VALUE
|
17
|
-
|
28
|
+
rg_flags(VALUE self)
|
18
29
|
{
|
19
30
|
return GFLAGS2RVAL(gtk_tree_model_get_flags(_SELF(self)), GTK_TYPE_TREE_MODEL_FLAGS);
|
20
31
|
}
|
21
32
|
|
22
33
|
static VALUE
|
23
|
-
|
34
|
+
rg_n_columns(VALUE self)
|
24
35
|
{
|
25
36
|
return INT2NUM(gtk_tree_model_get_n_columns(_SELF(self)));
|
26
37
|
}
|
27
38
|
|
28
39
|
static VALUE
|
29
|
-
|
40
|
+
rg_get_column_type(VALUE self, VALUE index)
|
30
41
|
{
|
31
42
|
return GTYPE2CLASS(gtk_tree_model_get_column_type(_SELF(self),
|
32
43
|
NUM2INT(index)));
|
33
44
|
}
|
34
45
|
|
35
46
|
static VALUE
|
36
|
-
|
47
|
+
rg_iter_first(VALUE self)
|
37
48
|
{
|
38
49
|
VALUE val = Qnil;
|
39
50
|
GtkTreeIter iter;
|
@@ -45,12 +56,12 @@ treemodel_get_iter_first(VALUE self)
|
|
45
56
|
val = GTKTREEITER2RVAL(&iter);
|
46
57
|
G_CHILD_ADD(self, val);
|
47
58
|
}
|
48
|
-
|
59
|
+
|
49
60
|
return val;
|
50
61
|
}
|
51
62
|
|
52
63
|
static VALUE
|
53
|
-
|
64
|
+
rg_get_iter(VALUE self, VALUE path)
|
54
65
|
{
|
55
66
|
VALUE val = Qnil;
|
56
67
|
GtkTreeIter iter;
|
@@ -70,14 +81,14 @@ treemodel_get_iter(VALUE self, VALUE path)
|
|
70
81
|
val = GTKTREEITER2RVAL(&iter);
|
71
82
|
G_CHILD_ADD(self, val);
|
72
83
|
}
|
73
|
-
|
84
|
+
|
74
85
|
return val;
|
75
86
|
}
|
76
87
|
|
77
88
|
static VALUE
|
78
|
-
|
89
|
+
rg_get_value(VALUE self, VALUE iter, VALUE column)
|
79
90
|
{
|
80
|
-
GValue value =
|
91
|
+
GValue value = G_VALUE_INIT;
|
81
92
|
VALUE ret = Qnil;
|
82
93
|
gtk_tree_model_get_value(_SELF(self), RVAL2GTKTREEITER(iter), NUM2INT(column), &value);
|
83
94
|
if (G_VALUE_TYPE(&value) != G_TYPE_INVALID){
|
@@ -101,7 +112,10 @@ void gtk_tree_model_get_valist (GtkTreeModel *tree_model,
|
|
101
112
|
*/
|
102
113
|
|
103
114
|
static gboolean
|
104
|
-
treemodel_foreach_func(GtkTreeModel *model,
|
115
|
+
treemodel_foreach_func(GtkTreeModel *model,
|
116
|
+
GtkTreePath *path,
|
117
|
+
GtkTreeIter *iter,
|
118
|
+
G_GNUC_UNUSED gpointer func)
|
105
119
|
{
|
106
120
|
iter->user_data3 = model;
|
107
121
|
rb_yield(rb_ary_new3(3, GOBJ2RVAL(model), GTKTREEPATH2RVAL(path), GTKTREEITER2RVAL(iter)));
|
@@ -109,7 +123,7 @@ treemodel_foreach_func(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *iter
|
|
109
123
|
}
|
110
124
|
|
111
125
|
static VALUE
|
112
|
-
|
126
|
+
rg_each(VALUE self)
|
113
127
|
{
|
114
128
|
gtk_tree_model_foreach(_SELF(self),
|
115
129
|
(GtkTreeModelForeachFunc)treemodel_foreach_func,
|
@@ -118,71 +132,77 @@ treemodel_foreach(VALUE self)
|
|
118
132
|
}
|
119
133
|
|
120
134
|
static VALUE
|
121
|
-
|
135
|
+
rg_row_changed(VALUE self, VALUE path, VALUE iter)
|
122
136
|
{
|
123
137
|
gtk_tree_model_row_changed(_SELF(self), RVAL2GTKTREEPATH(path), RVAL2GTKTREEITER(iter));
|
124
138
|
return self;
|
125
139
|
}
|
126
140
|
|
127
141
|
static VALUE
|
128
|
-
|
142
|
+
rg_row_inserted(VALUE self, VALUE path, VALUE iter)
|
129
143
|
{
|
130
144
|
gtk_tree_model_row_inserted(_SELF(self), RVAL2GTKTREEPATH(path), RVAL2GTKTREEITER(iter));
|
131
145
|
return self;
|
132
146
|
}
|
133
147
|
|
134
148
|
static VALUE
|
135
|
-
|
149
|
+
rg_row_has_child_toggled(VALUE self, VALUE path, VALUE iter)
|
136
150
|
{
|
137
151
|
gtk_tree_model_row_has_child_toggled(_SELF(self), RVAL2GTKTREEPATH(path), RVAL2GTKTREEITER(iter));
|
138
152
|
return self;
|
139
153
|
}
|
140
154
|
|
141
155
|
static VALUE
|
142
|
-
|
156
|
+
rg_row_deleted(VALUE self, VALUE path)
|
143
157
|
{
|
144
158
|
gtk_tree_model_row_deleted(_SELF(self), RVAL2GTKTREEPATH(path));
|
145
159
|
return self;
|
146
160
|
}
|
147
161
|
|
148
162
|
static VALUE
|
149
|
-
|
163
|
+
rg_rows_reordered(VALUE self, VALUE rbpath, VALUE rbiter, VALUE rbnew_order)
|
150
164
|
{
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
165
|
+
GtkTreeModel *proxy = _SELF(self);
|
166
|
+
GtkTreePath *path = RVAL2GTKTREEPATH(rbpath);
|
167
|
+
GtkTreeIter *iter = RVAL2GTKTREEITER(rbiter);
|
168
|
+
gint columns = gtk_tree_model_get_n_columns(proxy);
|
169
|
+
long n;
|
170
|
+
gint *new_order = RVAL2GINTS(rbnew_order, n);
|
155
171
|
|
156
|
-
|
157
|
-
|
172
|
+
if (n != columns) {
|
173
|
+
g_free(new_order);
|
158
174
|
|
159
|
-
|
160
|
-
|
175
|
+
rb_raise(rb_eArgError,
|
176
|
+
"new order array must contain same number of elements as the number of columns in the store: %ld != %d",
|
177
|
+
n, columns);
|
161
178
|
}
|
162
|
-
|
163
|
-
gtk_tree_model_rows_reordered(
|
179
|
+
|
180
|
+
gtk_tree_model_rows_reordered(proxy, path, iter, new_order);
|
181
|
+
|
182
|
+
g_free(new_order);
|
183
|
+
|
164
184
|
return self;
|
165
185
|
}
|
166
186
|
|
167
187
|
static VALUE
|
168
|
-
|
188
|
+
rg_iter_is_valid_p(G_GNUC_UNUSED VALUE self, G_GNUC_UNUSED VALUE iter)
|
169
189
|
{
|
170
190
|
return Qtrue;
|
171
191
|
}
|
172
192
|
|
173
193
|
static VALUE
|
174
|
-
signal_func(guint num, const GValue *values)
|
194
|
+
signal_func(G_GNUC_UNUSED guint num, const GValue *values)
|
175
195
|
{
|
176
196
|
GtkTreeModel* model = g_value_get_object(&values[0]);
|
177
197
|
GtkTreePath* path = g_value_get_boxed(&values[1]);
|
178
198
|
GtkTreeIter* iter = g_value_get_boxed(&values[2]);
|
179
199
|
iter->user_data3 = model;
|
180
|
-
|
200
|
+
|
181
201
|
return rb_ary_new3(3, GOBJ2RVAL(model), GTKTREEPATH2RVAL(path), GTKTREEITER2RVAL(iter));
|
182
202
|
}
|
183
203
|
|
184
204
|
static VALUE
|
185
|
-
signal_rows_reordered_func(guint num, const GValue *values)
|
205
|
+
signal_rows_reordered_func(G_GNUC_UNUSED guint num, const GValue *values)
|
186
206
|
{
|
187
207
|
GtkTreeModel* model = g_value_get_object(&values[0]);
|
188
208
|
GtkTreePath* path = g_value_get_boxed(&values[1]);
|
@@ -202,34 +222,32 @@ signal_rows_reordered_func(guint num, const GValue *values)
|
|
202
222
|
}
|
203
223
|
|
204
224
|
void
|
205
|
-
Init_gtk_treemodel()
|
206
|
-
{
|
207
|
-
VALUE
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
225
|
+
Init_gtk_treemodel(VALUE mGtk)
|
226
|
+
{
|
227
|
+
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(GTK_TYPE_TREE_MODEL, "TreeModel", mGtk);
|
228
|
+
|
229
|
+
RG_DEF_METHOD(flags, 0);
|
230
|
+
RG_DEF_METHOD(n_columns, 0);
|
231
|
+
RG_DEF_METHOD(get_column_type, 1);
|
232
|
+
RG_DEF_METHOD(iter_first, 0);
|
233
|
+
RG_DEF_METHOD(get_iter, 1);
|
234
|
+
RG_DEF_METHOD(get_value, 2);
|
235
|
+
RG_DEF_METHOD(each, 0);
|
236
|
+
RG_DEF_METHOD(row_changed, 2);
|
237
|
+
RG_DEF_METHOD(row_inserted, 2);
|
238
|
+
RG_DEF_METHOD(row_has_child_toggled, 2);
|
239
|
+
RG_DEF_METHOD(row_deleted, 1);
|
240
|
+
RG_DEF_METHOD(rows_reordered, 3);
|
241
|
+
RG_DEF_METHOD_P(iter_is_valid, 1);
|
222
242
|
|
223
243
|
/* GtkTreeModelFlags */
|
224
|
-
G_DEF_CLASS(GTK_TYPE_TREE_MODEL_FLAGS, "Flags",
|
225
|
-
G_DEF_CONSTANTS(
|
244
|
+
G_DEF_CLASS(GTK_TYPE_TREE_MODEL_FLAGS, "Flags", RG_TARGET_NAMESPACE);
|
245
|
+
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_TREE_MODEL_FLAGS, "GTK_TREE_MODEL_");
|
226
246
|
|
227
|
-
G_DEF_SIGNAL_FUNC(
|
228
|
-
G_DEF_SIGNAL_FUNC(
|
229
|
-
G_DEF_SIGNAL_FUNC(
|
230
|
-
G_DEF_SIGNAL_FUNC(
|
247
|
+
G_DEF_SIGNAL_FUNC(RG_TARGET_NAMESPACE, "row_changed", (GValToRValSignalFunc)signal_func);
|
248
|
+
G_DEF_SIGNAL_FUNC(RG_TARGET_NAMESPACE, "row_inserted", (GValToRValSignalFunc)signal_func);
|
249
|
+
G_DEF_SIGNAL_FUNC(RG_TARGET_NAMESPACE, "row_has_child_toggled", (GValToRValSignalFunc)signal_func);
|
250
|
+
G_DEF_SIGNAL_FUNC(RG_TARGET_NAMESPACE, "rows_reordered", (GValToRValSignalFunc)signal_rows_reordered_func);
|
231
251
|
|
232
|
-
G_DEF_SETTERS(
|
252
|
+
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
|
233
253
|
}
|
234
|
-
|
235
|
-
|