gtk2 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +6664 -0
- data/README +33 -0
- data/Rakefile +71 -0
- data/extconf.rb +116 -0
- data/src/global.h +33 -0
- data/src/init.c +39 -0
- data/src/lib/gtk2.rb +13 -0
- data/src/lib/gtk2/base.rb +95 -0
- data/src/makeinits.rb +57 -0
- data/src/makekeysyms.rb +5 -0
- data/src/rbgdk.c +395 -0
- data/src/rbgdk.h +50 -0
- data/src/rbgdkatom.c +122 -0
- data/src/rbgdkcairo.c +100 -0
- data/src/rbgdkcolor.c +151 -0
- data/src/rbgdkcolormap.c +142 -0
- data/src/rbgdkconst.c +29 -0
- data/src/rbgdkconversions.h +18 -0
- data/src/rbgdkcursor.c +115 -0
- data/src/rbgdkdevice.c +235 -0
- data/src/rbgdkdisplay.c +634 -0
- data/src/rbgdkdisplaymanager.c +50 -0
- data/src/rbgdkdragcontext.c +280 -0
- data/src/rbgdkdraw.c +487 -0
- data/src/rbgdkevent.c +1020 -0
- data/src/rbgdkgc.c +456 -0
- data/src/rbgdkgeometry.c +272 -0
- data/src/rbgdkimage.c +155 -0
- data/src/rbgdkinput.c +70 -0
- data/src/rbgdkkeymap.c +153 -0
- data/src/rbgdkkeysyms.h +2174 -0
- data/src/rbgdkkeyval.c +105 -0
- data/src/rbgdkpango.c +171 -0
- data/src/rbgdkpangorenderer.c +132 -0
- data/src/rbgdkpixbuf.c +178 -0
- data/src/rbgdkpixmap.c +255 -0
- data/src/rbgdkproperty.c +342 -0
- data/src/rbgdkrectangle.c +146 -0
- data/src/rbgdkregion.c +242 -0
- data/src/rbgdkrgb.c +197 -0
- data/src/rbgdkscreen.c +535 -0
- data/src/rbgdkselection.c +161 -0
- data/src/rbgdkthreads.c +68 -0
- data/src/rbgdktimecoord.c +118 -0
- data/src/rbgdkvisual.c +273 -0
- data/src/rbgdkwindow.c +1302 -0
- data/src/rbgdkwindowattr.c +213 -0
- data/src/rbgdkx11.c +256 -0
- data/src/rbgtk.c +93 -0
- data/src/rbgtk.h +121 -0
- data/src/rbgtkaboutdialog.c +195 -0
- data/src/rbgtkaccelerator.c +78 -0
- data/src/rbgtkaccelgroup.c +216 -0
- data/src/rbgtkaccelgroupentry.c +85 -0
- data/src/rbgtkaccelkey.c +116 -0
- data/src/rbgtkaccellabel.c +46 -0
- data/src/rbgtkaccelmap.c +162 -0
- data/src/rbgtkaccessible.c +29 -0
- data/src/rbgtkaction.c +277 -0
- data/src/rbgtkactiongroup.c +377 -0
- data/src/rbgtkadjustment.c +153 -0
- data/src/rbgtkalignment.c +71 -0
- data/src/rbgtkallocation.c +171 -0
- data/src/rbgtkarrow.c +47 -0
- data/src/rbgtkaspectframe.c +46 -0
- data/src/rbgtkassistant.c +230 -0
- data/src/rbgtkbbox.c +47 -0
- data/src/rbgtkbin.c +31 -0
- data/src/rbgtkbindingset.c +192 -0
- data/src/rbgtkborder.c +80 -0
- data/src/rbgtkbox.c +142 -0
- data/src/rbgtkbuildable.c +115 -0
- data/src/rbgtkbuilder.c +154 -0
- data/src/rbgtkbutton.c +151 -0
- data/src/rbgtkcalendar.c +159 -0
- data/src/rbgtkcelleditable.c +49 -0
- data/src/rbgtkcelllayout.c +144 -0
- data/src/rbgtkcellrenderer.c +139 -0
- data/src/rbgtkcellrendereraccel.c +42 -0
- data/src/rbgtkcellrenderercombo.c +37 -0
- data/src/rbgtkcellrendererpixbuf.c +33 -0
- data/src/rbgtkcellrendererprogress.c +37 -0
- data/src/rbgtkcellrendererspin.c +38 -0
- data/src/rbgtkcellrenderertext.c +45 -0
- data/src/rbgtkcellrenderertoggle.c +32 -0
- data/src/rbgtkcellview.c +134 -0
- data/src/rbgtkcheckbutton.c +55 -0
- data/src/rbgtkcheckmenuitem.c +56 -0
- data/src/rbgtkclipboard.c +473 -0
- data/src/rbgtkcolorbutton.c +63 -0
- data/src/rbgtkcolorsel.c +175 -0
- data/src/rbgtkcolorselectiondialog.c +72 -0
- data/src/rbgtkcombo.c +117 -0
- data/src/rbgtkcombobox.c +240 -0
- data/src/rbgtkcomboboxentry.c +60 -0
- data/src/rbgtkconst.c +163 -0
- data/src/rbgtkcontainer.c +776 -0
- data/src/rbgtkconversions.h +26 -0
- data/src/rbgtkcurve.c +105 -0
- data/src/rbgtkdialog.c +244 -0
- data/src/rbgtkdrag.c +436 -0
- data/src/rbgtkdrawingarea.c +31 -0
- data/src/rbgtkeditable.c +152 -0
- data/src/rbgtkentry.c +161 -0
- data/src/rbgtkentrycompletion.c +167 -0
- data/src/rbgtkeventbox.c +31 -0
- data/src/rbgtkexpander.c +67 -0
- data/src/rbgtkfilechooser.c +403 -0
- data/src/rbgtkfilechooserbutton.c +72 -0
- data/src/rbgtkfilechooserdialog.c +58 -0
- data/src/rbgtkfilechooserwidget.c +50 -0
- data/src/rbgtkfilefilter.c +139 -0
- data/src/rbgtkfilesel.c +155 -0
- data/src/rbgtkfixed.c +72 -0
- data/src/rbgtkfontbutton.c +69 -0
- data/src/rbgtkfontselection.c +30 -0
- data/src/rbgtkfontselectiondialog.c +106 -0
- data/src/rbgtkframe.c +64 -0
- data/src/rbgtkgamma.c +47 -0
- data/src/rbgtkhandlebox.c +42 -0
- data/src/rbgtkhbbox.c +31 -0
- data/src/rbgtkhbox.c +38 -0
- data/src/rbgtkhpaned.c +31 -0
- data/src/rbgtkhruler.c +31 -0
- data/src/rbgtkhscale.c +45 -0
- data/src/rbgtkhscrollbar.c +38 -0
- data/src/rbgtkhseparator.c +30 -0
- data/src/rbgtkiconfactory.c +80 -0
- data/src/rbgtkiconinfo.c +118 -0
- data/src/rbgtkiconset.c +87 -0
- data/src/rbgtkiconsize.c +90 -0
- data/src/rbgtkiconsource.c +176 -0
- data/src/rbgtkicontheme.c +309 -0
- data/src/rbgtkiconview.c +351 -0
- data/src/rbgtkimage.c +152 -0
- data/src/rbgtkimagemenuitem.c +52 -0
- data/src/rbgtkimcontext.c +134 -0
- data/src/rbgtkimcontextsimple.c +48 -0
- data/src/rbgtkimmulticontext.c +38 -0
- data/src/rbgtkinits.c +473 -0
- data/src/rbgtkinputdialog.c +30 -0
- data/src/rbgtkinvisible.c +68 -0
- data/src/rbgtkitem.c +51 -0
- data/src/rbgtkitemfactory.c +312 -0
- data/src/rbgtklabel.c +168 -0
- data/src/rbgtklayout.c +91 -0
- data/src/rbgtklinkbutton.c +68 -0
- data/src/rbgtkliststore.c +412 -0
- data/src/rbgtkmacros.h +26 -0
- data/src/rbgtkmain.c +532 -0
- data/src/rbgtkmenu.c +272 -0
- data/src/rbgtkmenubar.c +48 -0
- data/src/rbgtkmenuitem.c +171 -0
- data/src/rbgtkmenushell.c +128 -0
- data/src/rbgtkmenutoolbutton.c +74 -0
- data/src/rbgtkmessagedialog.c +102 -0
- data/src/rbgtkmisc.c +63 -0
- data/src/rbgtknotebook.c +484 -0
- data/src/rbgtkobject.c +186 -0
- data/src/rbgtkoptionmenu.c +65 -0
- data/src/rbgtkpagesetup.c +196 -0
- data/src/rbgtkpagesetupunixdialog.c +80 -0
- data/src/rbgtkpaned.c +114 -0
- data/src/rbgtkpapersize.c +186 -0
- data/src/rbgtkplug.c +84 -0
- data/src/rbgtkprintcontext.c +124 -0
- data/src/rbgtkprinter.c +155 -0
- data/src/rbgtkprintjob.c +151 -0
- data/src/rbgtkprintoperation.c +152 -0
- data/src/rbgtkprintoperationpreview.c +54 -0
- data/src/rbgtkprintsettings.c +794 -0
- data/src/rbgtkprintunixdialog.c +98 -0
- data/src/rbgtkprogress.c +21 -0
- data/src/rbgtkprogressbar.c +72 -0
- data/src/rbgtkradioaction.c +102 -0
- data/src/rbgtkradiobutton.c +83 -0
- data/src/rbgtkradiomenuitem.c +115 -0
- data/src/rbgtkradiotoolbutton.c +99 -0
- data/src/rbgtkrange.c +98 -0
- data/src/rbgtkrc.c +228 -0
- data/src/rbgtkrcstyle.c +184 -0
- data/src/rbgtkrecentaction.c +52 -0
- data/src/rbgtkrecentchooser.c +276 -0
- data/src/rbgtkrecentchooserdialog.c +59 -0
- data/src/rbgtkrecentchoosermenu.c +55 -0
- data/src/rbgtkrecentchooserwidget.c +45 -0
- data/src/rbgtkrecentdata.c +152 -0
- data/src/rbgtkrecentfilter.c +180 -0
- data/src/rbgtkrecentfilterinfo.c +197 -0
- data/src/rbgtkrecentinfo.c +232 -0
- data/src/rbgtkrecentmanager.c +164 -0
- data/src/rbgtkruler.c +82 -0
- data/src/rbgtkscale.c +47 -0
- data/src/rbgtkscalebutton.c +115 -0
- data/src/rbgtkscrollbar.c +21 -0
- data/src/rbgtkscrolledwindow.c +160 -0
- data/src/rbgtkselection.c +171 -0
- data/src/rbgtkselectiondata.c +333 -0
- data/src/rbgtkseparator.c +21 -0
- data/src/rbgtkseparatormenuitem.c +28 -0
- data/src/rbgtkseparatortoolitem.c +40 -0
- data/src/rbgtksettings.c +225 -0
- data/src/rbgtksizegroup.c +74 -0
- data/src/rbgtksocket.c +72 -0
- data/src/rbgtkspinbutton.c +138 -0
- data/src/rbgtkstatusbar.c +90 -0
- data/src/rbgtkstatusicon.c +120 -0
- data/src/rbgtkstock.c +264 -0
- data/src/rbgtkstyle.c +722 -0
- data/src/rbgtktable.c +190 -0
- data/src/rbgtktargetlist.c +148 -0
- data/src/rbgtktearoffmenuitem.c +30 -0
- data/src/rbgtktextappearance.c +173 -0
- data/src/rbgtktextattributes.c +209 -0
- data/src/rbgtktextbuffer.c +993 -0
- data/src/rbgtktextchild.c +49 -0
- data/src/rbgtktextiter.c +553 -0
- data/src/rbgtktextmark.c +87 -0
- data/src/rbgtktexttag.c +66 -0
- data/src/rbgtktexttagtable.c +94 -0
- data/src/rbgtktextview.c +351 -0
- data/src/rbgtktoggleaction.c +76 -0
- data/src/rbgtktogglebutton.c +84 -0
- data/src/rbgtktoggletoolbutton.c +70 -0
- data/src/rbgtktoolbar.c +373 -0
- data/src/rbgtktoolbutton.c +75 -0
- data/src/rbgtktoolitem.c +184 -0
- data/src/rbgtktooltip.c +76 -0
- data/src/rbgtktooltips.c +107 -0
- data/src/rbgtktreedragdest.c +19 -0
- data/src/rbgtktreedragsource.c +19 -0
- data/src/rbgtktreeiter.c +259 -0
- data/src/rbgtktreemodel.c +256 -0
- data/src/rbgtktreemodelfilter.c +214 -0
- data/src/rbgtktreemodelsort.c +113 -0
- data/src/rbgtktreepath.c +195 -0
- data/src/rbgtktreerowreference.c +168 -0
- data/src/rbgtktreeselection.c +235 -0
- data/src/rbgtktreesortable.c +127 -0
- data/src/rbgtktreestore.c +379 -0
- data/src/rbgtktreeview.c +881 -0
- data/src/rbgtktreeviewcolumn.c +331 -0
- data/src/rbgtkuimanager.c +210 -0
- data/src/rbgtkvbbox.c +31 -0
- data/src/rbgtkvbox.c +38 -0
- data/src/rbgtkviewport.c +33 -0
- data/src/rbgtkvolumebutton.c +36 -0
- data/src/rbgtkvpaned.c +31 -0
- data/src/rbgtkvruler.c +30 -0
- data/src/rbgtkvscale.c +45 -0
- data/src/rbgtkvscrollbar.c +38 -0
- data/src/rbgtkvseparator.c +30 -0
- data/src/rbgtkwidget.c +1414 -0
- data/src/rbgtkwindow.c +822 -0
- data/src/rbgtkwindowgroup.c +48 -0
- data/test/gtk-test-utils.rb +15 -0
- data/test/run-test.rb +30 -0
- data/test/test_gc.rb +25 -0
- data/test/test_gdk.rb +18 -0
- data/test/test_gdk_color.rb +10 -0
- data/test/test_gdk_display.rb +37 -0
- data/test/test_gdk_event.rb +11 -0
- data/test/test_gdk_gc.rb +7 -0
- data/test/test_gdk_keymap.rb +8 -0
- data/test/test_gdk_pango.rb +9 -0
- data/test/test_gdk_selection_data.rb +17 -0
- data/test/test_gdk_window.rb +29 -0
- data/test/test_gdk_window_attribute.rb +9 -0
- data/test/test_gtk_about_dialog.rb +14 -0
- data/test/test_gtk_buildable.rb +66 -0
- data/test/test_gtk_builder.rb +188 -0
- data/test/test_gtk_entry.rb +18 -0
- data/test/test_gtk_icon_theme.rb +30 -0
- data/test/test_gtk_image.rb +8 -0
- data/test/test_gtk_list_store.rb +65 -0
- data/test/test_gtk_menu_item.rb +13 -0
- data/test/test_gtk_rc_style.rb +14 -0
- data/test/test_gtk_tree_path.rb +20 -0
- data/test/test_gtk_unix_print.rb +14 -0
- data/test/test_gtk_widget.rb +32 -0
- metadata +393 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/* -*- c-file-style: "ruby" -*- */
|
|
2
|
+
/************************************************
|
|
3
|
+
|
|
4
|
+
rbgtkbuildable.c -
|
|
5
|
+
|
|
6
|
+
Copyright (C) 2008 Ruby-GNOME2 Project Team
|
|
7
|
+
************************************************/
|
|
8
|
+
|
|
9
|
+
#include "global.h"
|
|
10
|
+
|
|
11
|
+
#if GTK_CHECK_VERSION(2, 12, 0)
|
|
12
|
+
#define _SELF(self) (GTK_BUILDABLE(RVAL2GOBJ(self)))
|
|
13
|
+
#define RVAL2BUILDER(obj) (GTK_BUILDER(RVAL2GOBJ(obj)))
|
|
14
|
+
|
|
15
|
+
static VALUE
|
|
16
|
+
buildable_get_name(VALUE self, VALUE name)
|
|
17
|
+
{
|
|
18
|
+
return CSTR2RVAL(gtk_buildable_get_name(_SELF(self)));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
static VALUE
|
|
22
|
+
buildable_set_name(VALUE self, VALUE name)
|
|
23
|
+
{
|
|
24
|
+
gtk_buildable_set_name(_SELF(self), RVAL2CSTR(name));
|
|
25
|
+
return self;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static VALUE
|
|
29
|
+
buildable_add_child(int argc, VALUE *argv, VALUE self)
|
|
30
|
+
{
|
|
31
|
+
VALUE builder, child, type;
|
|
32
|
+
|
|
33
|
+
rb_scan_args(argc, argv, "21", &builder, &child, &type);
|
|
34
|
+
gtk_buildable_add_child(_SELF(self), RVAL2BUILDER(builder), RVAL2GOBJ(child),
|
|
35
|
+
RVAL2CSTR_ACCEPT_NIL(type));
|
|
36
|
+
return self;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
static VALUE
|
|
40
|
+
buildable_set_buildable_property(VALUE self, VALUE rb_builder,
|
|
41
|
+
VALUE rb_name, VALUE rb_value)
|
|
42
|
+
{
|
|
43
|
+
GtkBuilder *builder;
|
|
44
|
+
const gchar *name;
|
|
45
|
+
GValue value = {0};
|
|
46
|
+
|
|
47
|
+
builder = RVAL2BUILDER(rb_builder);
|
|
48
|
+
name = RVAL2CSTR(rb_name);
|
|
49
|
+
rbgobj_initialize_gvalue(&value, rb_value);
|
|
50
|
+
gtk_buildable_set_buildable_property(_SELF(self), builder, name, &value);
|
|
51
|
+
|
|
52
|
+
return self;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
static VALUE
|
|
56
|
+
buildable_construct_child(VALUE self, VALUE builder, VALUE name)
|
|
57
|
+
{
|
|
58
|
+
return GOBJ2RVAL(gtk_buildable_construct_child(_SELF(self),
|
|
59
|
+
RVAL2BUILDER(builder),
|
|
60
|
+
RVAL2CSTR(name)));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/*
|
|
64
|
+
customized buildable is not supported yet.
|
|
65
|
+
|
|
66
|
+
gboolean gtk_buildable_custom_tag_start (GtkBuildable *buildable,
|
|
67
|
+
GtkBuilder *builder,
|
|
68
|
+
GObject *child,
|
|
69
|
+
const gchar *tagname,
|
|
70
|
+
GMarkupParser *parser,
|
|
71
|
+
gpointer *data);
|
|
72
|
+
void gtk_buildable_custom_tag_end (GtkBuildable *buildable,
|
|
73
|
+
GtkBuilder *builder,
|
|
74
|
+
GObject *child,
|
|
75
|
+
const gchar *tagname,
|
|
76
|
+
gpointer *data);
|
|
77
|
+
void gtk_buildable_custom_finished (GtkBuildable *buildable,
|
|
78
|
+
GtkBuilder *builder,
|
|
79
|
+
GObject *child,
|
|
80
|
+
const gchar *tagname,
|
|
81
|
+
gpointer data);
|
|
82
|
+
void gtk_buildable_parser_finished (GtkBuildable *buildable,
|
|
83
|
+
GtkBuilder *builder);
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
static VALUE
|
|
87
|
+
buildable_get_internal_child(VALUE self, VALUE builder, VALUE child_name)
|
|
88
|
+
{
|
|
89
|
+
return GOBJ2RVAL(gtk_buildable_get_internal_child(_SELF(self),
|
|
90
|
+
RVAL2BUILDER(builder),
|
|
91
|
+
RVAL2CSTR(child_name)));
|
|
92
|
+
}
|
|
93
|
+
#endif
|
|
94
|
+
|
|
95
|
+
void
|
|
96
|
+
Init_gtk_buildable()
|
|
97
|
+
{
|
|
98
|
+
#if GTK_CHECK_VERSION(2, 12, 0)
|
|
99
|
+
VALUE cGtkBuildable;
|
|
100
|
+
|
|
101
|
+
cGtkBuildable = G_DEF_CLASS(GTK_TYPE_BUILDABLE, "Buildable", mGtk);
|
|
102
|
+
|
|
103
|
+
rb_define_method(cGtkBuildable, "builder_name", buildable_get_name, 0);
|
|
104
|
+
rb_define_method(cGtkBuildable, "set_builder_name", buildable_set_name, 1);
|
|
105
|
+
rb_define_method(cGtkBuildable, "add_child", buildable_add_child, -1);
|
|
106
|
+
rb_define_method(cGtkBuildable, "set_buildable_property",
|
|
107
|
+
buildable_set_buildable_property, 3);
|
|
108
|
+
rb_define_method(cGtkBuildable, "construct_child",
|
|
109
|
+
buildable_construct_child, 2);
|
|
110
|
+
rb_define_method(cGtkBuildable, "get_internal_child",
|
|
111
|
+
buildable_get_internal_child, 2);
|
|
112
|
+
|
|
113
|
+
G_DEF_SETTERS(cGtkBuildable);
|
|
114
|
+
#endif
|
|
115
|
+
}
|
data/src/rbgtkbuilder.c
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/* -*- c-file-style: "ruby" -*- */
|
|
2
|
+
/************************************************
|
|
3
|
+
|
|
4
|
+
rbgtkbuilder.c -
|
|
5
|
+
|
|
6
|
+
Copyright (C) 2008 Ruby-GNOME2 Project Team
|
|
7
|
+
************************************************/
|
|
8
|
+
|
|
9
|
+
#include "global.h"
|
|
10
|
+
#include <glib-enum-types.h> /* From Ruby/GLib2 */
|
|
11
|
+
|
|
12
|
+
#if GTK_CHECK_VERSION(2, 12, 0)
|
|
13
|
+
#define _SELF(self) (GTK_BUILDER(RVAL2GOBJ(self)))
|
|
14
|
+
|
|
15
|
+
static ID id___connect_signals__;
|
|
16
|
+
|
|
17
|
+
static void
|
|
18
|
+
builder_mark(gpointer object)
|
|
19
|
+
{
|
|
20
|
+
GtkBuilder *builder = object;
|
|
21
|
+
GSList *objects;
|
|
22
|
+
|
|
23
|
+
objects = gtk_builder_get_objects(builder);
|
|
24
|
+
g_slist_foreach(objects, (GFunc)rbgobj_gc_mark_instance, NULL);
|
|
25
|
+
g_slist_free(objects);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static VALUE
|
|
29
|
+
builder_initialize(VALUE self)
|
|
30
|
+
{
|
|
31
|
+
GtkBuilder *builder;
|
|
32
|
+
|
|
33
|
+
builder = gtk_builder_new();
|
|
34
|
+
G_INITIALIZE(self, builder);
|
|
35
|
+
|
|
36
|
+
return Qnil;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
static VALUE
|
|
40
|
+
builder_add_from_file(VALUE self, VALUE filename)
|
|
41
|
+
{
|
|
42
|
+
GError *error = NULL;
|
|
43
|
+
|
|
44
|
+
if (gtk_builder_add_from_file(_SELF(self),
|
|
45
|
+
RVAL2CSTR(filename),
|
|
46
|
+
&error) == 0)
|
|
47
|
+
RAISE_GERROR(error);
|
|
48
|
+
|
|
49
|
+
return self;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
static VALUE
|
|
53
|
+
builder_add_from_string(VALUE self, VALUE string)
|
|
54
|
+
{
|
|
55
|
+
GError *error = NULL;
|
|
56
|
+
|
|
57
|
+
if (gtk_builder_add_from_string(_SELF(self),
|
|
58
|
+
RVAL2CSTR(string),
|
|
59
|
+
RSTRING_LEN(string),
|
|
60
|
+
&error) == 0)
|
|
61
|
+
RAISE_GERROR(error);
|
|
62
|
+
|
|
63
|
+
return self;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
static VALUE
|
|
67
|
+
builder_add(VALUE self, VALUE filename_or_xml)
|
|
68
|
+
{
|
|
69
|
+
const char xml_detect_re_str[] = "(?:\\A<|[\\r\\n])";
|
|
70
|
+
VALUE xml_detect_re;
|
|
71
|
+
|
|
72
|
+
xml_detect_re = rb_reg_new(xml_detect_re_str, strlen(xml_detect_re_str), 0);
|
|
73
|
+
if (NIL_P(rb_reg_match(xml_detect_re, filename_or_xml)))
|
|
74
|
+
return builder_add_from_file(self, filename_or_xml);
|
|
75
|
+
else
|
|
76
|
+
return builder_add_from_string(self, filename_or_xml);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
static VALUE
|
|
80
|
+
builder_get_object(VALUE self, VALUE name)
|
|
81
|
+
{
|
|
82
|
+
return GOBJ2RVAL(gtk_builder_get_object(_SELF(self), RVAL2CSTR(name)));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
static VALUE
|
|
86
|
+
builder_get_objects(VALUE self)
|
|
87
|
+
{
|
|
88
|
+
return GSLIST2ARY_FREE(gtk_builder_get_objects(_SELF(self)));
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
static void
|
|
92
|
+
connect_signals(GtkBuilder *builder, GObject *object, const gchar *signal_name,
|
|
93
|
+
const gchar *handler_name, GObject *connect_object,
|
|
94
|
+
GConnectFlags flags, gpointer user_data)
|
|
95
|
+
{
|
|
96
|
+
VALUE signal_connector = (VALUE)user_data;
|
|
97
|
+
|
|
98
|
+
rb_funcall(GOBJ2RVAL(builder), id___connect_signals__, 6,
|
|
99
|
+
signal_connector, GOBJ2RVAL(object), CSTR2RVAL(signal_name),
|
|
100
|
+
CSTR2RVAL(handler_name), GOBJ2RVAL(connect_object),
|
|
101
|
+
GFLAGS2RVAL(flags, G_TYPE_CONNECT_FLAGS));
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
static VALUE
|
|
105
|
+
builder_connect_signals(VALUE self)
|
|
106
|
+
{
|
|
107
|
+
VALUE signal_connector;
|
|
108
|
+
|
|
109
|
+
signal_connector = rb_block_proc();
|
|
110
|
+
G_CHILD_ADD(self, signal_connector);
|
|
111
|
+
gtk_builder_connect_signals_full(_SELF(self), connect_signals,
|
|
112
|
+
(gpointer)signal_connector);
|
|
113
|
+
G_CHILD_REMOVE(self, signal_connector);
|
|
114
|
+
|
|
115
|
+
return self;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
static VALUE
|
|
119
|
+
builder_get_type_from_name(VALUE self, VALUE name)
|
|
120
|
+
{
|
|
121
|
+
return GTYPE2CLASS(gtk_builder_get_type_from_name(_SELF(self),
|
|
122
|
+
RVAL2CSTR(name)));
|
|
123
|
+
}
|
|
124
|
+
#endif
|
|
125
|
+
|
|
126
|
+
void
|
|
127
|
+
Init_gtk_builder()
|
|
128
|
+
{
|
|
129
|
+
#if GTK_CHECK_VERSION(2, 12, 0)
|
|
130
|
+
VALUE gBuilder;
|
|
131
|
+
|
|
132
|
+
id___connect_signals__ = rb_intern("__connect_signals__");
|
|
133
|
+
|
|
134
|
+
gBuilder = G_DEF_CLASS_WITH_GC_FUNC(GTK_TYPE_BUILDER, "Builder", mGtk,
|
|
135
|
+
builder_mark, NULL);
|
|
136
|
+
|
|
137
|
+
G_DEF_CLASS(GTK_TYPE_BUILDER_ERROR, "BuilderError", mGtk);
|
|
138
|
+
|
|
139
|
+
rb_define_method(gBuilder, "initialize", builder_initialize, 0);
|
|
140
|
+
|
|
141
|
+
rb_define_method(gBuilder, "add_from_file", builder_add_from_file, 1);
|
|
142
|
+
rb_define_method(gBuilder, "add_from_string", builder_add_from_string, 1);
|
|
143
|
+
rb_define_method(gBuilder, "add", builder_add, 1);
|
|
144
|
+
rb_define_alias(gBuilder, "<<", "add");
|
|
145
|
+
|
|
146
|
+
rb_define_method(gBuilder, "get_object", builder_get_object, 1);
|
|
147
|
+
rb_define_alias(gBuilder, "[]", "get_object");
|
|
148
|
+
rb_define_method(gBuilder, "objects", builder_get_objects, 0);
|
|
149
|
+
|
|
150
|
+
rb_define_method(gBuilder, "connect_signals", builder_connect_signals, 0);
|
|
151
|
+
|
|
152
|
+
rb_define_method(gBuilder, "get_type", builder_get_type_from_name, 1);
|
|
153
|
+
#endif
|
|
154
|
+
}
|
data/src/rbgtkbutton.c
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
|
2
|
+
/************************************************
|
|
3
|
+
|
|
4
|
+
rbgtkbutton.c -
|
|
5
|
+
|
|
6
|
+
$Author: ggc $
|
|
7
|
+
$Date: 2007/07/13 16:07:31 $
|
|
8
|
+
|
|
9
|
+
Copyright (C) 2002-2004 Ruby-GNOME2 Project Team
|
|
10
|
+
Copyright (C) 1998-2000 Yukihiro Matsumoto,
|
|
11
|
+
Daisuke Kanda,
|
|
12
|
+
Hiroshi Igarashi
|
|
13
|
+
************************************************/
|
|
14
|
+
|
|
15
|
+
#include "global.h"
|
|
16
|
+
|
|
17
|
+
#define _SELF(self) (GTK_BUTTON(RVAL2GOBJ(self)))
|
|
18
|
+
|
|
19
|
+
static VALUE
|
|
20
|
+
button_initialize(argc, argv, self)
|
|
21
|
+
int argc;
|
|
22
|
+
VALUE *argv;
|
|
23
|
+
VALUE self;
|
|
24
|
+
{
|
|
25
|
+
VALUE label, use_underline;
|
|
26
|
+
GtkWidget *widget = NULL;
|
|
27
|
+
|
|
28
|
+
if (rb_scan_args(argc, argv, "02", &label, &use_underline) > 0) {
|
|
29
|
+
if (TYPE(label) == T_STRING){
|
|
30
|
+
if (NIL_P(use_underline) || RVAL2CBOOL(use_underline)){
|
|
31
|
+
widget = gtk_button_new_with_mnemonic(RVAL2CSTR(label));
|
|
32
|
+
} else {
|
|
33
|
+
widget = gtk_button_new_with_label(RVAL2CSTR(label));
|
|
34
|
+
}
|
|
35
|
+
} else if (TYPE(label) == T_SYMBOL){
|
|
36
|
+
widget = gtk_button_new_from_stock(rb_id2name(SYM2ID(label)));
|
|
37
|
+
} else {
|
|
38
|
+
rb_raise(rb_eArgError, "invalid argument %s (expect Symbol(Gtk::Stock constants) or String)",
|
|
39
|
+
rb_class2name(CLASS_OF(label)));
|
|
40
|
+
}
|
|
41
|
+
} else {
|
|
42
|
+
widget = gtk_button_new();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
RBGTK_INITIALIZE(self, widget);
|
|
46
|
+
return Qnil;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
static VALUE
|
|
50
|
+
button_pressed(self)
|
|
51
|
+
VALUE self;
|
|
52
|
+
{
|
|
53
|
+
gtk_button_pressed(GTK_BUTTON(RVAL2GOBJ(self)));
|
|
54
|
+
return self;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
static VALUE
|
|
58
|
+
button_released(self)
|
|
59
|
+
VALUE self;
|
|
60
|
+
{
|
|
61
|
+
gtk_button_released(_SELF(self));
|
|
62
|
+
return self;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
static VALUE
|
|
66
|
+
button_clicked(self)
|
|
67
|
+
VALUE self;
|
|
68
|
+
{
|
|
69
|
+
gtk_button_clicked(_SELF(self));
|
|
70
|
+
return self;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
static VALUE
|
|
74
|
+
button_enter(self)
|
|
75
|
+
VALUE self;
|
|
76
|
+
{
|
|
77
|
+
gtk_button_enter(_SELF(self));
|
|
78
|
+
return self;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
static VALUE
|
|
82
|
+
button_leave(self)
|
|
83
|
+
VALUE self;
|
|
84
|
+
{
|
|
85
|
+
gtk_button_leave(_SELF(self));
|
|
86
|
+
return self;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
#if GTK_CHECK_VERSION(2,4,0)
|
|
90
|
+
static VALUE
|
|
91
|
+
button_set_alignment(self, xalign, yalign)
|
|
92
|
+
VALUE self, xalign, yalign;
|
|
93
|
+
{
|
|
94
|
+
gtk_button_set_alignment(_SELF(self), NUM2DBL(xalign), NUM2DBL(yalign));
|
|
95
|
+
return self;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
static VALUE
|
|
99
|
+
button_get_alignment(self)
|
|
100
|
+
VALUE self;
|
|
101
|
+
{
|
|
102
|
+
gfloat xalign, yalign;
|
|
103
|
+
gtk_button_get_alignment(_SELF(self), &xalign, &yalign);
|
|
104
|
+
|
|
105
|
+
return rb_assoc_new(rb_float_new(xalign), rb_float_new(yalign));
|
|
106
|
+
}
|
|
107
|
+
#endif
|
|
108
|
+
|
|
109
|
+
/* Defined as properties.
|
|
110
|
+
void gtk_button_set_relief (GtkButton *button,
|
|
111
|
+
GtkReliefStyle newstyle);
|
|
112
|
+
GtkReliefStyle gtk_button_get_relief (GtkButton *button);
|
|
113
|
+
const gchar* gtk_button_get_label (GtkButton *button);
|
|
114
|
+
void gtk_button_set_label (GtkButton *button,
|
|
115
|
+
const gchar *label);
|
|
116
|
+
gboolean gtk_button_get_use_stock (GtkButton *button);
|
|
117
|
+
void gtk_button_set_use_stock (GtkButton *button,
|
|
118
|
+
gboolean use_stock);
|
|
119
|
+
gboolean gtk_button_get_use_underline (GtkButton *button);
|
|
120
|
+
void gtk_button_set_use_underline (GtkButton *button,
|
|
121
|
+
gboolean use_underline);
|
|
122
|
+
void gtk_button_set_focus_on_click (GtkButton *button,
|
|
123
|
+
gboolean focus_on_click);
|
|
124
|
+
gboolean gtk_button_get_focus_on_click (GtkButton *button);
|
|
125
|
+
void gtk_button_set_image (GtkButton *button,
|
|
126
|
+
GtkWidget *image);
|
|
127
|
+
GtkWidget* gtk_button_get_image (GtkButton *button);
|
|
128
|
+
void gtk_button_set_image_position (GtkButton *button,
|
|
129
|
+
GtkPositionType position);
|
|
130
|
+
GtkPositionType gtk_button_get_image_position
|
|
131
|
+
(GtkButton *button);
|
|
132
|
+
*/
|
|
133
|
+
|
|
134
|
+
void
|
|
135
|
+
Init_gtk_button()
|
|
136
|
+
{
|
|
137
|
+
VALUE gButton = G_DEF_CLASS(GTK_TYPE_BUTTON, "Button", mGtk);
|
|
138
|
+
|
|
139
|
+
rb_define_method(gButton, "initialize", button_initialize, -1);
|
|
140
|
+
rb_define_method(gButton, "pressed", button_pressed, 0);
|
|
141
|
+
rb_define_method(gButton, "released", button_released, 0);
|
|
142
|
+
rb_define_method(gButton, "clicked", button_clicked, 0);
|
|
143
|
+
rb_define_method(gButton, "enter", button_enter, 0);
|
|
144
|
+
rb_define_method(gButton, "leave", button_leave, 0);
|
|
145
|
+
|
|
146
|
+
#if GTK_CHECK_VERSION(2,4,0)
|
|
147
|
+
rb_define_method(gButton, "set_alignment", button_set_alignment, 2);
|
|
148
|
+
rb_define_method(gButton, "alignment", button_get_alignment, 0);
|
|
149
|
+
#endif
|
|
150
|
+
G_DEF_SETTERS(gButton);
|
|
151
|
+
}
|
data/src/rbgtkcalendar.c
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
|
2
|
+
/************************************************
|
|
3
|
+
|
|
4
|
+
rbgtkcalendar.c -
|
|
5
|
+
|
|
6
|
+
$Author: mutoh $
|
|
7
|
+
$Date: 2004/07/31 05:44:45 $
|
|
8
|
+
|
|
9
|
+
Copyright (C) 2002-2004 Ruby-GNOME2 Project Team
|
|
10
|
+
Copyright (C) 1998-2000 Yukihiro Matsumoto,
|
|
11
|
+
Daisuke Kanda,
|
|
12
|
+
Hiroshi Igarashi
|
|
13
|
+
************************************************/
|
|
14
|
+
|
|
15
|
+
#include "global.h"
|
|
16
|
+
|
|
17
|
+
#define _SELF(self) (GTK_CALENDAR(RVAL2GOBJ(self)))
|
|
18
|
+
|
|
19
|
+
static VALUE
|
|
20
|
+
cal_init(self)
|
|
21
|
+
VALUE self;
|
|
22
|
+
{
|
|
23
|
+
RBGTK_INITIALIZE(self, gtk_calendar_new());
|
|
24
|
+
return Qnil;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static VALUE
|
|
28
|
+
cal_select_month(self, month, year)
|
|
29
|
+
VALUE self, month, year;
|
|
30
|
+
{
|
|
31
|
+
gint ret = gtk_calendar_select_month(_SELF(self),
|
|
32
|
+
NUM2INT(month)-1,
|
|
33
|
+
NUM2INT(year));
|
|
34
|
+
return INT2FIX(ret);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
static VALUE
|
|
38
|
+
cal_select_day(self, day)
|
|
39
|
+
VALUE self, day;
|
|
40
|
+
{
|
|
41
|
+
gtk_calendar_select_day(_SELF(self), NUM2INT(day));
|
|
42
|
+
return self;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
static VALUE
|
|
46
|
+
cal_mark_day(self, day)
|
|
47
|
+
VALUE self, day;
|
|
48
|
+
{
|
|
49
|
+
gtk_calendar_mark_day(_SELF(self), NUM2INT(day));
|
|
50
|
+
return self;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
static VALUE
|
|
54
|
+
cal_unmark_day(self, day)
|
|
55
|
+
VALUE self, day;
|
|
56
|
+
{
|
|
57
|
+
gtk_calendar_unmark_day(_SELF(self), NUM2INT(day));
|
|
58
|
+
return self;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
static VALUE
|
|
62
|
+
cal_clear_marks(self)
|
|
63
|
+
VALUE self;
|
|
64
|
+
{
|
|
65
|
+
gtk_calendar_clear_marks(_SELF(self));
|
|
66
|
+
return self;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
static VALUE
|
|
70
|
+
cal_get_date(self)
|
|
71
|
+
VALUE self;
|
|
72
|
+
{
|
|
73
|
+
VALUE ret;
|
|
74
|
+
guint year, month, day;
|
|
75
|
+
|
|
76
|
+
gtk_calendar_get_date(_SELF(self), &year, &month, &day);
|
|
77
|
+
ret = rb_ary_new();
|
|
78
|
+
rb_ary_push(ret, INT2FIX(year));
|
|
79
|
+
rb_ary_push(ret, INT2FIX(month+1));
|
|
80
|
+
rb_ary_push(ret, INT2FIX(day));
|
|
81
|
+
return ret;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
static VALUE
|
|
85
|
+
cal_freeze(self)
|
|
86
|
+
VALUE self;
|
|
87
|
+
{
|
|
88
|
+
gtk_calendar_freeze(_SELF(self));
|
|
89
|
+
return self;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
static VALUE
|
|
93
|
+
cal_thaw(self)
|
|
94
|
+
VALUE self;
|
|
95
|
+
{
|
|
96
|
+
gtk_calendar_thaw(_SELF(self));
|
|
97
|
+
return self;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
static VALUE
|
|
101
|
+
cal_get_display_options(argc, argv, self)
|
|
102
|
+
int argc;
|
|
103
|
+
VALUE *argv;
|
|
104
|
+
VALUE self;
|
|
105
|
+
{
|
|
106
|
+
VALUE flags;
|
|
107
|
+
rb_scan_args(argc, argv, "01", &flags);
|
|
108
|
+
|
|
109
|
+
if NIL_P(flags){
|
|
110
|
+
#if GTK_CHECK_VERSION(2,4,0)
|
|
111
|
+
return GFLAGS2RVAL(gtk_calendar_get_display_options(_SELF(self)),
|
|
112
|
+
GTK_TYPE_CALENDAR_DISPLAY_OPTIONS);
|
|
113
|
+
#else
|
|
114
|
+
rb_warn("Gtk::Calendar#display_options has supported since GTK+-2.4.");
|
|
115
|
+
#endif
|
|
116
|
+
} else {
|
|
117
|
+
/* This is for backward compatibility. */
|
|
118
|
+
rb_warning("Gtk::Calendar#display_options(flags) has been deprecated. Use Gtk::Calendar#set_display_options(flags).");
|
|
119
|
+
gtk_calendar_display_options(_SELF(self),
|
|
120
|
+
RVAL2GFLAGS(flags, GTK_TYPE_CALENDAR_DISPLAY_OPTIONS));
|
|
121
|
+
}
|
|
122
|
+
return self;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
#if GTK_CHECK_VERSION(2,4,0)
|
|
126
|
+
static VALUE
|
|
127
|
+
cal_set_display_options(self, flags)
|
|
128
|
+
VALUE self, flags;
|
|
129
|
+
{
|
|
130
|
+
gtk_calendar_set_display_options(_SELF(self),
|
|
131
|
+
RVAL2GFLAGS(flags,
|
|
132
|
+
GTK_TYPE_CALENDAR_DISPLAY_OPTIONS));
|
|
133
|
+
return self;
|
|
134
|
+
}
|
|
135
|
+
#endif
|
|
136
|
+
|
|
137
|
+
void
|
|
138
|
+
Init_gtk_calendar()
|
|
139
|
+
{
|
|
140
|
+
VALUE gCalendar = G_DEF_CLASS(GTK_TYPE_CALENDAR, "Calendar", mGtk);
|
|
141
|
+
|
|
142
|
+
rb_define_method(gCalendar, "initialize", cal_init, 0);
|
|
143
|
+
rb_define_method(gCalendar, "select_month", cal_select_month, 2);
|
|
144
|
+
rb_define_method(gCalendar, "select_day", cal_select_day, 1);
|
|
145
|
+
rb_define_method(gCalendar, "mark_day", cal_mark_day, 1);
|
|
146
|
+
rb_define_method(gCalendar, "unmark_day", cal_unmark_day, 1);
|
|
147
|
+
rb_define_method(gCalendar, "clear_marks", cal_clear_marks, 0);
|
|
148
|
+
rb_define_method(gCalendar, "date", cal_get_date, 0);
|
|
149
|
+
rb_define_method(gCalendar, "freeze", cal_freeze, 0);
|
|
150
|
+
rb_define_method(gCalendar, "thaw", cal_thaw, 0);
|
|
151
|
+
rb_define_method(gCalendar, "display_options", cal_get_display_options, -1);
|
|
152
|
+
#if GTK_CHECK_VERSION(2,4,0)
|
|
153
|
+
rb_define_method(gCalendar, "set_display_options", cal_set_display_options, 1);
|
|
154
|
+
#endif
|
|
155
|
+
G_DEF_SETTERS(gCalendar);
|
|
156
|
+
|
|
157
|
+
G_DEF_CLASS(GTK_TYPE_CALENDAR_DISPLAY_OPTIONS, "DisplayOptions", gCalendar);
|
|
158
|
+
G_DEF_CONSTANTS(gCalendar, GTK_TYPE_CALENDAR_DISPLAY_OPTIONS, "GTK_CALENDAR_");
|
|
159
|
+
}
|