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
data/src/rbgtk.c
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
|
2
|
+
/************************************************
|
|
3
|
+
|
|
4
|
+
rbgtk.c -
|
|
5
|
+
|
|
6
|
+
$Author: sakai $
|
|
7
|
+
$Date: 2007/07/04 13:33:17 $
|
|
8
|
+
|
|
9
|
+
Copyright (C) 2002-2006 Ruby-GNOME2 Project Team
|
|
10
|
+
Copyright (C) 1998-2001 Yukihiro Matsumoto,
|
|
11
|
+
Daisuke Kanda,
|
|
12
|
+
Hiroshi Igarashi
|
|
13
|
+
************************************************/
|
|
14
|
+
|
|
15
|
+
#include "global.h"
|
|
16
|
+
#ifdef HAVE_SYS_TIME_H
|
|
17
|
+
# include <sys/time.h>
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
VALUE mGtk;
|
|
21
|
+
|
|
22
|
+
ID id_relative_callbacks;
|
|
23
|
+
ID id_call;
|
|
24
|
+
static ID id__windows__;
|
|
25
|
+
|
|
26
|
+
static void
|
|
27
|
+
remove_from_windows(GtkWidget *window, VALUE obj)
|
|
28
|
+
{
|
|
29
|
+
VALUE klass;
|
|
30
|
+
klass = rb_obj_class(obj);
|
|
31
|
+
rb_hash_delete(rb_ivar_get(klass, id__windows__), obj);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
void
|
|
35
|
+
rbgtk_initialize_gtkobject(obj, gtkobj)
|
|
36
|
+
VALUE obj;
|
|
37
|
+
GtkObject *gtkobj;
|
|
38
|
+
{
|
|
39
|
+
gtkobj = g_object_ref(gtkobj);
|
|
40
|
+
gtk_object_sink(gtkobj);
|
|
41
|
+
G_INITIALIZE(obj, gtkobj);
|
|
42
|
+
|
|
43
|
+
if (GTK_IS_WINDOW(gtkobj) || GTK_IS_MENU_SHELL(gtkobj)) {
|
|
44
|
+
VALUE klass;
|
|
45
|
+
klass = rb_obj_class(obj);
|
|
46
|
+
if (rb_ivar_defined(klass, id__windows__) == Qfalse) {
|
|
47
|
+
rb_ivar_set(klass, id__windows__, rb_hash_new());
|
|
48
|
+
}
|
|
49
|
+
rb_hash_aset(rb_ivar_get(klass, id__windows__), obj, Qnil);
|
|
50
|
+
g_signal_connect_after(gtkobj, "destroy",
|
|
51
|
+
G_CALLBACK(remove_from_windows),
|
|
52
|
+
(gpointer)obj);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
void
|
|
57
|
+
exec_callback(widget, proc)
|
|
58
|
+
GtkWidget *widget;
|
|
59
|
+
gpointer proc;
|
|
60
|
+
{
|
|
61
|
+
rb_funcall((VALUE)proc, id_call, 1, GOBJ2RVAL(widget));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/*
|
|
65
|
+
* Gtk module
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
/* We can't use rbgtk_poll() on native Win32.
|
|
69
|
+
Because GPollFD doesn't have file descriptor but HANDLE. */
|
|
70
|
+
#define USE_POLL_FUNC
|
|
71
|
+
|
|
72
|
+
static VALUE
|
|
73
|
+
gtk_m_events_pending(self)
|
|
74
|
+
VALUE self;
|
|
75
|
+
{
|
|
76
|
+
return CBOOL2RVAL(gtk_events_pending());
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/*
|
|
80
|
+
* Init
|
|
81
|
+
*/
|
|
82
|
+
void
|
|
83
|
+
Init_gtk_gtk()
|
|
84
|
+
{
|
|
85
|
+
id_call = rb_intern("call");
|
|
86
|
+
id__windows__ = rb_intern("__windows__");
|
|
87
|
+
|
|
88
|
+
mGtk = rb_define_module("Gtk");
|
|
89
|
+
rb_ivar_set(mGtk, id_relative_callbacks, Qnil);
|
|
90
|
+
|
|
91
|
+
rb_define_module_function(mGtk, "events_pending?", gtk_m_events_pending, 0);
|
|
92
|
+
|
|
93
|
+
}
|
data/src/rbgtk.h
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
|
2
|
+
/************************************************
|
|
3
|
+
|
|
4
|
+
rbgtk.h -
|
|
5
|
+
|
|
6
|
+
$Author: sakai $
|
|
7
|
+
$Date: 2007/07/06 10:13:27 $
|
|
8
|
+
|
|
9
|
+
Copyright (C) 2003-2006 Ruby-GNOME2 Project Team
|
|
10
|
+
Copyright (C) 1998-2000 Yukihiro Matsumoto,
|
|
11
|
+
Daisuke Kanda,
|
|
12
|
+
Hiroshi Igarashi
|
|
13
|
+
************************************************/
|
|
14
|
+
|
|
15
|
+
#ifndef _RBGTK_H
|
|
16
|
+
#define _RBGTK_H
|
|
17
|
+
|
|
18
|
+
#include <rbgobject.h>
|
|
19
|
+
#include <rbgtkmacros.h>
|
|
20
|
+
#include <gtk/gtk.h>
|
|
21
|
+
#include <rbgdk.h>
|
|
22
|
+
#include <rbgtkconversions.h>
|
|
23
|
+
|
|
24
|
+
#include <signal.h>
|
|
25
|
+
|
|
26
|
+
#define RubyGtkContainerHookModule "RubyGtkContainerHook__"
|
|
27
|
+
|
|
28
|
+
#define RBGTK_MAJOR_VERSION RBGLIB_MAJOR_VERSION
|
|
29
|
+
#define RBGTK_MINOR_VERSION RBGLIB_MINOR_VERSION
|
|
30
|
+
#define RBGTK_MICRO_VERSION RBGLIB_MICRO_VERSION
|
|
31
|
+
|
|
32
|
+
#define RBGTK_INITIALIZE(obj,gtkobj)\
|
|
33
|
+
(rbgtk_initialize_gtkobject(obj, GTK_OBJECT(gtkobj)))
|
|
34
|
+
|
|
35
|
+
#define GTK_TYPE_ALLOCATION (gtk_allocation_get_type())
|
|
36
|
+
#define GTK_TYPE_ACCEL_KEY (gtk_accel_key_get_type())
|
|
37
|
+
#define GTK_TYPE_ACCEL_GROUP_ENTRY (gtk_accel_group_entry_get_type())
|
|
38
|
+
#define GTK_TYPE_BINDING_SET (gtk_bindingset_get_type())
|
|
39
|
+
#define GTK_TYPE_TEXT_APPEARANCE (gtk_text_appearance_get_type())
|
|
40
|
+
#define GTK_TYPE_RECENT_FILTER_INFO (gtk_recent_filter_info_get_type())
|
|
41
|
+
#define GTK_TYPE_RECENT_DATA (gtk_recent_data_get_type())
|
|
42
|
+
#ifndef GTK_TYPE_TARGET_LIST
|
|
43
|
+
extern GType gtk_target_list_get_type();
|
|
44
|
+
#define GTK_TYPE_TARGET_LIST (gtk_target_list_get_type())
|
|
45
|
+
#endif
|
|
46
|
+
|
|
47
|
+
RUBY_GTK2_VAR VALUE mGtk;
|
|
48
|
+
|
|
49
|
+
/*
|
|
50
|
+
* for gtk2.0/gtk2.2
|
|
51
|
+
*/
|
|
52
|
+
#ifndef GTK_TYPE_CLIPBOARD
|
|
53
|
+
#define GTK_TYPE_CLIPBOARD (rbgtk_clipboard_get_type())
|
|
54
|
+
#define RVAL2CLIPBOARD(obj) (rbgtk_get_clipboard(obj))
|
|
55
|
+
#define CLIPBOARD2RVAL(val) (rbgtk_make_clipboard(val))
|
|
56
|
+
extern GType rbgtk_clipboard_get_type();
|
|
57
|
+
extern GtkClipboard* rbgtk_get_clipboard(VALUE obj);
|
|
58
|
+
extern VALUE rbgtk_make_clipboard(GtkClipboard* gobj);
|
|
59
|
+
#else
|
|
60
|
+
#define RVAL2CLIPBOARD(obj) (GTK_CLIPBOARD(RVAL2GOBJ(obj)))
|
|
61
|
+
#define CLIPBOARD2RVAL(val) (GOBJ2RVAL(val))
|
|
62
|
+
#endif
|
|
63
|
+
|
|
64
|
+
#ifndef GTK_TYPE_TREE_ROW_REFERENCE
|
|
65
|
+
#define GTK_TYPE_TREE_ROW_REFERENCE (rbgtk_tree_row_reference_get_type())
|
|
66
|
+
#define RVAL2TREEROWREFERENCE(obj) (rbgtk_get_tree_row_reference(obj))
|
|
67
|
+
extern GType rbgtk_tree_row_reference_get_type();
|
|
68
|
+
extern GtkTreeRowReference* rbgtk_get_tree_row_reference(VALUE obj);
|
|
69
|
+
#else
|
|
70
|
+
#define RVAL2TREEROWREFERENCE(obj) ((GtkTreeRowReference*)(RVAL2BOXED(obj, GTK_TYPE_TREE_ROW_REFERENCE)))
|
|
71
|
+
#endif
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
/*
|
|
75
|
+
* for gtk
|
|
76
|
+
*/
|
|
77
|
+
extern void rbgtk_initialize_gtkobject(VALUE obj, GtkObject *gtkobj);
|
|
78
|
+
extern void exec_callback(GtkWidget *widget, gpointer proc);
|
|
79
|
+
extern GType gtk_allocation_get_type();
|
|
80
|
+
extern GType gtk_accel_key_get_type();
|
|
81
|
+
extern GType gtk_accel_group_entry_get_type();
|
|
82
|
+
extern GType gtk_bindingset_get_type();
|
|
83
|
+
extern GType gtk_text_appearance_get_type();
|
|
84
|
+
extern GType gtk_recent_filter_info_get_type();
|
|
85
|
+
extern GType gtk_recent_data_get_type();
|
|
86
|
+
|
|
87
|
+
/*
|
|
88
|
+
* Gtk::TreeIter callback
|
|
89
|
+
*/
|
|
90
|
+
typedef void (*rbgtkiter_set_value_func)(void *model, GtkTreeIter *iter,
|
|
91
|
+
gint column, GValue *value);
|
|
92
|
+
extern void rbgtk_register_treeiter_set_value_func(GType, rbgtkiter_set_value_func);
|
|
93
|
+
|
|
94
|
+
/*
|
|
95
|
+
* Gtk::SelectionData
|
|
96
|
+
*/
|
|
97
|
+
extern void rbgtk_atom2selectiondata(VALUE type, VALUE size, VALUE src, GdkAtom* gtype,
|
|
98
|
+
void** data, gint* format, gint* length);
|
|
99
|
+
extern void rbgtk_atom2selectiondata_free(GdkAtom gtype, void* data);
|
|
100
|
+
|
|
101
|
+
/*
|
|
102
|
+
* Gtk::Drag
|
|
103
|
+
*/
|
|
104
|
+
extern GtkTargetEntry* rbgtk_get_target_entry(VALUE targets);
|
|
105
|
+
|
|
106
|
+
/*
|
|
107
|
+
* Gtk::Container
|
|
108
|
+
*/
|
|
109
|
+
extern void rbgtkcontainer_register_child_property_setter(GType gtype,
|
|
110
|
+
const char* prop_name,
|
|
111
|
+
RValueToGValueFunc func);
|
|
112
|
+
extern void rbgtkcontainer_register_child_property_getter(GType gtype,
|
|
113
|
+
const char* prop_name,
|
|
114
|
+
GValueToRValueFunc func);
|
|
115
|
+
|
|
116
|
+
/*
|
|
117
|
+
* Dialog
|
|
118
|
+
*/
|
|
119
|
+
extern VALUE rbgtk_dialog_add_buttons_internal(VALUE self, VALUE button_ary);
|
|
120
|
+
|
|
121
|
+
#endif /* _RBGTK_H */
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
|
2
|
+
/************************************************
|
|
3
|
+
|
|
4
|
+
rbgtkaboutdialog.c -
|
|
5
|
+
|
|
6
|
+
$Author: ktou $
|
|
7
|
+
$Date: 2007/08/17 11:52:05 $
|
|
8
|
+
|
|
9
|
+
Copyright (C) 2005 Masao Mutoh
|
|
10
|
+
************************************************/
|
|
11
|
+
|
|
12
|
+
#include "global.h"
|
|
13
|
+
|
|
14
|
+
#if GTK_CHECK_VERSION(2,6,0)
|
|
15
|
+
|
|
16
|
+
#define _SELF(self) (GTK_ABOUT_DIALOG(RVAL2GOBJ(self)))
|
|
17
|
+
|
|
18
|
+
static VALUE
|
|
19
|
+
aboutdialog_initialize(self)
|
|
20
|
+
VALUE self;
|
|
21
|
+
{
|
|
22
|
+
RBGTK_INITIALIZE(self, gtk_about_dialog_new());
|
|
23
|
+
return Qnil;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/* Defined as Properties
|
|
27
|
+
const gchar* gtk_about_dialog_get_name (GtkAboutDialog *about);
|
|
28
|
+
void gtk_about_dialog_set_name (GtkAboutDialog *about,
|
|
29
|
+
const gchar *name);
|
|
30
|
+
const gchar* gtk_about_dialog_get_version (GtkAboutDialog *about);
|
|
31
|
+
void gtk_about_dialog_set_version (GtkAboutDialog *about,
|
|
32
|
+
const gchar *version);
|
|
33
|
+
const gchar* gtk_about_dialog_get_copyright (GtkAboutDialog *about);
|
|
34
|
+
void gtk_about_dialog_set_copyright (GtkAboutDialog *about,
|
|
35
|
+
const gchar *copyright);
|
|
36
|
+
const gchar* gtk_about_dialog_get_comments (GtkAboutDialog *about);
|
|
37
|
+
void gtk_about_dialog_set_comments (GtkAboutDialog *about,
|
|
38
|
+
const gchar *comments);
|
|
39
|
+
const gchar* gtk_about_dialog_get_license (GtkAboutDialog *about);
|
|
40
|
+
void gtk_about_dialog_set_license (GtkAboutDialog *about,
|
|
41
|
+
const gchar *license);
|
|
42
|
+
const gchar* gtk_about_dialog_get_website (GtkAboutDialog *about);
|
|
43
|
+
void gtk_about_dialog_set_website (GtkAboutDialog *about,
|
|
44
|
+
const gchar *website);
|
|
45
|
+
const gchar* gtk_about_dialog_get_website_label
|
|
46
|
+
(GtkAboutDialog *about);
|
|
47
|
+
void gtk_about_dialog_set_website_label
|
|
48
|
+
(GtkAboutDialog *about,
|
|
49
|
+
const gchar *website_label);
|
|
50
|
+
const gchar* const * gtk_about_dialog_get_authors
|
|
51
|
+
(GtkAboutDialog *about);
|
|
52
|
+
void gtk_about_dialog_set_authors (GtkAboutDialog *about,
|
|
53
|
+
const gchar **authors);
|
|
54
|
+
const gchar* const * gtk_about_dialog_get_artists
|
|
55
|
+
(GtkAboutDialog *about);
|
|
56
|
+
void gtk_about_dialog_set_artists (GtkAboutDialog *about,
|
|
57
|
+
const gchar **artists);
|
|
58
|
+
const gchar* const * gtk_about_dialog_get_documenters
|
|
59
|
+
(GtkAboutDialog *about);
|
|
60
|
+
void gtk_about_dialog_set_documenters
|
|
61
|
+
(GtkAboutDialog *about,
|
|
62
|
+
const gchar **documenters);
|
|
63
|
+
const gchar* gtk_about_dialog_get_translator_credits
|
|
64
|
+
(GtkAboutDialog *about);
|
|
65
|
+
void gtk_about_dialog_set_translator_credits
|
|
66
|
+
(GtkAboutDialog *about,
|
|
67
|
+
const gchar *translator_credits);
|
|
68
|
+
GdkPixbuf* gtk_about_dialog_get_logo (GtkAboutDialog *about);
|
|
69
|
+
void gtk_about_dialog_set_logo (GtkAboutDialog *about,
|
|
70
|
+
GdkPixbuf *logo);
|
|
71
|
+
const gchar* gtk_about_dialog_get_logo_icon_name
|
|
72
|
+
(GtkAboutDialog *about);
|
|
73
|
+
void gtk_about_dialog_set_logo_icon_name
|
|
74
|
+
(GtkAboutDialog *about,
|
|
75
|
+
const gchar *icon_name);
|
|
76
|
+
gboolean gtk_about_dialog_get_wrap_license
|
|
77
|
+
(GtkAboutDialog *about);
|
|
78
|
+
void gtk_about_dialog_set_wrap_license
|
|
79
|
+
(GtkAboutDialog *about,
|
|
80
|
+
gboolean wrap_license);
|
|
81
|
+
*/
|
|
82
|
+
|
|
83
|
+
static void
|
|
84
|
+
activate_link_func(about, link, func)
|
|
85
|
+
GtkAboutDialog* about;
|
|
86
|
+
const gchar* link;
|
|
87
|
+
gpointer func;
|
|
88
|
+
{
|
|
89
|
+
rb_funcall((VALUE)func, id_call, 2, GOBJ2RVAL(about), CSTR2RVAL(link));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
static VALUE
|
|
93
|
+
aboutdialog_s_set_email_hook(self)
|
|
94
|
+
VALUE self;
|
|
95
|
+
{
|
|
96
|
+
VALUE func = rb_block_proc();
|
|
97
|
+
G_RELATIVE(self, func);
|
|
98
|
+
gtk_about_dialog_set_email_hook((GtkAboutDialogActivateLinkFunc)activate_link_func, (gpointer)func, (GDestroyNotify)NULL);
|
|
99
|
+
return self;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
static VALUE
|
|
103
|
+
aboutdialog_s_set_url_hook(self)
|
|
104
|
+
VALUE self;
|
|
105
|
+
{
|
|
106
|
+
VALUE func = rb_block_proc();
|
|
107
|
+
G_RELATIVE(self, func);
|
|
108
|
+
gtk_about_dialog_set_url_hook((GtkAboutDialogActivateLinkFunc)activate_link_func, (gpointer)func, (GDestroyNotify)NULL);
|
|
109
|
+
return self;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
typedef struct {
|
|
114
|
+
const char *name;
|
|
115
|
+
gpointer value;
|
|
116
|
+
} prop_data;
|
|
117
|
+
|
|
118
|
+
#define ABOUT_PROP_NUM (15)
|
|
119
|
+
|
|
120
|
+
static VALUE
|
|
121
|
+
aboutdialog_s_show_about_dialog(self, parent, props)
|
|
122
|
+
VALUE self, parent, props;
|
|
123
|
+
{
|
|
124
|
+
int i;
|
|
125
|
+
VALUE ary;
|
|
126
|
+
prop_data pd[ABOUT_PROP_NUM];
|
|
127
|
+
|
|
128
|
+
Check_Type(props, T_HASH);
|
|
129
|
+
|
|
130
|
+
ary = rb_funcall(props, rb_intern("to_a"), 0);
|
|
131
|
+
|
|
132
|
+
if (RARRAY_LEN(ary) > ABOUT_PROP_NUM)
|
|
133
|
+
rb_raise(rb_eArgError, "Too many args.");
|
|
134
|
+
|
|
135
|
+
for (i = 0; i < ABOUT_PROP_NUM; i++){
|
|
136
|
+
pd[i].name = (const char*)NULL;
|
|
137
|
+
pd[i].value = (gpointer)NULL;
|
|
138
|
+
}
|
|
139
|
+
for (i = 0; i < RARRAY_LEN(ary); i++){
|
|
140
|
+
if (TYPE(RARRAY_PTR(RARRAY_PTR(ary)[i])[0]) == T_SYMBOL){
|
|
141
|
+
pd[i].name = rb_id2name(SYM2ID(RARRAY_PTR(RARRAY_PTR(ary)[i])[0]));
|
|
142
|
+
} else {
|
|
143
|
+
pd[i].name = RVAL2CSTR(RARRAY_PTR(RARRAY_PTR(ary)[i])[0]);
|
|
144
|
+
}
|
|
145
|
+
if (strncmp(pd[i].name, "artists", strlen("artists")) == 0||
|
|
146
|
+
strncmp(pd[i].name, "authors", strlen("authors")) == 0||
|
|
147
|
+
strncmp(pd[i].name, "documenters", strlen("documenters")) == 0){
|
|
148
|
+
GValue gval = {0,};
|
|
149
|
+
g_value_init(&gval, G_TYPE_STRV);
|
|
150
|
+
rbgobj_rvalue_to_gvalue(RARRAY_PTR(RARRAY_PTR(ary)[i])[1], &gval);
|
|
151
|
+
|
|
152
|
+
pd[i].value = g_boxed_copy(G_TYPE_STRV, g_value_get_boxed(&gval));
|
|
153
|
+
} else if (strncmp(pd[i].name, "logo", strlen("logo")) == 0 &&
|
|
154
|
+
strlen(pd[i].name) == strlen("logo")){
|
|
155
|
+
pd[i].value = g_object_ref(RVAL2GOBJ(RARRAY_PTR(RARRAY_PTR(ary)[i])[1]));
|
|
156
|
+
} else if (strncmp(pd[i].name, "wrap_license", strlen("wrap_license")) == 0){
|
|
157
|
+
pd[i].value = GINT_TO_POINTER(RVAL2CBOOL(RARRAY_PTR(ary)[i]));
|
|
158
|
+
} else {
|
|
159
|
+
pd[i].value = g_strdup(RVAL2CSTR(RARRAY_PTR(RARRAY_PTR(ary)[i])[1]));
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
gtk_show_about_dialog(GTK_WINDOW(RVAL2GOBJ(parent)),
|
|
164
|
+
pd[0].name, pd[0].value,
|
|
165
|
+
pd[1].name, pd[1].value,
|
|
166
|
+
pd[2].name, pd[2].value,
|
|
167
|
+
pd[3].name, pd[3].value,
|
|
168
|
+
pd[4].name, pd[4].value,
|
|
169
|
+
pd[5].name, pd[5].value,
|
|
170
|
+
pd[6].name, pd[6].value,
|
|
171
|
+
pd[7].name, pd[7].value,
|
|
172
|
+
pd[8].name, pd[8].value,
|
|
173
|
+
pd[9].name, pd[9].value,
|
|
174
|
+
pd[10].name, pd[10].value,
|
|
175
|
+
pd[11].name, pd[11].value,
|
|
176
|
+
pd[12].name, pd[12].value,
|
|
177
|
+
pd[13].name, pd[13].value,
|
|
178
|
+
pd[14].name, pd[14].value,
|
|
179
|
+
NULL);
|
|
180
|
+
return self;
|
|
181
|
+
}
|
|
182
|
+
#endif
|
|
183
|
+
|
|
184
|
+
void
|
|
185
|
+
Init_gtk_aboutdialog()
|
|
186
|
+
{
|
|
187
|
+
#if GTK_CHECK_VERSION(2,6,0)
|
|
188
|
+
VALUE gAboutDialog = G_DEF_CLASS(GTK_TYPE_ABOUT_DIALOG, "AboutDialog", mGtk);
|
|
189
|
+
rb_define_method(gAboutDialog, "initialize", aboutdialog_initialize, 0);
|
|
190
|
+
|
|
191
|
+
rb_define_singleton_method(gAboutDialog, "set_email_hook", aboutdialog_s_set_email_hook, 0);
|
|
192
|
+
rb_define_singleton_method(gAboutDialog, "set_url_hook", aboutdialog_s_set_url_hook, 0);
|
|
193
|
+
rb_define_singleton_method(gAboutDialog, "show", aboutdialog_s_show_about_dialog, 2);
|
|
194
|
+
#endif
|
|
195
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
|
|
2
|
+
/************************************************
|
|
3
|
+
|
|
4
|
+
rbgtkaccelerator.c -
|
|
5
|
+
|
|
6
|
+
$Author: ggc $
|
|
7
|
+
$Date: 2007/07/13 14:27:09 $
|
|
8
|
+
|
|
9
|
+
Copyright (C) 2002,2003 Masao Mutoh
|
|
10
|
+
************************************************/
|
|
11
|
+
#include "global.h"
|
|
12
|
+
|
|
13
|
+
#define RVAL2MOD(mods) RVAL2GFLAGS(mods, GDK_TYPE_MODIFIER_TYPE)
|
|
14
|
+
|
|
15
|
+
static VALUE
|
|
16
|
+
accel_valid(self, keyval, modifiers)
|
|
17
|
+
VALUE self, keyval, modifiers;
|
|
18
|
+
{
|
|
19
|
+
return CBOOL2RVAL(gtk_accelerator_valid(NUM2UINT(keyval), RVAL2MOD(modifiers)));
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
static VALUE
|
|
23
|
+
accel_parse(self, accelerator)
|
|
24
|
+
VALUE self, accelerator;
|
|
25
|
+
{
|
|
26
|
+
guint key;
|
|
27
|
+
GdkModifierType mods;
|
|
28
|
+
gtk_accelerator_parse(RVAL2CSTR(accelerator), &key, &mods);
|
|
29
|
+
return rb_ary_new3(2, UINT2NUM(key), GFLAGS2RVAL(mods, GDK_TYPE_MODIFIER_TYPE));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
static VALUE
|
|
33
|
+
accel_name(self, key, mods)
|
|
34
|
+
VALUE self, key, mods;
|
|
35
|
+
{
|
|
36
|
+
return CSTR2RVAL(gtk_accelerator_name(NUM2UINT(key), RVAL2MOD(mods)));
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
#if GTK_CHECK_VERSION(2,6,0)
|
|
40
|
+
static VALUE
|
|
41
|
+
accel_get_label(self, key, mods)
|
|
42
|
+
VALUE self, key, mods;
|
|
43
|
+
{
|
|
44
|
+
return CSTR2RVAL(gtk_accelerator_get_label(NUM2UINT(key), RVAL2MOD(mods)));
|
|
45
|
+
}
|
|
46
|
+
#endif
|
|
47
|
+
|
|
48
|
+
static VALUE
|
|
49
|
+
accel_set_default_mod_mask(self, default_mod_mask)
|
|
50
|
+
VALUE self, default_mod_mask;
|
|
51
|
+
{
|
|
52
|
+
gtk_accelerator_set_default_mod_mask(RVAL2MOD(default_mod_mask));
|
|
53
|
+
return self;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
static VALUE
|
|
57
|
+
accel_get_default_mod_mask(self)
|
|
58
|
+
VALUE self;
|
|
59
|
+
{
|
|
60
|
+
return GFLAGS2RVAL(gtk_accelerator_get_default_mod_mask(), GDK_TYPE_MODIFIER_TYPE);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
void
|
|
64
|
+
Init_gtk_accelerator()
|
|
65
|
+
{
|
|
66
|
+
VALUE mGtkAccel = rb_define_module_under(mGtk, "Accelerator");
|
|
67
|
+
|
|
68
|
+
rb_define_singleton_method(mGtkAccel, "valid", accel_valid, 2);
|
|
69
|
+
rb_define_singleton_method(mGtkAccel, "parse", accel_parse, 1);
|
|
70
|
+
/* name is reserved by Ruby */
|
|
71
|
+
rb_define_singleton_method(mGtkAccel, "to_name", accel_name, 2);
|
|
72
|
+
#if GTK_CHECK_VERSION(2,6,0)
|
|
73
|
+
rb_define_singleton_method(mGtkAccel, "get_label", accel_get_label, 2);
|
|
74
|
+
#endif
|
|
75
|
+
rb_define_singleton_method(mGtkAccel, "set_default_mod_mask", accel_set_default_mod_mask, 1);
|
|
76
|
+
rb_define_singleton_method(mGtkAccel, "default_mod_mask", accel_get_default_mod_mask, 0);
|
|
77
|
+
G_DEF_SETTERS(mGtkAccel);
|
|
78
|
+
}
|