[DRE-commits] [ruby-gnome2] 01/09: Imported Upstream version 2.1.0
Antonio Terceiro
terceiro at moszumanska.debian.org
Tue Jan 21 14:04:14 UTC 2014
This is an automated email from the git hooks/post-receive script.
terceiro pushed a commit to branch master
in repository ruby-gnome2.
commit f34f680d5d7986cc51c54c05fcded07bbe4176b8
Author: Antonio Terceiro <terceiro at debian.org>
Date: Mon Jan 20 16:46:02 2014 -0300
Imported Upstream version 2.1.0
---
COPYING.LIB | 20 +-
NEWS | 206 ++++
README | 11 +-
Rakefile | 8 +-
atk/COPYING.LIB | 20 +-
atk/README | 4 +-
atk/Rakefile | 3 +-
atk/ext/atk/extconf.rb | 2 +-
atk/ext/atk/rbatkcomponent.c | 4 -
atk/ext/atk/rbatkdocument.c | 4 -
atk/ext/atk/rbatkrelation.c | 4 -
atk/ext/atk/rbatkrelationset.c | 4 -
atk/ext/atk/rbatkutil.c | 4 -
cairo-gobject/ext/cairo-gobject/extconf.rb | 5 +-
.../test/test_cairoantialias.rb | 7 +-
.../test/test_cairocontent.rb | 7 +-
.../test/test_cairocontext.rb | 8 +-
.../test/test_cairodevicetype.rb | 7 +-
.../test/test_cairoextend.rb | 7 +-
.../test/test_cairofillrule.rb | 7 +-
.../test/test_cairofilter.rb | 7 +-
.../test/test_cairofontslant.rb | 7 +-
.../test/test_cairofonttype.rb | 7 +-
.../test/test_cairofontweight.rb | 7 +-
.../test/test_cairoformat.rb | 7 +-
.../test/test_cairohintmetrics.rb | 7 +-
.../test/test_cairohintstyle.rb | 7 +-
.../test/test_cairoimagesurface.rb | 7 +-
.../test/test_cairolinecap.rb | 7 +-
.../test/test_cairolinejoin.rb | 7 +-
.../test/test_cairooperator.rb | 7 +-
.../test/test_cairopathdatatype.rb | 7 +-
.../test/test_cairopatterntype.rb | 7 +-
.../test/test_cairoregion.rb | 7 +-
.../test/test_cairoregionoverlap.rb | 7 +-
.../test/test_cairoscaledfont.rb | 16 +-
.../test/test_cairostatus.rb | 7 +-
.../test/test_cairosubpixelorder.rb | 7 +-
.../test/test_cairosurfacetype.rb | 7 +-
.../test/test_cairotextclusterflags.rb | 7 +-
clutter-gstreamer/Rakefile | 3 +-
clutter-gstreamer/lib/clutter-gst.rb | 2 +-
clutter-gstreamer/sample/media-actions-pause.png | Bin 0 -> 2840 bytes
clutter-gstreamer/sample/media-actions-start.png | Bin 0 -> 3052 bytes
clutter-gstreamer/sample/vid-panel.png | Bin 0 -> 43222 bytes
clutter-gstreamer/sample/video-player.rb | 383 +++++++
clutter-gstreamer/sample/video-sink-navigation.rb | 99 ++
clutter-gstreamer/sample/video-sink.rb | 88 ++
clutter-gstreamer/test/run-test.rb | 12 +-
.../test/test-clutter-gst.rb | 7 +-
clutter-gtk/Rakefile | 1 +
clutter-gtk/lib/clutter-gtk.rb | 2 +-
clutter-gtk/test/run-test.rb | 31 +-
.../test/test-clutter-gtk-embed.rb | 5 +-
clutter/README.md | 2 +-
clutter/Rakefile | 8 +-
clutter/lib/clutter.rb | 2 +-
clutter/sample/easing-modes.rb | 4 +-
clutter/test/clutter-test-utils.rb | 7 +-
clutter/test/run-test.rb | 2 +
clutter/test/test-clutter-color.rb | 8 +
extconf.rb | 5 +
gdk3/COPYING.LIB | 20 +-
gdk3/Rakefile | 21 +-
gdk3/ext/gdk3/extconf.rb | 5 +-
gdk3/ext/gdk3/gdk3.def | 4 +-
gdk3/ext/gdk3/rbgdk.c | 56 +-
gdk3/ext/gdk3/rbgdk3.h | 10 +-
gdk3/ext/gdk3/rbgdk3conversions.h | 7 +-
gdk3/ext/gdk3/rbgdk3private.h | 7 +-
gdk3/ext/gdk3/rbgdkcairo.c | 4 -
gdk3/ext/gdk3/rbgdkdevice.c | 64 +-
.../ext/gdk3/rbgdkdevicemanager.c | 27 +-
gdk3/ext/gdk3/rbgdkdisplay.c | 71 +-
gdk3/ext/gdk3/rbgdkevent.c | 1040 ++++++++++++--------
gdk3/ext/gdk3/rbgdkwindow.c | 61 +-
gdk3/lib/gdk3/deprecated.rb | 14 +-
gdk3/patches/gdk+-3.10.6-remove-def-use.diff | 106 ++
gdk3/test/test-gdk-event.rb | 598 +++++++++++
gdk3/test/test-gdk-rgba.rb | 4 +-
gdk_pixbuf2/COPYING.LIB | 20 +-
gdk_pixbuf2/README | 2 +-
gdk_pixbuf2/Rakefile | 6 +-
gdk_pixbuf2/lib/gdk_pixbuf2.rb | 5 +
gio2/test/{load-test.rb => run-test.rb} | 1 +
gio2/test/test_bufferedinputstream.rb | 7 +
gio2/test/test_charsetconverter.rb | 7 +
gio2/test/test_datainputstream.rb | 2 +-
gio2/test/test_fileenumerator.rb | 2 +-
gio2/test/test_filemonitor.rb | 15 +
gio2/test/test_inetaddress.rb | 2 +-
glib2/COPYING.LIB | 20 +-
glib2/README | 8 +-
glib2/Rakefile | 41 +-
glib2/ext/glib2/extconf.rb | 3 +-
glib2/ext/glib2/glib2.def | 1 +
glib2/ext/glib2/rbglib.c | 11 +-
glib2/ext/glib2/rbglib.h | 8 +-
glib2/ext/glib2/rbglib_bookmarkfile.c | 5 -
glib2/ext/glib2/rbglib_error.c | 19 +-
.../ext/glib2/{rbglib_i18n.c => rbglib_gettext.c} | 32 +-
glib2/ext/glib2/rbglib_i18n.c | 4 -
glib2/ext/glib2/rbglib_keyfile.c | 20 -
glib2/ext/glib2/rbglib_maincontext.c | 14 -
glib2/ext/glib2/rbglib_source.c | 4 -
glib2/ext/glib2/rbglib_timer.c | 4 -
glib2/ext/glib2/rbglib_unichar.c | 8 -
glib2/ext/glib2/rbglib_utf8.c | 2 -
glib2/ext/glib2/rbglib_utils.c | 16 -
glib2/ext/glib2/rbglib_win32.c | 7 -
glib2/ext/glib2/rbgobj_object.c | 20 +-
glib2/ext/glib2/rbgobj_strv.c | 4 -
glib2/ext/glib2/rbgobj_typeinterface.c | 6 -
glib2/ext/glib2/rbgobj_value.c | 12 +
glib2/ext/glib2/rbgobject.c | 38 +-
glib2/ext/glib2/rbgobject.h | 1 +
glib2/ext/glib2/rbgprivate.h | 7 +-
glib2/lib/glib2.rb | 4 +
glib2/lib/gnome2/rake/external-package.rb | 23 +-
glib2/lib/gnome2/rake/native-binary-build-task.rb | 77 +-
glib2/lib/gnome2/rake/package-task.rb | 19 +-
glib2/lib/gnome2/rake/source-download-task.rb | 3 +-
glib2/lib/gnome2/rake/win32-binary-build-task.rb | 31 +-
glib2/lib/mkmf-gnome2.rb | 10 +-
glib2/patches/glib-2.38.2-add-missing-exeext.diff | 24 +
gobject-introspection/Rakefile | 7 +-
.../ext/gobject-introspection/rb-gi-argument.c | 219 ++++-
.../ext/gobject-introspection/rb-gi-loader.c | 9 +-
.../ext/gobject-introspection/rb-gi-struct-info.c | 2 +-
.../0001-Support-external-g-ir-scanner.patch | 12 +-
gobject-introspection/test/test-function-info.rb | 4 +-
goocanvas/README | 2 +-
goocanvas/Rakefile | 2 +-
goocanvas/sample/demo-animation.rb | 176 ++++
goocanvas/sample/demo-arrowhead.rb | 669 +++++++------
goocanvas/sample/demo-events.rb | 187 ++++
goocanvas/sample/demo-features.rb | 148 +++
goocanvas/sample/demo-fifteen.rb | 52 +-
goocanvas/sample/demo-focus.rb | 135 +++
goocanvas/sample/demo-primitives.rb | 7 +-
goocanvas/sample/demo.rb | 24 +-
gstreamer/COPYING.LIB | 20 +-
{clutter => gstreamer}/README.md | 14 +-
gstreamer/Rakefile | 107 +-
gstreamer/ext/gstreamer/rbgst-element-factory.c | 61 ++
gstreamer/ext/gstreamer/rbgst.c | 55 +-
.../ext/gstreamer/rbgst.h | 28 +-
gstreamer/lib/gst.rb | 56 +-
.../lib/gst/{base_loader.rb => base-loader.rb} | 0
.../lib/gst/{controller_loader.rb => caps.rb} | 7 +-
.../{controller_loader.rb => controller-loader.rb} | 0
.../lib/gst/{base_loader.rb => element-factory.rb} | 17 +-
gstreamer/lib/gst/element.rb | 5 +
.../lib/gst/{base_loader.rb => plugin-feature.rb} | 6 +-
gstreamer/lib/gst/{base_loader.rb => registry.rb} | 12 +-
gstreamer/lib/gst/{base_loader.rb => structure.rb} | 10 +-
gstreamer/patches/flac-1.2.1-fix-doc-install.diff | 11 -
gstreamer/patches/flac-1.2.1-fix-mingw-build.diff | 11 -
.../patches/libtheora-1.1.1-use-lf-in-def.diff | 158 +++
gstreamer/sample/gst-inspect.rb | 478 +++++++++
gtk2/COPYING.LIB | 20 +-
gtk2/README | 4 +-
gtk2/Rakefile | 8 +-
gtk2/ext/gtk2/extconf.rb | 7 +-
gtk2/ext/gtk2/global.h | 9 +-
gtk2/ext/gtk2/rbgdk.c | 17 +-
gtk2/ext/gtk2/rbgdkcairo.c | 8 -
gtk2/ext/gtk2/rbgdkcolormap.c | 4 -
gtk2/ext/gtk2/rbgdkcursor.c | 18 -
gtk2/ext/gtk2/rbgdkdisplay.c | 52 +-
gtk2/ext/gtk2/rbgdkdisplaymanager.c | 5 -
gtk2/ext/gtk2/rbgdkdragcontext.c | 13 -
gtk2/ext/gtk2/rbgdkdraw.c | 28 +-
gtk2/ext/gtk2/rbgdkevent.c | 955 ++++++++++++------
gtk2/ext/gtk2/rbgdkgc.c | 5 -
gtk2/ext/gtk2/rbgdkkeymap.c | 6 +-
gtk2/ext/gtk2/rbgdkpango.c | 5 -
gtk2/ext/gtk2/rbgdkpangorenderer.c | 6 -
gtk2/ext/gtk2/rbgdkpixbuf.c | 3 -
gtk2/ext/gtk2/rbgdkpixmap.c | 21 +-
gtk2/ext/gtk2/rbgdkproperty.c | 41 -
gtk2/ext/gtk2/rbgdkscreen.c | 22 -
gtk2/ext/gtk2/rbgdkselection.c | 13 -
gtk2/ext/gtk2/rbgdkvisual.c | 4 -
gtk2/ext/gtk2/rbgdkwindow.c | 73 +-
gtk2/ext/gtk2/rbgdkx11.c | 7 +-
gtk2/ext/gtk2/rbgtkaboutdialog.c | 5 -
gtk2/ext/gtk2/rbgtkaccelerator.c | 4 -
gtk2/ext/gtk2/rbgtkaccelgroup.c | 8 -
gtk2/ext/gtk2/rbgtkaccelmap.c | 15 -
gtk2/ext/gtk2/rbgtkaction.c | 14 -
gtk2/ext/gtk2/rbgtkactiongroup.c | 9 -
gtk2/ext/gtk2/rbgtkalignment.c | 4 -
gtk2/ext/gtk2/rbgtkassistant.c | 6 -
gtk2/ext/gtk2/rbgtkbbox.c | 4 -
gtk2/ext/gtk2/rbgtkbutton.c | 4 -
gtk2/ext/gtk2/rbgtkcalendar.c | 8 -
gtk2/ext/gtk2/rbgtkcelllayout.c | 5 -
gtk2/ext/gtk2/rbgtkcellrenderer.c | 8 -
gtk2/ext/gtk2/rbgtkcellrendereraccel.c | 6 -
gtk2/ext/gtk2/rbgtkcellrenderercombo.c | 6 -
gtk2/ext/gtk2/rbgtkcellrendererprogress.c | 6 -
gtk2/ext/gtk2/rbgtkcellrendererspin.c | 6 -
gtk2/ext/gtk2/rbgtkcellview.c | 5 -
gtk2/ext/gtk2/rbgtkclipboard.c | 48 -
gtk2/ext/gtk2/rbgtkcolorbutton.c | 6 -
gtk2/ext/gtk2/rbgtkcolorsel.c | 4 -
gtk2/ext/gtk2/rbgtkcombobox.c | 12 -
gtk2/ext/gtk2/rbgtkcomboboxentry.c | 6 -
gtk2/ext/gtk2/rbgtkconst.c | 2 -
gtk2/ext/gtk2/rbgtkdialog.c | 10 -
gtk2/ext/gtk2/rbgtkdrag.c | 24 -
gtk2/ext/gtk2/rbgtkentry.c | 4 -
gtk2/ext/gtk2/rbgtkentrycompletion.c | 10 -
gtk2/ext/gtk2/rbgtkexpander.c | 6 -
gtk2/ext/gtk2/rbgtkfilechooser.c | 10 -
gtk2/ext/gtk2/rbgtkfilechooserbutton.c | 6 -
gtk2/ext/gtk2/rbgtkfilechooserdialog.c | 8 -
gtk2/ext/gtk2/rbgtkfilechooserwidget.c | 6 -
gtk2/ext/gtk2/rbgtkfilefilter.c | 11 -
gtk2/ext/gtk2/rbgtkfilesystemerror.c | 2 -
gtk2/ext/gtk2/rbgtkfontbutton.c | 6 -
gtk2/ext/gtk2/rbgtkiconinfo.c | 5 -
gtk2/ext/gtk2/rbgtkiconsize.c | 4 -
gtk2/ext/gtk2/rbgtkicontheme.c | 11 -
gtk2/ext/gtk2/rbgtkiconview.c | 9 -
gtk2/ext/gtk2/rbgtkimage.c | 8 -
gtk2/ext/gtk2/rbgtkinvisible.c | 4 -
gtk2/ext/gtk2/rbgtklinkbutton.c | 5 -
gtk2/ext/gtk2/rbgtkliststore.c | 14 -
gtk2/ext/gtk2/rbgtkmenu.c | 12 -
gtk2/ext/gtk2/rbgtkmenubar.c | 2 -
gtk2/ext/gtk2/rbgtkmenushell.c | 4 -
gtk2/ext/gtk2/rbgtkmenutoolbutton.c | 5 -
gtk2/ext/gtk2/rbgtkmessagedialog.c | 4 -
gtk2/ext/gtk2/rbgtknotebook.c | 9 -
gtk2/ext/gtk2/rbgtkpagesetup.c | 5 -
gtk2/ext/gtk2/rbgtkpapersize.c | 6 -
gtk2/ext/gtk2/rbgtkprintcontext.c | 5 -
gtk2/ext/gtk2/rbgtkprintoperation.c | 5 -
gtk2/ext/gtk2/rbgtkprintoperationpreview.c | 5 -
gtk2/ext/gtk2/rbgtkprintsettings.c | 5 -
gtk2/ext/gtk2/rbgtkradioaction.c | 18 -
gtk2/ext/gtk2/rbgtkradiotoolbutton.c | 6 -
gtk2/ext/gtk2/rbgtkrange.c | 2 -
gtk2/ext/gtk2/rbgtkrc.c | 4 -
gtk2/ext/gtk2/rbgtkrecentchooser.c | 6 -
gtk2/ext/gtk2/rbgtkrecentchooserdialog.c | 5 -
gtk2/ext/gtk2/rbgtkrecentchoosermenu.c | 6 -
gtk2/ext/gtk2/rbgtkrecentchooserwidget.c | 5 -
gtk2/ext/gtk2/rbgtkrecentdata.c | 6 -
gtk2/ext/gtk2/rbgtkrecentfilter.c | 5 -
gtk2/ext/gtk2/rbgtkrecentfilterinfo.c | 6 -
gtk2/ext/gtk2/rbgtkrecentinfo.c | 5 -
gtk2/ext/gtk2/rbgtkrecentmanager.c | 5 -
gtk2/ext/gtk2/rbgtkscale.c | 6 -
gtk2/ext/gtk2/rbgtkscrolledwindow.c | 9 -
gtk2/ext/gtk2/rbgtkselection.c | 8 -
gtk2/ext/gtk2/rbgtkselectiondata.c | 16 +-
gtk2/ext/gtk2/rbgtkseparatortoolitem.c | 6 -
gtk2/ext/gtk2/rbgtksettings.c | 4 -
gtk2/ext/gtk2/rbgtksizegroup.c | 5 -
gtk2/ext/gtk2/rbgtkstatusicon.c | 5 -
gtk2/ext/gtk2/rbgtkstock.c | 38 -
gtk2/ext/gtk2/rbgtkstyle.c | 8 -
gtk2/ext/gtk2/rbgtktargetlist.c | 34 -
gtk2/ext/gtk2/rbgtktextbuffer.c | 12 -
gtk2/ext/gtk2/rbgtktextiter.c | 8 -
gtk2/ext/gtk2/rbgtktextview.c | 4 -
gtk2/ext/gtk2/rbgtktoggleaction.c | 7 -
gtk2/ext/gtk2/rbgtktoggletoolbutton.c | 6 -
gtk2/ext/gtk2/rbgtktoolbar.c | 6 -
gtk2/ext/gtk2/rbgtktoolbutton.c | 6 -
gtk2/ext/gtk2/rbgtktoolitem.c | 9 -
gtk2/ext/gtk2/rbgtktooltips.c | 4 -
gtk2/ext/gtk2/rbgtktreeiter.c | 4 -
gtk2/ext/gtk2/rbgtktreemodelfilter.c | 5 -
gtk2/ext/gtk2/rbgtktreemodelsort.c | 4 -
gtk2/ext/gtk2/rbgtktreerowreference.c | 4 -
gtk2/ext/gtk2/rbgtktreeselection.c | 4 -
gtk2/ext/gtk2/rbgtktreestore.c | 19 -
gtk2/ext/gtk2/rbgtktreeview.c | 24 -
gtk2/ext/gtk2/rbgtktreeviewcolumn.c | 10 -
gtk2/ext/gtk2/rbgtkuimanager.c | 6 -
gtk2/ext/gtk2/rbgtkwidget.c | 32 +-
gtk2/ext/gtk2/rbgtkwindow.c | 49 +-
gtk2/patches/gtk+-2.24.14-add-missing-exeext.diff | 33 -
gtk2/patches/gtk+-2.24.22-add-missing-exeext.diff | 35 +
gtk2/sample/gtk-demo/common.rb | 7 +-
gtk2/sample/gtk-demo/main.rb | 174 ++--
gtk2/test/test_gtk_icon_theme.rb | 17 +-
gtk3/COPYING.LIB | 20 +-
gtk3/README.md | 2 +-
gtk3/Rakefile | 1 -
gtk3/ext/gtk3/extconf.rb | 5 +-
gtk3/ext/gtk3/rbgtk-action-group.c | 3 +-
gtk3/ext/gtk3/rbgtk-binding-set.c | 10 -
gtk3/ext/gtk3/rbgtk-cell-renderer.c | 17 +-
gtk3/ext/gtk3/rbgtk-cell-view.c | 14 -
gtk3/ext/gtk3/rbgtk-container.c | 20 +-
gtk3/ext/gtk3/rbgtk-file-chooser.c | 11 +-
gtk3/ext/gtk3/rbgtk-icon-info.c | 4 +-
gtk3/ext/gtk3/rbgtk-style-properties.c | 25 +-
gtk3/ext/gtk3/rbgtk-style-provider.c | 25 +-
gtk3/ext/gtk3/rbgtk-widget.c | 32 +-
gtk3/ext/gtk3/rbgtk.c | 37 +-
gtk3/ext/gtk3/rbgtk3conversions.h | 11 +-
gtk3/ext/gtk3/rbgtk3private.h | 8 +-
gtk3/lib/gtk3/deprecated.rb | 5 +-
gtk3/sample/gtk-demo/colorsel.rb | 48 +-
gtk3/sample/gtk-demo/common.rb | 16 +-
gtk3/sample/gtk-demo/css_accordion.css | 53 +
gtk3/sample/gtk-demo/css_accordion.rb | 75 ++
gtk3/sample/gtk-demo/main.rb | 166 ++--
gtk3/sample/gtk-demo/reset.css | 69 ++
gtk3/test/test_gc.rb | 2 +-
.../controller_loader.rb => gtk3/test/test_gtk.rb | 7 +-
gtk3/test/test_gtk_about_dialog.rb | 1 -
gtk3/test/test_gtk_buildable.rb | 16 +-
gtk3/test/test_gtk_builder.rb | 28 +-
.../test/test_gtk_container.rb | 20 +-
.../test/test_gtk_css_provider.rb | 11 +-
gtk3/test/test_gtk_entry.rb | 2 -
gtk3/test/test_gtk_icon_theme.rb | 21 +-
gtk3/test/test_gtk_image.rb | 4 +-
gtk3/test/test_gtk_list_store.rb | 4 -
gtk3/test/test_gtk_rc_style.rb | 14 -
.../test/test_gtk_style_context.rb | 18 +-
.../test/test_gtk_style_properties.rb | 40 +-
gtk3/test/test_gtk_widget.rb | 14 +-
gtksourceview2/COPYING.LIB | 20 +-
gtksourceview2/README | 2 +-
gtksourceview2/ext/gtksourceview2/extconf.rb | 5 +-
.../ext/gtksourceview2/rbgtksourcemain.c | 11 -
.../ext/gtksourceview2/rbgtksourcemain.h | 13 +
gtksourceview3/COPYING.LIB | 20 +-
gtksourceview3/README | 29 -
{gtk3 => gtksourceview3}/README.md | 13 +-
gtksourceview3/Rakefile | 17 +-
gtksourceview3/ext/gtksourceview3/extconf.rb | 9 +-
pango/COPYING.LIB | 20 +-
pango/README | 4 +-
pango/Rakefile | 12 +-
pango/ext/pango/extconf.rb | 8 +-
pango/ext/pango/rbpango.c | 9 -
pango/ext/pango/rbpango.h | 12 +-
pango/ext/pango/rbpangoanalysis.c | 4 -
pango/ext/pango/rbpangoattribute.c | 27 +-
pango/ext/pango/rbpangoattrlist.c | 4 -
pango/ext/pango/rbpangocairo.c | 25 +-
pango/ext/pango/rbpangocairocontext.c | 32 +-
pango/ext/pango/rbpangocontext.c | 16 +-
pango/ext/pango/rbpangofont.c | 12 -
pango/ext/pango/rbpangofontdescription.c | 5 -
pango/ext/pango/rbpangofontface.c | 6 -
pango/ext/pango/rbpangofontfamily.c | 3 -
pango/ext/pango/rbpangofontmap.c | 4 -
pango/ext/pango/rbpangofontmetrics.c | 5 +-
pango/ext/pango/rbpangofontset.c | 4 -
pango/ext/pango/rbpangoglyphitem.c | 8 -
pango/ext/pango/rbpangoglyphstring.c | 4 -
pango/ext/pango/rbpangoitem.c | 16 -
pango/ext/pango/rbpangolanguage.c | 5 -
pango/ext/pango/rbpangolayout.c | 55 +-
pango/ext/pango/rbpangolayoutline.c | 33 -
pango/ext/pango/rbpangologattr.c | 5 -
pango/ext/pango/rbpangomatrix.c | 10 -
pango/ext/pango/rbpangoprivate.h | 4 -
pango/ext/pango/rbpangorenderer.c | 6 -
pango/ext/pango/rbpangoscript.c | 4 -
pango/ext/pango/rbpangoscriptiter.c | 5 -
.../patches/harfbuzz-0.9.17-disable-uniscribe.diff | 12 -
pango/test/{test_layout.rb => test-layout.rb} | 14 +
poppler/COPYING.LIB | 20 +-
poppler/README | 2 +-
poppler/Rakefile | 78 +-
poppler/ext/poppler/extconf.rb | 7 +-
poppler/ext/poppler/rbpoppler-action.c | 328 ++++--
...tline.c => rbpoppler-annotation-callout-line.c} | 5 +-
...freetext.c => rbpoppler-annotation-free-text.c} | 5 +-
...ionmapping.c => rbpoppler-annotation-mapping.c} | 5 +-
...ationmarkup.c => rbpoppler-annotation-markup.c} | 9 +-
...nnotationtext.c => rbpoppler-annotation-text.c} | 9 +-
...pler-buttonfield.c => rbpoppler-button-field.c} | 0
...pler-choicefield.c => rbpoppler-choice-field.c} | 0
...{rbpoppler-fontinfo.c => rbpoppler-font-info.c} | 10 +-
...bpoppler-fontsiter.c => rbpoppler-fonts-iter.c} | 11 +-
...eldmapping.c => rbpoppler-form-field-mapping.c} | 5 +-
...er-imagemapping.c => rbpoppler-image-mapping.c} | 9 +-
...bpoppler-indexiter.c => rbpoppler-index-iter.c} | 5 +-
...pler-linkmapping.c => rbpoppler-link-mapping.c} | 5 +-
...agetransition.c => rbpoppler-page-transition.c} | 5 +-
poppler/ext/poppler/rbpoppler-page.c | 29 -
poppler/ext/poppler/rbpoppler-private.h | 26 +-
.../{rbpoppler-psfile.c => rbpoppler-ps-file.c} | 5 +-
...bpoppler-textfield.c => rbpoppler-text-field.c} | 0
poppler/ext/poppler/rbpoppler.c | 36 +-
poppler/ext/poppler/rbpoppler.h | 9 +-
poppler/ext/poppler/rbpopplerconversions.h | 2 +-
poppler/sample/pdf2.rb | 56 +-
poppler/test/fixtures/image.png | Bin 30803 -> 32770 bytes
poppler/test/run-test.rb | 11 +-
poppler/test/test_page.rb | 1 +
rsvg2/COPYING.LIB | 20 +-
rsvg2/Rakefile | 70 +-
rsvg2/ext/rsvg2/extconf.rb | 5 +-
...rsvg-2.40.1-replace-canonicalize-file-name.diff | 75 ++
run-test.rb | 7 +-
vte/COPYING.LIB | 20 +-
vte3/COPYING.LIB | 20 +-
vte3/README | 34 -
{gtk3 => vte3}/README.md | 11 +-
vte3/Rakefile | 1 -
vte3/sample/terminal.rb | 2 +-
webkit-gtk/Rakefile | 121 ++-
.../patches/libxslt-1.1.28-add-mkdir-fallback.diff | 11 +
webkit-gtk/patches/webkitgtk-2.2.3-buildable.diff | 63 ++
webkit-gtk/test/run-test.rb | 2 +
webkit-gtk2/test/run-test.rb | 2 +
419 files changed, 7421 insertions(+), 4206 deletions(-)
diff --git a/COPYING.LIB b/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/COPYING.LIB
+++ b/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/NEWS b/NEWS
index 153dabe..fa11b8c 100644
--- a/NEWS
+++ b/NEWS
@@ -2,6 +2,212 @@
= NEWS
+== Ruby-GNOME2 2.1.0: 2013-12-29
+
+Ruby 2.1.0 support release!
+
+=== Changes
+
+==== All
+
+ * Improvements
+ * Set license information to gem.
+ * Fixes
+ * [windows] Added missing binaries for Ruby 2.1.0.
+ [GitHub#123] [Patch by Masafumi Yokoyama]
+
+==== Ruby/GDK3
+
+ * Improvements
+ * [windows] Bundled hicolor-icon-theme. It may fix a problem that
+ Windows theme is not applied.
+ [ruby-gnome2-devel-en] [Reported by Regis d'Aubarede]
+
+=== Thanks
+
+ * Masafumi Yokoyama
+ * Regis d'Aubarede
+
+== Ruby-GNOME2 2.0.3: 2013-12-29
+
+It is RC release for 2.1.0.
+
+=== Changes
+
+==== All
+
+ * Improvements
+ * Removed Ruby 1.8 from supported Ruby in READMEs.
+ [GitHub#166] [Reported by Markus Heiler] [Patch by Masafumi Yokoyama]
+ * Supported Ruby 2.1.0. [GitHub#181] [cosmo0920][Masafumi Yokoyama]
+ * Made rcairo optional to required because we dropped old GTK+ that
+ doesn't use cairo. (Cairo isn't used library such as GLib doesn't
+ require rcairo. But Ruby/GLib2 requires rcairo on Windows because
+ it uses zlib bundled in rcairo.) [GitHub#193] [cosmo0920]
+ * Updated LGPL 2.1 files. [GitHub#196] [Reported by ktdreyer]
+ * Supported tests on Travis CI. [Masafumi Yokoyama][cosmo0920]
+ * Supported rake-compiler 0.9.1.
+
+==== Ruby/GLib2
+
+ * Improvements
+ * Set UTF-8 encoding to exception message.
+ * Added GLib::GetText.bindtextdomain.
+ * Dropped GLib < 2.12 because CentOS 5 has GLib 2.12.3.
+ [GitHub#190] [cosmo0920]
+ * Added GValue#to_s.
+ * [windows] Updated bundled GLib to 2.38.2 from 2.36.2.
+
+==== Ruby/GObjectIntrospection
+
+ * Improvements
+ * Supported GList return type.
+ * Supported freeing UTF-8 return type.
+ * Supported freeing array return type.
+ * Supported NULL as array return value.
+ * Supported freeing GObject return value.
+ * Supported freeing structure return value.
+ * Supported NULL character for gint8 array.
+ * Fixes
+ * Fixed type conversion from VALUE to GType.
+ [GitHub#186] [Patch by Hiroyuki Tanaka]
+
+==== Ruby/ATK
+
+ * Improvements
+ * Dropped ATK < 1.12 support because CentOS 5 has GTK+ 1.12.2.
+ [GitHub#191] [cosmo0920]
+ * [windows] Updated bundled ATK to 2.10.0 from 2.8.0.
+
+==== Ruby/Pango
+
+ * Improvements
+ * Supported cairo 1.6.
+ [GitHub#172] [Patch by Grant Schoep]
+ * Dropped Pango < 1.14 support because CentOS 5 has GTK+ 1.14.9.
+ [GitHub#192] [cosmo0920]
+ * Added Pango::Layout#height=.
+ [GitHub#210] [Patch by Vasily Fedoseyev]
+ * Added Pango::Layout#ellipsized?.
+ [GitHub#210] [Patch by Vasily Fedoseyev]
+ * [windows] Updated bundled Pango to 1.36.1 from 1.34.1.
+
+==== Ruby/GdkPixbuf2
+
+ * Improvements
+ * [windows] Added rcairo dependency on Windows for using libpng and zlib
+ bundled in rcairo.
+ * [windows] Updated bundled gdk-pixbuf to 2.30.2 from 2.28.1.
+
+==== Ruby/GTK2
+
+ * Improvements
+ * Dropped GTK+ < 2.10 support because CentOS 5 has GTK+ 2.10.4.
+ [GitHub#182] [Patch by cosmo0920]
+ * [windows] Updated bundled GTK+ to 2.24.22 from 2.24.18.
+
+==== Ruby/GDK3
+
+ * Improvements
+ * [test] Made more stable. [GitHub#178] [Reported by mtasaka]
+ * Added Gdk::Device#ungrab. [cosmo0920]
+ * Added Gdk::DeviceManager. [cosmo0920]
+ * Added Gdk::Device#get_position. [cosmo0920]
+ * Added Gdk::Device#warp. [cosmo0920]
+ * Added Gdk::Device#grab. [cosmo0920]
+ * Added Gdk::Window#get_device_position. [cosmo0920]
+ * [windows] Updated bundled GTK+ to 3.10.6 from 3.8.2.
+
+==== Ruby/GTK3
+
+ * Improvements
+ * [sample] Updated for GTK+ 3. [Masafumi Yokoyama]
+ * Removed Gtk::BindingSet#add_path.
+ * Added Gtk.show_uri.
+ * Fixes
+ * Fixed a bug that Gtk::ActionGroup#add_radio_actions always fails.
+ [ruby-gnome2-devel-ja] [Reported by S. Kitagawa]
+
+==== Ruby/GStreamer
+
+ * Improvements
+ * Supported calling module functions of Gst module such as
+ Gst.version before calling Gst.init.
+ * Added Gst::Registry#plugins.
+ * Added Gst::Registry#get_features.
+ * Added Gst::ElementFactory#long_name.
+ * Added Gst::ElementFactory#klass.
+ * Added Gst::ElementFactory#author.
+ * Added Gst::ElementFactory#static_pad_templates.
+ * Added Gst::Caps#structures.
+ * Added Gst::Structure#fields.
+ * Gst::Element#flags returns flag object instead of raw integer value.
+ Use Gst::Element#flags_raw for raw integer value.
+ * Gst::PluginFeature#rank returns Gst::Rank instead of raw integer value.
+ Use Gst::PluginFeature#rank for raw integer value.
+ * Supported GstValueList.
+ * [windows] Updated bundled GStreamer to 1.2.1 from 1.0.7.
+
+==== Ruby/Clutter
+
+ * Improvements
+ * [sample] Updated for Clutter 1.12 or later.
+ [Patch by Kentaro Fukuchi]
+ * [windows] Updated bundled Clutter to 1.16.2 from 1.14.4.
+
+==== Ruby/ClutterGStreamer
+
+ * Improvements
+ * [sample] Added.
+ [Masafumi Yokoyama]
+ * Fixed a typo in sample.
+ [Reported by Toyo Abe]
+ * [windows] Updated bundled Clutter-GStreamer to 2.0.8 from 2.0.2.
+
+==== Ruby/Poppler
+
+ * Improvements
+ * Dropped Popper < 0.12 because CentOS has Poppler 0.12.4.
+ [GitHub#212] [cosmo0920]
+ * [windows] Bundled Poppler 0.24.4.
+
+==== Ruby/RSVG
+
+ * Improvements
+ * [windows] Bundled librsvg 2.40.1.
+
+==== Ruby/GtkSourceView3
+
+ * Improvements
+ * Supported auto GtkSourceView install on OS X.
+ [GitHub#177] [Masafumi Yokoyama]
+ * [windows] Updated bundled GtkSourceView to 3.10.1 from 3.8.1.
+
+==== Ruby/GooCanvas
+
+ * Improvements
+ * [sample] Followed changes caused by migrating to
+ Ruby/GObjectIntrospection.
+ [Masafumi Yokoyama]
+ * Updated FSF address.
+ [GitHub#201] [Reported by ktdreyer]
+ * Fixes
+ * Fixed wrong dependency.
+ [ruby-gnomde2-devel-ja] [Reported by Masafumi Yokoyama]
+
+=== Thanks
+
+ * Kentaro Fukuchi
+ * S. Kitagawa
+ * Markus Heiler
+ * Masafumi Yokoyama
+ * Grant Schoep
+ * Toyo Abe
+ * mtasaka
+ * cosmo0920
+ * Hiroyuki Tanaka
+ * ktdreyer
+
== Ruby-GNOME2 2.0.2: 2013-05-26
Windows XP re-supportted release!
diff --git a/README b/README
index 013a2be..726bee5 100644
--- a/README
+++ b/README
@@ -5,17 +5,17 @@
== Ruby-GNOME2 -- Ruby bindings for GNOME-2.x
This is a set of bindings for the GNOME-2.x and GNOME-3.x libraries to
-use from Ruby 1.8.6, 1.8.7, 1.9.x and 2.0.0.
+use from Ruby 1.9.x and 2.0.0.
== Release packages
=== ruby-gtk2
- * Ruby/GLib2: GLib 2.0.x or later
- * Ruby/ATK: ATK 1.0.x or later
- * Ruby/Pango: Pango 1.1.x or later
+ * Ruby/GLib2: GLib 2.12.x or later
+ * Ruby/ATK: ATK 1.12.x or later
+ * Ruby/Pango: Pango 1.14.x or later
* Ruby/GdkPixbuf2: GTK+ 2.0.x or later
- * Ruby/GTK2: GTK+ 2.0.x or later
+ * Ruby/GTK2: GTK+ 2.10.x or later
* Ruby/GObjectIntrospection: GObject Introspection 1.32.1 or later
=== ruby-gtk3
@@ -203,4 +203,3 @@ the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
== Project Website
((<URL:http://ruby-gnome2.sourceforge.jp/>))
-
diff --git a/Rakefile b/Rakefile
index 220b6ba..342c29f 100644
--- a/Rakefile
+++ b/Rakefile
@@ -4,8 +4,6 @@ require "pathname"
require "tmpdir"
require "open-uri"
-repository_base_url = "https://ruby-gnome2.svn.sourceforge.net/svnroot/ruby-gnome2/ruby-gnome2"
-
task :default => :test
def version
@@ -158,7 +156,7 @@ namespace :dist do
package(gnome2_base_name, base_files + gnome2_packages)
end
- ruby_versions = ["1.9.3-p392", "2.0.0-p0"]
+ ruby_versions = ["1.9.3-p484", "2.0.0-p353", "2.1.0"]
namespace :test do
ruby_base_url = "ftp://ftp.ruby-lang.org/pub/ruby"
ruby_versions.each do |ruby_version|
@@ -189,7 +187,7 @@ namespace :dist do
end
end
- rubygems_tgz_base = "rubygems-1.8.24.tgz"
+ rubygems_tgz_base = "rubygems-2.1.11.tgz"
rubygems_tgz = "#{base_dir}/#{rubygems_tgz_base}"
file rubygems_tgz => base_dir do
rubygems_url_base = "http://production.cf.rubygems.org/rubygems"
@@ -371,7 +369,7 @@ namespace :gem do
"native",
"gem",
]
- ruby("-S", "rake", "RUBY_CC_VERSION=1.9.3:2.0.0", *tasks)
+ ruby("-S", "rake", "RUBY_CC_VERSION=1.9.3:2.0.0:2.1.0", *tasks)
end
end
end
diff --git a/atk/COPYING.LIB b/atk/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/atk/COPYING.LIB
+++ b/atk/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/atk/README b/atk/README
index 035808f..da499d3 100644
--- a/atk/README
+++ b/atk/README
@@ -1,6 +1,6 @@
Ruby/ATK
===============
-Ruby/ATK is a Ruby binding of ATK-1.0.x or later.
+Ruby/ATK is a Ruby binding of ATK-1.12.x or later.
Requirements
------------
@@ -11,7 +11,7 @@ Requirements
Install
-------
- 0. install ruby-1.6.x or later, GLib, ATK, Ruby/GLib2.
+ 0. install ruby-1.9.x or later, GLib, ATK, Ruby/GLib2.
1. ruby extconf.rb
2. make
3. su
diff --git a/atk/Rakefile b/atk/Rakefile
index 2a58ec7..c4122a5 100644
--- a/atk/Rakefile
+++ b/atk/Rakefile
@@ -15,13 +15,14 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
:name => "atk",
:download_site => :gnome,
:label => "atk",
- :version => "2.8.0",
+ :version => "2.10.0",
:compression_method => "xz",
:windows => {
:configure_args => [
"--enable-introspection",
],
:build_concurrently => false,
+ :built_file => "bin/libatk-1.0-0.dll",
},
}
]
diff --git a/atk/ext/atk/extconf.rb b/atk/ext/atk/extconf.rb
index 39d77dc..cefad32 100644
--- a/atk/ext/atk/extconf.rb
+++ b/atk/ext/atk/extconf.rb
@@ -44,7 +44,7 @@ end
setup_win32(module_name, base_dir)
-unless required_pkg_config_package(package_id,
+unless required_pkg_config_package([package_id, 1, 12, 0],
:debian => "libatk1.0-dev",
:redhat => "atk-devel",
:homebrew => "atk",
diff --git a/atk/ext/atk/rbatkcomponent.c b/atk/ext/atk/rbatkcomponent.c
index 2d28624..225f8cd 100644
--- a/atk/ext/atk/rbatkcomponent.c
+++ b/atk/ext/atk/rbatkcomponent.c
@@ -142,13 +142,11 @@ rg_set_size(VALUE self, VALUE width, VALUE height)
return self;
}
-#if ATK_CHECK_VERSION(1,12,0)
static VALUE
rg_alpha(VALUE self)
{
return rb_float_new(atk_component_get_alpha(_SELF(self)));
}
-#endif
void
Init_atk_component(VALUE mAtk)
@@ -173,7 +171,5 @@ Init_atk_component(VALUE mAtk)
RG_DEF_METHOD(set_extents, 5);
RG_DEF_METHOD(set_position, 2);
RG_DEF_METHOD(set_size, 2);
-#if ATK_CHECK_VERSION(1,12,0)
RG_DEF_METHOD(alpha, 0);
-#endif
}
diff --git a/atk/ext/atk/rbatkdocument.c b/atk/ext/atk/rbatkdocument.c
index b8b31b9..84187dc 100644
--- a/atk/ext/atk/rbatkdocument.c
+++ b/atk/ext/atk/rbatkdocument.c
@@ -39,7 +39,6 @@ rg_document(VALUE self)
}
*/
-#if ATK_CHECK_VERSION(1,12,0)
static VALUE
rg_get_attribute_value(VALUE self, VALUE name)
{
@@ -78,7 +77,6 @@ rg_locale(VALUE self)
{
return CSTR2RVAL(atk_document_get_locale(_SELF(self)));
}
-#endif
void
Init_atk_document(VALUE mAtk)
@@ -89,12 +87,10 @@ Init_atk_document(VALUE mAtk)
/*
RG_DEF_METHOD(document, 0);
*/
-#if ATK_CHECK_VERSION(1,12,0)
RG_DEF_METHOD(get_attribute_value, 1);
RG_DEF_ALIAS("[]", "get_attribute_value");
RG_DEF_METHOD(set_attribute_value, 2);
RG_DEF_ALIAS("[]=", "set_attribute_value");
RG_DEF_METHOD(attributes, 0);
RG_DEF_METHOD(locale, 0);
-#endif
}
diff --git a/atk/ext/atk/rbatkrelation.c b/atk/ext/atk/rbatkrelation.c
index 51e1974..57f63fa 100644
--- a/atk/ext/atk/rbatkrelation.c
+++ b/atk/ext/atk/rbatkrelation.c
@@ -79,14 +79,12 @@ rg_initialize(VALUE self, VALUE targets, VALUE rbrelationship)
return Qnil;
}
-#if ATK_CHECK_VERSION(1,9,0)
static VALUE
rg_add_target(VALUE self, VALUE obj)
{
atk_relation_add_target(_SELF(self), RVAL2ATKOBJECT(obj));
return self;
}
-#endif
void
Init_atk_relation(VALUE mAtk)
@@ -94,9 +92,7 @@ Init_atk_relation(VALUE mAtk)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_RELATION, "Relation", mAtk);
RG_DEF_SMETHOD(type_register, 1);
RG_DEF_METHOD(initialize, 2);
-#if ATK_CHECK_VERSION(1,9,0)
RG_DEF_METHOD(add_target, 1);
-#endif
Init_atk_relation_type(RG_TARGET_NAMESPACE);
}
diff --git a/atk/ext/atk/rbatkrelationset.c b/atk/ext/atk/rbatkrelationset.c
index 55da840..7acfcb0 100644
--- a/atk/ext/atk/rbatkrelationset.c
+++ b/atk/ext/atk/rbatkrelationset.c
@@ -71,7 +71,6 @@ rg_get_relation(VALUE self, VALUE i)
}
}
-#if ATK_CHECK_VERSION(1,9,0)
static VALUE
rg_add_relation(VALUE self, VALUE relationship, VALUE obj)
{
@@ -80,7 +79,6 @@ rg_add_relation(VALUE self, VALUE relationship, VALUE obj)
RVAL2ATKOBJECT(obj));
return self;
}
-#endif
void
Init_atk_relation_set(VALUE mAtk)
@@ -93,7 +91,5 @@ Init_atk_relation_set(VALUE mAtk)
RG_DEF_METHOD(add, 1);
RG_DEF_METHOD(n_relations, 0);
RG_DEF_METHOD(get_relation, 1);
-#if ATK_CHECK_VERSION(1,9,0)
RG_DEF_METHOD(add_relation, 2);
-#endif
}
diff --git a/atk/ext/atk/rbatkutil.c b/atk/ext/atk/rbatkutil.c
index 23fe7e6..54d3043 100644
--- a/atk/ext/atk/rbatkutil.c
+++ b/atk/ext/atk/rbatkutil.c
@@ -77,13 +77,11 @@ rg_s_root(G_GNUC_UNUSED VALUE self)
return GOBJ2RVAL(atk_get_root());
}
-#if ATK_CHECK_VERSION(1,6,0)
static VALUE
rg_s_focus_object(G_GNUC_UNUSED VALUE self)
{
return GOBJ2RVAL(atk_get_focus_object());
}
-#endif
static VALUE
rg_s_toolkit_name(G_GNUC_UNUSED VALUE self)
@@ -109,9 +107,7 @@ Init_atk_util(VALUE mAtk)
RG_DEF_SMETHOD(remove_key_event_listener, 1);
RG_DEF_SMETHOD(root, 0);
-#if ATK_CHECK_VERSION(1,6,0)
RG_DEF_SMETHOD(focus_object, 0);
-#endif
RG_DEF_SMETHOD(toolkit_name, 0);
RG_DEF_SMETHOD(toolkit_version, 0);
diff --git a/cairo-gobject/ext/cairo-gobject/extconf.rb b/cairo-gobject/ext/cairo-gobject/extconf.rb
index 9846c19..c54e55a 100755
--- a/cairo-gobject/ext/cairo-gobject/extconf.rb
+++ b/cairo-gobject/ext/cairo-gobject/extconf.rb
@@ -66,7 +66,10 @@ rcairo_source_dir_names.each do |rcairo_source_dir_name|
break
end
end
-check_cairo(rcairo_options)
+
+unless check_cairo(rcairo_options)
+ exit(false)
+end
setup_win32(module_name, base_dir)
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairoantialias.rb
similarity index 81%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairoantialias.rb
index fb56999..328c6b8 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairoantialias.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCaitoAntialias < Test::Unit::TestCase
+ def test_cairo_antialias
+ assert_nothing_raised do
+ CairoGObject::Antialias.new(CairoGObject::Antialias::DEFAULT)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairocontent.rb
similarity index 82%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairocontent.rb
index fb56999..64e3266 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairocontent.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoContent < Test::Unit::TestCase
+ def test_cairo_content
+ assert_nothing_raised do
+ CairoGObject::Content.new(CairoGObject::Content::COLOR)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairocontext.rb
similarity index 78%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairocontext.rb
index fb56999..7166174 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairocontext.rb
@@ -14,7 +14,11 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoContext < Test::Unit::TestCase
+ def test_cairo_context
+ assert_nothing_raised do
+ surface = Cairo::ImageSurface.new(Cairo::Format::ARGB32, 290, 200)
+ Cairo::Context.new(surface)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairodevicetype.rb
similarity index 81%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairodevicetype.rb
index fb56999..6ee28d0 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairodevicetype.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoDeviceType < Test::Unit::TestCase
+ def test_cairo_device_type
+ assert_nothing_raised do
+ CairoGObject::DeviceType.new(CairoGObject::DeviceType::GL)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairoextend.rb
similarity index 82%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairoextend.rb
index fb56999..f4a1b0c 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairoextend.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoExtend < Test::Unit::TestCase
+ def test_cairo_extend
+ assert_nothing_raised do
+ CairoGObject::Extend.new(CairoGObject::Extend::REPEAT)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairofillrule.rb
similarity index 81%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairofillrule.rb
index fb56999..1802c7a 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairofillrule.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoFullRule < Test::Unit::TestCase
+ def test_cairo_fill_rule
+ assert_nothing_raised do
+ CairoGObject::FillRule.new(CairoGObject::FillRule::WINDING)
+ end
end
end
diff --git a/gstreamer/lib/gst/controller_loader.rb b/cairo-gobject/test/test_cairofilter.rb
similarity index 82%
copy from gstreamer/lib/gst/controller_loader.rb
copy to cairo-gobject/test/test_cairofilter.rb
index 37bd503..30216ba 100644
--- a/gstreamer/lib/gst/controller_loader.rb
+++ b/cairo-gobject/test/test_cairofilter.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class ControllerLoader < GObjectIntrospection::Loader
+class TestCairoFilter < Test::Unit::TestCase
+ def test_cairo_filter
+ assert_nothing_raised do
+ CairoGObject::Filter.new(Cairo::Filter::GAUSSIAN)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairofontslant.rb
similarity index 81%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairofontslant.rb
index fb56999..acbf911 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairofontslant.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoFontSlant < Test::Unit::TestCase
+ def test_cairo_font_slant
+ assert_nothing_raised do
+ CairoGObject::FontSlant.new(Cairo::FontSlant::NORMAL)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairofonttype.rb
similarity index 82%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairofonttype.rb
index fb56999..f4f27d6 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairofonttype.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoFontType < Test::Unit::TestCase
+ def test_caito_font_type
+ assert_nothing_raised do
+ CairoGObject::FontType.new(CairoGObject::FontType::FT)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairofontweight.rb
similarity index 81%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairofontweight.rb
index fb56999..83cf277 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairofontweight.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCaitoFontWeight < Test::Unit::TestCase
+ def test_cairo_font_weight
+ assert_nothing_raised do
+ CairoGObject::FontWeight.new(Cairo::FontWeight::BOLD)
+ end
end
end
diff --git a/gstreamer/lib/gst/controller_loader.rb b/cairo-gobject/test/test_cairoformat.rb
similarity index 83%
copy from gstreamer/lib/gst/controller_loader.rb
copy to cairo-gobject/test/test_cairoformat.rb
index 37bd503..c88e5e9 100644
--- a/gstreamer/lib/gst/controller_loader.rb
+++ b/cairo-gobject/test/test_cairoformat.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class ControllerLoader < GObjectIntrospection::Loader
+class TestCairoFormat < Test::Unit::TestCase
+ def test_cairo_format
+ assert_nothing_raised do
+ CairoGObject::Format.new(Cairo::Format::RGB24)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairohintmetrics.rb
similarity index 81%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairohintmetrics.rb
index fb56999..c1b2bd6 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairohintmetrics.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoHintMetrics < Test::Unit::TestCase
+ def test_cairo_hint_metrics
+ assert_nothing_raised do
+ CairoGObject::HintMetrics.new(Cairo::HintMetrics::ON)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairohintstyle.rb
similarity index 82%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairohintstyle.rb
index fb56999..02fe4f2 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairohintstyle.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoHintStyle < Test::Unit::TestCase
+ def test_cairo_hintstyle
+ assert_nothing_raised do
+ CairoGObject::HintStyle.new(Cairo::HintStyle::MEDIUM)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairoimagesurface.rb
similarity index 81%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairoimagesurface.rb
index fb56999..973bf85 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairoimagesurface.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoImageSurface < Test::Unit::TestCase
+ def test_cairo_image_surface
+ assert_nothing_raised do
+ Cairo::ImageSurface.new(Cairo::Format::ARGB32, 290, 200)
+ end
end
end
diff --git a/gstreamer/lib/gst/controller_loader.rb b/cairo-gobject/test/test_cairolinecap.rb
similarity index 83%
copy from gstreamer/lib/gst/controller_loader.rb
copy to cairo-gobject/test/test_cairolinecap.rb
index 37bd503..43a3bc7 100644
--- a/gstreamer/lib/gst/controller_loader.rb
+++ b/cairo-gobject/test/test_cairolinecap.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class ControllerLoader < GObjectIntrospection::Loader
+class TestLineCap < Test::Unit::TestCase
+ def test_cairo_linecap
+ assert_nothing_raised do
+ CairoGObject::LineCap.new(Cairo::LineCap::ROUND)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairolinejoin.rb
similarity index 82%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairolinejoin.rb
index fb56999..b6b0d8f 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairolinejoin.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoLineJoin < Test::Unit::TestCase
+ def test_cairo_linejoin
+ assert_nothing_raised do
+ CairoGObject::LineJoin.new(Cairo::LineJoin::ROUND)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairooperator.rb
similarity index 82%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairooperator.rb
index fb56999..b213917 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairooperator.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoOperator < Test::Unit::TestCase
+ def test_cairo_operator
+ assert_nothing_raised do
+ CairoGObject::Operator.new(Cairo::Operator::OVER)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairopathdatatype.rb
similarity index 80%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairopathdatatype.rb
index fb56999..693f760 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairopathdatatype.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoPathDataType < Test::Unit::TestCase
+ def test_cairo_path_data_type
+ assert_nothing_raised do
+ CairoGObject::PathDataType.new(Cairo::PathDataType::LINE_TO)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairopatterntype.rb
similarity index 80%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairopatterntype.rb
index fb56999..816cad9 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairopatterntype.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoPatternType < Test::Unit::TestCase
+ def test_caito_pattern_type
+ assert_nothing_raised do
+ CairoGObject::PatternType.new(CairoGObject::PatternType::LINEAR)
+ end
end
end
diff --git a/gstreamer/lib/gst/controller_loader.rb b/cairo-gobject/test/test_cairoregion.rb
similarity index 85%
copy from gstreamer/lib/gst/controller_loader.rb
copy to cairo-gobject/test/test_cairoregion.rb
index 37bd503..1f44724 100644
--- a/gstreamer/lib/gst/controller_loader.rb
+++ b/cairo-gobject/test/test_cairoregion.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class ControllerLoader < GObjectIntrospection::Loader
+class TestCairoRegion < Test::Unit::TestCase
+ def test_cairo_region
+ assert_nothing_raised do
+ Cairo::Region.new
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairoregionoverlap.rb
similarity index 80%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairoregionoverlap.rb
index fb56999..7a65509 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairoregionoverlap.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoRegionOverlap < Test::Unit::TestCase
+ def test_cairo_regin_overlap
+ assert_nothing_raised do
+ CairoGObject::RegionOverlap.new(Cairo::RegionOverlap::PART)
+ end
end
end
diff --git a/gstreamer/lib/gst/controller_loader.rb b/cairo-gobject/test/test_cairoscaledfont.rb
similarity index 61%
copy from gstreamer/lib/gst/controller_loader.rb
copy to cairo-gobject/test/test_cairoscaledfont.rb
index 37bd503..687132f 100644
--- a/gstreamer/lib/gst/controller_loader.rb
+++ b/cairo-gobject/test/test_cairoscaledfont.rb
@@ -14,7 +14,19 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class ControllerLoader < GObjectIntrospection::Loader
+class TestCairoScaledFont < Test::Unit::TestCase
+ def setup
+ surface = Cairo::ImageSurface.new(Cairo::Format::ARGB32, 290, 200)
+ context = Cairo::Context.new(surface)
+ @font_face = context.font_face
+ @font_matrix = Cairo::Matrix.identity
+ @scale = Cairo::Matrix.scale(0.5, 1.0)
+ @font_option = Cairo::FontOptions.new
+ end
+
+ def test_cairo_scaled_font
+ assert_nothing_raised do
+ Cairo::ScaledFont.new(@font_face, @font_matrix, @scale, @font_option)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairostatus.rb
similarity index 82%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairostatus.rb
index fb56999..341f923 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairostatus.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoStatus < Test::Unit::TestCase
+ def test_cairo_status
+ assert_nothing_raised do
+ CairoGObject::Status.new(CairoGObject::Status::SUCCESS)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairosubpixelorder.rb
similarity index 80%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairosubpixelorder.rb
index fb56999..77ae92a 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairosubpixelorder.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoSubpixelOrder < Test::Unit::TestCase
+ def test_cairo_subpixel_order
+ assert_nothing_raised do
+ CairoGObject::SubpixelOrder.new(Cairo::SubpixelOrder::DEFAULT)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairosurfacetype.rb
similarity index 80%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairosurfacetype.rb
index fb56999..e7df3a2 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairosurfacetype.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoSurfaceType < Test::Unit::TestCase
+ def test_cairo_surface_type
+ assert_nothing_raised do
+ CairoGObject::SurfaceType.new(CairoGObject::SurfaceType::IMAGE)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/cairo-gobject/test/test_cairotextclusterflags.rb
similarity index 78%
copy from gstreamer/lib/gst/base_loader.rb
copy to cairo-gobject/test/test_cairotextclusterflags.rb
index fb56999..79a68f7 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/cairo-gobject/test/test_cairotextclusterflags.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestCairoTextClusterFlags < Test::Unit::TestCase
+ def test_cairo_text_clutter_flags
+ assert_nothing_raised do
+ CairoGObject::TextClusterFlags.new(CairoGObject::TextClusterFlags::BACKWARD)
+ end
end
end
diff --git a/clutter-gstreamer/Rakefile b/clutter-gstreamer/Rakefile
index b2c0e24..5b35e59 100644
--- a/clutter-gstreamer/Rakefile
+++ b/clutter-gstreamer/Rakefile
@@ -46,12 +46,13 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
:name => "clutter-gst",
:download_site => :gnome,
:label => "Clutter-GStreamer",
- :version => "2.0.2",
+ :version => "2.0.8",
:compression_method => "xz",
:windows => {
:configure_args => [
"--enable-introspection",
],
+ :built_file => "bin/libclutter-gst-2.0-0.dll",
},
}
]
diff --git a/clutter-gstreamer/lib/clutter-gst.rb b/clutter-gstreamer/lib/clutter-gst.rb
index 67bf06a..a348371 100644
--- a/clutter-gstreamer/lib/clutter-gst.rb
+++ b/clutter-gstreamer/lib/clutter-gst.rb
@@ -64,7 +64,7 @@ module ClutterGst
1 + @init_arguments.size,
[$0] + @init_arguments,
]
- error, argc, argv = init.invoke(arguments)
+ error, argc, argv = init.invoke(:arguments => arguments)
@init_arguments.replace(argv)
if error.to_i <= 0
raise InitError, "failed to initialize Clutter-GStreamer: #{error.name}"
diff --git a/clutter-gstreamer/sample/media-actions-pause.png b/clutter-gstreamer/sample/media-actions-pause.png
new file mode 100644
index 0000000..f830a90
Binary files /dev/null and b/clutter-gstreamer/sample/media-actions-pause.png differ
diff --git a/clutter-gstreamer/sample/media-actions-start.png b/clutter-gstreamer/sample/media-actions-start.png
new file mode 100644
index 0000000..3ff2413
Binary files /dev/null and b/clutter-gstreamer/sample/media-actions-start.png differ
diff --git a/clutter-gstreamer/sample/vid-panel.png b/clutter-gstreamer/sample/vid-panel.png
new file mode 100644
index 0000000..1b47b71
Binary files /dev/null and b/clutter-gstreamer/sample/vid-panel.png differ
diff --git a/clutter-gstreamer/sample/video-player.rb b/clutter-gstreamer/sample/video-player.rb
new file mode 100755
index 0000000..935bc1f
--- /dev/null
+++ b/clutter-gstreamer/sample/video-player.rb
@@ -0,0 +1,383 @@
+#!/usr/bin/env ruby
+#
+# This sample code is a port of clutter-gst/examples/video-player.c. The
+# image files used in this sample code are copied from clutter-gst/examples.
+# They are licensed under the terms of the GNU Lesser General Public
+# License, version 2.1 or (at your option) later.
+#
+# The original header:
+# video-player.c - A simple video player with an OSD.
+#
+# Copyright (C) 2007,2008 OpenedHand
+# Copyright (C) 2013 Collabora
+#
+# Copyright (C) 2013 Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+# NOTE: This sample code is for libclutter-gst (a library by C) 2.0.2.
+
+require "optparse"
+
+require "clutter-gst"
+
+SEEK_H = 14
+SEEK_W = 440
+
+GST_PLAY_FLAG_VIS = (1 << 3)
+
+class VideoApp
+ attr_accessor :stage
+ attr_accessor :vtexture
+ attr_accessor :control, :control_bg, :control_label
+ attr_accessor :control_play, :control_pause
+ attr_accessor :control_seek1, :control_seek2, :control_seekbar
+ attr_accessor :controls_showing, :paused, :mouse_in_window
+ attr_accessor :controls_timeout
+ def initialize
+ @controls_showing = false
+ @paused = false
+ @mouse_in_window = false
+ @controls_timeout = 0
+ end
+end
+
+opt_fullscreen = false
+opt_loop = false
+
+parser = OptionParser.new
+parser.on("-f", "--[no-]fullscreen",
+ "Start the player in fullscreen",
+ "(#{opt_fullscreen})") do |boolean|
+ opt_fullscreen = boolean
+end
+parser.on("-l", "--[no-]loop",
+ "Start the video again once reached EOS",
+ "(#{opt_loop})") do |boolean|
+ opt_loop = boolean
+end
+parser.parse!
+
+def controls_timeout_cb(app)
+ app.controls_timeout = 0
+ show_controls(app, false)
+ false
+end
+
+def actor_animate(actor, mode, duration, first_property, *args)
+ actor.save_easing_state
+ actor.easing_mode = mode
+ actor.easing_duration = duration
+
+ actor.set_property(first_property, args.first)
+end
+
+def show_controls(app, vis)
+ return if app.control.nil?
+
+ if vis == true && app.controls_showing == true
+ if app.controls_timeout == 0
+ app.controls_timeout = GLib::Timeout.add_seconds(5) do
+ controls_timeout_cb(app)
+ end
+ end
+ return
+ end
+
+ if vis == true && app.controls_showing == false
+ app.controls_showing = true
+ app.stage.show_cursor
+ actor_animate(app.control, :ease_out_quint, 250, "opacity", 224)
+ return
+ end
+
+ if vis == false && app.controls_showing == true
+ app.controls_showing = false
+ if app.mouse_in_window
+ app.stage.hide_cursor
+ end
+ actor_animate(app.control, :ease_out_quint, 250, "opacity", 0)
+ return
+ end
+end
+
+def toggle_pause_state(app)
+ return if app.vtexture.nil?
+
+ if app.paused
+ app.vtexture.playing = true
+ app.paused = false
+ app.control_play.hide
+ app.control_pause.show
+ else
+ app.vtexture.playing = false
+ app.paused = true
+ app.control_pause.hide
+ app.control_play.show
+ end
+end
+
+def position_controls(app, controls)
+ stage_width, stage_height = app.stage.size
+ bg_width, bg_height = app.control.size
+
+ x = ((stage_width - bg_width) / 2).floor
+ y = stage_height - bg_height - 28
+
+ controls.set_position(x, y)
+end
+
+def new_rectangle_with_color(color)
+ actor = Clutter::Actor.new
+ actor.background_color = color
+ actor
+end
+
+stage_color = Clutter::Color.new(0, 0, 0, 0)
+control_color1 = Clutter::Color.new(73, 74, 77, 0xee)
+control_color2 = Clutter::Color.new(0xcc, 0xcc, 0xcc, 0xff)
+
+if ARGV.length < 1
+ puts "Usage: #{$0} [OPTIONS] <video file> - A simple video player"
+ exit(false)
+end
+
+stage = Clutter::Stage.new
+stage.background_color = Clutter::Color.new(0, 0, 0, 0)
+stage.set_size(768, 576)
+stage.set_minimum_size(640, 480)
+stage.fullscreen = true if opt_fullscreen
+
+app = VideoApp.new
+app.stage = stage
+app.vtexture = ClutterGst::VideoTexture.new
+
+raise "failed to create vtexture" if app.vtexture.nil?
+
+# By default ClutterGst seeks to the nearest key frame (faster). However
+# it has the weird effect that when you click on the progress bar, the fill
+# goes to the key frame position that can be quite far from where you
+# clicked. Using the ACCURATE flag tells playbin2 to seek to the actual
+# frame
+app.vtexture.seek_flags = :accurate
+
+app.vtexture.signal_connect("eos") do |media, app|
+ if opt_loop
+ media.progress = 0.0
+ media.playing = true
+ end
+end
+
+stage.signal_connect("allocation-changed") do |stage, box, flags|
+ position_controls(app, app.control)
+ show_controls(app, true)
+end
+
+stage.signal_connect("destroy") do
+ Clutter.main_quit
+end
+
+# Handle it ourselves so can scale up for fullscreen better
+app.vtexture.signal_connect_after("size-change") do |texture, base_width, base_height|
+ stage_width, stage_height = stage.size
+
+ # base_width and base_height are the actual dimensions of the buffers before
+ # taking the pixel aspect ratio into account. We need to get the actual
+ # size of the texture to display
+ frame_width, frame_height = texture.size
+
+ new_height = (frame_height * stage_width) / frame_width
+ if new_height <= stage_height
+ new_width = stage_width
+ new_x = 0
+ new_y = (stage_height - new_height) / 2
+ else
+ new_width = (frame_width * stage_height) / frame_height
+ new_height = stage_height
+ new_x = (stage_width - new_width) / 2
+ new_y = 0
+ end
+ texture.set_position(new_x, new_y)
+ texture.set_size(new_width, new_height)
+end
+
+# Load up out video texture
+app.vtexture.filename = ARGV[0]
+
+# Set up things so that a visualisation is played if there's no video
+pipe = app.vtexture.pipeline
+raise "Unable to get gstreamer pipeline!" unless pipe
+
+# TODO: want to not require Gst.init
+# prepare Gst's methods (e.g. iterate_sinks)
+Gst.init
+
+iter = pipe.iterate_sinks
+raise "Unable to iterate over sinks!" unless iter
+
+playsink = nil
+while (value = iter.next)[0] == :ok
+ playsink = value[1].value
+ sink_name = playsink.name # unused
+end
+
+goomsource = Gst::ElementFactory.make("goom", "source")
+raise "Unable to create goom visualiser!" unless goomsource
+
+# TODO: warnings occurred
+#playsink_flags = playsink.flags.value
+#playsink_flags |= GST_PLAY_FLAG_VIS
+playsink.vis_plugin = goomsource
+#playsink.flags = playsink_flags
+
+# Create the control UI
+app.control = Clutter::Actor.new
+
+app.control_bg = Clutter::Texture.new
+app.control_bg.from_file = File.expand_path("vid-panel.png", File.dirname(__FILE__))
+app.control_play = Clutter::Texture.new
+app.control_play.from_file = File.expand_path("media-actions-start.png", File.dirname(__FILE__))
+app.control_pause = Clutter::Texture.new
+app.control_pause.from_file = File.expand_path("media-actions-pause.png", File.dirname(__FILE__))
+
+app.control_seek1 = new_rectangle_with_color(control_color1)
+app.control_seek2 = new_rectangle_with_color(control_color2)
+app.control_seekbar = new_rectangle_with_color(control_color1)
+app.control_seekbar.opacity = 0x99
+
+app.control_label = Clutter::Text.new
+app.control_label.font_name = "Sans Bold 14"
+# TODO: segfault
+#app.control_label.text = File.basename(ARGV[0])
+stage.title = File.basename(ARGV[0]) # substitutes for label text
+app.control_label.color = control_color1
+
+app.control_play.hide
+
+app.control.add_child(app.control_bg)
+app.control.add_child(app.control_play)
+app.control.add_child(app.control_pause)
+app.control.add_child(app.control_seek1)
+app.control.add_child(app.control_seek2)
+app.control.add_child(app.control_seekbar)
+app.control.add_child(app.control_label)
+
+app.control.opacity = 0xee
+
+app.control_play.set_position(22, 31)
+app.control_pause.set_position(18, 31)
+
+app.control_seek1.set_size(SEEK_W + 4, SEEK_H + 4)
+app.control_seek1.set_position(80, 57)
+app.control_seek2.set_size(SEEK_W, SEEK_H)
+app.control_seek2.set_position(82, 59)
+app.control_seekbar.set_size(0, SEEK_H)
+app.control_seekbar.set_position(82, 59)
+
+app.control_label.set_position(82, 29)
+
+# Add control UI to stage
+stage.add_child(app.vtexture)
+stage.add_child(app.control)
+
+position_controls(app, app.control)
+
+stage.hide_cursor
+actor_animate(app.control, :ease_out_quint, 1000, "opacity", 0)
+
+# Hook up other events
+stage.signal_connect("event") do |stage, event|
+ handled = false
+
+ case event.type
+ when Clutter::EventType::MOTION
+ show_controls(app, true)
+ handled = true
+ when Clutter::EventType::BUTTON_PRESS
+ if app.controls_showing
+ actor = stage.get_actor_at_pos(:all, event.x, event.y)
+ if actor == app.control_pause || actor == app.control_play
+ toggle_pause_state(app)
+ elsif actor == app.control_seek1 ||
+ actor == app.control_seek2 ||
+ actor == app.control_seekbar
+ x, y = app.control_seekbar.transformed_position
+ dist = event.x - x
+ def clamp(x, low, high)
+ if x > high
+ high
+ elsif x < low
+ low
+ else
+ x
+ end
+ end
+ dist = clamp(dist, 0, SEEK_W)
+ progress = 1.0 * dist / SEEK_W
+ app.vtexture.progress == progress
+ end
+ end
+ handled = true
+ when Clutter::EventType::KEY_PRESS
+ animation = nil
+ case event.key_symbol
+ when Clutter::Keys::KEY_d
+ if app.vtexture
+ app.stage.remove_child(app.vtexture)
+ app.vtexture = nil
+ end
+ if app.control
+ app.stage.remove_child(app.control)
+ app.control = nil
+ end
+ when Clutter::Keys::KEY_q, Clutter::Keys::KEY_Escape
+ app.stage.destroy
+ when Clutter::Keys::KEY_e
+ if app.vtexture
+ app.vtexture .set_pivot_point(0.5, 0)
+ animation = actor_animate(app.vtexture,
+ :linear, 500,
+ "rotation-angle-y", 360.0)
+ animation.signal_connect_after("transitions-completed") do
+ if app.vtexture
+ app.vtexture.set_rotation_angle(:y_axis, 0.0)
+ end
+ end
+ handled = true
+ end
+ else
+ toggle_pause_state(app)
+ handled = true
+ end
+ when Clutter::EventType::ENTER
+ app.mouse_in_window = true
+ app.stage.cursor_visible = app.controls_showing
+ when Clutter::EventType::LEAVE
+ app.mouse_in_window = false
+ app.stage.show_cursor
+ end
+ handled
+end
+
+app.vtexture.signal_connect("notify::progress") do |video_texture, pspec|
+ progress = video_texture.progress
+ app.control_seekbar.set_size(progress * SEEK_W, SEEK_H)
+end
+
+app.vtexture.playing = true
+
+stage.show
+
+Clutter.main
diff --git a/clutter-gstreamer/sample/video-sink-navigation.rb b/clutter-gstreamer/sample/video-sink-navigation.rb
new file mode 100755
index 0000000..3189f60
--- /dev/null
+++ b/clutter-gstreamer/sample/video-sink-navigation.rb
@@ -0,0 +1,99 @@
+#!/usr/bin/env ruby
+#
+# This sample code is a port of clutter-gst/examples/video-sink-navigation.c.
+# It is licensed under the terms of the GNU Lesser General Public
+# License, version 2.1 or (at your option) later.
+#
+# The original header:
+# video-sink.c - A small example around the videotestsrc ! capsfilter !
+# navigationtest ! videoconvert ! cluttersink pipeline.
+#
+# Copyright (C) 2007,2008 OpenedHand
+#
+# Copyright (C) 2013 Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+# NOTE: This sample code is for libclutter-gst (a library by C) 2.0.2.
+require "clutter-gst"
+
+stage = Clutter::Stage.new
+stage.user_resizable = true
+stage.signal_connect("destroy") do
+ Clutter.main_quit
+end
+
+# Make a timeline
+timeline = Clutter::Timeline.new(1000)
+timeline.loop = true
+
+# We need to set certain props on the target texture currently for
+# efficient/correct playback onto the texture (which sucks a bit)
+texture = Clutter::Texture.new
+# NOTE: Because warning is given, I comment out.
+#texture.set_property("disable-slicing", true)
+
+texture.signal_connect("size-change") do |texture, width, height|
+ stage = texture.stage
+ next if stage.nil? # go out of the block if stage is nil
+ stage_width, stage_height = stage.size
+ new_height = (height * stage_width) / width
+ if new_height <= stage_height
+ new_width = stage_width
+ new_x = 0
+ new_y = (stage_height - new_height) / 2
+ else
+ new_width = (width * stage_height) / height
+ new_height = stage_height
+ new_x = (stage_width - new_width) / 2
+ new_y = 0
+ end
+ texture.set_position(new_x, new_y)
+ texture.set_size(new_width, new_height)
+end
+
+# Set up pipeline
+pipeline = Gst::Pipeline.new("pipeline")
+
+src = Gst::ElementFactory.make("videotestsrc")
+filter = Gst.parse_launch("capsfilter caps=video/x-raw,pixel-aspect-ratio=1/4")
+
+test = Gst::ElementFactory.make("navigationtest")
+colorspace = Gst::ElementFactory.make("videoconvert")
+sink = ClutterGst::VideoSink.new(texture)
+
+# We can try other patterns
+# src.pattern = 10
+
+pipeline << src << filter << test << colorspace << sink
+src >> filter >> test >> colorspace >> sink
+pipeline.play
+
+# Resize with the window
+constraint = Clutter::BindConstraint.new(stage, :size, 0.0)
+texture.constraints = constraint
+
+# Rotate a bit
+texture.set_pivot_point(0.5, 0.5)
+texture.set_rotation_angle(:z_axis, 45.0)
+
+# start the timeline
+timeline.start
+
+stage.add_child(texture)
+# texture.opacity = 0x11
+stage.show
+
+Clutter.main
diff --git a/clutter-gstreamer/sample/video-sink.rb b/clutter-gstreamer/sample/video-sink.rb
new file mode 100755
index 0000000..56f834d
--- /dev/null
+++ b/clutter-gstreamer/sample/video-sink.rb
@@ -0,0 +1,88 @@
+#!/usr/bin/env ruby
+#
+# This sample code is a port of clutter-gst/examples/video-sink.c.
+# It is licensed under the terms of the GNU Lesser General Public
+# License, version 2.1 or (at your option) later.
+#
+# The original header:
+# video-sink.c - A small example around the videotestsrc ! warptv !
+# videoconvert ! cluttersink pipeline.
+#
+# Copyright (C) 2007,2008 OpenedHand
+#
+# Copyright (C) 2013 Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+# NOTE: This sample code is for libclutter-gst (a library by C) 2.0.2.
+require "clutter-gst"
+
+stage = Clutter::Stage.new
+stage.signal_connect("destroy") do
+ Clutter.main_quit
+end
+
+# Make a timeline
+timeline = Clutter::Timeline.new(1000)
+timeline.loop = true
+
+# We need to set certain props on the target texture currently for
+# efficient/correct playback onto the texture (which sucks a bit)
+texture = Clutter::Texture.new
+# NOTE: Because warning is given, I comment out.
+#texture.set_property("disable-slicing", true)
+
+texture.signal_connect("size-change") do |widget, width, height|
+ stage = widget.stage
+ next if stage.nil? # go out of the block if stage is nil
+ stage_width, stage_height = stage.size
+ new_height = (height * stage_width) / width
+ if new_height <= stage_height
+ new_width = stage_width
+ new_x = 0
+ new_y = (stage_height - new_height) / 2
+ else
+ new_width = (width * stage_height) / height
+ new_height = stage_height
+ new_x = (stage_width - new_width) / 2
+ new_y = 0
+ end
+ widget.set_position(new_x, new_y)
+ widget.set_size(new_width, new_height)
+end
+
+# Set up pipeline
+pipeline = Gst::Pipeline.new("pipeline")
+
+src = Gst::ElementFactory.make("videotestsrc")
+warp = Gst::ElementFactory.make("warptv")
+colorspace = Gst::ElementFactory.make("videoconvert")
+sink = ClutterGst::VideoSink.new(texture)
+
+# We can try other patterns
+# src.pattern = 10
+
+pipeline << src << warp << colorspace << sink
+src >> warp >> colorspace >> sink
+pipeline.play
+
+# start the timeline
+timeline.start
+
+stage.add_child(texture)
+# texture.opacity = 0x11
+stage.show
+
+Clutter.main
diff --git a/clutter-gstreamer/test/run-test.rb b/clutter-gstreamer/test/run-test.rb
index f72b5b3..470c42e 100755
--- a/clutter-gstreamer/test/run-test.rb
+++ b/clutter-gstreamer/test/run-test.rb
@@ -16,22 +16,28 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+have_make = system("which make > /dev/null")
+
ruby_gnome2_base = File.join(File.dirname(__FILE__), "..", "..")
ruby_gnome2_base = File.expand_path(ruby_gnome2_base)
glib_base = File.join(ruby_gnome2_base, "glib2")
+cairo_gobject_base = File.join(ruby_gnome2_base, "cairo-gobject")
gobject_introspection_base = File.join(ruby_gnome2_base, "gobject-introspection")
clutter_base = File.join(ruby_gnome2_base, "clutter")
gstreamer_base = File.join(ruby_gnome2_base, "gstreamer")
+clutter_gstreamer_base = File.join(ruby_gnome2_base, "clutter-gstreamer")
modules = [
[glib_base, "glib2"],
+ [cairo_gobject_base, "cairo-gobject"],
[gobject_introspection_base, "gobject-introspection"],
[clutter_base, "clutter"],
[gstreamer_base, "gstreamer"],
+ [clutter_gstreamer_base, "clutter-gst"],
]
modules.each do |target, module_name|
- if system("which make > /dev/null")
+ if File.exist?(File.join(target, "Makefile")) and have_make
`make -C #{target.dump} > /dev/null` or exit(false)
end
$LOAD_PATH.unshift(File.join(target, "ext", module_name))
@@ -41,12 +47,14 @@ end
$LOAD_PATH.unshift(File.join(glib_base, "test"))
require "glib-test-init"
+$VERBOSE = false # TODO: remove me
+
$LOAD_PATH.unshift(File.join(gobject_introspection_base, "test"))
require "gobject-introspection-test-utils"
$LOAD_PATH.unshift(File.join(clutter_base, "test"))
require "clutter-test-utils"
-require "clutter-gstreamer"
+require "clutter-gst"
exit Test::Unit::AutoRunner.run(true)
diff --git a/gstreamer/lib/gst/controller_loader.rb b/clutter-gstreamer/test/test-clutter-gst.rb
similarity index 86%
copy from gstreamer/lib/gst/controller_loader.rb
copy to clutter-gstreamer/test/test-clutter-gst.rb
index 37bd503..2eec5c1 100644
--- a/gstreamer/lib/gst/controller_loader.rb
+++ b/clutter-gstreamer/test/test-clutter-gst.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class ControllerLoader < GObjectIntrospection::Loader
+class ClutterGstTest < Test::Unit::TestCase
+ def test_init
+ assert_nothing_raised do
+ ClutterGst.init
+ end
end
end
diff --git a/clutter-gtk/Rakefile b/clutter-gtk/Rakefile
index d980418..8634c4f 100644
--- a/clutter-gtk/Rakefile
+++ b/clutter-gtk/Rakefile
@@ -58,6 +58,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
"0001-Use-no-undefined-ld-flag.patch",
],
:need_autoreconf => true,
+ :built_file => "bin/libclutter-gtk-1.0-0.dll",
},
}
]
diff --git a/clutter-gtk/lib/clutter-gtk.rb b/clutter-gtk/lib/clutter-gtk.rb
index 615e12c..66f59ba 100644
--- a/clutter-gtk/lib/clutter-gtk.rb
+++ b/clutter-gtk/lib/clutter-gtk.rb
@@ -65,7 +65,7 @@ module ClutterGtk
1 + @init_arguments.size,
[$0] + @init_arguments,
]
- error, argc, argv = init.invoke(arguments)
+ error, argc, argv = init.invoke(:arguments => arguments)
@init_arguments.replace(argv)
if error.to_i <= 0
raise InitError, "failed to initialize Clutter: #{error.name}"
diff --git a/clutter-gtk/test/run-test.rb b/clutter-gtk/test/run-test.rb
index 41a94c8..c3001e6 100755
--- a/clutter-gtk/test/run-test.rb
+++ b/clutter-gtk/test/run-test.rb
@@ -1,6 +1,6 @@
#!/usr/bin/env ruby
#
-# Copyright (C) 2012 Ruby-GNOME2 Project Team
+# Copyright (C) 2012-2013 Ruby-GNOME2 Project Team
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -16,20 +16,36 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+have_make = system("which make > /dev/null")
+
ruby_gnome2_base = File.join(File.dirname(__FILE__), "..", "..")
ruby_gnome2_base = File.expand_path(ruby_gnome2_base)
glib_base = File.join(ruby_gnome2_base, "glib2")
+atk_base = File.join(ruby_gnome2_base, "atk")
+pango_base = File.join(ruby_gnome2_base, "pango")
+gdk_pixbuf_base = File.join(ruby_gnome2_base, "gdk_pixbuf2")
+cairo_gobject_base = File.join(ruby_gnome2_base, "cairo-gobject")
gobject_introspection_base = File.join(ruby_gnome2_base, "gobject-introspection")
clutter_base = File.join(ruby_gnome2_base, "clutter")
+gdk3_base = File.join(ruby_gnome2_base, "gdk3")
+gtk3_base = File.join(ruby_gnome2_base, "gtk3")
+clutter_gtk_base = File.join(ruby_gnome2_base, "clutter-gtk")
modules = [
[glib_base, "glib2"],
+ [atk_base, "atk"],
+ [pango_base, "pango"],
+ [gdk_pixbuf_base, "gdk_pixbuf2"],
+ [cairo_gobject_base, "cairo-gobject"],
[gobject_introspection_base, "gobject-introspection"],
[clutter_base, "clutter"],
+ [gdk3_base, "gdk3"],
+ [gtk3_base, "gtk3"],
+ [clutter_gtk_base, "clutter-gtk"],
]
modules.each do |target, module_name|
- if system("which make > /dev/null")
+ if File.exist?(File.join(target, "Makefile")) and have_make
`make -C #{target.dump} > /dev/null` or exit(false)
end
$LOAD_PATH.unshift(File.join(target, "ext", module_name))
@@ -39,12 +55,19 @@ end
$LOAD_PATH.unshift(File.join(glib_base, "test"))
require "glib-test-init"
+$VERBOSE = false # TODO: remove me
+
$LOAD_PATH.unshift(File.join(gobject_introspection_base, "test"))
require "gobject-introspection-test-utils"
$LOAD_PATH.unshift(File.join(clutter_base, "test"))
require "clutter-test-utils"
-require "clutter"
+$LOAD_PATH.unshift(File.join(clutter_gtk_base, "test"))
+require "clutter-gtk-test-utils"
+
+require "clutter-gtk"
-exit Test::Unit::AutoRunner.run(true)
+# exclude sample/test-*
+clutter_gtk_test_base = File.join(clutter_gtk_base, "test")
+exit Test::Unit::AutoRunner.run(true, clutter_gtk_test_base)
diff --git a/gstreamer/lib/gst/base_loader.rb b/clutter-gtk/test/test-clutter-gtk-embed.rb
similarity index 88%
copy from gstreamer/lib/gst/base_loader.rb
copy to clutter-gtk/test/test-clutter-gtk-embed.rb
index fb56999..627085c 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/clutter-gtk/test/test-clutter-gtk-embed.rb
@@ -14,7 +14,8 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class ClutterGtkEmbedTest < Test::Unit::TestCase
+ def test_new
+ assert_not_nil(ClutterGtk::Embed.new)
end
end
diff --git a/clutter/README.md b/clutter/README.md
index 35758e5..9058f9b 100644
--- a/clutter/README.md
+++ b/clutter/README.md
@@ -22,7 +22,7 @@ under the terms of the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
### Exceptions
Ruby scripts and image files in sample/ are ported and copied from
-Clutter. Headers in samples/*.rb describes that the location of the
+Clutter. Headers in sample/*.rb describes that the location of the
original file of the Ruby script and image files. The original files
are licensed under the LGPL v2.1 or later.
diff --git a/clutter/Rakefile b/clutter/Rakefile
index 611f977..0fef99f 100644
--- a/clutter/Rakefile
+++ b/clutter/Rakefile
@@ -1,6 +1,6 @@
# -*- ruby -*-
#
-# Copyright (C) 2012 Ruby-GNOME2 Project Team
+# Copyright (C) 2012-2013 Ruby-GNOME2 Project Team
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -79,7 +79,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
:name => "cogl",
:download_site => :gnome,
:label => "Cogl",
- :version => "1.14.0",
+ :version => "1.16.0",
:compression_method => "xz",
:windows => {
:configure_args => [
@@ -92,7 +92,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
:name => "json-glib",
:download_site => :gnome,
:label => "JSON-GLib",
- :version => "0.16.0",
+ :version => "0.16.2",
:compression_method => "xz",
:windows => {
:configure_args => [
@@ -104,7 +104,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
:name => "clutter",
:download_site => :gnome,
:label => "Clutter",
- :version => "1.14.4",
+ :version => "1.16.2",
:compression_method => "xz",
:windows => {
:configure_args => [
diff --git a/clutter/lib/clutter.rb b/clutter/lib/clutter.rb
index c0fe9b5..22c30b3 100644
--- a/clutter/lib/clutter.rb
+++ b/clutter/lib/clutter.rb
@@ -82,7 +82,7 @@ module Clutter
1 + @init_arguments.size,
[$0] + @init_arguments,
]
- error, argc, argv = init.invoke(arguments)
+ error, argc, argv = init.invoke(:arguments => arguments)
@init_arguments.replace(argv)
if error.to_i <= 0
raise InitError, "failed to initialize Clutter: #{error.name}"
diff --git a/clutter/sample/easing-modes.rb b/clutter/sample/easing-modes.rb
index 61b89a4..84d8436 100755
--- a/clutter/sample/easing-modes.rb
+++ b/clutter/sample/easing-modes.rb
@@ -59,9 +59,7 @@ end
main_stage = stage
-stage_size = stage.size
-stage_width = stage_size.width
-stage_height = stage_size.height
+stage_width, stage_height = stage.size
bouncer_width = 50
bouncer_height = 50
diff --git a/clutter/test/clutter-test-utils.rb b/clutter/test/clutter-test-utils.rb
index 441ed69..26b74e0 100644
--- a/clutter/test/clutter-test-utils.rb
+++ b/clutter/test/clutter-test-utils.rb
@@ -1,4 +1,4 @@
-# Copyright (C) 2012 Ruby-GNOME2 Project Team
+# Copyright (C) 2012-2013 Ruby-GNOME2 Project Team
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -18,4 +18,9 @@ require "test-unit"
require "test/unit/notify"
module ClutterTestUtils
+ def omit_if_clutter_color_hash_expect_arguments
+ unless Clutter::Color.method(:hash).parameters.empty?
+ omit("This test can't be run on this environment.")
+ end
+ end
end
diff --git a/clutter/test/run-test.rb b/clutter/test/run-test.rb
index c9470d6..c1c9a1e 100755
--- a/clutter/test/run-test.rb
+++ b/clutter/test/run-test.rb
@@ -20,11 +20,13 @@ ruby_gnome2_base = File.join(File.dirname(__FILE__), "..", "..")
ruby_gnome2_base = File.expand_path(ruby_gnome2_base)
glib_base = File.join(ruby_gnome2_base, "glib2")
+cairo_gobject_base = File.join(ruby_gnome2_base, "cairo-gobject")
gobject_introspection_base = File.join(ruby_gnome2_base, "gobject-introspection")
clutter_base = File.join(ruby_gnome2_base, "clutter")
modules = [
[glib_base, "glib2"],
+ [cairo_gobject_base, "cairo-gobject"],
[gobject_introspection_base, "gobject-introspection"],
[clutter_base, "clutter"],
]
diff --git a/clutter/test/test-clutter-color.rb b/clutter/test/test-clutter-color.rb
index fd6181f..c882bcc 100644
--- a/clutter/test/test-clutter-color.rb
+++ b/clutter/test/test-clutter-color.rb
@@ -15,27 +15,35 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
class ClutterColorTest < Test::Unit::TestCase
+ include ClutterTestUtils
+
def test_rgb
+ omit_if_clutter_color_hash_expect_arguments
assert_equal("#ff0000ff", Clutter::Color.rgb(255, 0, 0).to_s)
end
def test_rgba
+ omit_if_clutter_color_hash_expect_arguments
assert_equal("#ff00007f", Clutter::Color.rgb(255, 0, 0, 127).to_s)
end
def test_hls
+ omit_if_clutter_color_hash_expect_arguments
assert_equal("#20dfdfff", Clutter::Color.hls(180, 0.5, 0.75).to_s)
end
def test_hlsa
+ omit_if_clutter_color_hash_expect_arguments
assert_equal("#20dfdf7f", Clutter::Color.hls(180, 0.5, 0.75, 127).to_s)
end
def test_pixel
+ omit_if_clutter_color_hash_expect_arguments
assert_equal("#20dfdf7f", Clutter::Color.pixel(0x20dfdf7f).to_s)
end
def test_parse
+ omit_if_clutter_color_hash_expect_arguments
assert_equal("#20dfdf7f",
Clutter::Color.parse("rgba(32, 223, 223, 0.5)").to_s)
end
diff --git a/extconf.rb b/extconf.rb
index abf3208..759798c 100644
--- a/extconf.rb
+++ b/extconf.rb
@@ -23,6 +23,10 @@ priorlibs = [
"gtk3",
]
+unsupported_libraries = [
+ "gstreamer-no-gi"
+]
+
#
# detect sub-directories
#
@@ -56,6 +60,7 @@ if subdirs.size == 0
subdirs -= priorlibs
subdirs = priorlibs + subdirs #Change the order
end
+subdirs -= unsupported_libraries
#
# generate sub-directory Makefiles
diff --git a/gdk3/COPYING.LIB b/gdk3/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/gdk3/COPYING.LIB
+++ b/gdk3/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/gdk3/Rakefile b/gdk3/Rakefile
index 47929af..2b0dfb3 100644
--- a/gdk3/Rakefile
+++ b/gdk3/Rakefile
@@ -26,15 +26,30 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
:name => "gtk+",
:download_site => :gnome,
:label => "GTK+",
- :version => "3.8.2",
+ :version => "3.10.6",
:compression_method => "xz",
:windows => {
:configure_args => [
"--enable-introspection",
],
+ :patches => [
+ "gdk+-3.10.6-remove-def-use.diff",
+ ],
+ :need_autoreconf => true,
+ :built_file => "bin/libgdk-3-0.dll",
},
- }
+ },
+ {
+ :name => "hicolor-icon-theme",
+ :download_base_url => "http://icon-theme.freedesktop.org/releases",
+ :label => "gtk-hi-color-icon-theme",
+ :version => "0.13",
+ :windows => {
+ :configure_args => [],
+ :build_concurrently => false,
+ :built_file => "share/icons/hicolor/index.theme",
+ }
+ },
]
- package.required_ruby_version = ">= 1.9.2"
end
package_task.define
diff --git a/gdk3/ext/gdk3/extconf.rb b/gdk3/ext/gdk3/extconf.rb
index 68cd7ec..75abc58 100644
--- a/gdk3/ext/gdk3/extconf.rb
+++ b/gdk3/ext/gdk3/extconf.rb
@@ -54,7 +54,10 @@ rcairo_source_dir_names.each do |rcairo_source_dir_name|
break
end
end
-check_cairo(rcairo_options)
+
+unless check_cairo(rcairo_options)
+ exit(false)
+end
setup_win32(module_name, base_dir)
diff --git a/gdk3/ext/gdk3/gdk3.def b/gdk3/ext/gdk3/gdk3.def
index 4c08f34..7f219a4 100644
--- a/gdk3/ext/gdk3/gdk3.def
+++ b/gdk3/ext/gdk3/gdk3.def
@@ -7,6 +7,6 @@ EXPORTS
gdk_geometry_get_type
gdk_windowattr_get_type
get_gdkatom
- get_gdkevent
- make_gdkevent
+ rbgdk_gdkevent2rval
+ rbgdk_rval2gdkevent
diff --git a/gdk3/ext/gdk3/rbgdk.c b/gdk3/ext/gdk3/rbgdk.c
index 611eec8..2a829f6 100644
--- a/gdk3/ext/gdk3/rbgdk.c
+++ b/gdk3/ext/gdk3/rbgdk.c
@@ -228,7 +228,7 @@ rg_s_display(G_GNUC_UNUSED VALUE self)
return CSTR2RVAL(gdk_get_display());
}
-#ifdef HAVE_X11_XLIB_H
+#ifdef HAVE_X11_XLIB_H
#ifdef HAVE_XGETERRORTEXT
#include <X11/Xlib.h>
#include <errno.h>
@@ -262,12 +262,12 @@ rbgdk_x_io_error(Display *display)
error = g_strerror(errno_saved);
- rb_funcall((VALUE)rb_x_io_error, id_call, 3, CSTR2RVAL(disp),
+ rb_funcall((VALUE)rb_x_io_error, id_call, 3, CSTR2RVAL(disp),
INT2NUM(errno), CSTR2RVAL(error));
return 0;
}
-#endif
-#endif
+#endif
+#endif
static VALUE
rg_s_set_x_error_handler(VALUE self)
@@ -327,44 +327,6 @@ rg_s_screen_height_mm(G_GNUC_UNUSED VALUE self)
}
static VALUE
-rg_s_pointer_grab(G_GNUC_UNUSED VALUE self, VALUE win, VALUE owner_events, VALUE event_mask, VALUE confine_to, VALUE cursor, VALUE time)
-{
- return GDKGRABSTATUS2RVAL(gdk_pointer_grab(RVAL2GDKWINDOW(win),
- RVAL2CBOOL(owner_events),
- RVAL2GDKEVENTMASK(event_mask),
- NIL_P(confine_to) ? NULL : RVAL2GDKWINDOW(confine_to),
- NIL_P(cursor) ? NULL : RVAL2GDKCURSOR(cursor),
- NUM2INT(time)));
-}
-
-static VALUE
-rg_s_pointer_ungrab(VALUE self, VALUE time)
-{
- gdk_pointer_ungrab(NUM2INT(time));
- return self;
-}
-
-static VALUE
-rg_s_keyboard_grab(G_GNUC_UNUSED VALUE self, VALUE win, VALUE owner_events, VALUE time)
-{
- return GDKGRABSTATUS2RVAL(gdk_keyboard_grab(RVAL2GDKWINDOW(win),
- RVAL2CBOOL(owner_events), NUM2INT(time)));
-}
-
-static VALUE
-rg_s_keyboard_ungrab(VALUE self, VALUE time)
-{
- gdk_keyboard_ungrab(NUM2INT(time));
- return self;
-}
-
-static VALUE
-rg_s_pointer_is_grabbed_p(G_GNUC_UNUSED VALUE self)
-{
- return CBOOL2RVAL(gdk_pointer_is_grabbed());
-}
-
-static VALUE
rg_s_set_double_click_time(VALUE self, VALUE msec)
{
gdk_set_double_click_time(NUM2UINT(msec));
@@ -451,11 +413,7 @@ rg_s_target(G_GNUC_UNUSED VALUE self)
static VALUE
rg_s_cairo_available_p(G_GNUC_UNUSED VALUE self)
{
-#if CAIRO_AVAILABLE
return Qtrue;
-#else
- return Qfalse;
-#endif
}
void
@@ -484,11 +442,6 @@ Init_gdk(void)
RG_DEF_SMETHOD(beep, 0);
RG_DEF_SMETHOD(flush, 0);
RG_DEF_SMETHOD(set_double_click_time, 1);
- RG_DEF_SMETHOD(pointer_grab, 6);
- RG_DEF_SMETHOD(pointer_ungrab, 1);
- RG_DEF_SMETHOD(keyboard_grab, 3);
- RG_DEF_SMETHOD(keyboard_ungrab, 1);
- RG_DEF_SMETHOD_P(pointer_is_grabbed, 0);
RG_DEF_SMETHOD(error_trap_push, 0);
RG_DEF_SMETHOD(error_trap_pop, 0);
RG_DEF_SMETHOD_P(windowing_x11, 0);
@@ -509,6 +462,7 @@ Init_gdk(void)
Init_gdk_const(RG_TARGET_NAMESPACE);
Init_gdk_cursor(RG_TARGET_NAMESPACE);
Init_gdk_device(RG_TARGET_NAMESPACE);
+ Init_gdk_device_manager(RG_TARGET_NAMESPACE);
Init_gdk_display(RG_TARGET_NAMESPACE);
Init_gdk_display_manager(RG_TARGET_NAMESPACE);
Init_gdk_dragcontext(RG_TARGET_NAMESPACE);
diff --git a/gdk3/ext/gdk3/rbgdk3.h b/gdk3/ext/gdk3/rbgdk3.h
index 48bd6bf..97cff28 100644
--- a/gdk3/ext/gdk3/rbgdk3.h
+++ b/gdk3/ext/gdk3/rbgdk3.h
@@ -41,8 +41,10 @@
#define RVAL2GDKPIXBUFGLIST(value) rbgdk_rval2gdkpixbufglist(value)
-#define GEV2RVAL(ev) (make_gdkevent(ev))
-#define RVAL2GEV(ev) (get_gdkevent(ev))
+/* for backword compatibility. TODO: remove me. */
+#define GEV2RVAL(ev) GDKEVENT2RVAL(ev)
+#define RVAL2GEV(ev) RVAL2GDKEVENT(ev)
+
#define RVAL2ATOM(atom) (get_gdkatom(atom))
#define GDK_TYPE_GEOMETRY (gdk_geometry_get_type())
@@ -65,7 +67,7 @@ extern GType gdk_geometry_get_type(void);
extern GType gdk_timecoord_get_type(void);
extern GdkAtom get_gdkatom(VALUE atom);
-extern VALUE make_gdkevent(GdkEvent* event);
-extern GdkEvent* get_gdkevent(VALUE event);
+extern VALUE rbgdk_gdkevent2rval(GdkEvent *event);
+extern GdkEvent *rbgdk_rval2gdkevent(VALUE event);
#endif /* __RBGDK3_H__ */
diff --git a/gdk3/ext/gdk3/rbgdk3conversions.h b/gdk3/ext/gdk3/rbgdk3conversions.h
index 90cc1ae..fb0d020 100644
--- a/gdk3/ext/gdk3/rbgdk3conversions.h
+++ b/gdk3/ext/gdk3/rbgdk3conversions.h
@@ -25,6 +25,7 @@
#define RVAL2GDKDEVICE(o) (GDK_DEVICE(RVAL2GOBJ(o)))
#define RVAL2GDKDISPLAY(o) (GDK_DISPLAY(RVAL2GOBJ(o)))
#define RVAL2GDKDISPLAYMANAGER(o) (GDK_DISPLAY_MANAGER(RVAL2GOBJ(o)))
+#define RVAL2GDKDEVICEMANAGER(o) (GDK_DEVICE_MANAGER(RVAL2GOBJ(o)))
#define RVAL2GDKDISPLAYOBJECT(o) (GDK_DISPLAY_OBJECT(RVAL2GOBJ(o)))
#define RVAL2GDKDRAGCONTEXT(o) (GDK_DRAG_CONTEXT(RVAL2GOBJ(o)))
#define RVAL2GDKDRAWABLE(o) (GDK_DRAWABLE(RVAL2GOBJ(o)))
@@ -42,8 +43,8 @@
#define GDKCOLOR2RVAL(o) (BOXED2RVAL(o, GDK_TYPE_COLOR))
#define RVAL2GDKCURSOR(o) ((GdkCursor*)RVAL2BOXED(o, GDK_TYPE_CURSOR))
#define GDKCURSOR2RVAL(o) (BOXED2RVAL(o, GDK_TYPE_CURSOR))
-#define RVAL2GDKEVENT(o) ((GdkEvent*)RVAL2BOXED(o, GDK_TYPE_EVENT))
-#define GDKEVENT2RVAL(o) (BOXED2RVAL(o, GDK_TYPE_EVENT))
+#define RVAL2GDKEVENT(o) (rbgdk_rval2gdkevent(o))
+#define GDKEVENT2RVAL(o) (rbgdk_gdkevent2rval(o))
#define RVAL2GDKGEOMETRY(o) ((GdkGeometry*)RVAL2BOXED(o, GDK_TYPE_GEOMETRY))
#define GDKGEOMETRY2RVAL(o) (BOXED2RVAL(o, GDK_TYPE_GEOMETRY))
#define RVAL2GDKRECTANGLE(o) ((GdkRectangle*)RVAL2BOXED(o, GDK_TYPE_RECTANGLE))
@@ -77,6 +78,8 @@
#define GDKINPUTMODE2RVAL(o) (GENUM2RVAL(o, GDK_TYPE_INPUT_MODE))
#define RVAL2GDKINPUTSOURCE(o) (RVAL2GENUM(o, GDK_TYPE_INPUT_SOURCE))
#define GDKINPUTSOURCE2RVAL(o) (GENUM2RVAL(o, GDK_TYPE_INPUT_SOURCE))
+#define RVAL2GDKGRABOWNERSHIP(o) (RVAL2GENUM(o, GDK_TYPE_GRAB_OWNERSHIP))
+#define GDKGRABOWNERSHIP2RVAL(o) (GENUM2RVAL(o, GDK_TYPE_GRAB_OWNERSHIP))
#define RVAL2GDKPROPMODE(o) (RVAL2GENUM(o, GDK_TYPE_PROP_MODE))
#define GDKPROPMODE2RVAL(o) (GENUM2RVAL(o, GDK_TYPE_PROP_MODE))
#define RVAL2GDKRGBDITHER(o) (RVAL2GENUM(o, GDK_TYPE_RGB_DITHER))
diff --git a/gdk3/ext/gdk3/rbgdk3private.h b/gdk3/ext/gdk3/rbgdk3private.h
index 60e5faf..36e57fd 100644
--- a/gdk3/ext/gdk3/rbgdk3private.h
+++ b/gdk3/ext/gdk3/rbgdk3private.h
@@ -44,12 +44,6 @@
# define G_VALUE_INIT { 0, { { 0 } } }
#endif
-#if defined(HAVE_RB_CAIRO_H)
-# define CAIRO_AVAILABLE 1
-#else
-# define CAIRO_AVAILABLE 0
-#endif
-
extern ID id_call;
G_GNUC_INTERNAL void Init_gdk(void);
@@ -59,6 +53,7 @@ G_GNUC_INTERNAL void Init_gdk_color(VALUE mGdk);
G_GNUC_INTERNAL void Init_gdk_const(VALUE mGdk);
G_GNUC_INTERNAL void Init_gdk_cursor(VALUE mGdk);
G_GNUC_INTERNAL void Init_gdk_device(VALUE mGdk);
+G_GNUC_INTERNAL void Init_gdk_device_manager(VALUE mGdk);
G_GNUC_INTERNAL void Init_gdk_display(VALUE mGdk);
G_GNUC_INTERNAL void Init_gdk_display_manager(VALUE mGdk);
G_GNUC_INTERNAL void Init_gdk_dragcontext(VALUE mGdk);
diff --git a/gdk3/ext/gdk3/rbgdkcairo.c b/gdk3/ext/gdk3/rbgdkcairo.c
index 93b93ad..270480f 100644
--- a/gdk3/ext/gdk3/rbgdkcairo.c
+++ b/gdk3/ext/gdk3/rbgdkcairo.c
@@ -21,7 +21,6 @@
#include "rbgdk3private.h"
-#if CAIRO_AVAILABLE
#include <gdk/gdk.h>
#include <rb_cairo.h>
@@ -78,12 +77,10 @@ rg_gdk_region(VALUE self, VALUE region)
rb_cairo_check_status(cairo_status(_SELF(self)));
return self;
}
-#endif
void
Init_gdk_cairo(void)
{
-#if CAIRO_AVAILABLE
RG_DEF_METHOD(set_source_gdk_color, 1);
RG_DEF_METHOD(set_source_pixbuf, -1);
/* deprecated
@@ -91,5 +88,4 @@ Init_gdk_cairo(void)
*/
RG_DEF_METHOD(gdk_rectangle, 1);
RG_DEF_METHOD(gdk_region, 1);
-#endif
}
diff --git a/gdk3/ext/gdk3/rbgdkdevice.c b/gdk3/ext/gdk3/rbgdkdevice.c
index c6128ee..c39b72c 100644
--- a/gdk3/ext/gdk3/rbgdkdevice.c
+++ b/gdk3/ext/gdk3/rbgdkdevice.c
@@ -1,6 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
+ * Copyright (C) 2011-2013 Ruby-GNOME2 Project Team
* Copyright (C) 2003-2006 Masao Mutoh
*
* This library is free software; you can redistribute it and/or
@@ -70,7 +70,7 @@ rg_set_key(VALUE self, VALUE index, VALUE keyval, VALUE modifiers)
static VALUE
rg_set_axis_use(VALUE self, VALUE index, VALUE use)
{
- gdk_device_set_axis_use(_SELF(self), NUM2UINT(index),
+ gdk_device_set_axis_use(_SELF(self), NUM2UINT(index),
RVAL2GDKAXISUSE(use));
return self;
}
@@ -137,6 +137,56 @@ rg_mode(VALUE self)
return GDKINPUTMODE2RVAL(gdk_device_get_mode(_SELF(self)));
}
+static VALUE
+rg_get_window_at_position(G_GNUC_UNUSED VALUE self)
+{
+ gint x, y;
+ GdkWindow *win = gdk_device_get_window_at_position(_SELF(self), &x ,&y);
+ return rb_ary_new3(3, GOBJ2RVAL(win), INT2FIX(x), INT2FIX(y));
+}
+
+static VALUE
+rg_ungrab(int argc, VALUE *argv, VALUE self)
+{
+ VALUE rb_time;
+ guint32 time = GDK_CURRENT_TIME;
+
+ rb_scan_args(argc, argv, "01", &rb_time);
+ if (!NIL_P(rb_time)) {
+ time = NUM2UINT(GDK_CURRENT_TIME);
+ }
+ gdk_device_ungrab(_SELF(self), time);
+ return self;
+}
+
+static VALUE
+rg_get_position(VALUE self)
+{
+ GdkScreen *screen;
+ gint x, y;
+ gdk_device_get_position(_SELF(self), &screen, &x, &y);
+ return rb_ary_new3(3, GOBJ2RVAL(screen), INT2NUM(x), INT2NUM(y));
+}
+
+static VALUE
+rg_warp(VALUE self, VALUE screen, VALUE x, VALUE y)
+{
+ gdk_device_warp(_SELF(self), RVAL2GDKSCREEN(screen), NUM2INT(x), NUM2INT(y));
+ return self;
+}
+
+static VALUE
+rg_grab(VALUE self, VALUE win, VALUE grab_ownership, VALUE owner_events, VALUE event_mask, VALUE cursor, VALUE time)
+{
+ return GDKGRABSTATUS2RVAL(gdk_device_grab(_SELF(self),
+ RVAL2GDKWINDOW(win),
+ RVAL2GDKGRABOWNERSHIP(grab_ownership),
+ RVAL2CBOOL(owner_events),
+ RVAL2GDKEVENTMASK(event_mask),
+ RVAL2GDKCURSOR(cursor),
+ NUM2INT(time)));
+}
+
/* deprecated
static VALUE
rg_axes(VALUE self)
@@ -146,7 +196,7 @@ rg_axes(VALUE self)
GdkDeviceAxis* axes = _SELF(self)->axes;
for (i = 0; i < _SELF(self)->num_axes; i++){
- rb_ary_push(ary, rb_ary_new3(3, GDKAXISUSE2RVAL(axes[i].use),
+ rb_ary_push(ary, rb_ary_new3(3, GDKAXISUSE2RVAL(axes[i].use),
rb_float_new(axes[i].min), rb_float_new(axes[i].max)));
}
return ary;
@@ -167,7 +217,7 @@ rg_keys(VALUE self)
}
*/
-void
+void
Init_gdk_device(VALUE mGdk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_DEVICE, "Device", mGdk);
@@ -186,6 +236,12 @@ Init_gdk_device(VALUE mGdk)
RG_DEF_METHOD(get_history, 3);
RG_DEF_METHOD(get_axis, 2);
RG_DEF_METHOD(mode, 0);
+ RG_DEF_METHOD(get_window_at_position, 0);
+ RG_DEF_METHOD(ungrab, -1);
+ RG_DEF_METHOD(get_position, 0);
+ RG_DEF_METHOD(warp, 3);
+ RG_DEF_METHOD(grab, 6);
+
/* deprecated
RG_DEF_METHOD(axes, 0);
RG_DEF_METHOD(keys, 0);
diff --git a/glib2/ext/glib2/rbglib_i18n.c b/gdk3/ext/gdk3/rbgdkdevicemanager.c
similarity index 63%
copy from glib2/ext/glib2/rbglib_i18n.c
copy to gdk3/ext/gdk3/rbgdkdevicemanager.c
index bf598b8..3d22f8c 100644
--- a/glib2/ext/glib2/rbglib_i18n.c
+++ b/gdk3/ext/gdk3/rbgdkdevicemanager.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006 Kouhei Sutou
+ * Copyright (C) 2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -19,26 +18,22 @@
* MA 02110-1301 USA
*/
-#include "rbgprivate.h"
-#include "rbglib.h"
-#undef _
-#include <glib/gi18n.h>
+#include "rbgdk3private.h"
-#define RG_TARGET_NAMESPACE mGLib
+#define RG_TARGET_NAMESPACE cDeviceManager
+#define _SELF(obj) RVAL2GDKDEVICEMANAGER(obj)
-#if GLIB_CHECK_VERSION(2,6,0)
static VALUE
-rg_s_language_names(G_GNUC_UNUSED VALUE self)
+rg_devices(VALUE self)
{
- return STRV2RVAL((const gchar **)g_get_language_names());
+ return GOBJGLIST2RVAL_FREE(gdk_device_manager_list_devices(_SELF(self), GDK_TYPE_DEVICE),
+ g_list_free, NULL);
}
-#endif
void
-Init_glib_i18n(void)
+Init_gdk_device_manager(VALUE mGdk)
{
- /* glib/gi18n.h */
-#if GLIB_CHECK_VERSION(2,6,0)
- RG_DEF_SMETHOD(language_names, 0);
-#endif
+ VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_DISPLAY_MANAGER, "DeviceManager", mGdk);
+
+ RG_DEF_METHOD(devices, 0);
}
diff --git a/gdk3/ext/gdk3/rbgdkdisplay.c b/gdk3/ext/gdk3/rbgdkdisplay.c
index a667366..01d6d25 100644
--- a/gdk3/ext/gdk3/rbgdkdisplay.c
+++ b/gdk3/ext/gdk3/rbgdkdisplay.c
@@ -36,7 +36,7 @@ rg_s_open(G_GNUC_UNUSED VALUE self, VALUE display_name)
{
GdkDisplay* gdisplay = gdk_display_open(RVAL2CSTR(display_name));
if (! gdisplay) {
- rb_raise(rb_eRuntimeError, "The display `%s' could not be opened.",
+ rb_raise(rb_eRuntimeError, "The display `%s' could not be opened.",
RVAL2CSTR(display_name));
} else {
VALUE display;
@@ -87,23 +87,9 @@ rg_default_screen(VALUE self)
}
static VALUE
-rg_pointer_ungrab(VALUE self, VALUE time)
+rg_device_is_grabbed_p(VALUE self, VALUE device)
{
- gdk_display_pointer_ungrab(_SELF(self), NUM2ULONG(time));
- return self;
-}
-
-static VALUE
-rg_keyboard_ungrab(VALUE self, VALUE time)
-{
- gdk_display_keyboard_ungrab(_SELF(self), NUM2ULONG(time));
- return self;
-}
-
-static VALUE
-rg_pointer_grabbed_p(VALUE self)
-{
- return CBOOL2RVAL(gdk_display_pointer_is_grabbed(_SELF(self)));
+ return CBOOL2RVAL(gdk_display_device_is_grabbed(_SELF(self), RVAL2GDKDEVICE(device)));
}
static VALUE
@@ -128,12 +114,6 @@ rg_flush(VALUE self)
}
static VALUE
-rg_devices(VALUE self)
-{
- return rbgutil_glist2ary(gdk_display_list_devices(_SELF(self)));
-}
-
-static VALUE
rg_event(VALUE self)
{
return GEV2RVAL(gdk_display_get_event(_SELF(self)));
@@ -156,8 +136,8 @@ rg_put_event(VALUE self, VALUE event)
static GdkFilterReturn
filter_func(GdkXEvent xevent, GdkEvent event, gpointer func)
{
- return GENUM2RVAL(rb_funcall((VALUE)func, id_call, 2,
- ????, GEV2RVAL(event)),
+ return GENUM2RVAL(rb_funcall((VALUE)func, id_call, 2,
+ ????, GEV2RVAL(event)),
GDK_TYPE_FILTER_RETURN);
}
@@ -192,28 +172,6 @@ rg_set_double_click_distance(VALUE self, VALUE distance)
return self;
}
-static VALUE
-rg_pointer(VALUE self)
-{
- GdkScreen *screen;
- int x,y;
- GdkModifierType mask;
-
- gdk_display_get_pointer(_SELF(self), &screen, &x, &y, &mask);
-
- return rb_ary_new3(4, GOBJ2RVAL(screen), INT2NUM(x), INT2NUM(y), INT2NUM(mask));
-}
-static VALUE
-rg_window_at_pointer(VALUE self)
-{
- GdkWindow *window;
- int x,y;
-
- window = gdk_display_get_window_at_pointer(_SELF(self), &x, &y);
-
- return rb_ary_new3(3, GOBJ2RVAL(window), INT2NUM(x), INT2NUM(y));
-}
-
/* Don't implement this.
GdkDisplayPointerHooks* gdk_display_set_pointer_hooks
(GdkDisplay *display,
@@ -261,7 +219,7 @@ rg_supports_selection_notification_p(VALUE self)
static VALUE
rg_request_selection_notification_p(VALUE self, VALUE selection)
{
- return CBOOL2RVAL(gdk_display_request_selection_notification(_SELF(self),
+ return CBOOL2RVAL(gdk_display_request_selection_notification(_SELF(self),
RVAL2ATOM(selection)));
}
@@ -295,13 +253,6 @@ rg_core_pointer(VALUE self)
}
*/
-static VALUE
-rg_warp_pointer(VALUE self, VALUE screen, VALUE x, VALUE y)
-{
- gdk_display_warp_pointer(_SELF(self), RVAL2GDKSCREEN(screen), NUM2INT(x), NUM2INT(y));
- return self;
-}
-
#ifdef GDK_WINDOWING_X11
static VALUE
rg_grab(VALUE self)
@@ -419,7 +370,7 @@ rg_supports_composite_p(VALUE self)
return CBOOL2RVAL(gdk_display_supports_composite(_SELF(self)));
}
-void
+void
Init_gdk_display(VALUE mGdk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_DISPLAY, "Display", mGdk);
@@ -432,24 +383,19 @@ Init_gdk_display(VALUE mGdk)
RG_DEF_ALIAS("[]", "get_screen");
RG_DEF_METHOD(default_screen, 0);
- RG_DEF_METHOD(pointer_ungrab, 1);
- RG_DEF_METHOD(keyboard_ungrab, 1);
- RG_DEF_METHOD_P(pointer_grabbed, 0);
+ RG_DEF_METHOD_P(device_is_grabbed, 1);
RG_DEF_METHOD(beep, 0);
RG_DEF_METHOD(sync, 0);
RG_DEF_METHOD(flush, 0);
RG_DEF_METHOD(close, 0);
- RG_DEF_METHOD(devices, 0);
RG_DEF_METHOD(event, 0);
RG_DEF_METHOD(peek_event, 0);
RG_DEF_METHOD(put_event, 1);
RG_DEF_METHOD(set_double_click_time, 1);
RG_DEF_METHOD_P(closed, 0);
RG_DEF_METHOD(set_double_click_distance, 1);
- RG_DEF_METHOD(pointer, 0);
- RG_DEF_METHOD(window_at_pointer, 0);
RG_DEF_METHOD_P(supports_cursor_color, 0);
RG_DEF_METHOD_P(supports_cursor_alpha, 0);
RG_DEF_METHOD(default_cursor_size, 0);
@@ -462,7 +408,6 @@ Init_gdk_display(VALUE mGdk)
/* deprecated
RG_DEF_METHOD(core_pointer, 0);
*/
- RG_DEF_METHOD(warp_pointer, 3);
#ifdef GDK_WINDOWING_X11
RG_DEF_METHOD(grab, 0);
RG_DEF_METHOD(ungrab, 0);
diff --git a/gdk3/ext/gdk3/rbgdkevent.c b/gdk3/ext/gdk3/rbgdkevent.c
index cd0bd8f..c5e908e 100644
--- a/gdk3/ext/gdk3/rbgdkevent.c
+++ b/gdk3/ext/gdk3/rbgdkevent.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2002-2004 Ruby-GNOME2 Project Team
+ * Copyright (C) 2002-2013 Ruby-GNOME2 Project Team
* Copyright (C) 1998-2000 Yukihiro Matsumoto,
* Daisuke Kanda,
* Hiroshi Igarashi
@@ -24,25 +23,344 @@
#include "rbgdk3private.h"
-static VALUE gdkevents[36];
+static VALUE rb_cGdkEvent;
+static VALUE rb_cGdkEventAny;
+static VALUE rb_cGdkEventExpose;
+static VALUE rb_cGdkEventVisibility;
+static VALUE rb_cGdkEventMotion;
+static VALUE rb_cGdkEventButton;
+static VALUE rb_cGdkEventTouch;
+static VALUE rb_cGdkEventScroll;
+static VALUE rb_cGdkEventKey;
+static VALUE rb_cGdkEventCrossing;
+static VALUE rb_cGdkEventFocus;
+static VALUE rb_cGdkEventConfigure;
+static VALUE rb_cGdkEventProperty;
+static VALUE rb_cGdkEventSelection;
+static VALUE rb_cGdkEventOwnerChange;
+static VALUE rb_cGdkEventProximity;
+static VALUE rb_cGdkEventDND;
+static VALUE rb_cGdkEventWindowState;
+static VALUE rb_cGdkEventSetting;
+static VALUE rb_cGdkEventGrabBroken;
+
+#define DEFINE_EVENT_TYPE(type_lower_case, type_upper_case) \
+static GType \
+rb_gdk_event_ ## type_lower_case ## _get_type(void) \
+{ \
+ static GType type = 0; \
+ if (type == 0) { \
+ type = g_boxed_type_register_static("GdkEvent" # type_upper_case, \
+ (GBoxedCopyFunc)gdk_event_copy, \
+ (GBoxedFreeFunc)gdk_event_free); \
+ } \
+ return type; \
+}
+
+DEFINE_EVENT_TYPE(any, Any)
+DEFINE_EVENT_TYPE(expose, Expose)
+DEFINE_EVENT_TYPE(visibility, Visibility)
+DEFINE_EVENT_TYPE(motion, Motion)
+DEFINE_EVENT_TYPE(button, Button)
+DEFINE_EVENT_TYPE(touch, Touch)
+DEFINE_EVENT_TYPE(scroll, Scroll)
+DEFINE_EVENT_TYPE(key, Key)
+DEFINE_EVENT_TYPE(crossing, Crossing)
+DEFINE_EVENT_TYPE(focus, Focus)
+DEFINE_EVENT_TYPE(configure, Configure)
+DEFINE_EVENT_TYPE(property, Property)
+DEFINE_EVENT_TYPE(selection, Selection)
+DEFINE_EVENT_TYPE(owner_change, OwnerChange)
+DEFINE_EVENT_TYPE(proximity, Proximity)
+DEFINE_EVENT_TYPE(dnd, DND)
+DEFINE_EVENT_TYPE(window_state, WindowState)
+DEFINE_EVENT_TYPE(setting, Setting)
+DEFINE_EVENT_TYPE(grab_broken, GrabBroken)
+
+#define GDK_TYPE_EVENT_ANY (rb_gdk_event_any_get_type())
+#define GDK_TYPE_EVENT_EXPOSE (rb_gdk_event_expose_get_type())
+#define GDK_TYPE_EVENT_VISIBILITY (rb_gdk_event_visibility_get_type())
+#define GDK_TYPE_EVENT_MOTION (rb_gdk_event_motion_get_type())
+#define GDK_TYPE_EVENT_BUTTON (rb_gdk_event_button_get_type())
+#define GDK_TYPE_EVENT_TOUCH (rb_gdk_event_touch_get_type())
+#define GDK_TYPE_EVENT_SCROLL (rb_gdk_event_scroll_get_type())
+#define GDK_TYPE_EVENT_KEY (rb_gdk_event_key_get_type())
+#define GDK_TYPE_EVENT_CROSSING (rb_gdk_event_crossing_get_type())
+#define GDK_TYPE_EVENT_FOCUS (rb_gdk_event_focus_get_type())
+#define GDK_TYPE_EVENT_CONFIGURE (rb_gdk_event_configure_get_type())
+#define GDK_TYPE_EVENT_PROPERTY (rb_gdk_event_property_get_type())
+#define GDK_TYPE_EVENT_SELECTION (rb_gdk_event_selection_get_type())
+#define GDK_TYPE_EVENT_OWNER_CHANGE (rb_gdk_event_owner_change_get_type())
+#define GDK_TYPE_EVENT_PROXIMITY (rb_gdk_event_proximity_get_type())
+#define GDK_TYPE_EVENT_DND (rb_gdk_event_dnd_get_type())
+#define GDK_TYPE_EVENT_WINDOW_STATE (rb_gdk_event_window_state_get_type())
+#define GDK_TYPE_EVENT_SETTING (rb_gdk_event_setting_get_type())
+#define GDK_TYPE_EVENT_GRAB_BROKEN (rb_gdk_event_grab_broken_get_type())
/***********************************************/
-VALUE
-make_gdkevent(GdkEvent *ev)
+static GType
+rb_gdk_event_type_to_gtype(GdkEventType event_type)
+{
+ GType gtype = GDK_TYPE_EVENT_ANY;
+
+ switch (event_type) {
+ case GDK_NOTHING:
+ case GDK_DELETE:
+ case GDK_DESTROY:
+ break;
+ case GDK_EXPOSE:
+ gtype = GDK_TYPE_EVENT_EXPOSE;
+ break;
+ case GDK_MOTION_NOTIFY:
+ gtype = GDK_TYPE_EVENT_MOTION;
+ break;
+ case GDK_BUTTON_PRESS:
+ case GDK_2BUTTON_PRESS:
+ case GDK_3BUTTON_PRESS:
+ case GDK_BUTTON_RELEASE:
+ gtype = GDK_TYPE_EVENT_BUTTON;
+ break;
+ case GDK_KEY_PRESS:
+ case GDK_KEY_RELEASE:
+ gtype = GDK_TYPE_EVENT_KEY;
+ break;
+ case GDK_ENTER_NOTIFY:
+ case GDK_LEAVE_NOTIFY:
+ gtype = GDK_TYPE_EVENT_CROSSING;
+ break;
+ case GDK_FOCUS_CHANGE:
+ gtype = GDK_TYPE_EVENT_FOCUS;
+ break;
+ case GDK_CONFIGURE:
+ gtype = GDK_TYPE_EVENT_CONFIGURE;
+ break;
+ case GDK_MAP:
+ case GDK_UNMAP:
+ break;
+ case GDK_PROPERTY_NOTIFY:
+ gtype = GDK_TYPE_EVENT_PROPERTY;
+ break;
+ case GDK_SELECTION_CLEAR:
+ case GDK_SELECTION_REQUEST:
+ case GDK_SELECTION_NOTIFY:
+ gtype = GDK_TYPE_EVENT_SELECTION;
+ break;
+ case GDK_PROXIMITY_IN:
+ case GDK_PROXIMITY_OUT:
+ gtype = GDK_TYPE_EVENT_PROXIMITY;
+ break;
+ case GDK_DRAG_ENTER:
+ case GDK_DRAG_LEAVE:
+ case GDK_DRAG_MOTION:
+ case GDK_DRAG_STATUS:
+ case GDK_DROP_START:
+ case GDK_DROP_FINISHED:
+ gtype = GDK_TYPE_EVENT_DND;
+ break;
+ case GDK_CLIENT_EVENT:
+ break;
+ case GDK_VISIBILITY_NOTIFY:
+ gtype = GDK_TYPE_EVENT_VISIBILITY;
+ break;
+ case GDK_SCROLL:
+ gtype = GDK_TYPE_EVENT_SCROLL;
+ break;
+ case GDK_WINDOW_STATE:
+ gtype = GDK_TYPE_EVENT_WINDOW_STATE;
+ break;
+ case GDK_SETTING:
+ gtype = GDK_TYPE_EVENT_SETTING;
+ break;
+ case GDK_OWNER_CHANGE:
+ gtype = GDK_TYPE_EVENT_OWNER_CHANGE;
+ break;
+ case GDK_GRAB_BROKEN:
+ gtype = GDK_TYPE_EVENT_GRAB_BROKEN;
+ break;
+ case GDK_DAMAGE:
+ gtype = GDK_TYPE_EVENT_EXPOSE;
+ break;
+ case GDK_TOUCH_BEGIN:
+ case GDK_TOUCH_UPDATE:
+ case GDK_TOUCH_END:
+ case GDK_TOUCH_CANCEL:
+ gtype = GDK_TYPE_EVENT_TOUCH;
+ break;
+ case GDK_EVENT_LAST:
+ break;
+ default:
+ break;
+ }
+
+ return gtype;
+}
+
+static VALUE
+rb_gdk_event_type_to_class(GdkEventType event_type)
+{
+ VALUE klass = Qnil;
+
+ switch (event_type) {
+ case GDK_NOTHING:
+ case GDK_DELETE:
+ case GDK_DESTROY:
+ break;
+ case GDK_EXPOSE:
+ klass = rb_cGdkEventExpose;
+ break;
+ case GDK_MOTION_NOTIFY:
+ klass = rb_cGdkEventMotion;
+ break;
+ case GDK_BUTTON_PRESS:
+ case GDK_2BUTTON_PRESS:
+ case GDK_3BUTTON_PRESS:
+ case GDK_BUTTON_RELEASE:
+ klass = rb_cGdkEventButton;
+ break;
+ case GDK_KEY_PRESS:
+ case GDK_KEY_RELEASE:
+ klass = rb_cGdkEventKey;
+ break;
+ case GDK_ENTER_NOTIFY:
+ case GDK_LEAVE_NOTIFY:
+ klass = rb_cGdkEventCrossing;
+ break;
+ case GDK_FOCUS_CHANGE:
+ klass = rb_cGdkEventFocus;
+ break;
+ case GDK_CONFIGURE:
+ klass = rb_cGdkEventConfigure;
+ break;
+ case GDK_MAP:
+ case GDK_UNMAP:
+ break;
+ case GDK_PROPERTY_NOTIFY:
+ klass = rb_cGdkEventProperty;
+ break;
+ case GDK_SELECTION_CLEAR:
+ case GDK_SELECTION_REQUEST:
+ case GDK_SELECTION_NOTIFY:
+ klass = rb_cGdkEventSelection;
+ break;
+ case GDK_PROXIMITY_IN:
+ case GDK_PROXIMITY_OUT:
+ klass = rb_cGdkEventProximity;
+ break;
+ case GDK_DRAG_ENTER:
+ case GDK_DRAG_LEAVE:
+ case GDK_DRAG_MOTION:
+ case GDK_DRAG_STATUS:
+ case GDK_DROP_START:
+ case GDK_DROP_FINISHED:
+ klass = rb_cGdkEventDND;
+ break;
+ case GDK_CLIENT_EVENT:
+ break;
+ case GDK_VISIBILITY_NOTIFY:
+ klass = rb_cGdkEventVisibility;
+ break;
+ case GDK_SCROLL:
+ klass = rb_cGdkEventScroll;
+ break;
+ case GDK_WINDOW_STATE:
+ klass = rb_cGdkEventWindowState;
+ break;
+ case GDK_SETTING:
+ klass = rb_cGdkEventSetting;
+ break;
+ case GDK_OWNER_CHANGE:
+ klass = rb_cGdkEventOwnerChange;
+ break;
+ case GDK_GRAB_BROKEN:
+ klass = rb_cGdkEventGrabBroken;
+ break;
+ case GDK_DAMAGE:
+ klass = rb_cGdkEventExpose;
+ break;
+ case GDK_TOUCH_BEGIN:
+ case GDK_TOUCH_UPDATE:
+ case GDK_TOUCH_END:
+ case GDK_TOUCH_CANCEL:
+ klass = rb_cGdkEventTouch;
+ break;
+ case GDK_EVENT_LAST:
+ break;
+ default:
+ break;
+ }
+
+ if (NIL_P(klass)) {
+ klass = rb_cGdkEventAny;
+ }
+
+ return klass;
+}
+
+static GType
+rb_gdk_event_to_gtype(VALUE event)
{
- VALUE obj;
- if (ev == NULL) return Qnil;
+ VALUE klass;
+ GType type = GDK_TYPE_EVENT;
+
+ klass = rb_obj_class(event);
+ if (klass == rb_cGdkEvent) {
+ type = GDK_TYPE_EVENT;
+ } else if (klass == rb_cGdkEventAny) {
+ type = GDK_TYPE_EVENT_ANY;
+ } else if (klass == rb_cGdkEventExpose) {
+ type = GDK_TYPE_EVENT_EXPOSE;
+ } else if (klass == rb_cGdkEventVisibility) {
+ type = GDK_TYPE_EVENT_VISIBILITY;
+ } else if (klass == rb_cGdkEventMotion) {
+ type = GDK_TYPE_EVENT_MOTION;
+ } else if (klass == rb_cGdkEventButton) {
+ type = GDK_TYPE_EVENT_BUTTON;
+ } else if (klass == rb_cGdkEventScroll) {
+ type = GDK_TYPE_EVENT_SCROLL;
+ } else if (klass == rb_cGdkEventKey) {
+ type = GDK_TYPE_EVENT_KEY;
+ } else if (klass == rb_cGdkEventCrossing) {
+ type = GDK_TYPE_EVENT_CROSSING;
+ } else if (klass == rb_cGdkEventFocus) {
+ type = GDK_TYPE_EVENT_FOCUS;
+ } else if (klass == rb_cGdkEventConfigure) {
+ type = GDK_TYPE_EVENT_CONFIGURE;
+ } else if (klass == rb_cGdkEventProperty) {
+ type = GDK_TYPE_EVENT_PROPERTY;
+ } else if (klass == rb_cGdkEventSelection) {
+ type = GDK_TYPE_EVENT_SELECTION;
+ } else if (klass == rb_cGdkEventOwnerChange) {
+ type = GDK_TYPE_EVENT_OWNER_CHANGE;
+ } else if (klass == rb_cGdkEventProximity) {
+ type = GDK_TYPE_EVENT_PROXIMITY;
+ } else if (klass == rb_cGdkEventDND) {
+ type = GDK_TYPE_EVENT_DND;
+ } else if (klass == rb_cGdkEventWindowState) {
+ type = GDK_TYPE_EVENT_WINDOW_STATE;
+ } else if (klass == rb_cGdkEventSetting) {
+ type = GDK_TYPE_EVENT_SETTING;
+ } else if (klass == rb_cGdkEventGrabBroken) {
+ type = GDK_TYPE_EVENT_GRAB_BROKEN;
+ } else if (klass == rb_cGdkEventTouch) {
+ type = GDK_TYPE_EVENT_TOUCH;
+ } else {
+ rb_raise(rb_eArgError, "Not event object: %s", RBG_INSPECT(event));
+ }
+
+ return type;
+}
- obj = GDKEVENT2RVAL(ev);
- RBASIC(obj)->klass = gdkevents[ev->type]; /* hack */
- return obj;
+VALUE
+rbgdk_gdkevent2rval(GdkEvent *event)
+{
+ return BOXED2RVAL(event, rb_gdk_event_type_to_gtype(event->any.type));
}
-GdkEvent*
-get_gdkevent(VALUE event)
+GdkEvent *
+rbgdk_rval2gdkevent(VALUE event)
{
- return NIL_P(event) ? NULL : RVAL2GDKEVENT(event);
+ return RVAL2BOXED(event, rb_gdk_event_to_gtype(event));
}
/***********************************************/
@@ -50,12 +368,12 @@ get_gdkevent(VALUE event)
static VALUE \
gdkevent ## type ## _ ## name (VALUE self)\
{\
- return CSTR2RVAL(get_gdkevent(self)->type.name);\
+ return CSTR2RVAL(RVAL2GDKEVENT(self)->type.name);\
}\
static VALUE \
gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
{\
- get_gdkevent(self)->type.name = (gchar *)RVAL2CSTR(val);\
+ RVAL2GDKEVENT(self)->type.name = (gchar *)RVAL2CSTR(val);\
return self;\
}
@@ -63,12 +381,12 @@ gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
static VALUE \
gdkevent ## type ## _ ## name (VALUE self)\
{\
- return INT2NUM(get_gdkevent(self)->type.name);\
+ return INT2NUM(RVAL2GDKEVENT(self)->type.name);\
}\
static VALUE \
gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
{\
- get_gdkevent(self)->type.name = NUM2INT(val);\
+ RVAL2GDKEVENT(self)->type.name = NUM2INT(val);\
return self;\
}
@@ -76,12 +394,12 @@ gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
static VALUE \
gdkevent ## type ## _ ## name (VALUE self)\
{\
- return UINT2NUM(get_gdkevent(self)->type.name);\
+ return UINT2NUM(RVAL2GDKEVENT(self)->type.name);\
}\
static VALUE \
gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
{\
- get_gdkevent(self)->type.name = NUM2UINT(val);\
+ RVAL2GDKEVENT(self)->type.name = NUM2UINT(val);\
return self;\
}
@@ -89,12 +407,12 @@ gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
static VALUE \
gdkevent ## type ## _ ## name (VALUE self)\
{\
- return GOBJ2RVAL(get_gdkevent(self)->type.name);\
+ return GOBJ2RVAL(RVAL2GDKEVENT(self)->type.name);\
}\
static VALUE \
gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
{\
- get_gdkevent(self)->type.name = RVAL2GDKWINDOW(val);\
+ RVAL2GDKEVENT(self)->type.name = RVAL2GDKWINDOW(val);\
return self;\
}
@@ -102,12 +420,12 @@ gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
static VALUE \
gdkevent ## type ## _ ## name (VALUE self)\
{\
- return rb_float_new(get_gdkevent(self)->type.name);\
+ return rb_float_new(RVAL2GDKEVENT(self)->type.name);\
}\
static VALUE \
gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
{\
- get_gdkevent(self)->type.name = NUM2DBL(val);\
+ RVAL2GDKEVENT(self)->type.name = NUM2DBL(val);\
return self;\
}
@@ -115,13 +433,13 @@ gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
static VALUE \
gdkevent ## type ## _ ## name (VALUE self)\
{\
- return GOBJ2RVAL(get_gdkevent(self)->type.name);\
+ return GOBJ2RVAL(RVAL2GDKEVENT(self)->type.name);\
}\
static VALUE \
gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
{\
GdkEvent *event;\
- event = get_gdkevent(self);\
+ event = RVAL2GDKEVENT(self);\
if (event->type.name)\
g_object_unref(event->type.name);\
event->type.name = RVAL2GOBJ(val);\
@@ -134,12 +452,12 @@ gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
static VALUE \
gdkevent ## type ## _ ## name (VALUE self)\
{\
- return CBOOL2RVAL(get_gdkevent(self)->type.name);\
+ return CBOOL2RVAL(RVAL2GDKEVENT(self)->type.name);\
}\
static VALUE \
gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
{\
- get_gdkevent(self)->type.name = RVAL2CBOOL(val);\
+ RVAL2GDKEVENT(self)->type.name = RVAL2CBOOL(val);\
return self;\
}
@@ -147,13 +465,13 @@ gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
static VALUE \
gdkevent ## type ## _ ## name (VALUE self)\
{\
- GdkAtom atom = get_gdkevent(self)->type.name;\
+ GdkAtom atom = RVAL2GDKEVENT(self)->type.name;\
return GDKATOM2RVAL(atom);\
}\
static VALUE \
gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
{\
- get_gdkevent(self)->type.name = RVAL2ATOM(val);\
+ RVAL2GDKEVENT(self)->type.name = RVAL2ATOM(val);\
return self;\
}
@@ -161,12 +479,12 @@ gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
static VALUE \
gdkevent ## type ## _ ## name (VALUE self)\
{\
- return GFLAGS2RVAL(get_gdkevent(self)->type.name, gtype);\
+ return GFLAGS2RVAL(RVAL2GDKEVENT(self)->type.name, gtype);\
}\
static VALUE \
gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
{\
- get_gdkevent(self)->type.name = RVAL2GFLAGS(val, gtype);\
+ RVAL2GDKEVENT(self)->type.name = RVAL2GFLAGS(val, gtype);\
return self;\
}
@@ -174,12 +492,12 @@ gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
static VALUE \
gdkevent ## type ## _ ## name (VALUE self)\
{\
- return GENUM2RVAL(get_gdkevent(self)->type.name, gtype);\
+ return GENUM2RVAL(RVAL2GDKEVENT(self)->type.name, gtype);\
}\
static VALUE \
gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
{\
- get_gdkevent(self)->type.name = RVAL2GENUM(val, gtype);\
+ RVAL2GDKEVENT(self)->type.name = RVAL2GENUM(val, gtype);\
return self;\
}
@@ -187,7 +505,7 @@ gdkevent ## type ## _set_ ## name (VALUE self, VALUE val)\
static VALUE \
gdkevent ##type ## _axes(VALUE self)\
{\
- gdkklass type = get_gdkevent(self)->type;\
+ gdkklass type = RVAL2GDKEVENT(self)->type;\
return type.axes ? rb_ary_new3(2, \
rb_float_new(type.axes[0]),\
rb_float_new(type.axes[1])) : Qnil;\
@@ -195,7 +513,7 @@ gdkevent ##type ## _axes(VALUE self)\
static VALUE \
gdkevent ## type ## _set_axes(VALUE self, VALUE x, VALUE y)\
{\
- gdkklass val = get_gdkevent(self)->type;\
+ gdkklass val = RVAL2GDKEVENT(self)->type;\
val.axes[0] = NUM2DBL(x);\
val.axes[1] = NUM2DBL(y);\
return self;\
@@ -240,45 +558,42 @@ gdkevent_s_events_pending(G_GNUC_UNUSED VALUE self)
static VALUE
gdkevent_s_peek(G_GNUC_UNUSED VALUE self)
{
- return make_gdkevent(gdk_event_peek());
+ return GDKEVENT2RVAL(gdk_event_peek());
}
static VALUE
gdkevent_s_get(G_GNUC_UNUSED VALUE self)
{
- return make_gdkevent(gdk_event_get());
-}
-
-/* deprecated
-static VALUE
-gdkevent_s_get_graphics_expose(G_GNUC_UNUSED VALUE self, VALUE window)
-{
- return make_gdkevent(gdk_event_get_graphics_expose(RVAL2GDKWINDOW(window)));
+ return GDKEVENT2RVAL(gdk_event_get());
}
-*/
/* GdkEvent */
static VALUE
gdkevent_initialize(VALUE self, VALUE type)
{
- GdkEventType gtype = RVAL2GDKEVENTTYPE(type);
- if (RBASIC(self)->klass != gdkevents[gtype])
+ GdkEventType event_type;
+ VALUE klass;
+
+ event_type = RVAL2GDKEVENTTYPE(type);
+ klass = rb_gdk_event_type_to_class(event_type);
+ if (!RVAL2CBOOL(rb_obj_is_kind_of(self, klass))) {
rb_raise(rb_eArgError, "Wrong event type for this class.");
+ }
- G_INITIALIZE(self, gdk_event_new(gtype));
+ G_INITIALIZE(self, gdk_event_new(event_type));
return Qnil;
}
static VALUE
gdkevent_type(VALUE self)
{
- return GDKEVENTTYPE2RVAL(get_gdkevent(self)->type);
+ return GDKEVENTTYPE2RVAL(RVAL2GDKEVENT(self)->type);
}
static VALUE
gdkevent_put(VALUE self)
{
- gdk_event_put(get_gdkevent(self));
+ gdk_event_put(RVAL2GDKEVENT(self));
return self;
}
@@ -292,7 +607,7 @@ static VALUE
gdkevent_get_axis(VALUE self, VALUE axis_use)
{
gdouble value;
- gboolean ret = gdk_event_get_axis(get_gdkevent(self),
+ gboolean ret = gdk_event_get_axis(RVAL2GDKEVENT(self),
RVAL2GDKAXISUSE(axis_use), &value);
return ret ? rb_float_new(value) : Qnil;
}
@@ -301,7 +616,7 @@ static VALUE
gdkevent_get_coords(VALUE self)
{
gdouble x_win, y_win;
- gboolean ret = gdk_event_get_coords(get_gdkevent(self), &x_win, &y_win);
+ gboolean ret = gdk_event_get_coords(RVAL2GDKEVENT(self), &x_win, &y_win);
return ret ? rb_ary_new3(2, rb_float_new(x_win), rb_float_new(y_win)) : Qnil;
}
@@ -310,7 +625,7 @@ static VALUE
gdkevent_get_root_coords(VALUE self)
{
gdouble x_root, y_root;
- gboolean ret = gdk_event_get_root_coords(get_gdkevent(self), &x_root, &y_root);
+ gboolean ret = gdk_event_get_root_coords(RVAL2GDKEVENT(self), &x_root, &y_root);
return ret ? rb_ary_new3(2, rb_float_new(x_root), rb_float_new(y_root)) : Qnil;
}
@@ -318,7 +633,7 @@ gdkevent_get_root_coords(VALUE self)
static void
handler_func(GdkEvent *event, gpointer func)
{
- rb_funcall((VALUE)func, id_call, 1, make_gdkevent(event));
+ rb_funcall((VALUE)func, id_call, 1, GDKEVENT2RVAL(event));
}
static VALUE
@@ -347,14 +662,14 @@ gdkevent_s_set_show_events(VALUE self, VALUE show_events)
static VALUE
gdkevent_set_screen(VALUE self, VALUE screen)
{
- gdk_event_set_screen(get_gdkevent(self), RVAL2GDKSCREEN(screen));
+ gdk_event_set_screen(RVAL2GDKEVENT(self), RVAL2GDKSCREEN(screen));
return self;
}
static VALUE
gdkevent_screen(VALUE self)
{
- return GOBJ2RVAL(gdk_event_get_screen(get_gdkevent(self)));
+ return GOBJ2RVAL(gdk_event_get_screen(RVAL2GDKEVENT(self)));
}
/*
@@ -405,6 +720,19 @@ ATTR_GOBJ(button, device);
ATTR_FLOAT(button, x_root);
ATTR_FLOAT(button, y_root);
+/* GdkEventTouch */
+ATTR_GOBJ(touch, window);
+ATTR_BOOL(touch, send_event);
+ATTR_UINT(touch, time);
+ATTR_FLOAT(touch, x);
+ATTR_FLOAT(touch, y);
+ATTR_AXES(touch, GdkEventTouch);
+ATTR_FLAGS(touch, state, GDK_TYPE_MODIFIER_TYPE);
+ATTR_BOOL(touch, emulating_pointer);
+ATTR_GOBJ(touch, device);
+ATTR_FLOAT(touch, x_root);
+ATTR_FLOAT(touch, y_root);
+
/* GdkEventScroll */
ATTR_UINT(scroll, time);
ATTR_FLOAT(scroll, x);
@@ -431,45 +759,44 @@ GDKEVENT_INIT(motion, GDK_MOTION_NOTIFY);
static VALUE
gdkeventmotion_request_motions(VALUE self)
{
- gdk_event_request_motions(&(get_gdkevent(self)->motion));
+ gdk_event_request_motions(&(RVAL2GDKEVENT(self)->motion));
return self;
}
/* GdkEventExpose */
-/* deprecated
static VALUE
gdkeventexpose_area(VALUE self)
{
- return GDKRECTANGLE2RVAL(&get_gdkevent(self)->expose.area);
+ return GDKRECTANGLE2RVAL(&RVAL2GDKEVENT(self)->expose.area);
}
-
+
static VALUE
gdkeventexpose_set_area(VALUE self, VALUE rect)
{
GdkRectangle* grect = RVAL2GDKRECTANGLE(rect);
- GdkEventExpose event = get_gdkevent(self)->expose;
- event.area.x = grect->x;
- event.area.y = grect->y;
- event.area.width = grect->width;
- event.area.height = grect->height;
+ GdkEventExpose *event = &(RVAL2GDKEVENT(self)->expose);
+ event->area.x = grect->x;
+ event->area.y = grect->y;
+ event->area.width = grect->width;
+ event->area.height = grect->height;
return self;
}
static VALUE
gdkeventexpose_region(VALUE self)
{
- return GDKREGION2RVAL(get_gdkevent(self)->expose.region);
+ return CRREGION2RVAL(RVAL2GDKEVENT(self)->expose.region);
}
+
static VALUE
gdkeventexpose_set_region(VALUE self, VALUE region)
{
- get_gdkevent(self)->expose.region = RVAL2GDKREGION(region);
+ RVAL2GDKEVENT(self)->expose.region = RVAL2CRREGION(region);
return self;
}
ATTR_INT(expose, count);
GDKEVENT_INIT(expose, GDK_EXPOSE);
-*/
/* GdkEventVisibility */
ATTR_ENUM(visibility, state, GDK_TYPE_VISIBILITY_STATE);
@@ -521,88 +848,6 @@ ATTR_INT(dnd, y_root);
ATTR_UINT(proximity, time);
ATTR_GOBJ(proximity, device);
-/* GdkEventClient */
-/* deprecated
-ATTR_ATOM(client, message_type);
-GDKEVENT_INIT(client, GDK_CLIENT_EVENT);
-
-static VALUE
-gdkeventclient_data_format(VALUE self)
-{
- return INT2NUM(get_gdkevent(self)->client.data_format);
-}
-
-static VALUE
-gdkeventclient_data(VALUE self)
-{
- int i;
- VALUE ary = Qnil;
- gushort format = get_gdkevent(self)->client.data_format;
-
- if (format == 8) {
- ary = rb_ary_new2(20);
- for (i = 0; i < 20; i++)
- rb_ary_push(ary, INT2FIX(get_gdkevent(self)->client.data.b[i]));
- } else if (format == 16) {
- ary = rb_ary_new2(10);
- for (i = 0; i<10; i++)
- rb_ary_push(ary, INT2FIX(get_gdkevent(self)->client.data.s[i]));
- } else if (format == 32){
- ary = rb_ary_new2(5);
- for (i = 0; i < 5; i++)
- rb_ary_push(ary, INT2NUM(get_gdkevent(self)->client.data.l[i]));
- } else {
- rb_warn("The format is not supported.");
- }
- return ary;
-}
-
-static VALUE
-gdkeventclient_send_client_message(int argc, VALUE *argv, VALUE self)
-{
- VALUE xid, display;
- rb_scan_args(argc, argv, "11", &xid, &display);
- if (NIL_P(display)){
- return CBOOL2RVAL(gdk_event_send_client_message(
- get_gdkevent(self), RVAL2GDKNATIVEWINDOW(xid)));
- } else {
- return CBOOL2RVAL(gdk_event_send_client_message_for_display(
- RVAL2GDKDISPLAYOBJECT(display),
- get_gdkevent(self),
- RVAL2GDKNATIVEWINDOW(xid)));
- }
-}
-
-static VALUE
-gdkeventclient_send_clientmessage_toall(VALUE self)
-{
- gdk_event_send_clientmessage_toall(get_gdkevent(self));
- return self;
-}
-
-static GdkFilterReturn
-filter_func(GdkXEvent *xevent, GdkEvent *event, gpointer func)
-{
- VALUE ret = rb_funcall((VALUE)func, id_call, 2, LONG2NUM((glong)xevent), make_gdkevent(event));
- return RVAL2GDKFILTERRETURN(ret);
-}
-
-static VALUE
-gdkevent_s_add_client_message_filter(VALUE self, VALUE message_type)
-{
- volatile VALUE func = rb_block_proc();
- G_RELATIVE(self, func);
- gdk_add_client_message_filter(RVAL2ATOM(message_type),
- (GdkFilterFunc)filter_func, (gpointer)func);
- return self;
-}
-*/
-
-/* GdkEventNoExpose */
-/* deprecated
-GDKEVENT_INIT(noexpose, GDK_NO_EXPOSE);
-*/
-
/* GdkEventWindowState */
ATTR_FLAGS(window_state, changed_mask, GDK_TYPE_WINDOW_STATE);
ATTR_FLAGS(window_state, new_window_state, GDK_TYPE_WINDOW_STATE);
@@ -628,299 +873,302 @@ ATTR_GOBJ(grab_broken, grab_window);
GDKEVENT_INIT(grab_broken, GDK_GRAB_BROKEN);
/* MISC */
-static VALUE
+static VALUE
gdkevent_g2r(const GValue *values)
{
- return make_gdkevent(g_value_get_boxed(&values[0]));
+ return GDKEVENT2RVAL(g_value_get_boxed(&values[0]));
}
void
Init_gdk_event(VALUE mGdk)
{
- VALUE ev;
- VALUE gdkEvent;
- VALUE gdkEventAny;
+ /* GdkEvent */
+ rb_cGdkEvent = G_DEF_CLASS(GDK_TYPE_EVENT, "Event", mGdk);
+ rbg_define_method(rb_cGdkEvent, "initialize", gdkevent_initialize, 1);
+ rbg_define_method(rb_cGdkEvent, "event_type", gdkevent_type, 0);
+
+ rbg_define_singleton_method(rb_cGdkEvent, "events_pending?", gdkevent_s_events_pending, 0);
+ rbg_define_singleton_method(rb_cGdkEvent, "peek", gdkevent_s_peek, 0);
+ rbg_define_singleton_method(rb_cGdkEvent, "get", gdkevent_s_get, 0);
+ rbg_define_method(rb_cGdkEvent, "put", gdkevent_put, 0);
+ rbg_define_method(rb_cGdkEvent, "get_axis", gdkevent_get_axis, 1);
+ rbg_define_method(rb_cGdkEvent, "coords", gdkevent_get_coords, 0);
+ rbg_define_method(rb_cGdkEvent, "root_coords", gdkevent_get_root_coords, 0);
+
+ rbg_define_singleton_method(rb_cGdkEvent, "handler_set", gdkevent_s_handler_set, 0);
+ rbg_define_singleton_method(rb_cGdkEvent, "show_events?", gdkevent_s_get_show_events, 0);
+ rbg_define_singleton_method(rb_cGdkEvent, "set_show_events", gdkevent_s_set_show_events, 1);
+ rbg_define_singleton_method(rb_cGdkEvent, "setting_get", gdkevent_s_setting_get, -1);
+ rbg_define_method(rb_cGdkEvent, "screen", gdkevent_screen, 0);
+ rbg_define_method(rb_cGdkEvent, "set_screen", gdkevent_set_screen, 1);
- gdkEvent = G_DEF_CLASS(GDK_TYPE_EVENT, "Event", mGdk);
- gdkEventAny = rb_define_class_under(mGdk, "EventAny", gdkEvent);
+ /*
+ * GdkEvent's Constants
+ */
+ rb_define_const(rb_cGdkEvent, "CURRENT_TIME", INT2FIX(GDK_CURRENT_TIME));
+ rb_define_const(rb_cGdkEvent, "PRIORITY_EVENTS", INT2FIX(GDK_PRIORITY_EVENTS));
+ rb_define_const(rb_cGdkEvent, "PRIORITY_REDRAW", INT2FIX(GDK_PRIORITY_REDRAW));
- gdkevents[GDK_DELETE] = gdkEventAny;
- gdkevents[GDK_DESTROY] = gdkEventAny;
-/* deprecated
- gdkevents[GDK_EXPOSE] = rb_define_class_under(mGdk, "EventExpose", gdkEventAny);
-*/
- gdkevents[GDK_MOTION_NOTIFY] = rb_define_class_under(mGdk, "EventMotion", gdkEventAny);
- gdkevents[GDK_BUTTON_PRESS] = rb_define_class_under(mGdk, "EventButton", gdkEventAny);
- gdkevents[GDK_2BUTTON_PRESS] = gdkevents[GDK_BUTTON_PRESS];
- gdkevents[GDK_3BUTTON_PRESS] = gdkevents[GDK_BUTTON_PRESS];
- gdkevents[GDK_BUTTON_RELEASE]= gdkevents[GDK_BUTTON_PRESS];
- gdkevents[GDK_KEY_PRESS] = rb_define_class_under(mGdk, "EventKey", gdkEventAny);
- gdkevents[GDK_KEY_RELEASE] = gdkevents[GDK_KEY_PRESS];
- gdkevents[GDK_ENTER_NOTIFY] = rb_define_class_under(mGdk, "EventCrossing", gdkEventAny);
- gdkevents[GDK_LEAVE_NOTIFY] = gdkevents[GDK_ENTER_NOTIFY];
- gdkevents[GDK_FOCUS_CHANGE] = rb_define_class_under(mGdk, "EventFocus", gdkEventAny);
- gdkevents[GDK_CONFIGURE] = rb_define_class_under(mGdk, "EventConfigure", gdkEventAny);
- gdkevents[GDK_MAP] = gdkEventAny;
- gdkevents[GDK_UNMAP] = gdkEventAny;
- gdkevents[GDK_PROPERTY_NOTIFY]= rb_define_class_under(mGdk, "EventProperty", gdkEventAny);
- gdkevents[GDK_SELECTION_CLEAR]= rb_define_class_under(mGdk, "EventSelection", gdkEventAny);
- gdkevents[GDK_SELECTION_REQUEST]= gdkevents[GDK_SELECTION_CLEAR];
- gdkevents[GDK_SELECTION_NOTIFY] = gdkevents[GDK_SELECTION_CLEAR];
- gdkevents[GDK_PROXIMITY_IN] = rb_define_class_under(mGdk, "EventProximity", gdkEventAny);
- gdkevents[GDK_PROXIMITY_OUT] = gdkevents[GDK_PROXIMITY_IN];
- gdkevents[GDK_DRAG_ENTER] = rb_define_class_under(mGdk, "EventDND", gdkEventAny);
- gdkevents[GDK_DRAG_LEAVE] = gdkevents[GDK_DRAG_ENTER];
- gdkevents[GDK_DRAG_MOTION] = gdkevents[GDK_DRAG_ENTER];
- gdkevents[GDK_DRAG_STATUS] = gdkevents[GDK_DRAG_ENTER];
- gdkevents[GDK_DROP_START] = gdkevents[GDK_DRAG_ENTER];
- gdkevents[GDK_DROP_FINISHED] = gdkevents[GDK_DRAG_ENTER];
- gdkevents[GDK_CLIENT_EVENT] = rb_define_class_under(mGdk, "EventClient", gdkEventAny);
- gdkevents[GDK_VISIBILITY_NOTIFY] = rb_define_class_under(mGdk, "EventVisibility", gdkEventAny);
-/* deprecated
- gdkevents[GDK_NO_EXPOSE] = rb_define_class_under(mGdk, "EventNoExpose", gdkEventAny);
-*/
- gdkevents[GDK_SCROLL] = rb_define_class_under(mGdk, "EventScroll", gdkEventAny);
- gdkevents[GDK_WINDOW_STATE] = rb_define_class_under(mGdk, "EventWindowState", gdkEventAny);
- gdkevents[GDK_SETTING] = rb_define_class_under(mGdk, "EventSetting", gdkEventAny);
- gdkevents[GDK_OWNER_CHANGE] = rb_define_class_under(mGdk, "EventOwnerChange", gdkEventAny);
- gdkevents[GDK_GRAB_BROKEN] = rb_define_class_under(mGdk, "EventGrabBroken", gdkEventAny);
+ /* GdkEventType */
+ /* XXX */
+ G_RENAME_CONSTANT("2BUTTON_PRESS","BUTTON2_PRESS");
+ G_RENAME_CONSTANT("3BUTTON_PRESS","BUTTON3_PRESS");
+ G_DEF_CLASS(GDK_TYPE_EVENT_TYPE, "Type", rb_cGdkEvent);
+ G_RENAME_CONSTANT("2BUTTON_PRESS","BUTTON2_PRESS");
+ G_RENAME_CONSTANT("3BUTTON_PRESS","BUTTON3_PRESS");
+ G_DEF_CONSTANTS(rb_cGdkEvent, GDK_TYPE_EVENT_TYPE, "GDK_");
- /* GdkEvent */
- rbg_define_method(gdkEvent, "initialize", gdkevent_initialize, 1);
- rbg_define_method(gdkEvent, "event_type", gdkevent_type, 0);
-
- rbg_define_singleton_method(gdkEvent, "events_pending?", gdkevent_s_events_pending, 0);
- rbg_define_singleton_method(gdkEvent, "peek", gdkevent_s_peek, 0);
- rbg_define_singleton_method(gdkEvent, "get", gdkevent_s_get, 0);
- rbg_define_method(gdkEvent, "put", gdkevent_put, 0);
- rbg_define_method(gdkEvent, "get_axis", gdkevent_get_axis, 1);
- rbg_define_method(gdkEvent, "coords", gdkevent_get_coords, 0);
- rbg_define_method(gdkEvent, "root_coords", gdkevent_get_root_coords, 0);
-
- rbg_define_singleton_method(gdkEvent, "handler_set", gdkevent_s_handler_set, 0);
- rbg_define_singleton_method(gdkEvent, "show_events?", gdkevent_s_get_show_events, 0);
- rbg_define_singleton_method(gdkEvent, "set_show_events", gdkevent_s_set_show_events, 1);
- rbg_define_singleton_method(gdkEvent, "setting_get", gdkevent_s_setting_get, -1);
-/* deprecated
- rbg_define_singleton_method(gdkEvent, "add_client_message_filter", gdkevent_s_add_client_message_filter, 1);
-*/
- rbg_define_method(gdkEvent, "screen", gdkevent_screen, 0);
- rbg_define_method(gdkEvent, "set_screen", gdkevent_set_screen, 1);
+ /* GdkEventMask */
+ G_DEF_CLASS(GDK_TYPE_EVENT_MASK, "Mask", rb_cGdkEvent);
+ G_DEF_CONSTANTS(rb_cGdkEvent, GDK_TYPE_EVENT_MASK, "GDK_");
/* GdkEventAny */
- DEFINE_ACCESSOR(gdkEventAny, any, window);
- rbg_define_method(gdkEventAny, "send_event?", gdkeventany_send_event, 0);
- rbg_define_method(gdkEventAny, "set_send_event", gdkeventany_set_send_event, 1);
-
- /* GdkEventKey */
- ev = gdkevents[GDK_KEY_PRESS];
- DEFINE_ACCESSOR(ev, key, time);
- DEFINE_ACCESSOR(ev, key, state);
- DEFINE_ACCESSOR(ev, key, keyval);
- DEFINE_ACCESSOR(ev, key, hardware_keycode);
- DEFINE_ACCESSOR(ev, key, group);
+ rb_cGdkEventAny =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_ANY, "EventAny",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventAny, any, window);
+ rbg_define_method(rb_cGdkEventAny, "send_event?", gdkeventany_send_event, 0);
+ rbg_define_method(rb_cGdkEventAny, "set_send_event", gdkeventany_set_send_event, 1);
- /* GdkEventButton */
- ev = gdkevents[GDK_BUTTON_PRESS];
- DEFINE_ACCESSOR(ev, button, time);
- DEFINE_ACCESSOR(ev, button, x);
- DEFINE_ACCESSOR(ev, button, y);
- rbg_define_method(ev, "axes", gdkeventbutton_axes, 0);
- rbg_define_method(ev, "set_axes", gdkeventbutton_set_axes, 2);
- DEFINE_ACCESSOR(ev, button, state);
- DEFINE_ACCESSOR(ev, button, button);
- DEFINE_ACCESSOR(ev, button, device);
- DEFINE_ACCESSOR(ev, button, x_root);
- DEFINE_ACCESSOR(ev, button, y_root);
+ /* GdkEventExpose */
+ rb_cGdkEventExpose =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_EXPOSE, "EventExpose",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventExpose, expose, area);
+ DEFINE_ACCESSOR(rb_cGdkEventExpose, expose, region);
+ DEFINE_ACCESSOR(rb_cGdkEventExpose, expose, count);
+ DEFINE_INIT(rb_cGdkEventExpose, expose);
- /* GdkEventScroll */
- ev = gdkevents[GDK_SCROLL];
- DEFINE_ACCESSOR(ev, scroll, time);
- DEFINE_ACCESSOR(ev, scroll, x);
- DEFINE_ACCESSOR(ev, scroll, y);
- DEFINE_ACCESSOR(ev, scroll, state);
- DEFINE_ACCESSOR(ev, scroll, direction);
- DEFINE_ACCESSOR(ev, scroll, device);
- DEFINE_ACCESSOR(ev, scroll, x_root);
- DEFINE_ACCESSOR(ev, scroll, y_root);
- DEFINE_INIT(ev, scroll);
+ /* GdkEventVisibility */
+ rb_cGdkEventVisibility =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_VISIBILITY, "EventVisibility",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventVisibility, visibility, state);
+ DEFINE_INIT(rb_cGdkEventVisibility, visibility);
- /* GdkScrollDirection */
- G_DEF_CLASS(GDK_TYPE_SCROLL_DIRECTION, "Direction", ev);
+ /* GdkVisibilityState */
+ G_DEF_CLASS(GDK_TYPE_VISIBILITY_STATE, "State", rb_cGdkEventVisibility);
+ G_DEF_CONSTANTS(rb_cGdkEventVisibility,
+ GDK_TYPE_VISIBILITY_STATE, "GDK_VISIBILITY_");
/* GdkEventMotion */
- ev = gdkevents[GDK_MOTION_NOTIFY];
- DEFINE_ACCESSOR(ev, motion, time);
- DEFINE_ACCESSOR(ev, motion, x);
- DEFINE_ACCESSOR(ev, motion, y);
- rbg_define_method(ev, "axes", gdkeventmotion_axes, 0);
- rbg_define_method(ev, "set_axes", gdkeventmotion_set_axes, 1);
- DEFINE_ACCESSOR(ev, motion, state);
- rbg_define_method(ev, "hint?", gdkeventmotion_is_hint, 0);
- rbg_define_method(ev, "set_hint", gdkeventmotion_set_is_hint, 1);
- DEFINE_ACCESSOR(ev, motion, device);
- DEFINE_ACCESSOR(ev, motion, x_root);
- DEFINE_ACCESSOR(ev, motion, y_root);
- DEFINE_INIT(ev, motion);
- rbg_define_method(ev, "request", gdkeventmotion_request_motions, 0);
+ rb_cGdkEventMotion =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_MOTION, "EventMotion",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, time);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, x);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, y);
+ rbg_define_method(rb_cGdkEventMotion, "axes", gdkeventmotion_axes, 0);
+ rbg_define_method(rb_cGdkEventMotion, "set_axes", gdkeventmotion_set_axes, 1);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, state);
+ rbg_define_method(rb_cGdkEventMotion, "hint?", gdkeventmotion_is_hint, 0);
+ rbg_define_method(rb_cGdkEventMotion, "set_hint", gdkeventmotion_set_is_hint, 1);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, device);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, x_root);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, y_root);
+ DEFINE_INIT(rb_cGdkEventMotion, motion);
+ rbg_define_method(rb_cGdkEventMotion, "request", gdkeventmotion_request_motions, 0);
- /* GdkEventExpose */
-/* deprecated
- ev = gdkevents[GDK_EXPOSE];
- DEFINE_ACCESSOR(ev, expose, area);
- DEFINE_ACCESSOR(ev, expose, region);
- DEFINE_ACCESSOR(ev, expose, count);
- DEFINE_INIT(ev, expose);
- rbg_define_singleton_method(ev, "get_graphics_expose",
- gdkevent_s_get_graphics_expose, 1);
-*/
+ /* GdkEventButton */
+ rb_cGdkEventButton =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_BUTTON, "EventButton",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, time);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, x);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, y);
+ rbg_define_method(rb_cGdkEventButton, "axes", gdkeventbutton_axes, 0);
+ rbg_define_method(rb_cGdkEventButton, "set_axes", gdkeventbutton_set_axes, 2);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, state);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, button);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, device);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, x_root);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, y_root);
+
+ /* GdkEventTouch */
+ rb_cGdkEventTouch =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_TOUCH, "EventTouch",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, window);
+ rbg_define_method(rb_cGdkEventTouch, "send_event?", gdkeventtouch_send_event, 0);
+ rbg_define_method(rb_cGdkEventTouch, "set_send_event", gdkeventtouch_set_send_event, 1);
+ DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, time);
+ DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, x);
+ DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, y);
+ rbg_define_method(rb_cGdkEventTouch, "axes", gdkeventtouch_axes, 0);
+ rbg_define_method(rb_cGdkEventTouch, "set_axes", gdkeventtouch_set_axes, 2);
+ DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, state);
+ DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, emulating_pointer);
+ DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, device);
+ DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, x_root);
+ DEFINE_ACCESSOR(rb_cGdkEventTouch, touch, y_root);
- /* GdkEventVisibility */
- ev = gdkevents[GDK_VISIBILITY_NOTIFY];
- DEFINE_ACCESSOR(ev, visibility, state);
- DEFINE_INIT(ev, visibility);
+ /* GdkEventScroll */
+ rb_cGdkEventScroll =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_SCROLL, "EventScroll",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, time);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, x);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, y);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, state);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, direction);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, device);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, x_root);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, y_root);
+ DEFINE_INIT(rb_cGdkEventScroll, scroll);
- /* GdkVisibilityState */
- G_DEF_CLASS(GDK_TYPE_VISIBILITY_STATE, "State", ev);
+ /* GdkScrollDirection */
+ G_DEF_CLASS(GDK_TYPE_SCROLL_DIRECTION, "Direction", rb_cGdkEventScroll);
+ G_DEF_CONSTANTS(rb_cGdkEventScroll,
+ GDK_TYPE_SCROLL_DIRECTION, "GDK_SCROLL_");
+
+ /* GdkEventKey */
+ rb_cGdkEventKey =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_KEY, "EventKey",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventKey, key, time);
+ DEFINE_ACCESSOR(rb_cGdkEventKey, key, state);
+ DEFINE_ACCESSOR(rb_cGdkEventKey, key, keyval);
+ DEFINE_ACCESSOR(rb_cGdkEventKey, key, hardware_keycode);
+ DEFINE_ACCESSOR(rb_cGdkEventKey, key, group);
/* GdkEventCrossing */
- ev = gdkevents[GDK_ENTER_NOTIFY];
- DEFINE_ACCESSOR(ev, crossing, subwindow);
- DEFINE_ACCESSOR(ev, crossing, time);
- DEFINE_ACCESSOR(ev, crossing, x);
- DEFINE_ACCESSOR(ev, crossing, y);
- DEFINE_ACCESSOR(ev, crossing, x_root);
- DEFINE_ACCESSOR(ev, crossing, y_root);
- DEFINE_ACCESSOR(ev, crossing, mode);
- DEFINE_ACCESSOR(ev, crossing, detail);
- rbg_define_method(ev, "focus?", gdkeventcrossing_focus, 0);
- rbg_define_method(ev, "set_focus", gdkeventcrossing_set_focus, 1);
- DEFINE_ACCESSOR(ev, crossing, state);
+ rb_cGdkEventCrossing =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_CROSSING, "EventCrossing",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, subwindow);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, time);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, x);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, y);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, x_root);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, y_root);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, mode);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, detail);
+ rbg_define_method(rb_cGdkEventCrossing, "focus?", gdkeventcrossing_focus, 0);
+ rbg_define_method(rb_cGdkEventCrossing, "set_focus", gdkeventcrossing_set_focus, 1);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, state);
/* GdkCrossingMode */
- G_DEF_CLASS(GDK_TYPE_CROSSING_MODE, "Mode", ev);
+ G_DEF_CLASS(GDK_TYPE_CROSSING_MODE, "Mode", rb_cGdkEventCrossing);
+ G_DEF_CONSTANTS(rb_cGdkEventCrossing,
+ GDK_TYPE_CROSSING_MODE, "GDK_CROSSING_");
/* GdkNotifyType */
- G_DEF_CLASS(GDK_TYPE_NOTIFY_TYPE, "NotifyType", ev);
+ G_DEF_CLASS(GDK_TYPE_NOTIFY_TYPE, "NotifyType", rb_cGdkEventScroll);
+ G_DEF_CONSTANTS(rb_cGdkEventScroll, GDK_TYPE_NOTIFY_TYPE, "GDK_");
/* GdkEventFocus */
- ev = gdkevents[GDK_FOCUS_CHANGE];
- rbg_define_method(ev, "in?", gdkeventfocus_change_in, 0);
- rbg_define_method(ev, "set_in", gdkeventfocus_change_set_in, 1);
- DEFINE_INIT(ev, focus_change);
+ rb_cGdkEventFocus =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_FOCUS, "EventFocus",
+ mGdk, rb_cGdkEvent);
+ rbg_define_method(rb_cGdkEventFocus, "in?", gdkeventfocus_change_in, 0);
+ rbg_define_method(rb_cGdkEventFocus, "set_in",
+ gdkeventfocus_change_set_in, 1);
+ DEFINE_INIT(rb_cGdkEventFocus, focus_change);
/* GdkEventConfigure */
- ev = gdkevents[GDK_CONFIGURE];
- DEFINE_ACCESSOR(ev, configure, x);
- DEFINE_ACCESSOR(ev, configure, y);
- DEFINE_ACCESSOR(ev, configure, width);
- DEFINE_ACCESSOR(ev, configure, height);
- DEFINE_INIT(ev, configure);
+ rb_cGdkEventConfigure =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_CONFIGURE, "EventConfigure",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventConfigure, configure, x);
+ DEFINE_ACCESSOR(rb_cGdkEventConfigure, configure, y);
+ DEFINE_ACCESSOR(rb_cGdkEventConfigure, configure, width);
+ DEFINE_ACCESSOR(rb_cGdkEventConfigure, configure, height);
+ DEFINE_INIT(rb_cGdkEventConfigure, configure);
/* GdkEventProperty */
- ev = gdkevents[GDK_PROPERTY_NOTIFY];
- DEFINE_ACCESSOR(ev, property, atom);
- DEFINE_ACCESSOR(ev, property, time);
- DEFINE_ACCESSOR(ev, property, state);
- DEFINE_INIT(ev, property);
-
- /* GdkPropertyState */
- G_DEF_CLASS(GDK_TYPE_PROPERTY_STATE, "State", ev);
+ rb_cGdkEventProperty =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_PROPERTY, "EventProperty",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventProperty, property, atom);
+ DEFINE_ACCESSOR(rb_cGdkEventProperty, property, time);
+ DEFINE_ACCESSOR(rb_cGdkEventProperty, property, state);
+ DEFINE_INIT(rb_cGdkEventProperty, property);
+
+ /* GdkPropertyState */
+ G_DEF_CLASS(GDK_TYPE_PROPERTY_STATE, "State", rb_cGdkEventProperty);
+ G_DEF_CONSTANTS(rb_cGdkEventProperty, GDK_TYPE_PROPERTY_STATE, "GDK_");
/* GdkEventSelection */
- ev = gdkevents[GDK_SELECTION_CLEAR];
- DEFINE_ACCESSOR(ev, selection, selection);
- DEFINE_ACCESSOR(ev, selection, target);
- DEFINE_ACCESSOR(ev, selection, property);
- DEFINE_ACCESSOR(ev, selection, requestor);
- DEFINE_ACCESSOR(ev, selection, time);
+ rb_cGdkEventSelection =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_SELECTION, "EventSelection",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, selection);
+ DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, target);
+ DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, property);
+ DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, requestor);
+ DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, time);
- /* GdkEventDND */
- ev = gdkevents[GDK_DRAG_ENTER];
- DEFINE_ACCESSOR(ev, dnd, context);
- DEFINE_ACCESSOR(ev, dnd, time);
- DEFINE_ACCESSOR(ev, dnd, x_root);
- DEFINE_ACCESSOR(ev, dnd, y_root);
+ /* GdkEventOwnerChange */
+ rb_cGdkEventOwnerChange =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_OWNER_CHANGE, "EventOwnerChange",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, owner);
+ DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, reason);
+ DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, selection);
+ DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, time);
+ DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, selection_time);
+ DEFINE_INIT(rb_cGdkEventOwnerChange, owner_change);
+
+ /* GdkOwnerChange */
+ G_DEF_CLASS(GDK_TYPE_OWNER_CHANGE, "OwnerChange", rb_cGdkEventScroll);
+ G_DEF_CONSTANTS(rb_cGdkEventScroll,
+ GDK_TYPE_OWNER_CHANGE, "GDK_OWNER_CHANGE_");
/* GdkEventProximity */
- ev = gdkevents[GDK_PROXIMITY_IN];
- DEFINE_ACCESSOR(ev, proximity, time);
- DEFINE_ACCESSOR(ev, proximity, device);
-
- /* GdkEventClient */
-/* deprecated
- ev = gdkevents[GDK_CLIENT_EVENT];
- DEFINE_ACCESSOR(ev, client, message_type);
- rbg_define_method(ev, "data_format", gdkeventclient_data_format, 0);
- rbg_define_method(ev, "data", gdkeventclient_data, 0);
- rbg_define_method(ev, "send_client_message",
- gdkeventclient_send_client_message, -1);
- rbg_define_method(ev, "send_clientmessage_toall",
- gdkeventclient_send_clientmessage_toall, 0);
- DEFINE_INIT(ev, client);
-*/
+ rb_cGdkEventProximity =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_PROXIMITY, "EventProximity",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventProximity, proximity, time);
+ DEFINE_ACCESSOR(rb_cGdkEventProximity, proximity, device);
- /* GdkEventNoExpose */
-/* deprecated
- ev = gdkevents[GDK_NO_EXPOSE];
- DEFINE_INIT(ev, noexpose);
-*/
+ /* GdkEventDND */
+ rb_cGdkEventDND =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_DND, "EventDND",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventDND, dnd, context);
+ DEFINE_ACCESSOR(rb_cGdkEventDND, dnd, time);
+ DEFINE_ACCESSOR(rb_cGdkEventDND, dnd, x_root);
+ DEFINE_ACCESSOR(rb_cGdkEventDND, dnd, y_root);
/* GdkEventWindowState */
- ev = gdkevents[GDK_WINDOW_STATE];
- DEFINE_ACCESSOR(ev, window_state, changed_mask);
- DEFINE_ACCESSOR(ev, window_state, new_window_state);
- DEFINE_INIT(ev, window_state);
+ rb_cGdkEventWindowState =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_WINDOW_STATE, "EventWindowState",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventWindowState, window_state, changed_mask);
+ DEFINE_ACCESSOR(rb_cGdkEventWindowState, window_state, new_window_state);
+ DEFINE_INIT(rb_cGdkEventWindowState, window_state);
/* GdkWindowState */
- G_DEF_CLASS(GDK_TYPE_WINDOW_STATE, "WindowState", ev);
+ G_DEF_CLASS(GDK_TYPE_WINDOW_STATE, "WindowState", rb_cGdkEventScroll);
+ G_DEF_CONSTANTS(rb_cGdkEventWindowState,
+ GDK_TYPE_WINDOW_STATE, "GDK_WINDOW_STATE_");
/* GdkEventSetting */
- ev = gdkevents[GDK_SETTING];
- DEFINE_ACCESSOR(ev, setting, action);
- DEFINE_ACCESSOR(ev, setting, name);
- DEFINE_INIT(ev, setting);
+ rb_cGdkEventSetting =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_SETTING, "EventSetting",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventSetting, setting, action);
+ DEFINE_ACCESSOR(rb_cGdkEventSetting, setting, name);
+ DEFINE_INIT(rb_cGdkEventSetting, setting);
/* GdkSettingAction */
- G_DEF_CLASS(GDK_TYPE_SETTING_ACTION, "Action", ev);
-
- /* GdkEventOwnerChange */
- ev = gdkevents[GDK_OWNER_CHANGE];
- DEFINE_ACCESSOR(ev, owner_change, owner);
- DEFINE_ACCESSOR(ev, owner_change, reason);
- DEFINE_ACCESSOR(ev, owner_change, selection);
- DEFINE_ACCESSOR(ev, owner_change, time);
- DEFINE_ACCESSOR(ev, owner_change, selection_time);
- DEFINE_INIT(ev, owner_change);
-
- /* GdkOwnerChange */
- G_DEF_CLASS(GDK_TYPE_OWNER_CHANGE, "OwnerChange", ev);
+ G_DEF_CLASS(GDK_TYPE_SETTING_ACTION, "Action", rb_cGdkEventScroll);
+ G_DEF_CONSTANTS(rb_cGdkEventSetting,
+ GDK_TYPE_SETTING_ACTION, "GDK_SETTING_");
/* GdkEventGrabBroken */
- ev = gdkevents[GDK_GRAB_BROKEN];
- rbg_define_method(ev, "keyboard?", gdkeventgrab_broken_keyboard, 0);
- rbg_define_method(ev, "set_keyboard", gdkeventgrab_broken_set_keyboard, 1);
- rbg_define_method(ev, "implicit?", gdkeventgrab_broken_implicit, 0);
- rbg_define_method(ev, "set_implicit", gdkeventgrab_broken_set_implicit, 1);
- DEFINE_ACCESSOR(ev, grab_broken, grab_window);
- DEFINE_INIT(ev, grab_broken);
+ rb_cGdkEventGrabBroken =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_GRAB_BROKEN, "EventGrabBroken",
+ mGdk, rb_cGdkEvent);
+ rbg_define_method(rb_cGdkEventGrabBroken,
+ "keyboard?", gdkeventgrab_broken_keyboard, 0);
+ rbg_define_method(rb_cGdkEventGrabBroken,
+ "set_keyboard", gdkeventgrab_broken_set_keyboard, 1);
+ rbg_define_method(rb_cGdkEventGrabBroken,
+ "implicit?", gdkeventgrab_broken_implicit, 0);
+ rbg_define_method(rb_cGdkEventGrabBroken,
+ "set_implicit", gdkeventgrab_broken_set_implicit, 1);
+ DEFINE_ACCESSOR(rb_cGdkEventGrabBroken, grab_broken, grab_window);
+ DEFINE_INIT(rb_cGdkEventGrabBroken, grab_broken);
rbgobj_register_g2r_func(GDK_TYPE_EVENT, &gdkevent_g2r);
-
- /*
- * GdkEvent's Constants
- */
- rb_define_const(gdkEvent, "CURRENT_TIME", INT2FIX(GDK_CURRENT_TIME));
- rb_define_const(gdkEvent, "PRIORITY_EVENTS", INT2FIX(GDK_PRIORITY_EVENTS));
- rb_define_const(gdkEvent, "PRIORITY_REDRAW", INT2FIX(GDK_PRIORITY_REDRAW));
-
- /* GdkEventType */
- /* XXX */
- G_RENAME_CONSTANT("2BUTTON_PRESS","BUTTON2_PRESS");
- G_RENAME_CONSTANT("3BUTTON_PRESS","BUTTON3_PRESS");
- G_DEF_CLASS(GDK_TYPE_EVENT_TYPE, "Type", gdkEvent);
- G_RENAME_CONSTANT("2BUTTON_PRESS","BUTTON2_PRESS");
- G_RENAME_CONSTANT("3BUTTON_PRESS","BUTTON3_PRESS");
-
- /* GdkEventMask */
- G_DEF_CLASS(GDK_TYPE_EVENT_MASK, "Mask", gdkEvent);
}
diff --git a/gdk3/ext/gdk3/rbgdkwindow.c b/gdk3/ext/gdk3/rbgdkwindow.c
index 170108c..ac1ac2d 100644
--- a/gdk3/ext/gdk3/rbgdkwindow.c
+++ b/gdk3/ext/gdk3/rbgdkwindow.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2002-2006 Ruby-GNOME2 Project Team
+ * Copyright (C) 2002-2013 Ruby-GNOME2 Project Team
* Copyright (C) 1998-2000 Yukihiro Matsumoto,
* Daisuke Kanda,
* Hiroshi Igarashi
@@ -34,7 +33,7 @@
static VALUE
rg_initialize(VALUE self, VALUE parent, VALUE attributes, VALUE attributes_mask)
{
- GdkWindow* win;
+ GdkWindow *win;
win = gdk_window_new(NIL_P(parent) ? NULL : _SELF(parent),
RVAL2GDKWINDOWATTR(attributes),
RVAL2GDKWINDOWATTRIBUTESTYPE(attributes_mask));
@@ -57,14 +56,6 @@ rg_window_type(VALUE self)
}
static VALUE
-rg_s_at_pointer(G_GNUC_UNUSED VALUE self)
-{
- gint x, y;
- GdkWindow* win = gdk_window_at_pointer(&x, &y);
- return rb_ary_new3(3, GOBJ2RVAL(win), INT2FIX(x), INT2FIX(y));
-}
-
-static VALUE
rg_show(VALUE self)
{
gdk_window_show(_SELF(self));
@@ -284,7 +275,7 @@ rg_s_constrain_size(G_GNUC_UNUSED VALUE self, VALUE geometry, VALUE flags, VALUE
}
static VALUE
-rg_beep(VALUE self)
+rg_beep(VALUE self)
{
gdk_window_beep(_SELF(self));
return self;
@@ -294,7 +285,7 @@ static VALUE
rg_begin_paint(VALUE self, VALUE area)
{
if (rb_obj_is_kind_of(area, GTYPE2CLASS(GDK_TYPE_RECTANGLE))){
- gdk_window_begin_paint_rect(_SELF(self),
+ gdk_window_begin_paint_rect(_SELF(self),
RVAL2GDKRECTANGLE(area));
} else {
gdk_window_begin_paint_region(_SELF(self), RVAL2CRREGION(area));
@@ -349,7 +340,7 @@ rg_invalidate_maybe_recurse(VALUE self, VALUE region)
static VALUE
rg_update_area(VALUE self)
{
- return CRREGION2RVAL(gdk_window_get_update_area(_SELF(self)));
+ return CRREGION2RVAL(gdk_window_get_update_area(_SELF(self)));
}
static VALUE
@@ -415,7 +406,7 @@ rg_set_user_data(VALUE self, VALUE user_data)
static VALUE
rg_set_override_redirect(VALUE self, VALUE override_redirect)
{
- gdk_window_set_override_redirect(_SELF(self),
+ gdk_window_set_override_redirect(_SELF(self),
RVAL2CBOOL(override_redirect));
return self;
}
@@ -455,7 +446,7 @@ rg_merge_child_shapes(VALUE self)
{
gdk_window_merge_child_shapes(_SELF(self));
return self;
-}
+}
static VALUE
rg_input_shape_combine_region(VALUE self, VALUE shape_region, VALUE offset_x, VALUE offset_y)
@@ -526,7 +517,7 @@ rg_geometry(VALUE self)
static VALUE
rg_set_geometry_hints(VALUE self, VALUE geometry, VALUE geom_mask)
{
- gdk_window_set_geometry_hints(_SELF(self),
+ gdk_window_set_geometry_hints(_SELF(self),
NIL_P(geometry) ? (GdkGeometry*)NULL : RVAL2GDKGEOMETRY(geometry),
RVAL2GDKWINDOWHINTS(geom_mask));
return self;
@@ -631,15 +622,6 @@ rg_origin(VALUE self)
}
static VALUE
-rg_pointer(VALUE self)
-{
- gint x, y;
- GdkModifierType state;
- GdkWindow* ret = gdk_window_get_pointer(_SELF(self), &x, &y, &state);
- return rb_ary_new3(4, GOBJ2RVAL(ret), INT2NUM(x), INT2NUM(y), GDKMODIFIERTYPE2RVAL(state));
-}
-
-static VALUE
rg_parent(VALUE self)
{
return GOBJ2RVAL(gdk_window_get_parent(_SELF(self)));
@@ -655,7 +637,7 @@ static VALUE
rg_children(VALUE self)
{
/* Don't use gdk_window_get_children() here */
- GList* list = gdk_window_peek_children(_SELF(self));
+ GList *list = gdk_window_peek_children(_SELF(self));
VALUE ary = rb_ary_new();
while (list) {
rb_ary_push(ary, GOBJ2RVAL(list->data));
@@ -800,7 +782,7 @@ rg_s_foreign_new(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
break;
case 2:
win = gdk_window_foreign_new_for_display(RVAL2GOBJ(arg[0]),
- RVAL2GDKNATIVEWINDOW(arg[1]));
+ RVAL2GDKNATIVEWINDOW(arg[1]));
break;
default:
break;
@@ -826,7 +808,7 @@ rg_s_lookup(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
win = gdk_window_lookup(RVAL2GDKNATIVEWINDOW(arg[0]));
break;
case 2:
- win = gdk_window_lookup_for_display(RVAL2GOBJ(arg[0]), RVAL2GDKNATIVEWINDOW(arg[1]));
+ win = gdk_window_lookup_for_display(RVAL2GOBJ(arg[0]), RVAL2GDKNATIVEWINDOW(arg[1]));
break;
default:
break;
@@ -907,6 +889,22 @@ rg_drag_protocol(VALUE self)
return rb_ary_new3(2, GDKDRAGPROTOCOL2RVAL(prot), ary);
}
+static VALUE
+rg_get_device_position(VALUE self, VALUE device)
+{
+ gint x, y;
+ GdkModifierType state;
+ GdkWindow *underneath_window;
+
+ underneath_window =
+ gdk_window_get_device_position(_SELF(self),
+ RVAL2GDKDEVICE(device),
+ &x, &y, &state);
+ return rb_ary_new3(4,
+ GOBJ2RVAL(underneath_window),
+ INT2NUM(x), INT2NUM(y), GDKMODIFIERTYPE2RVAL(state));
+}
+
#ifdef HAVE_RB_CAIRO_H
static VALUE
rg_create_cairo_context(VALUE self)
@@ -932,7 +930,6 @@ Init_gdk_window(VALUE mGdk)
RG_DEF_METHOD(initialize, 3);
RG_DEF_METHOD(destroy, 0);
RG_DEF_METHOD(window_type, 0);
- RG_DEF_SMETHOD(at_pointer, 0);
RG_DEF_SMETHOD(constrain_size, 4);
RG_DEF_SMETHOD(process_all_updates, 0);
RG_DEF_SMETHOD(set_debug_updates, 1);
@@ -1006,7 +1003,6 @@ Init_gdk_window(VALUE mGdk)
RG_DEF_METHOD(root_origin, 0);
RG_DEF_METHOD(frame_extents, 0);
RG_DEF_METHOD(origin, 0);
- RG_DEF_METHOD(pointer, 0);
RG_DEF_METHOD(parent, 0);
RG_DEF_METHOD(toplevel, 0);
RG_DEF_SMETHOD(default_root_window, 0);
@@ -1035,6 +1031,7 @@ Init_gdk_window(VALUE mGdk)
*/
RG_DEF_METHOD(drag_begin, 1);
RG_DEF_METHOD(drag_protocol, 0);
+ RG_DEF_METHOD(get_device_position, 1);
#ifdef HAVE_RB_CAIRO_H
RG_DEF_METHOD(create_cairo_context, 0);
@@ -1053,7 +1050,7 @@ Init_gdk_window(VALUE mGdk)
G_DEF_CLASS(GDK_TYPE_WM_DECORATION, "WMDecoration", RG_TARGET_NAMESPACE);
G_DEF_CLASS(GDK_TYPE_WM_FUNCTION, "WMFunction", RG_TARGET_NAMESPACE);
- rb_define_const(RG_TARGET_NAMESPACE, "PARENT_RELATIVE", INT2FIX(GDK_PARENT_RELATIVE));
+ rb_define_const(RG_TARGET_NAMESPACE, "PARENT_RELATIVE", INT2FIX(GDK_PARENT_RELATIVE));
#ifdef GDK_WINDOWING_X11
G_DEF_CLASS3("GdkWindowImplX11", "WindowImplX11", mGdk);
diff --git a/gdk3/lib/gdk3/deprecated.rb b/gdk3/lib/gdk3/deprecated.rb
index 32477fe..ee64152 100644
--- a/gdk3/lib/gdk3/deprecated.rb
+++ b/gdk3/lib/gdk3/deprecated.rb
@@ -6,6 +6,11 @@ module Gdk
define_deprecated_const :Colormap, :raise => "Use 'Gdk::Visual' instead."
define_deprecated_const :Input, :raise => "Use 'GLib::IOChannel' instead."
define_deprecated_const :X11, 'GdkX11'
+ define_deprecated_singleton_method :pointer_grab, :raise => "Use 'Gdk::Device#grab'."
+ define_deprecated_singleton_method :pointer_ungrab, :raise => "Use 'Gdk::Device#ungrab'."
+ define_deprecated_singleton_method :keyboard_grab, :raise => "Use 'Gdk::Device#grab'."
+ define_deprecated_singleton_method :keyboard_ungrab, :raise => "Use 'Gdk::Device#ungrab'."
+ define_deprecated_singleton_method :pointer_is_grabbed?, :raise => "Use 'Gdk::Display#device_is_grabbed?'."
class Cursor
extend GLib::Deprecatable
@@ -33,6 +38,12 @@ module Gdk
define_deprecated_method :button_number, :raise => "Don't use this method."
define_deprecated_method :button_x, :raise => "Don't use this method."
define_deprecated_method :button_y, :raise => "Don't use this method."
+ define_deprecated_method :pointer, :raise => "Use 'Gdk::Device#get_position'."
+ define_deprecated_method :pointer_ungrab, :raise => "Use 'Gdk::Device#ungrab'."
+ define_deprecated_method :pointer_grabbed_p, :raise => "Use 'Gdk::Display#device_is_grabbed?'."
+ define_deprecated_method :window_at_pointer, :raise => "Use 'Gdk::Device#get_window_at_position'."
+ define_deprecated_method :warp_pointer, :raise => "Use 'Gdk::Device#warp'."
+ define_deprecated_method :devices, :raise => "Use 'Gdk::DeviceManager#devices'."
end
class DragContext
@@ -141,6 +152,8 @@ module Gdk
define_deprecated_method :shape_combine_mask, :warn => "Don't use this method."
define_deprecated_method :input_shape_combine_mask, :warn => "Don't use this method."
define_deprecated_method :set_back_pixmap, :warn => "Don't use this method."
+ define_deprecated_singleton_method :at_pointer, :raise => "Use 'Gdk::Device#get_window_at_position'."
+ define_deprecated_method :pointer, :raise => "Use 'Gdk::Device#get_device_position'."
end
class WindowAttr
@@ -150,4 +163,3 @@ module Gdk
alias :colormap= :set_colormap
end
end
-
diff --git a/gdk3/patches/gdk+-3.10.6-remove-def-use.diff b/gdk3/patches/gdk+-3.10.6-remove-def-use.diff
new file mode 100644
index 0000000..8621a5d
--- /dev/null
+++ b/gdk3/patches/gdk+-3.10.6-remove-def-use.diff
@@ -0,0 +1,106 @@
+diff -ru gtk+-3.10.6.orig/gdk/Makefile.am gtk+-3.10.6/gdk/Makefile.am
+--- gtk+-3.10.6.orig/gdk/Makefile.am 2013-12-05 12:17:39.000000000 +0900
++++ gtk+-3.10.6/gdk/Makefile.am 2013-12-25 23:10:14.691695701 +0900
+@@ -179,8 +179,8 @@
+ if USE_WIN32
+ libgdk_3_la_SOURCES += gdkkeynames.c
+ libgdk_3_la_LIBADD += win32/libgdk-win32.la
+-libgdk_3_la_DEPENDENCIES = win32/libgdk-win32.la win32/rc/gdk-win32-res.o gdk.def
+-libgdk_3_la_LDFLAGS += -Wl,win32/rc/gdk-win32-res.o -export-symbols $(srcdir)/gdk.def
++libgdk_3_la_DEPENDENCIES = win32/libgdk-win32.la win32/rc/gdk-win32-res.o
++libgdk_3_la_LDFLAGS += -Wl,win32/rc/gdk-win32-res.o -no-undefined
+ endif # USE_WIN32
+
+ if USE_BROADWAY
+@@ -270,17 +270,6 @@
+
+ endif # HAVE_INTROSPECTION
+
+-if OS_WIN32
+-install-def-file: gdk.def
+- mkdir -p $(DESTDIR)$(libdir)
+- $(INSTALL) $(srcdir)/gdk.def $(DESTDIR)$(libdir)/gdk-win32-3.0.def
+-uninstall-def-file:
+- -rm $(DESTDIR)$(libdir)/gdk-win32-3.0.def
+-else
+-install-def-file:
+-uninstall-def-file:
+-endif
+-
+ if MS_LIB_AVAILABLE
+ noinst_DATA = gdk-win32-$(GTK_API_VERSION).lib
+
+@@ -382,9 +371,9 @@
+
+ DISTCLEANFILES = gdkconfig.h stamp-gc-h
+
+-install-data-local: install-ms-lib install-def-file
++install-data-local: install-ms-lib
+
+-uninstall-local: uninstall-ms-lib uninstall-def-file
++uninstall-local: uninstall-ms-lib
+ rm -f $(DESTDIR)$(configexecincludedir)/gdkconfig.h
+
+ # if srcdir!=builddir, clean out maintainer-clean files from builddir
+diff -ru gtk+-3.10.6.orig/gtk/Makefile.am gtk+-3.10.6/gtk/Makefile.am
+--- gtk+-3.10.6.orig/gtk/Makefile.am 2013-12-05 12:51:06.000000000 +0900
++++ gtk+-3.10.6/gtk/Makefile.am 2013-12-25 23:10:26.047429593 +0900
+@@ -61,29 +61,18 @@
+ endif
+
+ if OS_WIN32
+-gtk_def = gtk.def
+-gtk_win32_symbols = -export-symbols $(srcdir)/gtk.def
+-
+ gtk_win32_res = gtk-win32-res.o
+ gtk_win32_res_ldflag = -Wl,gtk-win32-res.o
+
+ gtk-win32-res.o : gtk-win32.rc
+ $(WINDRES) gtk-win32.rc $@
+-
+-install-def-file: gtk.def
+- $(INSTALL) $(srcdir)/gtk.def $(DESTDIR)$(libdir)/gtk-win32-3.0.def
+-uninstall-def-file:
+- -rm $(DESTDIR)$(libdir)/gtk-win32-3.0.def
+-else
+-install-def-file:
+-uninstall-def-file:
+ endif
+
+ if MS_LIB_AVAILABLE
+ noinst_DATA = gtk-win32-$(GTK_API_VERSION).lib
+
+-gtk-win32-$(GTK_API_VERSION).lib: libgtk-win32-$(GTK_API_VERSION).la gtk.def
+- lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgtk-win32-$(GTK_API_VERSION)- at LT_CURRENT_MINUS_AGE@.dll -def:gtk.def -out:$@
++gtk-win32-$(GTK_API_VERSION).lib: libgtk-win32-$(GTK_API_VERSION).la
++ lib -machine:@LIB_EXE_MACHINE_FLAG@ -name:libgtk-win32-$(GTK_API_VERSION)- at LT_CURRENT_MINUS_AGE@.dll -out:$@
+
+ install-ms-lib:
+ $(INSTALL) gtk-win32-$(GTK_API_VERSION).lib $(DESTDIR)$(libdir)
+@@ -1233,8 +1222,8 @@
+ if USE_WIN32
+ libgtk_3_la_LIBADD += -lole32 -lgdi32 -lcomdlg32 -lwinspool -lcomctl32
+ libgtk_3_la_LDFLAGS += -Wl,-luuid
+-libgtk_3_la_DEPENDENCIES += $(gtk_def) $(gtk_win32_res) $(deps)
+-libgtk_target_ldflags = $(gtk_win32_res_ldflag) $(gtk_win32_symbols)
++libgtk_3_la_DEPENDENCIES += $(gtk_win32_res) $(deps)
++libgtk_target_ldflags = $(gtk_win32_res_ldflag)
+ endif
+
+ install-exec-hook:
+@@ -1286,13 +1275,13 @@
+ rm libgtk.vs10.sourcefiles.filters
+
+ # Install a RC file for the default GTK+ theme, and key themes
+-install-data-local: install-ms-lib install-def-file install-mac-key-theme
++install-data-local: install-ms-lib install-mac-key-theme
+ $(MKDIR_P) $(DESTDIR)$(datadir)/themes/Default/gtk-3.0
+ $(INSTALL_DATA) $(srcdir)/gtk-keys.css.default $(DESTDIR)$(datadir)/themes/Default/gtk-3.0/gtk-keys.css
+ $(MKDIR_P) $(DESTDIR)$(datadir)/themes/Emacs/gtk-3.0
+ $(INSTALL_DATA) $(srcdir)/gtk-keys.css.emacs $(DESTDIR)$(datadir)/themes/Emacs/gtk-3.0/gtk-keys.css
+
+-uninstall-local: uninstall-ms-lib uninstall-def-file uninstall-mac-key-theme
++uninstall-local: uninstall-ms-lib uninstall-mac-key-theme
+ rm -f $(DESTDIR)$(datadir)/themes/Raleigh/gtk-3.0/gtk.css
+ rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-3.0/gtk-keys.css
+ rm -f $(DESTDIR)$(datadir)/themes/Emacs/gtk-3.0/gtk-keys.css
diff --git a/gdk3/test/test-gdk-event.rb b/gdk3/test/test-gdk-event.rb
new file mode 100644
index 0000000..1e15a54
--- /dev/null
+++ b/gdk3/test/test-gdk-event.rb
@@ -0,0 +1,598 @@
+# -*- coding: utf-8 -*-
+#
+# Copyright (C) 2013 Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+class TestGdkEvent < Test::Unit::TestCase
+ class TestAny < self
+ def setup
+ @event = Gdk::EventAny.new(:delete)
+ end
+
+ def test_delete
+ assert_equal("GDK_DELETE",
+ Gdk::EventAny.new(:delete).event_type.name)
+ end
+
+ def test_destroy
+ assert_equal("GDK_DESTROY",
+ Gdk::EventAny.new(:destroy).event_type.name)
+ end
+
+ def test_window
+ assert_nothing_raised do
+ @event.window
+ end
+ end
+
+ def test_send_event
+ assert_false(@event.send_event?)
+ end
+ end
+
+ class TestKey < self
+ def setup
+ @key = Gdk::EventKey.new(:key_press)
+ end
+
+ def test_key_press
+ assert_equal("GDK_KEY_PRESS",
+ Gdk::EventKey.new(:key_press).event_type.name)
+ end
+
+ def test_key_release
+ assert_equal("GDK_KEY_RELEASE",
+ Gdk::EventKey.new(:key_release).event_type.name)
+ end
+
+ def test_time
+ assert_kind_of(Integer, @key.time)
+ end
+
+ def test_state
+ assert_not_nil(@key.state)
+ end
+
+ def test_keyval
+ assert_kind_of(Integer, @key.keyval)
+ end
+ end
+
+ class TestButton < self
+ def setup
+ @button = Gdk::EventButton.new(:button_press)
+ end
+
+ def test_button_press
+ assert_equal("GDK_BUTTON_PRESS",
+ Gdk::EventButton.new(:button_press).event_type.name)
+ end
+
+ def test_button2_press
+ assert_equal("GDK_2BUTTON_PRESS",
+ Gdk::EventButton.new(:button2_press).event_type.name)
+ end
+
+ def test_button3_press
+ assert_equal("GDK_3BUTTON_PRESS",
+ Gdk::EventButton.new(:button3_press).event_type.name)
+ end
+
+ def test_button_release
+ assert_equal("GDK_BUTTON_RELEASE",
+ Gdk::EventButton.new(:button_release).event_type.name)
+ end
+
+ def test_time
+ assert_kind_of(Integer, @button.time)
+ end
+
+ def test_x
+ assert_kind_of(Float, @button.x)
+ end
+
+ def test_y
+ assert_kind_of(Float, @button.y)
+ end
+
+ def test_state
+ assert_not_nil(@button.state)
+ end
+
+ def test_button
+ assert_kind_of(Integer, @button.button)
+ end
+
+ def test_x_root
+ assert_kind_of(Float, @button.x_root)
+ end
+
+ def test_y_root
+ assert_kind_of(Float, @button.y_root)
+ end
+ end
+
+ class TestTouch < self
+ def setup
+ @touch = Gdk::EventTouch.new(:touch_begin)
+ end
+
+ def test_window
+ assert_nothing_raised do
+ @touch.window
+ end
+ end
+
+ def test_send_event
+ assert_false(@touch.send_event?)
+ end
+
+ def test_time
+ assert_kind_of(Integer, @touch.time)
+ end
+
+ def test_x
+ assert_kind_of(Float, @touch.x)
+ end
+
+ def test_y
+ assert_kind_of(Float, @touch.y)
+ end
+
+ def test_axes
+ assert_nothing_raised do
+ @touch.axes
+ end
+ end
+
+ def test_state
+ assert_not_nil(@touch.state)
+ end
+
+ def test_touch_begin
+ assert_equal("GDK_TOUCH_BEGIN",
+ Gdk::EventTouch.new(:touch_begin).event_type.name)
+ end
+
+ def test_touch_update
+ assert_equal("GDK_TOUCH_UPDATE",
+ Gdk::EventTouch.new(:touch_update).event_type.name)
+ end
+
+ def test_touch_cancel
+ assert_equal("GDK_TOUCH_CANCEL",
+ Gdk::EventTouch.new(:touch_cancel).event_type.name)
+ end
+
+ def test_touch_end
+ assert_equal("GDK_TOUCH_END",
+ Gdk::EventTouch.new(:touch_end).event_type.name)
+ end
+
+ def test_emulating_pointer
+ assert_nothing_raised do
+ @touch.emulating_pointer
+ end
+ end
+
+ def test_device
+ assert_nothing_raised do
+ @touch.device
+ end
+ end
+
+ def test_x_root
+ assert_kind_of(Float, @touch.x_root)
+ end
+
+ def test_y_root
+ assert_kind_of(Float, @touch.y_root)
+ end
+ end
+
+ class TestScroll < self
+ def setup
+ @scroll = Gdk::EventScroll.new
+ end
+
+ def test_time
+ assert_kind_of(Integer, @scroll.time)
+ end
+
+ def test_x
+ assert_kind_of(Float, @scroll.x)
+ end
+
+ def test_y
+ assert_kind_of(Float, @scroll.y)
+ end
+
+ def test_state
+ assert_not_nil(@scroll.state)
+ end
+
+ def test_direction
+ assert_kind_of(Gdk::EventScroll::Direction, @scroll.direction)
+ end
+
+ def test_x_root
+ assert_kind_of(Float, @scroll.x_root)
+ end
+
+ def test_y_root
+ assert_kind_of(Float, @scroll.y_root)
+ end
+ end
+
+ class TestMotion < self
+ def setup
+ @motion = Gdk::EventMotion.new
+ end
+
+ def test_time
+ assert_kind_of(Integer, @motion.time)
+ end
+
+ def test_x
+ assert_kind_of(Float, @motion.x)
+ end
+
+ def test_y
+ assert_kind_of(Float, @motion.y)
+ end
+
+ def test_state
+ assert_not_nil(@motion.state)
+ end
+
+ def test_x_root
+ assert_kind_of(Float, @motion.x_root)
+ end
+
+ def test_y_root
+ assert_kind_of(Float, @motion.y_root)
+ end
+
+ def test_request
+ assert_nothing_raised do
+ @motion.request
+ end
+ end
+ end
+
+ class TestVisibility < self
+ def setup
+ @visibility = Gdk::EventVisibility.new(:visibility_notify)
+ end
+
+ def test_state
+ assert_kind_of(Gdk::EventVisibility::State, @visibility.state)
+ end
+ end
+
+ class TestCrossing < self
+ def setup
+ @crossing = Gdk::EventCrossing.new(:enter_notify)
+ end
+
+ def test_enter_notify
+ assert_equal("GDK_ENTER_NOTIFY",
+ Gdk::EventCrossing.new(:enter_notify).event_type.name)
+ end
+
+ def test_leave_notify
+ assert_equal("GDK_LEAVE_NOTIFY",
+ Gdk::EventCrossing.new(:leave_notify).event_type.name)
+ end
+
+ def test_time
+ assert_kind_of(Integer, @crossing.time)
+ end
+
+ def test_x
+ # TODO: Is Float better?
+ assert_kind_of(Integer, @crossing.x)
+ end
+
+ def test_y
+ # TODO: Is Float better?
+ assert_kind_of(Integer, @crossing.y)
+ end
+
+ def test_x_root
+ assert_kind_of(Float, @crossing.x_root)
+ end
+
+ def test_y_root
+ assert_kind_of(Float, @crossing.y_root)
+ end
+
+ def test_mode
+ assert_kind_of(Gdk::EventCrossing::Mode, @crossing.mode)
+ end
+
+ def test_detail
+ assert_not_nil(@crossing.detail)
+ end
+
+ def test_state
+ assert_not_nil(@crossing.state)
+ end
+ end
+
+ class TestFocus < self
+ def setup
+ @focus = Gdk::EventFocus.new
+ end
+
+ def test_in
+ assert_false(@focus.in?)
+ end
+ end
+
+ class TestConfigure < self
+ def setup
+ @configure = Gdk::EventConfigure.new
+ end
+
+ def test_x
+ assert_kind_of(Integer, @configure.x)
+ end
+
+ def test_y
+ assert_kind_of(Integer, @configure.y)
+ end
+
+ def test_width
+ assert_kind_of(Integer, @configure.width)
+ end
+
+ def test_height
+ assert_kind_of(Integer, @configure.height)
+ end
+ end
+
+ class TestProperty < self
+ def setup
+ @property = Gdk::EventProperty.new
+ end
+
+ def test_atom
+ assert_nothing_raised do
+ @property.atom
+ end
+ end
+
+ def test_time
+ assert_kind_of(Integer, @property.time)
+ end
+
+ def test_state
+ assert_not_nil(Integer, @property.state)
+ end
+ end
+
+ class TestSelection < self
+ def setup
+ @selection = Gdk::EventSelection.new(:selection_clear)
+ end
+
+ def test_selection_clear
+ assert_equal("GDK_SELECTION_CLEAR",
+ Gdk::EventSelection.new(:selection_clear).event_type.name)
+ end
+
+ def test_selection_notify
+ assert_equal("GDK_SELECTION_NOTIFY",
+ Gdk::EventSelection.new(:selection_notify).event_type.name)
+ end
+
+ def test_selection_request
+ assert_equal("GDK_SELECTION_REQUEST",
+ Gdk::EventSelection.new(:selection_request).event_type.name)
+ end
+
+ def test_selection
+ assert_nothing_raised do
+ @selection.selection
+ end
+ end
+
+ def test_target
+ assert_nothing_raised do
+ @selection.target
+ end
+ end
+
+ def test_property
+ assert_nothing_raised do
+ @selection.property
+ end
+ end
+
+ def test_time
+ assert_kind_of(Integer, @selection.time)
+ end
+ end
+
+ class TestDND < self
+ def setup
+ @dnd = Gdk::EventDND.new(:drag_enter)
+ end
+
+ def test_drag_enter
+ assert_equal("GDK_DRAG_ENTER",
+ Gdk::EventDND.new(:drag_enter).event_type.name)
+ end
+
+ def test_drag_leave
+ assert_equal("GDK_DRAG_LEAVE",
+ Gdk::EventDND.new(:drag_leave).event_type.name)
+ end
+
+ def test_drag_motion
+ assert_equal("GDK_DRAG_MOTION",
+ Gdk::EventDND.new(:drag_motion).event_type.name)
+ end
+
+ def test_drag_status
+ assert_equal("GDK_DRAG_STATUS",
+ Gdk::EventDND.new(:drag_status).event_type.name)
+ end
+
+ def test_drop_start
+ assert_equal("GDK_DROP_START",
+ Gdk::EventDND.new(:drop_start).event_type.name)
+ end
+
+ def test_drop_finished
+ assert_equal("GDK_DROP_FINISHED",
+ Gdk::EventDND.new(:drop_finished).event_type.name)
+ end
+
+ def test_context
+ assert_nothing_raised do
+ @dnd.context
+ end
+ end
+
+ def test_time
+ assert_kind_of(Integer, @dnd.time)
+ end
+
+ def test_x_root
+ assert_kind_of(Integer, @dnd.x_root)
+ end
+
+ def test_y_root
+ assert_kind_of(Integer, @dnd.y_root)
+ end
+ end
+
+ class TestProximity < self
+ def setup
+ @proximity = Gdk::EventProximity.new(:proximity_in)
+ end
+
+ def test_proximity_in
+ assert_equal("GDK_PROXIMITY_IN",
+ Gdk::EventProximity.new(:proximity_in).event_type.name)
+ end
+
+ def test_proximity_out
+ assert_equal("GDK_PROXIMITY_OUT",
+ Gdk::EventProximity.new(:proximity_out).event_type.name)
+ end
+
+ def test_time
+ assert_kind_of(Integer, @proximity.time)
+ end
+
+ def test_device
+ assert_nothing_raised do
+ @proximity.device
+ end
+ end
+ end
+
+ class TestWindowState < self
+ def setup
+ @window_state = Gdk::EventWindowState.new
+ end
+
+ def test_changed_mask
+ assert_nothing_raised do
+ @window_state.changed_mask
+ end
+ end
+
+ def test_new_window_state
+ assert_nothing_raised do
+ @window_state.new_window_state
+ end
+ end
+ end
+
+ class TestSetting < self
+ def setup
+ @setting = Gdk::EventSetting.new
+ end
+
+ def test_action
+ assert_nothing_raised do
+ @setting.action
+ end
+ end
+
+ def test_name
+ assert_nothing_raised do
+ @setting.name
+ end
+ end
+ end
+
+ class TestOwnerChange < self
+ def setup
+ @owner_change = Gdk::EventOwnerChange.new
+ end
+
+ def test_owner
+ assert_nothing_raised do
+ @owner_change.owner
+ end
+ end
+
+ def test_reason
+ assert_nothing_raised do
+ @owner_change.reason
+ end
+ end
+
+ def test_selection
+ assert_nothing_raised do
+ @owner_change.selection
+ end
+ end
+
+ def test_time
+ assert_kind_of(Integer, @owner_change.time)
+ end
+
+ def test_selection_time
+ assert_kind_of(Integer, @owner_change.selection_time)
+ end
+ end
+
+ class TestGrabBroken < self
+ def setup
+ @grab_broken = Gdk::EventGrabBroken.new
+ end
+
+ def test_keyboard
+ assert_boolean(@grab_broken.keyboard?)
+ end
+
+ def test_implicit
+ assert_boolean(@grab_broken.implicit?)
+ end
+
+ def test_grab_window
+ assert_nothing_raised do
+ @grab_broken.grab_window
+ end
+ end
+ end
+end
diff --git a/gdk3/test/test-gdk-rgba.rb b/gdk3/test/test-gdk-rgba.rb
index 4922b3b..8ab33cf 100644
--- a/gdk3/test/test-gdk-rgba.rb
+++ b/gdk3/test/test-gdk-rgba.rb
@@ -18,7 +18,7 @@
class TestGdkRGBA < Test::Unit::TestCase
def test_to_s
- rgba = Gdk::RGBA.new(0.1, 0.2, 0.3, 0.5)
- assert_equal("rgba(26,51,77,0.5)", rgba.to_s)
+ rgba = Gdk::RGBA.new(0.2, 0.4, 0.6, 0.5)
+ assert_equal("rgba(51,102,153,0.5)", rgba.to_s)
end
end
diff --git a/gdk_pixbuf2/COPYING.LIB b/gdk_pixbuf2/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/gdk_pixbuf2/COPYING.LIB
+++ b/gdk_pixbuf2/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/gdk_pixbuf2/README b/gdk_pixbuf2/README
index b7113e1..83e0c14 100644
--- a/gdk_pixbuf2/README
+++ b/gdk_pixbuf2/README
@@ -10,7 +10,7 @@ Requirements
Install
-------
- 0. install ruby-1.6.x or later, GTK+, Ruby/GLib2 and Ruby/GTK2.
+ 0. install ruby-1.9.x or later, GTK+, Ruby/GLib2 and Ruby/GTK2.
1. ruby extconf.rb
2. make
3. su
diff --git a/gdk_pixbuf2/Rakefile b/gdk_pixbuf2/Rakefile
index 9c214e7..1fc0b4d 100644
--- a/gdk_pixbuf2/Rakefile
+++ b/gdk_pixbuf2/Rakefile
@@ -8,7 +8,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
package.description = "Ruby/GdkPixbuf2 is a Ruby binding of GdkPixbuf-2.x."
package.dependency.gem.runtime = ["glib2"]
package.windows.packages = []
- package.windows.dependencies = ["zlib", "libpng"]
+ package.windows.dependencies = []
package.windows.build_dependencies = [
"glib2",
"gobject-introspection",
@@ -18,13 +18,15 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
:name => "gdk-pixbuf",
:download_site => :gnome,
:label => "gdk-pixbuf",
- :version => "2.28.1",
+ :version => "2.30.2",
:compression_method => "xz",
:windows => {
:configure_args => [
"--with-included-loaders",
"--enable-introspection",
],
+ :build_concurrently => false,
+ :built_file => "bin/libgdk_pixbuf-2.0-0.dll",
},
}
]
diff --git a/gdk_pixbuf2/lib/gdk_pixbuf2.rb b/gdk_pixbuf2/lib/gdk_pixbuf2.rb
index 5ec19c5..15284ca 100644
--- a/gdk_pixbuf2/lib/gdk_pixbuf2.rb
+++ b/gdk_pixbuf2/lib/gdk_pixbuf2.rb
@@ -4,6 +4,11 @@ base_dir = Pathname.new(__FILE__).dirname.dirname.expand_path
vendor_dir = base_dir + "vendor" + "local"
vendor_bin_dir = vendor_dir + "bin"
GLib.prepend_dll_path(vendor_bin_dir)
+
+if vendor_dir.exist?
+ require "cairo"
+end
+
begin
major, minor, _ = RUBY_VERSION.split(/\./)
require "#{major}.#{minor}/gdk_pixbuf2.so"
diff --git a/gio2/test/load-test.rb b/gio2/test/run-test.rb
old mode 100644
new mode 100755
similarity index 94%
rename from gio2/test/load-test.rb
rename to gio2/test/run-test.rb
index da2de32..987356b
--- a/gio2/test/load-test.rb
+++ b/gio2/test/run-test.rb
@@ -1,3 +1,4 @@
+#!/usr/bin/env ruby
# -*- coding: utf-8 -*-
base = File.dirname(File.expand_path(__FILE__))
diff --git a/gio2/test/test_bufferedinputstream.rb b/gio2/test/test_bufferedinputstream.rb
index 633f866..b061834 100644
--- a/gio2/test/test_bufferedinputstream.rb
+++ b/gio2/test/test_bufferedinputstream.rb
@@ -1,2 +1,9 @@
# -*- coding: utf-8 -*-
+class TestBufferedInputStream < Test::Unit::TestCase
+ def test_buffered_input_stream
+ assert_nothing_raised do
+ Gio::BufferedInputStream.new(Gio::FileInputStream.new)
+ end
+ end
+end
diff --git a/gio2/test/test_charsetconverter.rb b/gio2/test/test_charsetconverter.rb
index 633f866..1796111 100644
--- a/gio2/test/test_charsetconverter.rb
+++ b/gio2/test/test_charsetconverter.rb
@@ -1,2 +1,9 @@
# -*- coding: utf-8 -*-
+class TestCharsetConverter < Test::Unit::TestCase
+ def test_converter
+ assert_nothing_raised do
+ Gio::CharsetConverter.new("UTF-8", "ASCII")
+ end
+ end
+end
diff --git a/gio2/test/test_datainputstream.rb b/gio2/test/test_datainputstream.rb
index 8297e24..97d3f78 100644
--- a/gio2/test/test_datainputstream.rb
+++ b/gio2/test/test_datainputstream.rb
@@ -2,6 +2,6 @@
class TestDataInputStream < Test::Unit::TestCase
def test_byte_order_property
- assert_equal GLib::DATA_STREAM_BYTE_ORDER_BIG_ENDIAN, GLib::DataInputStream.new(GLib::MemoryInputStream.new).byte_order
+ assert_equal Gio::DataStreamByteOrder::BIG_ENDIAN, Gio::DataInputStream.new(Gio::MemoryInputStream.new).byte_order
end
end
diff --git a/gio2/test/test_fileenumerator.rb b/gio2/test/test_fileenumerator.rb
index adbf3ff..fa17bdf 100644
--- a/gio2/test/test_fileenumerator.rb
+++ b/gio2/test/test_fileenumerator.rb
@@ -2,7 +2,7 @@
class TestFileEnumerator < Test::Unit::TestCase
def test_responds_to_properties
- a = GLib::File.new_for_path('/').enumerate_children
+ a = Gio::File.new_for_path('/').enumerate_children
assert a.respond_to?(:container)
end
end
diff --git a/gio2/test/test_filemonitor.rb b/gio2/test/test_filemonitor.rb
index 633f866..0a62fb6 100644
--- a/gio2/test/test_filemonitor.rb
+++ b/gio2/test/test_filemonitor.rb
@@ -1,2 +1,17 @@
# -*- coding: utf-8 -*-
+class TestFileMonitor < Test::Unit::TestCase
+ class Flags < self
+ def test_file_monitor_flags
+ assert_nothing_raised do
+ Gio::FileMonitor::Flags.new(Gio::FileMonitor::Flags::SEND_MOVED)
+ end
+ end
+
+ def test_file_monitor_event
+ assert_nothing_raised do
+ Gio::FileMonitor::Event.new(Gio::FileMonitor::Event::CREATED)
+ end
+ end
+ end
+end
diff --git a/gio2/test/test_inetaddress.rb b/gio2/test/test_inetaddress.rb
index a496645..d5c023d 100644
--- a/gio2/test/test_inetaddress.rb
+++ b/gio2/test/test_inetaddress.rb
@@ -2,7 +2,7 @@
class TestInetAddress < Test::Unit::TestCase
def test_responds_to_properties
- a = GLib::InetAddress.new_any(GLib::Socket::FAMILY_IPV4)
+ a = Gio::InetAddress.new_any(Gio::Socket::FAMILY_IPV4)
assert a.respond_to?(:any?)
end
end
diff --git a/glib2/COPYING.LIB b/glib2/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/glib2/COPYING.LIB
+++ b/glib2/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/glib2/README b/glib2/README
index 9364842..f475b67 100644
--- a/glib2/README
+++ b/glib2/README
@@ -1,13 +1,13 @@
Ruby/GLib2
==========
-Ruby/GLib2 is a Ruby binding of GLib-2.x.
+Ruby/GLib2 is a Ruby binding of GLib-2.12.x.
Requirements
------------
- Ruby >= 1.8.5: http://www.ruby-lang.org/
+ Ruby >= 1.9.x: http://www.ruby-lang.org/
pkg-config.rb: http://github.com/rcairo/pkg-config
- GLib >= 2.x: http://www.gtk.org/
+ GLib >= 2.12.x: http://www.gtk.org/
Install (RubyGems)
------------------
@@ -21,7 +21,7 @@ Windows:
Install (traditional)
---------------------
-Install ruby-1.8.5 or later, pkg-config.rb and GLib-2.x.
+Install ruby-1.9.x or later, pkg-config.rb and GLib-2.12.x.
% ruby extconf.rb
% make
diff --git a/glib2/Rakefile b/glib2/Rakefile
index f0c5366..6ae305a 100644
--- a/glib2/Rakefile
+++ b/glib2/Rakefile
@@ -3,27 +3,33 @@
$LOAD_PATH.unshift("./lib")
require 'gnome2-raketask'
+bin_dir = nil
include_dir = nil
glib2_include_dir = nil
libffi_lib_dir = nil
+build_host = nil
+
package = GNOME2Package.new do |_package|
+ bin_dir = (_package.windows.absolute_binary_dir + "bin").to_s
include_dir = (_package.windows.absolute_binary_dir + "include").to_s
glib2_include_dir = File.join(include_dir, "glib-2.0")
libffi_lib_dir = (_package.windows.absolute_binary_dir + "lib").to_s
+ build_host = _package.windows.build_host
+
_package.summary = "Ruby/GLib2 is a Ruby binding of GLib-2.x."
_package.description = "Ruby/GLib2 is a Ruby binding of GLib-2.x."
_package.dependency.gem.runtime = [["pkg-config", ">= 0"]]
_package.dependency.gem.development = [["test-unit", ">= 2"]]
_package.win32.packages = []
- _package.win32.dependencies = ["zlib", "libffi", "gettext-runtime"]
+ _package.win32.dependencies = ["libffi", "gettext-runtime"]
_package.external_packages = [
{
:name => "glib",
:download_site => :gnome,
:label => "GLib",
- :version => "2.36.2",
+ :version => "2.38.2",
:compression_method => "xz",
:windows => {
:configure_args => [
@@ -32,48 +38,57 @@ package = GNOME2Package.new do |_package|
"--disable-modular-tests",
],
:need_autoreconf => true,
+ :patches => [
+ "glib-2.38.2-add-missing-exeext.diff",
+ ],
+ :built_file => "bin/libglib-2.0-0.dll",
},
},
{
:name => "gmp",
- :download_base_url => "ftp://ftp.gmplib.org/pub/gmp-5.1.2",
+ :download_base_url => "ftp://ftp.gmplib.org/pub/gmp-5.1.3",
:label => "GNU MP",
- :version => "5.1.2",
+ :version => "5.1.3",
:compression_method => "xz",
:windows => {
:configure_args => [
"--disable-static",
"--enable-shared",
],
+ :built_file => "bin/libgmp-10.dll",
},
},
{
:name => "nettle",
:download_base_url => "http://www.lysator.liu.se/~nisse/archive",
:label => "Nettle",
- :version => "2.7",
+ :version => "2.7.1",
:windows => {
:configure_args => [],
+ :built_file => "bin/libnettle-4-7.dll",
},
},
{
:name => "gnutls",
- :download_base_url => "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.1",
+ :download_base_url => "ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2",
:label => "GnuTLS",
- :version => "3.1.11",
+ :version => "3.2.7",
:compression_method => "xz",
:windows => {
:configure_args => [
- "--with-libnettle-prefix=#{_package.win32.absolute_binary_dir}"
+ "--disable-cxx",
],
:use_cc_environment_variable => false,
+ :patches => [
+ ],
+ :built_file => "bin/libgnutls-28.dll",
},
},
{
:name => "glib-networking",
:download_site => :gnome,
:label => "glib-networking",
- :version => "2.36.2",
+ :version => "2.38.2",
:compression_method => "xz",
:windows => {
:configure_args => [
@@ -81,9 +96,15 @@ package = GNOME2Package.new do |_package|
"--without-gnome-proxy",
"--without-ca-certificates",
],
+ :built_file => "lib/gio/modules/libgiognutls.dll",
},
},
]
+ _package.cross_compiling do |spec|
+ if /mingw|mswin/ =~ spec.platform.to_s
+ spec.add_runtime_dependency("cairo", ">= 1.12.8")
+ end
+ end
end
package.define_tasks
@@ -116,7 +137,7 @@ namespace :win32 do
end
end
- namespace :buildler do
+ namespace :builder do
namespace :build do
namespace :glib do
task :after => [
diff --git a/glib2/ext/glib2/extconf.rb b/glib2/ext/glib2/extconf.rb
index 730857a..b81ea03 100644
--- a/glib2/ext/glib2/extconf.rb
+++ b/glib2/ext/glib2/extconf.rb
@@ -16,7 +16,7 @@ require 'mkmf-gnome2'
setup_win32(module_name, base_dir)
-unless required_pkg_config_package(package_id,
+unless required_pkg_config_package([package_id, 2, 12, 0],
:debian => "libglib2.0-dev",
:redhat => "glib2-devel",
:homebrew => "glib",
@@ -47,6 +47,7 @@ have_func("ruby_native_thread_p", ruby_header)
have_func("rb_thread_call_with_gvl", ruby_header)
have_func("rb_str_new_cstr", ruby_header)
have_func("rb_gc_register_mark_object", ruby_header)
+have_func("rb_exc_new_str", ruby_header)
have_var("curr_thread", [ruby_header, "node.h"])
have_var("rb_curr_thread", [ruby_header, "node.h"])
diff --git a/glib2/ext/glib2/glib2.def b/glib2/ext/glib2/glib2.def
index 3032e58..c2f834c 100644
--- a/glib2/ext/glib2/glib2.def
+++ b/glib2/ext/glib2/glib2.def
@@ -17,6 +17,7 @@ EXPORTS
rbgobj_ruby_object_from_instance
rbgobj_ruby_object_from_instance2
rbgobj_ruby_object_from_instance_with_unref
+ rbgobj_instance_unref
rbgobj_get_ruby_object_from_gobject
rbgobj_create_object
rbgobj_gobject_new
diff --git a/glib2/ext/glib2/rbglib.c b/glib2/ext/glib2/rbglib.c
index ef84d36..c823898 100644
--- a/glib2/ext/glib2/rbglib.c
+++ b/glib2/ext/glib2/rbglib.c
@@ -1,6 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
+ * Copyright (C) 2011-2013 Ruby-GNOME2 Project Team
* Copyright (C) 2002,2003 Masahiro Sakai
*
* This library is free software; you can redistribute it and/or
@@ -1029,7 +1029,6 @@ Init_glib2(void)
rb_define_const(RG_TARGET_NAMESPACE, "MAXLONG", INT2NUM(G_MAXLONG));
rb_define_const(RG_TARGET_NAMESPACE, "MAXULONG", UINT2NUM(G_MAXULONG));
-#if GLIB_CHECK_VERSION(2,4,0)
rb_define_const(RG_TARGET_NAMESPACE, "MININT8", INT2FIX(G_MININT8));
rb_define_const(RG_TARGET_NAMESPACE, "MAXINT8", INT2FIX(G_MAXINT8));
rb_define_const(RG_TARGET_NAMESPACE, "MAXUINT8", UINT2NUM(G_MAXUINT8));
@@ -1041,13 +1040,13 @@ Init_glib2(void)
rb_define_const(RG_TARGET_NAMESPACE, "MININT32", INT2FIX(G_MININT32));
rb_define_const(RG_TARGET_NAMESPACE, "MAXINT32", INT2NUM(G_MAXINT32));
rb_define_const(RG_TARGET_NAMESPACE, "MAXUINT32", UINT2NUM(G_MAXUINT32));
-#endif
+
rb_define_const(RG_TARGET_NAMESPACE, "MININT64", INT2FIX(G_MININT64));
rb_define_const(RG_TARGET_NAMESPACE, "MAXINT64", LL2NUM(G_MAXINT64));
rb_define_const(RG_TARGET_NAMESPACE, "MAXUINT64", ULL2NUM(G_MAXUINT64));
-#if GLIB_CHECK_VERSION(2,4,0)
+
rb_define_const(RG_TARGET_NAMESPACE, "MAXSIZE", UINT2NUM(G_MAXSIZE));
-#endif
+
rb_define_const(RG_TARGET_NAMESPACE, "MINFLOAT", INT2FIX(G_MINFLOAT));
rb_define_const(RG_TARGET_NAMESPACE, "MAXFLOAT", DBL2NUM(G_MAXFLOAT));
@@ -1121,6 +1120,8 @@ union GDoubleIEEE754;
/* Init_mem(); */
Init_gutil();
Init_gutil_callback();
+
+ Init_glib_gettext();
Init_glib_int64();
Init_glib_error();
Init_glib_threads();
diff --git a/glib2/ext/glib2/rbglib.h b/glib2/ext/glib2/rbglib.h
index 195a25b..94284f1 100644
--- a/glib2/ext/glib2/rbglib.h
+++ b/glib2/ext/glib2/rbglib.h
@@ -34,8 +34,8 @@ extern "C" {
#endif /* __cplusplus */
#define RBGLIB_MAJOR_VERSION 2
-#define RBGLIB_MINOR_VERSION 0
-#define RBGLIB_MICRO_VERSION 2
+#define RBGLIB_MINOR_VERSION 1
+#define RBGLIB_MICRO_VERSION 0
#ifndef RSTRING_PTR
# define RSTRING_PTR(s) (RSTRING(s)->ptr)
@@ -51,8 +51,8 @@ extern "C" {
# define DBL2NUM(v) (rb_float_new(v))
#endif
-#if ! GLIB_CHECK_VERSION(2,4,0)
-typedef int GPid;
+#ifndef RBASIC_CLASS
+# define RBASIC_CLASS(obj) (RBASIC(obj)->klass)
#endif
#ifndef G_SOURCE_REMOVE
diff --git a/glib2/ext/glib2/rbglib_bookmarkfile.c b/glib2/ext/glib2/rbglib_bookmarkfile.c
index 70cca08..1b3ef57 100644
--- a/glib2/ext/glib2/rbglib_bookmarkfile.c
+++ b/glib2/ext/glib2/rbglib_bookmarkfile.c
@@ -21,7 +21,6 @@
#include "rbgprivate.h"
-#if GLIB_CHECK_VERSION(2,12,0)
/************************************************/
static GBookmarkFile*
bookmarkfile_copy(const GBookmarkFile* file)
@@ -498,12 +497,9 @@ rg_move_item(VALUE self, VALUE old_uri, VALUE new_uri)
return self;
}
-#endif
-
void
Init_glib_bookmark_file(void)
{
-#if GLIB_CHECK_VERSION(2,12,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_BOOKMARK_FILE, "BookmarkFile", mGLib);
G_DEF_ERROR(G_BOOKMARK_FILE_ERROR, "BookmarkFileError", mGLib,
@@ -547,5 +543,4 @@ Init_glib_bookmark_file(void)
RG_DEF_METHOD(remove_application, 2);
RG_DEF_METHOD(remove_item, 1);
RG_DEF_METHOD(move_item, 2);
-#endif
}
\ No newline at end of file
diff --git a/glib2/ext/glib2/rbglib_error.c b/glib2/ext/glib2/rbglib_error.c
index 036a71c..238c4d2 100644
--- a/glib2/ext/glib2/rbglib_error.c
+++ b/glib2/ext/glib2/rbglib_error.c
@@ -31,22 +31,19 @@ VALUE
rbgerr_gerror2exception(GError *error)
{
VALUE exc = Qnil;
- VALUE klass = Qnil;
+ VALUE exception_klass = Qnil;
- if (! error){
+ if (!error) {
return rb_exc_new2(rb_eRuntimeError, "GError parameter doesn't have a value.");
}
- klass = rb_hash_aref(gerror_table, UINT2NUM(error->domain));
- if (NIL_P(klass)) {
- exc = rb_exc_new2(generic_error, error->message);
- rb_ivar_set(exc, id_domain, CSTR2RVAL(g_quark_to_string(error->domain)));
- rb_ivar_set(exc, id_code, INT2NUM(error->code));
- } else {
- exc = rb_exc_new2(klass, error->message);
- rb_ivar_set(exc, id_domain, CSTR2RVAL(g_quark_to_string(error->domain)));
- rb_ivar_set(exc, id_code, INT2NUM(error->code));
+ exception_klass = rb_hash_aref(gerror_table, UINT2NUM(error->domain));
+ if (NIL_P(exception_klass)) {
+ exception_klass = generic_error;
}
+ exc = rb_exc_new_str(exception_klass, CSTR2RVAL(error->message));
+ rb_ivar_set(exc, id_domain, CSTR2RVAL(g_quark_to_string(error->domain)));
+ rb_ivar_set(exc, id_code, INT2NUM(error->code));
g_error_free(error);
return exc;
}
diff --git a/glib2/ext/glib2/rbglib_i18n.c b/glib2/ext/glib2/rbglib_gettext.c
similarity index 57%
copy from glib2/ext/glib2/rbglib_i18n.c
copy to glib2/ext/glib2/rbglib_gettext.c
index bf598b8..a18ba6d 100644
--- a/glib2/ext/glib2/rbglib_i18n.c
+++ b/glib2/ext/glib2/rbglib_gettext.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006 Kouhei Sutou
+ * Copyright (C) 2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -21,24 +20,29 @@
#include "rbgprivate.h"
#include "rbglib.h"
-#undef _
-#include <glib/gi18n.h>
-#define RG_TARGET_NAMESPACE mGLib
+#include <libintl.h>
+
+#define RG_TARGET_NAMESPACE mGetText
-#if GLIB_CHECK_VERSION(2,6,0)
static VALUE
-rg_s_language_names(G_GNUC_UNUSED VALUE self)
+rg_s_bindtextdomain(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
{
- return STRV2RVAL((const gchar **)g_get_language_names());
+ VALUE domain_name;
+ VALUE directory;
+ const char *current_directory = NULL;
+
+ rb_scan_args(argc, argv, "11", &domain_name, &directory);
+ current_directory = bindtextdomain(RVAL2CSTR(domain_name),
+ RVAL2CSTR_ACCEPT_NIL(directory));
+ return CSTR2RVAL(current_directory);
}
-#endif
void
-Init_glib_i18n(void)
+Init_glib_gettext(void)
{
- /* glib/gi18n.h */
-#if GLIB_CHECK_VERSION(2,6,0)
- RG_DEF_SMETHOD(language_names, 0);
-#endif
+ VALUE RG_TARGET_NAMESPACE;
+
+ RG_TARGET_NAMESPACE = rb_define_module_under(mGLib, "GetText");
+ RG_DEF_SMETHOD(bindtextdomain, -1);
}
diff --git a/glib2/ext/glib2/rbglib_i18n.c b/glib2/ext/glib2/rbglib_i18n.c
index bf598b8..7e2e99f 100644
--- a/glib2/ext/glib2/rbglib_i18n.c
+++ b/glib2/ext/glib2/rbglib_i18n.c
@@ -26,19 +26,15 @@
#define RG_TARGET_NAMESPACE mGLib
-#if GLIB_CHECK_VERSION(2,6,0)
static VALUE
rg_s_language_names(G_GNUC_UNUSED VALUE self)
{
return STRV2RVAL((const gchar **)g_get_language_names());
}
-#endif
void
Init_glib_i18n(void)
{
/* glib/gi18n.h */
-#if GLIB_CHECK_VERSION(2,6,0)
RG_DEF_SMETHOD(language_names, 0);
-#endif
}
diff --git a/glib2/ext/glib2/rbglib_keyfile.c b/glib2/ext/glib2/rbglib_keyfile.c
index d2346f9..af6b1fd 100644
--- a/glib2/ext/glib2/rbglib_keyfile.c
+++ b/glib2/ext/glib2/rbglib_keyfile.c
@@ -21,7 +21,6 @@
#include "rbgprivate.h"
-#if GLIB_CHECK_VERSION(2,6,0)
#if !GLIB_CHECK_VERSION(2,31,2)
/************************************************/
static GKeyFile*
@@ -312,7 +311,6 @@ rg_get_integer(VALUE self, VALUE group_name, VALUE key)
return INT2NUM(ret);
}
-#if GLIB_CHECK_VERSION(2,12,0)
static VALUE
rg_get_double(VALUE self, VALUE group_name, VALUE key)
{
@@ -326,7 +324,6 @@ rg_get_double(VALUE self, VALUE group_name, VALUE key)
return rb_float_new(ret);
}
-#endif
static VALUE
rg_get_string_list(VALUE self, VALUE group_name, VALUE key)
@@ -422,7 +419,6 @@ rg_get_integer_list(VALUE self, VALUE group_name, VALUE key)
return ary;
}
-#if GLIB_CHECK_VERSION(2,12,0)
static VALUE
rg_get_double_list(VALUE self, VALUE group_name, VALUE key)
{
@@ -443,7 +439,6 @@ rg_get_double_list(VALUE self, VALUE group_name, VALUE key)
}
return ary;
}
-#endif
static VALUE
rg_get_comment(VALUE self, VALUE group_name, VALUE key)
@@ -505,7 +500,6 @@ rg_set_integer(VALUE self, VALUE group_name, VALUE key, VALUE value)
return self;
}
-#if GLIB_CHECK_VERSION(2,12,0)
static VALUE
rg_set_double(VALUE self, VALUE group_name, VALUE key, VALUE value)
{
@@ -514,7 +508,6 @@ rg_set_double(VALUE self, VALUE group_name, VALUE key, VALUE value)
NUM2DBL(value));
return self;
}
-#endif
static VALUE
rg_set_string_list(VALUE self, VALUE rbgroup_name, VALUE rbkey, VALUE rblist)
@@ -581,7 +574,6 @@ rg_set_integer_list(VALUE self, VALUE rbgroup_name, VALUE rbkey, VALUE rblist)
return self;
}
-#if GLIB_CHECK_VERSION(2,12,0)
static VALUE
rg_set_double_list(VALUE self, VALUE rbgroup_name, VALUE rbkey, VALUE rblist)
{
@@ -595,7 +587,6 @@ rg_set_double_list(VALUE self, VALUE rbgroup_name, VALUE rbkey, VALUE rblist)
return self;
}
-#endif
static VALUE
rg_set_comment(VALUE self, VALUE group_name, VALUE key, VALUE comment)
@@ -657,12 +648,10 @@ rg_remove_comment(VALUE self, VALUE group_name, VALUE key)
return self;
}
-#endif
void
Init_glib_keyfile(void)
{
-#if GLIB_CHECK_VERSION(2,6,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(G_TYPE_KEY_FILE, "KeyFile", mGLib);
G_DEF_ERROR(G_KEY_FILE_ERROR, "KeyFileError", mGLib,
rb_eRuntimeError, G_TYPE_KEY_FILE_ERROR);
@@ -686,32 +675,24 @@ Init_glib_keyfile(void)
RG_DEF_METHOD(get_locale_string, -1);
RG_DEF_METHOD(get_boolean, 2);
RG_DEF_METHOD(get_integer, 2);
-#if GLIB_CHECK_VERSION(2,12,0)
RG_DEF_METHOD(get_double, 2);
-#endif
RG_DEF_METHOD(get_string_list, 2);
RG_DEF_METHOD(get_locale_string_list, -1);
RG_DEF_METHOD(get_boolean_list, 2);
RG_DEF_METHOD(get_integer_list, 2);
-#if GLIB_CHECK_VERSION(2,12,0)
RG_DEF_METHOD(get_double_list, 2);
-#endif
RG_DEF_METHOD(get_comment, 2);
RG_DEF_METHOD(set_value, 3);
RG_DEF_METHOD(set_string, 3);
RG_DEF_METHOD(set_locale_string, 4);
RG_DEF_METHOD(set_boolean, 3);
RG_DEF_METHOD(set_integer, 3);
-#if GLIB_CHECK_VERSION(2,12,0)
RG_DEF_METHOD(set_double, 3);
-#endif
RG_DEF_METHOD(set_string_list, 3);
RG_DEF_METHOD(set_locale_string_list, 4);
RG_DEF_METHOD(set_boolean_list, 3);
RG_DEF_METHOD(set_integer_list, 3);
-#if GLIB_CHECK_VERSION(2,12,0)
RG_DEF_METHOD(set_double_list, 3);
-#endif
RG_DEF_METHOD(set_comment, 3);
RG_DEF_METHOD(remove_group, 1);
RG_DEF_METHOD(remove_key, 2);
@@ -771,5 +752,4 @@ Init_glib_keyfile(void)
rb_define_const(RG_TARGET_NAMESPACE, "DESKTOP_TYPE_DIRECTORY",
CSTR2RVAL(G_KEY_FILE_DESKTOP_TYPE_DIRECTORY));
#endif
-#endif
}
diff --git a/glib2/ext/glib2/rbglib_maincontext.c b/glib2/ext/glib2/rbglib_maincontext.c
index 2697281..3a8817f 100644
--- a/glib2/ext/glib2/rbglib_maincontext.c
+++ b/glib2/ext/glib2/rbglib_maincontext.c
@@ -419,13 +419,11 @@ source_remove(G_GNUC_UNUSED VALUE self, VALUE tag)
return CBOOL2RVAL(g_source_remove(NUM2UINT(tag)));
}
-#if GLIB_CHECK_VERSION(2,12,0)
static VALUE
source_current_source(G_GNUC_UNUSED VALUE self)
{
return BOXED2RVAL(g_main_current_source, G_TYPE_SOURCE);
}
-#endif
static gboolean
invoke_source_func(gpointer data)
@@ -533,13 +531,11 @@ rg_release(VALUE self)
return self;
}
-#if GLIB_CHECK_VERSION(2,10,0)
static VALUE
rg_owner_p(VALUE self)
{
return CBOOL2RVAL(g_main_context_is_owner(_SELF(self)));
}
-#endif
/*
gboolean g_main_context_wait (GMainContext *context,
@@ -805,7 +801,6 @@ idle_remove(G_GNUC_UNUSED VALUE self, VALUE func)
return CBOOL2RVAL(g_idle_remove_by_data((gpointer)info));
}
-#if GLIB_CHECK_VERSION(2,4,0)
static VALUE
child_watch_source_new(G_GNUC_UNUSED VALUE self, VALUE pid)
{
@@ -826,7 +821,6 @@ child_watch_add(VALUE self, VALUE pid)
return UINT2NUM(g_child_watch_add((GPid)NUM2INT(pid),
(GChildWatchFunc)child_watch_func, (gpointer)func));
}
-#endif
#ifndef HAVE_RB_THREAD_BLOCKING_REGION
static void
@@ -846,9 +840,7 @@ Init_glib_main_context(void)
VALUE timeout = rb_define_module_under(mGLib, "Timeout");
VALUE idle = rb_define_module_under(mGLib, "Idle");
-#if GLIB_CHECK_VERSION(2,4,0)
VALUE child_watch = rb_define_module_under(mGLib, "ChildWatch");
-#endif
id_call = rb_intern("call");
id__callbacks__ = rb_intern("__callbacks__");
@@ -859,9 +851,7 @@ Init_glib_main_context(void)
mGLibSource = rb_const_get(mGLib, rb_intern("Source"));
rbg_define_singleton_method(mGLibSource, "remove", source_remove, 1);
-#if GLIB_CHECK_VERSION(2,12,0)
rbg_define_singleton_method(mGLibSource, "current", source_current_source, 0);
-#endif
/*
id_poll_func = rb_intern("__poll_func__");
*/
@@ -873,9 +863,7 @@ Init_glib_main_context(void)
RG_DEF_METHOD(wakeup, 0);
RG_DEF_METHOD(acquire, 0);
RG_DEF_METHOD(release, 0);
-#if GLIB_CHECK_VERSION(2,10,0)
RG_DEF_METHOD_P(owner, 0);
-#endif
RG_DEF_METHOD(prepare, 0);
RG_DEF_METHOD(query, 1);
/*
@@ -902,10 +890,8 @@ Init_glib_main_context(void)
rbg_define_singleton_method(idle, "add", idle_add, -1);
rbg_define_singleton_method(idle, "remove", idle_remove, 1);
-#if GLIB_CHECK_VERSION(2,4,0)
rbg_define_singleton_method(child_watch, "source_new", child_watch_source_new, 1);
rbg_define_singleton_method(child_watch, "add", child_watch_add, 1);
-#endif
default_poll_func = g_main_context_get_poll_func(NULL);
g_main_context_set_poll_func(NULL, rg_poll);
diff --git a/glib2/ext/glib2/rbglib_source.c b/glib2/ext/glib2/rbglib_source.c
index c2e2e04..0217a57 100644
--- a/glib2/ext/glib2/rbglib_source.c
+++ b/glib2/ext/glib2/rbglib_source.c
@@ -63,13 +63,11 @@ rg_attach(int argc, VALUE *argv, VALUE self)
RVAL2BOXED(context, G_TYPE_MAIN_CONTEXT)));
}
-#if GLIB_CHECK_VERSION(2,12,0)
static VALUE
rg_destroyed_p(VALUE self)
{
return CBOOL2RVAL(g_source_is_destroyed(_SELF(self)));
}
-#endif
static VALUE
rg_set_priority(VALUE self, VALUE priority)
@@ -178,9 +176,7 @@ Init_glib_source(void)
"CONTINUE", CBOOL2RVAL(G_SOURCE_CONTINUE));
RG_DEF_METHOD(attach, -1);
-#if GLIB_CHECK_VERSION(2,12,0)
RG_DEF_METHOD_P(destroyed, 0);
-#endif
RG_DEF_METHOD(set_priority, 1);
RG_DEF_METHOD(priority, 0);
RG_DEF_METHOD(set_can_recurse, 1);
diff --git a/glib2/ext/glib2/rbglib_timer.c b/glib2/ext/glib2/rbglib_timer.c
index 7f8c6fb..f7af229 100644
--- a/glib2/ext/glib2/rbglib_timer.c
+++ b/glib2/ext/glib2/rbglib_timer.c
@@ -90,14 +90,12 @@ rg_stop(VALUE self)
return self;
}
-#if GLIB_CHECK_VERSION(2,4,0)
static VALUE
rg_continue(VALUE self)
{
g_timer_continue(_SELF(self));
return self;
}
-#endif
static VALUE
rg_elapsed(VALUE self)
@@ -123,9 +121,7 @@ Init_glib_timer(void)
RG_DEF_METHOD(initialize, 0);
RG_DEF_METHOD(start, 0);
RG_DEF_METHOD(stop, 0);
-#if GLIB_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(continue, 0);
-#endif
RG_DEF_METHOD(elapsed, 0);
RG_DEF_METHOD(reset, 0);
}
diff --git a/glib2/ext/glib2/rbglib_unichar.c b/glib2/ext/glib2/rbglib_unichar.c
index b400b76..92f54c3 100644
--- a/glib2/ext/glib2/rbglib_unichar.c
+++ b/glib2/ext/glib2/rbglib_unichar.c
@@ -45,9 +45,7 @@ DEF_IS_UNICHAR(xdigit)
DEF_IS_UNICHAR(title)
DEF_IS_UNICHAR(defined)
DEF_IS_UNICHAR(wide)
-#if GLIB_CHECK_VERSION(2,12,0)
DEF_IS_UNICHAR(wide_cjk)
-#endif
#undef DEF_IS_UNICHAR
@@ -95,7 +93,6 @@ rg_s_break_type(G_GNUC_UNUSED VALUE self, VALUE unichar)
G_TYPE_UNICODE_BREAK_TYPE);
}
-#if GLIB_CHECK_VERSION(2,4,0)
static VALUE
rg_s_get_mirror_char(G_GNUC_UNUSED VALUE self, VALUE unichar)
{
@@ -107,7 +104,6 @@ rg_s_get_mirror_char(G_GNUC_UNUSED VALUE self, VALUE unichar)
return unichar;
}
}
-#endif
#if GLIB_CHECK_VERSION(2,14,0)
static VALUE
@@ -179,10 +175,8 @@ Init_glib_unichar(void)
rbglib_m_unichar_isdefined, 1);
rbg_define_singleton_method(RG_TARGET_NAMESPACE, "wide?",
rbglib_m_unichar_iswide, 1);
-#if GLIB_CHECK_VERSION(2,12,0)
rbg_define_singleton_method(RG_TARGET_NAMESPACE, "wide_cjk?",
rbglib_m_unichar_iswide_cjk, 1);
-#endif
RG_DEF_SMETHOD(to_upper, 1);
RG_DEF_SMETHOD(to_lower, 1);
@@ -194,9 +188,7 @@ Init_glib_unichar(void)
RG_DEF_SMETHOD(type, 1);
RG_DEF_SMETHOD(break_type, 1);
-#if GLIB_CHECK_VERSION(2,4,0)
RG_DEF_SMETHOD(get_mirror_char, 1);
-#endif
#if GLIB_CHECK_VERSION(2,14,0)
RG_DEF_SMETHOD(combining_class, 1);
diff --git a/glib2/ext/glib2/rbglib_utf8.c b/glib2/ext/glib2/rbglib_utf8.c
index af4ae69..5a6ff25 100644
--- a/glib2/ext/glib2/rbglib_utf8.c
+++ b/glib2/ext/glib2/rbglib_utf8.c
@@ -154,11 +154,9 @@ rg_s_collate_key(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
utf8 = StringValueCStr(rb_utf8);
len = RSTRING_LEN(rb_utf8);
-#if GLIB_CHECK_VERSION(2,8,0)
if (RVAL2CBOOL(for_filename))
key = g_utf8_collate_key_for_filename(utf8, len);
else
-#endif
key = g_utf8_collate_key(utf8, len);
result = CSTR2RVAL(key);
diff --git a/glib2/ext/glib2/rbglib_utils.c b/glib2/ext/glib2/rbglib_utils.c
index 45a36aa..6ad0e1e 100644
--- a/glib2/ext/glib2/rbglib_utils.c
+++ b/glib2/ext/glib2/rbglib_utils.c
@@ -24,7 +24,6 @@
#define RG_TARGET_NAMESPACE mGLib
-#if GLIB_CHECK_VERSION(2,2,0)
static VALUE
rg_s_application_name(G_GNUC_UNUSED VALUE self)
{
@@ -37,7 +36,6 @@ rg_s_set_application_name(VALUE self, VALUE application_name)
g_set_prgname(RVAL2CSTR_ACCEPT_NIL(application_name));
return self;
}
-#endif
static VALUE
rg_s_prgname(G_GNUC_UNUSED VALUE self)
@@ -58,7 +56,6 @@ rg_s_getenv(G_GNUC_UNUSED VALUE self, VALUE variable)
return CSTR2RVAL(g_getenv(RVAL2CSTR(variable)));
}
-#if GLIB_CHECK_VERSION(2,4,0)
static VALUE
rg_s_setenv(G_GNUC_UNUSED VALUE self, VALUE variable, VALUE value, VALUE overwrite)
{
@@ -73,9 +70,7 @@ rg_s_unsetenv(VALUE self, VALUE variable)
g_unsetenv(RVAL2CSTR(variable));
return self;
}
-#endif
-#if GLIB_CHECK_VERSION(2,8,0)
#ifdef HAVE_G_LISTENV
static VALUE
rg_s_listenv(G_GNUC_UNUSED VALUE self)
@@ -98,7 +93,6 @@ rg_s_host_name(G_GNUC_UNUSED VALUE self)
{
return CSTR2RVAL(g_get_host_name());
}
-#endif
static VALUE
rg_s_user_name(G_GNUC_UNUSED VALUE self)
@@ -112,7 +106,6 @@ rg_s_real_name(G_GNUC_UNUSED VALUE self)
return CSTR2RVAL(g_get_real_name());
}
-#if GLIB_CHECK_VERSION(2, 6, 0)
static VALUE
rg_s_user_cache_dir(G_GNUC_UNUSED VALUE self)
{
@@ -142,7 +135,6 @@ rg_s_system_config_dirs(G_GNUC_UNUSED VALUE self)
{
return STRV2RVAL((const gchar **)g_get_system_config_dirs());
}
-#endif
#if GLIB_CHECK_VERSION(2, 14, 0)
static VALUE
@@ -301,33 +293,25 @@ Init_glib_utils(void)
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, G_TYPE_USER_DIRECTORY, "G_");
#endif
-#if GLIB_CHECK_VERSION(2,2,0)
RG_DEF_SMETHOD(application_name, 0);
RG_DEF_SMETHOD(set_application_name, 1);
-#endif
RG_DEF_SMETHOD(prgname, 0);
RG_DEF_SMETHOD(set_prgname, 1);
RG_DEF_SMETHOD(getenv, 1);
-#if GLIB_CHECK_VERSION(2,4,0)
RG_DEF_SMETHOD(setenv, 2);
RG_DEF_SMETHOD(unsetenv, 1);
-#endif
-#if GLIB_CHECK_VERSION(2,8,0)
#ifdef HAVE_G_LISTENV
RG_DEF_SMETHOD(listenv, 0);
#endif
RG_DEF_SMETHOD(host_name, 0);
-#endif
RG_DEF_SMETHOD(user_name, 0);
RG_DEF_SMETHOD(real_name, 0);
-#if GLIB_CHECK_VERSION(2, 6, 0)
RG_DEF_SMETHOD(user_cache_dir, 0);
RG_DEF_SMETHOD(user_data_dir, 0);
RG_DEF_SMETHOD(user_config_dir, 0);
RG_DEF_SMETHOD(system_data_dirs, 0);
RG_DEF_SMETHOD(system_config_dirs, 0);
-#endif
#if GLIB_CHECK_VERSION(2, 14, 0)
RG_DEF_SMETHOD(get_user_special_dir, 1);
#endif
diff --git a/glib2/ext/glib2/rbglib_win32.c b/glib2/ext/glib2/rbglib_win32.c
index 775b255..6e7f1ce 100644
--- a/glib2/ext/glib2/rbglib_win32.c
+++ b/glib2/ext/glib2/rbglib_win32.c
@@ -45,15 +45,12 @@ rbglib_m_win32_locale_deprecated(VALUE self)
return rg_s_locale(self);
}
-#if GLIB_CHECK_VERSION(2,6,0)
static VALUE
rg_s_version(VALUE self)
{
return UINT2NUM(g_win32_get_windows_version());
}
-#endif
-#if GLIB_CHECK_VERSION(2,8,0)
static VALUE
rg_s_locale_filename_from_utf8(VALUE self, VALUE utf8_filename)
{
@@ -68,8 +65,6 @@ rbglib_m_win32_locale_filename_from_utf8_deprecated(VALUE self,
return rg_s_locale_filename_from_utf8(self, utf8_filename);
}
-#endif
-
# if GLIB_CHECK_VERSION(2, 16, 0)
static VALUE
rg_s_get_package_installation_directory_of_module(int argc,
@@ -105,12 +100,10 @@ Init_glib_win32(void)
/* Deprecated */
rbg_define_singleton_method(mGLib, "win32_locale", rbglib_m_win32_locale_deprecated, 0);
-# if GLIB_CHECK_VERSION(2,8,0)
RG_DEF_SMETHOD(locale_filename_from_utf8, 1);
/* Deprecated */
rbg_define_singleton_method(mGLib, "win32_locale_filename_from_utf8",
rbglib_m_win32_locale_filename_from_utf8_deprecated, 1);
-# endif
# if GLIB_CHECK_VERSION(2, 16, 0)
RG_DEF_SMETHOD(get_package_installation_directory_of_module, -1);
diff --git a/glib2/ext/glib2/rbgobj_object.c b/glib2/ext/glib2/rbgobj_object.c
index 2687a84..6139066 100644
--- a/glib2/ext/glib2/rbgobj_object.c
+++ b/glib2/ext/glib2/rbgobj_object.c
@@ -156,22 +156,10 @@ rbgobj_get_gobject(VALUE obj)
return holder->gobj;
}
-static VALUE
-dummy_init(int argc, VALUE *argv, VALUE self)
-{
- GType gtype = CLASS2GTYPE(CLASS_OF(self));
- if (G_TYPE_IS_ABSTRACT(gtype))
- rb_raise(rb_eTypeError, "initializing abstract class");
- else
- return rb_call_super(argc, argv);
-}
-
void
rbgobj_init_object_class(VALUE klass)
{
rbgobj_define_property_accessors(klass);
- if (G_TYPE_IS_ABSTRACT(CLASS2GTYPE(klass)))
- rbg_define_method(klass, "initialize", dummy_init, -1);
}
/**********************************************************************/
@@ -629,9 +617,17 @@ rg_type_name(VALUE self)
static VALUE
rg_initialize(int argc, VALUE *argv, VALUE self)
{
+ GType gtype;
VALUE params_hash;
GObject* gobj;
+ gtype = CLASS2GTYPE(CLASS_OF(self));
+ if (G_TYPE_IS_ABSTRACT(gtype)) {
+ rb_raise(rb_eTypeError,
+ "initializing abstract class: %s",
+ RBG_INSPECT(CLASS_OF(self)));
+ }
+
rb_scan_args(argc, argv, "01", ¶ms_hash);
if (!NIL_P(params_hash))
diff --git a/glib2/ext/glib2/rbgobj_strv.c b/glib2/ext/glib2/rbgobj_strv.c
index f3fdf86..44a78a1 100644
--- a/glib2/ext/glib2/rbgobj_strv.c
+++ b/glib2/ext/glib2/rbgobj_strv.c
@@ -21,8 +21,6 @@
#include "rbgprivate.h"
-#if GLIB_CHECK_VERSION(2,6,0)
-
static VALUE
strv_to_ruby(const GValue *from)
{
@@ -44,5 +42,3 @@ Init_gobject_gstrv(void)
rbgobj_register_g2r_func(G_TYPE_STRV, strv_to_ruby);
rbgobj_register_r2g_func(G_TYPE_STRV, strv_from_ruby);
}
-
-#endif
diff --git a/glib2/ext/glib2/rbgobj_typeinterface.c b/glib2/ext/glib2/rbgobj_typeinterface.c
index 260d983..9033e34 100644
--- a/glib2/ext/glib2/rbgobj_typeinterface.c
+++ b/glib2/ext/glib2/rbgobj_typeinterface.c
@@ -35,8 +35,6 @@ rg_append_features(G_GNUC_UNUSED VALUE self, VALUE klass)
return rb_call_super(1, &klass);
}
-#if GLIB_CHECK_VERSION(2,4,0)
-
static VALUE
rg_install_property(VALUE self, VALUE pspec_obj)
{
@@ -122,8 +120,6 @@ rg_properties(int argc, VALUE* argv, VALUE self)
return ary;
}
-#endif
-
void
rbgobj_init_interface(VALUE interf)
{
@@ -145,11 +141,9 @@ Init_gobject_typeinterface(void)
RG_TARGET_NAMESPACE = rb_define_module_under(mGLib, "MetaInterface");
rbg_define_method(RG_TARGET_NAMESPACE, "gtype", generic_s_gtype, 0);
RG_DEF_METHOD(append_features, 1);
-#if GLIB_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(install_property, 1);
RG_DEF_METHOD(property, 1);
RG_DEF_METHOD(properties, -1);
-#endif
rbgobj_mInterface = G_DEF_INTERFACE(G_TYPE_INTERFACE, "Interface", mGLib);
}
diff --git a/glib2/ext/glib2/rbgobj_value.c b/glib2/ext/glib2/rbgobj_value.c
index af0a069..eb14f50 100644
--- a/glib2/ext/glib2/rbgobj_value.c
+++ b/glib2/ext/glib2/rbgobj_value.c
@@ -367,6 +367,17 @@ rg_value(VALUE self)
return GVAL2RVAL(value);
}
+static VALUE
+rg_to_s(VALUE self)
+{
+ GValue *value;
+ gchar *string_value;
+
+ value = _SELF(self);
+ string_value = g_strdup_value_contents(value);
+ return CSTR2RVAL_FREE(string_value);
+}
+
void
Init_gobject_gvalue(void)
{
@@ -380,4 +391,5 @@ Init_gobject_gvalue(void)
RG_DEF_METHOD(initialize, 2);
RG_DEF_METHOD(type, 0);
RG_DEF_METHOD(value, 0);
+ RG_DEF_METHOD(to_s, 0);
}
diff --git a/glib2/ext/glib2/rbgobject.c b/glib2/ext/glib2/rbgobject.c
index c1198a6..66f60f9 100644
--- a/glib2/ext/glib2/rbgobject.c
+++ b/glib2/ext/glib2/rbgobject.c
@@ -149,25 +149,31 @@ rbgobj_ruby_object_from_instance2(gpointer instance, gboolean alloc)
}
}
+void
+rbgobj_instance_unref(gpointer instance)
+{
+ GType type;
+
+ type = G_TYPE_FROM_INSTANCE(instance);
+ if (!rbgobj_convert_unref(type, instance)) {
+ type = G_TYPE_FUNDAMENTAL(type);
+ switch (type) {
+ case G_TYPE_OBJECT:
+ g_object_unref(instance);
+ break;
+ default:
+ rbgobj_convert_unref(type, instance);
+ break;
+ }
+ }
+}
+
VALUE
rbgobj_ruby_object_from_instance_with_unref(gpointer instance)
{
VALUE result = rbgobj_ruby_object_from_instance(instance);
if (!NIL_P(result)) {
- GType type;
-
- type = G_TYPE_FROM_INSTANCE(instance);
- if (!rbgobj_convert_unref(type, instance)) {
- type = G_TYPE_FUNDAMENTAL(type);
- switch (type) {
- case G_TYPE_OBJECT:
- g_object_unref(instance);
- break;
- default:
- rbgobj_convert_unref(type, instance);
- break;
- }
- }
+ rbgobj_instance_unref(instance);
}
return result;
}
@@ -265,11 +271,9 @@ rbgobj_define_property_accessors(VALUE klass)
gtype = CLASS2GTYPE(klass);
if (G_TYPE_IS_INTERFACE(gtype)){
-#if GLIB_CHECK_VERSION(2,4,0)
gpointer iface = g_type_default_interface_ref(gtype);
pspecs = g_object_interface_list_properties(iface, &n_properties);
g_type_default_interface_unref(iface);
-#endif
} else {
GObjectClass* oclass = G_OBJECT_CLASS(g_type_class_ref(gtype));
pspecs = g_object_class_list_properties(oclass, &n_properties);
@@ -369,9 +373,7 @@ Init_gobject(void)
Init_gobject_gvalue();
Init_gobject_gvaluetypes();
Init_gobject_gboxed();
-#if GLIB_CHECK_VERSION(2,6,0)
Init_gobject_gstrv();
-#endif
Init_gobject_value_array();
Init_gobject_genumflags();
Init_gobject_gparam();
diff --git a/glib2/ext/glib2/rbgobject.h b/glib2/ext/glib2/rbgobject.h
index adecc4e..803ed2f 100644
--- a/glib2/ext/glib2/rbgobject.h
+++ b/glib2/ext/glib2/rbgobject.h
@@ -143,6 +143,7 @@ extern gpointer rbgobj_instance_from_ruby_object(VALUE obj);
extern VALUE rbgobj_ruby_object_from_instance(gpointer instance);
extern VALUE rbgobj_ruby_object_from_instance2(gpointer instance, gboolean alloc);
extern VALUE rbgobj_ruby_object_from_instance_with_unref(gpointer instance);
+extern void rbgobj_instance_unref(gpointer instance);
extern void rbgobj_add_relative(VALUE obj, VALUE relative);
extern void rbgobj_invalidate_relatives(VALUE obj);
diff --git a/glib2/ext/glib2/rbgprivate.h b/glib2/ext/glib2/rbgprivate.h
index 3cda33c..4ad22d6 100644
--- a/glib2/ext/glib2/rbgprivate.h
+++ b/glib2/ext/glib2/rbgprivate.h
@@ -33,6 +33,10 @@
# define rb_str_new_cstr(c_string) rb_str_new2(c_string)
#endif
+#ifndef HAVE_RB_EXC_NEW_STR
+# define rb_exc_new_str(klass, message) rb_exc_new3(klass, message)
+#endif
+
#ifndef G_VALUE_INIT
# define G_VALUE_INIT { 0, { { 0 } } }
#endif
@@ -119,6 +123,7 @@ G_GNUC_INTERNAL char *rg_obj_constant_lookup(const char *name);
G_GNUC_INTERNAL void Init_gutil(void);
G_GNUC_INTERNAL void Init_gutil_callback(void);
+G_GNUC_INTERNAL void Init_glib_gettext(void);
G_GNUC_INTERNAL void Init_glib_int64(void);
G_GNUC_INTERNAL void Init_glib_error(void);
G_GNUC_INTERNAL void Init_glib_threads(void);
@@ -157,9 +162,7 @@ G_GNUC_INTERNAL void Init_gobject_typeinstance(void);
G_GNUC_INTERNAL void Init_gobject_gvalue(void);
G_GNUC_INTERNAL void Init_gobject_gvaluetypes(void);
G_GNUC_INTERNAL void Init_gobject_gboxed(void);
-#if GLIB_CHECK_VERSION(2,6,0)
G_GNUC_INTERNAL void Init_gobject_gstrv(void);
-#endif
G_GNUC_INTERNAL void Init_gobject_value_array(void);
G_GNUC_INTERNAL void Init_gobject_genumflags(void);
G_GNUC_INTERNAL void Init_gobject_genums(void);
diff --git a/glib2/lib/glib2.rb b/glib2/lib/glib2.rb
index 56751b3..5c79657 100644
--- a/glib2/lib/glib2.rb
+++ b/glib2/lib/glib2.rb
@@ -93,6 +93,10 @@ end
base_dir = Pathname.new(__FILE__).dirname.dirname.expand_path
vendor_dir = base_dir + "vendor" + "local"
+if vendor_dir.exist?
+ require "cairo"
+end
+
GLib.prepend_dll_path(vendor_dir + "bin")
begin
major, minor, _ = RUBY_VERSION.split(/\./)
diff --git a/glib2/lib/gnome2/rake/external-package.rb b/glib2/lib/gnome2/rake/external-package.rb
index d4d8db4..9039555 100644
--- a/glib2/lib/gnome2/rake/external-package.rb
+++ b/glib2/lib/gnome2/rake/external-package.rb
@@ -19,6 +19,8 @@
module GNOME2
module Rake
class ExternalPackage < Struct.new(:name,
+ :base_name,
+ :archive_base_name,
:label,
:version,
:download_site,
@@ -43,11 +45,11 @@ module GNOME2
end
def base_name
- "#{name}-#{version}"
+ super || "#{name}-#{version}"
end
def archive_base_name
- "#{base_name}.tar.#{compression_method}"
+ super || "#{base_name}.tar.#{compression_method}"
end
def archive_url
@@ -95,7 +97,7 @@ module GNOME2
case download_site
when :gnome
base_url = "http://ftp.gnome.org/pub/gnome/sources"
- release_series = version.gsub(/\A(\d+\.\d+).+\z/, '\1')
+ release_series = version.gsub(/\A(\d+\.\d+)(?:[^\d].*)?\z/, '\1')
base_url << "/#{name}/#{release_series}"
else
base_url = nil
@@ -107,7 +109,9 @@ module GNOME2
:include_paths,
:library_paths,
:configure_args,
+ :cc_args,
:patches,
+ :built_file,
:need_autogen,
:need_autoreconf,
:build_concurrently,
@@ -135,10 +139,18 @@ module GNOME2
super || []
end
+ def cc_args
+ super || []
+ end
+
def patches
super || []
end
+ def built_file
+ super || nil
+ end
+
def need_autogen?
need_autogen.nil? ? false : need_autogen
end
@@ -159,6 +171,7 @@ module GNOME2
class NativeConfiguration < Struct.new(:build,
:configure_args,
:patches,
+ :built_file,
:need_autogen,
:need_autoreconf,
:build_concurrently)
@@ -181,6 +194,10 @@ module GNOME2
super || []
end
+ def built_file
+ super || nil
+ end
+
def need_autogen?
need_autogen.nil? ? false : need_autogen
end
diff --git a/glib2/lib/gnome2/rake/native-binary-build-task.rb b/glib2/lib/gnome2/rake/native-binary-build-task.rb
index f3d6240..c6a525a 100644
--- a/glib2/lib/gnome2/rake/native-binary-build-task.rb
+++ b/glib2/lib/gnome2/rake/native-binary-build-task.rb
@@ -52,41 +52,58 @@ module GNOME2
def define_build_tasks
namespace :build do
build_packages.each do |package|
- download_task = "source:downloader:download:#{package.name}"
- desc "Build #{package.label} and install it into #{dist_dir}."
- task package.name => [download_task] do
- package_tmp_dir = @package.tmp_dir + package.name
- rm_rf(package_tmp_dir)
- mkdir_p(package_tmp_dir)
-
- tar_full_path = @package.download_dir + package.archive_base_name
- Dir.chdir(package_tmp_dir.to_s) do
- sh("tar", "xf", tar_full_path.to_s) or exit(false)
- end
-
- Dir.chdir((package_tmp_dir + package.base_name).to_s) do
- package.native.patches.each do |patch|
- sh("patch -p1 < #{@package.patches_dir}/#{patch}")
+ namespace package.name do
+ download_task = "source:downloader:download:#{package.name}"
+ built_file = package.native.built_file
+ if built_file
+ built_file = dist_dir + built_file
+ file built_file.to_s do
+ ::Rake::Task[download_task].invoke
+ build_package_task_body(package)
end
- sh("./autogen.sh") if package.native.need_autogen?
- sh("autoreconf --install") if package.native.need_autoreconf?
- sh("./configure",
- "PKG_CONFIG_PATH=#{pkg_config_path}",
- "--prefix=#{dist_dir}",
- *package.native.configure_args) or exit(false)
- common_make_args = []
- common_make_args << "GLIB_COMPILE_SCHEMAS=glib-compile-schemas"
- build_make_args = common_make_args.dup
- install_make_args = common_make_args.dup
- if package.native.build_concurrently?
- make_n_jobs = ENV["MAKE_N_JOBS"]
- build_make_args << "-j#{make_n_jobs}" if make_n_jobs
+ task :build => built_file.to_s
+ else
+ task :build => [download_task] do
+ build_patckage_task_body(package)
end
- sh("nice", "make", *build_make_args) or exit(false)
- sh("make", "install", *install_make_args) or exit(false)
end
end
+ desc "Build #{package.label} and install it into #{dist_dir}."
+ task package.name => "native:builder:build:#{package.name}:build"
+ end
+ end
+ end
+
+ def build_package_task_body(package)
+ package_tmp_dir = @package.tmp_dir + package.name
+ rm_rf(package_tmp_dir)
+ mkdir_p(package_tmp_dir)
+
+ tar_full_path = @package.download_dir + package.archive_base_name
+ Dir.chdir(package_tmp_dir.to_s) do
+ sh("tar", "xf", tar_full_path.to_s) or exit(false)
+ end
+
+ Dir.chdir((package_tmp_dir + package.base_name).to_s) do
+ package.native.patches.each do |patch|
+ sh("patch -p1 < #{@package.patches_dir}/#{patch}")
+ end
+ sh("./autogen.sh") if package.native.need_autogen?
+ sh("autoreconf --install") if package.native.need_autoreconf?
+ sh("./configure",
+ "PKG_CONFIG_PATH=#{pkg_config_path}",
+ "--prefix=#{dist_dir}",
+ *package.native.configure_args) or exit(false)
+ common_make_args = []
+ common_make_args << "GLIB_COMPILE_SCHEMAS=glib-compile-schemas"
+ build_make_args = common_make_args.dup
+ install_make_args = common_make_args.dup
+ if package.native.build_concurrently?
+ make_n_jobs = ENV["MAKE_N_JOBS"]
+ build_make_args << "-j#{make_n_jobs}" if make_n_jobs
end
+ sh("nice", "make", *build_make_args) or exit(false)
+ sh("make", "install", *install_make_args) or exit(false)
end
end
diff --git a/glib2/lib/gnome2/rake/package-task.rb b/glib2/lib/gnome2/rake/package-task.rb
index 5c97bcd..e3a79bd 100644
--- a/glib2/lib/gnome2/rake/package-task.rb
+++ b/glib2/lib/gnome2/rake/package-task.rb
@@ -120,6 +120,7 @@ module GNOME2
s.author = @author
s.email = @email
s.homepage = @homepage
+ s.licenses = ["LGPLv2.1 or later"]
s.version = version
extensions = FileList["ext/#{@name}/extconf.rb"]
extensions.existing!
@@ -131,7 +132,7 @@ module GNOME2
"{ext,sample,test,test-unit}/**/*"]
files.existing!
s.files = files
- s.required_ruby_version = @required_ruby_version || ">= 1.8.5"
+ s.required_ruby_version = @required_ruby_version || ">= 1.9.3"
s.post_install_message = @post_install_message
@dependency_configuration.apply(s)
end
@@ -174,12 +175,22 @@ module GNOME2
win32_binary_dir = @package.windows.relative_binary_dir
win32_files = []
if win32_binary_dir.exist?
- Find.find(win32_binary_dir.to_s) do |file|
- next if /\.zip\z/ =~ file
- win32_files << file
+ Find.find(win32_binary_dir.to_s) do |path|
+ next unless File.file?(path)
+ next if /\.zip\z/ =~ path
+ win32_files << path
end
end
spec.files += win32_files
+ stage_path = "#{ext.tmp_dir}/#{ext.cross_platform}/stage"
+ win32_files.each do |win32_file|
+ stage_win32_file = "#{stage_path}/#{win32_file}"
+ stage_win32_binary_dir = File.dirname(stage_win32_file)
+ directory stage_win32_binary_dir
+ file stage_win32_file => [stage_win32_binary_dir, win32_file] do
+ cp win32_file, stage_win32_file
+ end
+ end
end
@cross_compiling_hooks.each do |hook|
hook.call(spec)
diff --git a/glib2/lib/gnome2/rake/source-download-task.rb b/glib2/lib/gnome2/rake/source-download-task.rb
index 3d08881..a4753b0 100644
--- a/glib2/lib/gnome2/rake/source-download-task.rb
+++ b/glib2/lib/gnome2/rake/source-download-task.rb
@@ -60,7 +60,8 @@ module GNOME2
task :before
task :after
desc "Download #{package.label} into #{download_dir}."
- task package[:name] => [:before, tar_full_path.to_s, :after]
+ # task package[:name] => [:before, tar_full_path.to_s, :after]
+ task package[:name] => tar_full_path.to_s
directory_path = tar_full_path.dirname
directory directory_path.to_s
diff --git a/glib2/lib/gnome2/rake/win32-binary-build-task.rb b/glib2/lib/gnome2/rake/win32-binary-build-task.rb
index 1cfe08c..89107e7 100644
--- a/glib2/lib/gnome2/rake/win32-binary-build-task.rb
+++ b/glib2/lib/gnome2/rake/win32-binary-build-task.rb
@@ -48,6 +48,11 @@ class GNOME2Win32BinaryBuildTask
end.join(":")
ENV["PKG_CONFIG_LIBDIR"] = rcairo_win32_pkgconfig_path
end
+
+ prepare_task_names << "pkg_config_for_build"
+ task :pkg_config_for_build do
+ ENV["PKG_CONFIG_FOR_BUILD"] = "env - pkg-config"
+ end
end
full_prepare_task_names = prepare_task_names.collect do |name|
@@ -59,8 +64,19 @@ class GNOME2Win32BinaryBuildTask
namespace package.name do
task :before
download_task = "source:downloader:download:#{package.name}"
- task :build => [:prepare, download_task] do
- build_package_task_body(package)
+ built_file = package.windows.built_file
+ if built_file
+ built_file = dist_dir + built_file
+ file built_file.to_s do
+ Rake::Task["win32:builder:build:prepare"].invoke
+ Rake::Task[download_task].invoke
+ build_package_task_body(package)
+ end
+ task :build => built_file.to_s
+ else
+ task :build => [:prepare, download_task] do
+ build_package_task_body(package)
+ end
end
task :after
end
@@ -92,7 +108,7 @@ class GNOME2Win32BinaryBuildTask
end
sh("./autogen.sh") if package.windows.need_autogen?
sh("autoreconf --install") if package.windows.need_autoreconf?
- cc_env = "CC=#{@package.windows.build_host}-gcc"
+ cc_env = "CC=#{cc(package)}"
sh("./configure",
cc_env,
"CPPFLAGS=#{cppflags(package)}",
@@ -101,6 +117,7 @@ class GNOME2Win32BinaryBuildTask
"--host=#{@package.windows.build_host}",
*package.windows.configure_args) or exit(false)
common_make_args = []
+ common_make_args << "MAKE=make"
common_make_args << "GLIB_COMPILE_SCHEMAS=glib-compile-schemas"
if package.windows.use_cc_environment_variable?
common_make_args << cc_env
@@ -175,6 +192,14 @@ class GNOME2Win32BinaryBuildTask
"#{rcairo_win32_dir}/vendor/local/lib"
end
+ def cc(package)
+ cc_command_line = [
+ "#{@package.windows.build_host}-gcc",
+ *package.windows.cc_args,
+ ]
+ cc_command_line.compact.join(" ")
+ end
+
def cppflags(package)
include_paths = package.windows.include_paths
if @package.windows.build_dependencies.include?("glib2")
diff --git a/glib2/lib/mkmf-gnome2.rb b/glib2/lib/mkmf-gnome2.rb
index d9e97ca..c665d05 100644
--- a/glib2/lib/mkmf-gnome2.rb
+++ b/glib2/lib/mkmf-gnome2.rb
@@ -3,7 +3,7 @@
#
# Extended mkmf for Ruby-GNOME2 and Ruby/GLib based libraries.
#
-# Copyright(C) 2003-2011 Ruby-GNOME2 Project.
+# Copyright(C) 2003-2013 Ruby-GNOME2 Project.
#
# This program is licenced under the same
# license of Ruby-GNOME2.
@@ -11,13 +11,7 @@
require 'English'
require 'mkmf'
-begin
- require 'pkg-config'
-rescue LoadError
- require 'rubygems'
- gem 'pkg-config'
- require 'pkg-config'
-end
+require 'pkg-config'
require 'glib-mkenums'
$CFLAGS += " #{ENV['CFLAGS']}" if ENV['CFLAGS']
diff --git a/glib2/patches/glib-2.38.2-add-missing-exeext.diff b/glib2/patches/glib-2.38.2-add-missing-exeext.diff
new file mode 100644
index 0000000..0196b9a
--- /dev/null
+++ b/glib2/patches/glib-2.38.2-add-missing-exeext.diff
@@ -0,0 +1,24 @@
+diff -ru glib-2.38.2.orig/gio/tests/Makefile.am glib-2.38.2/gio/tests/Makefile.am
+--- glib-2.38.2.orig/gio/tests/Makefile.am 2013-11-12 14:30:22.000000000 +0900
++++ glib-2.38.2/gio/tests/Makefile.am 2013-12-23 15:13:59.328468099 +0900
+@@ -431,7 +431,7 @@
+ if CROSS_COMPILING
+ glib_compile_resources=$(GLIB_COMPILE_RESOURCES)
+ else
+- glib_compile_resources=$(top_builddir)/gio/glib-compile-resources
++ glib_compile_resources=$(top_builddir)/gio/glib-compile-resources$(EXEEXT)
+ endif
+
+ resources.o: test_resources2.h
+diff -ru glib-2.38.2.orig/tests/gobject/Makefile.am glib-2.38.2/tests/gobject/Makefile.am
+--- glib-2.38.2.orig/tests/gobject/Makefile.am 2013-11-08 00:29:13.000000000 +0900
++++ glib-2.38.2/tests/gobject/Makefile.am 2013-12-23 15:12:21.190876890 +0900
+@@ -51,7 +51,7 @@
+ if CROSS_COMPILING
+ glib_genmarshal=$(GLIB_GENMARSHAL)
+ else
+- glib_genmarshal=$(top_builddir)/gobject/glib-genmarshal
++ glib_genmarshal=$(top_builddir)/gobject/glib-genmarshal$(EXEEXT)
+ endif
+
+ testmarshal.h: stamp-testmarshal.h
diff --git a/gobject-introspection/Rakefile b/gobject-introspection/Rakefile
index 4a8d661..596415c 100644
--- a/gobject-introspection/Rakefile
+++ b/gobject-introspection/Rakefile
@@ -32,7 +32,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
:name => "glib",
:download_site => :gnome,
:label => "GLib",
- :version => "2.36.2",
+ :version => "2.38.2",
:compression_method => "xz",
:windows => {
:build => false,
@@ -40,13 +40,14 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
:native => {
:build => true,
:need_autoreconf => true,
+ :built_file => "lib/libglib-2.0.so",
},
},
{
:name => "gobject-introspection",
:download_site => :gnome,
:label => "gobject-introspection",
- :version => "1.36.0",
+ :version => "1.38.0",
:compression_method => "xz",
:windows => {
:configure_args => [
@@ -57,12 +58,14 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
"0001-Support-external-g-ir-scanner.patch",
],
:need_autoreconf => true,
+ :built_file => "bin/libgirepository-1.0-1.dll",
},
:native => {
:build => true,
:patches => [
# "cross-compilable-g-ir-scanner.diff",
],
+ :built_file => "bin/g-ir-scanner",
}
},
]
diff --git a/gobject-introspection/ext/gobject-introspection/rb-gi-argument.c b/gobject-introspection/ext/gobject-introspection/rb-gi-argument.c
index 6644043..b2b8a7c 100644
--- a/gobject-introspection/ext/gobject-introspection/rb-gi-argument.c
+++ b/gobject-introspection/ext/gobject-introspection/rb-gi-argument.c
@@ -29,6 +29,10 @@ array_c_to_ruby(const gchar **elements, GITypeInfo *type_info, VALUE rb_array)
gboolean fixed_size_p;
gboolean zero_terminated_p;
+ if (!elements) {
+ return;
+ }
+
n_elements = g_type_info_get_array_length(type_info);
fixed_size_p = g_type_info_get_array_fixed_size(type_info);
zero_terminated_p = g_type_info_is_zero_terminated(type_info);
@@ -257,9 +261,13 @@ rb_gi_argument_to_ruby(GIArgument *argument, GITypeInfo *type_info)
rb_argument = interface_to_ruby(argument, type_info);
break;
case GI_TYPE_TAG_GLIST:
+ rb_argument = GOBJGLIST2RVAL(argument->v_pointer);
+ break;
case GI_TYPE_TAG_GSLIST:
case GI_TYPE_TAG_GHASH:
- rb_raise(rb_eNotImpError, "TODO: GIArgument(unichar) -> Ruby");
+ rb_raise(rb_eNotImpError,
+ "TODO: GIArgument(%s) -> Ruby",
+ g_type_tag_to_string(type_tag));
break;
case GI_TYPE_TAG_ERROR:
rb_argument = GERROR2RVAL(argument->v_pointer);
@@ -505,10 +513,201 @@ rb_gi_out_argument_fin(GIArgument *argument, GIArgInfo *arg_info)
xfree(argument->v_pointer);
}
+static void
+rb_gi_return_argument_free_container(GIArgument *argument,
+ GITypeInfo *type_info)
+{
+ GITypeTag type_tag;
+
+ type_tag = g_type_info_get_tag(type_info);
+
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(%s) as container",
+ g_type_tag_to_string(type_tag));
+}
+
+static void
+rb_gi_return_argument_free_everything_array(GIArgument *argument,
+ GITypeInfo *type_info)
+{
+ switch (g_type_info_get_array_type(type_info)) {
+ case GI_ARRAY_TYPE_C:
+ g_strfreev(argument->v_pointer);
+ break;
+ case GI_ARRAY_TYPE_ARRAY:
+ g_array_free(argument->v_pointer, TRUE);
+ break;
+ case GI_ARRAY_TYPE_PTR_ARRAY:
+ g_ptr_array_free(argument->v_pointer, TRUE);
+ break;
+ case GI_ARRAY_TYPE_BYTE_ARRAY:
+ g_ptr_array_free(argument->v_pointer, TRUE);
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+}
+
+static void
+rb_gi_return_argument_free_everything_interface(GIArgument *argument,
+ GITypeInfo *type_info)
+{
+ GIBaseInfo *interface_info;
+ GIInfoType interface_type;
+
+ interface_info = g_type_info_get_interface(type_info);
+ interface_type = g_base_info_get_type(interface_info);
+ g_base_info_unref(interface_info);
+
+ switch (interface_type) {
+ case GI_INFO_TYPE_INVALID:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[invalid] everything");
+ break;
+ case GI_INFO_TYPE_FUNCTION:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[function] everything");
+ break;
+ case GI_INFO_TYPE_CALLBACK:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[callback] everything");
+ break;
+ case GI_INFO_TYPE_STRUCT:
+ rbgobj_instance_unref(argument->v_pointer);
+ break;
+ case GI_INFO_TYPE_BOXED:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[boxed] everything");
+ break;
+ case GI_INFO_TYPE_ENUM:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[enum] everything");
+ break;
+ case GI_INFO_TYPE_FLAGS:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[flags] everything");
+ break;
+ case GI_INFO_TYPE_OBJECT:
+ if (argument->v_pointer) {
+ g_object_unref(argument->v_pointer);
+ }
+ break;
+ case GI_INFO_TYPE_INTERFACE:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[interface] everything");
+ break;
+ case GI_INFO_TYPE_CONSTANT:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[constant] everything");
+ break;
+ case GI_INFO_TYPE_INVALID_0:
+ g_assert_not_reached();
+ break;
+ case GI_INFO_TYPE_UNION:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[union] everything");
+ break;
+ case GI_INFO_TYPE_VALUE:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[value] everything");
+ break;
+ case GI_INFO_TYPE_SIGNAL:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[signal] everything");
+ break;
+ case GI_INFO_TYPE_VFUNC:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[vfunc] everything");
+ break;
+ case GI_INFO_TYPE_PROPERTY:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[property] everything");
+ break;
+ case GI_INFO_TYPE_FIELD:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[field] everything");
+ break;
+ case GI_INFO_TYPE_ARG:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[arg] everything");
+ break;
+ case GI_INFO_TYPE_TYPE:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[type] everything");
+ break;
+ case GI_INFO_TYPE_UNRESOLVED:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(interface)[unresolved] everything");
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+}
+
+static void
+rb_gi_return_argument_free_everything(GIArgument *argument,
+ GITypeInfo *type_info)
+{
+ GITypeTag type_tag;
+
+ type_tag = g_type_info_get_tag(type_info);
+ switch (type_tag) {
+ case GI_TYPE_TAG_VOID:
+ case GI_TYPE_TAG_BOOLEAN:
+ case GI_TYPE_TAG_INT8:
+ case GI_TYPE_TAG_UINT8:
+ case GI_TYPE_TAG_INT16:
+ case GI_TYPE_TAG_UINT16:
+ case GI_TYPE_TAG_INT32:
+ case GI_TYPE_TAG_UINT32:
+ case GI_TYPE_TAG_INT64:
+ case GI_TYPE_TAG_UINT64:
+ case GI_TYPE_TAG_FLOAT:
+ case GI_TYPE_TAG_DOUBLE:
+ case GI_TYPE_TAG_GTYPE:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(%s) everything",
+ g_type_tag_to_string(type_tag));
+ break;
+ case GI_TYPE_TAG_UTF8:
+ g_free(argument->v_string);
+ break;
+ case GI_TYPE_TAG_FILENAME:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(%s) everything",
+ g_type_tag_to_string(type_tag));
+ break;
+ case GI_TYPE_TAG_ARRAY:
+ rb_gi_return_argument_free_everything_array(argument, type_info);
+ break;
+ case GI_TYPE_TAG_INTERFACE:
+ rb_gi_return_argument_free_everything_interface(argument, type_info);
+ break;
+ case GI_TYPE_TAG_GLIST:
+ g_list_foreach(argument->v_pointer, (GFunc)g_object_unref, NULL);
+ g_list_free(argument->v_pointer);
+ break;
+ case GI_TYPE_TAG_GSLIST:
+ case GI_TYPE_TAG_GHASH:
+ case GI_TYPE_TAG_ERROR:
+ case GI_TYPE_TAG_UNICHAR:
+ rb_raise(rb_eNotImpError,
+ "TODO: free GIArgument(%s) everything",
+ g_type_tag_to_string(type_tag));
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+}
+
VALUE
rb_gi_return_argument_to_ruby(GIArgument *argument,
GICallableInfo *callable_info)
{
+ VALUE rb_argument;
gboolean may_return_null;
GITypeInfo return_value_info;
@@ -518,7 +717,21 @@ rb_gi_return_argument_to_ruby(GIArgument *argument,
}
g_callable_info_load_return_type(callable_info, &return_value_info);
- return rb_gi_argument_to_ruby(argument, &return_value_info);
+ rb_argument = rb_gi_argument_to_ruby(argument, &return_value_info);
+ switch (g_callable_info_get_caller_owns(callable_info)) {
+ case GI_TRANSFER_NOTHING:
+ break;
+ case GI_TRANSFER_CONTAINER:
+ rb_gi_return_argument_free_container(argument, &return_value_info);
+ break;
+ case GI_TRANSFER_EVERYTHING:
+ rb_gi_return_argument_free_everything(argument, &return_value_info);
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+ return rb_argument;
}
static void
@@ -538,8 +751,6 @@ rb_gi_argument_from_ruby_array_c(GIArgument *argument,
g_type_tag_to_string(element_type_tag));
break;
case GI_TYPE_TAG_INT8:
- argument->v_pointer = StringValueCStr(rb_argument);
- break;
case GI_TYPE_TAG_UINT8:
argument->v_pointer = RSTRING_PTR(rb_argument);
break;
diff --git a/gobject-introspection/ext/gobject-introspection/rb-gi-loader.c b/gobject-introspection/ext/gobject-introspection/rb-gi-loader.c
index a2fd53d..2d61c95 100644
--- a/gobject-introspection/ext/gobject-introspection/rb-gi-loader.c
+++ b/gobject-introspection/ext/gobject-introspection/rb-gi-loader.c
@@ -55,9 +55,14 @@ static VALUE
struct_alloc(VALUE klass)
{
VALUE rb_size;
+ size_t size;
+ gpointer instance;
rb_size = rb_iv_get(klass, "@size");
- return Data_Wrap_Struct(klass, NULL, xfree, xmalloc(NUM2ULONG(rb_size)));
+ size = NUM2ULONG(rb_size);
+ instance = xmalloc(size);
+ memset(instance, 0, size);
+ return Data_Wrap_Struct(klass, NULL, xfree, instance);
}
static VALUE
@@ -121,7 +126,7 @@ rg_s_register_boxed_class_converter(VALUE klass, VALUE rb_gtype)
memset(&table, 0, sizeof(RGConvertTable));
CONST_ID(id_to_i, "to_i");
- table.type = NUM2UINT(rb_funcall(rb_gtype, id_to_i, 0));
+ table.type = NUM2ULONG(rb_funcall(rb_gtype, id_to_i, 0));
table.klass = Qnil;
table.instance2robj = boxed_instance2robj;
diff --git a/gobject-introspection/ext/gobject-introspection/rb-gi-struct-info.c b/gobject-introspection/ext/gobject-introspection/rb-gi-struct-info.c
index 27b058f..7bd815a 100644
--- a/gobject-introspection/ext/gobject-introspection/rb-gi-struct-info.c
+++ b/gobject-introspection/ext/gobject-introspection/rb-gi-struct-info.c
@@ -71,7 +71,7 @@ rg_get_field_value(VALUE self, VALUE rb_struct, VALUE rb_n)
VALUE rb_gtype;
GType gtype;
rb_gtype = rb_funcall(rb_struct, rb_intern("gtype"), 0);
- gtype = NUM2UINT(rb_funcall(rb_gtype, rb_intern("to_i"), 0));
+ gtype = NUM2ULONG(rb_funcall(rb_gtype, rb_intern("to_i"), 0));
instance = RVAL2BOXED(rb_struct, gtype);
} else {
Data_Get_Struct(rb_struct, void, instance);
diff --git a/gobject-introspection/patches/0001-Support-external-g-ir-scanner.patch b/gobject-introspection/patches/0001-Support-external-g-ir-scanner.patch
index f142bf2..4e0b699 100644
--- a/gobject-introspection/patches/0001-Support-external-g-ir-scanner.patch
+++ b/gobject-introspection/patches/0001-Support-external-g-ir-scanner.patch
@@ -29,7 +29,7 @@ diff --git a/Makefile-gir.am b/Makefile-gir.am
index 2b39e54..63b2f2b 100644
--- a/Makefile-gir.am
+++ b/Makefile-gir.am
-@@ -26,17 +26,17 @@ CLEANFILES += gir/cairo-1.0.gir
+@@ -27,18 +27,18 @@ CLEANFILES += gir/cairo-1.0.gir
EXTRA_DIST += gir/cairo-1.0.gir.in
# Doesn't seem to work to do gir/%.typelib =(
@@ -44,6 +44,7 @@ index 2b39e54..63b2f2b 100644
-gir/xlib-2.0.typelib: g-ir-compiler
-gir/xfixes-4.0.typelib: g-ir-compiler
-gir/xrandr-1.3.typelib: g-ir-compiler
+-gir/win32-1.0.typelib: g-ir-compiler
+gir/cairo-1.0.typelib: g-ir-compiler$(EXEEXT)
+gir/DBus-1.0.typelib: g-ir-compiler$(EXEEXT)
+gir/DBusGLib-1.0.typelib: g-ir-compiler$(EXEEXT)
@@ -55,10 +56,11 @@ index 2b39e54..63b2f2b 100644
+gir/xlib-2.0.typelib: g-ir-compiler$(EXEEXT)
+gir/xfixes-4.0.typelib: g-ir-compiler$(EXEEXT)
+gir/xrandr-1.3.typelib: g-ir-compiler$(EXEEXT)
++gir/win32-1.0.typelib: g-ir-compiler$(EXEEXT)
# glib with source (to enable documentation)
if WITH_GLIBSRC
-@@ -89,7 +89,12 @@ endif
+@@ -91,7 +91,12 @@ endif
BUILT_GIRSOURCES += GLib-2.0.gir
@@ -105,7 +107,7 @@ index e8def0e..4c1d21e 100644
+if BUILD_SCANNER
pkgpyexec_LTLIBRARIES = _giscanner.la
+endif
- pkgpyexec_PYTHON = \
+ pkgpyexec_PYTHON = \
giscanner/__init__.py \
giscanner/annotationmain.py \
diff --git a/Makefile-tools.am b/Makefile-tools.am
@@ -203,7 +205,7 @@ index 3537af1..604b164 100644
AC_CHECK_FUNCS([backtrace backtrace_symbols])
-# Python
--AM_PATH_PYTHON([2.5])
+-AM_PATH_PYTHON([2.6])
-case "$host" in
-*-*-mingw*)
- # Change backslashes to forward slashes in pyexecdir to avoid
@@ -224,7 +226,7 @@ index 3537af1..604b164 100644
+ ;;
+xno)
+ # Python
-+ AM_PATH_PYTHON([2.5])
++ AM_PATH_PYTHON([2.6])
+ case "$host" in
+ *-*-mingw*)
+ # Change backslashes to forward slashes in pyexecdir to avoid
diff --git a/gobject-introspection/test/test-function-info.rb b/gobject-introspection/test/test-function-info.rb
index a93cadb..5d85b56 100644
--- a/gobject-introspection/test/test-function-info.rb
+++ b/gobject-introspection/test/test-function-info.rb
@@ -31,7 +31,9 @@ class TestFunctionInfo < Test::Unit::TestCase
end
def test_invoke
- assert_equal("notify", @info.invoke(1))
+ # TODO: "#invoke" expects Array. We should confirm specification.
+ #assert_equal("notify", @info.invoke(1))
+ assert_equal("notify", @info.invoke([1]))
end
end
diff --git a/goocanvas/README b/goocanvas/README
index 068e943..c0aeb0b 100644
--- a/goocanvas/README
+++ b/goocanvas/README
@@ -9,7 +9,7 @@ Requirements
Install
-------
- 0. install ruby-1.8.x or later and GooCanvas.
+ 0. install ruby-1.9.x or later and GooCanvas.
1. ruby extconf.rb
2. make
3. su
diff --git a/goocanvas/Rakefile b/goocanvas/Rakefile
index 28a6d47..278de3b 100644
--- a/goocanvas/Rakefile
+++ b/goocanvas/Rakefile
@@ -6,7 +6,7 @@ require 'gnome2-raketask'
package = GNOME2Package.new do |_package|
_package.summary = "Ruby/GooCanvas is a Ruby binding of GooCanvas."
_package.description = "Ruby/GooCanvas is a Ruby binding of GooCanvas."
- _package.dependency.gem.runtime = ["gtk2"]
+ _package.dependency.gem.runtime = ["gtk3", "gobject-introspection"]
_package.win32.packages = ["goocanvas"]
_package.win32.dependencies = []
end
diff --git a/goocanvas/sample/demo-animation.rb b/goocanvas/sample/demo-animation.rb
new file mode 100644
index 0000000..73d0934
--- /dev/null
+++ b/goocanvas/sample/demo-animation.rb
@@ -0,0 +1,176 @@
+#!/usr/bin/env ruby
+#
+# This sample code is a port of
+# goocanvas/demo/demo-animation.c. It is licensed
+# under the terms of the GNU Library General Public License, version
+# 2 or (at your option) later.
+#
+# Copyright (C) 2013 Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+class CanvasSampleAnimation < Gtk::Box
+ def initialize
+ super(:vertical, 4)
+ set_border_width(4)
+ show
+ create_animation_page(self)
+ end
+
+ private
+ def create_animation_page(vbox)
+ hbox = Gtk::Box.new(:horizontal, 4)
+ vbox.pack_start(hbox, :expand => false,
+ :fill => false,
+ :padding => 0)
+ hbox.show
+
+ start_button = Gtk::Button.new(:label => "Start Animation")
+ hbox.pack_start(start_button, :expand => false,
+ :fill => false,
+ :padding => 0)
+ start_button.show
+
+ stop_button = Gtk::Button.new(:label => "Stop Animation")
+ hbox.pack_start(stop_button, :expand => false,
+ :fill => false,
+ :padding => 0)
+ stop_button.show
+
+ scrolled_win = Gtk::ScrolledWindow.new
+ scrolled_win.shadow_type = :in
+ vbox.pack_start(scrolled_win, :expand => true,
+ :fill => true,
+ :padding => 0)
+ scrolled_win.show
+
+ canvas = Goo::Canvas.new
+ canvas.set_size_request(600, 450)
+ canvas.set_bounds(0, 0, 1000, 1000)
+ canvas.show
+ scrolled_win.add(canvas)
+
+ items = setup_canvas(canvas)
+
+ start_button.signal_connect("clicked") do
+ start_animation_clicked(*items)
+ end
+
+ stop_button.signal_connect("clicked") do
+ stop_animation_clicked(*items)
+ end
+ end
+
+ def setup_canvas(canvas)
+ root = canvas.root_item
+
+ # Absolute.
+ ellipse1 = Goo::CanvasEllipse.new(:parent => root,
+ :center_x => 0,
+ :center_y => 0,
+ :radius_x => 25,
+ :radius_y => 15,
+ :fill_color => "blue")
+ ellipse1.translate(100, 100)
+ ellipse1.signal_connect("animation_finished") do |_, event|
+ on_animation_finished(event, ellipse1)
+ end
+
+ rect1 = Goo::CanvasRect.new(:parent => root,
+ :x => -10,
+ :y => -10,
+ :width => 20,
+ :height => 20,
+ :fill_color => "blue")
+ rect1.translate(100, 200)
+
+ rect3 = Goo::CanvasRect.new(:parent => root,
+ :x => -10,
+ :y => -10,
+ :width => 20,
+ :height => 20,
+ :fill_color => "blue")
+ rect3.translate(200, 200)
+
+ # Relative.
+ ellipse2 = Goo::CanvasEllipse.new(:parent => root,
+ :center_x => 0,
+ :center_y => 0,
+ :radius_x => 25,
+ :radius_y => 15,
+ :fill_color => "red")
+ ellipse2.translate(100, 400)
+
+ rect2 = Goo::CanvasRect.new(:parent => root,
+ :x => -10,
+ :y => -10,
+ :width => 20,
+ :height => 20,
+ :fill_color => "red")
+ rect2.translate(100, 500)
+
+ rect4 = Goo::CanvasRect.new(:parent => root,
+ :x => -10,
+ :y => -10,
+ :width => 20,
+ :height => 20,
+ :fill_color => "red")
+ rect4.translate(200, 500)
+
+ [ellipse1, rect1, rect3, ellipse2, rect2, rect4]
+ end
+
+ def start_animation_clicked(ellipse1, rect1, rect3,
+ ellipse2, rect2, rect4)
+ # Absolute.
+ ellipse1.set_simple_transform(100, 100, 1, 0)
+ ellipse1.animate(500, 100, 2, 720, true, 2000, 40,
+ Goo::CanvasAnimateType::BOUNCE)
+
+ rect1.set_simple_transform(100, 200, 1, 0)
+ rect1.animate(100, 200, 1, 350, true, 40 * 36, 40,
+ Goo::CanvasAnimateType::RESTART)
+
+ rect3.set_simple_transform(200, 200, 1, 0)
+ rect3.animate(200, 200, 3, 0, true, 400, 40,
+ Goo::CanvasAnimateType::BOUNCE)
+
+ # Relative.
+ ellipse2.set_simple_transform(100, 400, 1, 0)
+ ellipse2.animate(400, 0, 2, 720, false, 2000, 40,
+ Goo::CanvasAnimateType::BOUNCE)
+
+ rect2.set_simple_transform(100, 500, 1, 0)
+ rect2.animate(0, 0, 1, 350, false, 40 * 36, 40,
+ Goo::CanvasAnimateType::RESTART)
+
+ rect4.set_simple_transform(200, 500, 1, 0)
+ rect4.animate(0, 0, 3, 0, false, 400, 40,
+ Goo::CanvasAnimateType::BOUNCE)
+ end
+
+ def stop_animation_clicked(*items)
+ items.each do |item|
+ item.stop_animation
+ end
+ end
+
+ def on_animation_finished(event, ellipse1)
+ puts "Animation finished stopped: #{event}"
+ # Test starting another animation. */
+ #ellipse1.animate(500, 100, 2, 720, true, 2000, 40,
+ # Goo::CanvasAnimateType::BOUNCE)
+ end
+end
diff --git a/goocanvas/sample/demo-arrowhead.rb b/goocanvas/sample/demo-arrowhead.rb
index 80ac3f1..574cb05 100644
--- a/goocanvas/sample/demo-arrowhead.rb
+++ b/goocanvas/sample/demo-arrowhead.rb
@@ -1,315 +1,354 @@
-class CanvasSampleArrowhead < Gtk::VBox
- LEFT = 50.0
- RIGHT = 350.0
- MIDDLE = 150.0
- DEFAULT_WIDTH = 2
- DEFAULT_SHAPE_A = 4
- DEFAULT_SHAPE_B = 5
- DEFAULT_SHAPE_C = 4
-
- def initialize()
- super(false, 4)
- border_width = 4
- show()
-
- w = Gtk::Label.new <<-END
- This demo allows you to edit arrowhead shapes. Drag the little boxes
- to change the shape of the line and its arrowhead. You can see the
- arrows at their normal scale on the right hand side of the window.
- END
- pack_start(w, false, false, 0)
- w.show
-
- w = Gtk::Alignment.new(0.5, 0.5, 0.0, 0.0)
- pack_start(w, true, true, 0)
- w.show
-
- frame = Gtk::Frame.new
- frame.shadow_type = Gtk::SHADOW_IN
- w.add(frame)
- frame.show
-
- canvas = Goo::Canvas.new
- root = canvas.root_item
-
- canvas.set_size_request(500, 350)
- canvas.set_bounds(0, 0, 500, 350)
- frame.add(canvas)
- canvas.show
-
- canvas.instance_variable_set(:@width, DEFAULT_WIDTH)
- canvas.instance_variable_set(:@shape_a, DEFAULT_SHAPE_A)
- canvas.instance_variable_set(:@shape_b, DEFAULT_SHAPE_B)
- canvas.instance_variable_set(:@shape_c, DEFAULT_SHAPE_C)
-
- # Big arrow
-
- item = Goo::CanvasPolyline.new_line(root,
- LEFT, MIDDLE, RIGHT, MIDDLE,
- :stroke_color => "mediumseagreen",
- :end_arrow => true)
- canvas.instance_variable_set(:@big_arrow, item)
-
- # Arrow outline
-
- item = Goo::CanvasPolyline.new(root, true, [],
- :stroke_color, "black",
- :line_width => 2.0,
- :line_cap => Cairo::LINE_CAP_ROUND,
- :line_join => Cairo::LINE_JOIN_ROUND)
- canvas.instance_variable_set(:@outline, item)
-
- # Drag boxes
-
- create_drag_box(canvas, root, "width_drag_box")
- create_drag_box(canvas, root, "shape_a_drag_box")
- create_drag_box(canvas, root, "shape_b_c_drag_box")
-
- # Dimensions
-
- create_dimension(canvas, root, "width_arrow", "width_text", Gtk::ANCHOR_E)
- create_dimension(canvas, root, "shape_a_arrow", "shape_a_text", Gtk::ANCHOR_N)
- create_dimension(canvas, root, "shape_b_arrow", "shape_b_text", Gtk::ANCHOR_N)
- create_dimension(canvas, root, "shape_c_arrow", "shape_c_text", Gtk::ANCHOR_W)
-
- # Info
-
- create_info(canvas, root, "width_info", LEFT, 260)
- create_info(canvas, root, "shape_a_info", LEFT, 280)
- create_info(canvas, root, "shape_b_info", LEFT, 300)
- create_info(canvas, root, "shape_c_info", LEFT, 320)
-
- # Division line
-
- Goo::CanvasPolyline.new_line(root, RIGHT + 50, 0, RIGHT + 50, 1000,
- :fill_color => "black", :line_width => 2.0)
-
- # Sample arrows
-
- create_sample_arrow(canvas, root, "sample_1",
- RIGHT + 100, 30, RIGHT + 100, MIDDLE - 30)
- create_sample_arrow(canvas, root, "sample_2",
- RIGHT + 70, MIDDLE, RIGHT + 130, MIDDLE)
- create_sample_arrow(canvas, root, "sample_3",
- RIGHT + 70, MIDDLE + 30, RIGHT + 130, MIDDLE + 120)
-
- # Done!
- set_arrow_shape(canvas)
- end
-
- def set_dimension(canvas, arrow_name, text_name, x1, y1, x2, y2, tx, ty, dim)
- points = [ x1, y1, x2, y2 ]
-
- arrow = canvas.instance_variable_get("@#{arrow_name}")
- arrow.points = points
-
- text = canvas.instance_variable_get("@#{text_name}")
- text.text = dim.to_s
- text.x = tx
- text.y = ty
- end
-
- def move_drag_box(item, x, y)
- item.x = x - 5.0
- item.y = y - 5.0
- end
-
- def set_arrow_shape(canvas)
- width = canvas.instance_variable_get(:@width)
- shape_a = canvas.instance_variable_get(:@shape_a)
- shape_b = canvas.instance_variable_get(:@shape_b)
- shape_c = canvas.instance_variable_get(:@shape_c)
-
- # Big arrow
-
- big_arrow = canvas.instance_variable_get(:@big_arrow)
- big_arrow.line_width = 10.0 * width
- big_arrow.arrow_tip_length = shape_a
- big_arrow.arrow_length = shape_b
- big_arrow.arrow_width = shape_c
-
- # Outline
-
- points = []
- points[0] = RIGHT - 10 * shape_a * width
- points[1] = MIDDLE - 10 * width / 2
- points[2] = RIGHT - 10 * shape_b * width
- points[3] = MIDDLE - 10 * (shape_c * width / 2.0)
- points[4] = RIGHT
- points[5] = MIDDLE
- points[6] = points[2]
- points[7] = MIDDLE + 10 * (shape_c * width / 2.0)
- points[8] = points[0]
- points[9] = MIDDLE + 10 * width / 2
-
- outline = canvas.instance_variable_get(:@outline)
- outline.points = points
-
- # Drag boxes
- move_drag_box(canvas.instance_variable_get(:@width_drag_box), LEFT, MIDDLE - 10 * width / 2.0)
- move_drag_box(canvas.instance_variable_get(:@shape_a_drag_box), RIGHT - 10 * shape_a * width, MIDDLE)
- move_drag_box(canvas.instance_variable_get(:@shape_b_c_drag_box), RIGHT - 10 * shape_b * width, MIDDLE - 10 * (shape_c * width / 2.0))
-
- # Dimensions
-
- set_dimension(canvas, "width_arrow", "width_text",
- LEFT - 10,
- MIDDLE - 10 * width / 2.0,
- LEFT - 10,
- MIDDLE + 10 * width / 2.0,
- LEFT - 15,
- MIDDLE,
- width)
-
- set_dimension(canvas, "shape_a_arrow", "shape_a_text",
- RIGHT - 10 * shape_a * width,
- MIDDLE + 10 * (shape_c * width / 2.0) + 10,
- RIGHT,
- MIDDLE + 10 * (shape_c * width / 2.0) + 10,
- RIGHT - 10 * shape_a * width / 2.0,
- MIDDLE + 10 * (shape_c * width / 2.0) + 15,
- shape_a)
-
- set_dimension(canvas, "shape_b_arrow", "shape_b_text",
- RIGHT - 10 * shape_b * width,
- MIDDLE + 10 * (shape_c * width / 2.0) + 35,
- RIGHT,
- MIDDLE + 10 * (shape_c * width / 2.0) + 35,
- RIGHT - 10 * shape_b * width / 2.0,
- MIDDLE + 10 * (shape_c * width / 2.0) + 40,
- shape_b)
-
- set_dimension(canvas, "shape_c_arrow", "shape_c_text",
- RIGHT + 10,
- MIDDLE - 10 * shape_c * width / 2.0,
- RIGHT + 10,
- MIDDLE + 10 * shape_c * width / 2.0,
- RIGHT + 15,
- MIDDLE,
- shape_c)
-
- # Info
-
- width_info = canvas.instance_variable_get(:@width_info)
- width_info.text = "line-width: #{width}"
-
- shape_a_info = canvas.instance_variable_get(:@shape_a_info)
- shape_a_info.text = "arrow-tip-length: #{shape_a} (* line-width)"
-
- shape_b_info = canvas.instance_variable_get(:@shape_b_info)
- shape_b_info.text = "arrow-length: #{shape_b} (* line-width)"
-
- shape_c_info = canvas.instance_variable_get(:@shape_c_info)
- shape_c_info.text = "arrow-length: #{shape_c} (* line-width)"
-
- # Sample arrows
-
- sample_1 = canvas.instance_variable_get(:@sample_1)
- sample_1.line_width = width
- sample_1.arrow_tip_length = shape_a
- sample_1.arrow_length = shape_b
- sample_1.arrow_width = shape_c
- sample_2 = canvas.instance_variable_get(:@sample_2)
- sample_2.line_width = width
- sample_2.arrow_tip_length = shape_a
- sample_2.arrow_length = shape_b
- sample_2.arrow_width = shape_c
- sample_3 = canvas.instance_variable_get(:@sample_3)
- sample_3.line_width = width
- sample_3.arrow_tip_length = shape_a
- sample_3.arrow_length = shape_b
- sample_3.arrow_width = shape_c
- end
-
- def create_dimension(canvas, root, arrow_name, text_name, anchor)
- item = Goo::CanvasPolyline.new(root, false, 0,
- :fill_color => "black",
- :start_arrow => true,
- :end_arrow => true)
- canvas.instance_variable_set("@#{arrow_name}", item)
-
- item = Goo::CanvasText.new(root, nil, 0, 0, -1, anchor,
- :fill_color => "black",
- :font => "Sans 12")
- canvas.instance_variable_set("@#{text_name}", item)
- end
-
- def create_info(canvas, root, info_name, x, y)
- item = Goo::CanvasText.new(root, nil, x, y, -1, Gtk::ANCHOR_NW,
- :fill_color => "black",
- :font => "Sans 14")
- canvas.instance_variable_set("@#{info_name}", item)
- end
-
- def create_sample_arrow(canvas, root, sample_name, x1, y1, x2, y2)
- item = Goo::CanvasPolyline.new_line(root, x1, y1, x2, y2,
- :start_arrow => true,
- :end_arrow => true)
- canvas.instance_variable_set("@#{sample_name}", item)
- end
-
- def create_drag_box(canvas, root, box_name)
- item = Goo::CanvasRect.new(root, 0, 0, 10, 10,
- :fill_color => 'black',
- :stroke_color => 'black',
- :line_width => 1.0)
- canvas.instance_variable_set("@#{box_name}", item)
-
- item.signal_connect('enter_notify_event') do
- item.fill_color = 'red'
- true
- end
- item.signal_connect('leave_notify_event') do
- item.fill_color = 'black'
- true
- end
- item.signal_connect('button_press_event') do |item, target, event|
- fleur = Gdk::Cursor.new(Gdk::Cursor::FLEUR)
- canvas.pointer_grab(item, Gdk::Event::POINTER_MOTION_MASK | Gdk::Event::BUTTON_RELEASE_MASK, fleur, event.time)
- true
- end
- item.signal_connect('button_release_event') do |item, target, event|
- canvas.pointer_ungrab(item, event.time)
- true
- end
- item.signal_connect('motion_notify_event') do |item, target, event|
- catch :done do
- throw :done, false unless event.state & Gdk::Window::BUTTON1_MASK == Gdk::Window::BUTTON1_MASK
-
- if item == canvas.instance_variable_get(:@width_drag_box)
- y = event.y
- width = (MIDDLE - y) / 5
- throw :done, false if width < 0
- canvas.instance_variable_set(:@width, width)
- set_arrow_shape(canvas)
- elsif item == canvas.instance_variable_get(:@shape_a_drag_box)
- x = event.x
- width = canvas.instance_variable_get(:@width)
- shape_a = (RIGHT - x) / 10 / width
- throw :done, false if (shape_a < 0) || (shape_a > 30)
- width = canvas.instance_variable_set(:@shape_a, shape_a)
- set_arrow_shape(canvas)
- elsif item == canvas.instance_variable_get(:@shape_b_c_drag_box)
- change = false
- width = canvas.instance_variable_get(:@width)
- x = event.x
- shape_b = (RIGHT - x) / 10 / width
- if (shape_b >= 0) && (shape_b <= 30)
- canvas.instance_variable_set(:@shape_b, shape_b)
- change = true
- end
-
- y = event.y
- shape_c = (MIDDLE - y) * 2 / 10 / width
- if shape_c >= 0
- canvas.instance_variable_set(:@shape_c, shape_c)
- change = true
- end
-
- set_arrow_shape(canvas) if change
- end
- true
- end
- end
- end
-end
\ No newline at end of file
+class CanvasSampleArrowhead < Gtk::Box
+ LEFT = 50.0
+ RIGHT = 350.0
+ MIDDLE = 150.0
+ DEFAULT_WIDTH = 2
+ DEFAULT_SHAPE_A = 4
+ DEFAULT_SHAPE_B = 5
+ DEFAULT_SHAPE_C = 4
+
+ def initialize()
+ super(:vertical, 4)
+ border_width = 4
+ show()
+
+ w = Gtk::Label.new <<-END
+This demo allows you to edit arrowhead shapes. Drag the little boxes
+to change the shape of the line and its arrowhead. You can see the
+arrows at their normal scale on the right hand side of the window.
+ END
+ pack_start(w, :expand => false, :fill => false, :padding => 0)
+ w.show
+
+ w = Gtk::Alignment.new(0.5, 0.5, 0.0, 0.0)
+ pack_start(w, :expand => true, :fill => true, :padding => 0)
+ w.show
+
+ frame = Gtk::Frame.new
+ frame.shadow_type = :in
+ w.add(frame)
+ frame.show
+
+ canvas = Goo::Canvas.new
+ root = canvas.root_item
+
+ canvas.set_size_request(500, 350)
+ canvas.set_bounds(0, 0, 500, 350)
+ frame.add(canvas)
+ canvas.show
+
+ canvas.instance_variable_set(:@width, DEFAULT_WIDTH)
+ canvas.instance_variable_set(:@shape_a, DEFAULT_SHAPE_A)
+ canvas.instance_variable_set(:@shape_b, DEFAULT_SHAPE_B)
+ canvas.instance_variable_set(:@shape_c, DEFAULT_SHAPE_C)
+
+ # Big arrow
+
+ points = Goo::CanvasPoints.new(2)
+ points.set_point(0, LEFT, MIDDLE)
+ points.set_point(1, RIGHT, MIDDLE)
+ item = Goo::CanvasPolyline.new(:parent => root,
+ :points => points,
+ :stroke_color => "mediumseagreen",
+ :end_arrow => true)
+ canvas.instance_variable_set(:@big_arrow, item)
+
+ # Arrow outline
+
+ item = Goo::CanvasPolyline.new(:parent => root,
+ :close_path => true,
+ :points => Goo::CanvasPoints.new(0),
+ :stroke_color => "black",
+ :line_width => 2.0,
+ :line_cap => Cairo::LINE_CAP_ROUND,
+ :line_join => Cairo::LINE_JOIN_ROUND)
+ canvas.instance_variable_set(:@outline, item)
+
+ # Drag boxes
+
+ create_drag_box(canvas, root, "width_drag_box")
+ create_drag_box(canvas, root, "shape_a_drag_box")
+ create_drag_box(canvas, root, "shape_b_c_drag_box")
+
+ # Dimensions
+
+ create_dimension(canvas, root, "width_arrow", "width_text", :e)
+ create_dimension(canvas, root, "shape_a_arrow", "shape_a_text", :n)
+ create_dimension(canvas, root, "shape_b_arrow", "shape_b_text", :n)
+ create_dimension(canvas, root, "shape_c_arrow", "shape_c_text", :w)
+
+ # Info
+
+ create_info(canvas, root, "width_info", LEFT, 260)
+ create_info(canvas, root, "shape_a_info", LEFT, 280)
+ create_info(canvas, root, "shape_b_info", LEFT, 300)
+ create_info(canvas, root, "shape_c_info", LEFT, 320)
+
+ # Division line
+
+ points = Goo::CanvasPoints.new(2)
+ points.set_point(0, RIGHT + 50, 0)
+ points.set_point(1, RIGHT + 50, 1000)
+ Goo::CanvasPolyline.new(:parent => root,
+ :points => points,
+ :fill_color => "black", :line_width => 2.0)
+
+ # Sample arrows
+
+ create_sample_arrow(canvas, root, "sample_1",
+ RIGHT + 100, 30, RIGHT + 100, MIDDLE - 30)
+ create_sample_arrow(canvas, root, "sample_2",
+ RIGHT + 70, MIDDLE, RIGHT + 130, MIDDLE)
+ create_sample_arrow(canvas, root, "sample_3",
+ RIGHT + 70, MIDDLE + 30, RIGHT + 130, MIDDLE + 120)
+
+ # Done!
+ set_arrow_shape(canvas)
+ end
+
+ def set_dimension(canvas, arrow_name, text_name, x1, y1, x2, y2, tx, ty, dim)
+ points = Goo::CanvasPoints.new(2)
+ points.set_point(0, x1, y1)
+ points.set_point(1, x2, y2)
+
+ arrow = canvas.instance_variable_get("@#{arrow_name}")
+ arrow.points = points
+
+ text = canvas.instance_variable_get("@#{text_name}")
+ text.text = dim.to_s
+ text.x = tx
+ text.y = ty
+ end
+
+ def move_drag_box(item, x, y)
+ item.x = x - 5.0
+ item.y = y - 5.0
+ end
+
+ def set_arrow_shape(canvas)
+ width = canvas.instance_variable_get(:@width)
+ shape_a = canvas.instance_variable_get(:@shape_a)
+ shape_b = canvas.instance_variable_get(:@shape_b)
+ shape_c = canvas.instance_variable_get(:@shape_c)
+
+ # Big arrow
+
+ big_arrow = canvas.instance_variable_get(:@big_arrow)
+ big_arrow.line_width = 10.0 * width
+ big_arrow.arrow_tip_length = shape_a
+ big_arrow.arrow_length = shape_b
+ big_arrow.arrow_width = shape_c
+
+ # Outline
+
+ points0 = RIGHT - 10 * shape_a * width
+ points1 = MIDDLE - 10 * width / 2
+ points2 = RIGHT - 10 * shape_b * width
+ points3 = MIDDLE - 10 * (shape_c * width / 2.0)
+ points4 = RIGHT
+ points5 = MIDDLE
+ points6 = points2
+ points7 = MIDDLE + 10 * (shape_c * width / 2.0)
+ points8 = points0
+ points9 = MIDDLE + 10 * width / 2
+
+ points = Goo::CanvasPoints.new(5)
+ points.set_point(0, points0, points1)
+ points.set_point(1, points2, points3)
+ points.set_point(2, points4, points5)
+ points.set_point(3, points6, points7)
+ points.set_point(4, points8, points9)
+
+ outline = canvas.instance_variable_get(:@outline)
+ outline.points = points
+
+ # Drag boxes
+ move_drag_box(canvas.instance_variable_get(:@width_drag_box), LEFT, MIDDLE - 10 * width / 2.0)
+ move_drag_box(canvas.instance_variable_get(:@shape_a_drag_box), RIGHT - 10 * shape_a * width, MIDDLE)
+ move_drag_box(canvas.instance_variable_get(:@shape_b_c_drag_box), RIGHT - 10 * shape_b * width, MIDDLE - 10 * (shape_c * width / 2.0))
+
+ # Dimensions
+
+ set_dimension(canvas, "width_arrow", "width_text",
+ LEFT - 10,
+ MIDDLE - 10 * width / 2.0,
+ LEFT - 10,
+ MIDDLE + 10 * width / 2.0,
+ LEFT - 15,
+ MIDDLE,
+ width)
+
+ set_dimension(canvas, "shape_a_arrow", "shape_a_text",
+ RIGHT - 10 * shape_a * width,
+ MIDDLE + 10 * (shape_c * width / 2.0) + 10,
+ RIGHT,
+ MIDDLE + 10 * (shape_c * width / 2.0) + 10,
+ RIGHT - 10 * shape_a * width / 2.0,
+ MIDDLE + 10 * (shape_c * width / 2.0) + 15,
+ shape_a)
+
+ set_dimension(canvas, "shape_b_arrow", "shape_b_text",
+ RIGHT - 10 * shape_b * width,
+ MIDDLE + 10 * (shape_c * width / 2.0) + 35,
+ RIGHT,
+ MIDDLE + 10 * (shape_c * width / 2.0) + 35,
+ RIGHT - 10 * shape_b * width / 2.0,
+ MIDDLE + 10 * (shape_c * width / 2.0) + 40,
+ shape_b)
+
+ set_dimension(canvas, "shape_c_arrow", "shape_c_text",
+ RIGHT + 10,
+ MIDDLE - 10 * shape_c * width / 2.0,
+ RIGHT + 10,
+ MIDDLE + 10 * shape_c * width / 2.0,
+ RIGHT + 15,
+ MIDDLE,
+ shape_c)
+
+ # Info
+
+ width_info = canvas.instance_variable_get(:@width_info)
+ width_info.text = "line-width: #{width}"
+
+ shape_a_info = canvas.instance_variable_get(:@shape_a_info)
+ shape_a_info.text = "arrow-tip-length: #{shape_a} (* line-width)"
+
+ shape_b_info = canvas.instance_variable_get(:@shape_b_info)
+ shape_b_info.text = "arrow-length: #{shape_b} (* line-width)"
+
+ shape_c_info = canvas.instance_variable_get(:@shape_c_info)
+ shape_c_info.text = "arrow-length: #{shape_c} (* line-width)"
+
+ # Sample arrows
+
+ sample_1 = canvas.instance_variable_get(:@sample_1)
+ sample_1.line_width = width
+ sample_1.arrow_tip_length = shape_a
+ sample_1.arrow_length = shape_b
+ sample_1.arrow_width = shape_c
+ sample_2 = canvas.instance_variable_get(:@sample_2)
+ sample_2.line_width = width
+ sample_2.arrow_tip_length = shape_a
+ sample_2.arrow_length = shape_b
+ sample_2.arrow_width = shape_c
+ sample_3 = canvas.instance_variable_get(:@sample_3)
+ sample_3.line_width = width
+ sample_3.arrow_tip_length = shape_a
+ sample_3.arrow_length = shape_b
+ sample_3.arrow_width = shape_c
+ end
+
+ def create_dimension(canvas, root, arrow_name, text_name, anchor)
+ item = Goo::CanvasPolyline.new(:parent => root,
+ :close_path => false,
+ :points => Goo::CanvasPoints.new(0),
+ :fill_color => "black",
+ :start_arrow => true,
+ :end_arrow => true)
+ canvas.instance_variable_set("@#{arrow_name}", item)
+
+ item = Goo::CanvasText.new(:parent => root,
+ :text => nil,
+ :x => 0,
+ :y => 0,
+ :width => -1,
+ :anchor => anchor,
+ :fill_color => "black",
+ :font => "Sans 12")
+ canvas.instance_variable_set("@#{text_name}", item)
+ end
+
+ def create_info(canvas, root, info_name, x, y)
+ item = Goo::CanvasText.new(:parent => root,
+ :text => nil,
+ :x => x,
+ :y => y,
+ :width => -1,
+ :anchor => :nw,
+ :fill_color => "black",
+ :font => "Sans 14")
+ canvas.instance_variable_set("@#{info_name}", item)
+ end
+
+ def create_sample_arrow(canvas, root, sample_name, x1, y1, x2, y2)
+ points = Goo::CanvasPoints.new(2)
+ points.set_point(0, x1, y1)
+ points.set_point(1, x2, y2)
+ item = Goo::CanvasPolyline.new(:parent => root,
+ :points => points,
+ :start_arrow => true,
+ :end_arrow => true)
+ canvas.instance_variable_set("@#{sample_name}", item)
+ end
+
+ def create_drag_box(canvas, root, box_name)
+ item = Goo::CanvasRect.new(:parent => root,
+ :x => 0,
+ :y => 0,
+ :width => 10,
+ :height => 10,
+ :fill_color => 'black',
+ :stroke_color => 'black',
+ :line_width => 1.0)
+ canvas.instance_variable_set("@#{box_name}", item)
+
+ item.signal_connect('enter_notify_event') do
+ item.fill_color = 'red'
+ true
+ end
+ item.signal_connect('leave_notify_event') do
+ item.fill_color = 'black'
+ true
+ end
+ item.signal_connect('button_press_event') do |item, target, event|
+ # fixed "`initialize': ruby wrapper for this GObject* already exists."
+ fleur = @fleur ||= Gdk::Cursor.new(:fleur)
+ # Symbol is not allowed. Because "undefined method `|' for :pointer_motion_mask:Symbol"
+ canvas.pointer_grab(item, Gdk::Event::Mask::POINTER_MOTION_MASK | Gdk::Event::Mask::BUTTON_RELEASE_MASK, fleur, event.time)
+ true
+ end
+ item.signal_connect('button_release_event') do |item, target, event|
+ canvas.pointer_ungrab(item, event.time)
+ true
+ end
+ item.signal_connect('motion_notify_event') do |item, target, event|
+ catch :done do
+ throw :done, false unless event.state & :button1_mask == :button1_mask
+
+ if item == canvas.instance_variable_get(:@width_drag_box)
+ y = event.y
+ width = ((MIDDLE - y) / 5).round
+ throw :done, false if width < 0
+ canvas.instance_variable_set(:@width, width)
+ set_arrow_shape(canvas)
+ elsif item == canvas.instance_variable_get(:@shape_a_drag_box)
+ x = event.x
+ width = canvas.instance_variable_get(:@width)
+ shape_a = ((RIGHT - x) / 10 / width).round
+ throw :done, false if (shape_a < 0) || (shape_a > 30)
+ width = canvas.instance_variable_set(:@shape_a, shape_a)
+ set_arrow_shape(canvas)
+ elsif item == canvas.instance_variable_get(:@shape_b_c_drag_box)
+ change = false
+ width = canvas.instance_variable_get(:@width)
+ x = event.x
+ shape_b = ((RIGHT - x) / 10 / width).round
+ if (shape_b >= 0) && (shape_b <= 30)
+ canvas.instance_variable_set(:@shape_b, shape_b)
+ change = true
+ end
+
+ y = event.y
+ shape_c = ((MIDDLE - y) * 2 / 10 / width).round
+ if shape_c >= 0
+ canvas.instance_variable_set(:@shape_c, shape_c)
+ change = true
+ end
+
+ set_arrow_shape(canvas) if change
+ end
+ true
+ end
+ end
+ end
+end
diff --git a/goocanvas/sample/demo-events.rb b/goocanvas/sample/demo-events.rb
new file mode 100644
index 0000000..e75d1dc
--- /dev/null
+++ b/goocanvas/sample/demo-events.rb
@@ -0,0 +1,187 @@
+#!/usr/bin/env ruby
+#
+# This sample code is a port of
+# goocanvas/demo/demo-events.c. It is licensed
+# under the terms of the GNU Library General Public License, version
+# 2 or (at your option) later.
+#
+# Copyright (C) 2013 Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+class CanvasSampleEvents < Gtk::Box
+ def initialize
+ super(:vertical, 4)
+ border_width = 4
+ show
+ create_events_page(self)
+ end
+
+ private
+ def create_events_page(vbox)
+ # Instructions
+
+ label = Gtk::Label.new(<<-EOT)
+Move the mouse over the items to check they receive the right motion events.
+The first 2 items in each group are 1) invisible and 2) visible but unpainted.
+ EOT
+ vbox.pack_start(label, :expand => false,
+ :fill => false,
+ :padding => 0)
+ label.show
+
+ # Frame and canvas
+
+ alignment = Gtk::Alignment.new(0.5, 0.5, 0.0, 0.0)
+ vbox.pack_start(alignment, :expand => false,
+ :fill => false,
+ :padding => 0)
+ alignment.show
+
+ frame = Gtk::Frame.new
+ frame.shadow_type = :in
+ alignment.add(frame)
+ frame.show
+
+ canvas = Goo::Canvas.new
+
+ canvas.set_size_request(600, 450)
+ canvas.set_bounds(0, 0, 600, 450)
+ frame.add(canvas)
+ canvas.show
+
+ create_events_area(canvas, 0, :none, "none")
+ create_events_area(canvas, 1, :visible_painted, "visible-painted")
+ create_events_area(canvas, 2, :visible_fill, "visible-fill")
+ create_events_area(canvas, 3, :visible_stroke, "visible-stroke")
+ create_events_area(canvas, 4, :visible, "visible")
+ create_events_area(canvas, 5, :painted, "painted")
+ create_events_area(canvas, 6, :fill, "fill")
+ create_events_area(canvas, 7, :stroke, "stroke")
+ create_events_area(canvas, 8, :all, "all")
+ end
+
+ def create_events_area(canvas, area_num, pointer_events, label)
+ row = area_num / 3
+ col = area_num % 3
+ x = col * 200
+ y = row * 150
+
+ root = canvas.root_item
+
+ dash = Goo::CanvasLineDash.new(5.0, 5.0)
+
+ # Create invisible item.
+ rect = Goo::CanvasRect.new(:parent => root,
+ :x => x + 45,
+ :y => y + 35,
+ :width => 30,
+ :height => 30,
+ :fill_color => "red",
+ :visibility => :invisible,
+ :line_width => 5.0,
+ :pointer_events => pointer_events)
+ view_id = sprintf("%s invisible", label)
+ setup_item_signals(rect, view_id)
+
+ # Display a thin rect around it to indicate it is there.
+ rect = Goo::CanvasRect.new(:parent => root,
+ :x => x + 42.5,
+ :y => y + 32.5,
+ :width => 36,
+ :height => 36,
+ # TODO: [BUG] Segmentation fault
+ #:line_dash => dash,
+ :line_width => 1.0,
+ :stroke_color => "gray")
+
+ # Create unpainted item.
+ rect = Goo::CanvasRect.new(:parent => root,
+ :x => x + 85,
+ :y => y + 35,
+ :width => 30,
+ :height => 30,
+ :stroke_pattern => nil,
+ :line_width => 5.0,
+ :pointer_events => pointer_events)
+ view_id = sprintf("%s unpainted", label)
+ setup_item_signals(rect, view_id)
+
+ # Display a thin rect around it to indicate it is there.
+ rect = Goo::CanvasRect.new(:parent => root,
+ :x => x + 82.5,
+ :y => y + 32.5,
+ :width => 36,
+ :height => 36,
+ # TODO: [BUG] Segmentation fault
+ #:line_dash => dash,
+ :line_width => 1.0,
+ :stroke_color => "gray")
+
+ # Create stroked item.
+ rect = Goo::CanvasRect.new(:parent => root,
+ :x => x + 125,
+ :y => y + 35,
+ :width => 30,
+ :height => 30,
+ :line_width => 5.0,
+ :pointer_events => pointer_events)
+ view_id = sprintf("%s stroked", label)
+ setup_item_signals(rect, view_id)
+
+ # Create filled item.
+ rect = Goo::CanvasRect.new(:parent => root,
+ :x => x + 60,
+ :y => y + 75,
+ :width => 30,
+ :height => 30,
+ :fill_color => "red",
+ :stroke_pattern => nil,
+ :line_width => 5.0,
+ :pointer_events => pointer_events)
+ view_id = sprintf("%s filled", label)
+ setup_item_signals(rect, view_id)
+
+ # Create stroked & filled item.
+ rect = Goo::CanvasRect.new(:parent => root,
+ :x => x + 100,
+ :y => y + 75,
+ :width => 30,
+ :height => 30,
+ :fill_color => "red",
+ :line_width => 5.0,
+ :pointer_events => pointer_events)
+ view_id = sprintf("%s stroked & filled", label)
+ setup_item_signals(rect, view_id)
+
+ Goo::CanvasText.new(:parent => root,
+ :text => label,
+ :x => x + 100,
+ :y => y + 130,
+ :width => -1,
+ :anchor => :center,
+ :font => "Sans 12",
+ :fill_color => "blue")
+ end
+
+ def setup_item_signals(item, item_id)
+ item.signal_connect("motion_notify_event") do |widget, event|
+ if item_id
+ printf("%s item received 'motion-notify' signal\n", item_id)
+ end
+ false
+ end
+ end
+end
diff --git a/goocanvas/sample/demo-features.rb b/goocanvas/sample/demo-features.rb
new file mode 100644
index 0000000..d7dc676
--- /dev/null
+++ b/goocanvas/sample/demo-features.rb
@@ -0,0 +1,148 @@
+#!/usr/bin/env ruby
+#
+# This sample code is a port of
+# goocanvas/demo/demo-features.c. It is licensed
+# under the terms of the GNU Library General Public License, version
+# 2 or (at your option) later.
+#
+# Copyright (C) 2013 Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+class CanvasSampleFeatures < Gtk::Box
+ def initialize
+ super(:vertical, 4)
+ set_border_width(4)
+ show
+ create_canvas_features(self)
+ end
+
+ private
+ def create_canvas_features(box)
+ instructions(box)
+ root = frame_and_canvas(box)
+ parent1 = first_parent_and_box(root)
+ parent2 = second_parent_and_box(root)
+ big_circle_to_be_reparented(parent1, parent2)
+ a_group_to_be_reparented(parent1, parent2)
+ end
+
+ def instructions(box)
+ label = Gtk::Label.new(<<-EOT)
+Reparent test: click on the items to switch them between parents
+ EOT
+ box.pack_start(label, :expand => false,
+ :fill => false,
+ :padding => 0)
+ label.show
+ end
+
+ def frame_and_canvas(box)
+ alignment = Gtk::Alignment.new(0.5, 0.5, 0.0, 0.0)
+ box.pack_start(alignment, :expand => false,
+ :fill => false,
+ :padding => 0)
+ alignment.show
+
+ frame = Gtk::Frame.new
+ frame.shadow_type = :in
+ alignment.add(frame)
+ frame.show
+
+ canvas = Goo::Canvas.new
+ root = canvas.root_item
+
+ canvas.set_size_request(400, 200)
+ canvas.set_bounds(0, 0, 400, 200)
+ frame.add(canvas)
+ canvas.show
+
+ root
+ end
+
+ def first_parent_and_box(root)
+ parent1 = Goo::CanvasGroup.new(:parent => root)
+ Goo::CanvasRect.new(:parent => parent1,
+ :x => 0,
+ :y => 0,
+ :width => 200,
+ :height => 200,
+ :fill_color => "tan")
+ parent1
+ end
+
+ def second_parent_and_box(root)
+ parent2 = Goo::CanvasGroup.new(:parent => root)
+ parent2.translate(200, 0)
+ Goo::CanvasRect.new(:parent => parent2,
+ :x => 0,
+ :y => 0,
+ :width => 200,
+ :height => 200,
+ :fill_color => "#204060")
+ parent2
+ end
+
+ def big_circle_to_be_reparented(parent1, parent2)
+ item = Goo::CanvasEllipse.new(:parent => parent1,
+ :center_x => 100,
+ :center_y => 100,
+ :radius_x => 90,
+ :radius_y => 90,
+ :stroke_color => "black",
+ :fill_color => "mediumseagreen",
+ :line_width => 3.0)
+
+ item.signal_connect("button-press-event") do |widget, event|
+ on_button_press(widget, event, parent1, parent2)
+ end
+ end
+
+ def a_group_to_be_reparented(parent1, parent2)
+ group = Goo::CanvasGroup.new(:parent => parent2)
+ group.translate(100, 100)
+
+ Goo::CanvasEllipse.new(:parent => group,
+ :center_x => 0,
+ :center_y => 0,
+ :radius_x => 50,
+ :radius_y => 50,
+ :stroke_color => "black",
+ :fill_color => "wheat",
+ :line_width => 3.0)
+
+ Goo::CanvasEllipse.new(:parent => group,
+ :center_x => 0,
+ :center_y => 0,
+ :radius_x => 25,
+ :radius_y => 25,
+ :fill_color => "steelblue")
+
+ group.signal_connect("button-press-event") do |widget, event|
+ on_button_press(widget, event, parent1, parent2)
+ end
+ end
+
+ def on_button_press(item, event, parent1, parent2)
+ puts "In on_button_press"
+ parent = item.parent
+ item.remove
+ if parent == parent1
+ parent2.add_child(item, -1)
+ else
+ parent1.add_child(item, -1)
+ end
+ end
+end
diff --git a/goocanvas/sample/demo-fifteen.rb b/goocanvas/sample/demo-fifteen.rb
index e3fc747..f7790f2 100644
--- a/goocanvas/sample/demo-fifteen.rb
+++ b/goocanvas/sample/demo-fifteen.rb
@@ -21,28 +21,27 @@ Original Copyright:
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
=end
-class CanvasSampleFifteen < Gtk::VBox
+class CanvasSampleFifteen < Gtk::Box
PIECE_SIZE = 50
SCRAMBLE_MOVES = 32
def initialize
- super(false, 4)
+ super(:vertical, 4)
border_width = 4
show()
alignment = Gtk::Alignment.new(0.5, 0.5, 0.0, 0.0)
- pack_start(alignment, true, true, 0)
+ pack_start(alignment, :expand => true, :fill => true, :padding => 0)
alignment.show()
frame = Gtk::Frame.new
- frame.set_shadow_type(Gtk::SHADOW_IN);
+ frame.set_shadow_type(:in);
alignment.add(frame)
frame.show()
@@ -57,14 +56,14 @@ class CanvasSampleFifteen < Gtk::VBox
@board = Array.new(16)
0.upto(14) do |i|
- @board[i] = Piece.new(@canvas.root_item)
+ @board[i] = Piece.new(:parent => @canvas.root_item)
@board[i].setup(self, i)
end
@board[15] = nil;
# Scramble button
- button = Gtk::Button.new("Scramble")
- pack_start(button, false, false, 0)
+ button = Gtk::Button.new(:label => "Scramble")
+ pack_start(button, :expand => false, :fill => false, :padding => 0)
button.signal_connect("clicked") do |button|
scramble()
end
@@ -77,13 +76,14 @@ class CanvasSampleFifteen < Gtk::VBox
return
end
end
- dialog = Gtk::MessageDialog.new(parent_window,
- Gtk::Dialog::DESTROY_WITH_PARENT,
- Gtk::MessageDialog::INFO,
- Gtk::MessageDialog::BUTTONS_OK,
- "You stud, you win!")
+ dialog = Gtk::MessageDialog.new(:parent => parent.parent,
+ :flags => :destroy_with_parent,
+ :type => :info,
+ :buttons_type => :ok,
+ :message => "You stud, you win!")
dialog.set_modal(true)
- dialog.run_and_close()
+ dialog.run
+ dialog.hide
end
def piece_enter_notify(item)
@@ -156,7 +156,7 @@ class CanvasSampleFifteen < Gtk::VBox
elsif (dir == 3) && ((pos % 4) != 3) # right
x = 1
else
- retry
+ redo
end
oldpos = pos + y * 4 + x;
@@ -165,7 +165,7 @@ class CanvasSampleFifteen < Gtk::VBox
@board[pos].pos = pos
@board[pos].translate(-x * PIECE_SIZE, -y * PIECE_SIZE)
pos = oldpos
- end
+ end
end
class Piece < Goo::CanvasGroup
@@ -181,14 +181,22 @@ class CanvasSampleFifteen < Gtk::VBox
x = i % 4
translate( x * PIECE_SIZE,y * PIECE_SIZE)
- Goo::CanvasRect.new(self, 0, 0, PIECE_SIZE, PIECE_SIZE,
+ Goo::CanvasRect.new(:parent => self,
+ :x => 0,
+ :y => 0,
+ :width => PIECE_SIZE,
+ :height => PIECE_SIZE,
:line_width => 1.0,
:fill_color => get_piece_color(x, y),
:stroke_color => "black")
- @text = Goo::CanvasText.new(self,i.to_s, PIECE_SIZE / 2.0,
- PIECE_SIZE / 2.0, -1, Gtk::ANCHOR_CENTER,
+ @text = Goo::CanvasText.new(:parent => self,
+ :text => i.to_s,
+ :x => PIECE_SIZE / 2.0,
+ :y => PIECE_SIZE / 2.0,
+ :width => -1,
+ :anchor => :center,
:font=>"Sans bold 24",
:fill_color => "black")
@num = i
diff --git a/goocanvas/sample/demo-focus.rb b/goocanvas/sample/demo-focus.rb
new file mode 100644
index 0000000..bef597f
--- /dev/null
+++ b/goocanvas/sample/demo-focus.rb
@@ -0,0 +1,135 @@
+#!/usr/bin/env ruby
+#
+# This sample code is a port of
+# goocanvas/demo/demo-focus.c. It is licensed
+# under the terms of the GNU Library General Public License, version
+# 2 or (at your option) later.
+#
+# Copyright (C) 2013 Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+class CanvasSampleFocus < Gtk::Box
+ def initialize
+ super(:vertical, 4)
+ set_border_width(4)
+ show
+ create_focus_page(self)
+ end
+
+ private
+ def create_focus_page(vbox)
+ label = Gtk::Label.new(<<-EOT)
+Use Tab, Shift+Tab or the arrow keys to move the keyboard focus between the canvas items.
+ EOT
+ vbox.pack_start(label, :expand => false,
+ :fill => false,
+ :padding => 0)
+ label.show
+
+ scrolled_win = Gtk::ScrolledWindow.new
+ scrolled_win.shadow_type = :in
+ scrolled_win.show
+ vbox.pack_start(scrolled_win, :expand => true,
+ :fill => true,
+ :padding => 0)
+
+ canvas = Goo::Canvas.new
+ canvas.can_focus = true
+ canvas.set_size_request(600, 450)
+ canvas.set_bounds(0, 0, 1000, 1000)
+ canvas.show
+ scrolled_win.add(canvas)
+
+ setup_canvas(canvas)
+ end
+
+ def setup_canvas(canvas)
+ create_focus_box(canvas, 109, 80, 50, 30, "red")
+ create_focus_box(canvas, 300, 160, 50, 30, "orange")
+ create_focus_box(canvas, 500, 50, 50, 30, "yellow")
+ create_focus_box(canvas, 70, 400, 50, 30, "blue")
+ create_focus_box(canvas, 130, 200, 50, 30, "magenta")
+ create_focus_box(canvas, 200, 160, 50, 30, "green")
+ create_focus_box(canvas, 450, 450, 50, 30, "cyan")
+ create_focus_box(canvas, 300, 350, 50, 30, "grey")
+ create_focus_box(canvas, 900, 900, 50, 30, "gold")
+ create_focus_box(canvas, 800, 150, 50, 30, "thistle")
+ create_focus_box(canvas, 600, 800, 50, 30, "azure")
+ create_focus_box(canvas, 700, 250, 50, 30, "moccasin")
+ create_focus_box(canvas, 500, 100, 50, 30, "cornsilk")
+ create_focus_box(canvas, 200, 750, 50, 30, "plum")
+ create_focus_box(canvas, 400, 800, 50, 30, "orchid")
+ end
+
+ def create_focus_box(canvas, x, y, width, height, color)
+ root = canvas.root_item
+ item = Goo::CanvasRect.new(:parent => root,
+ :x => x,
+ :y => y,
+ :width => width,
+ :height => height,
+ :stroke_pattern => nil,
+ :fill_color => color,
+ :line_width => 5.0,
+ :can_focus => true)
+
+ item.signal_connect("focus-in-event") do |widget|
+ on_focus_in(widget, color)
+ end
+ item.signal_connect("focus-out-event") do |widget|
+ on_focus_out(widget, color)
+ end
+
+ item.signal_connect("button-press-event") do |widget|
+ on_button_press(widget, color)
+ end
+
+ item.signal_connect("key-press-event") do
+ on_key_press(color)
+ end
+ end
+
+ def on_focus_in (item, color)
+ puts "#{color} received focus-in event"
+
+ # Note that this is only for testing. Setting item properties to indicate
+ # focus isn't a good idea for real apps, as there may be multiple views.
+ item.stroke_color = "black"
+
+ false
+ end
+
+ def on_focus_out(item, color)
+ puts "#{color} received focus-out event"
+
+ # Note that this is only for testing. Setting item properties to indicate
+ # focus isn't a good idea for real apps, as there may be multiple views.
+ item.stroke_pattern = nil
+
+ false
+ end
+
+ def on_button_press(item, color)
+ puts "#{color} received button-press event"
+ item.canvas.grab_focus(item)
+ false
+ end
+
+ def on_key_press(color)
+ puts "#{color} received key-press event"
+ false
+ end
+end
diff --git a/goocanvas/sample/demo-primitives.rb b/goocanvas/sample/demo-primitives.rb
index 61bbf0e..e4c5794 100644
--- a/goocanvas/sample/demo-primitives.rb
+++ b/goocanvas/sample/demo-primitives.rb
@@ -20,10 +20,9 @@ Original Copyright:
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
=end
class CanvasSamplePrimitives < Gtk::VBox
diff --git a/goocanvas/sample/demo.rb b/goocanvas/sample/demo.rb
index d902441..6d11b15 100755
--- a/goocanvas/sample/demo.rb
+++ b/goocanvas/sample/demo.rb
@@ -1,3 +1,4 @@
+#!/usr/bin/env ruby
# -*- indent-tabs-mode: nil -*-
=begin header
@@ -21,10 +22,9 @@ Original Copyright:
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA.
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
=end
@@ -40,10 +40,14 @@ require 'goocanvas'
require 'demo-primitives'
require 'demo-arrowhead'
require 'demo-fifteen'
+require 'demo-features'
+require 'demo-events'
+require 'demo-focus'
+require 'demo-animation'
class GooCanvasSample < Gtk::Window
def initialize
- super(Gtk::Window::TOPLEVEL)
+ super(:toplevel)
signal_connect("destroy") do |widget, event|
Gtk::main_quit()
@@ -69,8 +73,14 @@ class GooCanvasSample < Gtk::Window
Gtk::Label.new("Arrowhead"))
notebook.append_page(CanvasSampleFifteen.new,
Gtk::Label.new("Fifteen"))
-# notebook.append_page(CanvasSampleFeatures.new,
-# Gtk::Label.new("Feature"))
+ notebook.append_page(CanvasSampleFeatures.new,
+ Gtk::Label.new("Reparent"))
+ notebook.append_page(CanvasSampleEvents.new,
+ Gtk::Label.new("Events"))
+ notebook.append_page(CanvasSampleFocus.new,
+ Gtk::Label.new("Focus"))
+ notebook.append_page(CanvasSampleAnimation.new,
+ Gtk::Label.new("Animation"))
# notebook.append_page(CanvasSampleRichText.new,
# Gtk::Label.new("Rich Text"))
# notebook.append_page(CanvasSampleBezierCurve.new,
diff --git a/gstreamer/COPYING.LIB b/gstreamer/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/gstreamer/COPYING.LIB
+++ b/gstreamer/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/clutter/README.md b/gstreamer/README.md
similarity index 61%
copy from clutter/README.md
copy to gstreamer/README.md
index 35758e5..4182e07 100644
--- a/clutter/README.md
+++ b/gstreamer/README.md
@@ -1,20 +1,20 @@
-# Ruby/Clutter
+# Ruby/GStreamer
-Ruby/Clutter is a Ruby binding of Clutter.
+Ruby/GStreamer is a Ruby binding for GStreamer.
## Requirements
-* Ruby/GObjectIntrospection in
+* Ruby/GLib2 and Ruby/GObjectIntrospection in
[Ruby-GNOME2](http://ruby-gnome2.sourceforge.jp/)
-* [Clutter](http://blogs.gnome.org/clutter/)
+* [GStreamer](http://gstreamer.freedesktop.org/)
## Install
- gem install clutter
+ gem install gstreamer
## License
-Copyright (c) 2013 Ruby-GNOME2 Project Team
+Copyright (c) 2002-2013 Ruby-GNOME2 Project Team
This program is free software. You can distribute/modify this program
under the terms of the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
@@ -22,7 +22,7 @@ under the terms of the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
### Exceptions
Ruby scripts and image files in sample/ are ported and copied from
-Clutter. Headers in samples/*.rb describes that the location of the
+GStreamer. Headers in samples/*.rb describes that the location of the
original file of the Ruby script and image files. The original files
are licensed under the LGPL v2.1 or later.
diff --git a/gstreamer/Rakefile b/gstreamer/Rakefile
index 4d1a7ac..29583aa 100644
--- a/gstreamer/Rakefile
+++ b/gstreamer/Rakefile
@@ -7,8 +7,8 @@ package = GNOME2Package.new do |_package|
_package.summary = "Ruby/GStreamer is a Ruby binding for GStreamer."
_package.description = "Ruby/GStreamer is a Ruby binding for GStreamer."
_package.dependency.gem.runtime = ["glib2", "gobject-introspection"]
- _package.win32.packages = ["libsoup"]
- _package.win32.dependencies = ["jpeg", "libxml2"]
+ _package.win32.packages = []
+ _package.win32.dependencies = []
_package.win32.build_dependencies = [
"glib2", "atk", "pango", "gdk_pixbuf2", "gtk2", "gobject-introspection",
]
@@ -18,21 +18,60 @@ package = GNOME2Package.new do |_package|
libmad_version = "0.15.1b"
_package.external_packages = [
{
+ :name => "libjpeg",
+ :base_name => "jpeg-9",
+ :archive_base_name => "jpegsrc.v9.tar.gz",
+ :download_base_url => "http://www.ijg.org/files",
+ :label => "libjpeg",
+ :windows => {
+ :configure_args => [],
+ :built_file => "bin/libjpeg-9.dll",
+ },
+ },
+ {
+ :name => "sqlite-autoconf",
+ :download_base_url => "http://www.sqlite.org/2013",
+ :label => "SQLite",
+ :version => "3080200",
+ :compression_method => "gz",
+ :windows => {
+ :configure_args => [],
+ :built_file => "bin/libsqlite3-0.dll",
+ },
+ },
+ {
+ :name => "libsoup",
+ :download_site => :gnome,
+ :label => "libsoup",
+ :version => "2.45.3",
+ :compression_method => "xz",
+ :windows => {
+ :configure_args => [
+ "--enable-introspection",
+ "--without-apache-httpd",
+ ],
+ :build_concurrently => false,
+ :built_file => "bin/libsoup-2.4-1.dll",
+ },
+ },
+ {
:name => "libogg",
:download_base_url => "#{xiph_download_url_base}/ogg",
:label => "Ogg",
- :version => "1.3.0",
+ :version => "1.3.1",
:windows => {
:configure_args => [],
+ :built_file => "bin/libogg-0.dll",
},
},
{
:name => "libvorbis",
:download_base_url => "#{xiph_download_url_base}/vorbis",
:label => "Vorbis",
- :version => "1.3.2",
+ :version => "1.3.3",
:windows => {
:configure_args => [],
+ :built_file => "bin/libvorbis-0.dll",
},
},
{
@@ -45,6 +84,10 @@ package = GNOME2Package.new do |_package|
"--disable-examples"
],
:build_concurrently => false,
+ :patches => [
+ "libtheora-1.1.1-use-lf-in-def.diff",
+ ],
+ :built_file => "bin/libtheora-0.dll",
},
},
# {
@@ -62,14 +105,11 @@ package = GNOME2Package.new do |_package|
:name => "flac",
:download_base_url => "#{xiph_download_url_base}/flac",
:label => "FLAC",
- :version => "1.2.1",
+ :version => "1.3.0",
+ :compression_method => "xz",
:windows => {
:configure_args => ["--disable-cpplibs"],
- :need_autogen => true,
- :patches => [
- "flac-1.2.1-fix-mingw-build.diff",
- # "flac-1.2.1-fix-doc-install.diff",
- ],
+ :built_file => "bin/libFLAC-8.dll",
},
},
{
@@ -79,13 +119,14 @@ package = GNOME2Package.new do |_package|
:version => "1.2rc1",
:windows => {
:configure_args => [],
+ :built_file => "bin/libspeex-1.dll",
},
},
{
:name => "gstreamer",
:download_base_url => "#{freedesktop_download_url_base}/gstreamer",
:label => "GStreamer",
- :version => "1.0.7",
+ :version => "1.2.1",
:compression_method => "xz",
:windows => {
:configure_args => [
@@ -93,48 +134,55 @@ package = GNOME2Package.new do |_package|
"--enable-introspection",
],
:build_concurrently => false,
+ :built_file => "bin/libgstreamer-1.0-0.dll",
},
},
{
:name => "gst-plugins-base",
:download_base_url => "#{freedesktop_download_url_base}/gst-plugins-base",
:label => "GStreamer plugins (base)",
- :version => "1.0.7",
+ :version => "1.2.1",
:compression_method => "xz",
:windows => {
:configure_args => [
"--enable-introspection",
],
:build_concurrently => false,
+ :built_file => "lib/gstreamer-1.0/libgstgio.dll",
},
},
{
:name => "gst-plugins-good",
:download_base_url => "#{freedesktop_download_url_base}/gst-plugins-good",
:label => "GStreamer plugins (good)",
- :version => "1.0.7",
+ :version => "1.2.1",
:compression_method => "xz",
:windows => {
:configure_args => [
"--disable-shout2",
],
+ :built_file => "lib/gstreamer-1.0/libgstcairo.dll",
},
},
{
:name => "gst-plugins-bad",
:download_base_url => "#{freedesktop_download_url_base}/gst-plugins-bad",
:label => "GStreamer plugins (bad)",
- :version => "1.0.7",
+ :version => "1.2.1",
:compression_method => "xz",
:windows => {
:configure_args => ["--disable-librfb"],
+ :cc_args => [
+ "-std=c99",
+ ],
+ :built_file => "lib/gstreamer-1.0/libgstfaac.dll",
},
},
# {
# :name => "gst-plugins-ugly",
# :download_base_url => "#{freedesktop_download_url_base}/gst-plugins-ugly",
# :label => "GStreamer plugins (ugly)",
- # :version => "1.0.7",
+ # :version => "1.2.1",
# :compression_method => "xz",
# :windows => {
# :configure_args => [],
@@ -144,30 +192,37 @@ package = GNOME2Package.new do |_package|
:name => "gst-libav",
:download_base_url => "#{freedesktop_download_url_base}/gst-libav",
:label => "GStreamer libav",
- :version => "1.0.7",
+ :version => "1.2.1",
:compression_method => "xz",
:windows => {
- :configure_args => ["--with-libav-extra-configure=" +
- "--cross-prefix=#{_package.win32.build_host}- " +
- "--target-os=mingw32 " +
- "--arch=i686 " +
- "--pkg-config=pkg-config " +
- "--disable-gpl"],
+ :configure_args => [
+ "--with-libav-extra-configure=" +
+ "--cross-prefix=#{_package.win32.build_host}- " +
+ "--target-os=mingw32 " +
+ "--arch=i686 " +
+ "--pkg-config=pkg-config " +
+ "--disable-gpl",
+ ],
+ :built_file => "lib/gstreamer-1.0/libgstlibav.dll",
},
:bundled_packages => [
{
:name => "libav",
:path => "gst-libs/ext/libav",
- :license_files => ["LICENSE", "CREDITS",
- "COPYING.GPLv2", "COPYING.GPLv3",
- "COPYING.LGPLv2.1", "COPYING.LGPLv3"],
+ :license_files => [
+ "LICENSE",
+ "CREDITS",
+ "COPYING.GPLv2",
+ "COPYING.GPLv3",
+ "COPYING.LGPLv2.1",
+ "COPYING.LGPLv3",
+ ],
}
],
},
]
_package.cross_compiling do |spec|
if /mingw|mswin/ =~ spec.platform.to_s
- spec.add_runtime_dependency("cairo", ">= 1.10.1")
spec.add_runtime_dependency("pango", ">= #{_package.version}")
spec.add_runtime_dependency("gdk_pixbuf2", ">= #{_package.version}")
end
diff --git a/gstreamer/ext/gstreamer/rbgst-element-factory.c b/gstreamer/ext/gstreamer/rbgst-element-factory.c
new file mode 100644
index 0000000..906b8a8
--- /dev/null
+++ b/gstreamer/ext/gstreamer/rbgst-element-factory.c
@@ -0,0 +1,61 @@
+/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
+/*
+ * Copyright (C) 2013 Ruby-GNOME2 Project Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+#include "rbgst.h"
+
+#define RG_TARGET_NAMESPACE cElementFactory
+
+#define SELF(object) (GST_ELEMENT_FACTORY(RVAL2GOBJ(object)))
+
+static VALUE cStaticPadTemplate;
+
+static VALUE
+rg_static_pad_templates(VALUE self)
+{
+ GstElementFactory *factory = SELF(self);
+ const GList *templates;
+ VALUE rb_templates;
+
+ rb_templates = rb_ary_new();
+ templates = gst_element_factory_get_static_pad_templates(factory);
+ for (; templates; templates = g_list_next(templates)) {
+ GstStaticPadTemplate *template = templates->data;
+ VALUE rb_template;
+ rb_template = rb_funcall(cStaticPadTemplate, rb_intern("new"), 0);
+ memcpy(DATA_PTR(rb_template), template, sizeof(GstStaticPadTemplate));
+ rb_ary_push(rb_templates, rb_template);
+ }
+
+ return rb_templates;
+}
+
+void
+rb_gst_init_element_factory(void)
+{
+ VALUE mGst;
+ VALUE RG_TARGET_NAMESPACE;
+
+ mGst = rb_const_get(rb_cObject, rb_intern("Gst"));
+ RG_TARGET_NAMESPACE = rb_const_get(mGst, rb_intern("ElementFactory"));
+ cStaticPadTemplate = rb_const_get(mGst, rb_intern("StaticPadTemplate"));
+
+ rb_remove_method(RG_TARGET_NAMESPACE, "static_pad_templates");
+ RG_DEF_METHOD(static_pad_templates, 0);
+}
diff --git a/gstreamer/ext/gstreamer/rbgst.c b/gstreamer/ext/gstreamer/rbgst.c
index 7fa5116..9908a76 100644
--- a/gstreamer/ext/gstreamer/rbgst.c
+++ b/gstreamer/ext/gstreamer/rbgst.c
@@ -18,11 +18,7 @@
* MA 02110-1301 USA
*/
-#include <gst/gst.h>
-
-#include <rb-gobject-introspection.h>
-
-extern void Init_gstreamer (void);
+#include "rbgst.h"
static gboolean
name_equal(GIArgInfo *info, const gchar *target_name)
@@ -130,10 +126,59 @@ rg_gst_tag_foreach_func_callback_finder(GIArgInfo *info)
return rg_gst_tag_foreach_func_callback;
}
+static void
+rg_gst_value_list_r2g(VALUE from, GValue *to)
+{
+ int i, n;
+
+ if (NIL_P(from)) {
+ return;
+ }
+
+ from = rbg_to_array(from);
+ n = RARRAY_LEN(from);
+ for (i = 0; i < n; i++) {
+ VALUE rb_element;
+ const RGObjClassInfo *class_info;
+ GValue element = G_VALUE_INIT;
+
+ rb_element = rb_ary_entry(from, i);
+ class_info = RVAL2CINFO(rb_element);
+ g_value_init(&element, class_info->gtype);
+ rbgobj_rvalue_to_gvalue(rb_element, &element);
+ gst_value_list_append_value(to, &element);
+ }
+}
+
+static VALUE
+rg_gst_value_list_g2r(const GValue *from)
+{
+ guint i, n;
+ VALUE rb_values;
+
+ n = gst_value_list_get_size(from);
+ rb_values = rb_ary_new();
+ for (i = 0; i < n; i++) {
+ const GValue *value;
+ VALUE rb_value;
+
+ value = gst_value_list_get_value(from, i);
+ rb_value = rbgobj_gvalue_to_rvalue(value);
+ rb_ary_push(rb_values, rb_value);
+ }
+
+ return rb_values;
+}
+
void
Init_gstreamer (void)
{
rb_gi_callback_register_finder(rg_gst_bus_func_callback_finder);
rb_gi_callback_register_finder(rg_gst_bus_sync_handler_callback_finder);
rb_gi_callback_register_finder(rg_gst_tag_foreach_func_callback_finder);
+
+ rbgobj_register_r2g_func(GST_TYPE_LIST, rg_gst_value_list_r2g);
+ rbgobj_register_g2r_func(GST_TYPE_LIST, rg_gst_value_list_g2r);
+
+ rb_gst_init_element_factory();
}
diff --git a/glib2/ext/glib2/rbglib_i18n.c b/gstreamer/ext/gstreamer/rbgst.h
similarity index 62%
copy from glib2/ext/glib2/rbglib_i18n.c
copy to gstreamer/ext/gstreamer/rbgst.h
index bf598b8..1107e46 100644
--- a/glib2/ext/glib2/rbglib_i18n.c
+++ b/gstreamer/ext/gstreamer/rbgst.h
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006 Kouhei Sutou
+ * Copyright (C) 2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -19,26 +18,9 @@
* MA 02110-1301 USA
*/
-#include "rbgprivate.h"
-#include "rbglib.h"
-#undef _
-#include <glib/gi18n.h>
+#include <gst/gst.h>
-#define RG_TARGET_NAMESPACE mGLib
+#include <rb-gobject-introspection.h>
-#if GLIB_CHECK_VERSION(2,6,0)
-static VALUE
-rg_s_language_names(G_GNUC_UNUSED VALUE self)
-{
- return STRV2RVAL((const gchar **)g_get_language_names());
-}
-#endif
-
-void
-Init_glib_i18n(void)
-{
- /* glib/gi18n.h */
-#if GLIB_CHECK_VERSION(2,6,0)
- RG_DEF_SMETHOD(language_names, 0);
-#endif
-}
+extern void Init_gstreamer (void);
+G_GNUC_INTERNAL extern void rb_gst_init_element_factory (void);
diff --git a/gstreamer/lib/gst.rb b/gstreamer/lib/gst.rb
index 2d69be2..6baf3f7 100644
--- a/gstreamer/lib/gst.rb
+++ b/gstreamer/lib/gst.rb
@@ -14,6 +14,8 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+require "English"
+
require "gobject-introspection"
base_dir = Pathname.new(__FILE__).dirname.dirname.expand_path
@@ -43,29 +45,44 @@ module Gst
end
end
+ def method_missing(name, *args, &block)
+ init()
+ if respond_to?(name)
+ __send__(name, *args, &block)
+ else
+ super
+ end
+ end
+
def init(*argv)
loader = Loader.new(self, argv)
loader.load("Gst")
require "gst/bin"
require "gst/bus"
+ require "gst/caps"
require "gst/element"
+ require "gst/element-factory"
+ require "gst/plugin-feature"
+ require "gst/registry"
+ require "gst/structure"
init_base
init_controller
class << self
remove_method(:init)
remove_method(:const_missing)
+ remove_method(:method_missing)
end
end
private
def init_base
- require "gst/base_loader"
+ require "gst/base-loader"
base_loader = BaseLoader.new(self)
base_loader.load("GstBase")
end
def init_controller
- require "gst/controller_loader"
+ require "gst/controller-loader"
controller_loader = ControllerLoader.new(self)
controller_loader.load("GstController")
end
@@ -79,16 +96,28 @@ module Gst
private
def pre_load(repository, namespace)
+ call_init_function(repository, namespace)
+ define_value_modules
+ end
+
+ def call_init_function(repository, namespace)
init_check = repository.find(namespace, "init_check")
arguments = [
1 + @init_arguments.size,
[$0] + @init_arguments,
]
- succeeded, argc, argv, error = init_check.invoke(arguments)
+ succeeded, argc, argv, error = init_check.invoke(:arguments => arguments)
@init_arguments.replace(argv[1..-1])
raise error unless succeeded
end
+ def define_value_modules
+ @value_functions_module = Module.new
+ @value_methods_module = Module.new
+ @base_module.const_set("ValueFunctions", @value_functions_module)
+ @base_module.const_set("ValueMethods", @value_methods_module)
+ end
+
def post_load(repository, namespace)
require_extension
self.class.start_callback_dispatch_thread
@@ -104,8 +133,25 @@ module Gst
end
def load_function_info(info)
- return if info.name == "init"
- super
+ case info.name
+ when "init"
+ # ignore
+ when /\Avalue_/
+ method_name = $POSTMATCH
+ load_value_function_info(info, method_name)
+ else
+ super
+ end
+ end
+
+ def load_value_function_info(info, method_name)
+ value_functions_module = @value_functions_module
+ define_module_function(value_functions_module, method_name, info)
+ @value_methods_module.module_eval do
+ define_method(method_name) do |*arguments, &block|
+ value_functions_module.send(method_name, self, *arguments, &block)
+ end
+ end
end
RENAME_MAP = {
diff --git a/gstreamer/lib/gst/base_loader.rb b/gstreamer/lib/gst/base-loader.rb
similarity index 100%
copy from gstreamer/lib/gst/base_loader.rb
copy to gstreamer/lib/gst/base-loader.rb
diff --git a/gstreamer/lib/gst/controller_loader.rb b/gstreamer/lib/gst/caps.rb
similarity index 88%
copy from gstreamer/lib/gst/controller_loader.rb
copy to gstreamer/lib/gst/caps.rb
index 37bd503..9c08649 100644
--- a/gstreamer/lib/gst/controller_loader.rb
+++ b/gstreamer/lib/gst/caps.rb
@@ -15,6 +15,11 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
module Gst
- class ControllerLoader < GObjectIntrospection::Loader
+ class Caps
+ def structures
+ size.times.collect do |i|
+ get_structure(i)
+ end
+ end
end
end
diff --git a/gstreamer/lib/gst/controller_loader.rb b/gstreamer/lib/gst/controller-loader.rb
similarity index 100%
copy from gstreamer/lib/gst/controller_loader.rb
copy to gstreamer/lib/gst/controller-loader.rb
diff --git a/gstreamer/lib/gst/base_loader.rb b/gstreamer/lib/gst/element-factory.rb
similarity index 76%
copy from gstreamer/lib/gst/base_loader.rb
copy to gstreamer/lib/gst/element-factory.rb
index fb56999..b3b72e9 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/gstreamer/lib/gst/element-factory.rb
@@ -15,6 +15,21 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
module Gst
- class BaseLoader < GObjectIntrospection::Loader
+ class ElementFactory
+ def long_name
+ get_metadata("long-name")
+ end
+
+ def klass
+ get_metadata("klass")
+ end
+
+ def description
+ get_metadata("description")
+ end
+
+ def author
+ get_metadata("author")
+ end
end
end
diff --git a/gstreamer/lib/gst/element.rb b/gstreamer/lib/gst/element.rb
index 0ceace7..0e3bcce 100644
--- a/gstreamer/lib/gst/element.rb
+++ b/gstreamer/lib/gst/element.rb
@@ -44,5 +44,10 @@ module Gst
link_element(element)
element
end
+
+ alias_method :flags_raw, :flags
+ def flags
+ ElementFlags.new(flags_raw)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/gstreamer/lib/gst/plugin-feature.rb
similarity index 88%
copy from gstreamer/lib/gst/base_loader.rb
copy to gstreamer/lib/gst/plugin-feature.rb
index fb56999..15b481f 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/gstreamer/lib/gst/plugin-feature.rb
@@ -15,6 +15,10 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
module Gst
- class BaseLoader < GObjectIntrospection::Loader
+ class PluginFeature
+ alias_method :rank_raw, :rank
+ def rank
+ Rank.new(rank_raw)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/gstreamer/lib/gst/registry.rb
similarity index 73%
copy from gstreamer/lib/gst/base_loader.rb
copy to gstreamer/lib/gst/registry.rb
index fb56999..cb6286d 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/gstreamer/lib/gst/registry.rb
@@ -15,6 +15,16 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
module Gst
- class BaseLoader < GObjectIntrospection::Loader
+ class Registry
+ alias_method :plugins, :plugin_list
+ def get_features(name_or_type)
+ if name_or_type.is_a?(GLib::Type)
+ type = name_or_type
+ get_feature_list(type)
+ else
+ name = name_or_type
+ get_feature_list_by_plugin(name)
+ end
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/gstreamer/lib/gst/structure.rb
similarity index 77%
copy from gstreamer/lib/gst/base_loader.rb
copy to gstreamer/lib/gst/structure.rb
index fb56999..98dda7f 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/gstreamer/lib/gst/structure.rb
@@ -15,6 +15,14 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
module Gst
- class BaseLoader < GObjectIntrospection::Loader
+ class Structure
+ def fields
+ n_fields.times.collect do |i|
+ field_name = nth_field_name(i)
+ value = get_value(field_name)
+ value.extend(ValueMethods)
+ [field_name, value]
+ end
+ end
end
end
diff --git a/gstreamer/patches/flac-1.2.1-fix-doc-install.diff b/gstreamer/patches/flac-1.2.1-fix-doc-install.diff
deleted file mode 100644
index 4a2790d..0000000
--- a/gstreamer/patches/flac-1.2.1-fix-doc-install.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- flac-1.2.1/doc/html/Makefile.am.orig 2007-09-17 04:14:01.000000000 +0900
-+++ flac-1.2.1/doc/html/Makefile.am 2012-12-19 23:44:54.188934973 +0900
-@@ -73,7 +73,7 @@
- # handle 'api/' specially:
- install-data-local:
- $(mkinstalldirs) $(DESTDIR)$(docdir)/api
-- (cd api && $(INSTALL_DATA) * $(DESTDIR)$(docdir)/api)
-+ (cd api && ../$(INSTALL_DATA) * $(DESTDIR)$(docdir)/api)
- uninstall-local:
- rm -rf $(DESTDIR)$(docdir)/api
- maintainer-clean-local:
diff --git a/gstreamer/patches/flac-1.2.1-fix-mingw-build.diff b/gstreamer/patches/flac-1.2.1-fix-mingw-build.diff
deleted file mode 100644
index 7b00423..0000000
--- a/gstreamer/patches/flac-1.2.1-fix-mingw-build.diff
+++ /dev/null
@@ -1,11 +0,0 @@
---- flac-1.2.1/src/libFLAC/Makefile.am.orig 2007-09-15 06:06:17.000000000 +0900
-+++ flac-1.2.1/src/libFLAC/Makefile.am 2012-01-07 14:15:45.582310444 +0900
-@@ -96,7 +96,7 @@
- ogg_mapping.c
- endif
- # see 'http://www.gnu.org/software/libtool/manual.html#Libtool-versioning' for numbering convention
--libFLAC_la_LDFLAGS = -version-info 10:0:2 -lm $(LOCAL_EXTRA_LDFLAGS)
-+libFLAC_la_LDFLAGS = -version-info 10:0:2 -lws2_32 $(LOCAL_EXTRA_LDFLAGS) -no-undefined
- libFLAC_la_SOURCES = \
- bitmath.c \
- bitreader.c \
diff --git a/gstreamer/patches/libtheora-1.1.1-use-lf-in-def.diff b/gstreamer/patches/libtheora-1.1.1-use-lf-in-def.diff
new file mode 100644
index 0000000..5c68916
--- /dev/null
+++ b/gstreamer/patches/libtheora-1.1.1-use-lf-in-def.diff
@@ -0,0 +1,158 @@
+diff -ru libtheora-1.1.1.orig/win32/xmingw32/libtheoradec-all.def libtheora-1.1.1/win32/xmingw32/libtheoradec-all.def
+--- libtheora-1.1.1.orig/win32/xmingw32/libtheoradec-all.def 2009-07-14 08:55:00.000000000 +0900
++++ libtheora-1.1.1/win32/xmingw32/libtheoradec-all.def 2013-12-23 23:45:03.464282578 +0900
+@@ -1,58 +1,58 @@
+-EXPORTS
+-; Old alpha API
+- theora_version_string @ 1
+- theora_version_number @ 2
+-
+- theora_decode_header @ 3
+- theora_decode_init @ 4
+- theora_decode_packetin @ 5
+- theora_decode_YUVout @ 6
+-
+- theora_control @ 7
+-
+- theora_packet_isheader @ 8
+- theora_packet_iskeyframe @ 9
+-
+- theora_granule_shift @ 10
+- theora_granule_frame @ 11
+- theora_granule_time @ 12
+-
+- theora_info_init @ 13
+- theora_info_clear @ 14
+-
+- theora_clear @ 15
+-
+- theora_comment_init @ 16
+- theora_comment_add @ 17
+- theora_comment_add_tag @ 18
+- theora_comment_query @ 19
+- theora_comment_query_count @ 20
+- theora_comment_clear @ 21
+-
+-; New theora-exp API
+- th_version_string @ 22
+- th_version_number @ 23
+-
+- th_decode_headerin @ 24
+- th_decode_alloc @ 25
+- th_setup_free @ 26
+- th_decode_ctl @ 27
+- th_decode_packetin @ 28
+- th_decode_ycbcr_out @ 29
+- th_decode_free @ 30
+-
+- th_packet_isheader @ 31
+- th_packet_iskeyframe @ 32
+-
+- th_granule_frame @ 33
+- th_granule_time @ 34
+-
+- th_info_init @ 35
+- th_info_clear @ 36
+-
+- th_comment_init @ 37
+- th_comment_add @ 38
+- th_comment_add_tag @ 39
+- th_comment_query @ 40
+- th_comment_query_count @ 41
+- th_comment_clear @ 42
++EXPORTS
++; Old alpha API
++ theora_version_string @ 1
++ theora_version_number @ 2
++
++ theora_decode_header @ 3
++ theora_decode_init @ 4
++ theora_decode_packetin @ 5
++ theora_decode_YUVout @ 6
++
++ theora_control @ 7
++
++ theora_packet_isheader @ 8
++ theora_packet_iskeyframe @ 9
++
++ theora_granule_shift @ 10
++ theora_granule_frame @ 11
++ theora_granule_time @ 12
++
++ theora_info_init @ 13
++ theora_info_clear @ 14
++
++ theora_clear @ 15
++
++ theora_comment_init @ 16
++ theora_comment_add @ 17
++ theora_comment_add_tag @ 18
++ theora_comment_query @ 19
++ theora_comment_query_count @ 20
++ theora_comment_clear @ 21
++
++; New theora-exp API
++ th_version_string @ 22
++ th_version_number @ 23
++
++ th_decode_headerin @ 24
++ th_decode_alloc @ 25
++ th_setup_free @ 26
++ th_decode_ctl @ 27
++ th_decode_packetin @ 28
++ th_decode_ycbcr_out @ 29
++ th_decode_free @ 30
++
++ th_packet_isheader @ 31
++ th_packet_iskeyframe @ 32
++
++ th_granule_frame @ 33
++ th_granule_time @ 34
++
++ th_info_init @ 35
++ th_info_clear @ 36
++
++ th_comment_init @ 37
++ th_comment_add @ 38
++ th_comment_add_tag @ 39
++ th_comment_query @ 40
++ th_comment_query_count @ 41
++ th_comment_clear @ 42
+diff -ru libtheora-1.1.1.orig/win32/xmingw32/libtheoraenc-all.def libtheora-1.1.1/win32/xmingw32/libtheoraenc-all.def
+--- libtheora-1.1.1.orig/win32/xmingw32/libtheoraenc-all.def 2009-07-14 08:55:00.000000000 +0900
++++ libtheora-1.1.1/win32/xmingw32/libtheoraenc-all.def 2013-12-23 23:45:09.084147371 +0900
+@@ -1,17 +1,17 @@
+-EXPORTS
+-; Old alpha API
+- theora_encode_init @ 1
+- theora_encode_YUVin @ 2
+- theora_encode_packetout @ 3
+- theora_encode_header @ 4
+- theora_encode_comment @ 5
+- theora_encode_tables @ 6
+-; New theora-exp API
+- th_encode_alloc @ 7
+- th_encode_ctl @ 8
+- th_encode_flushheader @ 9
+- th_encode_ycbcr_in @ 10
+- th_encode_packetout @ 11
+- th_encode_free @ 12
+- TH_VP31_QUANT_INFO @ 13
+- TH_VP31_HUFF_CODES @ 14
++EXPORTS
++; Old alpha API
++ theora_encode_init @ 1
++ theora_encode_YUVin @ 2
++ theora_encode_packetout @ 3
++ theora_encode_header @ 4
++ theora_encode_comment @ 5
++ theora_encode_tables @ 6
++; New theora-exp API
++ th_encode_alloc @ 7
++ th_encode_ctl @ 8
++ th_encode_flushheader @ 9
++ th_encode_ycbcr_in @ 10
++ th_encode_packetout @ 11
++ th_encode_free @ 12
++ TH_VP31_QUANT_INFO @ 13
++ TH_VP31_HUFF_CODES @ 14
diff --git a/gstreamer/sample/gst-inspect.rb b/gstreamer/sample/gst-inspect.rb
new file mode 100755
index 0000000..1c52852
--- /dev/null
+++ b/gstreamer/sample/gst-inspect.rb
@@ -0,0 +1,478 @@
+#!/usr/bin/evn ruby
+#
+# This sample code is a port of gstreamer/tools/gst-inspect.c. It is
+# licensed under the terms of the GNU Library General Public License,
+# version 2 or (at your option) later.
+#
+# The followin is the original code's copyright notation:
+# Copyright (C) 1999,2000 Erik Walthinsen <omega at cse.ogi.edu>
+# 2000 Wim Taymans <wtay at chello.be>
+# 2004 Thomas Vander Stichele <thomas at apestaart.org>
+#
+#
+# Copyright (C) 2013 Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+require "optparse"
+require "ostruct"
+
+require "gst"
+
+def parse(argv)
+ options = OpenStruct.new
+ options.print_all = false
+ options.print_auto_install_info = false
+
+ opts = OptionParser.new do |opts|
+ opts.banner += " [ELEMENT-NAME|PLUGIN-NAME]"
+
+ opts.version = Gst.version
+
+ opts.separator("")
+ opts.on("-a", "--print-all", "Print all elements") do
+ options.print_all = true
+ end
+
+ opts.on("--print-plugin-auto-install-info",
+ "Print a machine-parsable list of features",
+ "the specified plugin provides.",
+ "Useful in connection with external",
+ "automatic plugin installation mechanisms") do
+ options.print_auto_install_info = true
+ end
+ end
+ opts.parse!(argv)
+
+ [options, argv.first]
+end
+
+class Inspector
+ def initialize
+ @prefix = ""
+ end
+
+ def print_list(print_all)
+ plugins = {}
+ n_features = 0
+ each_feature do |plugin, feature|
+ plugins[plugin.name] = nil
+ n_features += 1
+ if print_all
+ if feature.is_a?(Gst::ElementFactory)
+ print_element_factory(feature, true)
+ end
+ else
+ print_feature(plugin, feature)
+ end
+ end
+ puts
+ puts("Total count: #{plugins.size} plugins, #{n_features} features")
+ end
+
+ def print_element(name)
+ factory = Gst::ElementFactory.find(name)
+ print_element_factory(factory, false)
+ end
+
+ private
+ def puts(*args)
+ if args.empty?
+ super(@prefix)
+ else
+ super(*(args.collect {|arg| "#{@prefix}#{arg}"}))
+ end
+ end
+
+ def prefix(new_prefix)
+ prefix, @prefix = @prefix, new_prefix
+ yield
+ ensure
+ @prefix = prefix
+ end
+
+ def each_feature
+ registry = Gst::Registry.get
+ registry.plugins.sort_by {|plugin| plugin.name}.each do |plugin|
+ features = registry.get_features(plugin.name)
+ features.sort_by {|feature| feature.name}.each do |feature|
+ yield(plugin, feature)
+ end
+ end
+ end
+
+ def print_factory_details_info(factory)
+ puts("Factory Details:",
+ " Rank:\t\t#{factory.rank.nick} (#{factory.rank.to_i})",
+ " Long name:\t#{factory.long_name}",
+ " Class:\t#{factory.klass}",
+ " Description:\t#{factory.description}",
+ " Author(s):\t#{factory.author}",
+ "")
+ end
+
+ def print_plugin_info(name)
+ return if name.nil?
+ registry = Gst::Registry.get
+ plugin = registry.find_plugin(name)
+ return if plugin.nil?
+
+ puts("Plugin Details:",
+ " Name:\t\t\t#{plugin.name}",
+ " Description:\t\t#{plugin.description}",
+ " Filename:\t\t#{plugin.filename || '(null)'}",
+ " Version:\t\t#{plugin.version}",
+ " License:\t\t#{plugin.license}",
+ " Source module:\t#{plugin.source}")
+ release_date = plugin.release_date_string
+ if release_date
+ puts(" Source release date:\t#{release_date}")
+ end
+ puts(" Binary package:\t#{plugin.package}",
+ " Origin URL:\t\t#{plugin.origin}",
+ "")
+ end
+
+ def print_hierarchy(element)
+ ancestors = []
+ type = element.gtype
+ while type
+ ancestors << type
+ type = type.parent
+ end
+ ancestors.reverse.each_with_index do |klass, i|
+ if i.zero?
+ mark = ""
+ else
+ mark = " " + (" " * (i - 1)) + "+----"
+ end
+ puts("#{mark}#{klass.name}")
+ end
+ puts
+ end
+
+ def print_interfaces(element)
+ interfaces = element.gtype.interfaces
+ return if interfaces.empty?
+
+ puts("Implemented Interfaces:")
+ interfaces.each do |interface|
+ puts(" #{interface.name}")
+ end
+ puts
+ end
+
+ def print_caps(caps)
+ if caps.any?
+ puts("ANY")
+ return
+ end
+ if caps.empty?
+ puts("EMPTY")
+ return
+ end
+
+ caps.structures.each do |structure|
+ puts(structure.name)
+ structure.fields.each do |name, value|
+ puts(" %15s: %s" % [name, value.serialize])
+ end
+ end
+ end
+
+ def print_pad_template_info(template)
+ prefix("#{@prefix} ") do
+ puts("#{template.direction.nick.upcase} template: '#{template.name_template}'")
+ prefix("#{@prefix} ") do
+ if template.presence == Gst::PadPresence::REQUEST
+ puts("Availability: On request")
+ else
+ puts("Availability: #{template.presence.nick.capitalize}")
+ end
+ end
+ end
+
+ caps = template.caps
+ return if caps.nil?
+ prefix("#{@prefix} ") do
+ puts("Capabilities:")
+ prefix("#{@prefix} ") do
+ print_caps(caps)
+ end
+ end
+ puts
+ end
+
+ def print_pad_templates_info(element, factory)
+ puts("Pad Templates:")
+ templates = factory.static_pad_templates
+
+ if templates.empty?
+ puts(" none")
+ return
+ end
+
+ templates.each do |template|
+ print_pad_template_info(template)
+ end
+ end
+
+ def print_element_flag_info(element)
+ puts("Element Flags:")
+ puts(" no flags set")
+ puts
+
+ return unless element.is_a?(Gst::Bin)
+ puts("Bin Flags:")
+ puts(" no flags set")
+ puts
+ end
+
+ def print_implementation_info(element)
+ puts("Element Implementation:")
+ puts(" not supported")
+ puts
+ end
+
+ def print_clocking_info(element)
+ if !element.flags.require_clock? and
+ !element.flags.provide_clock? and
+ element.clock.nil?
+ puts("Element has no clocking capabilities.")
+ return
+ end
+
+ puts("Clocking Interaction:")
+ puts(" element requires a clock") if element.flags.require_clock?
+ if element.flags.provide_clock?
+ clock = element.clock
+ if clock.nil?
+ puts(" element is supported tot provide a clock but returned nil")
+ else
+ puts(" element provides a clock: #{clock.name}")
+ end
+ end
+ puts
+ end
+
+ def print_index_info(element)
+ if element.flags.indexable?
+ puts("Indexing capabilities:")
+ puts(" element can do indexing")
+ else
+ puts("Element has no indexing capabilities.")
+ end
+ puts
+ end
+
+ def uri_type(element)
+ case element.uri_type
+ when Gst::URIType::SRC
+ "source"
+ when Gst::URIType::SINK
+ "sink"
+ else
+ "unknown"
+ end
+ end
+
+ def print_uri_handler_info(element)
+ if element.is_a?(Gst::URIHandler)
+ puts("URI handling capabilities:")
+ puts(" Element can act as #{uri_type(element)}.")
+ protocols = element.protocols
+ if protocols.empty?
+ puts(" No supported URI protocols")
+ else
+ puts(" Supported URI protocols:")
+ protocols.each do |protocol|
+ puts(" #{protocol}")
+ end
+ end
+ else
+ puts("Element has no URI handling capabilities.")
+ end
+ puts
+ end
+
+ def print_pad_info(element)
+ puts("Pads:")
+ pads = element.pads
+ if pads.empty?
+ puts(" none")
+ return
+ end
+
+ pads.each do |pad|
+ prefix("#{@prefix} ") do
+ puts("#{pad.direction.nick.upcase}: '#{pad.name}'")
+ prefix("#{@prefix} ") do
+ template = pad.template
+ puts("Pad Template: '#{template.name}'") if template
+
+ caps = pad.caps
+ break if caps.nil?
+ puts("Capabilities:")
+ prefix("#{@prefix} ") do
+ print_caps(caps)
+ end
+ end
+ end
+ end
+ puts
+ end
+
+ def print_element_properties_info(element)
+ puts("Element Properties:")
+ properties = element.class.properties
+ if properties.empty?
+ puts(" none")
+ return
+ end
+
+ properties.each do |name|
+ param = element.class.property(name)
+ puts(" %-20s: %s" % [param.name, param.blurb])
+
+ flags = []
+ flags << "readable" if param.readable?
+ flags << "writable" if param.writable?
+ # flags << "controllable" if param.controllable?
+
+ prefix("#{@prefix}#{' ' * 23} ") do
+ puts("flags: #{flags.join(', ')}")
+ description = ""
+ type_name = param.value_type.name
+ description << "#{type_name}."
+ if param.readable?
+ case param.gtype
+ when GLib::Type["GParamObject"]
+ # do nothing
+ else
+ default_value = element.get_property(name)
+ description << " Default: #{default_value.inspect}"
+ end
+ else
+ description << " Write only"
+ end
+ puts(description)
+ end
+ end
+ puts
+ end
+
+ def print_signal_info(element, signal)
+ args = ["object(#{element.class})"]
+ signal.param_types.each_with_index do |name, i|
+ args << "arg#{i}(#{name})"
+ end
+ args = args.join(", ")
+ signature = "{|#{args}| ...} # => #{signal.return_type}"
+ puts(" #{signal.name.inspect}: #{signature}")
+ end
+
+ def print_signals_info(element)
+ signals = []
+ actions = []
+ element.class.signals.each do |name|
+ signal = element.class.signal(name)
+ next if signal.owner >= Gst::Element
+ if signal.action?
+ actions << signal
+ else
+ signals << signal
+ end
+ end
+
+ [[signals, "Signals"],
+ [actions, "Actions"]].each do |target_signals, description|
+ unless target_signals.empty?
+ puts("Element #{description}:")
+ target_signals.each do |signal|
+ print_signal_info(element, signal)
+ end
+ end
+ end
+ puts
+ end
+
+ def print_children_info(element)
+ return unless element.is_a?(Gst::Bin)
+ children = element.children
+ return if children.empty?
+
+ puts("Children:")
+ children.each do |child|
+ puts(" #{child.name}")
+ end
+ end
+
+ def print_element_factory(factory, print_names)
+ factory = factory.load
+ if factory.nil?
+ puts("element plugin (#{factory.name}) couldn't be loaded\n")
+ return
+ end
+
+ element = factory.create
+
+ prefix(print_names ? "#{factory.name}: " : "") do
+ print_factory_details_info(factory)
+ print_plugin_info(factory.plugin.name)
+
+ print_hierarchy(element)
+ print_interfaces(element)
+
+ print_pad_templates_info(element, factory)
+ puts
+
+ print_element_flag_info(element)
+ print_implementation_info(element)
+ print_clocking_info(element)
+ print_index_info(element)
+ print_uri_handler_info(element)
+ print_pad_info(element)
+ print_element_properties_info(element)
+ print_signals_info(element)
+ print_children_info(element)
+ end
+ end
+
+ def print_feature(plugin, feature)
+ prefix("#{plugin.name}: #{feature.name}") do
+ case feature
+ when Gst::ElementFactory
+ puts(": #{feature.long_name}")
+ when Gst::TypeFindFactory
+ if feature.extensions.empty?
+ message = "no extensions"
+ else
+ message = feature.extensions.join(", ")
+ end
+ puts(": #{message}")
+ else
+ puts(" (#{feature.gtype})")
+ end
+ end
+ end
+end
+
+options, element_name = parse(ARGV)
+inspector = Inspector.new
+if element_name
+ inspector.print_element(element_name)
+else
+ inspector.print_list(options.print_all)
+end
diff --git a/gtk2/COPYING.LIB b/gtk2/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/gtk2/COPYING.LIB
+++ b/gtk2/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/gtk2/README b/gtk2/README
index b642772..d9b239b 100644
--- a/gtk2/README
+++ b/gtk2/README
@@ -1,6 +1,6 @@
Ruby/GTK2
=========
-Ruby/GTK2 is a Ruby binding of GTK+-2.0.x.
+Ruby/GTK2 is a Ruby binding of GTK+-2.10.x.
Requirements
------------
@@ -12,7 +12,7 @@ Requirements
Install
-------
- 0. install ruby-1.6.x or later, GTK+-2.0.x, Ruby/GLib2, Ruby/Pango
+ 0. install ruby-1.9.x or later, GTK+-2.10.x, Ruby/GLib2, Ruby/Pango
(and cairo/rcairo).
1. ruby extconf.rb
(To use rcairo on Win32, set CAIRO_PATH as a environment variable first)
diff --git a/gtk2/Rakefile b/gtk2/Rakefile
index adf45a9..edac16d 100644
--- a/gtk2/Rakefile
+++ b/gtk2/Rakefile
@@ -17,24 +17,26 @@ package = GNOME2Package.new do |_package|
:name => "gtk+",
:download_site => :gnome,
:label => "gtk+",
- :version => "2.24.18",
+ :version => "2.24.22",
:compression_method => "xz",
:windows => {
:configure_args => [],
:need_autoreconf => true,
:patches => [
- "gtk+-2.24.14-add-missing-exeext.diff",
+ "gtk+-2.24.22-add-missing-exeext.diff",
],
+ :built_file => "bin/libgtk-win32-2.0-0.dll",
},
},
{
:name => "hicolor-icon-theme",
:download_base_url => "http://icon-theme.freedesktop.org/releases",
:label => "gtk-hi-color-icon-theme",
- :version => "0.12",
+ :version => "0.13",
:windows => {
:configure_args => [],
:build_concurrently => false,
+ :built_file => "share/icons/hicolor/index.theme",
}
},
]
diff --git a/gtk2/ext/gtk2/extconf.rb b/gtk2/ext/gtk2/extconf.rb
index f6ccd2c..e70cb68 100644
--- a/gtk2/ext/gtk2/extconf.rb
+++ b/gtk2/ext/gtk2/extconf.rb
@@ -54,11 +54,14 @@ rcairo_source_dir_names.each do |rcairo_source_dir_name|
break
end
end
-check_cairo(rcairo_options)
+
+unless check_cairo(rcairo_options)
+ exit(false)
+end
setup_win32(module_name, base_dir)
-unless required_pkg_config_package(package_id,
+unless required_pkg_config_package([package_id, 2, 10, 0],
:debian => "libgtk2.0-dev",
:redhat => "gtk2-devel",
:homebrew => "gtk+",
diff --git a/gtk2/ext/gtk2/global.h b/gtk2/ext/gtk2/global.h
index d11d686..6d0c007 100644
--- a/gtk2/ext/gtk2/global.h
+++ b/gtk2/ext/gtk2/global.h
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2002,2003 Ruby-GNOME2 Project Team
+ * Copyright (C) 2002-2013 Ruby-GNOME2 Project Team
* Copyright (C) 1998-2000 Yukihiro Matsumoto,
* Daisuke Kanda,
* Hiroshi Igarashi
@@ -47,12 +46,6 @@
# define G_VALUE_INIT { 0, { { 0 } } }
#endif
-#if GTK_CHECK_VERSION(2,8,0) && defined(HAVE_RB_CAIRO_H)
-# define CAIRO_AVAILABLE 1
-#else
-# define CAIRO_AVAILABLE 0
-#endif
-
extern ID id_relative_callbacks;
extern ID id_call;
extern VALUE treeiter_set_value_table;
diff --git a/gtk2/ext/gtk2/rbgdk.c b/gtk2/ext/gtk2/rbgdk.c
index 164b70e..ba76fe2 100644
--- a/gtk2/ext/gtk2/rbgdk.c
+++ b/gtk2/ext/gtk2/rbgdk.c
@@ -171,13 +171,11 @@ rbgdk_rval2gdkpixbufglist(VALUE value)
return args.result;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_m_display_arg_name(G_GNUC_UNUSED VALUE self)
{
return CSTR2RVAL(gdk_get_display_arg_name());
}
-#endif
static VALUE
rg_m_set_locale(G_GNUC_UNUSED VALUE self)
@@ -192,7 +190,6 @@ rg_m_set_sm_client_id(VALUE self, VALUE id)
return self;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_m_notify_startup_complete(int argc, VALUE *argv, VALUE self)
{
@@ -213,7 +210,6 @@ rg_m_notify_startup_complete(int argc, VALUE *argv, VALUE self)
}
return self;
}
-#endif
static VALUE
rg_m_program_class(G_GNUC_UNUSED VALUE self)
@@ -262,11 +258,8 @@ rbgdk_x_io_error(Display *display)
const gchar* disp;
const gchar* error;
-#if GTK_CHECK_VERSION(2,2,0)
disp = display ? DisplayString(display) : gdk_get_display_arg_name();
-#else
- disp = DisplayString(display);
-#endif
+
if (! disp)
disp = "(none)";
@@ -462,11 +455,7 @@ rg_m_target(G_GNUC_UNUSED VALUE self)
static VALUE
rg_m_cairo_available_p(G_GNUC_UNUSED VALUE self)
{
-#if CAIRO_AVAILABLE
return Qtrue;
-#else
- return Qfalse;
-#endif
}
void
@@ -474,14 +463,10 @@ Init_gtk_gdk(void)
{
RG_TARGET_NAMESPACE = rb_define_module("Gdk");
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_MODFUNC(display_arg_name, 0);
-#endif
RG_DEF_MODFUNC(set_locale, 0);
RG_DEF_MODFUNC(set_sm_client_id, 1);
-#if GTK_CHECK_VERSION(2, 2, 0)
RG_DEF_MODFUNC(notify_startup_complete, -1);
-#endif
RG_DEF_MODFUNC(program_class, 0);
RG_DEF_MODFUNC(set_program_class, 1);
RG_DEF_MODFUNC(display, 0);
diff --git a/gtk2/ext/gtk2/rbgdkcairo.c b/gtk2/ext/gtk2/rbgdkcairo.c
index 29eca06..6f371a4 100644
--- a/gtk2/ext/gtk2/rbgdkcairo.c
+++ b/gtk2/ext/gtk2/rbgdkcairo.c
@@ -21,7 +21,6 @@
#include "global.h"
-#if CAIRO_AVAILABLE
#include <gdk/gdkcairo.h>
#include <rb_cairo.h>
@@ -51,7 +50,6 @@ rg_set_source_pixbuf(int argc, VALUE *argv, VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_set_source_pixmap(VALUE self, VALUE pixmap, VALUE pixmap_x, VALUE pixmap_y)
{
@@ -60,7 +58,6 @@ rg_set_source_pixmap(VALUE self, VALUE pixmap, VALUE pixmap_x, VALUE pixmap_y)
rb_cairo_check_status(cairo_status(_SELF(self)));
return self;
}
-#endif
static VALUE
rg_gdk_rectangle(VALUE self, VALUE rectangle)
@@ -78,20 +75,15 @@ rg_gdk_region(VALUE self, VALUE region)
rb_cairo_check_status(cairo_status(_SELF(self)));
return self;
}
-#endif
void
Init_gtk_gdk_cairo(void)
{
-#if CAIRO_AVAILABLE
RG_DEF_METHOD(set_source_gdk_color, 1);
RG_DEF_METHOD(set_source_pixbuf, -1);
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(set_source_pixmap, 3);
-#endif
RG_DEF_METHOD(gdk_rectangle, 1);
RG_DEF_METHOD(gdk_region, 1);
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgdkcolormap.c b/gtk2/ext/gtk2/rbgdkcolormap.c
index adaccb1..ae7c18f 100644
--- a/gtk2/ext/gtk2/rbgdkcolormap.c
+++ b/gtk2/ext/gtk2/rbgdkcolormap.c
@@ -86,13 +86,11 @@ rg_visual(VALUE self)
return GOBJ2RVAL(gdk_colormap_get_visual(_SELF(self)));
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_screen(VALUE self)
{
return GOBJ2RVAL(gdk_colormap_get_screen(_SELF(self)));
}
-#endif
static VALUE
rg_colors(VALUE self)
@@ -132,8 +130,6 @@ Init_gtk_gdk_colormap(VALUE mGdk)
RG_DEF_METHOD(free_color, 1);
RG_DEF_METHOD(query_color, 1);
RG_DEF_METHOD(visual, 0);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(screen, 0);
-#endif
RG_DEF_METHOD(colors, 0);
}
diff --git a/gtk2/ext/gtk2/rbgdkcursor.c b/gtk2/ext/gtk2/rbgdkcursor.c
index e164f53..40b35e7 100644
--- a/gtk2/ext/gtk2/rbgdkcursor.c
+++ b/gtk2/ext/gtk2/rbgdkcursor.c
@@ -33,30 +33,20 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
rb_scan_args(argc, argv, "10", &type);
cursor = gdk_cursor_new(RVAL2GENUM(type, GDK_TYPE_CURSOR_TYPE));
} else if (argc == 2) {
-#if GTK_CHECK_VERSION(2,2,0)
VALUE display, type_or_name;
rb_scan_args(argc, argv, "20", &display, &type_or_name);
-#if GTK_CHECK_VERSION(2,8,0)
if (TYPE(type_or_name) == T_STRING)
cursor = gdk_cursor_new_from_name(GDK_DISPLAY_OBJECT(RVAL2GOBJ(display)),
RVAL2CSTR(type_or_name));
else
-#endif
cursor = gdk_cursor_new_for_display(GDK_DISPLAY_OBJECT(RVAL2GOBJ(display)),
RVAL2GENUM(type_or_name, GDK_TYPE_CURSOR_TYPE));
-#else
- rb_raise(rb_eRuntimeError, "Gdk::Cursor.new(display, cursor_type) has been supported since GTK+-2.2.");
-#endif
} else if (argc == 4) {
-#if GTK_CHECK_VERSION(2,4,0)
VALUE display, pixbuf, x, y;
rb_scan_args(argc, argv, "40", &display, &pixbuf, &x, &y);
cursor = gdk_cursor_new_from_pixbuf(GDK_DISPLAY_OBJECT(RVAL2GOBJ(display)),
GDK_PIXBUF(RVAL2GOBJ(pixbuf)),
NUM2INT(x), NUM2INT(y));
-#else
- rb_raise(rb_eRuntimeError, "Gdk::Cursor.new(pixbuf) has been supported since GTK+-2.4.");
-#endif
} else if (argc == 6) {
VALUE pixmap, mask, fg, bg, x, y;
rb_scan_args(argc, argv, "60", &pixmap, &mask, &fg, &bg, &x, &y);
@@ -71,13 +61,11 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
return Qnil;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_display(VALUE self)
{
return GOBJ2RVAL(gdk_cursor_get_display((GdkCursor*)RVAL2BOXED(self, GDK_TYPE_CURSOR)));
}
-#endif
static VALUE
rg_pixmap_p(VALUE self)
@@ -92,13 +80,11 @@ rg_cursor_type(VALUE self)
return GENUM2RVAL(((GdkCursor*)RVAL2BOXED(self, GDK_TYPE_CURSOR))->type, GDK_TYPE_CURSOR_TYPE);
}
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_image(VALUE self)
{
return GOBJ2RVAL(gdk_cursor_get_image((GdkCursor*)RVAL2BOXED(self, GDK_TYPE_CURSOR)));
}
-#endif
void
Init_gtk_gdk_cursor(VALUE mGdk)
@@ -106,14 +92,10 @@ Init_gtk_gdk_cursor(VALUE mGdk)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_CURSOR, "Cursor", mGdk);
RG_DEF_METHOD(initialize, -1);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(display, 0);
-#endif
RG_DEF_METHOD_P(pixmap, 0);
RG_DEF_METHOD(cursor_type, 0);
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(image, 0);
-#endif
G_DEF_CLASS(GDK_TYPE_CURSOR_TYPE, "Type", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GDK_TYPE_CURSOR_TYPE, "GDK_");
diff --git a/gtk2/ext/gtk2/rbgdkdisplay.c b/gtk2/ext/gtk2/rbgdkdisplay.c
index c90b6d0..c7bae8e 100644
--- a/gtk2/ext/gtk2/rbgdkdisplay.c
+++ b/gtk2/ext/gtk2/rbgdkdisplay.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2002-2005 Ruby-GNOME2 Project Team
+ * Copyright (C) 2002-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -21,8 +20,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,2,0)
-
#define RG_TARGET_NAMESPACE cDisplay
#define _SELF(i) GDK_DISPLAY_OBJECT(RVAL2GOBJ(i))
@@ -38,7 +35,7 @@ rg_s_open(G_GNUC_UNUSED VALUE self, VALUE display_name)
{
GdkDisplay* gdisplay = gdk_display_open(RVAL2CSTR(display_name));
if (! gdisplay) {
- rb_raise(rb_eRuntimeError, "The display `%s' could not be opened.",
+ rb_raise(rb_eRuntimeError, "The display `%s' could not be opened.",
RVAL2CSTR(display_name));
} else {
VALUE display;
@@ -122,14 +119,12 @@ rg_sync(VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_flush(VALUE self)
{
gdk_display_flush(_SELF(self));
return self;
}
-#endif
static VALUE
rg_devices(VALUE self)
@@ -160,8 +155,8 @@ rg_put_event(VALUE self, VALUE event)
static GdkFilterReturn
filter_func(GdkXEvent xevent, GdkEvent event, gpointer func)
{
- return GENUM2RVAL(rb_funcall((VALUE)func, id_call, 2,
- ????, GEV2RVAL(event)),
+ return GENUM2RVAL(rb_funcall((VALUE)func, id_call, 2,
+ ????, GEV2RVAL(event)),
GDK_TYPE_FILTER_RETURN);
}
@@ -219,7 +214,6 @@ rg_closed_p(VALUE self)
return CBOOL2RVAL(_SELF(self)->closed);
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_button_x(VALUE self)
{
@@ -248,7 +242,6 @@ rg_double_click_distance(VALUE self)
{
return UINT2NUM(_SELF(self)->double_click_distance);
}
-#endif
static VALUE
rg_pointer(VALUE self)
@@ -278,7 +271,6 @@ GdkDisplayPointerHooks* gdk_display_set_pointer_hooks
const GdkDisplayPointerHooks *new_hooks);
*/
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_supports_cursor_color_p(VALUE self)
{
@@ -310,9 +302,7 @@ rg_default_group(VALUE self)
{
return GOBJ2RVAL(gdk_display_get_default_group(_SELF(self)));
}
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_supports_selection_notification_p(VALUE self)
{
@@ -322,7 +312,7 @@ rg_supports_selection_notification_p(VALUE self)
static VALUE
rg_request_selection_notification_p(VALUE self, VALUE selection)
{
- return CBOOL2RVAL(gdk_display_request_selection_notification(_SELF(self),
+ return CBOOL2RVAL(gdk_display_request_selection_notification(_SELF(self),
RVAL2ATOM(selection)));
}
@@ -347,7 +337,6 @@ rg_store_clipboard(VALUE self, VALUE rbclipboard_window, VALUE rbtime_, VALUE rb
return self;
}
-#endif
static VALUE
rg_core_pointer(VALUE self)
@@ -355,14 +344,12 @@ rg_core_pointer(VALUE self)
return GOBJ2RVAL(gdk_display_get_core_pointer(_SELF(self)));
}
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_warp_pointer(VALUE self, VALUE screen, VALUE x, VALUE y)
{
gdk_display_warp_pointer(_SELF(self), RVAL2GOBJ(screen), NUM2INT(x), NUM2INT(y));
return self;
}
-#endif
#ifdef GDK_WINDOWING_X11
static VALUE
@@ -377,7 +364,6 @@ rg_ungrab(VALUE self)
gdk_x11_display_ungrab(_SELF(self));
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_register_standard_event_type(VALUE self, VALUE event_base, VALUE n_events)
{
@@ -385,8 +371,7 @@ rg_register_standard_event_type(VALUE self, VALUE event_base, VALUE n_events)
NUM2INT(event_base), NUM2INT(n_events));
return self;
}
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
+
static VALUE
rg_user_time(VALUE self)
{
@@ -466,10 +451,6 @@ rg_startup_notification_id(VALUE self)
}
# endif
-#endif
-#endif
-
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_supports_shapes_p(VALUE self)
{
@@ -481,7 +462,6 @@ rg_supports_input_shapes_p(VALUE self)
{
return CBOOL2RVAL(gdk_display_supports_input_shapes(_SELF(self)));
}
-#endif
#if GTK_CHECK_VERSION(2, 12, 0)
static VALUE
@@ -498,10 +478,9 @@ rg_trigger_tooltip_query(VALUE self)
}
#endif
-void
+void
Init_gtk_gdk_display(VALUE mGdk)
{
-#if GTK_CHECK_VERSION(2,2,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_DISPLAY, "Display", mGdk);
RG_DEF_SMETHOD(open, 1);
@@ -518,9 +497,7 @@ Init_gtk_gdk_display(VALUE mGdk)
RG_DEF_METHOD(beep, 0);
RG_DEF_METHOD(sync, 0);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(flush, 0);
-#endif
RG_DEF_METHOD(close, 0);
RG_DEF_METHOD(devices, 0);
@@ -533,43 +510,31 @@ Init_gtk_gdk_display(VALUE mGdk)
RG_DEF_METHOD(button_window, 0);
RG_DEF_METHOD(button_number, 0);
RG_DEF_METHOD_P(closed, 0);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(button_x, 0);
RG_DEF_METHOD(button_y, 0);
RG_DEF_METHOD(set_double_click_distance, 1);
RG_DEF_METHOD(double_click_distance, 0);
-#endif
RG_DEF_METHOD(pointer, 0);
RG_DEF_METHOD(window_at_pointer, 0);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD_P(supports_cursor_color, 0);
RG_DEF_METHOD_P(supports_cursor_alpha, 0);
RG_DEF_METHOD(default_cursor_size, 0);
RG_DEF_METHOD(maximal_cursor_size, 0);
RG_DEF_METHOD(default_group, 0);
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD_P(supports_selection_notification, 0);
RG_DEF_METHOD_P(request_selection_notification, 1);
RG_DEF_METHOD_P(supports_clipboard_persistence, 0);
RG_DEF_METHOD(store_clipboard, 3);
-#endif
RG_DEF_METHOD(core_pointer, 0);
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(warp_pointer, 3);
-#endif
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
#ifdef GDK_WINDOWING_X11
RG_DEF_METHOD(grab, 0);
RG_DEF_METHOD(ungrab, 0);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(register_standard_event_type, 2);
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(user_time, 0);
RG_DEF_METHOD(set_cursor_theme, 2);
-#endif
# if GTK_CHECK_VERSION(2, 12, 0)
/*
RG_DEF_METHOD(broadcast_startup_message, -1);
@@ -578,12 +543,9 @@ Init_gtk_gdk_display(VALUE mGdk)
# endif
G_DEF_CLASS3("GdkDisplayX11", "DisplayX11", mGdk);
#endif
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD_P(supports_shapes, 0);
RG_DEF_METHOD_P(supports_input_shapes, 0);
-#endif
#if GTK_CHECK_VERSION(2, 12, 0)
RG_DEF_METHOD_P(supports_composite, 0);
RG_DEF_METHOD(trigger_tooltip_query, 0);
diff --git a/gtk2/ext/gtk2/rbgdkdisplaymanager.c b/gtk2/ext/gtk2/rbgdkdisplaymanager.c
index 1473699..113de7d 100644
--- a/gtk2/ext/gtk2/rbgdkdisplaymanager.c
+++ b/gtk2/ext/gtk2/rbgdkdisplaymanager.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,2,0)
-
#define RG_TARGET_NAMESPACE cDisplayManager
#define _SELF(obj) GDK_DISPLAY_MANAGER(RVAL2GOBJ(obj))
@@ -45,15 +43,12 @@ gdkdisplaymanager_get_core_pointer(VALUE self)
return GOBJ2RVAL(gdk_display_get_core_pointer(_SELF(self)));
}
*/
-#endif
void
Init_gtk_gdk_display_manager(VALUE mGdk)
{
-#if GTK_CHECK_VERSION(2,2,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_DISPLAY_MANAGER, "DisplayManager", mGdk);
RG_DEF_SMETHOD(get, 0);
RG_DEF_METHOD(displays, 0);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgdkdragcontext.c b/gtk2/ext/gtk2/rbgdkdragcontext.c
index 6cbb970..fb2f8c9 100644
--- a/gtk2/ext/gtk2/rbgdkdragcontext.c
+++ b/gtk2/ext/gtk2/rbgdkdragcontext.c
@@ -102,15 +102,10 @@ rg_s_get_protocol(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
rb_scan_args(argc, argv, "10", &xid);
ret = gdk_drag_get_protocol(RVAL2GDKNATIVEWINDOW(xid), &prot);
} else {
-#if GTK_CHECK_VERSION(2,2,0)
VALUE display;
rb_scan_args(argc, argv, "20", &display, &xid);
ret = gdk_drag_get_protocol_for_display(GDK_DISPLAY_OBJECT(RVAL2GOBJ(display)),
RVAL2GDKNATIVEWINDOW(xid), &prot);
-#else
- rb_warn("Not supported arguments for Gdk::Display in GTK+-2.0.x.");
- ret = gdk_drag_get_protocol(NUM2UINT(xid), &prot);
-#endif
}
return rb_ary_new3(2, GENUM2RVAL(prot, GDK_TYPE_DRAG_PROTOCOL), GDKNATIVEWINDOW2RVAL(ret));
@@ -158,7 +153,6 @@ rg_find_window(int argc, VALUE *argv, VALUE self)
NUM2INT(x_root), NUM2INT(y_root),
&dest_window, &prot);
} else {
-#if GTK_CHECK_VERSION(2,2,0)
VALUE screen;
rb_scan_args(argc, argv, "40", &drag_window, &screen, &x_root, &y_root);
gdk_drag_find_window_for_screen(_SELF(self),
@@ -166,9 +160,6 @@ rg_find_window(int argc, VALUE *argv, VALUE self)
GDK_SCREEN(RVAL2GOBJ(screen)),
NUM2INT(x_root), NUM2INT(y_root),
&dest_window, &prot);
-#else
- rb_raise(rb_eArgError, "Wrong number of arguments: %d", argc);
-#endif
}
return rb_ary_new3(2, GOBJ2RVAL(dest_window),
@@ -258,13 +249,11 @@ rg_drag_status(VALUE self, VALUE action, VALUE time)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_drag_drop_succeeded_p(VALUE self)
{
return CBOOL2RVAL(gdk_drag_drop_succeeded(_SELF(self)));
}
-#endif
void
Init_gtk_gdk_dragcontext(VALUE mGdk)
@@ -293,9 +282,7 @@ Init_gtk_gdk_dragcontext(VALUE mGdk)
RG_DEF_METHOD(drag_motion, 7);
RG_DEF_METHOD(drop_finish, 2);
RG_DEF_METHOD(drag_status, 2);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD_P(drag_drop_succeeded, 0);
-#endif
/* Constants */
G_DEF_CLASS(GDK_TYPE_DRAG_PROTOCOL, "Protocol", RG_TARGET_NAMESPACE);
G_DEF_CLASS(GDK_TYPE_DRAG_ACTION, "Action", RG_TARGET_NAMESPACE);
diff --git a/gtk2/ext/gtk2/rbgdkdraw.c b/gtk2/ext/gtk2/rbgdkdraw.c
index 61b5370..aa73630 100644
--- a/gtk2/ext/gtk2/rbgdkdraw.c
+++ b/gtk2/ext/gtk2/rbgdkdraw.c
@@ -136,7 +136,6 @@ rg_draw_lines(VALUE self, VALUE rbgc, VALUE rbpoints)
return self;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_draw_pixbuf(VALUE self, VALUE gc, VALUE pixbuf, VALUE src_x, VALUE src_y, VALUE dest_x, VALUE dest_y, VALUE width, VALUE height, VALUE dither, VALUE x_dither, VALUE y_dither)
{
@@ -150,7 +149,6 @@ rg_draw_pixbuf(VALUE self, VALUE gc, VALUE pixbuf, VALUE src_x, VALUE src_y, VAL
NUM2INT(x_dither), NUM2INT(y_dither));
return self;
}
-#endif
struct rbgdk_rval2gdksegments_args {
VALUE ary;
@@ -259,7 +257,6 @@ rg_draw_polygon(VALUE self, VALUE rbgc, VALUE rbfilled, VALUE rbpoints)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
/*
trapezoids = [[y1, x11, x21, y2, x12, x22], ...]
*/
@@ -334,7 +331,6 @@ rg_draw_trapezoids(VALUE self, VALUE rbgc, VALUE rbtrapezoids)
return self;
}
-#endif
static VALUE
rg_draw_glyphs(VALUE self, VALUE gc, VALUE font, VALUE x, VALUE y, VALUE glyphs)
@@ -345,7 +341,6 @@ rg_draw_glyphs(VALUE self, VALUE gc, VALUE font, VALUE x, VALUE y, VALUE glyphs)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_draw_glyphs_transformed(VALUE self, VALUE gc, VALUE matrix, VALUE font, VALUE x, VALUE y, VALUE glyphs)
{
@@ -356,7 +351,6 @@ rg_draw_glyphs_transformed(VALUE self, VALUE gc, VALUE matrix, VALUE font, VALUE
(PangoGlyphString*)(RVAL2BOXED(glyphs, PANGO_TYPE_GLYPH_STRING)));
return self;
}
-#endif
static VALUE
rg_draw_layout_line(int argc, VALUE *argv, VALUE self)
@@ -418,7 +412,6 @@ rg_get_image(VALUE self, VALUE x, VALUE y, VALUE w, VALUE h)
NUM2INT(w), NUM2INT(h)));
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_copy_to_image(VALUE self, VALUE image, VALUE xsrc, VALUE ysrc, VALUE xdst, VALUE ydst, VALUE w, VALUE h)
{
@@ -428,7 +421,6 @@ rg_copy_to_image(VALUE self, VALUE image, VALUE xsrc, VALUE ysrc, VALUE xdst, VA
NUM2INT(xdst), NUM2INT(ydst),
NUM2INT(w), NUM2INT(h)));
}
-#endif
#ifdef GDK_WINDOWING_X11
static VALUE
@@ -448,7 +440,6 @@ rg_handle(VALUE self)
}
#endif
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_display(VALUE self)
{
@@ -460,10 +451,8 @@ rg_screen(VALUE self)
{
return GOBJ2RVAL(gdk_drawable_get_screen(_SELF(self)));
}
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
-# ifdef HAVE_RB_CAIRO_H
+#ifdef HAVE_RB_CAIRO_H
static VALUE
rg_create_cairo_context(VALUE self)
{
@@ -475,7 +464,6 @@ rg_create_cairo_context(VALUE self)
cairo_destroy (cr);
return rb_cr;
}
-# endif
#endif
void
@@ -494,28 +482,20 @@ Init_gtk_gdk_draw(VALUE mGdk)
RG_DEF_METHOD(draw_points, 2);
RG_DEF_METHOD(draw_line, 5);
RG_DEF_METHOD(draw_lines, 2);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(draw_pixbuf, 11);
-#endif
RG_DEF_METHOD(draw_segments, 2);
RG_DEF_METHOD(draw_rectangle, 6);
RG_DEF_METHOD(draw_arc, 8);
RG_DEF_METHOD(draw_polygon, 3);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(draw_trapezoids, 2);
-#endif
RG_DEF_METHOD(draw_glyphs, 5);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(draw_glyphs_transformed, 6);
-#endif
RG_DEF_METHOD(draw_layout_line, -1);
RG_DEF_METHOD(draw_layout, -1);
RG_DEF_METHOD(draw_drawable, 8);
RG_DEF_METHOD(draw_image, 8);
RG_DEF_METHOD(get_image, 4);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(copy_to_image, 7);
-#endif
#ifdef GDK_WINDOWING_X11
RG_DEF_METHOD(xid, 0);
@@ -523,15 +503,11 @@ Init_gtk_gdk_draw(VALUE mGdk)
#ifdef GDK_WINDOWING_WIN32
RG_DEF_METHOD(handle, 0);
#endif
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(display, 0);
RG_DEF_METHOD(screen, 0);
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
-# ifdef HAVE_RB_CAIRO_H
+#ifdef HAVE_RB_CAIRO_H
RG_DEF_METHOD(create_cairo_context, 0);
-# endif
#endif
#ifdef GDK_WINDOWING_X11
diff --git a/gtk2/ext/gtk2/rbgdkevent.c b/gtk2/ext/gtk2/rbgdkevent.c
index 6a5d068..6c2ff5b 100644
--- a/gtk2/ext/gtk2/rbgdkevent.c
+++ b/gtk2/ext/gtk2/rbgdkevent.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2002-2004 Ruby-GNOME2 Project Team
+ * Copyright (C) 2002-2013 Ruby-GNOME2 Project Team
* Copyright (C) 1998-2000 Yukihiro Matsumoto,
* Daisuke Kanda,
* Hiroshi Igarashi
@@ -24,31 +23,356 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,8,0)
-static VALUE gdkevents[36];
-#elif GTK_CHECK_VERSION(2,6,0)
-static VALUE gdkevents[35];
-#else
-static VALUE gdkevents[34];
-#endif
+static VALUE rb_cGdkEvent;
+static VALUE rb_cGdkEventAny;
+static VALUE rb_cGdkEventExpose;
+static VALUE rb_cGdkEventNoExpose;
+static VALUE rb_cGdkEventVisibility;
+static VALUE rb_cGdkEventMotion;
+static VALUE rb_cGdkEventButton;
+static VALUE rb_cGdkEventScroll;
+static VALUE rb_cGdkEventKey;
+static VALUE rb_cGdkEventCrossing;
+static VALUE rb_cGdkEventFocus;
+static VALUE rb_cGdkEventConfigure;
+static VALUE rb_cGdkEventProperty;
+static VALUE rb_cGdkEventSelection;
+static VALUE rb_cGdkEventOwnerChange;
+static VALUE rb_cGdkEventProximity;
+static VALUE rb_cGdkEventClient;
+static VALUE rb_cGdkEventDND;
+static VALUE rb_cGdkEventWindowState;
+static VALUE rb_cGdkEventSetting;
+static VALUE rb_cGdkEventGrabBroken;
+
+#define DEFINE_EVENT_TYPE(type_lower_case, type_upper_case) \
+static GType \
+rb_gdk_event_ ## type_lower_case ## _get_type(void) \
+{ \
+ static GType type = 0; \
+ if (type == 0) { \
+ type = g_boxed_type_register_static("GdkEvent" # type_upper_case, \
+ (GBoxedCopyFunc)gdk_event_copy, \
+ (GBoxedFreeFunc)gdk_event_free); \
+ } \
+ return type; \
+}
+
+DEFINE_EVENT_TYPE(any, Any)
+DEFINE_EVENT_TYPE(expose, Expose)
+DEFINE_EVENT_TYPE(no_expose, NoExpose)
+DEFINE_EVENT_TYPE(visibility, Visibility)
+DEFINE_EVENT_TYPE(motion, Motion)
+DEFINE_EVENT_TYPE(button, Button)
+DEFINE_EVENT_TYPE(scroll, Scroll)
+DEFINE_EVENT_TYPE(key, Key)
+DEFINE_EVENT_TYPE(crossing, Crossing)
+DEFINE_EVENT_TYPE(focus, Focus)
+DEFINE_EVENT_TYPE(configure, Configure)
+DEFINE_EVENT_TYPE(property, Property)
+DEFINE_EVENT_TYPE(selection, Selection)
+DEFINE_EVENT_TYPE(owner_change, OwnerChange)
+DEFINE_EVENT_TYPE(proximity, Proximity)
+DEFINE_EVENT_TYPE(client, Client)
+DEFINE_EVENT_TYPE(dnd, DND)
+DEFINE_EVENT_TYPE(window_state, WindowState)
+DEFINE_EVENT_TYPE(setting, Setting)
+DEFINE_EVENT_TYPE(grab_broken, GrabBroken)
+
+#define GDK_TYPE_EVENT_ANY (rb_gdk_event_any_get_type())
+#define GDK_TYPE_EVENT_EXPOSE (rb_gdk_event_expose_get_type())
+#define GDK_TYPE_EVENT_NO_EXPOSE (rb_gdk_event_no_expose_get_type())
+#define GDK_TYPE_EVENT_VISIBILITY (rb_gdk_event_visibility_get_type())
+#define GDK_TYPE_EVENT_MOTION (rb_gdk_event_motion_get_type())
+#define GDK_TYPE_EVENT_BUTTON (rb_gdk_event_button_get_type())
+#define GDK_TYPE_EVENT_SCROLL (rb_gdk_event_scroll_get_type())
+#define GDK_TYPE_EVENT_KEY (rb_gdk_event_key_get_type())
+#define GDK_TYPE_EVENT_CROSSING (rb_gdk_event_crossing_get_type())
+#define GDK_TYPE_EVENT_FOCUS (rb_gdk_event_focus_get_type())
+#define GDK_TYPE_EVENT_CONFIGURE (rb_gdk_event_configure_get_type())
+#define GDK_TYPE_EVENT_PROPERTY (rb_gdk_event_property_get_type())
+#define GDK_TYPE_EVENT_SELECTION (rb_gdk_event_selection_get_type())
+#define GDK_TYPE_EVENT_OWNER_CHANGE (rb_gdk_event_owner_change_get_type())
+#define GDK_TYPE_EVENT_PROXIMITY (rb_gdk_event_proximity_get_type())
+#define GDK_TYPE_EVENT_CLIENT (rb_gdk_event_client_get_type())
+#define GDK_TYPE_EVENT_DND (rb_gdk_event_dnd_get_type())
+#define GDK_TYPE_EVENT_WINDOW_STATE (rb_gdk_event_window_state_get_type())
+#define GDK_TYPE_EVENT_SETTING (rb_gdk_event_setting_get_type())
+#define GDK_TYPE_EVENT_GRAB_BROKEN (rb_gdk_event_grab_broken_get_type())
/***********************************************/
+static GType
+rb_gdk_event_type_to_gtype(GdkEventType event_type)
+{
+ GType gtype = GDK_TYPE_EVENT_ANY;
+
+ switch (event_type) {
+ case GDK_NOTHING:
+ case GDK_DELETE:
+ case GDK_DESTROY:
+ break;
+ case GDK_EXPOSE:
+ gtype = GDK_TYPE_EVENT_EXPOSE;
+ break;
+ case GDK_MOTION_NOTIFY:
+ gtype = GDK_TYPE_EVENT_MOTION;
+ break;
+ case GDK_BUTTON_PRESS:
+ case GDK_2BUTTON_PRESS:
+ case GDK_3BUTTON_PRESS:
+ case GDK_BUTTON_RELEASE:
+ gtype = GDK_TYPE_EVENT_BUTTON;
+ break;
+ case GDK_KEY_PRESS:
+ case GDK_KEY_RELEASE:
+ gtype = GDK_TYPE_EVENT_KEY;
+ break;
+ case GDK_ENTER_NOTIFY:
+ case GDK_LEAVE_NOTIFY:
+ gtype = GDK_TYPE_EVENT_CROSSING;
+ break;
+ case GDK_FOCUS_CHANGE:
+ gtype = GDK_TYPE_EVENT_FOCUS;
+ break;
+ case GDK_CONFIGURE:
+ gtype = GDK_TYPE_EVENT_CONFIGURE;
+ break;
+ case GDK_MAP:
+ case GDK_UNMAP:
+ break;
+ case GDK_PROPERTY_NOTIFY:
+ gtype = GDK_TYPE_EVENT_PROPERTY;
+ break;
+ case GDK_SELECTION_CLEAR:
+ case GDK_SELECTION_REQUEST:
+ case GDK_SELECTION_NOTIFY:
+ gtype = GDK_TYPE_EVENT_SELECTION;
+ break;
+ case GDK_PROXIMITY_IN:
+ case GDK_PROXIMITY_OUT:
+ gtype = GDK_TYPE_EVENT_PROXIMITY;
+ break;
+ case GDK_DRAG_ENTER:
+ case GDK_DRAG_LEAVE:
+ case GDK_DRAG_MOTION:
+ case GDK_DRAG_STATUS:
+ case GDK_DROP_START:
+ case GDK_DROP_FINISHED:
+ gtype = GDK_TYPE_EVENT_DND;
+ break;
+ case GDK_CLIENT_EVENT:
+ gtype = GDK_TYPE_EVENT_CLIENT;
+ break;
+ case GDK_VISIBILITY_NOTIFY:
+ gtype = GDK_TYPE_EVENT_VISIBILITY;
+ break;
+ case GDK_NO_EXPOSE:
+ gtype = GDK_TYPE_EVENT_NO_EXPOSE;
+ break;
+ case GDK_SCROLL:
+ gtype = GDK_TYPE_EVENT_SCROLL;
+ break;
+ case GDK_WINDOW_STATE:
+ gtype = GDK_TYPE_EVENT_WINDOW_STATE;
+ break;
+ case GDK_SETTING:
+ gtype = GDK_TYPE_EVENT_SETTING;
+ break;
+ case GDK_OWNER_CHANGE:
+ gtype = GDK_TYPE_EVENT_OWNER_CHANGE;
+ break;
+ case GDK_GRAB_BROKEN:
+ gtype = GDK_TYPE_EVENT_GRAB_BROKEN;
+ break;
+#if GTK_CHECK_VERSION(2, 14, 0)
+ case GDK_DAMAGE:
+ gtype = GDK_TYPE_EVENT_EXPOSE;
+ break;
+#endif
+#if GTK_CHECK_VERSION(2, 18, 0)
+ case GDK_EVENT_LAST:
+ break;
+#endif
+ default:
+ break;
+ }
+
+ return gtype;
+}
+
+static VALUE
+rb_gdk_event_type_to_class(GdkEventType event_type)
+{
+ VALUE klass = Qnil;
+
+ switch (event_type) {
+ case GDK_NOTHING:
+ case GDK_DELETE:
+ case GDK_DESTROY:
+ break;
+ case GDK_EXPOSE:
+ klass = rb_cGdkEventExpose;
+ break;
+ case GDK_MOTION_NOTIFY:
+ klass = rb_cGdkEventMotion;
+ break;
+ case GDK_BUTTON_PRESS:
+ case GDK_2BUTTON_PRESS:
+ case GDK_3BUTTON_PRESS:
+ case GDK_BUTTON_RELEASE:
+ klass = rb_cGdkEventButton;
+ break;
+ case GDK_KEY_PRESS:
+ case GDK_KEY_RELEASE:
+ klass = rb_cGdkEventKey;
+ break;
+ case GDK_ENTER_NOTIFY:
+ case GDK_LEAVE_NOTIFY:
+ klass = rb_cGdkEventCrossing;
+ break;
+ case GDK_FOCUS_CHANGE:
+ klass = rb_cGdkEventFocus;
+ break;
+ case GDK_CONFIGURE:
+ klass = rb_cGdkEventConfigure;
+ break;
+ case GDK_MAP:
+ case GDK_UNMAP:
+ break;
+ case GDK_PROPERTY_NOTIFY:
+ klass = rb_cGdkEventProperty;
+ break;
+ case GDK_SELECTION_CLEAR:
+ case GDK_SELECTION_REQUEST:
+ case GDK_SELECTION_NOTIFY:
+ klass = rb_cGdkEventSelection;
+ break;
+ case GDK_PROXIMITY_IN:
+ case GDK_PROXIMITY_OUT:
+ klass = rb_cGdkEventProximity;
+ break;
+ case GDK_DRAG_ENTER:
+ case GDK_DRAG_LEAVE:
+ case GDK_DRAG_MOTION:
+ case GDK_DRAG_STATUS:
+ case GDK_DROP_START:
+ case GDK_DROP_FINISHED:
+ klass = rb_cGdkEventDND;
+ break;
+ case GDK_CLIENT_EVENT:
+ klass = rb_cGdkEventClient;
+ break;
+ case GDK_VISIBILITY_NOTIFY:
+ klass = rb_cGdkEventVisibility;
+ break;
+ case GDK_NO_EXPOSE:
+ klass = rb_cGdkEventNoExpose;
+ break;
+ case GDK_SCROLL:
+ klass = rb_cGdkEventScroll;
+ break;
+ case GDK_WINDOW_STATE:
+ klass = rb_cGdkEventWindowState;
+ break;
+ case GDK_SETTING:
+ klass = rb_cGdkEventSetting;
+ break;
+ case GDK_OWNER_CHANGE:
+ klass = rb_cGdkEventOwnerChange;
+ break;
+ case GDK_GRAB_BROKEN:
+ klass = rb_cGdkEventGrabBroken;
+ break;
+#if GTK_CHECK_VERSION(2, 14, 0)
+ case GDK_DAMAGE:
+ klass = rb_cGdkEventExpose;
+ break;
+#endif
+#if GTK_CHECK_VERSION(2, 18, 0)
+ case GDK_EVENT_LAST:
+ break;
+#endif
+ default:
+ break;
+ }
+
+ if (NIL_P(klass)) {
+ klass = rb_cGdkEventAny;
+ }
+
+ return klass;
+}
+
+static GType
+rb_gdk_event_to_gtype(VALUE event)
+{
+ VALUE klass;
+ GType type = GDK_TYPE_EVENT;
+
+ klass = rb_obj_class(event);
+ if (klass == rb_cGdkEvent) {
+ type = GDK_TYPE_EVENT;
+ } else if (klass == rb_cGdkEventAny) {
+ type = GDK_TYPE_EVENT_ANY;
+ } else if (klass == rb_cGdkEventExpose) {
+ type = GDK_TYPE_EVENT_EXPOSE;
+ } else if (klass == rb_cGdkEventNoExpose) {
+ type = GDK_TYPE_EVENT_NO_EXPOSE;
+ } else if (klass == rb_cGdkEventVisibility) {
+ type = GDK_TYPE_EVENT_VISIBILITY;
+ } else if (klass == rb_cGdkEventMotion) {
+ type = GDK_TYPE_EVENT_MOTION;
+ } else if (klass == rb_cGdkEventButton) {
+ type = GDK_TYPE_EVENT_BUTTON;
+ } else if (klass == rb_cGdkEventScroll) {
+ type = GDK_TYPE_EVENT_SCROLL;
+ } else if (klass == rb_cGdkEventKey) {
+ type = GDK_TYPE_EVENT_KEY;
+ } else if (klass == rb_cGdkEventCrossing) {
+ type = GDK_TYPE_EVENT_CROSSING;
+ } else if (klass == rb_cGdkEventFocus) {
+ type = GDK_TYPE_EVENT_FOCUS;
+ } else if (klass == rb_cGdkEventConfigure) {
+ type = GDK_TYPE_EVENT_CONFIGURE;
+ } else if (klass == rb_cGdkEventProperty) {
+ type = GDK_TYPE_EVENT_PROPERTY;
+ } else if (klass == rb_cGdkEventSelection) {
+ type = GDK_TYPE_EVENT_SELECTION;
+ } else if (klass == rb_cGdkEventOwnerChange) {
+ type = GDK_TYPE_EVENT_OWNER_CHANGE;
+ } else if (klass == rb_cGdkEventProximity) {
+ type = GDK_TYPE_EVENT_PROXIMITY;
+ } else if (klass == rb_cGdkEventClient) {
+ type = GDK_TYPE_EVENT_CLIENT;
+ } else if (klass == rb_cGdkEventDND) {
+ type = GDK_TYPE_EVENT_DND;
+ } else if (klass == rb_cGdkEventWindowState) {
+ type = GDK_TYPE_EVENT_WINDOW_STATE;
+ } else if (klass == rb_cGdkEventSetting) {
+ type = GDK_TYPE_EVENT_SETTING;
+ } else if (klass == rb_cGdkEventGrabBroken) {
+ type = GDK_TYPE_EVENT_GRAB_BROKEN;
+ } else {
+ rb_raise(rb_eArgError, "Not event object: %s", RBG_INSPECT(event));
+ }
+
+ return type;
+}
+
VALUE
-make_gdkevent(GdkEvent *ev)
+make_gdkevent(GdkEvent *event)
{
- VALUE obj;
- if (ev == NULL) return Qnil;
+ if (!event)
+ return Qnil;
- obj = BOXED2RVAL(ev, GDK_TYPE_EVENT);
- RBASIC(obj)->klass = gdkevents[ev->type]; /* hack */
- return obj;
+ return BOXED2RVAL(event, rb_gdk_event_type_to_gtype(event->any.type));
}
GdkEvent*
get_gdkevent(VALUE event)
{
- return NIL_P(event) ? NULL : RVAL2BOXED(event, GDK_TYPE_EVENT);
+ return RVAL2BOXED(event, rb_gdk_event_to_gtype(event));
}
/***********************************************/
@@ -213,7 +537,6 @@ gdkevent ## type ## _set_axes(VALUE self, VALUE x, VALUE y)\
/* initialize */
-#if GTK_CHECK_VERSION(2,2,0)
#define GDKEVENT_INIT(type, default_gtype) \
static VALUE \
gdkevent ## type ## _initialize(int argc, VALUE *argv, VALUE self)\
@@ -231,15 +554,6 @@ gdkevent ## type ## _initialize(int argc, VALUE *argv, VALUE self)\
G_INITIALIZE(self, gdk_event_new(gtype));\
return Qnil;\
}
-#else
-#define GDKEVENT_INIT(type, default_gtype) \
-static VALUE \
-gdkevent ## type ## _initialize(int argc, VALUE *argv, VALUE self)\
-{\
- rb_raise(rb_eRuntimeError, "Gdk::Event.new is not supported in this environment.");\
- return Qnil;\
-}
-#endif
#define DEFINE_INIT(event, type) \
rb_define_method(event, "initialize", gdkevent ## type ## _initialize, -1);
@@ -272,18 +586,22 @@ gdkevent_s_get_graphics_expose(G_GNUC_UNUSED VALUE self, VALUE window)
}
/* GdkEvent */
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
gdkevent_initialize(VALUE self, VALUE type)
{
- GdkEventType gtype = RVAL2GENUM(type, GDK_TYPE_EVENT_TYPE);
- if (RBASIC(self)->klass != gdkevents[gtype])
- rb_raise(rb_eArgError, "Wrong event type for this class.");
+ GdkEventType event_type;
+ VALUE klass;
+
+ event_type = RVAL2GENUM(type, GDK_TYPE_EVENT_TYPE);
+ klass = rb_gdk_event_type_to_class(event_type);
+ if (!RVAL2CBOOL(rb_obj_is_kind_of(self, klass))) {
+ rb_raise(rb_eArgError, "Wrong event type for this class: %s: %s",
+ RBG_INSPECT(type), RBG_INSPECT(klass));
+ }
- G_INITIALIZE(self, gdk_event_new(gtype));
+ G_INITIALIZE(self, gdk_event_new(event_type));
return Qnil;
}
-#endif
static VALUE
gdkevent_type(VALUE self)
@@ -308,7 +626,7 @@ static VALUE
gdkevent_get_axis(VALUE self, VALUE axis_use)
{
gdouble value;
- gboolean ret = gdk_event_get_axis(get_gdkevent(self),
+ gboolean ret = gdk_event_get_axis(get_gdkevent(self),
RVAL2GENUM(axis_use, GDK_TYPE_AXIS_USE), &value);
return ret ? rb_float_new(value) : Qnil;
}
@@ -359,7 +677,7 @@ gdkevent_s_set_show_events(VALUE self, VALUE show_events)
gdk_set_show_events(RVAL2CBOOL(show_events));
return self;
}
-#if GTK_CHECK_VERSION(2,2,0)
+
static VALUE
gdkevent_set_screen(VALUE self, VALUE screen)
{
@@ -372,7 +690,6 @@ gdkevent_screen(VALUE self)
{
return GOBJ2RVAL(gdk_event_get_screen(get_gdkevent(self)));
}
-#endif
/*
type: String, Integer, Gdk::Color.
@@ -460,16 +777,16 @@ gdkeventexpose_area(VALUE self)
{
return BOXED2RVAL(&get_gdkevent(self)->expose.area, GDK_TYPE_RECTANGLE);
}
-
+
static VALUE
gdkeventexpose_set_area(VALUE self, VALUE rect)
{
GdkRectangle* grect = (GdkRectangle*)RVAL2BOXED(rect, GDK_TYPE_RECTANGLE);
- GdkEventExpose event = get_gdkevent(self)->expose;
- event.area.x = grect->x;
- event.area.y = grect->y;
- event.area.width = grect->width;
- event.area.height = grect->height;
+ GdkEventExpose *event = &(get_gdkevent(self)->expose);
+ event->area.x = grect->x;
+ event->area.y = grect->y;
+ event->area.width = grect->width;
+ event->area.height = grect->height;
return self;
}
@@ -556,7 +873,7 @@ gdkeventclient_data(VALUE self)
gushort format = get_gdkevent(self)->client.data_format;
if (format == 8) {
- ary = rb_ary_new2(20);
+ ary = rb_ary_new2(20);
for (i = 0; i < 20; i++)
rb_ary_push(ary, INT2FIX(get_gdkevent(self)->client.data.b[i]));
} else if (format == 16) {
@@ -582,15 +899,10 @@ gdkeventclient_send_client_message(int argc, VALUE *argv, VALUE self)
return CBOOL2RVAL(gdk_event_send_client_message(
get_gdkevent(self), RVAL2GDKNATIVEWINDOW(xid)));
} else {
-#if GTK_CHECK_VERSION(2,2,0)
return CBOOL2RVAL(gdk_event_send_client_message_for_display(
GDK_DISPLAY_OBJECT(RVAL2GOBJ(display)),
get_gdkevent(self),
RVAL2GDKNATIVEWINDOW(xid)));
-#else
- rb_warn("this arguments number has been supported since 2.2");
- return Qfalse;
-#endif
}
}
@@ -632,25 +944,21 @@ ATTR_STR(setting, name);
GDKEVENT_INIT(setting, GDK_SETTING);
/* GdkEventOwnerChange */
-#if GTK_CHECK_VERSION(2,6,0)
ATTR_GDKNATIVEWINDOW(owner_change, owner);
ATTR_ENUM(owner_change, reason, GDK_TYPE_OWNER_CHANGE);
ATTR_ATOM(owner_change, selection);
ATTR_UINT(owner_change, time);
ATTR_UINT(owner_change, selection_time);
GDKEVENT_INIT(owner_change, GDK_OWNER_CHANGE);
-#endif
/* GdkEventGrabBroken */
-#if GTK_CHECK_VERSION(2,8,0)
ATTR_BOOL(grab_broken, keyboard);
ATTR_BOOL(grab_broken, implicit);
ATTR_GOBJ(grab_broken, grab_window);
GDKEVENT_INIT(grab_broken, GDK_GRAB_BROKEN);
-#endif
/* MISC */
-static VALUE
+static VALUE
gdkevent_g2r(const GValue *values)
{
return make_gdkevent(g_value_get_boxed(&values[0]));
@@ -659,323 +967,322 @@ gdkevent_g2r(const GValue *values)
void
Init_gtk_gdk_event(VALUE mGdk)
{
- VALUE ev;
- VALUE gdkEvent;
- VALUE gdkEventAny;
-
- gdkEvent = G_DEF_CLASS(GDK_TYPE_EVENT, "Event", mGdk);
- gdkEventAny = rb_define_class_under(mGdk, "EventAny", gdkEvent);
-
- gdkevents[GDK_DELETE] = gdkEventAny;
- gdkevents[GDK_DESTROY] = gdkEventAny;
- gdkevents[GDK_EXPOSE] = rb_define_class_under(mGdk, "EventExpose", gdkEventAny);
- gdkevents[GDK_MOTION_NOTIFY] = rb_define_class_under(mGdk, "EventMotion", gdkEventAny);
- gdkevents[GDK_BUTTON_PRESS] = rb_define_class_under(mGdk, "EventButton", gdkEventAny);
- gdkevents[GDK_2BUTTON_PRESS] = gdkevents[GDK_BUTTON_PRESS];
- gdkevents[GDK_3BUTTON_PRESS] = gdkevents[GDK_BUTTON_PRESS];
- gdkevents[GDK_BUTTON_RELEASE]= gdkevents[GDK_BUTTON_PRESS];
- gdkevents[GDK_KEY_PRESS] = rb_define_class_under(mGdk, "EventKey", gdkEventAny);
- gdkevents[GDK_KEY_RELEASE] = gdkevents[GDK_KEY_PRESS];
- gdkevents[GDK_ENTER_NOTIFY] = rb_define_class_under(mGdk, "EventCrossing", gdkEventAny);
- gdkevents[GDK_LEAVE_NOTIFY] = gdkevents[GDK_ENTER_NOTIFY];
- gdkevents[GDK_FOCUS_CHANGE] = rb_define_class_under(mGdk, "EventFocus", gdkEventAny);
- gdkevents[GDK_CONFIGURE] = rb_define_class_under(mGdk, "EventConfigure", gdkEventAny);
- gdkevents[GDK_MAP] = gdkEventAny;
- gdkevents[GDK_UNMAP] = gdkEventAny;
- gdkevents[GDK_PROPERTY_NOTIFY]= rb_define_class_under(mGdk, "EventProperty", gdkEventAny);
- gdkevents[GDK_SELECTION_CLEAR]= rb_define_class_under(mGdk, "EventSelection", gdkEventAny);
- gdkevents[GDK_SELECTION_REQUEST]= gdkevents[GDK_SELECTION_CLEAR];
- gdkevents[GDK_SELECTION_NOTIFY] = gdkevents[GDK_SELECTION_CLEAR];
- gdkevents[GDK_PROXIMITY_IN] = rb_define_class_under(mGdk, "EventProximity", gdkEventAny);
- gdkevents[GDK_PROXIMITY_OUT] = gdkevents[GDK_PROXIMITY_IN];
- gdkevents[GDK_DRAG_ENTER] = rb_define_class_under(mGdk, "EventDND", gdkEventAny);
- gdkevents[GDK_DRAG_LEAVE] = gdkevents[GDK_DRAG_ENTER];
- gdkevents[GDK_DRAG_MOTION] = gdkevents[GDK_DRAG_ENTER];
- gdkevents[GDK_DRAG_STATUS] = gdkevents[GDK_DRAG_ENTER];
- gdkevents[GDK_DROP_START] = gdkevents[GDK_DRAG_ENTER];
- gdkevents[GDK_DROP_FINISHED] = gdkevents[GDK_DRAG_ENTER];
- gdkevents[GDK_CLIENT_EVENT] = rb_define_class_under(mGdk, "EventClient", gdkEventAny);
- gdkevents[GDK_VISIBILITY_NOTIFY] = rb_define_class_under(mGdk, "EventVisibility", gdkEventAny);
- gdkevents[GDK_NO_EXPOSE] = rb_define_class_under(mGdk, "EventNoExpose", gdkEventAny);
- gdkevents[GDK_SCROLL] = rb_define_class_under(mGdk, "EventScroll", gdkEventAny);
- gdkevents[GDK_WINDOW_STATE] = rb_define_class_under(mGdk, "EventWindowState", gdkEventAny);
- gdkevents[GDK_SETTING] = rb_define_class_under(mGdk, "EventSetting", gdkEventAny);
-#if GTK_CHECK_VERSION(2,6,0)
- gdkevents[GDK_OWNER_CHANGE] = rb_define_class_under(mGdk, "EventOwnerChange", gdkEventAny);
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
- gdkevents[GDK_GRAB_BROKEN] = rb_define_class_under(mGdk, "EventGrabBroken", gdkEventAny);
-#endif
-
/* GdkEvent */
-#if GTK_CHECK_VERSION(2,2,0)
- rb_define_method(gdkEvent, "initialize", gdkevent_initialize, 1);
-#endif
- rb_define_method(gdkEvent, "event_type", gdkevent_type, 0);
-
- rb_define_singleton_method(gdkEvent, "events_pending?", gdkevent_s_events_pending, 0);
- rb_define_singleton_method(gdkEvent, "peek", gdkevent_s_peek, 0);
- rb_define_singleton_method(gdkEvent, "get", gdkevent_s_get, 0);
- rb_define_method(gdkEvent, "put", gdkevent_put, 0);
- rb_define_method(gdkEvent, "get_axis", gdkevent_get_axis, 1);
- rb_define_method(gdkEvent, "coords", gdkevent_get_coords, 0);
- rb_define_method(gdkEvent, "root_coords", gdkevent_get_root_coords, 0);
-
- rb_define_singleton_method(gdkEvent, "handler_set", gdkevent_s_handler_set, 0);
- rb_define_singleton_method(gdkEvent, "show_events?", gdkevent_s_get_show_events, 0);
- rb_define_singleton_method(gdkEvent, "set_show_events", gdkevent_s_set_show_events, 1);
- rb_define_singleton_method(gdkEvent, "setting_get", gdkevent_s_setting_get, -1);
- rb_define_singleton_method(gdkEvent, "add_client_message_filter", gdkevent_s_add_client_message_filter, 1);
-#if GTK_CHECK_VERSION(2,2,0)
- rb_define_method(gdkEvent, "screen", gdkevent_screen, 0);
- rb_define_method(gdkEvent, "set_screen", gdkevent_set_screen, 1);
-#endif
- G_DEF_SETTERS(gdkEvent);
+ rb_cGdkEvent = G_DEF_CLASS(GDK_TYPE_EVENT, "Event", mGdk);
+ rb_define_method(rb_cGdkEvent, "initialize", gdkevent_initialize, 1);
+ rb_define_method(rb_cGdkEvent, "event_type", gdkevent_type, 0);
+
+ rb_define_singleton_method(rb_cGdkEvent, "events_pending?", gdkevent_s_events_pending, 0);
+ rb_define_singleton_method(rb_cGdkEvent, "peek", gdkevent_s_peek, 0);
+ rb_define_singleton_method(rb_cGdkEvent, "get", gdkevent_s_get, 0);
+ rb_define_method(rb_cGdkEvent, "put", gdkevent_put, 0);
+ rb_define_method(rb_cGdkEvent, "get_axis", gdkevent_get_axis, 1);
+ rb_define_method(rb_cGdkEvent, "coords", gdkevent_get_coords, 0);
+ rb_define_method(rb_cGdkEvent, "root_coords", gdkevent_get_root_coords, 0);
+
+ rb_define_singleton_method(rb_cGdkEvent, "handler_set", gdkevent_s_handler_set, 0);
+ rb_define_singleton_method(rb_cGdkEvent, "show_events?", gdkevent_s_get_show_events, 0);
+ rb_define_singleton_method(rb_cGdkEvent, "set_show_events", gdkevent_s_set_show_events, 1);
+ rb_define_singleton_method(rb_cGdkEvent, "setting_get", gdkevent_s_setting_get, -1);
+ rb_define_singleton_method(rb_cGdkEvent, "add_client_message_filter", gdkevent_s_add_client_message_filter, 1);
+ rb_define_method(rb_cGdkEvent, "screen", gdkevent_screen, 0);
+ rb_define_method(rb_cGdkEvent, "set_screen", gdkevent_set_screen, 1);
+ G_DEF_SETTERS(rb_cGdkEvent);
+
+ /*
+ * GdkEvent's Constants
+ */
+ rb_define_const(rb_cGdkEvent, "CURRENT_TIME", INT2FIX(GDK_CURRENT_TIME));
+ rb_define_const(rb_cGdkEvent, "PRIORITY_EVENTS", INT2FIX(GDK_PRIORITY_EVENTS));
+ rb_define_const(rb_cGdkEvent, "PRIORITY_REDRAW", INT2FIX(GDK_PRIORITY_REDRAW));
+
+ /* GdkEventType */
+ /* XXX */
+ G_RENAME_CONSTANT("2BUTTON_PRESS","BUTTON2_PRESS");
+ G_RENAME_CONSTANT("3BUTTON_PRESS","BUTTON3_PRESS");
+ G_DEF_CLASS(GDK_TYPE_EVENT_TYPE, "Type", rb_cGdkEvent);
+ G_RENAME_CONSTANT("2BUTTON_PRESS","BUTTON2_PRESS");
+ G_RENAME_CONSTANT("3BUTTON_PRESS","BUTTON3_PRESS");
+ G_DEF_CONSTANTS(rb_cGdkEvent, GDK_TYPE_EVENT_TYPE, "GDK_");
+
+ /* GdkEventMask */
+ G_DEF_CLASS(GDK_TYPE_EVENT_MASK, "Mask", rb_cGdkEvent);
+ G_DEF_CONSTANTS(rb_cGdkEvent, GDK_TYPE_EVENT_MASK, "GDK_");
/* GdkEventAny */
- DEFINE_ACCESSOR(gdkEventAny, any, window);
- rb_define_method(gdkEventAny, "send_event?", gdkeventany_send_event, 0);
- rb_define_method(gdkEventAny, "set_send_event", gdkeventany_set_send_event, 1);
- G_DEF_SETTERS(gdkEventAny);
+ rb_cGdkEventAny =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_ANY, "EventAny",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventAny, any, window);
+ rb_define_method(rb_cGdkEventAny, "send_event?", gdkeventany_send_event, 0);
+ rb_define_method(rb_cGdkEventAny, "set_send_event", gdkeventany_set_send_event, 1);
+ G_DEF_SETTERS(rb_cGdkEventAny);
- /* GdkEventKey */
- ev = gdkevents[GDK_KEY_PRESS];
- DEFINE_ACCESSOR(ev, key, time);
- DEFINE_ACCESSOR(ev, key, state);
- DEFINE_ACCESSOR(ev, key, keyval);
- DEFINE_ACCESSOR(ev, key, hardware_keycode);
- DEFINE_ACCESSOR(ev, key, group);
- G_DEF_SETTERS(ev);
+ /* GdkEventExpose */
+ rb_cGdkEventExpose =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_EXPOSE, "EventExpose",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventExpose, expose, area);
+ DEFINE_ACCESSOR(rb_cGdkEventExpose, expose, region);
+ DEFINE_ACCESSOR(rb_cGdkEventExpose, expose, count);
+ DEFINE_INIT(rb_cGdkEventExpose, expose);
+ rb_define_singleton_method(rb_cGdkEventExpose, "get_graphics_expose",
+ gdkevent_s_get_graphics_expose, 1);
+ G_DEF_SETTERS(rb_cGdkEventExpose);
- /* GdkEventButton */
- ev = gdkevents[GDK_BUTTON_PRESS];
- DEFINE_ACCESSOR(ev, button, time);
- DEFINE_ACCESSOR(ev, button, x);
- DEFINE_ACCESSOR(ev, button, y);
- rb_define_method(ev, "axes", gdkeventbutton_axes, 0);
- rb_define_method(ev, "set_axes", gdkeventbutton_set_axes, 2);
- DEFINE_ACCESSOR(ev, button, state);
- DEFINE_ACCESSOR(ev, button, button);
- DEFINE_ACCESSOR(ev, button, device);
- DEFINE_ACCESSOR(ev, button, x_root);
- DEFINE_ACCESSOR(ev, button, y_root);
- G_DEF_SETTERS(ev);
+ /* GdkEventNoExpose */
+ rb_cGdkEventNoExpose =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_NO_EXPOSE, "EventNoExpose",
+ mGdk, rb_cGdkEvent);
+ DEFINE_INIT(rb_cGdkEventNoExpose, noexpose);
- /* GdkEventScroll */
- ev = gdkevents[GDK_SCROLL];
- DEFINE_ACCESSOR(ev, scroll, time);
- DEFINE_ACCESSOR(ev, scroll, x);
- DEFINE_ACCESSOR(ev, scroll, y);
- DEFINE_ACCESSOR(ev, scroll, state);
- DEFINE_ACCESSOR(ev, scroll, direction);
- DEFINE_ACCESSOR(ev, scroll, device);
- DEFINE_ACCESSOR(ev, scroll, x_root);
- DEFINE_ACCESSOR(ev, scroll, y_root);
- DEFINE_INIT(ev, scroll);
- G_DEF_SETTERS(ev);
+ /* GdkEventVisibility */
+ rb_cGdkEventVisibility =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_VISIBILITY, "EventVisibility",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventVisibility, visibility, state);
+ DEFINE_INIT(rb_cGdkEventVisibility, visibility);
+ G_DEF_SETTERS(rb_cGdkEventVisibility);
+
+ /* GdkVisibilityState */
+ G_DEF_CLASS(GDK_TYPE_VISIBILITY_STATE, "State", rb_cGdkEventVisibility);
+ G_DEF_CONSTANTS(rb_cGdkEventVisibility,
+ GDK_TYPE_VISIBILITY_STATE, "GDK_VISIBILITY_");
- /* GdkScrollDirection */
- G_DEF_CLASS(GDK_TYPE_SCROLL_DIRECTION, "Direction", ev);
- G_DEF_CONSTANTS(ev, GDK_TYPE_SCROLL_DIRECTION, "GDK_SCROLL_");
/* GdkEventMotion */
- ev = gdkevents[GDK_MOTION_NOTIFY];
- DEFINE_ACCESSOR(ev, motion, time);
- DEFINE_ACCESSOR(ev, motion, x);
- DEFINE_ACCESSOR(ev, motion, y);
- rb_define_method(ev, "axes", gdkeventmotion_axes, 0);
- rb_define_method(ev, "set_axes", gdkeventmotion_set_axes, 1);
- DEFINE_ACCESSOR(ev, motion, state);
- rb_define_method(ev, "hint?", gdkeventmotion_is_hint, 0);
- rb_define_method(ev, "set_hint", gdkeventmotion_set_is_hint, 1);
- DEFINE_ACCESSOR(ev, motion, device);
- DEFINE_ACCESSOR(ev, motion, x_root);
- DEFINE_ACCESSOR(ev, motion, y_root);
- DEFINE_INIT(ev, motion);
+ rb_cGdkEventMotion =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_MOTION, "EventMotion",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, time);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, x);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, y);
+ rb_define_method(rb_cGdkEventMotion, "axes", gdkeventmotion_axes, 0);
+ rb_define_method(rb_cGdkEventMotion, "set_axes", gdkeventmotion_set_axes, 1);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, state);
+ rb_define_method(rb_cGdkEventMotion, "hint?", gdkeventmotion_is_hint, 0);
+ rb_define_method(rb_cGdkEventMotion, "set_hint", gdkeventmotion_set_is_hint, 1);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, device);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, x_root);
+ DEFINE_ACCESSOR(rb_cGdkEventMotion, motion, y_root);
+ DEFINE_INIT(rb_cGdkEventMotion, motion);
#if GTK_CHECK_VERSION(2, 12, 0)
- rb_define_method(ev, "request", gdkeventmotion_request_motions, 0);
+ rb_define_method(rb_cGdkEventMotion, "request", gdkeventmotion_request_motions, 0);
#endif
- G_DEF_SETTERS(ev);
+ G_DEF_SETTERS(rb_cGdkEventMotion);
- /* GdkEventExpose */
- ev = gdkevents[GDK_EXPOSE];
- DEFINE_ACCESSOR(ev, expose, area);
- DEFINE_ACCESSOR(ev, expose, region);
- DEFINE_ACCESSOR(ev, expose, count);
- DEFINE_INIT(ev, expose);
- rb_define_singleton_method(ev, "get_graphics_expose",
- gdkevent_s_get_graphics_expose, 1);
- G_DEF_SETTERS(ev);
+ /* GdkEventButton */
+ rb_cGdkEventButton =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_BUTTON, "EventButton",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, time);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, x);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, y);
+ rb_define_method(rb_cGdkEventButton, "axes", gdkeventbutton_axes, 0);
+ rb_define_method(rb_cGdkEventButton, "set_axes", gdkeventbutton_set_axes, 2);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, state);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, button);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, device);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, x_root);
+ DEFINE_ACCESSOR(rb_cGdkEventButton, button, y_root);
+ G_DEF_SETTERS(rb_cGdkEventButton);
- /* GdkEventVisibility */
- ev = gdkevents[GDK_VISIBILITY_NOTIFY];
- DEFINE_ACCESSOR(ev, visibility, state);
- DEFINE_INIT(ev, visibility);
- G_DEF_SETTERS(ev);
+ /* GdkEventScroll */
+ rb_cGdkEventScroll =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_SCROLL, "EventScroll",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, time);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, x);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, y);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, state);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, direction);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, device);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, x_root);
+ DEFINE_ACCESSOR(rb_cGdkEventScroll, scroll, y_root);
+ DEFINE_INIT(rb_cGdkEventScroll, scroll);
+ G_DEF_SETTERS(rb_cGdkEventScroll);
- /* GdkVisibilityState */
- G_DEF_CLASS(GDK_TYPE_VISIBILITY_STATE, "State", ev);
- G_DEF_CONSTANTS(ev, GDK_TYPE_VISIBILITY_STATE, "GDK_VISIBILITY_");
+ /* GdkScrollDirection */
+ G_DEF_CLASS(GDK_TYPE_SCROLL_DIRECTION, "Direction", rb_cGdkEventScroll);
+ G_DEF_CONSTANTS(rb_cGdkEventScroll,
+ GDK_TYPE_SCROLL_DIRECTION, "GDK_SCROLL_");
+
+ /* GdkEventKey */
+ rb_cGdkEventKey =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_KEY, "EventKey",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventKey, key, time);
+ DEFINE_ACCESSOR(rb_cGdkEventKey, key, state);
+ DEFINE_ACCESSOR(rb_cGdkEventKey, key, keyval);
+ DEFINE_ACCESSOR(rb_cGdkEventKey, key, hardware_keycode);
+ DEFINE_ACCESSOR(rb_cGdkEventKey, key, group);
+ G_DEF_SETTERS(rb_cGdkEventKey);
/* GdkEventCrossing */
- ev = gdkevents[GDK_ENTER_NOTIFY];
- DEFINE_ACCESSOR(ev, crossing, subwindow);
- DEFINE_ACCESSOR(ev, crossing, time);
- DEFINE_ACCESSOR(ev, crossing, x);
- DEFINE_ACCESSOR(ev, crossing, y);
- DEFINE_ACCESSOR(ev, crossing, x_root);
- DEFINE_ACCESSOR(ev, crossing, y_root);
- DEFINE_ACCESSOR(ev, crossing, mode);
- DEFINE_ACCESSOR(ev, crossing, detail);
- rb_define_method(ev, "focus?", gdkeventcrossing_focus, 0);
- rb_define_method(ev, "set_focus", gdkeventcrossing_set_focus, 1);
- DEFINE_ACCESSOR(ev, crossing, state);
- G_DEF_SETTERS(ev);
+ rb_cGdkEventCrossing =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_CROSSING, "EventCrossing",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, subwindow);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, time);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, x);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, y);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, x_root);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, y_root);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, mode);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, detail);
+ rb_define_method(rb_cGdkEventCrossing, "focus?", gdkeventcrossing_focus, 0);
+ rb_define_method(rb_cGdkEventCrossing, "set_focus", gdkeventcrossing_set_focus, 1);
+ DEFINE_ACCESSOR(rb_cGdkEventCrossing, crossing, state);
+ G_DEF_SETTERS(rb_cGdkEventCrossing);
/* GdkCrossingMode */
- G_DEF_CLASS(GDK_TYPE_CROSSING_MODE, "Mode", ev);
- G_DEF_CONSTANTS(ev, GDK_TYPE_CROSSING_MODE, "GDK_CROSSING_");
+ G_DEF_CLASS(GDK_TYPE_CROSSING_MODE, "Mode", rb_cGdkEventScroll);
+ G_DEF_CONSTANTS(rb_cGdkEventCrossing,
+ GDK_TYPE_CROSSING_MODE, "GDK_CROSSING_");
+
/* GdkNotifyType */
- G_DEF_CLASS(GDK_TYPE_NOTIFY_TYPE, "NotifyType", ev);
- G_DEF_CONSTANTS(ev, GDK_TYPE_NOTIFY_TYPE, "GDK_");
+ G_DEF_CLASS(GDK_TYPE_NOTIFY_TYPE, "NotifyType", rb_cGdkEventScroll);
+ G_DEF_CONSTANTS(rb_cGdkEventScroll, GDK_TYPE_NOTIFY_TYPE, "GDK_");
/* GdkEventFocus */
- ev = gdkevents[GDK_FOCUS_CHANGE];
- rb_define_method(ev, "in?", gdkeventfocus_change_in, 0);
- rb_define_method(ev, "set_in", gdkeventfocus_change_set_in, 1);
- DEFINE_INIT(ev, focus_change);
- G_DEF_SETTERS(ev);
+ rb_cGdkEventFocus =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_FOCUS, "EventFocus",
+ mGdk, rb_cGdkEvent);
+ rb_define_method(rb_cGdkEventFocus, "in?", gdkeventfocus_change_in, 0);
+ rb_define_method(rb_cGdkEventFocus, "set_in",
+ gdkeventfocus_change_set_in, 1);
+ DEFINE_INIT(rb_cGdkEventFocus, focus_change);
+ G_DEF_SETTERS(rb_cGdkEventFocus);
/* GdkEventConfigure */
- ev = gdkevents[GDK_CONFIGURE];
- DEFINE_ACCESSOR(ev, configure, x);
- DEFINE_ACCESSOR(ev, configure, y);
- DEFINE_ACCESSOR(ev, configure, width);
- DEFINE_ACCESSOR(ev, configure, height);
- DEFINE_INIT(ev, configure);
- G_DEF_SETTERS(ev);
+ rb_cGdkEventConfigure =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_CONFIGURE, "EventConfigure",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventConfigure, configure, x);
+ DEFINE_ACCESSOR(rb_cGdkEventConfigure, configure, y);
+ DEFINE_ACCESSOR(rb_cGdkEventConfigure, configure, width);
+ DEFINE_ACCESSOR(rb_cGdkEventConfigure, configure, height);
+ DEFINE_INIT(rb_cGdkEventConfigure, configure);
+ G_DEF_SETTERS(rb_cGdkEventConfigure);
/* GdkEventProperty */
- ev = gdkevents[GDK_PROPERTY_NOTIFY];
- DEFINE_ACCESSOR(ev, property, atom);
- DEFINE_ACCESSOR(ev, property, time);
- DEFINE_ACCESSOR(ev, property, state);
- DEFINE_INIT(ev, property);
- G_DEF_SETTERS(ev);
-
- /* GdkPropertyState */
- G_DEF_CLASS(GDK_TYPE_PROPERTY_STATE, "State", ev);
- G_DEF_CONSTANTS(ev, GDK_TYPE_PROPERTY_STATE, "GDK_");
+ rb_cGdkEventProperty =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_PROPERTY, "EventProperty",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventProperty, property, atom);
+ DEFINE_ACCESSOR(rb_cGdkEventProperty, property, time);
+ DEFINE_ACCESSOR(rb_cGdkEventProperty, property, state);
+ DEFINE_INIT(rb_cGdkEventProperty, property);
+ G_DEF_SETTERS(rb_cGdkEventProperty);
+
+ /* GdkPropertyState */
+ G_DEF_CLASS(GDK_TYPE_PROPERTY_STATE, "State", rb_cGdkEventProperty);
+ G_DEF_CONSTANTS(rb_cGdkEventProperty, GDK_TYPE_PROPERTY_STATE, "GDK_");
/* GdkEventSelection */
- ev = gdkevents[GDK_SELECTION_CLEAR];
- DEFINE_ACCESSOR(ev, selection, selection);
- DEFINE_ACCESSOR(ev, selection, target);
- DEFINE_ACCESSOR(ev, selection, property);
- DEFINE_ACCESSOR(ev, selection, requestor);
- DEFINE_ACCESSOR(ev, selection, time);
- G_DEF_SETTERS(ev);
+ rb_cGdkEventSelection =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_SELECTION, "EventSelection",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, selection);
+ DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, target);
+ DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, property);
+ DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, requestor);
+ DEFINE_ACCESSOR(rb_cGdkEventSelection, selection, time);
+ G_DEF_SETTERS(rb_cGdkEventSelection);
- /* GdkEventDND */
- ev = gdkevents[GDK_DRAG_ENTER];
- DEFINE_ACCESSOR(ev, dnd, context);
- DEFINE_ACCESSOR(ev, dnd, time);
- DEFINE_ACCESSOR(ev, dnd, x_root);
- DEFINE_ACCESSOR(ev, dnd, y_root);
- G_DEF_SETTERS(ev);
+ /* GdkEventOwnerChange */
+ rb_cGdkEventOwnerChange =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_OWNER_CHANGE, "EventOwnerChange",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, owner);
+ DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, reason);
+ DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, selection);
+ DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, time);
+ DEFINE_ACCESSOR(rb_cGdkEventOwnerChange, owner_change, selection_time);
+ G_DEF_SETTERS(rb_cGdkEventOwnerChange);
+ DEFINE_INIT(rb_cGdkEventOwnerChange, owner_change);
+
+ /* GdkOwnerChange */
+ G_DEF_CLASS(GDK_TYPE_OWNER_CHANGE, "OwnerChange", rb_cGdkEventScroll);
+ G_DEF_CONSTANTS(rb_cGdkEventScroll,
+ GDK_TYPE_OWNER_CHANGE, "GDK_OWNER_CHANGE_");
/* GdkEventProximity */
- ev = gdkevents[GDK_PROXIMITY_IN];
- DEFINE_ACCESSOR(ev, proximity, time);
- DEFINE_ACCESSOR(ev, proximity, device);
- G_DEF_SETTERS(ev);
+ rb_cGdkEventProximity =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_PROXIMITY, "EventProximity",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventProximity, proximity, time);
+ DEFINE_ACCESSOR(rb_cGdkEventProximity, proximity, device);
+ G_DEF_SETTERS(rb_cGdkEventProximity);
/* GdkEventClient */
- ev = gdkevents[GDK_CLIENT_EVENT];
- DEFINE_ACCESSOR(ev, client, message_type);
- rb_define_method(ev, "data_format", gdkeventclient_data_format, 0);
- rb_define_method(ev, "data", gdkeventclient_data, 0);
- rb_define_method(ev, "send_client_message",
+ rb_cGdkEventClient =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_CLIENT, "EventClient",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventClient, client, message_type);
+ rb_define_method(rb_cGdkEventClient,
+ "data_format", gdkeventclient_data_format, 0);
+ rb_define_method(rb_cGdkEventClient, "data", gdkeventclient_data, 0);
+ rb_define_method(rb_cGdkEventClient, "send_client_message",
gdkeventclient_send_client_message, -1);
- rb_define_method(ev, "send_clientmessage_toall",
+ rb_define_method(rb_cGdkEventClient, "send_clientmessage_toall",
gdkeventclient_send_clientmessage_toall, 0);
- DEFINE_INIT(ev, client);
- G_DEF_SETTERS(ev);
+ DEFINE_INIT(rb_cGdkEventClient, client);
+ G_DEF_SETTERS(rb_cGdkEventClient);
- /* GdkEventNoExpose */
- ev = gdkevents[GDK_NO_EXPOSE];
- DEFINE_INIT(ev, noexpose);
+ /* GdkEventDND */
+ rb_cGdkEventDND =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_DND, "EventDND",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventDND, dnd, context);
+ DEFINE_ACCESSOR(rb_cGdkEventDND, dnd, time);
+ DEFINE_ACCESSOR(rb_cGdkEventDND, dnd, x_root);
+ DEFINE_ACCESSOR(rb_cGdkEventDND, dnd, y_root);
+ G_DEF_SETTERS(rb_cGdkEventDND);
/* GdkEventWindowState */
- ev = gdkevents[GDK_WINDOW_STATE];
- DEFINE_ACCESSOR(ev, window_state, changed_mask);
- DEFINE_ACCESSOR(ev, window_state, new_window_state);
- DEFINE_INIT(ev, window_state);
- G_DEF_SETTERS(ev);
+ rb_cGdkEventWindowState =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_WINDOW_STATE, "EventWindowState",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventWindowState, window_state, changed_mask);
+ DEFINE_ACCESSOR(rb_cGdkEventWindowState, window_state, new_window_state);
+ DEFINE_INIT(rb_cGdkEventWindowState, window_state);
+ G_DEF_SETTERS(rb_cGdkEventWindowState);
/* GdkWindowState */
- G_DEF_CLASS(GDK_TYPE_WINDOW_STATE, "WindowState", ev);
- G_DEF_CONSTANTS(ev, GDK_TYPE_WINDOW_STATE, "GDK_WINDOW_STATE_");
+ G_DEF_CLASS(GDK_TYPE_WINDOW_STATE, "WindowState", rb_cGdkEventScroll);
+ G_DEF_CONSTANTS(rb_cGdkEventWindowState,
+ GDK_TYPE_WINDOW_STATE, "GDK_WINDOW_STATE_");
/* GdkEventSetting */
- ev = gdkevents[GDK_SETTING];
- DEFINE_ACCESSOR(ev, setting, action);
- DEFINE_ACCESSOR(ev, setting, name);
- DEFINE_INIT(ev, setting);
- G_DEF_SETTERS(ev);
+ rb_cGdkEventSetting =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_SETTING, "EventSetting",
+ mGdk, rb_cGdkEvent);
+ DEFINE_ACCESSOR(rb_cGdkEventSetting, setting, action);
+ DEFINE_ACCESSOR(rb_cGdkEventSetting, setting, name);
+ DEFINE_INIT(rb_cGdkEventSetting, setting);
+ G_DEF_SETTERS(rb_cGdkEventSetting);
/* GdkSettingAction */
- G_DEF_CLASS(GDK_TYPE_SETTING_ACTION, "Action", ev);
- G_DEF_CONSTANTS(ev, GDK_TYPE_SETTING_ACTION, "GDK_SETTING_");
+ G_DEF_CLASS(GDK_TYPE_SETTING_ACTION, "Action", rb_cGdkEventScroll);
+ G_DEF_CONSTANTS(rb_cGdkEventSetting,
+ GDK_TYPE_SETTING_ACTION, "GDK_SETTING_");
-#if GTK_CHECK_VERSION(2,6,0)
- /* GdkEventOwnerChange */
- ev = gdkevents[GDK_OWNER_CHANGE];
- DEFINE_ACCESSOR(ev, owner_change, owner);
- DEFINE_ACCESSOR(ev, owner_change, reason);
- DEFINE_ACCESSOR(ev, owner_change, selection);
- DEFINE_ACCESSOR(ev, owner_change, time);
- DEFINE_ACCESSOR(ev, owner_change, selection_time);
- G_DEF_SETTERS(ev);
- DEFINE_INIT(ev, owner_change);
-
- /* GdkOwnerChange */
- G_DEF_CLASS(GDK_TYPE_OWNER_CHANGE, "OwnerChange", ev);
- G_DEF_CONSTANTS(ev, GDK_TYPE_OWNER_CHANGE, "GDK_OWNER_CHANGE_");
-#endif
-
-#if GTK_CHECK_VERSION(2,8,0)
/* GdkEventGrabBroken */
- ev = gdkevents[GDK_GRAB_BROKEN];
- rb_define_method(ev, "keyboard?", gdkeventgrab_broken_keyboard, 0);
- rb_define_method(ev, "set_keyboard", gdkeventgrab_broken_set_keyboard, 1);
- rb_define_method(ev, "implicit?", gdkeventgrab_broken_implicit, 0);
- rb_define_method(ev, "set_implicit", gdkeventgrab_broken_set_implicit, 1);
- DEFINE_ACCESSOR(ev, grab_broken, grab_window);
- DEFINE_INIT(ev, grab_broken);
- G_DEF_SETTERS(ev);
-#endif
+ rb_cGdkEventGrabBroken =
+ G_DEF_CLASS_WITH_PARENT(GDK_TYPE_EVENT_GRAB_BROKEN, "EventGrabBroken",
+ mGdk, rb_cGdkEvent);
+ rb_define_method(rb_cGdkEventGrabBroken,
+ "keyboard?", gdkeventgrab_broken_keyboard, 0);
+ rb_define_method(rb_cGdkEventGrabBroken,
+ "set_keyboard", gdkeventgrab_broken_set_keyboard, 1);
+ rb_define_method(rb_cGdkEventGrabBroken,
+ "implicit?", gdkeventgrab_broken_implicit, 0);
+ rb_define_method(rb_cGdkEventGrabBroken,
+ "set_implicit", gdkeventgrab_broken_set_implicit, 1);
+ DEFINE_ACCESSOR(rb_cGdkEventGrabBroken, grab_broken, grab_window);
+ DEFINE_INIT(rb_cGdkEventGrabBroken, grab_broken);
+ G_DEF_SETTERS(rb_cGdkEventGrabBroken);
rbgobj_register_g2r_func(GDK_TYPE_EVENT, &gdkevent_g2r);
-
- /*
- * GdkEvent's Constants
- */
- rb_define_const(gdkEvent, "CURRENT_TIME", INT2FIX(GDK_CURRENT_TIME));
- rb_define_const(gdkEvent, "PRIORITY_EVENTS", INT2FIX(GDK_PRIORITY_EVENTS));
- rb_define_const(gdkEvent, "PRIORITY_REDRAW", INT2FIX(GDK_PRIORITY_REDRAW));
-
- /* GdkEventType */
- /* XXX */
- G_RENAME_CONSTANT("2BUTTON_PRESS","BUTTON2_PRESS");
- G_RENAME_CONSTANT("3BUTTON_PRESS","BUTTON3_PRESS");
- G_DEF_CLASS(GDK_TYPE_EVENT_TYPE, "Type", gdkEvent);
- G_RENAME_CONSTANT("2BUTTON_PRESS","BUTTON2_PRESS");
- G_RENAME_CONSTANT("3BUTTON_PRESS","BUTTON3_PRESS");
- G_DEF_CONSTANTS(gdkEvent, GDK_TYPE_EVENT_TYPE, "GDK_");
-
- /* GdkEventMask */
- G_DEF_CLASS(GDK_TYPE_EVENT_MASK, "Mask", gdkEvent);
- G_DEF_CONSTANTS(gdkEvent, GDK_TYPE_EVENT_MASK, "GDK_");
-
}
diff --git a/gtk2/ext/gtk2/rbgdkgc.c b/gtk2/ext/gtk2/rbgdkgc.c
index 85f0181..16ed513 100644
--- a/gtk2/ext/gtk2/rbgdkgc.c
+++ b/gtk2/ext/gtk2/rbgdkgc.c
@@ -329,13 +329,11 @@ rg_offset(VALUE self, VALUE x, VALUE y)
return self;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_screen(VALUE self)
{
return GOBJ2RVAL(gdk_gc_get_screen(_SELF(self)));
}
-#endif
void
Init_gtk_gdk_gc(VALUE mGdk)
@@ -381,10 +379,7 @@ Init_gtk_gdk_gc(VALUE mGdk)
RG_DEF_METHOD(colormap, 0);
RG_DEF_METHOD(offset, 2);
-
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(screen, 0);
-#endif
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
diff --git a/gtk2/ext/gtk2/rbgdkkeymap.c b/gtk2/ext/gtk2/rbgdkkeymap.c
index 440928b..d26afd3 100644
--- a/gtk2/ext/gtk2/rbgdkkeymap.c
+++ b/gtk2/ext/gtk2/rbgdkkeymap.c
@@ -29,13 +29,13 @@ rg_s_default(G_GNUC_UNUSED VALUE self)
{
return GOBJ2RVAL(gdk_keymap_get_default());
}
-#if GTK_CHECK_VERSION(2,2,0)
+
static VALUE
rg_s_for_display(G_GNUC_UNUSED VALUE self, VALUE display)
{
return GOBJ2RVAL(gdk_keymap_get_for_display(GDK_DISPLAY_OBJECT(RVAL2GOBJ(display))));
}
-#endif
+
static VALUE
rg_lookup_key(VALUE self, VALUE keycode, VALUE group, VALUE level)
{
@@ -138,9 +138,7 @@ Init_gtk_gdk_keymap(VALUE mGdk)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_KEYMAP, "Keymap", mGdk);
RG_DEF_SMETHOD(default, 0);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_SMETHOD(for_display, 0);
-#endif
RG_DEF_METHOD(lookup_key, 3);
RG_DEF_METHOD(translate_keyboard_state, 3);
RG_DEF_METHOD(get_entries_for_keyval, 1);
diff --git a/gtk2/ext/gtk2/rbgdkpango.c b/gtk2/ext/gtk2/rbgdkpango.c
index 2967189..7e8b4af 100644
--- a/gtk2/ext/gtk2/rbgdkpango.c
+++ b/gtk2/ext/gtk2/rbgdkpango.c
@@ -32,12 +32,7 @@ rg_m_context(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
if (NIL_P(screen)){
ret = GOBJ2RVAL(gdk_pango_context_get());
} else {
-#if GTK_CHECK_VERSION(2,2,0)
ret = GOBJ2RVAL(gdk_pango_context_get_for_screen(GDK_SCREEN(RVAL2GOBJ(screen))));
-#else
- rb_warn("Gdk::Pango.context_get: Not supported arguments in GTK+-2.0.x.");
- ret = GOBJ2RVAL(gdk_pango_context_get());
-#endif
}
return ret;
}
diff --git a/gtk2/ext/gtk2/rbgdkpangorenderer.c b/gtk2/ext/gtk2/rbgdkpangorenderer.c
index 6dc90e8..fef3196 100644
--- a/gtk2/ext/gtk2/rbgdkpangorenderer.c
+++ b/gtk2/ext/gtk2/rbgdkpangorenderer.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,6,0)
-
#define RG_TARGET_NAMESPACE cPangoRenderer
#define _SELF(s) (GDK_PANGO_RENDERER(RVAL2GOBJ(s)))
@@ -127,12 +125,9 @@ rg_set_override_color(G_GNUC_UNUSED VALUE self,
}
#endif
-#endif
-
void
Init_gtk_gdk_pangorenderer(VALUE mGdk)
{
-#if GTK_CHECK_VERSION(2,6,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_PANGO_RENDERER, "PangoRenderer", mGdk);
RG_DEF_METHOD(initialize, -1);
@@ -145,5 +140,4 @@ Init_gtk_gdk_pangorenderer(VALUE mGdk)
RG_DEF_SMETHOD(default, 0);
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgdkpixbuf.c b/gtk2/ext/gtk2/rbgdkpixbuf.c
index 92fb711..214710c 100644
--- a/gtk2/ext/gtk2/rbgdkpixbuf.c
+++ b/gtk2/ext/gtk2/rbgdkpixbuf.c
@@ -40,10 +40,7 @@ rg_render_to_drawable(int argc, VALUE *argv, VALUE self)
{
VALUE gc, src_x, src_y, dest_x, dest_y, width, height,
dither, x_dither, y_dither;
-
-#if GTK_CHECK_VERSION(2,2,0)
rb_warn("Gdk::Pixbuf#render_to_drawable is obsolete. Use Gdk::Drawable#draw_pixbuf instead.");
-#endif
rb_scan_args(argc, argv, "73", &gc, &src_x, &src_y, &dest_x, &dest_y,
&width, &height, &dither, &x_dither, &y_dither);
diff --git a/gtk2/ext/gtk2/rbgdkpixmap.c b/gtk2/ext/gtk2/rbgdkpixmap.c
index 1adaa79..3f86975 100644
--- a/gtk2/ext/gtk2/rbgdkpixmap.c
+++ b/gtk2/ext/gtk2/rbgdkpixmap.c
@@ -166,25 +166,15 @@ rg_s_foreign_new(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
win = gdk_pixmap_foreign_new(RVAL2GDKNATIVEWINDOW(arg[0]));
break;
case 2:
-#if GTK_CHECK_VERSION(2,2,0)
- win = gdk_pixmap_foreign_new_for_display(GDK_DISPLAY_OBJECT(RVAL2GOBJ(arg[0])),
- RVAL2GDKNATIVEWINDOW(arg[1]));
-#else
- win = gdk_pixmap_foreign_new(RVAL2GDKNATIVEWINDOW(arg[1]));
- rb_warn("Not supported. Use GTK+-2.2.0 or later.");
-#endif
+ win = gdk_pixmap_foreign_new_for_display(GDK_DISPLAY_OBJECT(RVAL2GOBJ(arg[0])),
+ RVAL2GDKNATIVEWINDOW(arg[1]));
break;
case 5:
-#if GTK_CHECK_VERSION(2,10,0)
win = gdk_pixmap_foreign_new_for_screen(GDK_SCREEN(RVAL2GOBJ(arg[0])),
RVAL2GDKNATIVEWINDOW(arg[1]), /* anid */
NUM2INT(arg[2]), /* width */
NUM2INT(arg[3]), /* height */
NUM2INT(arg[4])); /* depth */
-#else
- win = gdk_pixmap_foreign_new(NUM2UINT(arg[1]));
- rb_warn("Not supported. GTK+-2.10.0 or later.");
-#endif
break;
default:
break;
@@ -206,12 +196,7 @@ rg_s_lookup(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
win = gdk_pixmap_lookup(RVAL2GDKNATIVEWINDOW(arg[0]));
break;
case 2:
-#if GTK_CHECK_VERSION(2,2,0)
- win = gdk_pixmap_lookup_for_display(RVAL2GOBJ(arg[0]), RVAL2GDKNATIVEWINDOW(arg[1]));
-#else
- win = gdk_pixmap_lookup(RVAL2GDKNATIVEWINDOW(arg[1]));
- rb_warn("Not supported in GTK+-2.0.x.");
-#endif
+ win = gdk_pixmap_lookup_for_display(RVAL2GOBJ(arg[0]), RVAL2GDKNATIVEWINDOW(arg[1]));
break;
default:
break;
diff --git a/gtk2/ext/gtk2/rbgdkproperty.c b/gtk2/ext/gtk2/rbgdkproperty.c
index 52ad019..dc83bc7 100644
--- a/gtk2/ext/gtk2/rbgdkproperty.c
+++ b/gtk2/ext/gtk2/rbgdkproperty.c
@@ -43,7 +43,6 @@ rg_m_text_property_to_text_list(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
(const guchar*)RVAL2CSTR(text),
RSTRING_LEN(text), &list);
} else {
-#if GTK_CHECK_VERSION(2,2,0)
VALUE display, encoding, format, text;
rb_scan_args(argc, argv, "40", &display, &encoding, &format, &text);
StringValue(text);
@@ -54,15 +53,6 @@ rg_m_text_property_to_text_list(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
(const guchar*)RVAL2CSTR(text),
RSTRING_LEN(text),
&list);
-#else
- VALUE encoding, format, text;
- rb_scan_args(argc, argv, "30", &encoding, &format, &text);
- rb_warn("Gdk::Property.text_property_to_text_list: Not supported arguments in GTK+-2.0.x.");
- num = gdk_text_property_to_text_list(RVAL2ATOM(encoding),
- NUM2INT(format),
- (const guchar*)RVAL2CSTR(text),
- RSTRING_LEN(text), &list);
-#endif
}
ret = rb_ary_new2(num);
@@ -90,7 +80,6 @@ rg_m_text_property_to_utf8_list(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
(const guchar*)RVAL2CSTR(text),
RSTRING_LEN(text), &list);
} else {
-#if GTK_CHECK_VERSION(2,2,0)
VALUE display, encoding, format, text;
rb_scan_args(argc, argv, "40", &display, &encoding, &format, &text);
StringValue(text);
@@ -101,17 +90,6 @@ rg_m_text_property_to_utf8_list(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
(const guchar*)RVAL2CSTR(text),
RSTRING_LEN(text),
&list);
-#else
- VALUE encoding, format, text;
- rb_scan_args(argc, argv, "30", &encoding, &format, &text);
- StringValue(text);
-
- rb_warn("Gdk::Property.text_property_to_utf8_list: Not supported arguments in GTK+-2.0.x.");
- num = gdk_text_property_to_utf8_list(RVAL2ATOM(encoding),
- NUM2INT(format),
- (const guchar*)RVAL2CSTR(text),
- RSTRING_LEN(text), &list);
-#endif
}
ret = rb_ary_new2(num);
@@ -138,7 +116,6 @@ rg_m_string_to_compound_text(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
&encoding, &format,
&ctext, &length);
} else {
-#if GTK_CHECK_VERSION(2,2,0)
VALUE display, str;
rb_scan_args(argc, argv, "20", &display, &str);
@@ -146,14 +123,6 @@ rg_m_string_to_compound_text(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
RVAL2CSTR(str),
&encoding, &format,
&ctext, &length);
-#else
- VALUE str;
- rb_scan_args(argc, argv, "10", &str);
- rb_warn("Gdk::Property.string_to_compound_text: Not supported arguments in GTK+-2.0.x.");
- num = gdk_string_to_compound_text(RVAL2CSTR(str),
- &encoding, &format,
- &ctext, &length);
-#endif
}
if (num == 0){
@@ -190,7 +159,6 @@ rg_m_utf8_to_compound_text(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
&encoding, &format,
&ctext, &length);
} else {
-#if GTK_CHECK_VERSION(2,2,0)
VALUE display, str;
rb_scan_args(argc, argv, "20", &display, &str);
@@ -198,15 +166,6 @@ rg_m_utf8_to_compound_text(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
RVAL2CSTR(str),
&encoding, &format,
&ctext, &length);
-#else
- VALUE str;
- rb_scan_args(argc, argv, "10", &str);
-
- rb_warn("Gdk::Property.utf8_to_compound_text: Not supported arguments in GTK+-2.0.x.");
- ret = gdk_utf8_to_compound_text(RVAL2CSTR(str),
- &encoding, &format,
- &ctext, &length);
-#endif
}
if (ret){
diff --git a/gtk2/ext/gtk2/rbgdkscreen.c b/gtk2/ext/gtk2/rbgdkscreen.c
index 5c56182..ade77cb 100644
--- a/gtk2/ext/gtk2/rbgdkscreen.c
+++ b/gtk2/ext/gtk2/rbgdkscreen.c
@@ -25,8 +25,6 @@
#include <rb_cairo.h>
#endif
-#if GTK_CHECK_VERSION(2,2,0)
-
#define RG_TARGET_NAMESPACE cScreen
#define _SELF(i) GDK_SCREEN(RVAL2GOBJ(i))
@@ -76,7 +74,6 @@ rg_rgb_visual(VALUE self)
return GOBJ2RVAL(gdk_screen_get_rgb_visual(_SELF(self)));
}
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_rgba_colormap(VALUE self)
{
@@ -88,15 +85,12 @@ rg_rgba_visual(VALUE self)
{
return GOBJ2RVAL(gdk_screen_get_rgba_visual(_SELF(self)));
}
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_composited_p(VALUE self)
{
return CBOOL2RVAL(gdk_screen_is_composited(_SELF(self)));
}
-#endif
static VALUE
rg_root_window(VALUE self)
@@ -222,7 +216,6 @@ rg_get_setting(int argc, VALUE *argv, VALUE self)
return value;
}
-#if GTK_CHECK_VERSION(2,10,0)
#ifdef HAVE_RB_CAIRO_H
static VALUE
gdkscreen_get_font_options(VALUE self)
@@ -258,9 +251,7 @@ rg_window_stack(VALUE self)
g_list_free(list);
return ary;
}
-#endif
-#if GTK_CHECK_VERSION(2,4,0)
static void
child_setup(gpointer func)
{
@@ -346,7 +337,6 @@ rg_spawn_command_line_on_screen(G_GNUC_UNUSED VALUE self, VALUE command_line)
return ret;
}
-#endif
/* From X Window System Interaction */
#ifdef GDK_WINDOWING_X11
@@ -375,12 +365,9 @@ rg_screen_number(VALUE self)
}
#endif
-#endif
-
void
Init_gtk_gdk_screen(VALUE mGdk)
{
-#if GTK_CHECK_VERSION(2,2,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GDK_TYPE_SCREEN, "Screen", mGdk);
id_new = rb_intern("new");
@@ -393,13 +380,9 @@ Init_gtk_gdk_screen(VALUE mGdk)
RG_DEF_METHOD(system_visual, 0);
RG_DEF_METHOD(rgb_colormap, 0);
RG_DEF_METHOD(rgb_visual, 0);
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(rgba_colormap, 0);
RG_DEF_METHOD(rgba_visual, 0);
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD_P(composited, 0);
-#endif
RG_DEF_METHOD(root_window, 0);
RG_DEF_METHOD(display, 0);
RG_DEF_METHOD(number, 0);
@@ -415,20 +398,16 @@ Init_gtk_gdk_screen(VALUE mGdk)
RG_DEF_METHOD(get_monitor, -1);
RG_DEF_METHOD(broadcast_client_message, 1);
RG_DEF_METHOD(get_setting, -1);
-#if GTK_CHECK_VERSION(2,10,0)
#ifdef HAVE_RB_CAIRO_H
G_REPLACE_GET_PROPERTY(RG_TARGET_NAMESPACE, "font_options", gdkscreen_get_font_options, 0);
G_REPLACE_SET_PROPERTY(RG_TARGET_NAMESPACE, "font_options", gdkscreen_set_font_options, 1);
#endif
RG_DEF_METHOD(active_window, 0);
RG_DEF_METHOD(window_stack, 0);
-#endif
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(spawn_on_screen, 4);
RG_DEF_METHOD(spawn_on_screen_with_pipes, 4);
RG_DEF_METHOD(spawn_command_line_on_screen, 1);
-#endif
#ifdef GDK_WINDOWING_X11
RG_DEF_METHOD(xnumber, 0);
@@ -440,5 +419,4 @@ Init_gtk_gdk_screen(VALUE mGdk)
#ifdef GDK_WINDOWING_X11
G_DEF_CLASS3("GdkScreenX11", "ScreenX11", mGdk);
#endif
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgdkselection.c b/gtk2/ext/gtk2/rbgdkselection.c
index cbfe99c..79ac3f1 100644
--- a/gtk2/ext/gtk2/rbgdkselection.c
+++ b/gtk2/ext/gtk2/rbgdkselection.c
@@ -36,17 +36,12 @@ rg_m_owner_set(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
RVAL2ATOM(selection),
NUM2UINT(time), RVAL2CBOOL(send_event));
} else {
-#if GTK_CHECK_VERSION(2,2,0)
VALUE display = Qnil;
rb_scan_args(argc, argv, "50", &display, &owner, &selection, &time, &send_event);
ret = gdk_selection_owner_set_for_display(GDK_DISPLAY_OBJECT(RVAL2GOBJ(display)),
GDK_WINDOW(RVAL2GOBJ(owner)),
RVAL2ATOM(selection),
NUM2UINT(time), RVAL2CBOOL(send_event));
-#else
- rb_raise(rb_eArgError, "Wrong number of arguments: %d", argc);
-#endif
-
}
return CBOOL2RVAL(ret);
}
@@ -60,14 +55,10 @@ rg_m_owner_get(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
rb_scan_args(argc, argv, "10", &selection);
return GOBJ2RVAL(gdk_selection_owner_get(RVAL2ATOM(selection)));
} else {
-#if GTK_CHECK_VERSION(2,2,0)
VALUE display = Qnil;
rb_scan_args(argc, argv, "20", &display, &selection);
return GOBJ2RVAL(gdk_selection_owner_get_for_display(GDK_DISPLAY_OBJECT(RVAL2GOBJ(display)),
RVAL2ATOM(selection)));
-#else
- rb_raise(rb_eArgError, "Wrong number of arguments: %d", argc);
-#endif
}
}
@@ -109,7 +100,6 @@ rg_m_send_notify(int argc, VALUE *argv, VALUE self)
NIL_P(property) ? GDK_NONE : RVAL2ATOM(property),
NUM2INT(time));
} else {
-#if GTK_CHECK_VERSION(2,2,0)
VALUE display = Qnil;
rb_scan_args(argc, argv, "60", &display, &requestor, &selection, &target, &property, &time);
gdk_selection_send_notify_for_display(GDK_DISPLAY_OBJECT(RVAL2GOBJ(display)),
@@ -117,9 +107,6 @@ rg_m_send_notify(int argc, VALUE *argv, VALUE self)
RVAL2ATOM(target),
NIL_P(property) ? GDK_NONE : RVAL2ATOM(property),
NUM2INT(time));
-#else
- rb_raise(rb_eArgError, "Wrong number of arguments: %d", argc);
-#endif
}
return self;
}
diff --git a/gtk2/ext/gtk2/rbgdkvisual.c b/gtk2/ext/gtk2/rbgdkvisual.c
index 95b8989..71f941a 100644
--- a/gtk2/ext/gtk2/rbgdkvisual.c
+++ b/gtk2/ext/gtk2/rbgdkvisual.c
@@ -117,13 +117,11 @@ rg_s_best_with_both(G_GNUC_UNUSED VALUE self, VALUE depth, VALUE type)
(GdkVisualType)RVAL2GENUM(type, GDK_TYPE_VISUAL_TYPE)));
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_screen(VALUE self)
{
return GOBJ2RVAL(gdk_visual_get_screen(_SELF(self)));
}
-#endif
/* Structure accessors */
static VALUE
@@ -228,9 +226,7 @@ Init_gtk_gdk_visual(VALUE mGdk)
RG_DEF_SMETHOD(best_with_both, 2);
/* instance methods */
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(screen, 0);
-#endif
RG_DEF_METHOD(visual_type, 0);
RG_DEF_METHOD(depth, 0);
RG_DEF_METHOD(byte_order, 0);
diff --git a/gtk2/ext/gtk2/rbgdkwindow.c b/gtk2/ext/gtk2/rbgdkwindow.c
index d764599..7552de0 100644
--- a/gtk2/ext/gtk2/rbgdkwindow.c
+++ b/gtk2/ext/gtk2/rbgdkwindow.c
@@ -149,7 +149,6 @@ rg_unmaximize(VALUE self)
gdk_window_unmaximize(_SELF(self));
return self;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_fullscreen(VALUE self)
{
@@ -163,8 +162,6 @@ rg_unfullscreen(VALUE self)
gdk_window_unfullscreen(_SELF(self));
return self;
}
-#endif
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_set_keep_above(VALUE self, VALUE setting)
{
@@ -178,7 +175,6 @@ rg_set_keep_below(VALUE self, VALUE setting)
gdk_window_set_keep_below(_SELF(self), RVAL2CBOOL(setting));
return self;
}
-#endif
static VALUE
rg_move(VALUE self, VALUE x, VALUE y)
@@ -208,7 +204,6 @@ rg_scroll(VALUE self, VALUE dx, VALUE dy)
return self;
}
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_move_region(VALUE self, VALUE region, VALUE dx, VALUE dy)
{
@@ -218,7 +213,6 @@ rg_move_region(VALUE self, VALUE region, VALUE dx, VALUE dy)
NUM2INT(dy));
return self;
}
-#endif
static VALUE
rg_reparent(VALUE self, VALUE new_parent, VALUE x, VALUE y)
@@ -430,7 +424,6 @@ rg_internal_paint_info(VALUE self)
INT2NUM(x_offset), INT2NUM(y_offset));
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_configure_finished(VALUE self)
{
@@ -448,7 +441,6 @@ rg_enable_synchronized_configure(VALUE self)
}
return self;
}
-#endif
static VALUE
rg_set_user_data(VALUE self, VALUE user_data)
@@ -465,23 +457,19 @@ rg_set_override_redirect(VALUE self, VALUE override_redirect)
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_set_accept_focus(VALUE self, VALUE accept_focus)
{
gdk_window_set_accept_focus(_SELF(self), RVAL2CBOOL(accept_focus));
return self;
}
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_set_focus_on_map(VALUE self, VALUE focus_on_map)
{
gdk_window_set_focus_on_map(_SELF(self), RVAL2CBOOL(focus_on_map));
return self;
}
-#endif
/* GdkXEvent is not implemented.
void gdk_window_add_filter (GdkWindow *window,
@@ -527,7 +515,6 @@ rg_merge_child_shapes(VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_input_shape_combine_mask(VALUE self, VALUE mask, VALUE x, VALUE y)
{
@@ -561,8 +548,6 @@ rg_merge_child_input_shapes(VALUE self)
return self;
}
-#endif
-
static VALUE
rg_set_static_gravities(VALUE self, VALUE use_static)
{
@@ -597,7 +582,6 @@ rg_set_back_pixmap(VALUE self, VALUE pixmap, VALUE parent_relative)
return self;
}
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_set_cursor(VALUE self, VALUE cursor)
{
@@ -605,7 +589,6 @@ rg_set_cursor(VALUE self, VALUE cursor)
RVAL2BOXED(cursor, GDK_TYPE_CURSOR));
return self;
}
-#endif
static VALUE
rg_user_data(VALUE self)
@@ -660,15 +643,12 @@ rg_set_type_hint(VALUE self, VALUE hint)
return self;
}
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_type_hint(VALUE self)
{
return GENUM2RVAL(gdk_window_get_type_hint(_SELF(self)), GDK_TYPE_WINDOW_TYPE_HINT);
}
-#endif
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_set_skip_taskbar_hint(VALUE self, VALUE hint)
{
@@ -682,16 +662,13 @@ rg_set_skip_pager_hint(VALUE self, VALUE hint)
gdk_window_set_skip_pager_hint(_SELF(self), RVAL2CBOOL(hint));
return self;
}
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_set_urgency_hint(VALUE self, VALUE hint)
{
gdk_window_set_urgency_hint(_SELF(self), RVAL2CBOOL(hint));
return self;
}
-#endif
static VALUE
rg_position(VALUE self)
@@ -809,13 +786,11 @@ rg_set_group(VALUE self, VALUE leader)
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_group(VALUE self)
{
return GOBJ2RVAL(gdk_window_get_group(_SELF(self)));
}
-#endif
static VALUE
rg_set_decorations(VALUE self, VALUE decor)
@@ -893,13 +868,8 @@ rg_s_foreign_new(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
win = gdk_window_foreign_new(RVAL2GDKNATIVEWINDOW(arg[0]));
break;
case 2:
-#if GTK_CHECK_VERSION(2,2,0)
win = gdk_window_foreign_new_for_display(RVAL2GOBJ(arg[0]),
- RVAL2GDKNATIVEWINDOW(arg[1]));
-#else
- win = gdk_window_foreign_new(NUM2UINT(arg[1]));
- rb_warn("Not supported in GTK+-2.0.x.");
-#endif
+ RVAL2GDKNATIVEWINDOW(arg[1]));
break;
default:
break;
@@ -925,12 +895,7 @@ rg_s_lookup(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
win = gdk_window_lookup(RVAL2GDKNATIVEWINDOW(arg[0]));
break;
case 2:
-#if GTK_CHECK_VERSION(2,2,0)
- win = gdk_window_lookup_for_display(RVAL2GOBJ(arg[0]), RVAL2GDKNATIVEWINDOW(arg[1]));
-#else
- win = gdk_window_lookup(NUM2UINT(arg[1]));
- rb_warn("Not supported in GTK+-2.0.x.");
-#endif
+ win = gdk_window_lookup_for_display(RVAL2GOBJ(arg[0]), RVAL2GDKNATIVEWINDOW(arg[1]));
break;
default:
break;
@@ -949,16 +914,13 @@ rg_server_time(VALUE self)
return UINT2NUM(gdk_x11_get_server_time(_SELF(self)));
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_set_user_time(VALUE self, VALUE time)
{
gdk_x11_window_set_user_time(_SELF(self), NUM2UINT(time));
return Qnil;
}
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_move_to_current_desktop(VALUE self)
{
@@ -967,8 +929,6 @@ rg_move_to_current_desktop(VALUE self)
}
#endif
-#endif
-
void
Init_gtk_gdk_window(VALUE mGdk)
{
@@ -997,21 +957,15 @@ Init_gtk_gdk_window(VALUE mGdk)
RG_DEF_METHOD(unstick, 0);
RG_DEF_METHOD(maximize, 0);
RG_DEF_METHOD(unmaximize, 0);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(fullscreen, 0);
RG_DEF_METHOD(unfullscreen, 0);
-#endif
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(set_keep_above, 1);
RG_DEF_METHOD(set_keep_below, 1);
-#endif
RG_DEF_METHOD(move, 2);
RG_DEF_METHOD(resize, 2);
RG_DEF_METHOD(move_resize, 4);
RG_DEF_METHOD(scroll, 2);
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(move_region, 3);
-#endif
RG_DEF_METHOD(reparent, 3);
RG_DEF_METHOD(clear, 0);
RG_DEF_METHOD(clear_area, -1);
@@ -1033,52 +987,35 @@ Init_gtk_gdk_window(VALUE mGdk)
RG_DEF_METHOD(thaw_updates, 0);
RG_DEF_METHOD(process_updates, 1);
RG_DEF_METHOD(internal_paint_info, 0);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(configure_finished, 0);
RG_DEF_METHOD(enable_synchronized_configure, 0);
-#endif
RG_DEF_METHOD(set_user_data, 1);
RG_DEF_METHOD(set_override_redirect, 1);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(set_accept_focus, 1);
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(set_focus_on_map, 1);
-#endif
RG_DEF_METHOD(shape_combine_mask, 3);
RG_DEF_METHOD(shape_combine_region, 3);
RG_DEF_METHOD(set_child_shapes, 0);
RG_DEF_METHOD(merge_child_shapes, 0);
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(input_shape_combine_mask, 3);
RG_DEF_METHOD(input_shape_combine_region, 3);
RG_DEF_METHOD(set_child_input_shapes, 0);
RG_DEF_METHOD(merge_child_input_shapes, 0);
-#endif
RG_DEF_METHOD(set_static_gravities, 1);
RG_DEF_METHOD(set_title, 1);
RG_DEF_METHOD(set_background, 1);
RG_DEF_METHOD(set_back_pixmap, 2);
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(set_cursor, 1);
-#endif
RG_DEF_METHOD(user_data, 0);
RG_DEF_METHOD(geometry, 0);
RG_DEF_METHOD(set_geometry_hints, 2);
RG_DEF_METHOD(set_icon_list, 1);
RG_DEF_METHOD(set_modal_hint, 1);
RG_DEF_METHOD(set_type_hint, 1);
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(type_hint, 0);
-#endif
-
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(set_skip_taskbar_hint, 1);
RG_DEF_METHOD(set_skip_pager_hint, 1);
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(set_urgency_hint, 1);
-#endif
RG_DEF_METHOD(position, 0);
RG_DEF_METHOD(root_origin, 0);
RG_DEF_METHOD(frame_extents, 0);
@@ -1095,9 +1032,7 @@ Init_gtk_gdk_window(VALUE mGdk)
RG_DEF_METHOD(set_transient_for, 1);
RG_DEF_METHOD(set_role, 1);
RG_DEF_METHOD(set_group, 1);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(group, 0);
-#endif
RG_DEF_METHOD(set_decorations, 1);
RG_DEF_METHOD(decorations, 0);
RG_DEF_METHOD(set_functions, 1);
@@ -1162,12 +1097,8 @@ Init_gtk_gdk_window(VALUE mGdk)
#ifdef GDK_WINDOWING_X11
RG_DEF_METHOD(server_time, 0);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(set_user_time, 1);
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(move_to_current_desktop, 0);
-#endif
G_DEF_CLASS3("GdkWindowImplX11", "WindowImplX11", mGdk);
#elif defined(GDK_WINDOWING_WIN32)
diff --git a/gtk2/ext/gtk2/rbgdkx11.c b/gtk2/ext/gtk2/rbgdkx11.c
index 3b2afdf..7b1ec6c 100644
--- a/gtk2/ext/gtk2/rbgdkx11.c
+++ b/gtk2/ext/gtk2/rbgdkx11.c
@@ -103,12 +103,7 @@ rg_m_xid_table_lookup(int argc, VALUE *argv, VALUE self)
win = gdk_xid_table_lookup(NUM2UINT(arg[0]));
break;
case 2:
-#if GTK_CHECK_VERSION(2,2,0)
- win = gdk_xid_table_lookup_for_display(RVAL2GOBJ(arg[0]), NUM2UINT(arg[1]));
-#else
- win = gdk_xid_table_lookup(NUM2UINT(arg[1]));
- rb_warn("Not supported in GTK+-2.0.x.");
-#endif
+ win = gdk_xid_table_lookup_for_display(RVAL2GOBJ(arg[0]), NUM2UINT(arg[1]));
break;
}
if (win == NULL)
diff --git a/gtk2/ext/gtk2/rbgtkaboutdialog.c b/gtk2/ext/gtk2/rbgtkaboutdialog.c
index 6f98977..091288a 100644
--- a/gtk2/ext/gtk2/rbgtkaboutdialog.c
+++ b/gtk2/ext/gtk2/rbgtkaboutdialog.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,6,0)
-
#define RG_TARGET_NAMESPACE cAboutDialog
#define _SELF(self) (GTK_ABOUT_DIALOG(RVAL2GOBJ(self)))
@@ -125,17 +123,14 @@ rg_s_show(VALUE self, VALUE parent, VALUE props)
NULL);
return self;
}
-#endif
void
Init_gtk_aboutdialog(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,6,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_ABOUT_DIALOG, "AboutDialog", mGtk);
RG_DEF_METHOD(initialize, 0);
RG_DEF_SMETHOD(set_email_hook, 0);
RG_DEF_SMETHOD(set_url_hook, 0);
RG_DEF_SMETHOD(show, 2);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkaccelerator.c b/gtk2/ext/gtk2/rbgtkaccelerator.c
index bbcd73f..92f1541 100644
--- a/gtk2/ext/gtk2/rbgtkaccelerator.c
+++ b/gtk2/ext/gtk2/rbgtkaccelerator.c
@@ -46,13 +46,11 @@ rg_s_to_name(G_GNUC_UNUSED VALUE self, VALUE key, VALUE mods)
return CSTR2RVAL(gtk_accelerator_name(NUM2UINT(key), RVAL2MOD(mods)));
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_s_get_label(G_GNUC_UNUSED VALUE self, VALUE key, VALUE mods)
{
return CSTR2RVAL(gtk_accelerator_get_label(NUM2UINT(key), RVAL2MOD(mods)));
}
-#endif
static VALUE
rg_s_set_default_mod_mask(VALUE self, VALUE default_mod_mask)
@@ -76,9 +74,7 @@ Init_gtk_accelerator(VALUE mGtk)
RG_DEF_SMETHOD(parse, 1);
/* name is reserved by Ruby */
RG_DEF_SMETHOD(to_name, 2);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_SMETHOD(get_label, 2);
-#endif
RG_DEF_SMETHOD(set_default_mod_mask, 1);
RG_DEF_SMETHOD(default_mod_mask, 0);
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
diff --git a/gtk2/ext/gtk2/rbgtkaccelgroup.c b/gtk2/ext/gtk2/rbgtkaccelgroup.c
index 1a540b8..cbddfc7 100644
--- a/gtk2/ext/gtk2/rbgtkaccelgroup.c
+++ b/gtk2/ext/gtk2/rbgtkaccelgroup.c
@@ -108,7 +108,6 @@ rg_s_from_accel_closure(G_GNUC_UNUSED VALUE self, VALUE closure)
(GClosure*)RVAL2BOXED(closure, G_TYPE_CLOSURE)));
}
-#if GTK_CHECK_VERSION(2,2,0)
static gboolean
gaccelgrp_find_func(GtkAccelKey *key, GClosure *closure, gpointer func)
{
@@ -128,9 +127,7 @@ rg_find(VALUE self)
(gpointer)func);
return BOXED2RVAL(result, GTK_TYPE_ACCEL_KEY);
}
-#endif
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_activate(VALUE self, VALUE accel_quark, VALUE acceleratable, VALUE accel_key, VALUE accel_mods)
{
@@ -143,7 +140,6 @@ rg_activate(VALUE self, VALUE accel_quark, VALUE acceleratable, VALUE accel_key,
return CBOOL2RVAL(gtk_accel_group_activate(_SELF(self), quark, RVAL2GOBJ(acceleratable),
NUM2UINT(accel_key), RVAL2MOD(accel_mods)));
}
-#endif
static VALUE
_gaccelgrp_lock_ensure(VALUE self)
@@ -193,16 +189,12 @@ Init_gtk_accel_group(VALUE mGtk)
RG_DEF_SMETHOD(from_object, 1);
RG_DEF_SMETHOD(from_accel_closure, 1);
RG_DEF_METHOD(initialize, 0);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(activate, 4);
-#endif
RG_DEF_METHOD(lock, 0);
RG_DEF_METHOD(unlock, 0);
RG_DEF_METHOD(connect, -1);
RG_DEF_METHOD(disconnect, 1);
RG_DEF_METHOD(disconnect_key, 2);
RG_DEF_METHOD(query, 2);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(find, 0);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkaccelmap.c b/gtk2/ext/gtk2/rbgtkaccelmap.c
index 2ee74fb..269e93c 100644
--- a/gtk2/ext/gtk2/rbgtkaccelmap.c
+++ b/gtk2/ext/gtk2/rbgtkaccelmap.c
@@ -105,7 +105,6 @@ void gtk_accel_map_load_fd (gint fd);
void gtk_accel_map_save_fd (gint fd);
*/
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_s_get(G_GNUC_UNUSED VALUE self)
{
@@ -125,12 +124,10 @@ rg_s_unlock_path(VALUE self, VALUE accel_path)
gtk_accel_map_unlock_path(RVAL2CSTR(accel_path));
return self;
}
-#endif
void
Init_gtk_accel_map(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_ACCEL_MAP, "AccelMap", mGtk);
RG_DEF_SMETHOD(add_entry, 3);
@@ -144,16 +141,4 @@ Init_gtk_accel_map(VALUE mGtk)
RG_DEF_SMETHOD(get, 0);
RG_DEF_SMETHOD(lock_path, 1);
RG_DEF_SMETHOD(unlock_path, 1);
-#else
- VALUE mAccelMap = rb_define_module_under(mGtk, "AccelMap");
-
- rb_define_module_function(mAccelMap, "add_entry", rg_s_add_entry, 3);
- rb_define_module_function(mAccelMap, "lookup_entry", rg_s_lookup_entry, 1);
- rb_define_module_function(mAccelMap, "change_entry", rg_s_change_entry, 4);
- rb_define_module_function(mAccelMap, "load", rg_s_load, 1);
- rb_define_module_function(mAccelMap, "save", rg_s_save, 1);
- rb_define_module_function(mAccelMap, "add_filter", rg_s_add_filter, 1);
- rb_define_module_function(mAccelMap, "each", rg_s_each, 0);
- rb_define_module_function(mAccelMap, "each_unfilterd", rg_s_each_unfilterd, 0);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkaction.c b/gtk2/ext/gtk2/rbgtkaction.c
index 76f367e..f03bdb4 100644
--- a/gtk2/ext/gtk2/rbgtkaction.c
+++ b/gtk2/ext/gtk2/rbgtkaction.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cAction
#define _SELF(self) (GTK_ACTION(RVAL2GOBJ(self)))
#define RVAL2WIDGET(w) (GTK_WIDGET(RVAL2GOBJ(w)))
@@ -156,21 +154,17 @@ rg_set_accel_group(VALUE self, VALUE accel_group)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_accel_path(VALUE self)
{
return CSTR2RVAL(gtk_action_get_accel_path(_SELF(self)));
}
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_accel_closure(VALUE self)
{
return BOXED2RVAL(gtk_action_get_accel_closure(_SELF(self)), G_TYPE_CLOSURE);
}
-#endif
static void
action_mark(void *p)
@@ -186,12 +180,10 @@ action_mark(void *p)
rbgobj_gc_mark_instance(proxy);
}
}
-#endif
void
Init_gtk_action(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE;
RG_TARGET_NAMESPACE = G_DEF_CLASS_WITH_GC_FUNC(GTK_TYPE_ACTION, "Action", mGtk,
@@ -226,12 +218,6 @@ Init_gtk_action(VALUE mGtk)
RG_DEF_METHOD(set_accel_group, 1);
G_DEF_SETTER(RG_TARGET_NAMESPACE, "accel_group");
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(accel_path, 0);
-#endif
-
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(accel_closure, 0);
-#endif
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkactiongroup.c b/gtk2/ext/gtk2/rbgtkactiongroup.c
index 86528cc..260d625 100644
--- a/gtk2/ext/gtk2/rbgtkactiongroup.c
+++ b/gtk2/ext/gtk2/rbgtkactiongroup.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
static ID id_action_procs;
static ID id_toggle_action_procs;
@@ -423,13 +421,11 @@ rg_set_translation_domain(VALUE self, VALUE domain)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_translate_string(VALUE self, VALUE str)
{
return CSTR2RVAL(gtk_action_group_translate_string(_SELF(self), RVAL2CSTR(str)));
}
-#endif
static void
action_group_mark(void *p)
@@ -445,12 +441,10 @@ action_group_mark(void *p)
}
g_list_free(actions);
}
-#endif
void
Init_gtk_actiongroup(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE;
RG_TARGET_NAMESPACE = G_DEF_CLASS_WITH_GC_FUNC(GTK_TYPE_ACTION_GROUP, "ActionGroup",
@@ -470,8 +464,5 @@ Init_gtk_actiongroup(VALUE mGtk)
RG_DEF_METHOD(set_translate_func, 0);
RG_DEF_METHOD(set_translation_domain, 1);
G_DEF_SETTER(RG_TARGET_NAMESPACE, "translation_domain");
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(translate_string, 1);
-#endif
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkalignment.c b/gtk2/ext/gtk2/rbgtkalignment.c
index 334d34d..412deab 100644
--- a/gtk2/ext/gtk2/rbgtkalignment.c
+++ b/gtk2/ext/gtk2/rbgtkalignment.c
@@ -44,7 +44,6 @@ rg_set(VALUE self, VALUE xalign, VALUE yalign, VALUE xscale, VALUE yscale)
NUM2DBL(xscale), NUM2DBL(yscale));
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_padding(VALUE self)
{
@@ -62,7 +61,6 @@ rg_set_padding(VALUE self, VALUE top, VALUE bottom, VALUE left, VALUE right)
NUM2UINT(left), NUM2UINT(right));
return self;
}
-#endif
void
Init_gtk_alignment(VALUE mGtk)
@@ -71,9 +69,7 @@ Init_gtk_alignment(VALUE mGtk)
RG_DEF_METHOD(initialize, 4);
RG_DEF_METHOD(set, 4);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(padding, 0);
RG_DEF_METHOD(set_padding, 4);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkassistant.c b/gtk2/ext/gtk2/rbgtkassistant.c
index a8028bc..7348129 100644
--- a/gtk2/ext/gtk2/rbgtkassistant.c
+++ b/gtk2/ext/gtk2/rbgtkassistant.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cAssistant
#define _SELF(s) (GTK_ASSISTANT(RVAL2GOBJ(s)))
@@ -185,12 +183,9 @@ rg_commit(VALUE self)
return self;
}
-#endif
-
void
Init_gtk_assistant(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_ASSISTANT, "Assistant", mGtk);
RG_DEF_METHOD(initialize, 0);
@@ -222,5 +217,4 @@ Init_gtk_assistant(VALUE mGtk)
/* GtkAssistantPageType */
G_DEF_CLASS(GTK_TYPE_ASSISTANT_PAGE_TYPE, "PageType", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_ASSISTANT_PAGE_TYPE, "GTK_ASSISTANT_");
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkbbox.c b/gtk2/ext/gtk2/rbgtkbbox.c
index 7e73063..6f9c8db 100644
--- a/gtk2/ext/gtk2/rbgtkbbox.c
+++ b/gtk2/ext/gtk2/rbgtkbbox.c
@@ -34,23 +34,19 @@ rg_set_child_secondary(VALUE self, VALUE child, VALUE is_secondary)
RVAL2CBOOL(is_secondary));
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_get_child_secondary(VALUE self, VALUE child)
{
return CBOOL2RVAL(gtk_button_box_get_child_secondary(GTK_BUTTON_BOX(RVAL2GOBJ(self)),
GTK_WIDGET(RVAL2GOBJ(child))));
}
-#endif
void
Init_gtk_button_box(VALUE mGtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_BUTTON_BOX, "ButtonBox", mGtk);
RG_DEF_METHOD(set_child_secondary, 2);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(get_child_secondary, 1);
-#endif
/* GtkButtonBoxStyle(General constants) */
G_DEF_CLASS(GTK_TYPE_BUTTON_BOX_STYLE, "Style", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_BUTTON_BOX_STYLE, "GTK_BUTTONBOX_");
diff --git a/gtk2/ext/gtk2/rbgtkbutton.c b/gtk2/ext/gtk2/rbgtkbutton.c
index a57ae7a..ebb78d8 100644
--- a/gtk2/ext/gtk2/rbgtkbutton.c
+++ b/gtk2/ext/gtk2/rbgtkbutton.c
@@ -82,7 +82,6 @@ rg_leave(VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_set_alignment(VALUE self, VALUE xalign, VALUE yalign)
{
@@ -98,7 +97,6 @@ rg_alignment(VALUE self)
return rb_assoc_new(rb_float_new(xalign), rb_float_new(yalign));
}
-#endif
void
Init_gtk_button(VALUE mGtk)
@@ -111,9 +109,7 @@ Init_gtk_button(VALUE mGtk)
RG_DEF_METHOD(enter, 0);
RG_DEF_METHOD(leave, 0);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(set_alignment, 2);
G_DEF_SETTER(RG_TARGET_NAMESPACE, "alignment");
RG_DEF_METHOD(alignment, 0);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkcalendar.c b/gtk2/ext/gtk2/rbgtkcalendar.c
index f9b0666..c08e76b 100644
--- a/gtk2/ext/gtk2/rbgtkcalendar.c
+++ b/gtk2/ext/gtk2/rbgtkcalendar.c
@@ -106,12 +106,8 @@ rg_display_options(int argc, VALUE *argv, VALUE self)
rb_scan_args(argc, argv, "01", &flags);
if (NIL_P(flags)){
-#if GTK_CHECK_VERSION(2,4,0)
return GFLAGS2RVAL(gtk_calendar_get_display_options(_SELF(self)),
GTK_TYPE_CALENDAR_DISPLAY_OPTIONS);
-#else
- rb_warn("Gtk::Calendar#display_options has supported since GTK+-2.4.");
-#endif
} else {
/* This is for backward compatibility. */
rb_warning("Gtk::Calendar#display_options(flags) has been deprecated. Use Gtk::Calendar#set_display_options(flags).");
@@ -121,7 +117,6 @@ rg_display_options(int argc, VALUE *argv, VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_set_display_options(VALUE self, VALUE flags)
{
@@ -130,7 +125,6 @@ rg_set_display_options(VALUE self, VALUE flags)
GTK_TYPE_CALENDAR_DISPLAY_OPTIONS));
return self;
}
-#endif
void
Init_gtk_calendar(VALUE mGtk)
@@ -147,10 +141,8 @@ Init_gtk_calendar(VALUE mGtk)
RG_DEF_METHOD(freeze, 0);
RG_DEF_METHOD(thaw, 0);
RG_DEF_METHOD(display_options, -1);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(set_display_options, 1);
G_DEF_SETTER(RG_TARGET_NAMESPACE, "display_options");
-#endif
G_DEF_CLASS(GTK_TYPE_CALENDAR_DISPLAY_OPTIONS, "DisplayOptions", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_CALENDAR_DISPLAY_OPTIONS, "GTK_CALENDAR_");
diff --git a/gtk2/ext/gtk2/rbgtkcelllayout.c b/gtk2/ext/gtk2/rbgtkcelllayout.c
index 49e715d..1895726 100644
--- a/gtk2/ext/gtk2/rbgtkcelllayout.c
+++ b/gtk2/ext/gtk2/rbgtkcelllayout.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE mCellLayout
#define _SELF(s) (GTK_CELL_LAYOUT(RVAL2GOBJ(s)))
#define RVAL2RENDERER(s) (GTK_CELL_RENDERER(RVAL2GOBJ(s)))
@@ -122,12 +120,10 @@ rg_set_attributes(VALUE self, VALUE cell, VALUE attrs)
}
return self;
}
-#endif
void
Init_gtk_celllayout(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(GTK_TYPE_CELL_LAYOUT, "CellLayout", mGtk);
RG_DEF_METHOD(pack_start, 2);
@@ -138,5 +134,4 @@ Init_gtk_celllayout(VALUE mGtk)
RG_DEF_METHOD(set_cell_data_func, 1);
RG_DEF_METHOD(clear_attributes, 1);
RG_DEF_METHOD(set_attributes, 2);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkcellrenderer.c b/gtk2/ext/gtk2/rbgtkcellrenderer.c
index a3c1400..83fc869 100644
--- a/gtk2/ext/gtk2/rbgtkcellrenderer.c
+++ b/gtk2/ext/gtk2/rbgtkcellrenderer.c
@@ -73,7 +73,6 @@ rg_start_editing(VALUE self, VALUE event, VALUE widget, VALUE path, VALUE backgr
return edit ? GOBJ2RVAL(edit) : Qnil;
}
-#if GTK_CHECK_VERSION(2,4,0)
#ifndef GTK_DISABLE_DEPRECATED
static VALUE
rg_editing_canceled(VALUE self)
@@ -82,16 +81,13 @@ rg_editing_canceled(VALUE self)
return self;
}
#endif
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_stop_editing(VALUE self, VALUE canceled)
{
gtk_cell_renderer_stop_editing(_SELF(self), RVAL2CBOOL(canceled));
return self;
}
-#endif
static VALUE
rg_fixed_size(VALUE self)
@@ -118,14 +114,10 @@ Init_gtk_cellrenderer(VALUE mGtk)
RG_DEF_METHOD(render, 6);
RG_DEF_METHOD(activate, 6);
RG_DEF_METHOD(start_editing, 6);
-#if GTK_CHECK_VERSION(2,4,0)
#ifndef GTK_DISABLE_DEPRECATED
RG_DEF_METHOD(editing_canceled, 0);
#endif
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(stop_editing, 1);
-#endif
RG_DEF_METHOD(fixed_size, 0);
RG_DEF_METHOD(set_fixed_size, 2);
diff --git a/gtk2/ext/gtk2/rbgtkcellrendereraccel.c b/gtk2/ext/gtk2/rbgtkcellrendereraccel.c
index c368cb0..8e838d4 100644
--- a/gtk2/ext/gtk2/rbgtkcellrendereraccel.c
+++ b/gtk2/ext/gtk2/rbgtkcellrendereraccel.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cCellRendererAccel
#define _SELF(s) (GTK_CELL_RENDERER_ACCEL(RVAL2GOBJ(s)))
@@ -33,17 +31,13 @@ rg_initialize(VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_cellrendereraccel(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CELL_RENDERER_ACCEL, "CellRendererAccel", mGtk);
RG_DEF_METHOD(initialize, 0);
/* GtkCellRendererAccelMode */
G_DEF_CLASS(GTK_TYPE_CELL_RENDERER_ACCEL_MODE, "Mode", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_CELL_RENDERER_ACCEL_MODE, "GTK_CELL_RENDERER_ACCEL_");
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkcellrenderercombo.c b/gtk2/ext/gtk2/rbgtkcellrenderercombo.c
index a04e3c9..8fcc93a 100644
--- a/gtk2/ext/gtk2/rbgtkcellrenderercombo.c
+++ b/gtk2/ext/gtk2/rbgtkcellrenderercombo.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,6,0)
-
#define RG_TARGET_NAMESPACE cCellRendererCombo
static VALUE
@@ -32,13 +30,9 @@ rg_initialize(VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_cellrenderercombo(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,6,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CELL_RENDERER_COMBO, "CellRendererCombo", mGtk);
RG_DEF_METHOD(initialize, 0);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkcellrendererprogress.c b/gtk2/ext/gtk2/rbgtkcellrendererprogress.c
index c4481fb..be58a09 100644
--- a/gtk2/ext/gtk2/rbgtkcellrendererprogress.c
+++ b/gtk2/ext/gtk2/rbgtkcellrendererprogress.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,6,0)
-
#define RG_TARGET_NAMESPACE cCellRendererProgress
static VALUE
@@ -32,13 +30,9 @@ rg_initialize(VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_cellrendererprogress(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,6,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CELL_RENDERER_PROGRESS, "CellRendererProgress", mGtk);
RG_DEF_METHOD(initialize, 0);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkcellrendererspin.c b/gtk2/ext/gtk2/rbgtkcellrendererspin.c
index f26de87..f8e1c8a 100644
--- a/gtk2/ext/gtk2/rbgtkcellrendererspin.c
+++ b/gtk2/ext/gtk2/rbgtkcellrendererspin.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cCellRendererSpin
#define _SELF(s) (GTK_CELL_RENDERER_SPIN(RVAL2GOBJ(s)))
@@ -33,13 +31,9 @@ rg_initialize(VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_cellrendererspin(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CELL_RENDERER_SPIN, "CellRendererSpin", mGtk);
RG_DEF_METHOD(initialize, 0);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkcellview.c b/gtk2/ext/gtk2/rbgtkcellview.c
index 6b6f5b5..8cb76e1 100644
--- a/gtk2/ext/gtk2/rbgtkcellview.c
+++ b/gtk2/ext/gtk2/rbgtkcellview.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,6,0)
-
#define RG_TARGET_NAMESPACE cCellView
#define _SELF(self) (GTK_CELL_VIEW(RVAL2GOBJ(self)))
@@ -101,12 +99,10 @@ rg_cell_renderers(VALUE self)
{
return GLIST2ARYF(gtk_cell_view_get_cell_renderers(_SELF(self)));
}
-#endif
void
Init_gtk_cellview(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,6,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CELL_VIEW, "CellView", mGtk);
id_model = rb_intern("model");
@@ -118,5 +114,4 @@ Init_gtk_cellview(VALUE mGtk)
RG_DEF_METHOD(displayed_row, 0);
RG_DEF_METHOD(get_size_of_row, 1);
RG_DEF_METHOD(cell_renderers, 0);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkclipboard.c b/gtk2/ext/gtk2/rbgtkclipboard.c
index ddf448b..0f888a1 100644
--- a/gtk2/ext/gtk2/rbgtkclipboard.c
+++ b/gtk2/ext/gtk2/rbgtkclipboard.c
@@ -67,14 +67,10 @@ rg_s_get(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
rb_scan_args(argc, argv, "10", &selection);
clipboard = gtk_clipboard_get(RVAL2ATOM(selection));
} else {
-#if GTK_CHECK_VERSION(2,2,0)
VALUE display, selection;
rb_scan_args(argc, argv, "20", &display, &selection);
clipboard = gtk_clipboard_get_for_display(GDK_DISPLAY_OBJECT(RVAL2GOBJ(display)),
RVAL2ATOM(selection));
-#else
- rb_raise(rb_eArgError, "Wrong number of arguments: %d", argc);
-#endif
}
return CLIPBOARD2RVAL(clipboard);
}
@@ -82,11 +78,7 @@ rg_s_get(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
static VALUE
rg_display(VALUE self)
{
-#if GTK_CHECK_VERSION(2,2,0)
return GOBJ2RVAL(gtk_clipboard_get_display(_SELF(self)));
-#else
- return Qnil;
-#endif
}
static void
@@ -175,14 +167,12 @@ rg_set_text(VALUE self, VALUE text)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_set_image(VALUE self, VALUE pixbuf)
{
gtk_clipboard_set_image(_SELF(self), GDK_PIXBUF(RVAL2GOBJ(pixbuf)));
return self;
}
-#endif
static void
clipboard_received_func(GtkClipboard *clipboard, GtkSelectionData *selection_data, gpointer func)
@@ -225,7 +215,6 @@ rg_request_text(VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
static void
clipboard_image_received_func(GtkClipboard *clipboard, GdkPixbuf *pixbuf, gpointer func)
{
@@ -243,9 +232,7 @@ rg_request_image(VALUE self)
(gpointer)func);
return self;
}
-#endif
-#if GTK_CHECK_VERSION(2,4,0)
static void
clipboard_target_received_func(GtkClipboard *clipboard, GdkAtom *atoms, gint n_atoms, gpointer func)
{
@@ -269,9 +256,7 @@ rg_request_targets(VALUE self)
(gpointer)func);
return self;
}
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
static void
clipboard_rich_text_received_func(GtkClipboard *clipboard, GdkAtom format, const guint8 *text, gsize length, gpointer func)
{
@@ -290,7 +275,6 @@ rg_request_rich_text(VALUE self, VALUE buffer)
(gpointer)func);
return self;
}
-#endif
static VALUE
rg_wait_for_contents(VALUE self, VALUE target)
@@ -309,16 +293,13 @@ rg_wait_for_text(VALUE self)
return str ? CSTR2RVAL(str) : Qnil;
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_wait_for_image(VALUE self)
{
GdkPixbuf* pixbuf = gtk_clipboard_wait_for_image(_SELF(self));
return GOBJ2RVAL(pixbuf);
}
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_wait_for_rich_text(VALUE self, VALUE buffer)
{
@@ -336,7 +317,6 @@ rg_wait_for_rich_text(VALUE self, VALUE buffer)
}
}
-#endif
static VALUE
rg_wait_is_text_available_p(VALUE self)
@@ -344,23 +324,18 @@ rg_wait_is_text_available_p(VALUE self)
return CBOOL2RVAL(gtk_clipboard_wait_is_text_available(_SELF(self)));
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_wait_is_image_available_p(VALUE self)
{
return CBOOL2RVAL(gtk_clipboard_wait_is_image_available(_SELF(self)));
}
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_wait_is_rich_text_available_p(VALUE self, VALUE buffer)
{
return CBOOL2RVAL(gtk_clipboard_wait_is_rich_text_available(_SELF(self), GTK_TEXT_BUFFER(RVAL2GOBJ(buffer))));
}
-#endif
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_wait_for_targets(VALUE self)
{
@@ -386,9 +361,7 @@ rg_wait_for_targets(VALUE self)
}
return ary;
}
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_wait_is_target_available_p(VALUE self, VALUE target)
{
@@ -416,7 +389,6 @@ rg_store(VALUE self)
return self;
}
-#endif
void
Init_gtk_clipboard(VALUE mGtk)
@@ -431,43 +403,23 @@ Init_gtk_clipboard(VALUE mGtk)
*/
RG_DEF_METHOD(clear, 0);
RG_DEF_METHOD(set_text, 1);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(set_image, 1);
-#endif
RG_DEF_METHOD(request_contents, 1);
RG_DEF_METHOD(request_text, 0);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(request_image, 0);
-#endif
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(request_targets, 0);
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(request_rich_text, 1);
-#endif
RG_DEF_METHOD(wait_for_contents, 1);
RG_DEF_METHOD(wait_for_text, 0);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(wait_for_image, 0);
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(wait_for_rich_text, 1);
-#endif
RG_DEF_METHOD_P(wait_is_text_available, 0);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD_P(wait_is_image_available, 0);
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD_P(wait_is_rich_text_available, 1);
-#endif
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(wait_for_targets, 0);
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD_P(wait_is_target_available, 1);
RG_DEF_METHOD(set_can_store, 1);
RG_DEF_METHOD(store, 0);
-#endif
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
}
diff --git a/gtk2/ext/gtk2/rbgtkcolorbutton.c b/gtk2/ext/gtk2/rbgtkcolorbutton.c
index efb9ac4..775086b 100644
--- a/gtk2/ext/gtk2/rbgtkcolorbutton.c
+++ b/gtk2/ext/gtk2/rbgtkcolorbutton.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cColorButton
static VALUE
@@ -43,13 +41,9 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_colorbutton(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_COLOR_BUTTON, "ColorButton", mGtk);
RG_DEF_METHOD(initialize, -1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkcolorsel.c b/gtk2/ext/gtk2/rbgtkcolorsel.c
index 3ed95ef..d6945b5 100644
--- a/gtk2/ext/gtk2/rbgtkcolorsel.c
+++ b/gtk2/ext/gtk2/rbgtkcolorsel.c
@@ -157,7 +157,6 @@ rg_s_palette_to_string(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
return CSTR2RVAL_FREE(palette);
}
-#if GTK_CHECK_VERSION(2,2,0)
static void
screen_func(GdkScreen *screen, const GdkColor *colors, gint n_colors)
{
@@ -181,7 +180,6 @@ rg_s_set_change_palette_hook(VALUE self)
(GtkColorSelectionChangePaletteWithScreenFunc)screen_func);
return self;
}
-#endif
/* Don't implement them.
GtkColorSelectionChangePaletteFunc gtk_color_selection_set_change_palette_hook
@@ -207,9 +205,7 @@ Init_gtk_color_selection(VALUE mGtk)
RG_DEF_SMETHOD(palette_to_string, -1);
RG_DEF_SMETHOD(palette_from_string, 1);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_SMETHOD(set_change_palette_hook, 0);
-#endif
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
}
diff --git a/gtk2/ext/gtk2/rbgtkcombobox.c b/gtk2/ext/gtk2/rbgtkcombobox.c
index 71bda6f..69f9130 100644
--- a/gtk2/ext/gtk2/rbgtkcombobox.c
+++ b/gtk2/ext/gtk2/rbgtkcombobox.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cComboBox
#define _SELF(self) (GTK_COMBO_BOX(RVAL2GOBJ(self)))
#define RVAL2WIDGET(w) (GTK_WIDGET(RVAL2GOBJ(w)))
@@ -98,8 +96,6 @@ rg_remove_text(VALUE self, VALUE position)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
-
static VALUE
rg_active_text(VALUE self)
{
@@ -136,13 +132,9 @@ rg_set_row_separator_func(VALUE self)
return self;
}
-#endif
-#endif
-
void
Init_gtk_combobox(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_COMBO_BOX, "ComboBox", mGtk);
RG_DEF_METHOD(initialize, -1);
@@ -153,11 +145,7 @@ Init_gtk_combobox(VALUE mGtk)
RG_DEF_METHOD(insert_text, 2);
RG_DEF_METHOD(prepend_text, 1);
RG_DEF_METHOD(remove_text, 1);
-
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(active_text, 0);
RG_DEF_METHOD(popup_accessible, 0);
RG_DEF_METHOD(set_row_separator_func, 0);
-#endif
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkcomboboxentry.c b/gtk2/ext/gtk2/rbgtkcomboboxentry.c
index 918d890..1efb3a7 100644
--- a/gtk2/ext/gtk2/rbgtkcomboboxentry.c
+++ b/gtk2/ext/gtk2/rbgtkcomboboxentry.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cComboBoxEntry
static VALUE
@@ -50,13 +48,9 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_comboboxentry(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_COMBO_BOX_ENTRY, "ComboBoxEntry", mGtk);
RG_DEF_METHOD(initialize, -1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkconst.c b/gtk2/ext/gtk2/rbgtkconst.c
index ca06226..69e20bb 100644
--- a/gtk2/ext/gtk2/rbgtkconst.c
+++ b/gtk2/ext/gtk2/rbgtkconst.c
@@ -138,10 +138,8 @@ Init_gtk_const(VALUE mGtk)
G_DEF_CONSTANTS(mGtk, GTK_TYPE_RESPONSE_TYPE, "GTK_");
/* GtkScrollStep */
-#if GTK_CHECK_VERSION(2,4,0)
G_DEF_CLASS(GTK_TYPE_SCROLL_STEP, "ScrollStep", mGtk);
G_DEF_CONSTANTS(mGtk, GTK_TYPE_SCROLL_STEP, "GTK_");
-#endif
/* GtkScrollType */
G_DEF_CLASS(GTK_TYPE_SCROLL_TYPE, "ScrollType", mGtk);
diff --git a/gtk2/ext/gtk2/rbgtkdialog.c b/gtk2/ext/gtk2/rbgtkdialog.c
index 420432b..7041308 100644
--- a/gtk2/ext/gtk2/rbgtkdialog.c
+++ b/gtk2/ext/gtk2/rbgtkdialog.c
@@ -167,7 +167,6 @@ rg_set_response_sensitive(VALUE self, VALUE response_id, VALUE setting)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_s_alternative_dialog_button_order_p(G_GNUC_UNUSED VALUE self, VALUE screen)
{
@@ -197,8 +196,6 @@ rg_set_alternative_button_order(VALUE self, VALUE rbnew_order)
return self;
}
-#endif
-
static VALUE
rg_vbox(VALUE self)
{
@@ -211,13 +208,11 @@ rg_action_area(VALUE self)
return GOBJ2RVAL(_SELF(self)->action_area);
}
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_get_response(VALUE self, VALUE widget)
{
return INT2NUM(gtk_dialog_get_response_for_widget(_SELF(self), RVAL2GOBJ(widget)));
}
-#endif
void
Init_gtk_dialog(VALUE mGtk)
@@ -235,19 +230,14 @@ Init_gtk_dialog(VALUE mGtk)
RG_DEF_METHOD(set_default_response, 1);
G_DEF_SETTER(RG_TARGET_NAMESPACE, "default_response");
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_SMETHOD_P(alternative_dialog_button_order, 1);
RG_DEF_METHOD(set_alternative_button_order, 1);
-#endif
-
RG_DEF_METHOD(set_response_sensitive, 2);
RG_DEF_METHOD(vbox, 0);
RG_DEF_METHOD(action_area, 0);
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(get_response, 1);
RG_DEF_ALIAS("get_response_for_widget", "get_response");
-#endif
/* GtkDialogFlags */
G_DEF_CLASS(GTK_TYPE_DIALOG_FLAGS, "Flags", RG_TARGET_NAMESPACE);
diff --git a/gtk2/ext/gtk2/rbgtkdrag.c b/gtk2/ext/gtk2/rbgtkdrag.c
index 10b66f4..2921398 100644
--- a/gtk2/ext/gtk2/rbgtkdrag.c
+++ b/gtk2/ext/gtk2/rbgtkdrag.c
@@ -159,7 +159,6 @@ rg_m_dest_set_target_list(VALUE self, VALUE widget, VALUE target_list)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_m_dest_add_text_targets(VALUE self, VALUE widget)
{
@@ -178,9 +177,7 @@ rg_m_dest_add_uri_targets(VALUE self, VALUE widget)
gtk_drag_dest_add_uri_targets(RVAL2WIDGET(widget));
return self;
}
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_m_dest_set_track_motion(VALUE self, VALUE widget, VALUE track_motion)
{
@@ -193,7 +190,6 @@ rg_m_dest_get_track_motion(G_GNUC_UNUSED VALUE self, VALUE widget)
{
return CBOOL2RVAL(gtk_drag_dest_get_track_motion(RVAL2WIDGET(widget)));
}
-#endif
static VALUE
rg_m_finish(VALUE self, VALUE context, VALUE success, VALUE del, VALUE time)
@@ -273,14 +269,12 @@ rg_m_set_icon(int argc, VALUE *argv, VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_m_set_icon_name(VALUE self, VALUE context, VALUE name, VALUE hot_x, VALUE hot_y)
{
gtk_drag_set_icon_name(RVAL2DC(context), RVAL2CSTR(name), NUM2INT(hot_x), NUM2INT(hot_y));
return self;
}
-#endif
static VALUE
rg_m_set_icon_default(VALUE self, VALUE context)
@@ -335,14 +329,12 @@ rg_m_source_set_icon(int argc, VALUE *argv, VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_m_source_set_icon_name(VALUE self, VALUE widget, VALUE icon_name)
{
gtk_drag_source_set_icon_name(RVAL2WIDGET(widget), RVAL2CSTR(icon_name));
return self;
}
-#endif
static VALUE
rg_m_source_unset(VALUE self, VALUE widget)
@@ -351,7 +343,6 @@ rg_m_source_unset(VALUE self, VALUE widget)
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_m_source_set_target_list(VALUE self, VALUE widget, VALUE targetlist)
{
@@ -369,9 +360,7 @@ rg_m_source_get_target_list(G_GNUC_UNUSED VALUE self, VALUE widget)
GtkTargetList* ret = gtk_drag_source_get_target_list(RVAL2WIDGET(widget));
return NIL_P(ret) ? Qnil : BOXED2RVAL(ret, GTK_TYPE_TARGET_LIST);
}
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_m_source_add_text_targets(VALUE self, VALUE widget)
{
@@ -390,7 +379,6 @@ rg_m_source_add_uri_targets(VALUE self, VALUE widget)
gtk_drag_source_add_uri_targets(RVAL2WIDGET(widget));
return self;
}
-#endif
void
Init_gtk_drag(VALUE mGtk)
@@ -403,15 +391,11 @@ Init_gtk_drag(VALUE mGtk)
RG_DEF_MODFUNC(dest_find_target, -1);
RG_DEF_MODFUNC(dest_get_target_list, 1);
RG_DEF_MODFUNC(dest_set_target_list, 2);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_MODFUNC(dest_add_text_targets, 1);
RG_DEF_MODFUNC(dest_add_image_targets, 1);
RG_DEF_MODFUNC(dest_add_uri_targets, 1);
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_MODFUNC(dest_set_track_motion, 2);
RG_DEF_MODFUNC(dest_get_track_motion, 1);
-#endif
RG_DEF_MODFUNC(finish, 4);
RG_DEF_MODFUNC(get_data, 4);
RG_DEF_MODFUNC(get_source_widget, 1);
@@ -420,25 +404,17 @@ Init_gtk_drag(VALUE mGtk)
RG_DEF_MODFUNC(begin, 5);
RG_DEF_MODFUNC_P(threshold, 5);
RG_DEF_MODFUNC(set_icon, -1);
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_MODFUNC(set_icon_name, 4);
-#endif
RG_DEF_MODFUNC(set_icon_default, 1);
RG_DEF_MODFUNC(source_set, 4);
RG_DEF_MODFUNC(source_set_icon, -1);
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_MODFUNC(source_set_icon_name, 2);
-#endif
RG_DEF_MODFUNC(source_unset, 1);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_MODFUNC(source_set_target_list, 2);
RG_DEF_MODFUNC(source_get_target_list, 1);
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_MODFUNC(source_add_text_targets, 1);
RG_DEF_MODFUNC(source_add_image_targets, 1);
RG_DEF_MODFUNC(source_add_uri_targets, 1);
-#endif
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
/* GtkDestDefaults */
diff --git a/gtk2/ext/gtk2/rbgtkentry.c b/gtk2/ext/gtk2/rbgtkentry.c
index 4d2b129..4494c49 100644
--- a/gtk2/ext/gtk2/rbgtkentry.c
+++ b/gtk2/ext/gtk2/rbgtkentry.c
@@ -48,7 +48,6 @@ rg_layout_offsets(VALUE self)
return rb_ary_new3(2, INT2NUM(x), INT2NUM(y));
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_set_completion(VALUE self, VALUE completion)
{
@@ -64,7 +63,6 @@ rg_completion(VALUE self)
{
return GOBJ2RVAL(gtk_entry_get_completion(_SELF(self)));
}
-#endif
static VALUE
rg_layout_index_to_text_index(VALUE self, VALUE layout_index)
@@ -101,11 +99,9 @@ Init_gtk_entry(VALUE mGtk)
RG_DEF_METHOD(initialize, 0);
RG_DEF_METHOD(layout, 0);
RG_DEF_METHOD(layout_offsets, 0);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(set_completion, 1);
G_DEF_SETTER(RG_TARGET_NAMESPACE, "completion");
RG_DEF_METHOD(completion, 0);
-#endif
RG_DEF_METHOD(layout_index_to_text_index, 1);
RG_DEF_METHOD(text_index_to_layout_index, 1);
diff --git a/gtk2/ext/gtk2/rbgtkentrycompletion.c b/gtk2/ext/gtk2/rbgtkentrycompletion.c
index 021e8bb..d614763 100644
--- a/gtk2/ext/gtk2/rbgtkentrycompletion.c
+++ b/gtk2/ext/gtk2/rbgtkentrycompletion.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cEntryCompletion
#define _SELF(self) (GTK_ENTRY_COMPLETION(RVAL2GOBJ(self)))
@@ -65,14 +63,12 @@ rg_complete(VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_insert_prefix(VALUE self)
{
gtk_entry_completion_insert_prefix(_SELF(self));
return self;
}
-#endif
static VALUE
rg_insert_action_text(VALUE self, VALUE index, VALUE text)
@@ -110,21 +106,16 @@ rg_completion_prefix(VALUE self)
}
#endif
-#endif
-
void
Init_gtk_entry_completion(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_ENTRY_COMPLETION, "EntryCompletion", mGtk);
RG_DEF_METHOD(initialize, 0);
RG_DEF_METHOD(entry, 0);
RG_DEF_METHOD(set_match_func, 0);
RG_DEF_METHOD(complete, 0);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(insert_prefix, 0);
-#endif
RG_DEF_METHOD(insert_action_text, 2);
RG_DEF_METHOD(insert_action_markup, 2);
RG_DEF_METHOD(delete_action, 1);
@@ -134,5 +125,4 @@ Init_gtk_entry_completion(VALUE mGtk)
#if GTK_CHECK_VERSION(2, 12, 0)
RG_DEF_METHOD(completion_prefix, 0);
#endif
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkexpander.c b/gtk2/ext/gtk2/rbgtkexpander.c
index b283e08..0e46e8c 100644
--- a/gtk2/ext/gtk2/rbgtkexpander.c
+++ b/gtk2/ext/gtk2/rbgtkexpander.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cExpander
#define _SELF(self) (GTK_EXPANDER(RVAL2GOBJ(self)))
@@ -43,13 +41,9 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_expander(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_EXPANDER, "Expander", mGtk);
RG_DEF_METHOD(initialize, -1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkfilechooser.c b/gtk2/ext/gtk2/rbgtkfilechooser.c
index e2b7724..614846a 100644
--- a/gtk2/ext/gtk2/rbgtkfilechooser.c
+++ b/gtk2/ext/gtk2/rbgtkfilechooser.c
@@ -22,8 +22,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE mFileChooser
#define _SELF(self) GTK_FILE_CHOOSER(RVAL2GOBJ(self))
@@ -259,14 +257,10 @@ rg_shortcut_folder_uris(VALUE self)
{
return gslist2ary_free(gtk_file_chooser_list_shortcut_folder_uris(_SELF(self)));
}
-#endif
void
Init_gtk_file_chooser(VALUE mGtk)
{
-
-#if GTK_CHECK_VERSION(2,4,0)
-
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(GTK_TYPE_FILE_CHOOSER, "FileChooser", mGtk);
RG_DEF_METHOD(set_current_name, 1);
@@ -309,13 +303,9 @@ Init_gtk_file_chooser(VALUE mGtk)
G_DEF_ERROR(GTK_FILE_CHOOSER_ERROR, "FileChooserError", mGtk, rb_eRuntimeError,
GTK_TYPE_FILE_CHOOSER_ERROR);
-#if GTK_CHECK_VERSION(2,8,0)
/* GtkFileChooserConfirmation */
G_DEF_CLASS(GTK_TYPE_FILE_CHOOSER_CONFIRMATION, "Confirmation", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_FILE_CHOOSER_CONFIRMATION, "GTK_FILE_CHOOSER_");
-#endif
G_DEF_CLASS3("GtkFileChooserEmbed", "FileChooserEmbed", mGtk);
-
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkfilechooserbutton.c b/gtk2/ext/gtk2/rbgtkfilechooserbutton.c
index 7c9a3f3..5c6625f 100644
--- a/gtk2/ext/gtk2/rbgtkfilechooserbutton.c
+++ b/gtk2/ext/gtk2/rbgtkfilechooserbutton.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,6,0)
-
#define RG_TARGET_NAMESPACE cFileChooserButton
static VALUE
@@ -51,13 +49,9 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_filechooserbutton(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,6,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_FILE_CHOOSER_BUTTON, "FileChooserButton", mGtk);
RG_DEF_METHOD(initialize, -1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkfilechooserdialog.c b/gtk2/ext/gtk2/rbgtkfilechooserdialog.c
index e30c60c..2b0b9cc 100644
--- a/gtk2/ext/gtk2/rbgtkfilechooserdialog.c
+++ b/gtk2/ext/gtk2/rbgtkfilechooserdialog.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cFileChooserDialog
#define _SELF(self) GTK_FILE_CHOOSER_DIALOG(RVAL2GOBJ(self))
@@ -52,16 +50,10 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_file_chooser_dialog(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
-
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_FILE_CHOOSER_DIALOG, "FileChooserDialog", mGtk);
RG_DEF_METHOD(initialize, -1);
-
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkfilechooserwidget.c b/gtk2/ext/gtk2/rbgtkfilechooserwidget.c
index 30e1bbf..95fdd56 100644
--- a/gtk2/ext/gtk2/rbgtkfilechooserwidget.c
+++ b/gtk2/ext/gtk2/rbgtkfilechooserwidget.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cFileChooserWidget
static VALUE
@@ -43,16 +41,12 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
RBGTK_INITIALIZE(self, widget);
return Qnil;
}
-#endif
void
Init_gtk_file_chooser_widget(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_FILE_CHOOSER_WIDGET, "FileChooserWidget", mGtk);
RG_DEF_METHOD(initialize, -1);
-
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkfilefilter.c b/gtk2/ext/gtk2/rbgtkfilefilter.c
index 27d75de..1a1c444 100644
--- a/gtk2/ext/gtk2/rbgtkfilefilter.c
+++ b/gtk2/ext/gtk2/rbgtkfilefilter.c
@@ -22,8 +22,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cFileFilter
#define _SELF(self) GTK_FILE_FILTER(RVAL2GOBJ(self))
@@ -75,14 +73,12 @@ filter_func(const GtkFileFilterInfo *info, gpointer func)
CSTR2RVAL(info->mime_type)));
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_add_pixbuf_formats(VALUE self)
{
gtk_file_filter_add_pixbuf_formats(_SELF(self));
return self;
}
-#endif
static VALUE
rg_add_custom(VALUE self, VALUE needed)
@@ -112,13 +108,10 @@ rg_filter_p(VALUE self, VALUE contains, VALUE filename, VALUE uri, VALUE display
return CBOOL2RVAL(gtk_file_filter_filter(_SELF(self), &info));
}
-#endif
void
Init_gtk_file_filter(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
-
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_FILE_FILTER, "FileFilter", mGtk);
RG_DEF_METHOD(initialize, 0);
@@ -126,9 +119,7 @@ Init_gtk_file_filter(VALUE mGtk)
RG_DEF_METHOD(name, 0);
RG_DEF_METHOD(add_mime_type, 1);
RG_DEF_METHOD(add_pattern, 1);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(add_pixbuf_formats, 0);
-#endif
RG_DEF_METHOD(add_custom, 1);
RG_DEF_METHOD(needed, 0);
RG_DEF_METHOD_P(filter, 5);
@@ -137,6 +128,4 @@ Init_gtk_file_filter(VALUE mGtk)
G_DEF_CLASS(GTK_TYPE_FILE_FILTER_FLAGS, "Flags", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_FILE_FILTER_FLAGS, "GTK_FILE_FILTER_");
-
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkfilesystemerror.c b/gtk2/ext/gtk2/rbgtkfilesystemerror.c
index c058f1c..f6fdfe4 100644
--- a/gtk2/ext/gtk2/rbgtkfilesystemerror.c
+++ b/gtk2/ext/gtk2/rbgtkfilesystemerror.c
@@ -27,7 +27,6 @@
void
Init_gtk_filesystemerror(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
#ifdef GTK_FILE_SYSTEM_ERROR
VALUE RG_TARGET_NAMESPACE;
@@ -47,5 +46,4 @@ Init_gtk_filesystemerror(VALUE mGtk)
rb_define_const(RG_TARGET_NAMESPACE, "ALREADY_EXSITS",
INT2NUM(GTK_FILE_SYSTEM_ERROR_ALREADY_EXISTS));
#endif
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkfontbutton.c b/gtk2/ext/gtk2/rbgtkfontbutton.c
index b5f24c9..29cf07c 100644
--- a/gtk2/ext/gtk2/rbgtkfontbutton.c
+++ b/gtk2/ext/gtk2/rbgtkfontbutton.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cFontButton
static VALUE
@@ -43,13 +41,9 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_fontbutton(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_FONT_BUTTON, "FontButton", mGtk);
RG_DEF_METHOD(initialize, -1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkiconinfo.c b/gtk2/ext/gtk2/rbgtkiconinfo.c
index 2153b91..e0295b7 100644
--- a/gtk2/ext/gtk2/rbgtkiconinfo.c
+++ b/gtk2/ext/gtk2/rbgtkiconinfo.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cIconInfo
#define _SELF(i) ((GtkIconInfo*)RVAL2BOXED(i, GTK_TYPE_ICON_INFO))
@@ -100,12 +98,10 @@ rg_display_name(VALUE self)
{
return CSTR2RVAL(gtk_icon_info_get_display_name(_SELF(self)));
}
-#endif
void
Init_gtk_iconinfo(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_ICON_INFO, "IconInfo", mGtk);
RG_DEF_METHOD(base_size, 0);
@@ -118,5 +114,4 @@ Init_gtk_iconinfo(VALUE mGtk)
RG_DEF_METHOD(display_name, 0);
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkiconsize.c b/gtk2/ext/gtk2/rbgtkiconsize.c
index 0f73d2d..6079923 100644
--- a/gtk2/ext/gtk2/rbgtkiconsize.c
+++ b/gtk2/ext/gtk2/rbgtkiconsize.c
@@ -34,7 +34,6 @@ rg_m_lookup(G_GNUC_UNUSED VALUE self, VALUE size)
return Qnil;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_m_lookup_for_settings(G_GNUC_UNUSED VALUE self, VALUE settings, VALUE size)
{
@@ -47,7 +46,6 @@ rg_m_lookup_for_settings(G_GNUC_UNUSED VALUE self, VALUE settings, VALUE size)
else
return Qnil;
}
-#endif
static VALUE
rg_m_register(G_GNUC_UNUSED VALUE self, VALUE name, VALUE width, VALUE height)
@@ -83,9 +81,7 @@ Init_gtk_icon_size(VALUE mGtk)
VALUE RG_TARGET_NAMESPACE = rb_define_module_under(mGtk, "IconSize");
RG_DEF_MODFUNC(lookup, 1);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_MODFUNC(lookup_for_settings, 2);
-#endif
RG_DEF_MODFUNC(register, 3);
RG_DEF_MODFUNC(register_alias, 2);
RG_DEF_MODFUNC(from_name, 1);
diff --git a/gtk2/ext/gtk2/rbgtkicontheme.c b/gtk2/ext/gtk2/rbgtkicontheme.c
index 06a351c..1ef61a4 100644
--- a/gtk2/ext/gtk2/rbgtkicontheme.c
+++ b/gtk2/ext/gtk2/rbgtkicontheme.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cIconTheme
#define _SELF(i) GTK_ICON_THEME(RVAL2GOBJ(i))
@@ -149,7 +147,6 @@ rg_icons(int argc, VALUE *argv, VALUE self)
return GLIST2ARY_STR_FREE(icons);
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_get_icon_sizes(VALUE self, VALUE icon_name)
{
@@ -164,7 +161,6 @@ rg_get_icon_sizes(VALUE self, VALUE icon_name)
g_free(sizes);
return ary;
}
-#endif
static VALUE
rg_example_icon_name(VALUE self)
@@ -236,12 +232,9 @@ rg_contexts(VALUE self)
}
#endif
-#endif
-
void
Init_gtk_icon_theme(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_ICON_THEME, "IconTheme", mGtk);
RG_DEF_METHOD(initialize, 0);
@@ -257,9 +250,7 @@ Init_gtk_icon_theme(VALUE mGtk)
RG_DEF_METHOD(lookup_icon, 3);
RG_DEF_METHOD(load_icon, 3);
RG_DEF_METHOD(icons, -1);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(get_icon_sizes, 1);
-#endif
RG_DEF_METHOD(example_icon_name, 0);
RG_DEF_METHOD(rescan_if_needed, 0);
@@ -279,6 +270,4 @@ Init_gtk_icon_theme(VALUE mGtk)
/* GtkIconLookupFlags */
G_DEF_CLASS(GTK_TYPE_ICON_LOOKUP_FLAGS, "LookupFlags", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_ICON_LOOKUP_FLAGS, "GTK_ICON_");
-
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkiconview.c b/gtk2/ext/gtk2/rbgtkiconview.c
index aa3ab54..0788a9a 100644
--- a/gtk2/ext/gtk2/rbgtkiconview.c
+++ b/gtk2/ext/gtk2/rbgtkiconview.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,6,0)
-
#define RG_TARGET_NAMESPACE cIconView
#define _SELF(s) (GTK_ICON_VIEW(RVAL2GOBJ(s)))
@@ -105,9 +103,7 @@ rg_item_activated(VALUE self, VALUE path)
gtk_icon_view_item_activated(_SELF(self), RVAL2GTKTREEPATH(path));
return self;
}
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_create_drag_icon(VALUE self, VALUE path)
{
@@ -236,12 +232,10 @@ rg_unset_model_drag_source(VALUE self)
gtk_icon_view_unset_model_drag_source(_SELF(self));
return self;
}
-#endif
void
Init_gtk_iconview(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,6,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_ICON_VIEW, "IconView", mGtk);
id_model = rb_intern("model");
@@ -256,8 +250,6 @@ Init_gtk_iconview(VALUE mGtk)
RG_DEF_METHOD_P(path_is_selected, 1);
RG_DEF_METHOD(selected_items, 0);
RG_DEF_METHOD(item_activated, 1);
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(create_drag_icon, 1);
RG_DEF_METHOD(enable_model_drag_dest, 2);
RG_DEF_METHOD(enable_model_drag_source, 3);
@@ -275,5 +267,4 @@ Init_gtk_iconview(VALUE mGtk)
/* GtkIconViewDropPosition */
G_DEF_CLASS(GTK_TYPE_ICON_VIEW_DROP_POSITION, "Type", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_ICON_VIEW_DROP_POSITION, "GTK_ICON_VIEW_");
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkimage.c b/gtk2/ext/gtk2/rbgtkimage.c
index f389aad..f69dff0 100644
--- a/gtk2/ext/gtk2/rbgtkimage.c
+++ b/gtk2/ext/gtk2/rbgtkimage.c
@@ -40,11 +40,9 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
} else if (TYPE(arg1) == T_SYMBOL){
widget = gtk_image_new_from_stock(rb_id2name(SYM2ID(arg1)),
RVAL2GENUM(arg2, GTK_TYPE_ICON_SIZE));
-#if GTK_CHECK_VERSION(2,6,0)
} else if (TYPE(arg1) == T_STRING){
widget = gtk_image_new_from_icon_name(RVAL2CSTR(arg1),
RVAL2GENUM(arg2, GTK_TYPE_ICON_SIZE));
-#endif
} else {
gtype = RVAL2GTYPE(arg1);
if (gtype == GDK_TYPE_IMAGE){
@@ -78,11 +76,9 @@ rg_set(int argc, VALUE *argv, VALUE self)
} else if (TYPE(arg1) == T_SYMBOL){
gtk_image_set_from_stock(_SELF(self), rb_id2name(SYM2ID(arg1)),
RVAL2GENUM(arg2, GTK_TYPE_ICON_SIZE));
-#if GTK_CHECK_VERSION(2,6,0)
} else if (TYPE(arg1) == T_STRING){
gtk_image_set_from_icon_name(_SELF(self), RVAL2CSTR(arg1),
RVAL2GENUM(arg2, GTK_TYPE_ICON_SIZE));
-#endif
} else {
gtype = RVAL2GTYPE(arg1);
if (gtype == GDK_TYPE_IMAGE){
@@ -108,14 +104,12 @@ rg_set(int argc, VALUE *argv, VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_clear(VALUE self)
{
gtk_image_clear(_SELF(self));
return self;
}
-#endif
void
Init_gtk_image(VALUE mGtk)
@@ -123,9 +117,7 @@ Init_gtk_image(VALUE mGtk)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_IMAGE, "Image", mGtk);
RG_DEF_METHOD(initialize, -1);
RG_DEF_METHOD(set, -1);
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(clear, 0);
-#endif
/* GtkImageType */
G_DEF_CLASS(GTK_TYPE_IMAGE_TYPE, "Type", RG_TARGET_NAMESPACE);
diff --git a/gtk2/ext/gtk2/rbgtkinvisible.c b/gtk2/ext/gtk2/rbgtkinvisible.c
index c3331f9..c786759 100644
--- a/gtk2/ext/gtk2/rbgtkinvisible.c
+++ b/gtk2/ext/gtk2/rbgtkinvisible.c
@@ -34,12 +34,8 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
if (argc == 0){
RBGTK_INITIALIZE(self, gtk_invisible_new());
} else {
-#if GTK_CHECK_VERSION(2,2,0)
RBGTK_INITIALIZE(self, gtk_invisible_new_for_screen(
GDK_SCREEN(RVAL2GOBJ(screen))));
-#else
- rb_raise(rb_eArgError, "GTK+-2.2 feature. GTK+-2.0.x doesn't support this.");
-#endif
}
return Qnil;
}
diff --git a/gtk2/ext/gtk2/rbgtklinkbutton.c b/gtk2/ext/gtk2/rbgtklinkbutton.c
index 12987fa..bc86350 100644
--- a/gtk2/ext/gtk2/rbgtklinkbutton.c
+++ b/gtk2/ext/gtk2/rbgtklinkbutton.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cLinkButton
#define _SELF(self) (GTK_LINK_BUTTON(RVAL2GOBJ(self)))
@@ -56,15 +54,12 @@ rg_s_set_uri_hook(VALUE self)
gtk_link_button_set_uri_hook((GtkLinkButtonUriFunc)link_func, (gpointer)func, (GDestroyNotify)NULL);
return self;
}
-#endif
void
Init_gtk_link_button(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_LINK_BUTTON, "LinkButton", mGtk);
RG_DEF_METHOD(initialize, -1);
RG_DEF_SMETHOD(set_uri_hook, 0);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkliststore.c b/gtk2/ext/gtk2/rbgtkliststore.c
index 25c6278..3f007af 100644
--- a/gtk2/ext/gtk2/rbgtkliststore.c
+++ b/gtk2/ext/gtk2/rbgtkliststore.c
@@ -192,12 +192,7 @@ static VALUE
rg_remove(VALUE self, VALUE iter)
{
G_CHILD_REMOVE(self, iter);
-#if GTK_CHECK_VERSION(2,2,0)
return CBOOL2RVAL(gtk_list_store_remove(_SELF(self), RVAL2GTKTREEITER(iter)));
-#else
- gtk_list_store_remove(_SELF(self), RVAL2GTKTREEITER(iter));
- return Qtrue;
-#endif
}
struct lstore_insert_args {
@@ -267,7 +262,6 @@ rg_insert(int argc, VALUE *argv, VALUE self)
if (NIL_P(values)){
gtk_list_store_insert(args.store, &args.iter, args.position);
} else {
-#if GTK_CHECK_VERSION(2,6,0)
args.ary = rb_funcall(values, id_to_a, 0);
args.n = RARRAY_LEN(args.ary);
args.columns = g_new(gint, args.n);
@@ -275,10 +269,6 @@ rg_insert(int argc, VALUE *argv, VALUE self)
rb_ensure(lstore_insert_body, (VALUE)&args,
lstore_insert_ensure, (VALUE)&args);
-#else
- gtk_list_store_insert(args.store, &args.iter, args.position);
- rb_warn("Ignored 2nd argument under this environment, as it has been supported since GTK+-2.6.");
-#endif
}
args.iter.user_data3 = args.store;
@@ -348,7 +338,6 @@ rg_clear(VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_iter_is_valid_p(VALUE self, VALUE iter)
{
@@ -389,7 +378,6 @@ rg_move_after(VALUE self, VALUE iter, VALUE position)
NIL_P(position) ? NULL : RVAL2GTKTREEITER(position));
return self;
}
-#endif
void
Init_gtk_list_store(VALUE mGtk)
@@ -411,13 +399,11 @@ Init_gtk_list_store(VALUE mGtk)
RG_DEF_METHOD(prepend, 0);
RG_DEF_METHOD(append, 0);
RG_DEF_METHOD(clear, 0);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD_P(iter_is_valid, 1);
RG_DEF_METHOD(reorder, 1);
RG_DEF_METHOD(swap, 2);
RG_DEF_METHOD(move_before, 2);
RG_DEF_METHOD(move_after, 2);
-#endif
#if GTK_CHECK_VERSION(2, 12, 0)
RG_DEF_METHOD(set_values, 2);
#endif
diff --git a/gtk2/ext/gtk2/rbgtkmenu.c b/gtk2/ext/gtk2/rbgtkmenu.c
index 1b64e91..d6b9f88 100644
--- a/gtk2/ext/gtk2/rbgtkmenu.c
+++ b/gtk2/ext/gtk2/rbgtkmenu.c
@@ -35,14 +35,12 @@ rg_initialize(VALUE self)
return Qnil;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_set_screen(VALUE self, VALUE screen)
{
gtk_menu_set_screen(_SELF(self), GDK_SCREEN(RVAL2GOBJ(screen)));
return self;
}
-#endif
static VALUE
rg_reorder_child(VALUE self, VALUE child, VALUE position)
@@ -52,7 +50,6 @@ rg_reorder_child(VALUE self, VALUE child, VALUE position)
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_attach(VALUE self, VALUE child, VALUE left_attach, VALUE right_attach, VALUE top_attach, VALUE bottom_attach)
{
@@ -61,7 +58,6 @@ rg_attach(VALUE self, VALUE child, VALUE left_attach, VALUE right_attach, VALUE
NUM2UINT(top_attach), NUM2UINT(bottom_attach));
return self;
}
-#endif
static void
menu_pos_func(GtkMenu *menu, gint *px, gint *py, gboolean *push_in, gpointer data)
@@ -149,14 +145,12 @@ rg_detach(VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_s_get_for_attach_widget(G_GNUC_UNUSED VALUE self, VALUE widget)
{
/* Owned by GTK+ */
return GLIST2ARY(gtk_menu_get_for_attach_widget(GTK_WIDGET(RVAL2GOBJ(widget))));
}
-#endif
void
Init_gtk_menu(VALUE mGtk)
@@ -164,20 +158,14 @@ Init_gtk_menu(VALUE mGtk)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_MENU, "Menu", mGtk);
RG_DEF_METHOD(initialize, 0);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(set_screen, 1);
G_DEF_SETTER(RG_TARGET_NAMESPACE, "screen");
-#endif
RG_DEF_METHOD(reorder_child, 2);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(attach, 5);
-#endif
RG_DEF_METHOD(popup, 4);
RG_DEF_METHOD(popdown, 0);
RG_DEF_METHOD(reposition, 0);
RG_DEF_METHOD(detach, 0);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_SMETHOD(get_for_attach_widget, 1);
-#endif
RG_DEF_METHOD(attach_to_widget, 1);
}
diff --git a/gtk2/ext/gtk2/rbgtkmenubar.c b/gtk2/ext/gtk2/rbgtkmenubar.c
index 9317b47..ce9b0d5 100644
--- a/gtk2/ext/gtk2/rbgtkmenubar.c
+++ b/gtk2/ext/gtk2/rbgtkmenubar.c
@@ -39,9 +39,7 @@ Init_gtk_menu_bar(VALUE mGtk)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_MENU_BAR, "MenuBar", mGtk);
RG_DEF_METHOD(initialize, 0);
-#if GTK_CHECK_VERSION(2,8,0)
/* GtkPackDirection */
G_DEF_CLASS(GTK_TYPE_PACK_DIRECTION, "PackDirection", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_PACK_DIRECTION, "GTK_");
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkmenushell.c b/gtk2/ext/gtk2/rbgtkmenushell.c
index 31657f4..a805b9e 100644
--- a/gtk2/ext/gtk2/rbgtkmenushell.c
+++ b/gtk2/ext/gtk2/rbgtkmenushell.c
@@ -67,14 +67,12 @@ rg_select_item(VALUE self, VALUE menu_item)
return self;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_select_first(VALUE self, VALUE search_sensitive)
{
gtk_menu_shell_select_first(_SELF(self), RVAL2CBOOL(search_sensitive));
return self;
}
-#endif
static VALUE
rg_deselect(VALUE self)
@@ -101,9 +99,7 @@ Init_gtk_menu_shell(VALUE mGtk)
RG_DEF_METHOD(insert, 2);
RG_DEF_METHOD(deactivate, 0);
RG_DEF_METHOD(select_item, 1);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(select_first, 1);
-#endif
RG_DEF_METHOD(deselect, 0);
RG_DEF_METHOD(activate_item, 2);
/* GtkMenuDirectionType */
diff --git a/gtk2/ext/gtk2/rbgtkmenutoolbutton.c b/gtk2/ext/gtk2/rbgtkmenutoolbutton.c
index 28eb10d..719dab9 100644
--- a/gtk2/ext/gtk2/rbgtkmenutoolbutton.c
+++ b/gtk2/ext/gtk2/rbgtkmenutoolbutton.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,6,0)
-
#define RG_TARGET_NAMESPACE cMenuToolButton
#define _SELF(self) (GTK_MENU_TOOL_BUTTON(RVAL2GOBJ(self)))
@@ -65,15 +63,12 @@ rg_set_arrow_tooltip(int argc, VALUE *argv, VALUE self)
NIL_P(tip_private) ? NULL : RVAL2CSTR(tip_private));
return self;
}
-#endif
void
Init_gtk_menutoolbutton(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,6,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_MENU_TOOL_BUTTON, "MenuToolButton", mGtk);
RG_DEF_METHOD(initialize, -1);
RG_DEF_METHOD(set_arrow_tooltip, -1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkmessagedialog.c b/gtk2/ext/gtk2/rbgtkmessagedialog.c
index 06134fa..a36a195 100644
--- a/gtk2/ext/gtk2/rbgtkmessagedialog.c
+++ b/gtk2/ext/gtk2/rbgtkmessagedialog.c
@@ -52,14 +52,12 @@ GtkWidget* gtk_message_dialog_new_with_markup
const gchar *message_format,
...);
*/
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_set_markup(VALUE self, VALUE str)
{
gtk_message_dialog_set_markup(_SELF(self), RVAL2CSTR(str));
return self;
}
-#endif
/* Not needed in Ruby
void gtk_message_dialog_format_secondary_text
@@ -78,10 +76,8 @@ Init_gtk_message_dialog(VALUE mGtk)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_MESSAGE_DIALOG, "MessageDialog", mGtk);
RG_DEF_METHOD(initialize, -1);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(set_markup, 1);
G_DEF_SETTER(RG_TARGET_NAMESPACE, "markup");
-#endif
/* GtkMessageType */
G_DEF_CLASS(GTK_TYPE_MESSAGE_TYPE, "Type", RG_TARGET_NAMESPACE);
diff --git a/gtk2/ext/gtk2/rbgtknotebook.c b/gtk2/ext/gtk2/rbgtknotebook.c
index 8a1ef16..1734cab 100644
--- a/gtk2/ext/gtk2/rbgtknotebook.c
+++ b/gtk2/ext/gtk2/rbgtknotebook.c
@@ -168,13 +168,11 @@ rg_get_nth_page(VALUE self, VALUE page_num)
return page ? GOBJ2RVAL(page) : Qnil;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_n_pages(VALUE self)
{
return INT2NUM(gtk_notebook_get_n_pages(_SELF(self)));
}
-#endif
static VALUE
rg_get_tab_label(VALUE self, VALUE child)
@@ -260,7 +258,6 @@ rg_get_tab_label_text(VALUE self, VALUE child)
RVAL2WIDGET(child)));
}
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_get_tab_reorderable(VALUE self, VALUE child)
{
@@ -307,7 +304,6 @@ rg_s_set_window_creation_hook(VALUE self)
(gpointer)func, (GDestroyNotify)NULL);
return self;
}
-#endif
#if GTK_CHECK_VERSION(2,20,0)
static VALUE
@@ -389,9 +385,7 @@ Init_gtk_notebook(VALUE mGtk)
RG_DEF_METHOD(reorder_child, 2);
RG_DEF_METHOD(get_menu_label, 1);
RG_DEF_METHOD(get_nth_page, 1);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(n_pages, 0);
-#endif
RG_DEF_METHOD(get_tab_label, 1);
RG_DEF_METHOD(query_tab_label_packing, 1);
RG_DEF_METHOD(set_menu_label, 2);
@@ -401,14 +395,11 @@ Init_gtk_notebook(VALUE mGtk)
RG_DEF_METHOD(set_tab_label_text, 2);
RG_DEF_METHOD(get_menu_label_text, 1);
RG_DEF_METHOD(get_tab_label_text, 1);
-
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(get_tab_reorderable, 1);
RG_DEF_METHOD(set_tab_reorderable, 2);
RG_DEF_METHOD(get_tab_detachable, 1);
RG_DEF_METHOD(set_tab_detachable, 2);
RG_DEF_SMETHOD(set_window_creation_hook, 0);
-#endif
#if GTK_CHECK_VERSION(2,20,0)
RG_DEF_METHOD(set_action_widget, 2);
RG_DEF_METHOD(get_action_widget, 1);
diff --git a/gtk2/ext/gtk2/rbgtkpagesetup.c b/gtk2/ext/gtk2/rbgtkpagesetup.c
index f3b89f4..a39ad5b 100644
--- a/gtk2/ext/gtk2/rbgtkpagesetup.c
+++ b/gtk2/ext/gtk2/rbgtkpagesetup.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cPageSetup
#define _SELF(s) (GTK_PAGE_SETUP(RVAL2GOBJ(s)))
@@ -167,12 +165,10 @@ rg_get_page_height(VALUE self, VALUE unit)
return rb_float_new(gtk_page_setup_get_page_height(_SELF(self),
RVAL2UNIT(unit)));
}
-#endif
void
Init_gtk_page_setup(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_PAGE_SETUP, "PageSetup", mGtk);
RG_DEF_METHOD(initialize, 0);
@@ -202,5 +198,4 @@ Init_gtk_page_setup(VALUE mGtk)
RG_DEF_METHOD(get_page_height, 1);
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkpapersize.c b/gtk2/ext/gtk2/rbgtkpapersize.c
index 69bb0f5..c500e3b 100644
--- a/gtk2/ext/gtk2/rbgtkpapersize.c
+++ b/gtk2/ext/gtk2/rbgtkpapersize.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cPaperSize
#define _SELF(s) (RVAL2BOXED(s, GTK_TYPE_PAPER_SIZE))
#define SIZE2RVAL(o) (BOXED2RVAL(o, GTK_TYPE_PAPER_SIZE))
@@ -144,12 +142,10 @@ rg_s_default(G_GNUC_UNUSED VALUE self)
{
return CSTR2RVAL(gtk_paper_size_get_default());
}
-#endif
void
Init_gtk_paper_size(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_PAPER_SIZE, "PaperSize", mGtk);
RG_DEF_SMETHOD(default, 0);
@@ -187,6 +183,4 @@ Init_gtk_paper_size(VALUE mGtk)
/* GtkUnit */
G_DEF_CLASS(GTK_TYPE_UNIT, "Unit", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_UNIT, "GTK_");
-
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkprintcontext.c b/gtk2/ext/gtk2/rbgtkprintcontext.c
index 1df0c17..9f16786 100644
--- a/gtk2/ext/gtk2/rbgtkprintcontext.c
+++ b/gtk2/ext/gtk2/rbgtkprintcontext.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cPrintContext
#define _SELF(s) (GTK_PRINT_CONTEXT(RVAL2GOBJ(s)))
@@ -98,12 +96,10 @@ rg_set_cairo_context(VALUE self, VALUE cr, VALUE dpi_x, VALUE dpi_y)
return self;
}
# endif
-#endif
void
Init_gtk_print_context(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_PRINT_CONTEXT,
"PrintContext", mGtk);
@@ -128,5 +124,4 @@ Init_gtk_print_context(VALUE mGtk)
# endif
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkprintoperation.c b/gtk2/ext/gtk2/rbgtkprintoperation.c
index d0b80c8..f36b2c0 100644
--- a/gtk2/ext/gtk2/rbgtkprintoperation.c
+++ b/gtk2/ext/gtk2/rbgtkprintoperation.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cPrintOperation
#define _SELF(s) (GTK_PRINT_OPERATION(RVAL2GOBJ(s)))
@@ -127,12 +125,10 @@ rg_s_run_page_setup_dialog(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
RVAL2GOBJ(settings)));
}
}
-#endif
void
Init_gtk_print_operation(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_PRINT_OPERATION, "PrintOperation", mGtk);
G_DEF_ERROR(GTK_PRINT_ERROR, "PrintError", mGtk, rb_eRuntimeError,
@@ -157,5 +153,4 @@ Init_gtk_print_operation(VALUE mGtk)
/* GtkPrintOperationResult */
G_DEF_CLASS(GTK_TYPE_PRINT_OPERATION_RESULT, "Result", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_PRINT_OPERATION_RESULT, "GTK_PRINT_OPERATION_");
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkprintoperationpreview.c b/gtk2/ext/gtk2/rbgtkprintoperationpreview.c
index 248c847..3c5e885 100644
--- a/gtk2/ext/gtk2/rbgtkprintoperationpreview.c
+++ b/gtk2/ext/gtk2/rbgtkprintoperationpreview.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cPrintOperationPreview
#define _SELF(s) (GTK_PRINT_OPERATION_PREVIEW(RVAL2GOBJ(s)))
@@ -48,12 +46,10 @@ rg_selected_p(VALUE self, VALUE page_number)
NUM2INT(page_number));
return CBOOL2RVAL(selected);
}
-#endif
void
Init_gtk_print_operation_preview(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_PRINT_OPERATION_PREVIEW,
"PrintOperationPreview", mGtk);
@@ -62,5 +58,4 @@ Init_gtk_print_operation_preview(VALUE mGtk)
RG_DEF_METHOD_P(selected, 1);
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkprintsettings.c b/gtk2/ext/gtk2/rbgtkprintsettings.c
index 662c17e..88b6055 100644
--- a/gtk2/ext/gtk2/rbgtkprintsettings.c
+++ b/gtk2/ext/gtk2/rbgtkprintsettings.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cPrintSettings
#define _SELF(s) (GTK_PRINT_SETTINGS(RVAL2GOBJ(s)))
@@ -657,7 +655,6 @@ rg_set_output_bin(VALUE self, VALUE output_bin)
gtk_print_settings_set_output_bin(_SELF(self), RVAL2CSTR_ACCEPT_NIL(output_bin));
return self;
}
-#endif
#if GTK_CHECK_VERSION(2,12,0)
static VALUE
@@ -684,7 +681,6 @@ rg_to_key_file(int argc, VALUE *argv, VALUE self)
void
Init_gtk_print_settings(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE;
s_string = ID2SYM(rb_intern("string"));
@@ -839,7 +835,6 @@ Init_gtk_print_settings(VALUE mGtk)
/* GtkPageSet */
G_DEF_CLASS(GTK_TYPE_PAGE_SET, "PageSet", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_PAGE_SET, "GTK_");
-#endif
#if GTK_CHECK_VERSION(2,12,0)
RG_DEF_METHOD(to_file, 1);
RG_DEF_METHOD(to_key_file, -1);
diff --git a/gtk2/ext/gtk2/rbgtkradioaction.c b/gtk2/ext/gtk2/rbgtkradioaction.c
index e06ca56..cba1bc8 100644
--- a/gtk2/ext/gtk2/rbgtkradioaction.c
+++ b/gtk2/ext/gtk2/rbgtkradioaction.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cRadioAction
#define _SELF(self) (GTK_RADIO_ACTION(RVAL2GOBJ(self)))
@@ -111,28 +109,12 @@ raction_set_group(VALUE self, VALUE rbgroup)
return self;
}
-#if ! GTK_CHECK_VERSION(2,10,0)
-static VALUE
-rg_current_value(VALUE self)
-{
- return INT2NUM(gtk_radio_action_get_current_value(_SELF(self)));
-}
-#endif
-
-#endif
-
void
Init_gtk_radio_action(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RADIO_ACTION, "RadioAction", mGtk);
RG_DEF_METHOD(initialize, 5);
-#if ! GTK_CHECK_VERSION(2,10,0)
- /* Define as Property since 2.10 */
- RG_DEF_METHOD(current_value, 0);
-#endif
G_REPLACE_GET_PROPERTY(RG_TARGET_NAMESPACE, "group", raction_get_group, 0);
G_REPLACE_SET_PROPERTY(RG_TARGET_NAMESPACE, "group", raction_set_group, 1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkradiotoolbutton.c b/gtk2/ext/gtk2/rbgtkradiotoolbutton.c
index 8c33211..b062059 100644
--- a/gtk2/ext/gtk2/rbgtkradiotoolbutton.c
+++ b/gtk2/ext/gtk2/rbgtkradiotoolbutton.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cRadioToolButton
#define _SELF(self) (GTK_RADIO_TOOL_BUTTON(RVAL2GOBJ(self)))
@@ -123,16 +121,12 @@ rbtn_set_group(VALUE self, VALUE rbgroup)
return self;
}
-#endif
-
void
Init_gtk_radiotoolbutton(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RADIO_TOOL_BUTTON, "RadioToolButton", mGtk);
RG_DEF_METHOD(initialize, -1);
G_REPLACE_GET_PROPERTY(RG_TARGET_NAMESPACE, "group", rbtn_get_group, 0);
G_REPLACE_SET_PROPERTY(RG_TARGET_NAMESPACE, "group", rbtn_set_group, 1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkrange.c b/gtk2/ext/gtk2/rbgtkrange.c
index 2d492f4..b24cae3 100644
--- a/gtk2/ext/gtk2/rbgtkrange.c
+++ b/gtk2/ext/gtk2/rbgtkrange.c
@@ -65,9 +65,7 @@ Init_gtk_range(VALUE mGtk)
RG_DEF_METHOD(set_value, 1);
G_DEF_SETTER(RG_TARGET_NAMESPACE, "value");
-#if GTK_CHECK_VERSION(2,10,0)
/* GtkSensitivityType */
G_DEF_CLASS(GTK_TYPE_SENSITIVITY_TYPE, "SensitivityType", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_SENSITIVITY_TYPE, "GTK_");
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkrc.c b/gtk2/ext/gtk2/rbgtkrc.c
index 8837fc7..20785a3 100644
--- a/gtk2/ext/gtk2/rbgtkrc.c
+++ b/gtk2/ext/gtk2/rbgtkrc.c
@@ -99,14 +99,12 @@ rg_m_reparse_all_for_settings(G_GNUC_UNUSED VALUE self, VALUE settings, VALUE fo
RVAL2CBOOL(force_load)));
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_m_reset_styles(G_GNUC_UNUSED VALUE self, VALUE settings)
{
gtk_rc_reset_styles(GTK_SETTINGS(RVAL2GOBJ(settings)));
return settings;
}
-#endif
static VALUE
rg_m_add_default_file(G_GNUC_UNUSED VALUE self, VALUE filename)
@@ -197,9 +195,7 @@ Init_gtk_rc(VALUE mGtk)
RG_DEF_MODFUNC(parse_string, 1);
RG_DEF_MODFUNC(reparse_all, 0);
RG_DEF_MODFUNC(reparse_all_for_settings, 2);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_MODFUNC(reset_styles, 1);
-#endif
RG_DEF_MODFUNC(add_default_file, 1);
RG_DEF_MODFUNC(default_files, 0);
RG_DEF_MODFUNC(set_default_files, 1);
diff --git a/gtk2/ext/gtk2/rbgtkrecentchooser.c b/gtk2/ext/gtk2/rbgtkrecentchooser.c
index 9f547d4..ff9f183 100644
--- a/gtk2/ext/gtk2/rbgtkrecentchooser.c
+++ b/gtk2/ext/gtk2/rbgtkrecentchooser.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cRecentChooser
#define _SELF(self) (GTK_RECENT_CHOOSER(RVAL2GOBJ(self)))
@@ -184,12 +182,10 @@ rg_filters(VALUE self)
{
return GSLIST2ARYF(gtk_recent_chooser_list_filters(_SELF(self)));
}
-#endif
void
Init_gtk_recent_chooser(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RECENT_CHOOSER, "RecentChooser", mGtk);
RG_DEF_METHOD(set_show_numbers, 1);
@@ -217,6 +213,4 @@ Init_gtk_recent_chooser(VALUE mGtk)
/* GtkRecentSortType */
G_DEF_CLASS(GTK_TYPE_RECENT_SORT_TYPE, "SortType", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_RECENT_SORT_TYPE, "GTK_RECENT_");
-#endif
-
}
diff --git a/gtk2/ext/gtk2/rbgtkrecentchooserdialog.c b/gtk2/ext/gtk2/rbgtkrecentchooserdialog.c
index 71b0fd8..23d78f2 100644
--- a/gtk2/ext/gtk2/rbgtkrecentchooserdialog.c
+++ b/gtk2/ext/gtk2/rbgtkrecentchooserdialog.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cRecentChooserDialog
#define _SELF(self) (GTK_RECENT_CHOOSER_DIALOG(RVAL2GOBJ(self)))
@@ -54,14 +52,11 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
}
return Qnil;
}
-#endif
void
Init_gtk_recent_chooser_dialog(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RECENT_CHOOSER_DIALOG, "RecentChooserDialog", mGtk);
RG_DEF_METHOD(initialize, -1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkrecentchoosermenu.c b/gtk2/ext/gtk2/rbgtkrecentchoosermenu.c
index 7725344..2a75ed7 100644
--- a/gtk2/ext/gtk2/rbgtkrecentchoosermenu.c
+++ b/gtk2/ext/gtk2/rbgtkrecentchoosermenu.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cRecentChooserMenu
#define _SELF(self) (GTK_RECENT_CHOOSER_MENU(RVAL2GOBJ(self)))
@@ -43,14 +41,10 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_recent_chooser_menu(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RECENT_CHOOSER_MENU, "RecentChooserMenu", mGtk);
RG_DEF_METHOD(initialize, -1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkrecentchooserwidget.c b/gtk2/ext/gtk2/rbgtkrecentchooserwidget.c
index 2105bb8..147b72d 100644
--- a/gtk2/ext/gtk2/rbgtkrecentchooserwidget.c
+++ b/gtk2/ext/gtk2/rbgtkrecentchooserwidget.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cRecentChooserWidget
#define _SELF(self) (GTK_RECENT_CHOOSER_WIDGET(RVAL2GOBJ(self)))
@@ -40,14 +38,11 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
RBGTK_INITIALIZE(self, widget);
return Qnil;
}
-#endif
void
Init_gtk_recent_chooser_widget(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RECENT_CHOOSER_WIDGET, "RecentChooserWidget", mGtk);
RG_DEF_METHOD(initialize, -1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkrecentdata.c b/gtk2/ext/gtk2/rbgtkrecentdata.c
index 491eac5..8d9820b 100644
--- a/gtk2/ext/gtk2/rbgtkrecentdata.c
+++ b/gtk2/ext/gtk2/rbgtkrecentdata.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
/*****************************************/
static GtkRecentData*
rd_copy(const GtkRecentData* data)
@@ -121,12 +119,9 @@ rg_set_private(VALUE self, VALUE is_private)
return self;
}
-#endif
-
void
Init_gtk_recent_data(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RECENT_DATA, "RecentData", mGtk);
RG_DEF_METHOD(initialize, 0);
@@ -146,5 +141,4 @@ Init_gtk_recent_data(VALUE mGtk)
RG_DEF_METHOD(set_private, 1);
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkrecentfilter.c b/gtk2/ext/gtk2/rbgtkrecentfilter.c
index 8e75bbb..50ba5dd 100644
--- a/gtk2/ext/gtk2/rbgtkrecentfilter.c
+++ b/gtk2/ext/gtk2/rbgtkrecentfilter.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cRecentFilter
#define _SELF(self) (GTK_RECENT_FILTER(RVAL2GOBJ(self)))
@@ -146,12 +144,10 @@ rg_filter(VALUE self, VALUE filter_info)
return CBOOL2RVAL(gtk_recent_filter_filter(_SELF(self),
(GtkRecentFilterInfo*)RVAL2BOXED(filter_info, GTK_TYPE_RECENT_FILTER_INFO)));
}
-#endif
void
Init_gtk_recent_filter(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RECENT_FILTER, "RecentFilter", mGtk);
RG_DEF_METHOD(initialize, 0);
RG_DEF_METHOD(name, 0);
@@ -171,5 +167,4 @@ Init_gtk_recent_filter(VALUE mGtk)
/* GtkRecentFilterFlags */
G_DEF_CLASS(GTK_TYPE_RECENT_FILTER_FLAGS, "Flags", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_RECENT_FILTER_FLAGS, "GTK_RECENT_FILTER_");
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkrecentfilterinfo.c b/gtk2/ext/gtk2/rbgtkrecentfilterinfo.c
index f71b6ba..305cc8d 100644
--- a/gtk2/ext/gtk2/rbgtkrecentfilterinfo.c
+++ b/gtk2/ext/gtk2/rbgtkrecentfilterinfo.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
/*****************************************/
static GtkRecentFilterInfo*
rf_copy(const GtkRecentFilterInfo* info)
@@ -158,12 +156,9 @@ rg_set_age(VALUE self, VALUE age)
return self;
}
-#endif
-
void
Init_gtk_recent_filter_info(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RECENT_FILTER_INFO, "RecentFilterInfo", mGtk);
RG_DEF_METHOD(initialize, 0);
@@ -183,5 +178,4 @@ Init_gtk_recent_filter_info(VALUE mGtk)
RG_DEF_METHOD(set_age, 1);
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkrecentinfo.c b/gtk2/ext/gtk2/rbgtkrecentinfo.c
index 9000b6d..0d8764e 100644
--- a/gtk2/ext/gtk2/rbgtkrecentinfo.c
+++ b/gtk2/ext/gtk2/rbgtkrecentinfo.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cRecentInfo
#define _SELF(self) ((GtkRecentInfo*)RVAL2BOXED(self, GTK_TYPE_RECENT_INFO))
@@ -187,12 +185,10 @@ rg_operator_ri_match(VALUE self, VALUE other)
return CBOOL2RVAL(gtk_recent_info_match(_SELF(self), _SELF(other)));
}
-#endif
void
Init_gtk_recent_info(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RECENT_INFO, "RecentInfo", mGtk);
RG_DEF_METHOD(uri, 0);
RG_DEF_METHOD(display_name, 0);
@@ -217,5 +213,4 @@ Init_gtk_recent_info(VALUE mGtk)
RG_DEF_METHOD_OPERATOR("==", ri_match, 1);
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkrecentmanager.c b/gtk2/ext/gtk2/rbgtkrecentmanager.c
index e0316cf..38338c3 100644
--- a/gtk2/ext/gtk2/rbgtkrecentmanager.c
+++ b/gtk2/ext/gtk2/rbgtkrecentmanager.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cRecentManager
#define _SELF(self) (GTK_RECENT_MANAGER(RVAL2GOBJ(self)))
@@ -126,12 +124,10 @@ rg_purge_items(VALUE self)
return INT2NUM(ret);
}
-#endif
void
Init_gtk_recent_manager(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_RECENT_MANAGER, "RecentManager", mGtk);
RG_DEF_METHOD(initialize, 0);
@@ -150,5 +146,4 @@ Init_gtk_recent_manager(VALUE mGtk)
/* GtkRecentManagerError */
G_DEF_ERROR(GTK_RECENT_MANAGER_ERROR, "RecentManagerError", mGtk, rb_eRuntimeError,
GTK_TYPE_RECENT_MANAGER_ERROR);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkscale.c b/gtk2/ext/gtk2/rbgtkscale.c
index 88ab7f3..5aefe8a 100644
--- a/gtk2/ext/gtk2/rbgtkscale.c
+++ b/gtk2/ext/gtk2/rbgtkscale.c
@@ -27,7 +27,6 @@
#define RG_TARGET_NAMESPACE cScale
#define _SELF(self) (GTK_SCALE(RVAL2GOBJ(self)))
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_layout(VALUE self)
{
@@ -41,16 +40,11 @@ rg_layout_offsets(VALUE self)
gtk_scale_get_layout_offsets(_SELF(self), &x, &y);
return rb_assoc_new(INT2NUM(x), INT2NUM(y));
}
-#endif
void
Init_gtk_scale(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_SCALE, "Scale", mGtk);
RG_DEF_METHOD(layout, 0);
RG_DEF_METHOD(layout_offsets, 0);
-#else
- G_DEF_CLASS(GTK_TYPE_SCALE, "Scale", mGtk);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkscrolledwindow.c b/gtk2/ext/gtk2/rbgtkscrolledwindow.c
index 53c3c14..8ad0a77 100644
--- a/gtk2/ext/gtk2/rbgtkscrolledwindow.c
+++ b/gtk2/ext/gtk2/rbgtkscrolledwindow.c
@@ -72,7 +72,6 @@ rg_add_with_viewport(VALUE self, VALUE other)
return self;
}
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_hscrollbar(VALUE self)
{
@@ -84,9 +83,7 @@ rg_vscrollbar(VALUE self)
{
return GOBJ2RVAL(gtk_scrolled_window_get_vscrollbar(_SELF(self)));
}
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_set_placement(VALUE self, VALUE corner_type)
{
@@ -108,7 +105,6 @@ rg_placement(VALUE self)
return GENUM2RVAL(gtk_scrolled_window_get_placement(_SELF(self)),
GTK_TYPE_CORNER_TYPE);
}
-#endif
void
Init_gtk_scrolled_window(VALUE mGtk)
@@ -119,15 +115,10 @@ Init_gtk_scrolled_window(VALUE mGtk)
RG_DEF_METHOD(set_policy, 2);
RG_DEF_METHOD(policy, 0);
RG_DEF_METHOD(add_with_viewport, 1);
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(hscrollbar, 0);
RG_DEF_METHOD(vscrollbar, 0);
-#endif
-
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(unset_placement, 0);
RG_DEF_METHOD(placement, 0);
RG_DEF_METHOD(set_placement, 1);
G_DEF_SETTER(RG_TARGET_NAMESPACE, "placement");
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkselection.c b/gtk2/ext/gtk2/rbgtkselection.c
index 88786ce..d19cc33 100644
--- a/gtk2/ext/gtk2/rbgtkselection.c
+++ b/gtk2/ext/gtk2/rbgtkselection.c
@@ -39,15 +39,11 @@ rg_m_owner_set(int argc, VALUE *argv, G_GNUC_UNUSED VALUE self)
ret = gtk_selection_owner_set(RVAL2WIDGET(widget),
RVAL2ATOM(selection), NUM2INT(time));
} else {
-#if GTK_CHECK_VERSION(2,2,0)
VALUE display, widget, selection, time;
rb_scan_args(argc, argv, "40", &display, &widget, &selection, &time);
ret = gtk_selection_owner_set_for_display(GDK_DISPLAY_OBJECT(RVAL2GOBJ(display)),
RVAL2WIDGET(widget),
RVAL2ATOM(selection), NUM2INT(time));
-#else
- rb_raise(rb_eArgError, "Wrong number of arguments: %d", argc);
-#endif
}
return CBOOL2RVAL(ret);
}
@@ -98,7 +94,6 @@ rg_m_remove_all(VALUE self, VALUE widget)
return self;
}
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_m_include_image_p(G_GNUC_UNUSED VALUE self, VALUE rbtargets, VALUE rbwritable)
{
@@ -156,7 +151,6 @@ rg_m_include_rich_text_p(G_GNUC_UNUSED VALUE self, VALUE rbtargets, VALUE rbbuff
return result;
}
-#endif
void
Init_gtk_selection(VALUE mGtk)
@@ -170,10 +164,8 @@ Init_gtk_selection(VALUE mGtk)
RG_DEF_MODFUNC(convert, 4);
RG_DEF_MODFUNC(remove_all, 1);
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_MODFUNC_P(include_image, 2);
RG_DEF_MODFUNC_P(include_text, 1);
RG_DEF_MODFUNC_P(include_uri, 1);
RG_DEF_MODFUNC_P(include_rich_text, 2);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkselectiondata.c b/gtk2/ext/gtk2/rbgtkselectiondata.c
index 5a7f9c3..ad13170 100644
--- a/gtk2/ext/gtk2/rbgtkselectiondata.c
+++ b/gtk2/ext/gtk2/rbgtkselectiondata.c
@@ -112,13 +112,11 @@ rg_data(VALUE self)
_SELF(self)->length));
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_display(VALUE self)
{
return BOXED2RVAL(_SELF(self)->display, GDK_TYPE_DISPLAY);
}
-#endif
/* Instance Methods */
static VALUE
@@ -161,7 +159,6 @@ rg_text(VALUE self)
return CSTR2RVAL_FREE((gchar *)gtk_selection_data_get_text(_SELF(self)));
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_set_pixbuf(VALUE self, VALUE pixbuf)
{
@@ -208,7 +205,6 @@ rg_uris(VALUE self)
}
return ary;
}
-#endif
static VALUE
rg_targets(VALUE self)
@@ -228,13 +224,12 @@ rg_targets(VALUE self)
g_free(targets);
return result;
}
-#if GTK_CHECK_VERSION(2,6,0)
+
static VALUE
rg_targets_include_image(VALUE self, VALUE writable)
{
return CBOOL2RVAL(gtk_selection_data_targets_include_image(_SELF(self), RVAL2CBOOL(writable)));
}
-#endif
static VALUE
rg_targets_include_text(VALUE self)
@@ -242,19 +237,18 @@ rg_targets_include_text(VALUE self)
return CBOOL2RVAL(gtk_selection_data_targets_include_text(_SELF(self)));
}
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_targets_include_uri(VALUE self)
{
return CBOOL2RVAL(gtk_selection_data_targets_include_uri(_SELF(self)));
}
+
static VALUE
rg_targets_include_rich_text(VALUE self, VALUE buffer)
{
return CBOOL2RVAL(gtk_selection_data_targets_include_rich_text(_SELF(self),
GTK_TEXT_BUFFER(RVAL2GOBJ(buffer))));
}
-#endif
void
Init_gtk_selectiondata(VALUE mGtk)
@@ -270,27 +264,21 @@ Init_gtk_selectiondata(VALUE mGtk)
RG_DEF_METHOD(type, 0);
RG_DEF_METHOD(format, 0);
RG_DEF_METHOD(data, 0);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(display, 0);
-#endif
RG_DEF_METHOD(set, -1);
RG_DEF_METHOD(text, 0);
RG_DEF_METHOD(set_text, 1);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(pixbuf, 0);
RG_DEF_METHOD(set_pixbuf, 1);
RG_DEF_METHOD(uris, 0);
RG_DEF_METHOD(set_uris, 1);
RG_DEF_METHOD(targets_include_image, 1);
-#endif
RG_DEF_METHOD(targets, 0);
RG_DEF_METHOD(targets_include_text, 0);
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(targets_include_uri, 0);
RG_DEF_METHOD(targets_include_rich_text, 1);
-#endif
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
diff --git a/gtk2/ext/gtk2/rbgtkseparatortoolitem.c b/gtk2/ext/gtk2/rbgtkseparatortoolitem.c
index 0535c55..13f8a75 100644
--- a/gtk2/ext/gtk2/rbgtkseparatortoolitem.c
+++ b/gtk2/ext/gtk2/rbgtkseparatortoolitem.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cSeparatorToolItem
static VALUE
@@ -32,13 +30,9 @@ rg_initialize(VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_separatortoolitem(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_SEPARATOR_TOOL_ITEM, "SeparatorToolItem", mGtk);
RG_DEF_METHOD(initialize, 0);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtksettings.c b/gtk2/ext/gtk2/rbgtksettings.c
index 3efa473..054c93a 100644
--- a/gtk2/ext/gtk2/rbgtksettings.c
+++ b/gtk2/ext/gtk2/rbgtksettings.c
@@ -32,13 +32,11 @@ rg_s_default(G_GNUC_UNUSED VALUE self)
return GOBJ2RVAL(gtk_settings_get_default());
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_s_get_for_screen(G_GNUC_UNUSED VALUE self, VALUE screen)
{
return GOBJ2RVAL(gtk_settings_get_for_screen(GDK_SCREEN(RVAL2GOBJ(screen))));
}
-#endif
/*
* Gtk::Settings.install_property(...) do |spec, str|
@@ -218,9 +216,7 @@ Init_gtk_settings(VALUE mGtk)
prop_func_table = rb_hash_new();
RG_DEF_SMETHOD(default, 0);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_SMETHOD(get_for_screen, 1);
-#endif
RG_DEF_SMETHOD(install_property, 1);
RG_DEF_SMETHOD(rc_property_parse_color, 2);
diff --git a/gtk2/ext/gtk2/rbgtksizegroup.c b/gtk2/ext/gtk2/rbgtksizegroup.c
index b46a425..c4a9150 100644
--- a/gtk2/ext/gtk2/rbgtksizegroup.c
+++ b/gtk2/ext/gtk2/rbgtksizegroup.c
@@ -46,13 +46,11 @@ rg_remove_widget(VALUE self, VALUE widget)
return self;
}
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_widgets(VALUE self)
{
return GSLIST2ARY(gtk_size_group_get_widgets(_SELF(self)));
}
-#endif
void
Init_gtk_size_group(VALUE mGtk)
@@ -62,10 +60,7 @@ Init_gtk_size_group(VALUE mGtk)
RG_DEF_METHOD(initialize, 1);
RG_DEF_METHOD(add_widget, 1);
RG_DEF_METHOD(remove_widget, 1);
-
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(widgets, 0);
-#endif
/* GtkSizeGroupMode */
G_DEF_CLASS(GTK_TYPE_SIZE_GROUP_MODE, "Mode", RG_TARGET_NAMESPACE);
diff --git a/gtk2/ext/gtk2/rbgtkstatusicon.c b/gtk2/ext/gtk2/rbgtkstatusicon.c
index 67f45b7..03edce8 100644
--- a/gtk2/ext/gtk2/rbgtkstatusicon.c
+++ b/gtk2/ext/gtk2/rbgtkstatusicon.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,10,0)
-
#define RG_TARGET_NAMESPACE cStatusIcon
#define _SELF(w) (GTK_STATUS_ICON(RVAL2GOBJ(w)))
@@ -78,12 +76,10 @@ rg_geometry(VALUE self)
return rb_ary_new3(3, Qnil, Qnil, Qnil);
}
}
-#endif
void
Init_gtk_status_icon(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,10,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_STATUS_ICON, "StatusIcon", mGtk);
RG_DEF_METHOD(initialize, 0);
@@ -91,5 +87,4 @@ Init_gtk_status_icon(VALUE mGtk)
G_DEF_SETTER(RG_TARGET_NAMESPACE, "tooltip");
RG_DEF_METHOD(position_menu, 1);
RG_DEF_METHOD(geometry, 0);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkstock.c b/gtk2/ext/gtk2/rbgtkstock.c
index 03963e3..0a09f52 100644
--- a/gtk2/ext/gtk2/rbgtkstock.c
+++ b/gtk2/ext/gtk2/rbgtkstock.c
@@ -81,7 +81,6 @@ rg_s_ids(G_GNUC_UNUSED VALUE self)
return ary;
}
-#if GTK_CHECK_VERSION(2,8,0)
static gchar *
translate_func(const gchar *path, gpointer func)
{
@@ -100,7 +99,6 @@ rg_s_set_translate_func(VALUE klass, VALUE domain)
NULL);
return Qnil;
}
-#endif
void
Init_gtk_stock(VALUE mGtk)
@@ -111,14 +109,10 @@ Init_gtk_stock(VALUE mGtk)
RG_DEF_SMETHOD(add, -1);
RG_DEF_SMETHOD(lookup, 1);
RG_DEF_SMETHOD(ids, 0);
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_SMETHOD(set_translate_func, 1);
-#endif
/* Stock IDs (not all are stock items; some are images only) */
-#if GTK_CHECK_VERSION(2,6,0)
rb_define_const(RG_TARGET_NAMESPACE, "ABOUT", CSTR2SYM(GTK_STOCK_ABOUT));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "ADD", CSTR2SYM(GTK_STOCK_ADD));
rb_define_const(RG_TARGET_NAMESPACE, "APPLY", CSTR2SYM(GTK_STOCK_APPLY));
rb_define_const(RG_TARGET_NAMESPACE, "BOLD", CSTR2SYM(GTK_STOCK_BOLD));
@@ -129,45 +123,31 @@ Init_gtk_stock(VALUE mGtk)
rb_define_const(RG_TARGET_NAMESPACE, "CDROM", CSTR2SYM(GTK_STOCK_CDROM));
rb_define_const(RG_TARGET_NAMESPACE, "CLEAR", CSTR2SYM(GTK_STOCK_CLEAR));
rb_define_const(RG_TARGET_NAMESPACE, "CLOSE", CSTR2SYM(GTK_STOCK_CLOSE));
-#if GTK_CHECK_VERSION(2,2,0)
rb_define_const(RG_TARGET_NAMESPACE, "COLOR_PICKER", CSTR2SYM(GTK_STOCK_COLOR_PICKER));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "CONVERT", CSTR2SYM(GTK_STOCK_CONVERT));
-#if GTK_CHECK_VERSION(2,6,0)
rb_define_const(RG_TARGET_NAMESPACE, "CONNECT", CSTR2SYM(GTK_STOCK_CONNECT));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "COPY", CSTR2SYM(GTK_STOCK_COPY));
rb_define_const(RG_TARGET_NAMESPACE, "CUT", CSTR2SYM(GTK_STOCK_CUT));
rb_define_const(RG_TARGET_NAMESPACE, "DELETE", CSTR2SYM(GTK_STOCK_DELETE));
-#if GTK_CHECK_VERSION(2,4,0)
rb_define_const(RG_TARGET_NAMESPACE, "DIALOG_AUTHENTICATION", CSTR2SYM(GTK_STOCK_DIALOG_AUTHENTICATION));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "DIALOG_ERROR", CSTR2SYM(GTK_STOCK_DIALOG_ERROR));
rb_define_const(RG_TARGET_NAMESPACE, "DIALOG_INFO", CSTR2SYM(GTK_STOCK_DIALOG_INFO));
rb_define_const(RG_TARGET_NAMESPACE, "DIALOG_QUESTION", CSTR2SYM(GTK_STOCK_DIALOG_QUESTION));
rb_define_const(RG_TARGET_NAMESPACE, "DIALOG_WARNING", CSTR2SYM(GTK_STOCK_DIALOG_WARNING));
-#if GTK_CHECK_VERSION(2,6,0)
rb_define_const(RG_TARGET_NAMESPACE, "DIRECTORY", CSTR2SYM(GTK_STOCK_DIRECTORY));
-#endif
#if GTK_CHECK_VERSION(2,12,0)
rb_define_const(RG_TARGET_NAMESPACE, "DISCARD", CSTR2SYM(GTK_STOCK_DISCARD));
#endif
-#if GTK_CHECK_VERSION(2,6,0)
rb_define_const(RG_TARGET_NAMESPACE, "DISCONNECT", CSTR2SYM(GTK_STOCK_DISCONNECT));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "DND", CSTR2SYM(GTK_STOCK_DND));
rb_define_const(RG_TARGET_NAMESPACE, "DND_MULTIPLE", CSTR2SYM(GTK_STOCK_DND_MULTIPLE));
-#if GTK_CHECK_VERSION(2,6,0)
rb_define_const(RG_TARGET_NAMESPACE, "EDIT", CSTR2SYM(GTK_STOCK_EDIT));
rb_define_const(RG_TARGET_NAMESPACE, "FILE", CSTR2SYM(GTK_STOCK_FILE));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "EXECUTE", CSTR2SYM(GTK_STOCK_EXECUTE));
rb_define_const(RG_TARGET_NAMESPACE, "FIND", CSTR2SYM(GTK_STOCK_FIND));
rb_define_const(RG_TARGET_NAMESPACE, "FIND_AND_REPLACE", CSTR2SYM(GTK_STOCK_FIND_AND_REPLACE));
rb_define_const(RG_TARGET_NAMESPACE, "FLOPPY", CSTR2SYM(GTK_STOCK_FLOPPY));
-#if GTK_CHECK_VERSION(2,8,0)
rb_define_const(RG_TARGET_NAMESPACE, "FULLSCREEN", CSTR2SYM(GTK_STOCK_FULLSCREEN));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "GOTO_BOTTOM", CSTR2SYM(GTK_STOCK_GOTO_BOTTOM));
rb_define_const(RG_TARGET_NAMESPACE, "GOTO_FIRST", CSTR2SYM(GTK_STOCK_GOTO_FIRST));
rb_define_const(RG_TARGET_NAMESPACE, "GOTO_LAST", CSTR2SYM(GTK_STOCK_GOTO_LAST));
@@ -176,17 +156,11 @@ Init_gtk_stock(VALUE mGtk)
rb_define_const(RG_TARGET_NAMESPACE, "GO_DOWN", CSTR2SYM(GTK_STOCK_GO_DOWN));
rb_define_const(RG_TARGET_NAMESPACE, "GO_FORWARD", CSTR2SYM(GTK_STOCK_GO_FORWARD));
rb_define_const(RG_TARGET_NAMESPACE, "GO_UP", CSTR2SYM(GTK_STOCK_GO_UP));
-#if GTK_CHECK_VERSION(2,4,0)
rb_define_const(RG_TARGET_NAMESPACE, "HARDDISK", CSTR2SYM(GTK_STOCK_HARDDISK));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "HELP", CSTR2SYM(GTK_STOCK_HELP));
rb_define_const(RG_TARGET_NAMESPACE, "HOME", CSTR2SYM(GTK_STOCK_HOME));
-#if GTK_CHECK_VERSION(2,4,0)
rb_define_const(RG_TARGET_NAMESPACE, "INDENT", CSTR2SYM(GTK_STOCK_INDENT));
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
rb_define_const(RG_TARGET_NAMESPACE, "INFO", CSTR2SYM(GTK_STOCK_INFO));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "INDEX", CSTR2SYM(GTK_STOCK_INDEX));
rb_define_const(RG_TARGET_NAMESPACE, "ITALIC", CSTR2SYM(GTK_STOCK_ITALIC));
rb_define_const(RG_TARGET_NAMESPACE, "JUMP_TO", CSTR2SYM(GTK_STOCK_JUMP_TO));
@@ -194,10 +168,7 @@ Init_gtk_stock(VALUE mGtk)
rb_define_const(RG_TARGET_NAMESPACE, "JUSTIFY_FILL", CSTR2SYM(GTK_STOCK_JUSTIFY_FILL));
rb_define_const(RG_TARGET_NAMESPACE, "JUSTIFY_LEFT", CSTR2SYM(GTK_STOCK_JUSTIFY_LEFT));
rb_define_const(RG_TARGET_NAMESPACE, "JUSTIFY_RIGHT", CSTR2SYM(GTK_STOCK_JUSTIFY_RIGHT));
-#if GTK_CHECK_VERSION(2,8,0)
rb_define_const(RG_TARGET_NAMESPACE, "LEAVE_FULLSCREEN", CSTR2SYM(GTK_STOCK_LEAVE_FULLSCREEN));
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
rb_define_const(RG_TARGET_NAMESPACE, "MEDIA_FORWARD", CSTR2SYM(GTK_STOCK_MEDIA_FORWARD));
rb_define_const(RG_TARGET_NAMESPACE, "MEDIA_NEXT", CSTR2SYM(GTK_STOCK_MEDIA_NEXT));
rb_define_const(RG_TARGET_NAMESPACE, "MEDIA_PAUSE", CSTR2SYM(GTK_STOCK_MEDIA_PAUSE));
@@ -206,21 +177,16 @@ Init_gtk_stock(VALUE mGtk)
rb_define_const(RG_TARGET_NAMESPACE, "MEDIA_RECORD", CSTR2SYM(GTK_STOCK_MEDIA_RECORD));
rb_define_const(RG_TARGET_NAMESPACE, "MEDIA_REWIND", CSTR2SYM(GTK_STOCK_MEDIA_REWIND));
rb_define_const(RG_TARGET_NAMESPACE, "MEDIA_STOP", CSTR2SYM(GTK_STOCK_MEDIA_STOP));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "MISSING_IMAGE", CSTR2SYM(GTK_STOCK_MISSING_IMAGE));
-#if GTK_CHECK_VERSION(2,4,0)
rb_define_const(RG_TARGET_NAMESPACE, "NETWORK", CSTR2SYM(GTK_STOCK_NETWORK));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "NEW", CSTR2SYM(GTK_STOCK_NEW));
rb_define_const(RG_TARGET_NAMESPACE, "NO", CSTR2SYM(GTK_STOCK_NO));
rb_define_const(RG_TARGET_NAMESPACE, "OK", CSTR2SYM(GTK_STOCK_OK));
rb_define_const(RG_TARGET_NAMESPACE, "OPEN", CSTR2SYM(GTK_STOCK_OPEN));
-#if GTK_CHECK_VERSION(2,10,0)
rb_define_const(RG_TARGET_NAMESPACE, "ORIENTATION_LANDSCAPE", CSTR2SYM(GTK_STOCK_ORIENTATION_LANDSCAPE));
rb_define_const(RG_TARGET_NAMESPACE, "ORIENTATION_PORTRAIT", CSTR2SYM(GTK_STOCK_ORIENTATION_PORTRAIT));
rb_define_const(RG_TARGET_NAMESPACE, "ORIENTATION_REVERSE_LANDSCAPE", CSTR2SYM(GTK_STOCK_ORIENTATION_REVERSE_LANDSCAPE));
rb_define_const(RG_TARGET_NAMESPACE, "ORIENTATION_REVERSE_PORTRAIT", CSTR2SYM(GTK_STOCK_ORIENTATION_REVERSE_PORTRAIT));
-#endif
#if GTK_CHECK_VERSION(2,14,0)
rb_define_const(RG_TARGET_NAMESPACE, "PAGE_SETUP", CSTR2SYM(GTK_STOCK_PAGE_SETUP));
#endif
@@ -244,9 +210,7 @@ Init_gtk_stock(VALUE mGtk)
rb_define_const(RG_TARGET_NAMESPACE, "REVERT_TO_SAVED", CSTR2SYM(GTK_STOCK_REVERT_TO_SAVED));
rb_define_const(RG_TARGET_NAMESPACE, "SAVE", CSTR2SYM(GTK_STOCK_SAVE));
rb_define_const(RG_TARGET_NAMESPACE, "SAVE_AS", CSTR2SYM(GTK_STOCK_SAVE_AS));
-#if GTK_CHECK_VERSION(2,10,0)
rb_define_const(RG_TARGET_NAMESPACE, "SELECT_ALL", CSTR2SYM(GTK_STOCK_SELECT_ALL));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "SELECT_COLOR", CSTR2SYM(GTK_STOCK_SELECT_COLOR));
rb_define_const(RG_TARGET_NAMESPACE, "SELECT_FONT", CSTR2SYM(GTK_STOCK_SELECT_FONT));
rb_define_const(RG_TARGET_NAMESPACE, "SORT_ASCENDING", CSTR2SYM(GTK_STOCK_SORT_ASCENDING));
@@ -257,9 +221,7 @@ Init_gtk_stock(VALUE mGtk)
rb_define_const(RG_TARGET_NAMESPACE, "UNDELETE", CSTR2SYM(GTK_STOCK_UNDELETE));
rb_define_const(RG_TARGET_NAMESPACE, "UNDERLINE", CSTR2SYM(GTK_STOCK_UNDERLINE));
rb_define_const(RG_TARGET_NAMESPACE, "UNDO", CSTR2SYM(GTK_STOCK_UNDO));
-#if GTK_CHECK_VERSION(2,4,0)
rb_define_const(RG_TARGET_NAMESPACE, "UNINDENT", CSTR2SYM(GTK_STOCK_UNINDENT));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "YES", CSTR2SYM(GTK_STOCK_YES));
rb_define_const(RG_TARGET_NAMESPACE, "ZOOM_100", CSTR2SYM(GTK_STOCK_ZOOM_100));
rb_define_const(RG_TARGET_NAMESPACE, "ZOOM_FIT", CSTR2SYM(GTK_STOCK_ZOOM_FIT));
diff --git a/gtk2/ext/gtk2/rbgtkstyle.c b/gtk2/ext/gtk2/rbgtkstyle.c
index ba00369..fb66b7d 100644
--- a/gtk2/ext/gtk2/rbgtkstyle.c
+++ b/gtk2/ext/gtk2/rbgtkstyle.c
@@ -87,7 +87,6 @@ rg_apply_default_background(VALUE self, VALUE gdkwindow, VALUE set_bg, VALUE sta
return self;
}
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_lookup_color(VALUE self, VALUE color_name)
{
@@ -98,7 +97,6 @@ rg_lookup_color(VALUE self, VALUE color_name)
return Qnil;
}
}
-#endif
static VALUE
rg_lookup_icon_set(VALUE self, VALUE stock_id)
@@ -355,7 +353,6 @@ rg_paint_resize_grip(VALUE self, VALUE gdkwindow, VALUE state_type, VALUE area,
NUM2INT(width), NUM2INT(height));
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_s_draw_insertion_cursor(VALUE self, VALUE widget, VALUE drawable, VALUE area, VALUE location, VALUE is_primary, VALUE direction, VALUE draw_arrow)
{
@@ -367,7 +364,6 @@ rg_s_draw_insertion_cursor(VALUE self, VALUE widget, VALUE drawable, VALUE area,
RVAL2CBOOL(draw_arrow));
return self;
}
-#endif
#define DEFINE_STYLE_COLOR(type) \
static VALUE \
@@ -567,9 +563,7 @@ Init_gtk_style(VALUE mGtk)
RG_DEF_METHOD(detach, 0);
RG_DEF_METHOD(set_background, 2);
RG_DEF_METHOD(apply_default_background, 8);
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(lookup_color, 1);
-#endif
RG_DEF_METHOD(lookup_icon_set, 1);
RG_DEF_METHOD(render_icon, 6);
RG_DEF_METHOD(paint_arrow, 12);
@@ -592,9 +586,7 @@ Init_gtk_style(VALUE mGtk)
RG_DEF_METHOD(paint_expander, 8);
RG_DEF_METHOD(paint_layout, 9);
RG_DEF_METHOD(paint_resize_grip, 10);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_SMETHOD(draw_insertion_cursor, 7);
-#endif
rb_define_method(RG_TARGET_NAMESPACE, "fg", style_fg, 1);
rb_define_method(RG_TARGET_NAMESPACE, "bg", style_bg, 1);
rb_define_method(RG_TARGET_NAMESPACE, "light", style_light, 1);
diff --git a/gtk2/ext/gtk2/rbgtktargetlist.c b/gtk2/ext/gtk2/rbgtktargetlist.c
index 9d7882a..09d58c1 100644
--- a/gtk2/ext/gtk2/rbgtktargetlist.c
+++ b/gtk2/ext/gtk2/rbgtktargetlist.c
@@ -24,32 +24,6 @@
#define RG_TARGET_NAMESPACE cTargetList
#define _SELF(r) ((GtkTargetList*)RVAL2BOXED(r, GTK_TYPE_TARGET_LIST))
-/**********************************/
-#if ! GTK_CHECK_VERSION(2,10,0)
-static GtkTargetList*
-rbgtk_target_list_copy(const GtkTargetList* list)
-{
- GtkTargetList* new_list;
- g_return_val_if_fail (list != NULL, NULL);
- new_list = g_new(GtkTargetList, 1);
- *new_list = *list;
- return new_list;
-}
-
-GType
-gtk_target_list_get_type(void)
-{
- static GType our_type = 0;
-
- if (our_type == 0)
- our_type = g_boxed_type_register_static ("GtkTargetList",
- (GBoxedCopyFunc)rbgtk_target_list_copy,
- (GBoxedFreeFunc)gtk_target_list_unref);
- return our_type;
-}
-#endif
-/**********************************/
-
static VALUE
rg_initialize(VALUE self, VALUE rbtargets)
{
@@ -86,7 +60,6 @@ rg_add_table(VALUE self, VALUE rbtargets)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_add_text_targets(VALUE self, VALUE info)
{
@@ -107,9 +80,7 @@ rg_add_uri_targets(VALUE self, VALUE info)
gtk_target_list_add_uri_targets(_SELF(self), NUM2UINT(info));
return self;
}
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_add_rich_text_targets(VALUE self, VALUE info, VALUE deserializable, VALUE buffer)
{
@@ -118,7 +89,6 @@ rg_add_rich_text_targets(VALUE self, VALUE info, VALUE deserializable, VALUE buf
GTK_TEXT_BUFFER(RVAL2GOBJ(buffer)));
return self;
}
-#endif
static VALUE
rg_remove(VALUE self, VALUE target)
@@ -146,14 +116,10 @@ Init_gtk_target_list(VALUE mGtk)
RG_DEF_METHOD(initialize, 1);
RG_DEF_METHOD(add, 3);
RG_DEF_METHOD(add_table, 1);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(add_text_targets, 1);
RG_DEF_METHOD(add_image_targets, 2);
RG_DEF_METHOD(add_uri_targets, 1);
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(add_rich_text_targets, 3);
-#endif
RG_DEF_METHOD(remove, 1);
RG_DEF_METHOD(find, 1);
}
diff --git a/gtk2/ext/gtk2/rbgtktextbuffer.c b/gtk2/ext/gtk2/rbgtktextbuffer.c
index e897688..26e7d31 100644
--- a/gtk2/ext/gtk2/rbgtktextbuffer.c
+++ b/gtk2/ext/gtk2/rbgtktextbuffer.c
@@ -68,7 +68,6 @@ txt_set_text(VALUE self, VALUE text)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_backspace(VALUE self, VALUE iter, VALUE interactive, VALUE default_editable)
{
@@ -76,7 +75,6 @@ rg_backspace(VALUE self, VALUE iter, VALUE interactive, VALUE default_editable)
RVAL2CBOOL(interactive),
RVAL2CBOOL(default_editable)));
}
-#endif
static VALUE
rg_insert_at_cursor(VALUE self, VALUE text)
@@ -301,14 +299,12 @@ rg_place_cursor(VALUE self, VALUE where)
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_select_range(VALUE self, VALUE ins, VALUE bound)
{
gtk_text_buffer_select_range(_SELF(self), RVAL2ITR(ins), RVAL2ITR(bound));
return self;
}
-#endif
static VALUE
rg_get_iter_at_child_anchor(VALUE self, VALUE anchor)
@@ -347,7 +343,6 @@ rg_remove_selection_clipboard(VALUE self, VALUE clipboard)
return self;
}
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_deserialize(VALUE self, VALUE content_buffer, VALUE format, VALUE iter, VALUE data)
{
@@ -548,7 +543,6 @@ rg_unregister_serialize_format(VALUE self, VALUE format)
gtk_text_buffer_unregister_serialize_format(_SELF(self), RVAL2ATOM(format));
return self;
}
-#endif
static VALUE
rg_cut_clipboard(VALUE self, VALUE clipboard, VALUE default_editable)
@@ -813,9 +807,7 @@ Init_gtk_textbuffer(VALUE mGtk)
G_REPLACE_SET_PROPERTY(RG_TARGET_NAMESPACE, "text", txt_set_text, 1);
RG_DEF_METHOD(insert, -1);
RG_DEF_METHOD(insert_with_tags, -1);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(backspace, 3);
-#endif
RG_DEF_METHOD(insert_at_cursor, 1);
RG_DEF_METHOD(insert_interactive, 3);
RG_DEF_METHOD(insert_interactive_at_cursor, 2);
@@ -847,16 +839,13 @@ Init_gtk_textbuffer(VALUE mGtk)
*/
RG_DEF_METHOD(selection_bound, 0);
RG_DEF_METHOD(place_cursor, 1);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(select_range, 2);
-#endif
RG_DEF_METHOD_P(modified, 0);
RG_DEF_METHOD(set_modified, 1);
G_DEF_SETTER(RG_TARGET_NAMESPACE, "modified");
RG_DEF_METHOD(add_selection_clipboard, 1);
RG_DEF_METHOD(remove_selection_clipboard, 1);
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(deserialize, 4);
RG_DEF_METHOD_P(deserialize_can_create_tags, 1);
RG_DEF_METHOD(deserialize_set_can_create_tags, 2);
@@ -869,7 +858,6 @@ Init_gtk_textbuffer(VALUE mGtk)
RG_DEF_METHOD(serialize, 4);
RG_DEF_METHOD(unregister_deserialize_format, 1);
RG_DEF_METHOD(unregister_serialize_format, 1);
-#endif
RG_DEF_METHOD(cut_clipboard, 2);
RG_DEF_METHOD(copy_clipboard, 1);
RG_DEF_METHOD(paste_clipboard, 3);
diff --git a/gtk2/ext/gtk2/rbgtktextiter.c b/gtk2/ext/gtk2/rbgtktextiter.c
index 9ec43fd..48948df 100644
--- a/gtk2/ext/gtk2/rbgtktextiter.c
+++ b/gtk2/ext/gtk2/rbgtktextiter.c
@@ -227,7 +227,6 @@ def_move(backward_sentence_start)
def_move_gint(forward_sentence_ends)
def_move_gint(backward_sentence_starts)
-#if GTK_CHECK_VERSION(2,4,0)
def_move_gint(forward_visible_word_ends)
def_move_gint(backward_visible_word_starts)
def_move(forward_visible_word_end)
@@ -236,13 +235,10 @@ def_move(forward_visible_cursor_position)
def_move(backward_visible_cursor_position)
def_move_gint(forward_visible_cursor_positions)
def_move_gint(backward_visible_cursor_positions)
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
def_move(forward_visible_line)
def_move(backward_visible_line)
def_move_gint(forward_visible_lines)
def_move_gint(backward_visible_lines)
-#endif
def_move(forward_cursor_position)
def_move(backward_cursor_position)
def_move_gint(forward_cursor_positions)
@@ -465,7 +461,6 @@ Init_gtk_textiter(VALUE mGtk)
rb_define_method(RG_TARGET_NAMESPACE, "forward_sentence_ends", forward_sentence_ends, 1);
rb_define_method(RG_TARGET_NAMESPACE, "backward_sentence_starts", backward_sentence_starts, 1);
-#if GTK_CHECK_VERSION(2,4,0)
rb_define_method(RG_TARGET_NAMESPACE, "forward_visible_word_ends", forward_visible_word_ends, 1);
rb_define_method(RG_TARGET_NAMESPACE, "backward_visible_word_starts", backward_visible_word_starts, 1);
rb_define_method(RG_TARGET_NAMESPACE, "forward_visible_word_end", forward_visible_word_end, 0);
@@ -474,13 +469,10 @@ Init_gtk_textiter(VALUE mGtk)
rb_define_method(RG_TARGET_NAMESPACE, "backward_visible_cursor_position", backward_visible_cursor_position, 0);
rb_define_method(RG_TARGET_NAMESPACE, "forward_visible_cursor_positions", forward_visible_cursor_positions, 1);
rb_define_method(RG_TARGET_NAMESPACE, "backward_visible_cursor_positions", backward_visible_cursor_positions, 1);
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
rb_define_method(RG_TARGET_NAMESPACE, "forward_visible_line", forward_visible_line, 0);
rb_define_method(RG_TARGET_NAMESPACE, "backward_visible_line", backward_visible_line, 0);
rb_define_method(RG_TARGET_NAMESPACE, "forward_visible_lines", forward_visible_lines, 1);
rb_define_method(RG_TARGET_NAMESPACE, "backward_visible_lines", backward_visible_lines, 1);
-#endif
rb_define_method(RG_TARGET_NAMESPACE, "forward_cursor_position", forward_cursor_position, 0);
rb_define_method(RG_TARGET_NAMESPACE, "backward_cursor_position", backward_cursor_position, 0);
rb_define_method(RG_TARGET_NAMESPACE, "forward_cursor_positions", forward_cursor_positions, 1);
diff --git a/gtk2/ext/gtk2/rbgtktextview.c b/gtk2/ext/gtk2/rbgtktextview.c
index 2ff8ad9..6457311 100644
--- a/gtk2/ext/gtk2/rbgtktextview.c
+++ b/gtk2/ext/gtk2/rbgtktextview.c
@@ -144,7 +144,6 @@ rg_get_iter_at_location(VALUE self, VALUE x, VALUE y)
return ITR2RVAL(&iter);
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_get_iter_at_position(VALUE self, VALUE x, VALUE y)
{
@@ -153,7 +152,6 @@ rg_get_iter_at_position(VALUE self, VALUE x, VALUE y)
gtk_text_view_get_iter_at_position(_SELF(self), &iter, &trailing, NUM2INT(x), NUM2INT(y));
return rb_assoc_new(ITR2RVAL(&iter), INT2NUM(trailing));
}
-#endif
static VALUE
rg_buffer_to_window_coords(VALUE self, VALUE wintype, VALUE buffer_x, VALUE buffer_y)
@@ -301,9 +299,7 @@ Init_gtk_textview(VALUE mGtk)
RG_DEF_METHOD(get_line_at_y, 1);
RG_DEF_METHOD(get_line_yrange, 1);
RG_DEF_METHOD(get_iter_at_location, 2);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(get_iter_at_position, 2);
-#endif
RG_DEF_METHOD(buffer_to_window_coords, 3);
RG_DEF_METHOD(window_to_buffer_coords, 3);
RG_DEF_METHOD(get_window, 1);
diff --git a/gtk2/ext/gtk2/rbgtktoggleaction.c b/gtk2/ext/gtk2/rbgtktoggleaction.c
index 1ac14ee..bfcc90e 100644
--- a/gtk2/ext/gtk2/rbgtktoggleaction.c
+++ b/gtk2/ext/gtk2/rbgtktoggleaction.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cToggleAction
#define _SELF(self) (GTK_TOGGLE_ACTION(RVAL2GOBJ(self)))
@@ -51,16 +49,11 @@ rg_toggled(VALUE self)
return self;
}
-#endif
-
void
Init_gtk_toggle_action(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
-
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_TOGGLE_ACTION, "ToggleAction", mGtk);
RG_DEF_METHOD(initialize, 4);
RG_DEF_METHOD(toggled, 0);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtktoggletoolbutton.c b/gtk2/ext/gtk2/rbgtktoggletoolbutton.c
index c38d23b..451262a 100644
--- a/gtk2/ext/gtk2/rbgtktoggletoolbutton.c
+++ b/gtk2/ext/gtk2/rbgtktoggletoolbutton.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cToggleToolButton
#define _SELF(self) (GTK_TOGGLE_TOOL_BUTTON(RVAL2GOBJ(self)))
@@ -47,14 +45,10 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_toggletoolbutton(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_TOGGLE_TOOL_BUTTON, "ToggleToolButton", mGtk);
RG_DEF_METHOD(initialize, -1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtktoolbar.c b/gtk2/ext/gtk2/rbgtktoolbar.c
index 434d8ef..3d1fe2c 100644
--- a/gtk2/ext/gtk2/rbgtktoolbar.c
+++ b/gtk2/ext/gtk2/rbgtktoolbar.c
@@ -182,13 +182,11 @@ rg_insert(int argc, VALUE *argv, VALUE self)
N_RVAL2CSTR(ttext), N_RVAL2CSTR(ptext),
GTK_SIGNAL_FUNC(exec_callback),
(gpointer)func, NUM2INT(pos));
-#if GTK_CHECK_VERSION(2,4,0)
} else if (rb_obj_is_kind_of(type, GTYPE2CLASS(GTK_TYPE_TOOL_ITEM))){
rb_scan_args(argc, argv, "20", &pos, &widget);
gtk_toolbar_insert(_SELF(self), GTK_TOOL_ITEM(RVAL2GOBJ(widget)),
NUM2INT(pos));
return widget;
-#endif
} else {
rb_scan_args(argc, argv, "22", &pos, &widget, &ttext, &ptext);
gtk_toolbar_insert_widget(_SELF(self), GTK_WIDGET(RVAL2GOBJ(widget)),
@@ -200,7 +198,6 @@ rg_insert(int argc, VALUE *argv, VALUE self)
return ret ? GOBJ2RVAL(ret) : Qnil;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_item_index(VALUE self, VALUE item)
{
@@ -239,7 +236,6 @@ rg_relief_style(VALUE self)
{
return GENUM2RVAL(gtk_toolbar_get_relief_style(_SELF(self)), GTK_TYPE_RELIEF_STYLE);
}
-#endif
static VALUE
rg_append_space(VALUE self)
@@ -289,14 +285,12 @@ Init_gtk_toolbar(VALUE mGtk)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_TOOLBAR, "Toolbar", mGtk);
RG_DEF_METHOD(initialize, 0);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(item_index, 1);
RG_DEF_METHOD(n_items, 0);
RG_DEF_METHOD(nth_item, 1);
RG_DEF_METHOD(drop_index, 2);
RG_DEF_METHOD(set_drop_highlight_item, 2);
RG_DEF_METHOD(relief_style, 0);
-#endif
RG_DEF_METHOD(append, -1);
RG_DEF_METHOD(prepend, -1);
RG_DEF_METHOD(insert, -1);
diff --git a/gtk2/ext/gtk2/rbgtktoolbutton.c b/gtk2/ext/gtk2/rbgtktoolbutton.c
index b35899a..478ebf9 100644
--- a/gtk2/ext/gtk2/rbgtktoolbutton.c
+++ b/gtk2/ext/gtk2/rbgtktoolbutton.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cToolButton
#define _SELF(self) (GTK_TOOL_BUTTON(RVAL2GOBJ(self)))
@@ -46,14 +44,10 @@ rg_initialize(int argc, VALUE *argv, VALUE self)
return Qnil;
}
-#endif
-
void
Init_gtk_toolbutton(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_TOOL_BUTTON, "ToolButton", mGtk);
RG_DEF_METHOD(initialize, -1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtktoolitem.c b/gtk2/ext/gtk2/rbgtktoolitem.c
index fae38d7..465f370 100644
--- a/gtk2/ext/gtk2/rbgtktoolitem.c
+++ b/gtk2/ext/gtk2/rbgtktoolitem.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cToolItem
#define _SELF(self) (GTK_TOOL_ITEM(RVAL2GOBJ(self)))
@@ -126,20 +124,16 @@ rg_set_proxy_menu_item(VALUE self, VALUE menu_item_id, VALUE menu_item)
return self;
}
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_rebuild_menu(VALUE self)
{
gtk_tool_item_rebuild_menu(_SELF(self));
return self;
}
-#endif
-#endif
void
Init_gtk_toolitem(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_TOOL_ITEM, "ToolItem", mGtk);
RG_DEF_METHOD(initialize, 0);
RG_DEF_METHOD(set_homogeneous, 1);
@@ -159,8 +153,5 @@ Init_gtk_toolitem(VALUE mGtk)
RG_DEF_METHOD(retrieve_proxy_menu_item, 0);
RG_DEF_METHOD(get_proxy_menu_item, 1);
RG_DEF_METHOD(set_proxy_menu_item, 2);
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(rebuild_menu, 0);
-#endif
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtktooltips.c b/gtk2/ext/gtk2/rbgtktooltips.c
index b6b35e3..fada8a4 100644
--- a/gtk2/ext/gtk2/rbgtktooltips.c
+++ b/gtk2/ext/gtk2/rbgtktooltips.c
@@ -75,7 +75,6 @@ rg_force_window(VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_s_get_info(G_GNUC_UNUSED VALUE self, VALUE window)
{
@@ -89,7 +88,6 @@ rg_s_get_info(G_GNUC_UNUSED VALUE self, VALUE window)
else
return Qnil;
}
-#endif
void
Init_gtk_tooltips(VALUE mGtk)
@@ -101,8 +99,6 @@ Init_gtk_tooltips(VALUE mGtk)
RG_DEF_METHOD(enable, 0);
RG_DEF_METHOD(disable, 0);
RG_DEF_METHOD(force_window, 0);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_SMETHOD(get_info, 1);
-#endif
RG_DEF_SMETHOD(get_data, 1);
}
diff --git a/gtk2/ext/gtk2/rbgtktreeiter.c b/gtk2/ext/gtk2/rbgtktreeiter.c
index 7200328..4871556 100644
--- a/gtk2/ext/gtk2/rbgtktreeiter.c
+++ b/gtk2/ext/gtk2/rbgtktreeiter.c
@@ -216,7 +216,6 @@ rg_operator_treeiter_eql(VALUE self, VALUE other)
return Qtrue;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_to_str(VALUE self)
{
@@ -228,7 +227,6 @@ rg_to_str(VALUE self)
g_free(s);
return result;
}
-#endif
void
Init_gtk_treeiter(VALUE mGtk)
@@ -248,8 +246,6 @@ Init_gtk_treeiter(VALUE mGtk)
RG_DEF_METHOD(set_value, 2);
RG_DEF_METHOD_OPERATOR("[]=", treeiter_set_value_eql, 2);
RG_DEF_METHOD_OPERATOR("==", treeiter_eql, 1);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(to_str, 0);
RG_DEF_ALIAS("to_s", "to_str");
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtktreemodelfilter.c b/gtk2/ext/gtk2/rbgtktreemodelfilter.c
index ebb1266..a994bb1 100644
--- a/gtk2/ext/gtk2/rbgtktreemodelfilter.c
+++ b/gtk2/ext/gtk2/rbgtktreemodelfilter.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cTreeModelFilter
#define _SELF(s) (GTK_TREE_MODEL_FILTER(RVAL2GOBJ(s)))
@@ -176,12 +174,10 @@ rg_clear_cache(VALUE self)
gtk_tree_model_filter_clear_cache(_SELF(self));
return self;
}
-#endif
void
Init_gtk_treemodelfilter(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_TREE_MODEL_FILTER, "TreeModelFilter", mGtk);
id_child_model = rb_intern("child_model");
@@ -199,5 +195,4 @@ Init_gtk_treemodelfilter(VALUE mGtk)
RG_DEF_METHOD(refilter, 0);
RG_DEF_METHOD(clear_cache, 0);
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtktreemodelsort.c b/gtk2/ext/gtk2/rbgtktreemodelsort.c
index bd7141c..b4e8bd2 100644
--- a/gtk2/ext/gtk2/rbgtktreemodelsort.c
+++ b/gtk2/ext/gtk2/rbgtktreemodelsort.c
@@ -87,13 +87,11 @@ rg_clear_cache(VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_iter_is_valid_p(VALUE self, VALUE iter)
{
return CBOOL2RVAL(gtk_tree_model_sort_iter_is_valid(_SELF(self), RVAL2GTKTREEITER(iter)));
}
-#endif
void
Init_gtk_tmodelsort(VALUE mGtk)
@@ -109,8 +107,6 @@ Init_gtk_tmodelsort(VALUE mGtk)
RG_DEF_METHOD(convert_iter_to_child_iter, 1);
RG_DEF_METHOD(reset_default_sort_func, 0);
RG_DEF_METHOD(clear_cache, 0);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD_P(iter_is_valid, 1);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtktreerowreference.c b/gtk2/ext/gtk2/rbgtktreerowreference.c
index 355edcd..51b2d0b 100644
--- a/gtk2/ext/gtk2/rbgtktreerowreference.c
+++ b/gtk2/ext/gtk2/rbgtktreerowreference.c
@@ -94,7 +94,6 @@ rg_path(VALUE self)
return ret;
}
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_model(VALUE self)
{
@@ -102,7 +101,6 @@ rg_model(VALUE self)
G_CHILD_SET(self, id_model, ret);
return ret;
}
-#endif
static VALUE
rg_valid_p(VALUE self)
@@ -160,9 +158,7 @@ Init_gtk_treerowreference(VALUE mGtk)
RG_DEF_METHOD(initialize, -1);
RG_DEF_METHOD(path, 0);
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(model, 0);
-#endif
RG_DEF_METHOD_P(valid, 0);
RG_DEF_SMETHOD(inserted, 2);
diff --git a/gtk2/ext/gtk2/rbgtktreeselection.c b/gtk2/ext/gtk2/rbgtktreeselection.c
index ca42dbd..bd1b425 100644
--- a/gtk2/ext/gtk2/rbgtktreeselection.c
+++ b/gtk2/ext/gtk2/rbgtktreeselection.c
@@ -160,7 +160,6 @@ rg_select_range(VALUE self, VALUE start_path, VALUE end_path)
return self;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_selected_rows(VALUE self)
{
@@ -185,7 +184,6 @@ rg_unselect_range(VALUE self, VALUE start_path, VALUE end_path)
RVAL2GTKTREEPATH(end_path));
return self;
}
-#endif
void
Init_gtk_treeselection(VALUE mGtk)
@@ -207,11 +205,9 @@ Init_gtk_treeselection(VALUE mGtk)
RG_DEF_METHOD(select_all, 0);
RG_DEF_METHOD(unselect_all, 0);
RG_DEF_METHOD(select_range, 2);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(selected_rows, 0);
RG_DEF_METHOD(count_selected_rows, 0);
RG_DEF_METHOD(unselect_range, 2);
-#endif
G_DEF_SETTERS(RG_TARGET_NAMESPACE);
}
diff --git a/gtk2/ext/gtk2/rbgtktreestore.c b/gtk2/ext/gtk2/rbgtktreestore.c
index d0f0d7a..e14d462 100644
--- a/gtk2/ext/gtk2/rbgtktreestore.c
+++ b/gtk2/ext/gtk2/rbgtktreestore.c
@@ -94,12 +94,7 @@ static VALUE
rg_remove(VALUE self, VALUE iter)
{
G_CHILD_REMOVE(self, iter);
-#if GTK_CHECK_VERSION(2,2,0)
return CBOOL2RVAL(gtk_tree_store_remove(_SELF(self), RVAL2GTKTREEITER(iter)));
-#else
- gtk_tree_store_remove(_SELF(self), RVAL2GTKTREEITER(iter));
- return Qtrue;
-#endif
}
static VALUE
@@ -119,7 +114,6 @@ rg_insert(int argc, VALUE *argv, VALUE self)
ret = GTKTREEITER2RVAL(&iter);
G_CHILD_ADD(self, ret);
} else {
-#if GTK_CHECK_VERSION(2,10,0)
gint *c_columns;
GValue *c_values;
long size, i;
@@ -176,15 +170,6 @@ rg_insert(int argc, VALUE *argv, VALUE self)
G_CHILD_ADD(ret, rbgobj_gvalue_to_rvalue(&(c_values[i])));
g_value_unset(&(c_values[i]));
}
-#else
- rb_warn("Gtk::TreeStore#insert(parent, position, values) requires GTK+-2.10.0 or later");
- gtk_tree_store_insert(model, &iter,
- NIL_P(parent) ? NULL : RVAL2GTKTREEITER(parent),
- NUM2INT(position));
- iter.user_data3 = model;
- ret = GTKTREEITER2RVAL(&iter);
- G_CHILD_ADD(self, ret);
-#endif
}
return ret;
@@ -293,7 +278,6 @@ rg_clear(VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_iter_is_valid_p(VALUE self, VALUE iter)
{
@@ -348,7 +332,6 @@ rg_move_after(VALUE self, VALUE iter, VALUE position)
NIL_P(position) ? NULL : RVAL2GTKTREEITER(position));
return self;
}
-#endif
void
Init_gtk_tree_store(VALUE mGtk)
@@ -370,12 +353,10 @@ Init_gtk_tree_store(VALUE mGtk)
RG_DEF_METHOD_P(ancestor, 2);
RG_DEF_METHOD(iter_depth, 1);
RG_DEF_METHOD(clear, 0);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD_P(iter_is_valid, 1);
RG_DEF_METHOD(reorder, 2);
RG_DEF_METHOD(swap, 2);
RG_DEF_METHOD(move_before, 2);
RG_DEF_METHOD(move_after, 2);
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtktreeview.c b/gtk2/ext/gtk2/rbgtktreeview.c
index 9a5497f..1ba5304 100644
--- a/gtk2/ext/gtk2/rbgtktreeview.c
+++ b/gtk2/ext/gtk2/rbgtktreeview.c
@@ -257,14 +257,12 @@ rg_expand_row(VALUE self, VALUE path, VALUE open_all)
RVAL2CBOOL(open_all)));
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_expand_to_path(VALUE self, VALUE path)
{
gtk_tree_view_expand_to_path(_SELF(self), RVAL2GTKTREEPATH(path));
return self;
}
-#endif
static VALUE
rg_collapse_row(VALUE self, VALUE path)
@@ -345,7 +343,6 @@ rg_visible_rect(VALUE self)
return BOXED2RVAL(&rect, GDK_TYPE_RECTANGLE);
}
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_visible_range(VALUE self)
{
@@ -357,7 +354,6 @@ rg_visible_range(VALUE self)
return valid_paths ? rb_assoc_new(GTKTREEPATH2RVAL(start_path),
GTKTREEPATH2RVAL(end_path)) : Qnil;
}
-#endif
static VALUE
rg_bin_window(VALUE self)
@@ -571,7 +567,6 @@ treeview_signal_func(G_GNUC_UNUSED guint num, const GValue *values)
return rb_ary_new3(3, GOBJ2RVAL(view), GTKTREEITER2RVAL(iter), GVAL2RVAL(&values[2]));
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_set_cursor_on_cell(VALUE self, VALUE path, VALUE focus_column, VALUE focus_cell, VALUE start_editing)
{
@@ -581,14 +576,12 @@ rg_set_cursor_on_cell(VALUE self, VALUE path, VALUE focus_column, VALUE focus_ce
RVAL2CBOOL(start_editing));
return self;
}
-#endif
/* How can I implement this?
GtkTreeViewRowSeparatorFunc gtk_tree_view_get_row_separator_func
(GtkTreeView *tree_view);
*/
-#if GTK_CHECK_VERSION(2,6,0)
static gboolean
row_separator_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer func)
{
@@ -611,9 +604,7 @@ rg_set_row_separator_func(VALUE self)
(GtkDestroyNotify)NULL);
return self;
}
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_search_entry(VALUE self)
{
@@ -676,8 +667,6 @@ rg_set_search_position_func(VALUE self)
return self;
}
-#endif
-
void
Init_gtk_treeview(VALUE mGtk)
{
@@ -704,9 +693,7 @@ Init_gtk_treeview(VALUE mGtk)
RG_DEF_METHOD(collapse_all, 0);
RG_DEF_METHOD(expand_row, 2);
RG_DEF_METHOD(collapse_row, 1);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(expand_to_path, 1);
-#endif
RG_DEF_METHOD(map_expanded_rows, 0);
RG_DEF_METHOD_P(row_expanded, 1);
RG_DEF_METHOD(get_path_at_pos, 2);
@@ -714,10 +701,7 @@ Init_gtk_treeview(VALUE mGtk)
RG_DEF_METHOD(get_cell_area, 2);
RG_DEF_METHOD(get_background_area, 2);
RG_DEF_METHOD(visible_rect, 0);
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(visible_range, 0);
-#endif
-
RG_DEF_METHOD(bin_window, 0);
RG_DEF_METHOD(widget_to_tree_coords, 2);
RG_DEF_METHOD(tree_to_widget_coords, 2);
@@ -739,28 +723,20 @@ Init_gtk_treeview(VALUE mGtk)
RG_DEF_ALIAS("get_dest_row", "get_dest_row_at_pos");
RG_DEF_METHOD(create_row_drag_icon, 1);
RG_DEF_METHOD(set_search_equal_func, 0);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(set_cursor_on_cell, 4);
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_METHOD(set_row_separator_func, 0);
-#endif
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(search_entry, 0);
RG_DEF_METHOD(set_search_entry, 1);
RG_DEF_METHOD(set_search_position_func, 0);
-#endif
/* Constants */
G_DEF_CLASS(GTK_TYPE_TREE_VIEW_DROP_POSITION, "DropPosition", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_TREE_VIEW_DROP_POSITION, "GTK_TREE_VIEW_");
-#if GTK_CHECK_VERSION(2,10,0)
/* GtkTreeViewGridLines */
G_DEF_CLASS(GTK_TYPE_TREE_VIEW_GRID_LINES, "GridLines", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_TREE_VIEW_GRID_LINES, "GTK_TREE_VIEW_");
-#endif
/* Option Signals */
G_DEF_SIGNAL_FUNC(RG_TARGET_NAMESPACE, "row-collapsed", (GValToRValSignalFunc)treeview_signal_func);
diff --git a/gtk2/ext/gtk2/rbgtktreeviewcolumn.c b/gtk2/ext/gtk2/rbgtktreeviewcolumn.c
index 7ee4ab7..466241a 100644
--- a/gtk2/ext/gtk2/rbgtktreeviewcolumn.c
+++ b/gtk2/ext/gtk2/rbgtktreeviewcolumn.c
@@ -217,8 +217,6 @@ rg_cell_is_visible_p(VALUE self)
return CBOOL2RVAL(gtk_tree_view_column_cell_is_visible(_SELF(self)));
}
-#if GTK_CHECK_VERSION(2,2,0)
-
static VALUE
rg_focus_cell(VALUE self, VALUE renderer)
{
@@ -227,16 +225,12 @@ rg_focus_cell(VALUE self, VALUE renderer)
return self;
}
-#endif
-
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_queue_resize(VALUE self)
{
gtk_tree_view_column_queue_resize(_SELF(self));
return self;
}
-#endif
#if GTK_CHECK_VERSION(2,12,0)
static VALUE
@@ -279,12 +273,8 @@ Init_gtk_treeviewcolumn(VALUE mGtk)
RG_DEF_METHOD(cell_set_cell_data, 4);
RG_DEF_METHOD(cell_size, 0);
RG_DEF_METHOD_P(cell_is_visible, 0);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(focus_cell, 1);
-#endif
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(queue_resize, 0);
-#endif
#if GTK_CHECK_VERSION(2,12,0)
RG_DEF_METHOD(tree_view, 0);
#endif
diff --git a/gtk2/ext/gtk2/rbgtkuimanager.c b/gtk2/ext/gtk2/rbgtkuimanager.c
index 6477e9b..3b4baec 100644
--- a/gtk2/ext/gtk2/rbgtkuimanager.c
+++ b/gtk2/ext/gtk2/rbgtkuimanager.c
@@ -21,8 +21,6 @@
#include "global.h"
-#if GTK_CHECK_VERSION(2,4,0)
-
#define RG_TARGET_NAMESPACE cUIManager
#define _SELF(self) (GTK_UI_MANAGER(RVAL2GOBJ(self)))
@@ -162,12 +160,10 @@ rbuimanager_mark(void *p)
rbgobj_gc_mark_instance(gtk_ui_manager_get_accel_group(manager));
}
-#endif
void
Init_gtk_uimanager(VALUE mGtk)
{
-#if GTK_CHECK_VERSION(2,4,0)
VALUE RG_TARGET_NAMESPACE;
RG_TARGET_NAMESPACE = G_DEF_CLASS_WITH_GC_FUNC(GTK_TYPE_UI_MANAGER, "UIManager", mGtk,
@@ -190,6 +186,4 @@ Init_gtk_uimanager(VALUE mGtk)
/* GtkUIManagerItemType */
G_DEF_CLASS(GTK_TYPE_UI_MANAGER_ITEM_TYPE, "ItemType", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, GTK_TYPE_UI_MANAGER_ITEM_TYPE, "GTK_UI_MANAGER_");
-
-#endif
}
diff --git a/gtk2/ext/gtk2/rbgtkwidget.c b/gtk2/ext/gtk2/rbgtkwidget.c
index 263beb0..f07c028 100644
--- a/gtk2/ext/gtk2/rbgtkwidget.c
+++ b/gtk2/ext/gtk2/rbgtkwidget.c
@@ -133,14 +133,12 @@ rg_queue_resize(VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_queue_resize_no_redraw(VALUE self)
{
gtk_widget_queue_resize_no_redraw(_SELF(self));
return self;
}
-#endif
/* Note this method is not
gtk_widget_get_size_request */
@@ -203,13 +201,11 @@ rg_accel_closures(VALUE self)
return GLIST2ARY2F(gtk_widget_list_accel_closures(_SELF(self)), G_TYPE_CLOSURE);
}
-#if GTK_CHECK_VERSION(2,4,0)
static VALUE
rg_can_activate_accel_p(VALUE self, VALUE signal_id)
{
return CBOOL2RVAL(gtk_widget_can_activate_accel(_SELF(self), NUM2UINT(signal_id)));
}
-#endif
static VALUE
rg_event(VALUE self, VALUE event)
@@ -431,7 +427,6 @@ rg_shape_combine_mask(VALUE self, VALUE shape_mask, VALUE offset_x, VALUE offset
return self;
}
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_input_shape_combine_mask(VALUE self, VALUE shape_mask, VALUE offset_x, VALUE offset_y)
{
@@ -441,7 +436,6 @@ rg_input_shape_combine_mask(VALUE self, VALUE shape_mask, VALUE offset_x, VALUE
NUM2INT(offset_y));
return self;
}
-#endif
static VALUE
rg_path(VALUE self)
@@ -681,7 +675,6 @@ rg_s_install_style_property(VALUE self, VALUE spec)
return self;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_s_style_property(VALUE self, VALUE property_name)
{
@@ -735,7 +728,6 @@ rg_s_style_properties(int argc, VALUE *argv, VALUE self)
g_type_class_unref(oclass);
return ary;
}
-#endif
static VALUE
rg_region_intersect(VALUE self, VALUE region)
@@ -771,9 +763,8 @@ rg_style_get_property(VALUE self, VALUE prop_name)
} else {
name = RVAL2CSTR(prop_name);
}
-#if GTK_CHECK_VERSION(2,2,0)
pspec = gtk_widget_class_find_style_property((GtkWidgetClass*)g_type_class_ref(RVAL2GTYPE(self)), name);
-#endif
+
if (!pspec)
rb_raise(rb_eval_string("GLib::NoPropertyError"), "No such property: %s", name);
else {
@@ -841,7 +832,6 @@ rg_settings(VALUE self)
return GOBJ2RVAL(gtk_widget_get_settings(_SELF(self)));
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_get_clipboard(VALUE self, VALUE selection)
{
@@ -871,7 +861,6 @@ rg_has_screen_p(VALUE self)
{
return CBOOL2RVAL(gtk_widget_has_screen(_SELF(self)));
}
-#endif
/*
Note this method is not gtk_widget_size_request()
@@ -905,8 +894,6 @@ rg_thaw_child_notify(VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,4,0)
-
static VALUE
rg_mnemonic_labels(VALUE self)
{
@@ -926,7 +913,6 @@ rg_remove_mnemonic_label(VALUE self, VALUE label)
gtk_widget_remove_mnemonic_label(_SELF(self), GTK_WIDGET(RVAL2GOBJ(label)));
return self;
}
-#endif
#if GTK_CHECK_VERSION(2,12,0)
static VALUE
@@ -951,7 +937,6 @@ rg_trigger_tooltip_query(VALUE self)
#endif
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_action(VALUE self)
{
@@ -969,7 +954,6 @@ rg_window(VALUE self)
{
return GOBJ2RVAL(_SELF(self)->window);
}
-#endif
static VALUE
rg_set_window(VALUE self, VALUE window)
@@ -1084,9 +1068,7 @@ Init_gtk_widget(VALUE mGtk)
RG_DEF_METHOD(unrealize, 0);
RG_DEF_METHOD(queue_draw, 0);
RG_DEF_METHOD(queue_resize, 0);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(queue_resize_no_redraw, 0);
-#endif
RG_DEF_METHOD(size_request, 0);
RG_DEF_METHOD(child_requisition, 0);
RG_DEF_METHOD(size_allocate, 1);
@@ -1094,17 +1076,13 @@ Init_gtk_widget(VALUE mGtk)
RG_DEF_METHOD(remove_accelerator, 3);
RG_DEF_METHOD(set_accel_path, 2);
RG_DEF_METHOD(accel_closures, 0);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD_P(can_activate_accel, 1);
-#endif
RG_DEF_METHOD(event, 1);
RG_DEF_METHOD(activate, 0);
RG_DEF_METHOD(reparent, 1);
RG_DEF_SMETHOD(install_style_property, 1);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_SMETHOD(style_property, 1);
RG_DEF_SMETHOD(style_properties, -1);
-#endif
RG_DEF_METHOD(intersect, 1);
RG_DEF_METHOD(grab_default, 0);
RG_DEF_METHOD(set_state, 1);
@@ -1125,9 +1103,7 @@ Init_gtk_widget(VALUE mGtk)
RG_DEF_METHOD(set_direction, 1);
RG_DEF_METHOD(direction, 0);
RG_DEF_METHOD(shape_combine_mask, 3);
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(input_shape_combine_mask, 3);
-#endif
RG_DEF_METHOD(path, 0);
RG_DEF_METHOD(class_path, 0);
RG_DEF_METHOD(composite_name, 0);
@@ -1166,32 +1142,26 @@ Init_gtk_widget(VALUE mGtk)
RG_DEF_METHOD(freeze_child_notify, 0);
RG_DEF_METHOD_P(child_visible, 0);
RG_DEF_METHOD(settings, 0);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(get_clipboard, 1);
RG_DEF_METHOD(display, 0);
RG_DEF_METHOD(root_window, 0);
RG_DEF_METHOD(screen, 0);
RG_DEF_METHOD_P(has_screen, 0);
-#endif
RG_DEF_METHOD(set_child_visible, 1);
RG_DEF_METHOD(get_size_request, 0);
RG_DEF_METHOD(set_size_request, 2);
RG_DEF_METHOD(thaw_child_notify, 0);
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(mnemonic_labels, 0);
RG_DEF_METHOD(add_mnemonic_label, 1);
RG_DEF_METHOD(remove_mnemonic_label, 1);
-#endif
#if GTK_CHECK_VERSION(2,12,0)
RG_DEF_METHOD(set_tooltip_window, 1);
RG_DEF_METHOD(tooltip_window, 0);
RG_DEF_METHOD(trigger_tooltip_query, 0);
#endif
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(action, 0);
RG_DEF_METHOD_P(composited, 0);
RG_DEF_METHOD(window, 0);
-#endif
RG_DEF_METHOD(set_window, 1);
RG_DEF_METHOD(allocation, 0);
RG_DEF_METHOD(set_allocation, 4);
diff --git a/gtk2/ext/gtk2/rbgtkwindow.c b/gtk2/ext/gtk2/rbgtkwindow.c
index fe71ddb..4049fa7 100644
--- a/gtk2/ext/gtk2/rbgtkwindow.c
+++ b/gtk2/ext/gtk2/rbgtkwindow.c
@@ -178,7 +178,6 @@ rg_set_default(VALUE self, VALUE win)
return self;
}
-#if GTK_CHECK_VERSION(2,8,0)
static VALUE
rg_present(int argc, VALUE *argv, VALUE self)
{
@@ -190,14 +189,6 @@ rg_present(int argc, VALUE *argv, VALUE self)
}
return self;
}
-#else
-static VALUE
-gwin_present(VALUE self)
-{
- gtk_window_present(_SELF(self));
- return self;
-}
-#endif
static VALUE
rg_iconify(VALUE self)
@@ -241,7 +232,6 @@ rg_unmaximize(VALUE self)
return self;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_fullscreen(VALUE self)
{
@@ -254,8 +244,7 @@ rg_unfullscreen(VALUE self)
gtk_window_unfullscreen(_SELF(self));
return self;
}
-#endif
-#if GTK_CHECK_VERSION(2,4,0)
+
static VALUE
rg_set_keep_above(VALUE self, VALUE setting)
{
@@ -268,7 +257,6 @@ rg_set_keep_below(VALUE self, VALUE setting)
gtk_window_set_keep_below(_SELF(self), RVAL2CBOOL(setting));
return self;
}
-#endif
static VALUE
rg_begin_resize_drag(VALUE self, VALUE edge, VALUE button, VALUE root_x, VALUE root_y, VALUE timestamp)
@@ -372,13 +360,11 @@ rg_size(VALUE self)
return rb_ary_new3(2, INT2NUM(width), INT2NUM(height));
}
-#if GTK_CHECK_VERSION(2,10,0)
static VALUE
rg_group(VALUE self)
{
return GOBJ2RVAL(gtk_window_get_group(_SELF(self)));
}
-#endif
static VALUE
rg_move(VALUE self, VALUE x, VALUE y)
@@ -419,7 +405,6 @@ rg_s_set_default_icon_list(G_GNUC_UNUSED VALUE self, VALUE rblist)
return rblist;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_s_set_default_icon(VALUE self, VALUE icon_or_filename)
{
@@ -429,40 +414,28 @@ rg_s_set_default_icon(VALUE self, VALUE icon_or_filename)
if (! ret)
RAISE_GERROR(err);
} else {
-#if GTK_CHECK_VERSION(2,4,0)
gtk_window_set_default_icon(GDK_PIXBUF(RVAL2GOBJ(icon_or_filename)));
-#else
- rb_raise(rb_eArgError, "Invalid argument: %s, or you may need to use GTK+-2.4.x",
- rb_class2name(CLASS_OF(icon_or_filename)));
-#endif
}
return self;
}
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
static VALUE
rg_s_set_default_icon_name(VALUE self, VALUE name)
{
gtk_window_set_default_icon_name(RVAL2CSTR(name));
return self;
}
-#endif
static VALUE
gwin_set_icon(VALUE self, VALUE icon_or_filename)
{
if (TYPE(icon_or_filename) == T_STRING){
-#if GTK_CHECK_VERSION(2,2,0)
GError* err;
gboolean ret = gtk_window_set_icon_from_file(_SELF(self),
RVAL2CSTR(icon_or_filename), &err);
if (! ret)
RAISE_GERROR(err);
-#else
- rb_raise(rb_eArgError, "Invalid argument: %s, or you may need to use GTK+-2.4.x",
- rb_class2name(CLASS_OF(icon_or_filename)));
-#endif
+
} else {
gtk_window_set_icon(_SELF(self), GDK_PIXBUF(RVAL2GOBJ(icon_or_filename)));
}
@@ -483,14 +456,12 @@ rg_set_icon_list(VALUE self, VALUE rblist)
return rblist;
}
-#if GTK_CHECK_VERSION(2,2,0)
static VALUE
rg_s_set_auto_startup_notification(VALUE self, VALUE setting)
{
gtk_window_set_auto_startup_notification(RVAL2CBOOL(setting));
return self;
}
-#endif
/* They are not public methods.
static VALUE
@@ -556,25 +527,17 @@ Init_gtk_window(VALUE mGtk)
RG_DEF_METHOD(focus, 0);
RG_DEF_METHOD(set_focus, 1);
RG_DEF_METHOD(set_default, 1);
-#if GTK_CHECK_VERSION(2,8,0)
RG_DEF_METHOD(present, -1);
-#else
- RG_DEF_METHOD(present, 0);
-#endif
RG_DEF_METHOD(iconify, 0);
RG_DEF_METHOD(deiconify, 0);
RG_DEF_METHOD(stick, 0);
RG_DEF_METHOD(unstick, 0);
RG_DEF_METHOD(maximize, 0);
RG_DEF_METHOD(unmaximize, 0);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_METHOD(fullscreen, 0);
RG_DEF_METHOD(unfullscreen, 0);
-#endif
-#if GTK_CHECK_VERSION(2,4,0)
RG_DEF_METHOD(set_keep_above, 1);
RG_DEF_METHOD(set_keep_below, 1);
-#endif
RG_DEF_METHOD(begin_resize_drag, 5);
RG_DEF_METHOD(begin_move_drag, 4);
RG_DEF_METHOD(set_frame_dimensions, 4);
@@ -588,25 +551,17 @@ Init_gtk_window(VALUE mGtk)
RG_DEF_METHOD(mnemonic_modifier, 0);
RG_DEF_METHOD(position, 0);
RG_DEF_METHOD(size, 0);
-#if GTK_CHECK_VERSION(2,10,0)
RG_DEF_METHOD(group, 0);
-#endif
RG_DEF_METHOD(move, 2);
RG_DEF_METHOD(parse_geometry, 1);
RG_DEF_METHOD(reshow_with_initial_size, 0);
RG_DEF_METHOD(resize, 2);
RG_DEF_SMETHOD(set_default_icon_list, 1);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_SMETHOD(set_default_icon, 1);
-#endif
-#if GTK_CHECK_VERSION(2,6,0)
RG_DEF_SMETHOD(set_default_icon_name, 1);
-#endif
G_REPLACE_SET_PROPERTY(RG_TARGET_NAMESPACE, "icon", gwin_set_icon, 1);
RG_DEF_METHOD(set_icon_list, 1);
-#if GTK_CHECK_VERSION(2,2,0)
RG_DEF_SMETHOD(set_auto_startup_notification, 1);
-#endif
/*
RG_DEF_METHOD(decorated_window_init, 0);
diff --git a/gtk2/patches/gtk+-2.24.14-add-missing-exeext.diff b/gtk2/patches/gtk+-2.24.14-add-missing-exeext.diff
deleted file mode 100644
index b179d80..0000000
--- a/gtk2/patches/gtk+-2.24.14-add-missing-exeext.diff
+++ /dev/null
@@ -1,33 +0,0 @@
---- gtk+-2.24.14/gtk/Makefile.am.orig 2012-08-25 08:38:09.000000000 +0900
-+++ gtk+-2.24.14/gtk/Makefile.am 2013-01-20 09:46:54.304458544 +0900
-@@ -1386,7 +1386,7 @@
- gtk_update_icon_cache_program = $(GTK_UPDATE_ICON_CACHE)
- else
- gtk_update_icon_cache_program = \
-- ./gtk-update-icon-cache
-+ ./gtk-update-icon-cache$(EXEEXT)
- endif
-
- gtkbuiltincache.h: @REBUILD@ stamp-icons
---- gtk+-2.24.14/modules/input/Makefile.am.orig 2011-08-16 11:30:52.000000000 +0900
-+++ gtk+-2.24.14/modules/input/Makefile.am 2013-01-20 09:47:21.819837211 +0900
-@@ -189,8 +189,8 @@
- @if $(RUN_QUERY_IMMODULES_TEST) ; then \
- echo $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/gtk-2.0 ; \
- $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/gtk-2.0 ; \
-- echo "$(top_builddir)/gtk/gtk-query-immodules-2.0 > $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules" ; \
-- $(top_builddir)/gtk/gtk-query-immodules-2.0 > $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules ; \
-+ echo "$(top_builddir)/gtk/gtk-query-immodules-2.0$(EXEEXT) > $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules" ; \
-+ $(top_builddir)/gtk/gtk-query-immodules-2.0$(EXEEXT) > $(DESTDIR)$(sysconfdir)/gtk-2.0/gtk.immodules ; \
- else \
- echo "***" ; \
- echo "*** Warning: gtk.immodules not built" ; \
-@@ -238,7 +238,7 @@
- included-modules: $(noinst_LTLIBRARIES)
-
- gtk.immodules: Makefile.am $(module_LTLIBRARIES)
-- $(top_builddir)/gtk/gtk-query-immodules-2.0 $(module_LTLIBRARIES) > gtk.immodules
-+ $(top_builddir)/gtk/gtk-query-immodules-2.0$(EXEEXT) $(module_LTLIBRARIES) > gtk.immodules
-
- CLEANFILES = gtk.immodules
-
diff --git a/gtk2/patches/gtk+-2.24.22-add-missing-exeext.diff b/gtk2/patches/gtk+-2.24.22-add-missing-exeext.diff
new file mode 100644
index 0000000..893aaf9
--- /dev/null
+++ b/gtk2/patches/gtk+-2.24.22-add-missing-exeext.diff
@@ -0,0 +1,35 @@
+diff -ru gtk+-2.24.22.orig/gtk/Makefile.am gtk+-2.24.22/gtk/Makefile.am
+--- gtk+-2.24.22.orig/gtk/Makefile.am 2013-10-05 07:02:29.000000000 +0900
++++ gtk+-2.24.22/gtk/Makefile.am 2013-12-25 00:42:56.220065167 +0900
+@@ -1388,7 +1388,7 @@
+ gtk_update_icon_cache_program = $(GTK_UPDATE_ICON_CACHE)
+ else
+ gtk_update_icon_cache_program = \
+- ./gtk-update-icon-cache
++ ./gtk-update-icon-cache$(EXEEXT)
+ endif
+
+ gtkbuiltincache.h: @REBUILD@ stamp-icons
+diff -ru gtk+-2.24.22.orig/modules/input/Makefile.am gtk+-2.24.22/modules/input/Makefile.am
+--- gtk+-2.24.22.orig/modules/input/Makefile.am 2013-10-05 07:02:29.000000000 +0900
++++ gtk+-2.24.22/modules/input/Makefile.am 2013-12-25 00:55:21.430362022 +0900
+@@ -202,8 +202,8 @@
+ @if $(RUN_QUERY_IMMODULES_TEST) ; then \
+ echo $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/gtk-2.0 ; \
+ $(mkinstalldirs) $(DESTDIR)$(sysconfdir)/gtk-2.0 ; \
+- echo "$(DESTDOR)$(bindir)/gtk-query-immodules-2.0 > $(DESTDIR)$(libdir)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules.cache" ; \
+- $(DESTDIR)/$(bindir)/gtk-query-immodules-2.0 > $(DESTDIR)$(libdir)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules.cache ; \
++ echo "$(DESTDOR)$(bindir)/gtk-query-immodules-2.0$(EXEEXT) > $(DESTDIR)$(libdir)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules.cache" ; \
++ $(DESTDIR)$(bindir)/gtk-query-immodules-2.0$(EXEEXT) > $(DESTDIR)$(libdir)/gtk-2.0/$(GTK_BINARY_VERSION)/immodules.cache ; \
+ else \
+ echo "***" ; \
+ echo "*** Warning: immodules.cache not built" ; \
+@@ -253,7 +253,7 @@
+ included-modules: $(noinst_LTLIBRARIES)
+
+ immodules.cache: Makefile.am $(module_LTLIBRARIES)
+- $(top_builddir)/gtk/gtk-query-immodules-2.0 $(module_LTLIBRARIES) > immodules.cache
++ $(top_builddir)/gtk/gtk-query-immodules-2.0$(EXEEXT) $(module_LTLIBRARIES) > immodules.cache
+
+ CLEANFILES = immodules.cache
+
diff --git a/gtk2/sample/gtk-demo/common.rb b/gtk2/sample/gtk-demo/common.rb
index d66969d..d297c28 100644
--- a/gtk2/sample/gtk-demo/common.rb
+++ b/gtk2/sample/gtk-demo/common.rb
@@ -11,7 +11,12 @@ require 'gtk2'
module Demo
def self.find_file(basename)
- %w(. /usr/share/gtk-2.0/demo /usr/local/share/gtk-2.0/demo/).each do |dirname|
+ file_load_paths = [
+ File.dirname(__FILE__),
+ "/usr/share/gtk-2.0/demo",
+ "/usr/local/share/gtk-2.0/demo",
+ ]
+ file_load_paths.each do |dirname|
path = File.join(dirname, basename)
if File.exist?(path)
return path
diff --git a/gtk2/sample/gtk-demo/main.rb b/gtk2/sample/gtk-demo/main.rb
index 09b46af..c005b02 100755
--- a/gtk2/sample/gtk-demo/main.rb
+++ b/gtk2/sample/gtk-demo/main.rb
@@ -2,7 +2,7 @@
=begin
main.rb - Main class of gtk-demo.
- Copyright (c) 2003-2006 Ruby-GNOME2 Project Team
+ Copyright (c) 2003-2013 Ruby-GNOME2 Project Team
This program is licenced under the same licence as Ruby-GNOME2.
$Id: main.rb,v 1.20 2007/07/09 13:21:54 ggc Exp $
@@ -27,7 +27,7 @@ module Demo
set_title('Ruby/GTK+ Code Demos')
signal_connect('destroy') do
- Gtk.main_quit
+ Gtk.main_quit
end
signal_connect("key_press_event") do |widget, event|
@@ -51,10 +51,10 @@ module Demo
hbox.pack_start(notebook, true, true, 0)
notebook.append_page(create_text(@info_buffer, false),
- Gtk::Label.new('_Info', true))
+ Gtk::Label.new('_Info', true))
notebook.append_page(create_text(@source_buffer, true),
- Gtk::Label.new('_Source', true))
+ Gtk::Label.new('_Source', true))
@info_buffer.create_tag('title',
{'font' => 'Sans 18'})
@@ -65,9 +65,9 @@ module Demo
{'foreground' => 'ForestGreen'})
@source_buffer.create_tag('string',
{
- 'foreground' => 'RosyBrown',
+ 'foreground' => 'RosyBrown',
'weight' => Pango::FontDescription::WEIGHT_BOLD
- })
+ })
@source_buffer.create_tag('reserved',
{'foreground' => 'purple'})
end
@@ -95,21 +95,25 @@ module Demo
end
if not klass
- raise "File not found: #{path}. This script should be run from its directory."
+ raise "File not found: #{path}."
end
return title, klass.intern, depend
end
def generate_index
+ base_dir = File.dirname(__FILE__)
# Target scripts
- scripts = Dir.glob('*.rb') - %w(common.rb main.rb)
+ scripts = Dir.glob(File.join(base_dir, '*.rb'))
# Generate index tree
children = {}
index = []
+ not_script_base_names = %w(common.rb main.rb)
scripts.each do |fn|
+ base_name = File.basename(fn)
+ next if not_script_base_names.include?(base_name)
title, klass, depend = script_info(fn)
if depend and not Gtk.const_defined?(depend)
@@ -169,7 +173,7 @@ module Demo
cell = Gtk::CellRendererText.new
cell.style = Pango::FontDescription::STYLE_ITALIC
column = Gtk::TreeViewColumn.new("Widget (double click for demo)", cell,
- {
+ {
'text' => TITLE_COLUMN,
'style_set' => ITALIC_COLUMN,
})
@@ -177,8 +181,8 @@ module Demo
tree_view.append_column(column)
selection.signal_connect('changed') do |selection|
- iter = selection.selected
- load_file(iter.get_value(FILENAME_COLUMN)) if iter
+ iter = selection.selected
+ load_file(iter.get_value(FILENAME_COLUMN)) if iter
end
tree_view.signal_connect('row_activated') do |tree_view, path, column|
row_activated_cb(tree_view.model, path)
@@ -190,13 +194,13 @@ module Demo
def append_children(model, source, parent = nil)
source.each do |title, filename, klass, children|
- iter = model.append(parent)
+ iter = model.append(parent)
- [title, filename, klass].each_with_index do |value, i|
- if value
- iter.set_value(i, value)
- end
- end
+ [title, filename, klass].each_with_index do |value, i|
+ if value
+ iter.set_value(i, value)
+ end
+ end
iter.set_value(ITALIC_COLUMN, false)
if children
@@ -212,21 +216,21 @@ module Demo
lib = iter.get_value(FILENAME_COLUMN)
if lib
require(lib)
-
+
klass = Demo.const_get(iter.get_value(CLASS_COLUMN))
window = klass.new
window.signal_connect('destroy') do
iter.set_value(ITALIC_COLUMN, false)
end
window.show_all
- @window = window
+ @window = window
end
end
def create_text(buffer, is_source)
scrolled_window = Gtk::ScrolledWindow.new
scrolled_window.set_policy(Gtk::POLICY_AUTOMATIC,
- Gtk::POLICY_AUTOMATIC)
+ Gtk::POLICY_AUTOMATIC)
scrolled_window.set_shadow_type(Gtk::SHADOW_IN)
text_view = Gtk::TextView.new
@@ -238,35 +242,35 @@ module Demo
scrolled_window.add(text_view)
if is_source
- font_desc = Pango::FontDescription.new('Monospace 12')
- text_view.modify_font(font_desc)
+ font_desc = Pango::FontDescription.new('Monospace 12')
+ text_view.modify_font(font_desc)
- text_view.set_wrap_mode(Gtk::TextTag::WRAP_NONE)
+ text_view.set_wrap_mode(Gtk::TextTag::WRAP_NONE)
else
- text_view.set_wrap_mode(Gtk::TextTag::WRAP_WORD)
- text_view.set_pixels_above_lines(2)
- text_view.set_pixels_below_lines(2)
+ text_view.set_wrap_mode(Gtk::TextTag::WRAP_WORD)
+ text_view.set_pixels_above_lines(2)
+ text_view.set_pixels_below_lines(2)
end
return scrolled_window
end
def fontify(start_iter = @source_buffer.start_iter,
- end_iter = @source_buffer.end_iter)
+ end_iter = @source_buffer.end_iter)
str = @source_buffer.get_text(start_iter, end_iter, true)
tokenizer = RubyTokonizer.new
tokenizer.tokenize(str, start_iter.offset) do |tag, start, last|
- @source_buffer.apply_tag(tag.to_s,
- @source_buffer.get_iter_at_offset(start),
- @source_buffer.get_iter_at_offset(last))
+ @source_buffer.apply_tag(tag.to_s,
+ @source_buffer.get_iter_at_offset(start),
+ @source_buffer.get_iter_at_offset(last))
end
end
def load_file(filename)
if filename == @current_file
- return
+ return
end
@info_buffer.delete(*@info_buffer.bounds)
@@ -274,43 +278,43 @@ module Demo
@source_buffer.delete(*@source_buffer.bounds)
file = begin
- File.open(filename)
- rescue
- $stderr.puts "Cannot open: #{$!}" if $DEBUG
- return
- end
+ File.open(filename)
+ rescue
+ $stderr.puts "Cannot open: #{$!}" if $DEBUG
+ return
+ end
start = @info_buffer.get_iter_at_offset(0)
state = :before_header
file.each do |line|
- case state
- when :before_header
- if line =~ /^=begin$/
- state = :in_header
- end
- when :in_header
- if line =~ /^=end$/
- state = :body
- start = @source_buffer.get_iter_at_offset(0)
- elsif line =~ /^=\s+(.*)$/
- title = $1
+ case state
+ when :before_header
+ if line =~ /^=begin$/
+ state = :in_header
+ end
+ when :in_header
+ if line =~ /^=end$/
+ state = :body
+ start = @source_buffer.get_iter_at_offset(0)
+ elsif line =~ /^=\s+(.*)$/
+ title = $1
title.gsub!(/\s*\(.*\)$/, '') # Delete depend field
- last = start
+ last = start
- @info_buffer.insert(last, title)
- start = last.clone
+ @info_buffer.insert(last, title)
+ start = last.clone
- start.backward_chars(title.length)
- @info_buffer.apply_tag('title', start, last)
+ start.backward_chars(title.length)
+ @info_buffer.apply_tag('title', start, last)
- start = last
- else
- @info_buffer.insert(start, line)
- end
- when :body # Reading program body
- @source_buffer.insert(start, line)
- end
+ start = last
+ else
+ @info_buffer.insert(start, line)
+ end
+ when :body # Reading program body
+ @source_buffer.insert(start, line)
+ end
end
fontify
@@ -325,30 +329,30 @@ module Demo
def tokenize(str, index = 0)
until str.empty?
- tag = nil
-
- case str
- when /".+?"/, /'.+?'/
- tag = :string
- when /#.*$/
- tag = :comment
- when RESERVED_WORDS_PATTERN
- tag = :reserved
- when /[A-Z][A-Za-z0-9_]+/
- tag = :const
- end
-
- if tag
- tokenize($~.pre_match, index) do |*args|
+ tag = nil
+
+ case str
+ when /".+?"/, /'.+?'/
+ tag = :string
+ when /#.*$/
+ tag = :comment
+ when RESERVED_WORDS_PATTERN
+ tag = :reserved
+ when /[A-Z][A-Za-z0-9_]+/
+ tag = :const
+ end
+
+ if tag
+ tokenize($~.pre_match, index) do |*args|
yield(*args)
- end
- yield(tag, index + $~.begin(0), index + $~.end(0))
- index += (str.length - $~.post_match.length)
- str = $~.post_match
- else
- index += str.length
- str = ''
- end
+ end
+ yield(tag, index + $~.begin(0), index + $~.end(0))
+ index += (str.length - $~.post_match.length)
+ str = $~.post_match
+ else
+ index += str.length
+ str = ''
+ end
end
end
end
@@ -365,9 +369,9 @@ if target
window.show_all
class << window
- def quit
- Gtk.main_quit
- end
+ def quit
+ Gtk.main_quit
+ end
end
break
diff --git a/gtk2/test/test_gtk_icon_theme.rb b/gtk2/test/test_gtk_icon_theme.rb
index b7b1906..2f5f1e3 100644
--- a/gtk2/test/test_gtk_icon_theme.rb
+++ b/gtk2/test/test_gtk_icon_theme.rb
@@ -10,11 +10,11 @@ class TestGtkIconTheme < Test::Unit::TestCase
assert_nil(@theme.choose_icon("non-existent", 100))
- icon = @theme.choose_icon("undo", 10)
+ icon = @theme.choose_icon("face-cool", 10)
assert_not_nil(icon)
- assert_match(/undo/, icon.filename)
+ assert_match(/face-cool/, icon.filename)
- assert_not_nil(@theme.choose_icon("undo", 29, [:use_builtin, :no_svg]))
+ assert_not_nil(@theme.choose_icon("face-cool", 29, [:use_builtin, :no_svg]))
end
def test_contexts
@@ -23,8 +23,13 @@ class TestGtkIconTheme < Test::Unit::TestCase
assert_operator(@theme.contexts, :include?, "MimeTypes")
end
- def test_icons
- assert_operator(@theme.icons, :include?, "undo")
- assert_operator(@theme.icons("Actions"), :include?, "remove")
+ class TestIcons < self
+ def test_no_argument
+ assert_operator(@theme.icons, :include?, "face-cool")
+ end
+
+ def test_context
+ assert_operator(@theme.icons("Actions"), :include?, "find")
+ end
end
end
diff --git a/gtk3/COPYING.LIB b/gtk3/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/gtk3/COPYING.LIB
+++ b/gtk3/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/gtk3/README.md b/gtk3/README.md
index 7320d27..06dece2 100644
--- a/gtk3/README.md
+++ b/gtk3/README.md
@@ -7,7 +7,7 @@ Ruby/GTK3 is a Ruby binding of GTK 3.
* Ruby/GLib2, Ruby/ATK, Ruby/Pango, Ruby/GdkPixbuf2 and Ruby/GTK3 in
[Ruby-GNOME2](http://ruby-gnome2.sourceforge.jp/)
* [rcairo](https://github.com/rcairo/rcairo)
-* [GTK+](http://cairographics.org/) 3.4.2 or later
+* [GTK+](http://www.gtk.org/) 3.4.2 or later
## Install
diff --git a/gtk3/Rakefile b/gtk3/Rakefile
index 06fc9ee..4906f4e 100644
--- a/gtk3/Rakefile
+++ b/gtk3/Rakefile
@@ -16,6 +16,5 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
]
package.windows.packages = []
package.windows.dependencies = []
- package.required_ruby_version = ">= 1.9.2"
end
package_task.define
diff --git a/gtk3/ext/gtk3/extconf.rb b/gtk3/ext/gtk3/extconf.rb
index 8647172..317fcc5 100644
--- a/gtk3/ext/gtk3/extconf.rb
+++ b/gtk3/ext/gtk3/extconf.rb
@@ -54,7 +54,10 @@ rcairo_source_dir_names.each do |rcairo_source_dir_name|
break
end
end
-check_cairo(rcairo_options)
+
+unless check_cairo(rcairo_options)
+ exit(false)
+end
setup_win32(module_name, base_dir)
diff --git a/gtk3/ext/gtk3/rbgtk-action-group.c b/gtk3/ext/gtk3/rbgtk-action-group.c
index b527fe2..4ab4574 100644
--- a/gtk3/ext/gtk3/rbgtk-action-group.c
+++ b/gtk3/ext/gtk3/rbgtk-action-group.c
@@ -1,6 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
+ * Copyright (C) 2011-2013 Ruby-GNOME2 Project Team
* Copyright (C) 2004-2006 Masao Mutoh
*
* This library is free software; you can redistribute it and/or
@@ -325,6 +325,7 @@ rbg_rval2gtkradioactionentries_body(VALUE value)
args->result[i].stock_id = RVAL2CSTR_ACCEPT_SYMBOL_ACCEPT_NIL(RARRAY_PTR(entry)[1]);
case 1:
args->result[i].name = RVAL2CSTR_ACCEPT_NIL(RARRAY_PTR(entry)[0]);
+ break;
default:
rb_raise(rb_eArgError, "entry does not contain right number of entries %ld (1..6)", n);
}
diff --git a/gtk3/ext/gtk3/rbgtk-binding-set.c b/gtk3/ext/gtk3/rbgtk-binding-set.c
index a06d6bb..d0a6ae5 100644
--- a/gtk3/ext/gtk3/rbgtk-binding-set.c
+++ b/gtk3/ext/gtk3/rbgtk-binding-set.c
@@ -127,15 +127,6 @@ rg_add_signal(int argc, VALUE *argv, VALUE self)
}
static VALUE
-rg_add_path(VALUE self, VALUE path_type, VALUE path_pattern, VALUE priority)
-{
- gtk_binding_set_add_path(_SELF(self), RVAL2GTKPATHTYPE(path_type),
- RVAL2CSTR(path_pattern),
- RVAL2GTKPATHPRIORITYTYPE(priority));
- return self;
-}
-
-static VALUE
rg_entry_remove(VALUE self, VALUE keyval, VALUE modifiers)
{
gtk_binding_entry_remove(_SELF(self), NUM2UINT(keyval), RVAL2GDKMODIFIERTYPE(modifiers));
@@ -158,7 +149,6 @@ Init_gtk_bindings(VALUE mGtk)
RG_DEF_METHOD(activate, 3);
RG_DEF_METHOD(add_signal, -1);
RG_DEF_ALIAS("entry_add_signal", "add_signal");
- RG_DEF_METHOD(add_path, 3);
RG_DEF_METHOD(entry_remove, 2);
RG_DEF_METHOD(entry_skip, 2);
}
diff --git a/gtk3/ext/gtk3/rbgtk-cell-renderer.c b/gtk3/ext/gtk3/rbgtk-cell-renderer.c
index 698987d..a2d29c9 100644
--- a/gtk3/ext/gtk3/rbgtk-cell-renderer.c
+++ b/gtk3/ext/gtk3/rbgtk-cell-renderer.c
@@ -25,14 +25,17 @@
#define _SELF(s) (RVAL2GTKCELLRENDERER(s))
static VALUE
-rg_get_size(VALUE self, VALUE widget, VALUE cell_area)
+rg_get_preferred_size(VALUE self, VALUE widget)
{
- GdkRectangle ret;
+ GtkRequisition minimum_size, natural_size;
- gtk_cell_renderer_get_size(_SELF(self), RVAL2GTKWIDGET(widget),
- RVAL2GDKRECTANGLE(cell_area),
- &ret.x, &ret.y, &ret.width, &ret.height);
- return GDKRECTANGLE2RVAL(&ret);
+ gtk_cell_renderer_get_preferred_size(_SELF(self),
+ RVAL2GTKWIDGET(widget),
+ &minimum_size, &natural_size);
+
+ return rb_ary_new3(2,
+ GTKREQUISITION2RVAL(&minimum_size),
+ GTKREQUISITION2RVAL(&natural_size));
}
/* TODO
@@ -101,7 +104,7 @@ Init_gtk_cellrenderer(VALUE mGtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_CELL_RENDERER, "CellRenderer", mGtk);
- RG_DEF_METHOD(get_size, 2);
+ RG_DEF_METHOD(get_preferred_size, 1);
/* TODO
RG_DEF_METHOD(render, 6);
*/
diff --git a/gtk3/ext/gtk3/rbgtk-cell-view.c b/gtk3/ext/gtk3/rbgtk-cell-view.c
index a1f7b4f..3953811 100644
--- a/gtk3/ext/gtk3/rbgtk-cell-view.c
+++ b/gtk3/ext/gtk3/rbgtk-cell-view.c
@@ -75,19 +75,6 @@ rg_displayed_row(VALUE self)
return GTKTREEPATH2RVAL(gtk_cell_view_get_displayed_row(_SELF(self)));
}
-static VALUE
-rg_get_size_of_row(VALUE self, VALUE path)
-{
- GtkRequisition req;
- gboolean ret = gtk_cell_view_get_size_of_row(_SELF(self),
- RVAL2GTKTREEPATH(path),
- &req);
- if (! ret)
- rb_raise(rb_eRuntimeError, "Can't get the value");
-
- return rb_ary_assoc(INT2NUM(req.width), INT2NUM(req.height));
-}
-
/* Use Gtk::CellView#background_gdk(Gdk::Color) instead.
void gtk_cell_view_set_background_color
(GtkCellView *cell_view,
@@ -105,5 +92,4 @@ Init_gtk_cellview(VALUE mGtk)
RG_DEF_METHOD(initialize, -1);
RG_DEF_METHOD(set_displayed_row, 1);
RG_DEF_METHOD(displayed_row, 0);
- RG_DEF_METHOD(get_size_of_row, 1);
}
diff --git a/gtk3/ext/gtk3/rbgtk-container.c b/gtk3/ext/gtk3/rbgtk-container.c
index e7b1cb6..328f640 100644
--- a/gtk3/ext/gtk3/rbgtk-container.c
+++ b/gtk3/ext/gtk3/rbgtk-container.c
@@ -146,7 +146,7 @@ rg_child_type(VALUE self)
return GTYPE2CLASS(gtk_container_child_type(_SELF(self)));
}
-/*
+/*
void gtk_container_child_get (GtkContainer *container,
GtkWidget *child,
const gchar *first_prop_name,
@@ -229,7 +229,7 @@ rg_child_get_property(VALUE self, VALUE child, VALUE prop_name)
}
}
g_value_init(&gval, G_PARAM_SPEC_VALUE_TYPE(pspec));
- gtk_container_child_get_property(RVAL2GTKCONTAINER(self),
+ gtk_container_child_get_property(RVAL2GTKCONTAINER(self),
RVAL2GTKWIDGET(child),
name , &gval);
ret = getter ? getter(&gval) : GVAL2RVAL(&gval);
@@ -282,7 +282,7 @@ rg_child_set_property(VALUE self, VALUE child, VALUE prop_name, VALUE val)
G_CHILD_ADD(child, val);
- gtk_container_child_set_property(RVAL2GTKCONTAINER(self),
+ gtk_container_child_set_property(RVAL2GTKCONTAINER(self),
RVAL2GTKWIDGET(child), name, &gval);
g_value_unset(&gval);
@@ -312,7 +312,7 @@ rg_add(int argc, VALUE *argv, VALUE self)
ary = rb_funcall(properties, rb_intern("to_a"), 0);
for (i = 0; i < RARRAY_LEN(ary); i++) {
- rg_child_set_property(self, other,
+ rg_child_set_property(self, other,
RARRAY_PTR(RARRAY_PTR(ary)[i])[0],
RARRAY_PTR(RARRAY_PTR(ary)[i])[1]);
}
@@ -345,9 +345,13 @@ rg_propagate_expose(VALUE self, VALUE child, VALUE event)
static VALUE
rg_focus_chain(VALUE self)
{
- gboolean ret;
+ gboolean set_explicitly;
GList *glist = NULL;
- ret = gtk_container_get_focus_chain(_SELF(self), &glist);
+
+ set_explicitly = gtk_container_get_focus_chain(_SELF(self), &glist);
+ if (!set_explicitly) {
+ return Qnil;
+ }
return GOBJGLIST2RVAL_FREE(glist, g_list_free, NULL);
}
@@ -458,7 +462,7 @@ rg_s_install_child_property(int argc, VALUE *argv, VALUE self)
rb_class2name(self));
gclass = GTK_CONTAINER_CLASS(g_type_class_ref(cinfo->gtype));
- gtk_container_class_install_child_property(gclass,
+ gtk_container_class_install_child_property(gclass,
NIL_P(prop_id) ? 1 : NUM2UINT(prop_id),
pspec);
@@ -663,7 +667,7 @@ rg_s_type_register(int argc, VALUE* argv, VALUE self)
VALUE s = rb_funcall(self, rb_intern("name"), 0);
if (strlen(StringValuePtr(s)) == 0)
- rb_raise(rb_eTypeError, "can't determine type name");
+ rb_raise(rb_eTypeError, "can't determine type name");
type_name = rb_funcall(
rb_eval_string("lambda{|x| x.gsub(/::/,'') }"),
diff --git a/gtk3/ext/gtk3/rbgtk-file-chooser.c b/gtk3/ext/gtk3/rbgtk-file-chooser.c
index eb7a9d4..c7193f7 100644
--- a/gtk3/ext/gtk3/rbgtk-file-chooser.c
+++ b/gtk3/ext/gtk3/rbgtk-file-chooser.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2005,2006 Ruby-GNOME2 Project Team
+ * Copyright (C) 2005-2013 Ruby-GNOME2 Project Team
* Copyright (C) 2004 Seiya Nishizawa, Masao Mutoh
*
* This library is free software; you can redistribute it and/or
@@ -289,10 +288,9 @@ rg_preview_file(VALUE self)
static VALUE
rg_select_file(VALUE self, VALUE file)
{
- gboolean result;
GError *error = NULL;
- result = gtk_file_chooser_select_file(_SELF(self), RVAL2GFILE(file), &error);
+ gtk_file_chooser_select_file(_SELF(self), RVAL2GFILE(file), &error);
if (error)
RAISE_GERROR(error);
@@ -315,10 +313,9 @@ rg_set_current_folder_file(VALUE self, VALUE file)
static VALUE
rg_set_file(VALUE self, VALUE file)
{
- gboolean result;
GError *error = NULL;
- result = gtk_file_chooser_set_file(_SELF(self), RVAL2GFILE(file), &error);
+ gtk_file_chooser_set_file(_SELF(self), RVAL2GFILE(file), &error);
if (error)
RAISE_GERROR(error);
@@ -376,7 +373,7 @@ Init_gtk_file_chooser(VALUE mGtk)
RG_DEF_METHOD(unselect_file, 1);
G_DEF_CLASS(GTK_TYPE_FILE_CHOOSER_ACTION, "Action", RG_TARGET_NAMESPACE);
- G_DEF_ERROR(GTK_FILE_CHOOSER_ERROR, "FileChooserError", mGtk, rb_eRuntimeError,
+ G_DEF_ERROR(GTK_FILE_CHOOSER_ERROR, "FileChooserError", mGtk, rb_eRuntimeError,
GTK_TYPE_FILE_CHOOSER_ERROR);
G_DEF_CLASS(GTK_TYPE_FILE_CHOOSER_CONFIRMATION, "Confirmation", RG_TARGET_NAMESPACE);
diff --git a/gtk3/ext/gtk3/rbgtk-icon-info.c b/gtk3/ext/gtk3/rbgtk-icon-info.c
index e7c7308..02064a4 100644
--- a/gtk3/ext/gtk3/rbgtk-icon-info.c
+++ b/gtk3/ext/gtk3/rbgtk-icon-info.c
@@ -1,6 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
+ * Copyright (C) 2011-2013 Ruby-GNOME2 Project Team
* Copyright (C) 2004 Masao Mutoh
*
* This library is free software; you can redistribute it and/or
@@ -100,7 +100,7 @@ rg_display_name(VALUE self)
}
void
-Init_gtk_iconinfo(VALUE mGtk)
+Init_gtk_icon_info(VALUE mGtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(GTK_TYPE_ICON_INFO, "IconInfo", mGtk);
diff --git a/gtk3/ext/gtk3/rbgtk-style-properties.c b/gtk3/ext/gtk3/rbgtk-style-properties.c
index fd771a7..97976bb 100644
--- a/gtk3/ext/gtk3/rbgtk-style-properties.c
+++ b/gtk3/ext/gtk3/rbgtk-style-properties.c
@@ -43,19 +43,18 @@ static VALUE
rg_get_property(VALUE self, VALUE property, VALUE state)
{
GValue value = G_VALUE_INIT;
- gboolean result;
- VALUE ret = Qnil;
-
- result = gtk_style_properties_get_property(_SELF(self),
- RVAL2CSTR(property),
- RVAL2GTKSTATEFLAGS(state),
- &value);
- if (G_VALUE_TYPE(&value) != G_TYPE_INVALID){
- ret = GVAL2RVAL(&value);
- g_value_unset(&value);
- }
-
- return ret;
+ gboolean exist;
+ VALUE rb_value = Qnil;
+
+ exist = gtk_style_properties_get_property(_SELF(self),
+ RVAL2CSTR(property),
+ RVAL2GTKSTATEFLAGS(state),
+ &value);
+ if (exist) {
+ rb_value = GVAL2RVAL_UNSET(&value);
+ }
+
+ return rb_value;
}
static VALUE
diff --git a/gtk3/ext/gtk3/rbgtk-style-provider.c b/gtk3/ext/gtk3/rbgtk-style-provider.c
index 0617537..c67a244 100644
--- a/gtk3/ext/gtk3/rbgtk-style-provider.c
+++ b/gtk3/ext/gtk3/rbgtk-style-provider.c
@@ -1,6 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
+ * Copyright (C) 2011-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -41,20 +41,19 @@ static VALUE
rg_get_style_property(VALUE self, VALUE path, VALUE state, VALUE pspec)
{
GValue value = G_VALUE_INIT;
- gboolean result;
- VALUE ret = Qnil;
+ gboolean exist;
+ VALUE property = Qnil;
- result = gtk_style_provider_get_style_property(_SELF(self),
- RVAL2GTKWIDGETPATH(path),
- RVAL2GTKSTATEFLAGS(state),
- RVAL2GPARAMSPEC(pspec),
- &value);
- if (G_VALUE_TYPE(&value) != G_TYPE_INVALID){
- ret = GVAL2RVAL(&value);
- g_value_unset(&value); /* TODO: needless? */
- }
+ exist = gtk_style_provider_get_style_property(_SELF(self),
+ RVAL2GTKWIDGETPATH(path),
+ RVAL2GTKSTATEFLAGS(state),
+ RVAL2GPARAMSPEC(pspec),
+ &value);
+ if (exist) {
+ property = GVAL2RVAL_UNSET(&value);
+ }
- return ret;
+ return property;
}
void
diff --git a/gtk3/ext/gtk3/rbgtk-widget.c b/gtk3/ext/gtk3/rbgtk-widget.c
index eb267c2..2c62d1d 100644
--- a/gtk3/ext/gtk3/rbgtk-widget.c
+++ b/gtk3/ext/gtk3/rbgtk-widget.c
@@ -144,7 +144,7 @@ rg_remove_accelerator(VALUE self, VALUE accel, VALUE key, VALUE mod)
static VALUE
rg_set_accel_path(VALUE self, VALUE accel_path, VALUE accel_group)
{
- gtk_widget_set_accel_path(_SELF(self), RVAL2CSTR(accel_path),
+ gtk_widget_set_accel_path(_SELF(self), RVAL2CSTR(accel_path),
RVAL2GTKACCELGROUP(accel_group));
return self;
}
@@ -202,7 +202,7 @@ rg_grab_default(VALUE self)
static VALUE
rg_set_parent_window(VALUE self, VALUE parent_window)
{
- gtk_widget_set_parent_window(_SELF(self),
+ gtk_widget_set_parent_window(_SELF(self),
RVAL2GDKWINDOW(parent_window));
return self;
}
@@ -239,15 +239,6 @@ rg_visual(VALUE self)
}
static VALUE
-rg_pointer(VALUE self)
-{
- int x, y;
-
- gtk_widget_get_pointer(_SELF(self), &x, &y);
- return rb_assoc_new(INT2FIX(x), INT2FIX(y));
-}
-
-static VALUE
rg_ancestor_p(VALUE self, VALUE ancestor)
{
return CBOOL2RVAL(gtk_widget_is_ancestor(_SELF(self), _SELF(ancestor)));
@@ -406,10 +397,10 @@ rg_s_install_style_property(VALUE self, VALUE spec)
if (rb_block_given_p()){
VALUE func = rb_block_proc();
rb_hash_aset(style_prop_func_table, spec, func);
- gtk_widget_class_install_style_property_parser(gclass, pspec,
+ gtk_widget_class_install_style_property_parser(gclass, pspec,
(GtkRcPropertyParser)rc_property_parser);
} else {
- gtk_widget_class_install_style_property(gclass, pspec);
+ gtk_widget_class_install_style_property(gclass, pspec);
}
return self;
}
@@ -471,7 +462,7 @@ rg_s_style_properties(int argc, VALUE *argv, VALUE self)
static VALUE
rg_region_intersect(VALUE self, VALUE region)
{
- return CRREGION2RVAL(gtk_widget_region_intersect(_SELF(self),
+ return CRREGION2RVAL(gtk_widget_region_intersect(_SELF(self),
RVAL2CRREGION(region)));
}
@@ -796,7 +787,7 @@ static VALUE
widget_signal_size_request(G_GNUC_UNUSED guint num, const GValue *values)
{
GtkRequisition* req = (GtkRequisition*)g_value_get_boxed(&values[1]);
- return rb_ary_new3(2, GVAL2RVAL(&values[0]),
+ return rb_ary_new3(2, GVAL2RVAL(&values[0]),
rb_ary_new3(2, INT2NUM(req->width), INT2NUM(req->height)));
}
static VALUE
@@ -1167,10 +1158,10 @@ rg_drag_dest_set(VALUE self, VALUE flags, VALUE targets, VALUE actions)
static VALUE
rg_drag_dest_set_proxy(VALUE self, VALUE proxy_window, VALUE protocol, VALUE use_coordinates)
{
- gtk_drag_dest_set_proxy(_SELF(self),
+ gtk_drag_dest_set_proxy(_SELF(self),
RVAL2GDKWINDOW(proxy_window),
- RVAL2GDKDRAGPROTOCOL(protocol),
- RVAL2CBOOL(use_coordinates));
+ RVAL2GDKDRAGPROTOCOL(protocol),
+ RVAL2CBOOL(use_coordinates));
return self;
}
@@ -1205,7 +1196,7 @@ rg_drag_dest_get_target_list(VALUE self)
static VALUE
rg_drag_dest_set_target_list(VALUE self, VALUE target_list)
{
- gtk_drag_dest_set_target_list(_SELF(self),
+ gtk_drag_dest_set_target_list(_SELF(self),
NIL_P(target_list) ? NULL : RVAL2GTKTARGETLIST(target_list));
return self;
@@ -1282,7 +1273,7 @@ rg_drag_begin(VALUE self, VALUE target_list, VALUE actions, VALUE button, VALUE
static VALUE
rg_drag_threshold_p(VALUE self, VALUE start_x, VALUE start_y, VALUE current_x, VALUE current_y)
{
- return CBOOL2RVAL(gtk_drag_check_threshold(_SELF(self),
+ return CBOOL2RVAL(gtk_drag_check_threshold(_SELF(self),
NUM2INT(start_x), NUM2INT(start_y),
NUM2INT(current_x), NUM2INT(current_y)));
}
@@ -1422,7 +1413,6 @@ Init_gtk_widget(VALUE mGtk)
RG_DEF_METHOD(toplevel, 0);
RG_DEF_METHOD(get_ancestor, 1);
RG_DEF_METHOD(visual, 0);
- RG_DEF_METHOD(pointer, 0);
RG_DEF_METHOD_P(ancestor, 1);
RG_DEF_METHOD(translate_coordinates, 3);
RG_DEF_METHOD(hide_on_delete, 0);
diff --git a/gtk3/ext/gtk3/rbgtk.c b/gtk3/ext/gtk3/rbgtk.c
index a9b408b..f6abc90 100644
--- a/gtk3/ext/gtk3/rbgtk.c
+++ b/gtk3/ext/gtk3/rbgtk.c
@@ -314,6 +314,40 @@ rg_s_check_version_p(G_GNUC_UNUSED VALUE self, VALUE major, VALUE minor, VALUE m
return CBOOL2RVAL(ret == NULL);
}
+static VALUE
+rg_s_show_uri(G_GNUC_UNUSED VALUE self, VALUE rb_uri_or_options)
+{
+ VALUE rb_screen = Qnil;
+ VALUE rb_uri = Qnil;
+ VALUE rb_timestamp = Qnil;
+ GdkScreen *screen = NULL;
+ const gchar *uri = NULL;
+ guint32 timestamp = GDK_CURRENT_TIME;
+ GError *error = NULL;
+
+ if (TYPE(rb_uri_or_options) == T_HASH) {
+ rbg_scan_options(rb_uri_or_options,
+ "screen", &rb_screen,
+ "uri", &rb_uri,
+ "timestamp", &rb_timestamp,
+ NULL);
+ } else {
+ rb_uri = rb_uri_or_options;
+ }
+
+ screen = RVAL2GOBJ(rb_screen);
+ uri = StringValueCStr(rb_uri);
+ if (!NIL_P(rb_timestamp)) {
+ timestamp = NUM2UINT(rb_timestamp);
+ }
+
+ if (!gtk_show_uri(screen, uri, timestamp, &error)) {
+ RAISE_GERROR(error);
+ }
+
+ return self;
+}
+
void
Init_gtk(void)
{
@@ -355,6 +389,7 @@ Init_gtk(void)
RG_DEF_SMETHOD(propagate_event, 2);
RG_DEF_SMETHOD(check_version, 3);
RG_DEF_SMETHOD_P(check_version, 3);
+ RG_DEF_SMETHOD(show_uri, 1);
rb_define_const(RG_TARGET_NAMESPACE, "PRIORITY_RESIZE", INT2FIX(GTK_PRIORITY_RESIZE));
@@ -442,7 +477,7 @@ Init_gtk(void)
Init_gtk_handle_box(RG_TARGET_NAMESPACE);
Init_gtk_hsv(RG_TARGET_NAMESPACE);
Init_gtk_icon_factory(RG_TARGET_NAMESPACE);
- Init_gtk_iconinfo(RG_TARGET_NAMESPACE);
+ Init_gtk_icon_info(RG_TARGET_NAMESPACE);
Init_gtk_icon_set(RG_TARGET_NAMESPACE);
Init_gtk_icon_size(RG_TARGET_NAMESPACE);
Init_gtk_icon_source(RG_TARGET_NAMESPACE);
diff --git a/gtk3/ext/gtk3/rbgtk3conversions.h b/gtk3/ext/gtk3/rbgtk3conversions.h
index 238cd0c..917b091 100644
--- a/gtk3/ext/gtk3/rbgtk3conversions.h
+++ b/gtk3/ext/gtk3/rbgtk3conversions.h
@@ -185,8 +185,13 @@
#define GTKBORDER2RVAL(o) (BOXED2RVAL(o, GTK_TYPE_BORDER))
#define RVAL2GTKCSSSECTION(o) ((GtkCssSection*)RVAL2BOXED(o, GTK_TYPE_CSS_SECTION))
#define GTKCSSSECTION2RVAL(o) (BOXED2RVAL(o, GTK_TYPE_CSS_SECTION))
-#define RVAL2GTKICONINFO(o) ((GtkIconInfo*)RVAL2BOXED(o, GTK_TYPE_ICON_INFO))
-#define GTKICONINFO2RVAL(o) (BOXED2RVAL(o, GTK_TYPE_ICON_INFO))
+#if GTK_CHECK_VERSION(3, 8, 0)
+# define RVAL2GTKICONINFO(o) (GTK_ICON_INFO(RVAL2GOBJ(o)))
+# define GTKICONINFO2RVAL(o) (GOBJ2RVAL(o))
+#else
+# define RVAL2GTKICONINFO(o) ((GtkIconInfo *)RVAL2BOXED(o, GTK_TYPE_ICON_INFO))
+# define GTKICONINFO2RVAL(o) (BOXED2RVAL(o, GTK_TYPE_ICON_INFO))
+#endif
#define RVAL2GTKICONSET(o) ((GtkIconSet*)RVAL2BOXED(o, GTK_TYPE_ICON_SET))
#define GTKICONSET2RVAL(o) (BOXED2RVAL(o, GTK_TYPE_ICON_SET))
#define RVAL2GTKICONSOURCE(o) ((GtkIconSource*)RVAL2BOXED(o, GTK_TYPE_ICON_SOURCE))
@@ -199,6 +204,8 @@
#define GTKRECENTFILTERINFO2RVAL(o) (BOXED2RVAL(o, GTK_TYPE_RECENT_FILTER_INFO))
#define RVAL2GTKRECENTINFO(o) ((GtkRecentInfo*)RVAL2BOXED(o, GTK_TYPE_RECENT_INFO))
#define GTKRECENTINFO2RVAL(o) (BOXED2RVAL(o, GTK_TYPE_RECENT_INFO))
+#define RVAL2GTKREQUISITION(o) ((GtkRequisition *)RVAL2BOXED(o, GTK_TYPE_REQUISITION))
+#define GTKREQUISITION2RVAL(o) (BOXED2RVAL(o, GTK_TYPE_REQUISITION))
#define RVAL2GTKSELECTIONDATA(o) ((GtkSelectionData*)RVAL2BOXED(o, GTK_TYPE_SELECTION_DATA))
#define GTKSELECTIONDATA2RVAL(o) (BOXED2RVAL(o, GTK_TYPE_SELECTION_DATA))
#define RVAL2GTKSYMBOLICCOLOR(o) ((GtkSymbolicColor*)RVAL2BOXED(o, GTK_TYPE_SYMBOLIC_COLOR))
diff --git a/gtk3/ext/gtk3/rbgtk3private.h b/gtk3/ext/gtk3/rbgtk3private.h
index c172dfb..8867f5c 100644
--- a/gtk3/ext/gtk3/rbgtk3private.h
+++ b/gtk3/ext/gtk3/rbgtk3private.h
@@ -48,12 +48,6 @@
# define G_VALUE_INIT { 0, { { 0 } } }
#endif
-#if defined(HAVE_RB_CAIRO_H)
-# define CAIRO_AVAILABLE 1
-#else
-# define CAIRO_AVAILABLE 0
-#endif
-
extern ID id_relative_callbacks;
extern ID id_call;
@@ -157,7 +151,7 @@ G_GNUC_INTERNAL void Init_gtk_grid(VALUE mGtk);
G_GNUC_INTERNAL void Init_gtk_handle_box(VALUE mGtk);
G_GNUC_INTERNAL void Init_gtk_hsv(VALUE mGtk);
G_GNUC_INTERNAL void Init_gtk_icon_factory(VALUE mGtk);
-G_GNUC_INTERNAL void Init_gtk_iconinfo(VALUE mGtk);
+G_GNUC_INTERNAL void Init_gtk_icon_info(VALUE mGtk);
G_GNUC_INTERNAL void Init_gtk_icon_set(VALUE mGtk);
G_GNUC_INTERNAL void Init_gtk_icon_size(VALUE mGtk);
G_GNUC_INTERNAL void Init_gtk_icon_source(VALUE mGtk);
diff --git a/gtk3/lib/gtk3/deprecated.rb b/gtk3/lib/gtk3/deprecated.rb
index 854bd70..e72c78d 100644
--- a/gtk3/lib/gtk3/deprecated.rb
+++ b/gtk3/lib/gtk3/deprecated.rb
@@ -120,6 +120,7 @@ module Gtk
class BindingSet
extend GLib::Deprecatable
define_deprecated_method :entry_clear, :entry_remove
+ define_deprecated_method :add_path, :raise => "Don't use this method."
end
class Box
@@ -194,6 +195,7 @@ module Gtk
define_deprecated_method :editing_canceled, :warn => "Use '#{self}#stop_editing'." do |_self|
_self.stop_editing(true)
end
+ define_deprecated_method :get_size, :raise => "Use Gtk::Renderer#get_preferred_size."
end
class CellRendererAccel
@@ -206,6 +208,7 @@ module Gtk
define_deprecated_method :cell_renderers, :warn => "Use 'Gtk::CellLayout#cells'." do |_self|
_self.cells
end
+ define_deprecated_method :get_size_of_row, :raise => "Use Gtk::Renderer#get_preferred_size."
end
class ColorSelectionDialog
@@ -970,6 +973,7 @@ module Gtk
define_deprecated_method :requisition, :raise => "Don't use this method."
define_deprecated_method :set_requisition, :warn => "Don't use this method."
define_deprecated_method :saved_state, :raise => "Don't use this method."
+ define_deprecated_method :pointer, :raise => "Use 'Gdk::Window#get_device_position'."
alias :__set_allocation__ :set_allocation
private :__set_allocation__
@@ -998,4 +1002,3 @@ module Gtk
define_deprecated_method :active_default, :activate_default
end
end
-
diff --git a/gtk3/sample/gtk-demo/colorsel.rb b/gtk3/sample/gtk-demo/colorsel.rb
index 2f90881..8f8193d 100644
--- a/gtk3/sample/gtk-demo/colorsel.rb
+++ b/gtk3/sample/gtk-demo/colorsel.rb
@@ -3,7 +3,7 @@
#
# $Id: colorsel.rb,v 1.4 2005/02/12 23:02:43 kzys Exp $
=begin
-= Color Selector
+= Color Selector
Gtk::ColorSelection lets the user choose a color. Gtk::ColorSelectionDialog
is a prebuilt dialog containing a Gtk::ColorSelection.
@@ -15,11 +15,11 @@ module Demo
def initialize
super('Color Selection')
- @color = Gdk::Color.new(0, 0, 65535)
+ @color = Gdk::RGBA.new(0, 0, 1, 1)
set_border_width(8)
-
- vbox = Gtk::VBox.new(false, 0)
+
+ vbox = Gtk::Box.new(:vertical, 0)
vbox.set_border_width(8)
add(vbox)
@@ -29,53 +29,51 @@ module Demo
vbox.pack_start(@frame, :expand => true, :fill => true, :padding => 0)
@da = Gtk::DrawingArea.new
-
- @da.signal_connect('expose_event') do |widget, event|
- if widget.window
- style = widget.style
-
- widget.window.draw_rectangle(style.bg_gc(Gtk::STATE_NORMAL),
- true,
- event.area.x, event.area.y,
- event.area.width, event.area.height)
- end
+
+ @da.signal_connect('draw') do |widget, event|
+ if widget.window
+ context = widget.style_context
+ background_color = context.get_background_color(:normal)
+ event.set_source_rgba(background_color.to_a)
+ event.paint
+ end
end
# set a minimum size
@da.set_size_request(200, 200)
# set the color
- @da.modify_bg(Gtk::STATE_NORMAL, @color)
+ @da.override_background_color(:normal, @color)
@frame.add(@da)
alignment = Gtk::Alignment.new(1.0, 0.5, 0.0, 0.0)
- button = Gtk::Button.new('_Change the above color', true)
+ button = Gtk::Button.new(:mnemonic => '_Change the above color')
alignment.add(button)
vbox.pack_start(alignment, :expand => false, :fill => false, :padding => 0)
button.signal_connect('clicked') do
- change_color_callback
+ change_color_callback
end
end
def change_color_callback
- dialog = Gtk::ColorSelectionDialog.new('Changing color')
+ dialog = Gtk::ColorSelectionDialog.new(:title => 'Changing color')
dialog.set_transient_for(self)
- colorsel = dialog.colorsel
+ colorsel = dialog.color_selection
- colorsel.set_previous_color(@color)
- colorsel.set_current_color(@color)
+ colorsel.set_previous_rgba(@color)
+ colorsel.set_current_rgba(@color)
colorsel.set_has_palette(true)
response = dialog.run
-
- if response == Gtk::Dialog::RESPONSE_OK
- @color = colorsel.current_color
- @da.modify_bg(Gtk::STATE_NORMAL, @color)
+
+ if response == Gtk::ResponseType::OK
+ @color = colorsel.current_rgba
+ @da.override_background_color(:normal, @color)
end
dialog.destroy
diff --git a/gtk3/sample/gtk-demo/common.rb b/gtk3/sample/gtk-demo/common.rb
index fdbedda..d9607d7 100644
--- a/gtk3/sample/gtk-demo/common.rb
+++ b/gtk3/sample/gtk-demo/common.rb
@@ -14,7 +14,7 @@ module Demo
%w(. /usr/share/gtk-3.0/demo /usr/local/share/gtk-3.0/demo/).each do |dirname|
path = File.join(dirname, basename)
if File.exist?(path)
- return path
+ return path
end
end
@@ -25,7 +25,7 @@ module Demo
def initialize(title = nil)
super(:toplevel)
if title
- set_title("#{title} in Ruby/GTK")
+ set_title("#{title} in Ruby/GTK")
end
signal_connect("key_press_event") do |widget, event|
@@ -38,7 +38,7 @@ module Demo
end
signal_connect("delete_event") do |widget, event|
- quit
+ quit
end
end
@@ -52,7 +52,7 @@ module Demo
def initialize(title=nil)
super
-
+
unless Gdk.cairo_available?
add_cairo_require_label
return
@@ -61,9 +61,9 @@ module Demo
drawing_area = Gtk::DrawingArea.new
add(drawing_area)
- drawing_area.signal_connect("expose_event") do |widget, event|
+ drawing_area.signal_connect("draw") do |widget, event|
cr = widget.window.create_cairo_context
- cr.scale(*widget.window.size)
+ cr.scale(widget.window.width, widget.window.height)
cr.set_line_width(0.04)
cr.save do
@@ -71,11 +71,11 @@ module Demo
cr.gdk_rectangle(Gdk::Rectangle.new(0, 0, 1, 1))
cr.fill
end
-
+
draw(cr)
end
end
-
+
def add_cairo_require_label
message = "This sample requires GTK+ 2.8.0 or later and cairo support"
add(Gtk::Label.new(message))
diff --git a/gtk3/sample/gtk-demo/css_accordion.css b/gtk3/sample/gtk-demo/css_accordion.css
new file mode 100644
index 0000000..90db9fc
--- /dev/null
+++ b/gtk3/sample/gtk-demo/css_accordion.css
@@ -0,0 +1,53 @@
+ at import url("reset.css");
+
+* {
+ transition-property: color, background-color, border-color, background-image, padding, border-width;
+ transition-duration: 1s;
+
+ font: Cantarell 20px;
+}
+
+GtkWindow {
+ background: linear-gradient(153deg, #151515, #151515 5px, transparent 5px) 0 0,
+ linear-gradient(333deg, #151515, #151515 5px, transparent 5px) 10px 5px,
+ linear-gradient(153deg, #222, #222 5px, transparent 5px) 0 5px,
+ linear-gradient(333deg, #222, #222 5px, transparent 5px) 10px 10px,
+ linear-gradient(90deg, #1b1b1b, #1b1b1b 10px, transparent 10px),
+ linear-gradient(#1d1d1d, #1d1d1d 25%, #1a1a1a 25%, #1a1a1a 50%, transparent 50%, transparent 75%, #242424 75%, #242424);
+ background-color: #131313;
+ background-size: 20px 20px;
+}
+
+.button {
+ color: black;
+ background-color: #bbb;
+ border-style: solid;
+ border-width: 2px 0 2px 2px;
+ border-color: #333;
+
+ padding: 12px 4px;
+}
+
+.button:first-child {
+ border-radius: 5px 0 0 5px;
+}
+
+.button:last-child {
+ border-radius: 0 5px 5px 0;
+ border-width: 2px;
+}
+
+.button:hover {
+ padding: 12px 48px;
+ background-color: #4870bc;
+}
+
+.button *:hover {
+ color: white;
+}
+
+.button:hover:active,
+.button:active {
+ background-color: #993401;
+}
+
diff --git a/gtk3/sample/gtk-demo/css_accordion.rb b/gtk3/sample/gtk-demo/css_accordion.rb
new file mode 100644
index 0000000..c9b1946
--- /dev/null
+++ b/gtk3/sample/gtk-demo/css_accordion.rb
@@ -0,0 +1,75 @@
+#!/usr/bin/env ruby
+#
+# This sample code is a port of gtk3/demos/gtk-demo/css_accordion.c. The
+# CSS files used in this sample code are copied from gtk3/demos/gtk-demo.
+# They are licensed under the terms of the GNU Lesser General Public
+# License, version 2.1 or (at your option) later.
+#
+# Copyright (C) 2013 Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+=begin
+= CSS Theming/CSS Accordion
+
+A simple accordion demo written using CSS transitions and multiple backgrounds
+=end
+
+require "common"
+
+module Demo
+ class CssAccordion < BasicWindow
+ def initialize
+ super("CSS Accordion")
+ set_default_size(600, 300)
+
+ container = Gtk::Box.new(:horizontal, 0)
+ container.set_halign(:center)
+ container.set_valign(:center)
+ add(container)
+
+ child = Gtk::Button.new(:label => "This")
+ container.add(child)
+
+ child = Gtk::Button.new(:label => "Is")
+ container.add(child)
+
+ child = Gtk::Button.new(:label => "A")
+ container.add(child)
+
+ child = Gtk::Button.new(:label => "CSS")
+ container.add(child)
+
+ child = Gtk::Button.new(:label => "Accordion")
+ container.add(child)
+
+ child = Gtk::Button.new(:label => ":-)")
+ container.add(child)
+
+ provider = Gtk::CssProvider.new
+ provider.load(:data => File.read("css_accordion.css"))
+
+ apply_css(self, provider)
+ end
+
+ def apply_css(widget, provider)
+ widget.style_context.add_provider(provider, GLib::MAXUINT)
+ if widget.is_a?(Gtk::Container)
+ widget.each_forall do |child|
+ apply_css(child, provider)
+ end
+ end
+ end
+ end
+end
diff --git a/gtk3/sample/gtk-demo/main.rb b/gtk3/sample/gtk-demo/main.rb
index 69cb371..0705cc5 100755
--- a/gtk3/sample/gtk-demo/main.rb
+++ b/gtk3/sample/gtk-demo/main.rb
@@ -2,7 +2,7 @@
=begin
main.rb - Main class of gtk-demo.
- Copyright (c) 2003-2006 Ruby-GNOME2 Project Team
+ Copyright (c) 2003-2013 Ruby-GNOME2 Project Team
This program is licenced under the same licence as Ruby-GNOME2.
$Id: main.rb,v 1.20 2007/07/09 13:21:54 ggc Exp $
@@ -27,7 +27,7 @@ module Demo
set_title('Ruby/GTK+ Code Demos')
signal_connect('destroy') do
- Gtk.main_quit
+ Gtk.main_quit
end
signal_connect("key_press_event") do |widget, event|
@@ -52,10 +52,10 @@ module Demo
hbox.pack_start(notebook, :expand => true, :fill => true, :padding => 0)
notebook.append_page(create_text(@info_buffer, false),
- Gtk::Label.new('_Info', true))
+ Gtk::Label.new('_Info', true))
notebook.append_page(create_text(@source_buffer, true),
- Gtk::Label.new('_Source', true))
+ Gtk::Label.new('_Source', true))
@info_buffer.create_tag('title',
{'font' => 'Sans 18'})
@@ -66,9 +66,9 @@ module Demo
{'foreground' => 'ForestGreen'})
@source_buffer.create_tag('string',
{
- 'foreground' => 'RosyBrown',
+ 'foreground' => 'RosyBrown',
'weight' => Pango::FontDescription::WEIGHT_BOLD
- })
+ })
@source_buffer.create_tag('reserved',
{'foreground' => 'purple'})
end
@@ -96,7 +96,7 @@ module Demo
end
if not klass
- raise "File not found: #{path}. This script should be run from its directory."
+ raise "File not found: #{path}."
end
return title, klass.intern, depend
@@ -179,8 +179,8 @@ module Demo
tree_view.append_column(column)
selection.signal_connect('changed') do |selection|
- iter = selection.selected
- load_file(iter.get_value(FILENAME_COLUMN)) if iter
+ iter = selection.selected
+ load_file(iter.get_value(FILENAME_COLUMN)) if iter
end
tree_view.signal_connect('row_activated') do |tree_view, path, column|
row_activated_cb(tree_view.model, path)
@@ -192,13 +192,13 @@ module Demo
def append_children(model, source, parent = nil)
source.each do |title, filename, klass, children|
- iter = model.append(parent)
+ iter = model.append(parent)
- [title, filename, klass].each_with_index do |value, i|
- if value
- iter.set_value(i, value)
- end
- end
+ [title, filename, klass].each_with_index do |value, i|
+ if value
+ iter.set_value(i, value)
+ end
+ end
iter.set_value(ITALIC_COLUMN, false)
if children
@@ -214,21 +214,21 @@ module Demo
lib = iter.get_value(FILENAME_COLUMN)
if lib
require(lib)
-
+
klass = Demo.const_get(iter.get_value(CLASS_COLUMN))
window = klass.new
window.signal_connect('destroy') do
iter.set_value(ITALIC_COLUMN, false)
end
window.show_all
- @window = window
+ @window = window
end
end
def create_text(buffer, is_source)
scrolled_window = Gtk::ScrolledWindow.new
scrolled_window.set_policy(:automatic,
- :automatic)
+ :automatic)
scrolled_window.set_shadow_type(:in)
text_view = Gtk::TextView.new
@@ -240,35 +240,35 @@ module Demo
scrolled_window.add(text_view)
if is_source
- font_desc = Pango::FontDescription.new('Monospace 12')
- text_view.override_font(font_desc)
+ font_desc = Pango::FontDescription.new('Monospace 12')
+ text_view.override_font(font_desc)
- text_view.set_wrap_mode(:none)
+ text_view.set_wrap_mode(:none)
else
- text_view.set_wrap_mode(:word)
- text_view.set_pixels_above_lines(2)
- text_view.set_pixels_below_lines(2)
+ text_view.set_wrap_mode(:word)
+ text_view.set_pixels_above_lines(2)
+ text_view.set_pixels_below_lines(2)
end
return scrolled_window
end
def fontify(start_iter = @source_buffer.start_iter,
- end_iter = @source_buffer.end_iter)
+ end_iter = @source_buffer.end_iter)
str = @source_buffer.get_text(start_iter, end_iter, true)
tokenizer = RubyTokonizer.new
tokenizer.tokenize(str, start_iter.offset) do |tag, start, last|
- @source_buffer.apply_tag(tag.to_s,
- @source_buffer.get_iter_at(:offset => start),
- @source_buffer.get_iter_at(:offset => last))
+ @source_buffer.apply_tag(tag.to_s,
+ @source_buffer.get_iter_at(:offset => start),
+ @source_buffer.get_iter_at(:offset => last))
end
end
def load_file(filename)
if filename == @current_file
- return
+ return
end
@info_buffer.delete(*@info_buffer.bounds)
@@ -276,43 +276,43 @@ module Demo
@source_buffer.delete(*@source_buffer.bounds)
file = begin
- File.open(filename)
- rescue
- $stderr.puts "Cannot open: #{$!}" if $DEBUG
- return
- end
+ File.open(filename)
+ rescue
+ $stderr.puts "Cannot open: #{$!}" if $DEBUG
+ return
+ end
start = @info_buffer.get_iter_at(:offset => 0)
state = :before_header
file.each do |line|
- case state
- when :before_header
- if line =~ /^=begin$/
- state = :in_header
- end
- when :in_header
- if line =~ /^=end$/
- state = :body
- start = @source_buffer.get_iter_at(:offset => 0)
- elsif line =~ /^=\s+(.*)$/
- title = $1
+ case state
+ when :before_header
+ if line =~ /^=begin$/
+ state = :in_header
+ end
+ when :in_header
+ if line =~ /^=end$/
+ state = :body
+ start = @source_buffer.get_iter_at(:offset => 0)
+ elsif line =~ /^=\s+(.*)$/
+ title = $1
title.gsub!(/\s*\(.*\)$/, '') # Delete depend field
- last = start
+ last = start
- @info_buffer.insert(last, title)
- start = last.clone
+ @info_buffer.insert(last, title)
+ start = last.clone
- start.backward_chars(title.length)
- @info_buffer.apply_tag('title', start, last)
+ start.backward_chars(title.length)
+ @info_buffer.apply_tag('title', start, last)
- start = last
- else
- @info_buffer.insert(start, line)
- end
- when :body # Reading program body
- @source_buffer.insert(start, line)
- end
+ start = last
+ else
+ @info_buffer.insert(start, line)
+ end
+ when :body # Reading program body
+ @source_buffer.insert(start, line)
+ end
end
fontify
@@ -327,30 +327,30 @@ module Demo
def tokenize(str, index = 0)
until str.empty?
- tag = nil
-
- case str
- when /".+?"/, /'.+?'/
- tag = :string
- when /#.*$/
- tag = :comment
- when RESERVED_WORDS_PATTERN
- tag = :reserved
- when /[A-Z][A-Za-z0-9_]+/
- tag = :const
- end
-
- if tag
- tokenize($~.pre_match, index) do |*args|
+ tag = nil
+
+ case str
+ when /".+?"/, /'.+?'/
+ tag = :string
+ when /#.*$/
+ tag = :comment
+ when RESERVED_WORDS_PATTERN
+ tag = :reserved
+ when /[A-Z][A-Za-z0-9_]+/
+ tag = :const
+ end
+
+ if tag
+ tokenize($~.pre_match, index) do |*args|
yield(*args)
- end
- yield(tag, index + $~.begin(0), index + $~.end(0))
- index += (str.length - $~.post_match.length)
- str = $~.post_match
- else
- index += str.length
- str = ''
- end
+ end
+ yield(tag, index + $~.begin(0), index + $~.end(0))
+ index += (str.length - $~.post_match.length)
+ str = $~.post_match
+ else
+ index += str.length
+ str = ''
+ end
end
end
end
@@ -367,9 +367,9 @@ if target
window.show_all
class << window
- def quit
- Gtk.main_quit
- end
+ def quit
+ Gtk.main_quit
+ end
end
break
diff --git a/gtk3/sample/gtk-demo/reset.css b/gtk3/sample/gtk-demo/reset.css
new file mode 100644
index 0000000..117563a
--- /dev/null
+++ b/gtk3/sample/gtk-demo/reset.css
@@ -0,0 +1,69 @@
+/* @import this colorsheet to get the default values for every property.
+ * This is useful when writing special CSS tests that should not be
+ * inluenced by themes - not even the default ones.
+ * Keep in mind that the output will be very ugly and not look like
+ * anything GTK.
+ * Also, when adding new style properties, please add them here.
+ */
+
+* {
+ color: inherit;
+ font-size: inherit;
+ background-color: initial;
+ font-family: inherit;
+ font-style: inherit;
+ font-variant: inherit;
+ font-weight: inherit;
+ text-shadow: inherit;
+ icon-shadow: inherit;
+ box-shadow: initial;
+ margin-top: initial;
+ margin-left: initial;
+ margin-bottom: initial;
+ margin-right: initial;
+ padding-top: initial;
+ padding-left: initial;
+ padding-bottom: initial;
+ padding-right: initial;
+ border-top-style: initial;
+ border-top-width: initial;
+ border-left-style: initial;
+ border-left-width: initial;
+ border-bottom-style: initial;
+ border-bottom-width: initial;
+ border-right-style: initial;
+ border-right-width: initial;
+ border-top-left-radius: initial;
+ border-top-right-radius: initial;
+ border-bottom-right-radius: initial;
+ border-bottom-left-radius: initial;
+ outline-style: initial;
+ outline-width: initial;
+ outline-offset: initial;
+ background-clip: initial;
+ background-origin: initial;
+ background-size: initial;
+ background-position: initial;
+ border-top-color: initial;
+ border-right-color: initial;
+ border-bottom-color: initial;
+ border-left-color: initial;
+ outline-color: initial;
+ background-repeat: initial;
+ background-image: initial;
+ border-image-source: initial;
+ border-image-repeat: initial;
+ border-image-slice: initial;
+ border-image-width: initial;
+ transition-property: initial;
+ transition-duration: initial;
+ transition-timing-function: initial;
+ transition-delay: initial;
+ engine: initial;
+ gtk-key-bindings: initial;
+
+ -GtkWidget-focus-line-width: 0;
+ -GtkWidget-focus-padding: 0;
+ -GtkNotebook-initial-gap: 0;
+}
+
diff --git a/gtk3/test/test_gc.rb b/gtk3/test/test_gc.rb
index 95d807e..9565493 100644
--- a/gtk3/test/test_gc.rb
+++ b/gtk3/test/test_gc.rb
@@ -10,7 +10,7 @@ class TestGC < Test::Unit::TestCase
def test_inheritance_and_gc
button = Class.new(Gtk::Button)
- box = Gtk::HBox.new
+ box = Gtk::Box.new(:horizontal)
n = 10
n.times do
box.add(button.new)
diff --git a/gstreamer/lib/gst/controller_loader.rb b/gtk3/test/test_gtk.rb
similarity index 86%
rename from gstreamer/lib/gst/controller_loader.rb
rename to gtk3/test/test_gtk.rb
index 37bd503..ab27d2a 100644
--- a/gstreamer/lib/gst/controller_loader.rb
+++ b/gtk3/test/test_gtk.rb
@@ -14,7 +14,10 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class ControllerLoader < GObjectIntrospection::Loader
+class TestGtk < Test::Unit::TestCase
+ include GtkTestUtils
+
+ def test_show_uri
+ assert_true(Gtk.respond_to?(:show_uri))
end
end
diff --git a/gtk3/test/test_gtk_about_dialog.rb b/gtk3/test/test_gtk_about_dialog.rb
index a8c3c74..b48c16e 100644
--- a/gtk3/test/test_gtk_about_dialog.rb
+++ b/gtk3/test/test_gtk_about_dialog.rb
@@ -6,7 +6,6 @@ class TestGtkAboutDialog < Test::Unit::TestCase
end
def test_program_name
- only_gtk_version(2, 12, 0)
assert_equal(File.basename($0), @dialog.program_name)
@dialog.program_name = "my-program"
assert_equal("my-program", @dialog.program_name)
diff --git a/gtk3/test/test_gtk_buildable.rb b/gtk3/test/test_gtk_buildable.rb
index cd3a25c..bfb3069 100644
--- a/gtk3/test/test_gtk_buildable.rb
+++ b/gtk3/test/test_gtk_buildable.rb
@@ -2,12 +2,10 @@ class TestGtkBuildable < Test::Unit::TestCase
include GtkTestUtils
def setup
- @buildable = Gtk::HBox.new
+ @buildable = Gtk::Box.new(:horizontal)
end
def test_name
- only_gtk_version(2, 12, 0)
-
assert_equal("", @buildable.name)
@buildable.name = "YYY"
assert_equal("YYY", @buildable.name)
@@ -17,8 +15,6 @@ class TestGtkBuildable < Test::Unit::TestCase
end
def test_add_child
- only_gtk_version(2, 12, 0)
-
assert_equal([], @buildable.children)
builder = Gtk::Builder.new
@@ -28,19 +24,15 @@ class TestGtkBuildable < Test::Unit::TestCase
end
def test_set_buildable_property
- only_gtk_version(2, 12, 0)
-
assert_nil(@buildable.parent)
builder = Gtk::Builder.new
- parent = Gtk::HBox.new
+ parent = Gtk::Box.new(:horizontal)
@buildable.set_buildable_property(builder, "parent", parent)
assert_equal(parent, @buildable.parent)
end
def test_construct_child
- only_gtk_version(2, 12, 0)
-
assert_nil(@buildable.parent)
@buildable = Gtk::UIManager.new
@@ -55,12 +47,10 @@ EOU
end
def test_get_internal_child
- only_gtk_version(2, 12, 0)
-
assert_nil(@buildable.parent)
@buildable = Gtk::Dialog.new
builder = Gtk::Builder.new
- assert_kind_of(Gtk::VBox, @buildable.get_internal_child(builder, "vbox"))
+ assert_kind_of(Gtk::Box, @buildable.get_internal_child(builder, "vbox"))
end
end
diff --git a/gtk3/test/test_gtk_builder.rb b/gtk3/test/test_gtk_builder.rb
index a36d8fa..00f038d 100644
--- a/gtk3/test/test_gtk_builder.rb
+++ b/gtk3/test/test_gtk_builder.rb
@@ -2,20 +2,16 @@ class TestGtkBuilder < Test::Unit::TestCase
include GtkTestUtils
def test_constants
- only_gtk_version(2, 12, 0)
assert_kind_of(Gtk::BuilderError, Gtk::BuilderError::INVALID_TAG)
end
def test_new
- only_gtk_version(2, 12, 0)
assert_nothing_raised do
Gtk::Builder.new
end
end
def test_add_from_file
- only_gtk_version(2, 12, 0)
-
builder = Gtk::Builder.new
assert_nothing_raised do
builder.add_from_file(ui_definition_file.path)
@@ -24,28 +20,22 @@ class TestGtkBuilder < Test::Unit::TestCase
end
def test_add_from_string
- only_gtk_version(2, 12, 0)
-
builder = Gtk::Builder.new
assert_nothing_raised do
builder.add_from_string(ui_definition)
end
- assert_kind_of(Gtk::VBox, builder["vbox1"])
+ assert_kind_of(Gtk::Box, builder["vbox1"])
end
def test_add_with_file
- only_gtk_version(2, 12, 0)
-
builder = Gtk::Builder.new
assert_nothing_raised do
builder.add(ui_definition_file.path)
end
- assert_kind_of(Gtk::HButtonBox, builder["hbuttonbox1"])
+ assert_kind_of(Gtk::ButtonBox, builder["hbuttonbox1"])
end
def test_add_with_string
- only_gtk_version(2, 12, 0)
-
builder = Gtk::Builder.new
assert_nothing_raised do
builder.add(ui_definition)
@@ -54,8 +44,6 @@ class TestGtkBuilder < Test::Unit::TestCase
end
def test_add_chain
- only_gtk_version(2, 12, 0)
-
builder = Gtk::Builder.new
assert_nothing_raised do
builder << ui_definition_file.path << ui_definition_simple
@@ -65,8 +53,6 @@ class TestGtkBuilder < Test::Unit::TestCase
end
def test_objects
- only_gtk_version(2, 12, 0)
-
builder = Gtk::Builder.new
assert_nothing_raised do
builder << ui_definition_file.path << ui_definition_simple
@@ -77,8 +63,6 @@ class TestGtkBuilder < Test::Unit::TestCase
end
def test_translation_domain
- only_gtk_version(2, 12, 0)
-
builder = Gtk::Builder.new
assert_nil(builder.translation_domain)
builder.translation_domain = "ruby-gnome2"
@@ -86,8 +70,6 @@ class TestGtkBuilder < Test::Unit::TestCase
end
def test_connect_signals
- only_gtk_version(2, 12, 0)
-
handler_names = []
builder = Gtk::Builder.new
@@ -107,8 +89,6 @@ class TestGtkBuilder < Test::Unit::TestCase
end
def test_connect_signals_with_no_signal_ui_definition
- only_gtk_version(2, 12, 0)
-
handler_names = []
builder = Gtk::Builder.new
@@ -127,11 +107,9 @@ class TestGtkBuilder < Test::Unit::TestCase
end
def test_get_type_from_name
- only_gtk_version(2, 12, 0)
-
builder = Gtk::Builder.new
assert_nil(builder.get_type("XXX"))
- assert_equal(Gtk::VBox, builder.get_type("GtkVBox"))
+ assert_equal(Gtk::Box, builder.get_type("GtkBox"))
end
private
diff --git a/gdk3/test/test-gdk-rgba.rb b/gtk3/test/test_gtk_container.rb
similarity index 70%
copy from gdk3/test/test-gdk-rgba.rb
copy to gtk3/test/test_gtk_container.rb
index 4922b3b..3a3e99e 100644
--- a/gdk3/test/test-gdk-rgba.rb
+++ b/gtk3/test/test_gtk_container.rb
@@ -1,5 +1,3 @@
-# -*- coding: utf-8 -*-
-#
# Copyright (C) 2013 Ruby-GNOME2 Project Team
#
# This library is free software; you can redistribute it and/or
@@ -16,9 +14,19 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-class TestGdkRGBA < Test::Unit::TestCase
- def test_to_s
- rgba = Gdk::RGBA.new(0.1, 0.2, 0.3, 0.5)
- assert_equal("rgba(26,51,77,0.5)", rgba.to_s)
+class TestGtkContainer < Test::Unit::TestCase
+ class TestFocusChain < self
+ def setup
+ @container = Gtk::Layout.new
+ end
+
+ def test_set_explicitly
+ @container.focus_chain = []
+ assert_equal([], @container.focus_chain)
+ end
+
+ def test_not_set_explicitly
+ assert_nil(@container.focus_chain)
+ end
end
end
diff --git a/gstreamer/lib/gst/base_loader.rb b/gtk3/test/test_gtk_css_provider.rb
similarity index 77%
rename from gstreamer/lib/gst/base_loader.rb
rename to gtk3/test/test_gtk_css_provider.rb
index fb56999..8eb44b2 100644
--- a/gstreamer/lib/gst/base_loader.rb
+++ b/gtk3/test/test_gtk_css_provider.rb
@@ -14,7 +14,14 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class BaseLoader < GObjectIntrospection::Loader
+class TestGtkCssProvider < Test::Unit::TestCase
+ include GtkTestUtils
+
+ def setup
+ @provider = Gtk::CssProvider.new
+ end
+
+ def test_load_from_data
+ assert_true(@provider.load(:data => "GtkWindow {background-color: red;}"))
end
end
diff --git a/gtk3/test/test_gtk_entry.rb b/gtk3/test/test_gtk_entry.rb
index 1d14893..3fcf3e9 100644
--- a/gtk3/test/test_gtk_entry.rb
+++ b/gtk3/test/test_gtk_entry.rb
@@ -6,8 +6,6 @@ class TestGtkEntry < Test::Unit::TestCase
end
def test_cursor_hadjustment
- only_gtk_version(2, 12)
-
assert_nil(@entry.cursor_hadjustment)
adjustment = Gtk::Adjustment.new(0.0, 0.0,
100.0, 100.0,
diff --git a/gtk3/test/test_gtk_icon_theme.rb b/gtk3/test/test_gtk_icon_theme.rb
index b7b1906..223930f 100644
--- a/gtk3/test/test_gtk_icon_theme.rb
+++ b/gtk3/test/test_gtk_icon_theme.rb
@@ -6,25 +6,26 @@ class TestGtkIconTheme < Test::Unit::TestCase
end
def test_choose_icon
- only_gtk_version(2, 12)
-
assert_nil(@theme.choose_icon("non-existent", 100))
- icon = @theme.choose_icon("undo", 10)
+ icon = @theme.choose_icon("face-cool", 10)
assert_not_nil(icon)
- assert_match(/undo/, icon.filename)
+ assert_match(/face-cool/, icon.filename)
- assert_not_nil(@theme.choose_icon("undo", 29, [:use_builtin, :no_svg]))
+ assert_not_nil(@theme.choose_icon("face-cool", 29, [:use_builtin, :no_svg]))
end
def test_contexts
- only_gtk_version(2, 12)
-
assert_operator(@theme.contexts, :include?, "MimeTypes")
end
- def test_icons
- assert_operator(@theme.icons, :include?, "undo")
- assert_operator(@theme.icons("Actions"), :include?, "remove")
+ class TestIcons < self
+ def test_no_argument
+ assert_operator(@theme.icons, :include?, "face-cool")
+ end
+
+ def test_context
+ assert_operator(@theme.icons("Actions"), :include?, "find")
+ end
end
end
diff --git a/gtk3/test/test_gtk_image.rb b/gtk3/test/test_gtk_image.rb
index 193d617..b42ce26 100644
--- a/gtk3/test/test_gtk_image.rb
+++ b/gtk3/test/test_gtk_image.rb
@@ -2,7 +2,7 @@ class TestGtkImage < Test::Unit::TestCase
include GtkTestUtils
def test_stock
- image = Gtk::Image.new(Gtk::Stock::GO_FORWARD, Gtk::IconSize::DIALOG)
- assert_equal(Gtk::Stock::GO_FORWARD, image.stock)
+ image = Gtk::Image.new(Gtk::Stock::GO_FORWARD, :dialog)
+ assert_equal(Gtk::Stock::GO_FORWARD.to_s, image.stock)
end
end
diff --git a/gtk3/test/test_gtk_list_store.rb b/gtk3/test/test_gtk_list_store.rb
index 1afa494..8a2f053 100644
--- a/gtk3/test/test_gtk_list_store.rb
+++ b/gtk3/test/test_gtk_list_store.rb
@@ -34,8 +34,6 @@ class TestGtkListStore < Test::Unit::TestCase
end
def test_set_values
- only_gtk_version(2, 12)
-
iter = @store.append
assert_nothing_raised do
@store.set_values(iter, [0, '1'])
@@ -55,8 +53,6 @@ class TestGtkListStore < Test::Unit::TestCase
end
def test_set_values_with_hash
- only_gtk_version(2, 12)
-
iter = @store.append
assert_nothing_raised do
@store.set_values(iter, {ID => 0, NAME => 'me'})
diff --git a/gtk3/test/test_gtk_rc_style.rb b/gtk3/test/test_gtk_rc_style.rb
deleted file mode 100644
index 8dcc173..0000000
--- a/gtk3/test/test_gtk_rc_style.rb
+++ /dev/null
@@ -1,14 +0,0 @@
-class TestGtkRcStyle < Test::Unit::TestCase
- include GtkTestUtils
-
- def setup
- @style = Gtk::RcStyle.new
- end
-
- def test_color_flags
- assert_equal(Gtk::RC::Flags.new, @style.color_flags(:normal))
- @style.set_color_flags(:normal, [:fg, :bg])
- assert_equal(Gtk::RC::Flags::FG | Gtk::RC::Flags::BG,
- @style.color_flags(:normal))
- end
-end
diff --git a/gdk3/test/test-gdk-rgba.rb b/gtk3/test/test_gtk_style_context.rb
similarity index 73%
copy from gdk3/test/test-gdk-rgba.rb
copy to gtk3/test/test_gtk_style_context.rb
index 4922b3b..dc5b00c 100644
--- a/gdk3/test/test-gdk-rgba.rb
+++ b/gtk3/test/test_gtk_style_context.rb
@@ -1,5 +1,3 @@
-# -*- coding: utf-8 -*-
-#
# Copyright (C) 2013 Ruby-GNOME2 Project Team
#
# This library is free software; you can redistribute it and/or
@@ -16,9 +14,17 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-class TestGdkRGBA < Test::Unit::TestCase
- def test_to_s
- rgba = Gdk::RGBA.new(0.1, 0.2, 0.3, 0.5)
- assert_equal("rgba(26,51,77,0.5)", rgba.to_s)
+class TestGtkStyleContext < Test::Unit::TestCase
+ include GtkTestUtils
+
+ def setup
+ @style_context = Gtk::StyleContext.new
+ end
+
+ def test_add_provider
+ provider = Gtk::CssProvider.new
+ assert_nothing_raised do
+ @style_context.add_provider(provider, GLib::MAXUINT)
+ end
end
end
diff --git a/gstreamer/lib/gst/element.rb b/gtk3/test/test_gtk_style_properties.rb
similarity index 60%
copy from gstreamer/lib/gst/element.rb
copy to gtk3/test/test_gtk_style_properties.rb
index 0ceace7..af76972 100644
--- a/gstreamer/lib/gst/element.rb
+++ b/gtk3/test/test_gtk_style_properties.rb
@@ -14,35 +14,25 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-module Gst
- class Element
- def stop
- set_state(State::NULL)
- end
-
- def ready
- set_state(State::READY)
- end
-
- def pause
- set_state(State::PAUSED)
- end
+class TestGtkStyleProperties < Test::Unit::TestCase
+ def setup
+ @properties = Gtk::StyleProperties.new
+ end
- def play
- set_state(State::PLAYING)
- end
+ class TestGet < self
+ def test_eixstent
+ key = "border-radius"
+ state = :normal
+ value = 29
- alias_method :link_element, :link
- def link_elements(*elements)
- elements.each do |element|
- link_element(element)
- end
+ g_value = GLib::Value.new(GLib::Type::INT, value)
+ # TODO: support direct Ruby object use
+ @properties.set_property(key, state, g_value)
+ assert_equal(value, @properties.get_property(key, state))
end
- alias_method :link, :link_elements
- def >>(element)
- link_element(element)
- element
+ def test_noneixstent
+ assert_nil(@properties.get_property("nonexistent", :normal))
end
end
end
diff --git a/gtk3/test/test_gtk_widget.rb b/gtk3/test/test_gtk_widget.rb
index 34af7e5..43ebcf9 100644
--- a/gtk3/test/test_gtk_widget.rb
+++ b/gtk3/test/test_gtk_widget.rb
@@ -6,7 +6,7 @@ class TestGtkWidget < Test::Unit::TestCase
end
def test_set_window
- attrs = Gdk::WindowAttr.new(100, 100, :only, :temp)
+ attrs = Gdk::WindowAttr.new(100, 100, :input_only, :temp)
window = Gdk::Window.new(nil, attrs, 0)
@widget.window = window
assert_equal(window, @widget.window)
@@ -14,19 +14,11 @@ class TestGtkWidget < Test::Unit::TestCase
def test_modify_color_component_with_nil_color
assert_nothing_raised do
- @widget.modify_base(:normal, nil)
+ @widget.override_color(:normal, nil)
end
assert_nothing_raised do
- @widget.modify_text(:normal, nil)
- end
-
- assert_nothing_raised do
- @widget.modify_fg(:normal, nil)
- end
-
- assert_nothing_raised do
- @widget.modify_bg(:normal, nil)
+ @widget.override_background_color(:normal, nil)
end
end
end
diff --git a/gtksourceview2/COPYING.LIB b/gtksourceview2/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/gtksourceview2/COPYING.LIB
+++ b/gtksourceview2/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/gtksourceview2/README b/gtksourceview2/README
index 4a915bd..b481285 100644
--- a/gtksourceview2/README
+++ b/gtksourceview2/README
@@ -10,7 +10,7 @@ Requirements
Install
-------
- 0. install ruby 1.8.0 or newer, GtkSourceView 2.0.0 or newer, Ruby/GTK2.
+ 0. install ruby 1.9.x or newer, GtkSourceView 2.0.0 or newer, Ruby/GTK2.
1. ruby extconf.rb
2. make
3. su
diff --git a/gtksourceview2/ext/gtksourceview2/extconf.rb b/gtksourceview2/ext/gtksourceview2/extconf.rb
index 677436a..4b03718 100644
--- a/gtksourceview2/ext/gtksourceview2/extconf.rb
+++ b/gtksourceview2/ext/gtksourceview2/extconf.rb
@@ -51,7 +51,10 @@ rcairo_source_dir_names.each do |rcairo_source_dir_name|
break
end
end
-check_cairo(rcairo_options)
+
+unless check_cairo(rcairo_options)
+ exit(false)
+end
setup_win32(module_name, base_dir)
diff --git a/gtksourceview2/ext/gtksourceview2/rbgtksourcemain.c b/gtksourceview2/ext/gtksourceview2/rbgtksourcemain.c
index eefbd79..a8c9b28 100644
--- a/gtksourceview2/ext/gtksourceview2/rbgtksourcemain.c
+++ b/gtksourceview2/ext/gtksourceview2/rbgtksourcemain.c
@@ -22,17 +22,6 @@
#include "rbgtksourcemain.h"
-G_GNUC_INTERNAL void Init_gtk_sourceview (VALUE mGtk);
-G_GNUC_INTERNAL void Init_gtk_sourcebuffer (VALUE mGtk);
-G_GNUC_INTERNAL void Init_gtk_sourceiter (VALUE mGtk);
-G_GNUC_INTERNAL void Init_gtk_sourcelanguage (VALUE mGtk);
-G_GNUC_INTERNAL void Init_gtk_sourcelanguagemanager (VALUE mGtk);
-G_GNUC_INTERNAL void Init_gtk_sourcemark (VALUE mGtk);
-G_GNUC_INTERNAL void Init_gtk_sourceprintcompositor (VALUE mGtk);
-G_GNUC_INTERNAL void Init_gtk_sourcestyle (VALUE mGtk);
-G_GNUC_INTERNAL void Init_gtk_sourcestylescheme (VALUE mGtk);
-G_GNUC_INTERNAL void Init_gtk_sourcestyleschememanager (VALUE mGtk);
-
void
Init_gtksourceview2 (void)
{
diff --git a/gtksourceview2/ext/gtksourceview2/rbgtksourcemain.h b/gtksourceview2/ext/gtksourceview2/rbgtksourcemain.h
index d6a5ddf..02feccd 100644
--- a/gtksourceview2/ext/gtksourceview2/rbgtksourcemain.h
+++ b/gtksourceview2/ext/gtksourceview2/rbgtksourcemain.h
@@ -46,4 +46,17 @@
#define RG_DEF_SMETHOD(method, argc) \
rb_define_singleton_method(RG_TARGET_NAMESPACE, #method, rg_s_ ## method, argc)
+extern void Init_gtksourceview2 (void);
+
+G_GNUC_INTERNAL void Init_gtk_sourceview (VALUE mGtk);
+G_GNUC_INTERNAL void Init_gtk_sourcebuffer (VALUE mGtk);
+G_GNUC_INTERNAL void Init_gtk_sourceiter (VALUE mGtk);
+G_GNUC_INTERNAL void Init_gtk_sourcelanguage (VALUE mGtk);
+G_GNUC_INTERNAL void Init_gtk_sourcelanguagemanager (VALUE mGtk);
+G_GNUC_INTERNAL void Init_gtk_sourcemark (VALUE mGtk);
+G_GNUC_INTERNAL void Init_gtk_sourceprintcompositor (VALUE mGtk);
+G_GNUC_INTERNAL void Init_gtk_sourcestyle (VALUE mGtk);
+G_GNUC_INTERNAL void Init_gtk_sourcestylescheme (VALUE mGtk);
+G_GNUC_INTERNAL void Init_gtk_sourcestyleschememanager (VALUE mGtk);
+
#endif /* __RBGTKSOURCEVIEWMAIN_H_ */
diff --git a/gtksourceview3/COPYING.LIB b/gtksourceview3/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/gtksourceview3/COPYING.LIB
+++ b/gtksourceview3/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/gtksourceview3/README b/gtksourceview3/README
deleted file mode 100644
index 4a915bd..0000000
--- a/gtksourceview3/README
+++ /dev/null
@@ -1,29 +0,0 @@
-Ruby/GtkSourceView2
-===================
-Ruby/GtkSourceView2 is a Ruby binding of gtksourceview-2.x.
-
-Requirements
-------------
- Ruby: http://www.ruby-lang.org/
- Ruby-GNOME2: http://ruby-gnome2.sourceforge.jp/
- GtkSourceView: ftp://ftp.gnome.org/pub/GNOME/sources/gtksourceview
-
-Install
--------
- 0. install ruby 1.8.0 or newer, GtkSourceView 2.0.0 or newer, Ruby/GTK2.
- 1. ruby extconf.rb
- 2. make
- 3. su
- 4. make install
-
-Copying
--------
- Copyright (c) 2008 Ruby-GNOME2 Project Team
-
- This program is free software.
- You can distribute/modify this program under the terms of
- the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
-
-Project Website
----------------
- http://ruby-gnome2.sourceforge.jp/
diff --git a/gtk3/README.md b/gtksourceview3/README.md
similarity index 50%
copy from gtk3/README.md
copy to gtksourceview3/README.md
index 7320d27..eb47ef1 100644
--- a/gtk3/README.md
+++ b/gtksourceview3/README.md
@@ -1,21 +1,20 @@
-# Ruby/GTK3
+# Ruby/GtkSourceView3
-Ruby/GTK3 is a Ruby binding of GTK 3.
+Ruby/GtkSourceView3 is a Ruby binding of gtksourceview-3.x.
## Requirements
-* Ruby/GLib2, Ruby/ATK, Ruby/Pango, Ruby/GdkPixbuf2 and Ruby/GTK3 in
+* Ruby/GTK3 in
[Ruby-GNOME2](http://ruby-gnome2.sourceforge.jp/)
-* [rcairo](https://github.com/rcairo/rcairo)
-* [GTK+](http://cairographics.org/) 3.4.2 or later
+* [GtkSourceView](http://projects.gnome.org/gtksourceview/) 3.4.2 or later
## Install
- gem install gtk3
+ gem install gtksourceview3
## License
-Copyright (c) 2002-2013 Ruby-GNOME2 Project Team
+Copyright (c) 2008-2013 Ruby-GNOME2 Project Team
This program is free software. You can distribute/modify this program
under the terms of the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
diff --git a/gtksourceview3/Rakefile b/gtksourceview3/Rakefile
index 1f8d7d3..6e492f5 100644
--- a/gtksourceview3/Rakefile
+++ b/gtksourceview3/Rakefile
@@ -24,21 +24,34 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
package.description = "Ruby/GtkSourceView3 is a Ruby binding of gtksourceview-3.x."
package.dependency.gem.runtime = ["gtk3"]
package.windows.packages = []
- package.windows.dependencies = ["libxml2"]
+ package.windows.dependencies = []
package.windows.build_dependencies = [
"glib2",
"atk",
"pango",
"gdk_pixbuf2",
"gdk3",
+ "gobject-introspection",
+ ]
+ package.windows.gobject_introspection_dependencies = [
+ "atk",
+ "pango",
+ "gdk_pixbuf2",
+ "gdk3",
]
package.external_packages = [
{
:name => "gtksourceview",
:download_site => :gnome,
:label => "GtkSourceView",
- :version => "3.8.1",
+ :version => "3.10.1",
:compression_method => "xz",
+ :windows => {
+ :configure_args => [
+ "--enable-introspection",
+ ],
+ :built_file => "bin/libgtksourceview-3.0-1.dll",
+ },
}
]
end
diff --git a/gtksourceview3/ext/gtksourceview3/extconf.rb b/gtksourceview3/ext/gtksourceview3/extconf.rb
index 54f411a..0a1bd0d 100644
--- a/gtksourceview3/ext/gtksourceview3/extconf.rb
+++ b/gtksourceview3/ext/gtksourceview3/extconf.rb
@@ -51,13 +51,18 @@ rcairo_source_dir_names.each do |rcairo_source_dir_name|
break
end
end
-check_cairo(rcairo_options)
+
+unless check_cairo(rcairo_options)
+ exit(false)
+end
setup_win32(module_name, base_dir)
unless required_pkg_config_package(package_id,
:debian => "libgtksourceview-3.0-dev",
- :fedora => "gtksourceview3-devel")
+ :fedora => "gtksourceview3-devel",
+ :homebrew => "gtksourceview3",
+ :macports => "gtksourceview3")
exit(false)
end
diff --git a/pango/COPYING.LIB b/pango/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/pango/COPYING.LIB
+++ b/pango/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/pango/README b/pango/README
index 814fd40..a5b1ff3 100644
--- a/pango/README
+++ b/pango/README
@@ -1,6 +1,6 @@
Ruby/Pango
==========
-Ruby/Pango is a Ruby binding of pango-1.x.
+Ruby/Pango is a Ruby binding of pango-1.14.x.
Requirements
------------
@@ -12,7 +12,7 @@ Requirements
Install
-------
- 0. install ruby-1.6.x or later, GLib, Pango, Ruby/GLib2, Ruby/GTK2
+ 0. install ruby-1.9.x or later, GLib, Pango-1.14.x or later, Ruby/GLib2, Ruby/GTK2
(and cairo/rcairo).
1. ruby extconf.rb
(To use rcairo on Win32, set CAIRO_PATH as a environment variable first)
diff --git a/pango/Rakefile b/pango/Rakefile
index dfbee19..e88080c 100644
--- a/pango/Rakefile
+++ b/pango/Rakefile
@@ -15,20 +15,21 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
:name => "harfbuzz",
:download_base_url => "http://www.freedesktop.org/software/harfbuzz/release",
:label => "HarfBuzz",
- :version => "0.9.17",
+ :version => "0.9.25",
:compression_method => "bz2",
:windows => {
+ :configure_args => [
+ ],
:patches => [
- "harfbuzz-0.9.17-disable-uniscribe.diff",
],
- :need_autoreconf => true,
+ :built_file => "bin/libharfbuzz-0.dll",
},
},
{
:name => "pango",
:download_site => :gnome,
:label => "pango",
- :version => "1.34.1",
+ :version => "1.36.1",
:compression_method => "xz",
:windows => {
:configure_args => [
@@ -37,6 +38,7 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
:patches => [
"pango-1.34.0-enable-fc-font.diff",
],
+ :built_file => "bin/libpango-1.0-0.dll",
},
},
]
@@ -47,7 +49,7 @@ namespace :gcc do
namespace :dll do
desc "Bundle GCC related DLLs"
task(:bundle) do
- dlls = ["libgcc_s_sjlj-1.dll", "libstdc++-6.dll"]
+ dlls = ["libstdc++-6.dll"]
dlls.each do |dll|
host = package_task.windows.build_host
binary_dir = package_task.windows.absolute_binary_dir
diff --git a/pango/ext/pango/extconf.rb b/pango/ext/pango/extconf.rb
index 8d1b60d..391c7df 100644
--- a/pango/ext/pango/extconf.rb
+++ b/pango/ext/pango/extconf.rb
@@ -54,11 +54,13 @@ rcairo_source_dir_names.each do |rcairo_source_dir_name|
break
end
end
-check_cairo(rcairo_options)
+unless check_cairo(rcairo_options)
+ exit(false)
+end
setup_win32(module_name, base_dir)
-unless required_pkg_config_package(package_id,
+unless required_pkg_config_package([package_id, 1, 14, 0],
:debian => "libpango1.0-dev",
:redhat => "pango-devel",
:homebrew => "pango",
@@ -76,8 +78,6 @@ end
pango_header = "pango/pango.h"
have_func("pango_layout_iter_get_type", pango_header)
-have_func("pango_layout_set_ellipsize", pango_header)
-have_func("pango_layout_get_font_description", pango_header)
have_func("pango_render_part_get_type", pango_header)
have_func("pango_attr_strikethrough_color_new", pango_header)
have_func("pango_attr_underline_color_new", pango_header)
diff --git a/pango/ext/pango/rbpango.c b/pango/ext/pango/rbpango.c
index 6189053..d6ff07a 100644
--- a/pango/ext/pango/rbpango.c
+++ b/pango/ext/pango/rbpango.c
@@ -75,7 +75,6 @@ rg_s_reorder_items(G_GNUC_UNUSED VALUE self, VALUE attrs)
rpango_reorder_items_ensure, (VALUE)&args);
}
-#if PANGO_CHECK_VERSION(1,4,0)
static VALUE
rg_s_unichar_direction(G_GNUC_UNUSED VALUE self, VALUE ch)
{
@@ -88,7 +87,6 @@ rg_s_find_base_dir(G_GNUC_UNUSED VALUE self, VALUE text)
StringValue(text);
return PANGODIRECTION2RVAL(pango_find_base_dir(RSTRING_PTR(text), RSTRING_LEN(text)));
}
-#endif
struct rbg_pangologattrs2rval_free_args {
PangoLogAttr *attrs;
@@ -255,11 +253,7 @@ rg_s_pixels(G_GNUC_UNUSED VALUE self, VALUE pixels)
static VALUE
rg_s_cairo_available_p(G_GNUC_UNUSED VALUE self)
{
-#ifdef CAIRO_AVAILABLE
return Qtrue;
-#else
- return Qfalse;
-#endif
}
void
@@ -274,11 +268,8 @@ Init_pango(void)
INT2FIX(PANGO_MICRO_VERSION)));
RG_DEF_SMETHOD(reorder_items, 1);
-
-#if PANGO_CHECK_VERSION(1,4,0)
RG_DEF_SMETHOD(unichar_direction, 1);
RG_DEF_SMETHOD(find_base_dir, 1);
-#endif
RG_DEF_SMETHOD(break, 2);
RG_DEF_SMETHOD(get_log_attrs, 3);
RG_DEF_SMETHOD(find_paragraph_boundary, 1);
diff --git a/pango/ext/pango/rbpango.h b/pango/ext/pango/rbpango.h
index 117811d..94df311 100644
--- a/pango/ext/pango/rbpango.h
+++ b/pango/ext/pango/rbpango.h
@@ -31,12 +31,10 @@
#include "rbgobject.h"
#include "rbpangoversion.h"
#include "rbpangoconversions.h"
-
-#if PANGO_CHECK_VERSION(1,10,0)
#include <pango/pangocairo.h>
-# ifdef HAVE_RB_CAIRO_H
+
+#ifdef HAVE_RB_CAIRO_H
#include <rb_cairo.h>
-# endif
#endif
#if defined(G_PLATFORM_WIN32) && !defined(RUBY_PANGO_STATIC_COMPILATION)
@@ -70,10 +68,7 @@ RUBY_PANGO_VAR VALUE mPango;
#ifndef PANGO_TYPE_GLYPH_ITEM
# define PANGO_TYPE_GLYPH_ITEM (pango_glyph_item_get_type())
#endif
-
-#if PANGO_CHECK_VERSION(1,4,0)
#define PANGO_TYPE_SCRIPT_ITER (pango_script_iter_get_type())
-#endif
#define ATTR2RVAL(attr) (pango_make_attribute(attr))
#define RVAL2ATTR(attr) (pango_get_attribute(attr))
@@ -95,10 +90,7 @@ extern GType pango_glyph_info_get_type(void);
#ifndef HAVE_PANGO_GLYPH_ITEM_GET_TYPE
extern GType pango_glyph_item_get_type(void);
#endif
-
-#if PANGO_CHECK_VERSION(1,4,0)
extern GType pango_script_iter_get_type(void);
-#endif
extern VALUE pango_get_attribute_klass(VALUE attr_type);
extern void pango_add_attribute(int attr_type, VALUE klass);
diff --git a/pango/ext/pango/rbpangoanalysis.c b/pango/ext/pango/rbpangoanalysis.c
index b1f33a3..3c6aa35 100644
--- a/pango/ext/pango/rbpangoanalysis.c
+++ b/pango/ext/pango/rbpangoanalysis.c
@@ -56,7 +56,6 @@ rg_initialize(VALUE self)
return Qnil;
}
-#if PANGO_CHECK_VERSION(1,4,0)
static VALUE
rg_set_shape_engine(VALUE self, VALUE engine)
{
@@ -100,7 +99,6 @@ rg_lang_engine(VALUE self)
}
return ret;
}
-#endif
static VALUE
rg_set_font(VALUE self, VALUE font)
@@ -204,12 +202,10 @@ Init_pango_analysis(VALUE mPango)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(PANGO_TYPE_ANALYSIS, "Analysis", mPango);
RG_DEF_METHOD(initialize, 0);
-#if PANGO_CHECK_VERSION(1,4,0)
RG_DEF_METHOD(set_shape_engine, 1);
RG_DEF_METHOD(shape_engine, 0);
RG_DEF_METHOD(set_lang_engine, 1);
RG_DEF_METHOD(lang_engine, 0);
-#endif
RG_DEF_METHOD(set_font, 1);
RG_DEF_METHOD(font, 0);
RG_DEF_METHOD(set_level, 1);
diff --git a/pango/ext/pango/rbpangoattribute.c b/pango/ext/pango/rbpangoattribute.c
index f169f30..dd7f34a 100644
--- a/pango/ext/pango/rbpangoattribute.c
+++ b/pango/ext/pango/rbpangoattribute.c
@@ -274,14 +274,13 @@ attr_AttrSize_initialize(VALUE self, VALUE size)
DATA_PTR(self) = pango_attr_size_new(NUM2INT(size));
return Qnil;
}
-#if PANGO_CHECK_VERSION(1,8,1)
+
static VALUE
attr_AttrAbsoluteSize_initialize(VALUE self, VALUE size)
{
DATA_PTR(self) = pango_attr_size_new_absolute(NUM2INT(size));
return Qnil;
}
-#endif
#if PANGO_CHECK_VERSION(1,16,0)
static VALUE
@@ -357,18 +356,11 @@ attr_AttrShape_initialize(int argc, VALUE *argv, VALUE self)
RVAL2PANGORECTANGLE(ink_rect),
RVAL2PANGORECTANGLE(logical_rect));
} else {
-#if PANGO_CHECK_VERSION(1,8,0)
G_RELATIVE(self, data);
DATA_PTR(self) = pango_attr_shape_new_with_data(
RVAL2PANGORECTANGLE(ink_rect),
RVAL2PANGORECTANGLE(logical_rect),
(gpointer)data, NULL, NULL);
-#else
- rb_warning("not supported in Pango-1.6.x. the 3rd parameter was ignored.");
- DATA_PTR(self) = pango_attr_shape_new(
- RVAL2PANGORECTANGLE(ink_rect),
- RVAL2PANGORECTANGLE(logical_rect));
-#endif
}
return Qnil;
@@ -381,20 +373,15 @@ attr_AttrScale_initialize(VALUE self, VALUE scale)
return Qnil;
}
-#if PANGO_CHECK_VERSION(1,4,0)
static VALUE
attr_AttrFallback_initialize(VALUE self, VALUE enable_fallback)
{
DATA_PTR(self) = pango_attr_fallback_new(RVAL2CBOOL(enable_fallback));
return Qnil;
}
-#endif
MAKE_ATTRINT_INIT(AttrRise, rise);
-
-#if PANGO_CHECK_VERSION(1,6,0)
MAKE_ATTRINT_INIT(AttrLetterSpacing, letter_spacing);
-#endif
#define MAKE_ATTR(gtype, name, parent, num)\
tmpklass = rb_define_class_under(mPango, #name, parent);\
@@ -450,9 +437,7 @@ Init_pango_attribute(VALUE mPango)
MAKE_ATTR(PANGO_ATTR_VARIANT, AttrVariant, pattrint, 1);
MAKE_ATTR(PANGO_ATTR_STRETCH, AttrStretch, pattrint, 1);
MAKE_ATTR(PANGO_ATTR_SIZE, AttrSize, pattrint, 1);
-#if PANGO_CHECK_VERSION(1,8,1)
MAKE_ATTR(PANGO_ATTR_ABSOLUTE_SIZE, AttrAbsoluteSize, pattrint, 1);
-#endif
#if PANGO_CHECK_VERSION(1,16,0)
MAKE_ATTR(PANGO_ATTR_GRAVITY, AttrGravity, pattrint, 1);
MAKE_ATTR(PANGO_ATTR_GRAVITY_HINT, AttrGravityHint, pattrint, 1);
@@ -474,9 +459,7 @@ Init_pango_attribute(VALUE mPango)
MAKE_ATTR(PANGO_ATTR_STRIKETHROUGH_COLOR, AttrStrikethroughColor, pattrcolor, 3);
#endif
MAKE_ATTR(PANGO_ATTR_RISE, AttrRise, pattrint, 1);
-#if PANGO_CHECK_VERSION(1,6,0)
MAKE_ATTR(PANGO_ATTR_LETTER_SPACING, AttrLetterSpacing, pattrint, 1);
-#endif
MAKE_ATTR(PANGO_ATTR_SHAPE, AttrShape, RG_TARGET_NAMESPACE, -1);
rbg_define_method(tmpklass, "ink_rect", attr_shape_ink_rect, 0);
rbg_define_method(tmpklass, "logical_rect", attr_shape_logical_rect, 0);
@@ -490,9 +473,7 @@ Init_pango_attribute(VALUE mPango)
rb_define_const(tmpklass, "LARGE", rb_float_new(PANGO_SCALE_LARGE));
rb_define_const(tmpklass, "X_LARGE", rb_float_new(PANGO_SCALE_X_LARGE));
rb_define_const(tmpklass, "XX_LARGE", rb_float_new(PANGO_SCALE_XX_LARGE));
-#if PANGO_CHECK_VERSION(1,4,0)
MAKE_ATTR(PANGO_ATTR_FALLBACK, AttrFallback, pattrbool, 1);
-#endif
/* PangoAttrType */
G_DEF_CLASS(PANGO_TYPE_ATTR_TYPE, "Type", RG_TARGET_NAMESPACE);
#define INT2ATTRTYPE(x) rbgobj_make_enum((x), PANGO_TYPE_ATTR_TYPE)
@@ -509,16 +490,10 @@ Init_pango_attribute(VALUE mPango)
rb_define_const(RG_TARGET_NAMESPACE, "TYPE_BACKGROUND", INT2ATTRTYPE(PANGO_ATTR_BACKGROUND));
rb_define_const(RG_TARGET_NAMESPACE, "TYPE_UNDERLINE", INT2ATTRTYPE(PANGO_ATTR_UNDERLINE));
rb_define_const(RG_TARGET_NAMESPACE, "TYPE_STRIKETHROUGH", INT2ATTRTYPE(PANGO_ATTR_STRIKETHROUGH));
-#if PANGO_CHECK_VERSION(1,8,0)
rb_define_const(RG_TARGET_NAMESPACE, "TYPE_STRIKETHROUGH_COLOR", INT2ATTRTYPE(PANGO_ATTR_STRIKETHROUGH_COLOR));
-#endif
rb_define_const(RG_TARGET_NAMESPACE, "TYPE_RISE", INT2ATTRTYPE(PANGO_ATTR_RISE));
rb_define_const(RG_TARGET_NAMESPACE, "TYPE_SHAPE", INT2ATTRTYPE(PANGO_ATTR_SHAPE));
rb_define_const(RG_TARGET_NAMESPACE, "TYPE_SCALE", INT2ATTRTYPE(PANGO_ATTR_SCALE));
-#if PANGO_CHECK_VERSION(1,8,0)
rb_define_const(RG_TARGET_NAMESPACE, "TYPE_FALLBACK", INT2ATTRTYPE(PANGO_ATTR_FALLBACK));
-#endif
-#if PANGO_CHECK_VERSION(1,6,0)
rb_define_const(RG_TARGET_NAMESPACE, "TYPE_LETTER_SPACING", INT2ATTRTYPE(PANGO_ATTR_LETTER_SPACING));
-#endif
}
diff --git a/pango/ext/pango/rbpangoattrlist.c b/pango/ext/pango/rbpangoattrlist.c
index aeb403b..a563fb6 100644
--- a/pango/ext/pango/rbpangoattrlist.c
+++ b/pango/ext/pango/rbpangoattrlist.c
@@ -61,7 +61,6 @@ rg_splice(VALUE self, VALUE other, VALUE pos, VALUE len)
return self;
}
-#if PANGO_CHECK_VERSION(1,4,0)
static gboolean
filter_func(PangoAttribute *attr, gpointer data)
{
@@ -77,7 +76,6 @@ rg_filter(VALUE self)
(PangoAttrFilterFunc)filter_func,
(gpointer)func));
}
-#endif
static VALUE
rg_iterator(VALUE self)
@@ -97,9 +95,7 @@ Init_pango_attrlist(VALUE mPango)
RG_DEF_METHOD(insert_before, 1);
RG_DEF_METHOD(change, 1);
RG_DEF_METHOD(splice, 3);
-#if PANGO_CHECK_VERSION(1,4,0)
RG_DEF_METHOD(filter, 0);
-#endif
RG_DEF_METHOD(iterator, 0);
}
diff --git a/pango/ext/pango/rbpangocairo.c b/pango/ext/pango/rbpangocairo.c
index 1bf4e84..1fbf7bf 100644
--- a/pango/ext/pango/rbpangocairo.c
+++ b/pango/ext/pango/rbpangocairo.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
* Copyright (C) 2005 Kouhei Sutou
*
* This library is free software; you can redistribute it and/or
@@ -22,8 +21,6 @@
#include "rbpangoprivate.h"
-#ifdef CAIRO_AVAILABLE
-
#define RG_TARGET_NAMESPACE cCairoFontMap
#define _SELF(self) (RVAL2PANGOCAIROFONTMAP(self))
@@ -63,14 +60,14 @@ rg_s_default(G_GNUC_UNUSED VALUE klass)
return GOBJ2RVAL(pango_cairo_font_map_get_default());
}
-# if PANGO_CHECK_VERSION(1, 22, 0)
+#if PANGO_CHECK_VERSION(1, 22, 0)
static VALUE
rg_s_set_default(VALUE klass, VALUE font_map)
{
pango_cairo_font_map_set_default(RVAL2GOBJ(font_map));
return klass;
}
-# endif
+#endif
static VALUE
rg_set_resolution(VALUE self, VALUE dpi)
@@ -88,15 +85,20 @@ rg_resolution(VALUE self)
static VALUE
rg_create_context(VALUE self)
{
- return GOBJ2RVAL_UNREF(pango_cairo_font_map_create_context(_SELF(self)));
-}
+ PangoContext *pango_context;
+#if PANGO_CHECK_VERSION(1, 22, 0)
+ pango_context = pango_font_map_create_context(PANGO_FONT_MAP(_SELF(self)));
+#else
+ pango_context = pango_cairo_font_map_create_context(_SELF(self));
#endif
+ return GOBJ2RVAL_UNREF(pango_context);
+}
+
void
Init_pango_cairo(VALUE mPango)
{
-#ifdef CAIRO_AVAILABLE
VALUE RG_TARGET_NAMESPACE;
/* Pango::CairoFontMap */
@@ -104,12 +106,11 @@ Init_pango_cairo(VALUE mPango)
RG_DEF_SMETHOD(create, -1);
RG_DEF_SMETHOD(default, 0);
-# if PANGO_CHECK_VERSION(1, 22, 0)
+#if PANGO_CHECK_VERSION(1, 22, 0)
RG_DEF_SMETHOD(set_default, 1);
-# endif
+#endif
RG_DEF_METHOD(set_resolution, 1);
RG_DEF_METHOD(resolution, 0);
RG_DEF_METHOD(create_context, 0);
-#endif
}
diff --git a/pango/ext/pango/rbpangocairocontext.c b/pango/ext/pango/rbpangocairocontext.c
index 7f7137e..0844b39 100644
--- a/pango/ext/pango/rbpangocairocontext.c
+++ b/pango/ext/pango/rbpangocairocontext.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
* Copyright (C) 2005 Kouhei Sutou
*
* This library is free software; you can redistribute it and/or
@@ -22,12 +21,6 @@
#include "rbpangoprivate.h"
-#if PANGO_CHECK_VERSION(1,10,0) && defined(HAVE_RB_CAIRO_H)
-# define CAIRO_AVAILABLE 1
-#endif
-
-#ifdef CAIRO_AVAILABLE
-
#define RG_TARGET_NAMESPACE rb_cCairo_Context
static VALUE
@@ -75,16 +68,14 @@ rg_show_pango_layout(VALUE self, VALUE layout)
return self;
}
-#if PANGO_CHECK_VERSION(1,14,0)
static VALUE
rg_show_pango_error_underline(VALUE self, VALUE x, VALUE y, VALUE width, VALUE height)
{
- pango_cairo_show_error_underline(RVAL2CRCONTEXT(self),
- NUM2DBL(x), NUM2DBL(y),
+ pango_cairo_show_error_underline(RVAL2CRCONTEXT(self),
+ NUM2DBL(x), NUM2DBL(y),
NUM2DBL(width), NUM2DBL(height));
return self;
}
-#endif
/* Rendering to a path */
static VALUE
@@ -110,23 +101,18 @@ rg_pango_layout_path(VALUE self, VALUE layout)
return self;
}
-#if PANGO_CHECK_VERSION(1,14,0)
static VALUE
rg_pango_error_underline_path(VALUE self, VALUE x, VALUE y, VALUE width, VALUE height)
{
- pango_cairo_error_underline_path(RVAL2CRCONTEXT(self),
- NUM2DBL(x), NUM2DBL(y),
+ pango_cairo_error_underline_path(RVAL2CRCONTEXT(self),
+ NUM2DBL(x), NUM2DBL(y),
NUM2DBL(width), NUM2DBL(height));
return self;
}
-#endif
-
-#endif
void
-Init_pango_cairo_context(VALUE mPango)
+Init_pango_cairo_context(G_GNUC_UNUSED VALUE mPango)
{
-#ifdef CAIRO_AVAILABLE
/* Cairo::Context */
RG_DEF_METHOD(update_pango_context, 1);
/* Convenience */
@@ -136,16 +122,10 @@ Init_pango_cairo_context(VALUE mPango)
RG_DEF_METHOD(show_pango_glyph_string, 2);
RG_DEF_METHOD(show_pango_layout_line, 1);
RG_DEF_METHOD(show_pango_layout, 1);
-#if PANGO_CHECK_VERSION(1,14,0)
RG_DEF_METHOD(show_pango_error_underline, 4);
-#endif
/* Rendering to a path */
RG_DEF_METHOD(pango_glyph_string_path, 2);
RG_DEF_METHOD(pango_layout_line_path, 1);
RG_DEF_METHOD(pango_layout_path, 1);
-
-#if PANGO_CHECK_VERSION(1,14,0)
RG_DEF_METHOD(pango_error_underline_path, 4);
-#endif
-#endif
}
diff --git a/pango/ext/pango/rbpangocontext.c b/pango/ext/pango/rbpangocontext.c
index ecd9b8c..62da22a 100644
--- a/pango/ext/pango/rbpangocontext.c
+++ b/pango/ext/pango/rbpangocontext.c
@@ -80,13 +80,11 @@ rg_set_font_map(VALUE self, VALUE font_map)
return self;
}
-#if PANGO_CHECK_VERSION(1,6,0)
static VALUE
rg_font_map(VALUE self)
{
return GOBJ2RVAL(pango_context_get_font_map(_SELF(self)));
}
-#endif
#endif /* PANGO_ENABLE_BACKEND */
static VALUE
@@ -159,7 +157,6 @@ rg_set_gravity_hint(VALUE self, VALUE gravity_hint)
}
#endif
-#if PANGO_CHECK_VERSION(1,6,0)
static VALUE
rg_matrix(VALUE self)
{
@@ -174,7 +171,6 @@ rg_set_matrix(VALUE self, VALUE matrix)
RVAL2PANGOMATRIX(matrix));
return self;
}
-#endif
static VALUE
rg_load_font(VALUE self, VALUE desc)
@@ -222,8 +218,7 @@ rg_families(VALUE self)
return result;
}
-#if PANGO_CHECK_VERSION(1,10,0)
-# ifdef HAVE_RB_CAIRO_H
+#ifdef HAVE_RB_CAIRO_H
static VALUE
rg_set_font_options(VALUE self, VALUE options)
{
@@ -258,7 +253,6 @@ rg_resolution(VALUE self)
{
return rb_float_new(pango_cairo_context_get_resolution(_SELF(self)));
}
-# endif
#endif
static VALUE
@@ -278,9 +272,7 @@ Init_pango_context(VALUE mPango)
#ifdef PANGO_ENABLE_BACKEND
RG_DEF_METHOD(initialize, 0);
RG_DEF_METHOD(set_font_map, 1);
-#if PANGO_CHECK_VERSION(1,6,0)
RG_DEF_METHOD(font_map, 0);
-#endif
#endif /* PANGO_ENABLE_BACKEND */
RG_DEF_METHOD(font_description, 0);
RG_DEF_METHOD(set_font_description, 1);
@@ -294,22 +286,18 @@ Init_pango_context(VALUE mPango)
RG_DEF_METHOD(gravity_hint, 0);
RG_DEF_METHOD(set_gravity_hint, 1);
#endif
-#if PANGO_CHECK_VERSION(1,6,0)
RG_DEF_METHOD(matrix, 0);
RG_DEF_METHOD(set_matrix, 1);
-#endif
RG_DEF_METHOD(load_font, 1);
RG_DEF_METHOD(load_fontset, 2);
RG_DEF_METHOD(get_metrics, -1);
RG_DEF_METHOD(families, 0);
-#if PANGO_CHECK_VERSION(1,10,0)
-# ifdef HAVE_RB_CAIRO_H
+#ifdef HAVE_RB_CAIRO_H
RG_DEF_METHOD(set_font_options, 1);
RG_DEF_METHOD(font_options, 0);
RG_DEF_METHOD(set_resolution, 1);
RG_DEF_METHOD(resolution, 0);
-# endif
#endif
/* This will remove 2 or 3 releases later since 0.14.0. */
diff --git a/pango/ext/pango/rbpangofont.c b/pango/ext/pango/rbpangofont.c
index 03ce768..741471f 100644
--- a/pango/ext/pango/rbpangofont.c
+++ b/pango/ext/pango/rbpangofont.c
@@ -41,12 +41,7 @@ rg_describe(int argc, VALUE *argv, VALUE self)
if (NIL_P(absolute_size) || ! RVAL2CBOOL(absolute_size)){
desc = PANGOFONTDESCRIPTION2RVAL(pango_font_describe(_SELF(self)));
} else {
-#if PANGO_CHECK_VERSION(1,14,0)
desc = PANGOFONTDESCRIPTION2RVAL(pango_font_describe_with_absolute_size(_SELF(self)));
-#else
- rb_warning("Pango::Font#describe(absolute) has been supported since GTK+-2.10.x. Use Pango::Font#describe() instead.");
- desc = PANGOFONTDESCRIPTION2RVAL(pango_font_describe(_SELF(self)));
-#endif
}
return desc;
}
@@ -86,13 +81,11 @@ rg_metrics(int argc, VALUE *argv, VALUE self)
return PANGOFONTMETRICS2RVAL(pango_font_get_metrics(_SELF(self), lang));
}
-#if PANGO_CHECK_VERSION(1,9,0)
static VALUE
rg_font_map(VALUE self)
{
return GOBJ2RVAL(pango_font_get_font_map(_SELF(self)));
}
-#endif
void
Init_pango_font(VALUE mPango)
@@ -104,10 +97,7 @@ Init_pango_font(VALUE mPango)
RG_DEF_METHOD(get_coverage, 1);
RG_DEF_METHOD(get_glyph_extents, 1);
RG_DEF_METHOD(metrics, -1);
-
-#if PANGO_CHECK_VERSION(1,9,0)
RG_DEF_METHOD(font_map, 0);
-#endif
G_DEF_CLASS3("PangoXFont", "XFont", mPango);
G_DEF_CLASS3("PangoFT2Font", "FT2Font", mPango);
@@ -116,7 +106,5 @@ Init_pango_font(VALUE mPango)
G_DEF_CLASS3("PangoCairoFcFont", "CairoFcFont", mPango);
G_DEF_CLASS3("PangoCairoFont", "CairoFont", mPango);
G_DEF_CLASS3("PangoCairoWin32Font", "CairoWin32Font", mPango);
-#if PANGO_CHECK_VERSION(1,12,0)
G_DEF_CLASS3("PangoATSUIFont", "ATSUIFont", mPango);
-#endif
}
diff --git a/pango/ext/pango/rbpangofontdescription.c b/pango/ext/pango/rbpangofontdescription.c
index 31f0066..0304d66 100644
--- a/pango/ext/pango/rbpangofontdescription.c
+++ b/pango/ext/pango/rbpangofontdescription.c
@@ -150,7 +150,6 @@ rg_size(VALUE self)
return INT2NUM(pango_font_description_get_size(_SELF(self)));
}
-#if PANGO_CHECK_VERSION(1,8,0)
static VALUE
rg_set_absolute_size(VALUE self, VALUE size)
{
@@ -163,7 +162,6 @@ rg_size_is_absolute_p(VALUE self)
{
return CBOOL2RVAL(pango_font_description_get_size_is_absolute(_SELF(self)));
}
-#endif
#if PANGO_CHECK_VERSION(1,16,0)
static VALUE
@@ -248,11 +246,8 @@ Init_pango_font_description(VALUE mPango)
RG_DEF_METHOD(stretch, 0);
RG_DEF_METHOD(set_size, 1);
RG_DEF_METHOD(size, 0);
-
-#if PANGO_CHECK_VERSION(1,8,0)
RG_DEF_METHOD(set_absolute_size, 1);
RG_DEF_METHOD_P(size_is_absolute, 0);
-#endif
#if PANGO_CHECK_VERSION(1,16,0)
RG_DEF_METHOD(set_gravity, 1);
RG_DEF_METHOD(gravity, 0);
diff --git a/pango/ext/pango/rbpangofontface.c b/pango/ext/pango/rbpangofontface.c
index d3c1a94..35ba43d 100644
--- a/pango/ext/pango/rbpangofontface.c
+++ b/pango/ext/pango/rbpangofontface.c
@@ -36,7 +36,6 @@ rg_describe(VALUE self)
return PANGOFONTDESCRIPTION2RVAL(pango_font_face_describe(_SELF(self)));
}
-#if PANGO_CHECK_VERSION(1,4,0)
static VALUE
rg_sizes(VALUE self)
{
@@ -56,7 +55,6 @@ rg_sizes(VALUE self)
g_free(sizes);
return result;
}
-#endif
void
Init_pango_font_face(VALUE mPango)
@@ -65,15 +63,11 @@ Init_pango_font_face(VALUE mPango)
RG_DEF_METHOD(name, 0);
RG_DEF_METHOD(describe, 0);
-#if PANGO_CHECK_VERSION(1,4,0)
RG_DEF_METHOD(sizes, 0);
-#endif
G_DEF_CLASS3("PangoFcFace", "FcFace", mPango);
G_DEF_CLASS3("PangoFT2Face", "FT2Face", mPango);
G_DEF_CLASS3("PangoXftFace", "XftFace", mPango);
G_DEF_CLASS3("PangoXFace", "XFace", mPango);
G_DEF_CLASS3("PangoWin32Face", "Win32Face", mPango);
-#if PANGO_CHECK_VERSION(1,12,0)
G_DEF_CLASS3("PangoATSUIFace", "ATSUIFace", mPango);
-#endif
}
diff --git a/pango/ext/pango/rbpangofontfamily.c b/pango/ext/pango/rbpangofontfamily.c
index 5c01cce..bf43ff3 100644
--- a/pango/ext/pango/rbpangofontfamily.c
+++ b/pango/ext/pango/rbpangofontfamily.c
@@ -75,8 +75,5 @@ Init_pango_font_family(VALUE mPango)
G_DEF_CLASS3("PangoXftFamily", "XftFamily", mPango);
G_DEF_CLASS3("PangoXFamily", "XFamily", mPango);
G_DEF_CLASS3("PangoWin32Family", "Win32Family", mPango);
-#if PANGO_CHECK_VERSION(1,12,0)
G_DEF_CLASS3("PangoATSUIFamily", "ATSUIFamily", mPango);
-#endif
-
}
diff --git a/pango/ext/pango/rbpangofontmap.c b/pango/ext/pango/rbpangofontmap.c
index 8a4ac8e..cca3eea 100644
--- a/pango/ext/pango/rbpangofontmap.c
+++ b/pango/ext/pango/rbpangofontmap.c
@@ -71,13 +71,11 @@ rg_families(VALUE self)
return result;
}
-#if PANGO_CHECK_VERSION(1,4,0)
static VALUE
rg_shape_engine_type(VALUE self)
{
return CSTR2RVAL(pango_font_map_get_shape_engine_type(_SELF(self)));
}
-#endif
void
Init_pango_font_map(VALUE mPango)
@@ -90,9 +88,7 @@ Init_pango_font_map(VALUE mPango)
RG_DEF_METHOD(load_font, 2);
RG_DEF_METHOD(load_fontset, 3);
RG_DEF_METHOD(families, 0);
-#if PANGO_CHECK_VERSION(1,4,0)
RG_DEF_METHOD(shape_engine_type, 0);
-#endif
G_DEF_CLASS3("PangoFcFontMap", "FcFontMap", mPango);
G_DEF_CLASS3("PangoXftFontMap", "XftFontMap", mPango);
diff --git a/pango/ext/pango/rbpangofontmetrics.c b/pango/ext/pango/rbpangofontmetrics.c
index ad4804d..31d039a 100644
--- a/pango/ext/pango/rbpangofontmetrics.c
+++ b/pango/ext/pango/rbpangofontmetrics.c
@@ -48,7 +48,6 @@ rg_approximate_digit_width(VALUE self)
return INT2NUM(pango_font_metrics_get_approximate_digit_width(_SELF(self)));
}
-#if PANGO_CHECK_VERSION(1,6,0)
static VALUE
rg_underline_thickness(VALUE self)
{
@@ -69,7 +68,7 @@ rg_strikethrough_position(VALUE self)
{
return INT2NUM(pango_font_metrics_get_strikethrough_position(_SELF(self)));
}
-#endif
+
void
Init_pango_font_metrics(VALUE mPango)
{
@@ -79,10 +78,8 @@ Init_pango_font_metrics(VALUE mPango)
RG_DEF_METHOD(descent, 0);
RG_DEF_METHOD(approximate_char_width, 0);
RG_DEF_METHOD(approximate_digit_width, 0);
-#if PANGO_CHECK_VERSION(1,6,0)
RG_DEF_METHOD(underline_thickness, 0);
RG_DEF_METHOD(underline_position, 0);
RG_DEF_METHOD(strikethrough_thickness, 0);
RG_DEF_METHOD(strikethrough_position, 0);
-#endif
}
diff --git a/pango/ext/pango/rbpangofontset.c b/pango/ext/pango/rbpangofontset.c
index 57e9837..17b3533 100644
--- a/pango/ext/pango/rbpangofontset.c
+++ b/pango/ext/pango/rbpangofontset.c
@@ -38,7 +38,6 @@ rg_metrics(VALUE self)
return PANGOFONTMETRICS2RVAL(pango_fontset_get_metrics(_SELF(self)));
}
-#if PANGO_CHECK_VERSION(1,4,0)
static gboolean
fontset_each(PangoFontset *fontset, PangoFont *font, gpointer func)
{
@@ -56,7 +55,6 @@ rg_each(VALUE self)
(gpointer)func);
return self;
}
-#endif
void
Init_pango_fontset(VALUE mPango)
@@ -67,7 +65,5 @@ Init_pango_fontset(VALUE mPango)
RG_DEF_METHOD(get_font, 1);
RG_DEF_METHOD(metrics, 0);
-#if PANGO_CHECK_VERSION(1,4,0)
RG_DEF_METHOD(each, 0);
-#endif
}
diff --git a/pango/ext/pango/rbpangoglyphitem.c b/pango/ext/pango/rbpangoglyphitem.c
index 2bdbcf6..5b92305 100644
--- a/pango/ext/pango/rbpangoglyphitem.c
+++ b/pango/ext/pango/rbpangoglyphitem.c
@@ -21,7 +21,6 @@
#include "rbpangoprivate.h"
-#if PANGO_CHECK_VERSION(1,2,0)
#define RG_TARGET_NAMESPACE cGlyphItem
#define _SELF(r) (RVAL2PANGOGLYPHITEM(r))
@@ -102,7 +101,6 @@ rg_appy_attrs(VALUE self, VALUE text, VALUE attrs)
return ret;
}
-#if PANGO_CHECK_VERSION(1,6,0)
static VALUE
rg_letter_space(VALUE self, VALUE text, VALUE log_attrs, VALUE letter_spacing)
{
@@ -111,13 +109,10 @@ rg_letter_space(VALUE self, VALUE text, VALUE log_attrs, VALUE letter_spacing)
NUM2INT(letter_spacing));
return self;
}
-#endif
-#endif
void
Init_pango_glyph_item(VALUE mPango)
{
-#if PANGO_CHECK_VERSION(1,2,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(PANGO_TYPE_GLYPH_ITEM, "GlyphItem", mPango);
RG_DEF_METHOD(item, 0);
@@ -126,8 +121,5 @@ Init_pango_glyph_item(VALUE mPango)
RG_DEF_METHOD(split, 2);
RG_DEF_METHOD(appy_attrs, 2);
-#if PANGO_CHECK_VERSION(1,6,0)
RG_DEF_METHOD(letter_space, 3);
-#endif
-#endif
}
diff --git a/pango/ext/pango/rbpangoglyphstring.c b/pango/ext/pango/rbpangoglyphstring.c
index 8cc8481..1e696d8 100644
--- a/pango/ext/pango/rbpangoglyphstring.c
+++ b/pango/ext/pango/rbpangoglyphstring.c
@@ -62,13 +62,11 @@ rg_extents(int argc, VALUE *argv, VALUE self)
PANGORECTANGLE2RVAL(&logical_rect));
}
-#if PANGO_CHECK_VERSION(1,14,0)
static VALUE
rg_width(VALUE self)
{
return INT2NUM(pango_glyph_string_get_width(_SELF(self)));
}
-#endif
static VALUE
rg_index_to_x(VALUE self, VALUE text, VALUE analysis, VALUE index, VALUE trailing)
@@ -145,9 +143,7 @@ Init_pango_glyph_string(VALUE mPango)
RG_DEF_METHOD(initialize, 0);
RG_DEF_METHOD(set_size, 1);
RG_DEF_METHOD(extents, -1);
-#if PANGO_CHECK_VERSION(1,14,0)
RG_DEF_METHOD(width, 0);
-#endif
RG_DEF_METHOD(index_to_x, 4);
RG_DEF_METHOD(x_to_index, 3);
RG_DEF_METHOD(get_logical_widths, 2);
diff --git a/pango/ext/pango/rbpangoitem.c b/pango/ext/pango/rbpangoitem.c
index 3ba470b..c83dbf5 100644
--- a/pango/ext/pango/rbpangoitem.c
+++ b/pango/ext/pango/rbpangoitem.c
@@ -41,22 +41,6 @@ item_int_set_ ## name (VALUE self, VALUE val)\
rbg_define_method(RG_TARGET_NAMESPACE, G_STRINGIFY(name), item_int_ ## name, 0);\
rbg_define_method(RG_TARGET_NAMESPACE, G_STRINGIFY(set_ ## name), item_int_set_ ## name, 1);
-/**********************************/
-#if ! PANGO_CHECK_VERSION(1,9,0)
-GType
-pango_item_get_type(void)
-{
- static GType our_type = 0;
-
- if (our_type == 0)
- our_type = g_boxed_type_register_static ("PangoItem",
- (GBoxedCopyFunc)pango_item_copy,
- (GBoxedFreeFunc)pango_item_free);
- return our_type;
-}
-#endif
-/**********************************/
-
static VALUE
rg_initialize(VALUE self)
{
diff --git a/pango/ext/pango/rbpangolanguage.c b/pango/ext/pango/rbpangolanguage.c
index 8448bd4..66c2418 100644
--- a/pango/ext/pango/rbpangolanguage.c
+++ b/pango/ext/pango/rbpangolanguage.c
@@ -61,7 +61,6 @@ rg_to_str(VALUE self)
return CSTR2RVAL(pango_language_to_string(_SELF(self)));
}
-#if PANGO_CHECK_VERSION(1,4,0)
/* Moved from Pango::Script */
static VALUE
rg_includes_script(VALUE self, VALUE script)
@@ -69,7 +68,6 @@ rg_includes_script(VALUE self, VALUE script)
return CBOOL2RVAL(pango_language_includes_script(_SELF(self),
RVAL2PANGOSCRIPT(script)));
}
-#endif
void
Init_pango_language(VALUE mPango)
@@ -84,8 +82,5 @@ Init_pango_language(VALUE mPango)
RG_DEF_METHOD(to_str, 0);
RG_DEF_ALIAS("to_s", "to_str");
-#if PANGO_CHECK_VERSION(1,4,0)
RG_DEF_METHOD(includes_script, 1);
-#endif
-
}
diff --git a/pango/ext/pango/rbpangolayout.c b/pango/ext/pango/rbpangolayout.c
index 14b8dca..29aa812 100644
--- a/pango/ext/pango/rbpangolayout.c
+++ b/pango/ext/pango/rbpangolayout.c
@@ -1,6 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
+ * Copyright (C) 2011-2013 Ruby-GNOME2 Project Team
* Copyright (C) 2002-2005 Masao Mutoh
*
* This library is free software; you can redistribute it and/or
@@ -102,7 +102,7 @@ rg_operator_layout_set_markup_eq(VALUE self, VALUE markup)
static VALUE
rg_set_attributes(VALUE self, VALUE attrs)
{
- pango_layout_set_attributes(_SELF(self),
+ pango_layout_set_attributes(_SELF(self),
RVAL2PANGOATTRLIST(attrs));
return self;
}
@@ -134,14 +134,12 @@ rg_set_font_description(VALUE self, VALUE rb_desc)
return self;
}
-#ifdef HAVE_PANGO_LAYOUT_GET_FONT_DESCRIPTION
static VALUE
rg_font_description(VALUE self)
{
const PangoFontDescription* desc = pango_layout_get_font_description(_SELF(self));
return PANGOFONTDESCRIPTION2RVAL((gpointer)desc);
}
-#endif
static VALUE
rg_set_width(VALUE self, VALUE width)
@@ -156,6 +154,21 @@ rg_width(VALUE self)
return INT2NUM(pango_layout_get_width(_SELF(self)));
}
+#if PANGO_CHECK_VERSION(1, 20, 0)
+static VALUE
+rg_set_height(VALUE self, VALUE width)
+{
+ pango_layout_set_height(_SELF(self), NUM2INT(width));
+ return self;
+}
+
+static VALUE
+rg_height(VALUE self)
+{
+ return INT2NUM(pango_layout_get_height(_SELF(self)));
+}
+#endif
+
static VALUE
rg_set_wrap(VALUE self, VALUE wrap)
{
@@ -169,18 +182,25 @@ rg_wrap(VALUE self)
return PANGOWRAPMODE2RVAL(pango_layout_get_wrap(_SELF(self)));
}
-#ifdef HAVE_PANGO_LAYOUT_SET_ELLIPSIZE
static VALUE
rg_set_ellipsize(VALUE self, VALUE ellipsize)
{
pango_layout_set_ellipsize(_SELF(self), RVAL2PANGOELLIPSIZEMODE(ellipsize));
return self;
}
+
static VALUE
rg_ellipsize(VALUE self)
{
return PANGOELLIPSIZEMODE2RVAL(pango_layout_get_ellipsize(_SELF(self)));
}
+
+#if PANGO_CHECK_VERSION(1, 16, 0)
+static VALUE
+rg_ellipsized_p(VALUE self)
+{
+ return CBOOL2RVAL(pango_layout_is_ellipsized(_SELF(self)));
+}
#endif
static VALUE
@@ -221,7 +241,6 @@ rg_justify_p(VALUE self)
return CBOOL2RVAL(pango_layout_get_justify(_SELF(self)));
}
-#if PANGO_CHECK_VERSION(1,4,0)
static VALUE
rg_set_auto_dir(VALUE self, VALUE auto_dir)
{
@@ -233,7 +252,6 @@ rg_auto_dir_p(VALUE self)
{
return CBOOL2RVAL(pango_layout_get_auto_dir(_SELF(self)));
}
-#endif
static VALUE
rg_set_alignment(VALUE self, VALUE align)
@@ -251,7 +269,7 @@ rg_alignment(VALUE self)
static VALUE
rg_set_tabs(VALUE self, VALUE tabs)
{
- pango_layout_set_tabs(_SELF(self),
+ pango_layout_set_tabs(_SELF(self),
RVAL2PANGOTABARRAY(tabs));
return self;
}
@@ -305,8 +323,8 @@ static VALUE
rg_xy_to_index(VALUE self, VALUE x, VALUE y)
{
int index, trailing;
- gboolean ret = pango_layout_xy_to_index(_SELF(self),
- NUM2INT(x), NUM2INT(y),
+ gboolean ret = pango_layout_xy_to_index(_SELF(self),
+ NUM2INT(x), NUM2INT(y),
&index, &trailing);
return rb_ary_new3(3, CBOOL2RVAL(ret), INT2NUM(index), INT2NUM(trailing));
@@ -371,7 +389,7 @@ rg_get_extents(int argc, VALUE *argv, VALUE self)
rlog.y = rect->y;
rlog.width = rect->width;
rlog.height = rect->height;
- }
+ }
pango_layout_get_extents(_SELF(self), &rink, &rlog);
@@ -421,7 +439,7 @@ rg_get_pixel_extents(int argc, VALUE *argv, VALUE self)
rlog.y = rect->y;
rlog.width = rect->width;
rlog.height = rect->height;
- }
+ }
pango_layout_get_pixel_extents(_SELF(self), &rink, &rlog);
@@ -496,16 +514,19 @@ Init_pango_layout(VALUE mPango)
RG_DEF_METHOD(set_attributes, 1);
RG_DEF_METHOD(attributes, 0);
RG_DEF_METHOD(set_font_description, 1);
-#ifdef HAVE_PANGO_LAYOUT_GET_FONT_DESCRIPTION
RG_DEF_METHOD(font_description, 0);
-#endif
RG_DEF_METHOD(set_width, 1);
RG_DEF_METHOD(width, 0);
+#if PANGO_CHECK_VERSION(1, 20, 0)
+ RG_DEF_METHOD(set_height, 1);
+ RG_DEF_METHOD(height, 0);
+#endif
RG_DEF_METHOD(set_wrap, 1);
RG_DEF_METHOD(wrap, 0);
-#ifdef HAVE_PANGO_LAYOUT_SET_ELLIPSIZE
RG_DEF_METHOD(set_ellipsize, 1);
RG_DEF_METHOD(ellipsize, 0);
+#if PANGO_CHECK_VERSION(1, 16, 0)
+ RG_DEF_METHOD_P(ellipsized, 0);
#endif
RG_DEF_METHOD(set_indent, 1);
RG_DEF_METHOD(indent, 0);
@@ -513,10 +534,8 @@ Init_pango_layout(VALUE mPango)
RG_DEF_METHOD(set_spacing, 1);
RG_DEF_METHOD(set_justify, 1);
RG_DEF_METHOD_P(justify, 0);
-#if PANGO_CHECK_VERSION(1,4,0)
RG_DEF_METHOD(set_auto_dir, 1);
RG_DEF_METHOD_P(auto_dir, 0);
-#endif
RG_DEF_METHOD(set_alignment, 1);
RG_DEF_METHOD(alignment, 0);
RG_DEF_METHOD(set_tabs, 1);
@@ -547,9 +566,7 @@ Init_pango_layout(VALUE mPango)
G_DEF_CLASS(PANGO_TYPE_ALIGNMENT, "Alignment", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, PANGO_TYPE_ALIGNMENT, "PANGO_");
-#ifdef HAVE_PANGO_LAYOUT_SET_ELLIPSIZE
/* PangoEllipsizeMode */
G_DEF_CLASS(PANGO_TYPE_ELLIPSIZE_MODE, "EllipsizeMode", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, PANGO_TYPE_ELLIPSIZE_MODE, "PANGO_");
-#endif
}
diff --git a/pango/ext/pango/rbpangolayoutline.c b/pango/ext/pango/rbpangolayoutline.c
index 0949eb1..a440b7d 100644
--- a/pango/ext/pango/rbpangolayoutline.c
+++ b/pango/ext/pango/rbpangolayoutline.c
@@ -24,30 +24,6 @@
#define RG_TARGET_NAMESPACE cLayoutLine
#define _SELF(r) (RVAL2PANGOLAYOUTLINE(r))
-/**********************************/
-#if !PANGO_CHECK_VERSION(1,9,0)
-static PangoLayoutLine*
-layout_line_copy(PangoLayoutLine *ref)
-{
- g_return_val_if_fail (ref != NULL, NULL);
- pango_layout_line_ref(ref);
- return ref;
-}
-
-GType
-pango_layout_line_get_type(void)
-{
- static GType our_type = 0;
-
- if (our_type == 0)
- our_type = g_boxed_type_register_static ("PangoLayoutLine",
- (GBoxedCopyFunc)layout_line_copy,
- (GBoxedFreeFunc)pango_layout_line_unref);
- return our_type;
-}
-#endif
-/**********************************/
-
static VALUE
rg_extents(VALUE self)
{
@@ -148,7 +124,6 @@ rg_set_length(VALUE self, VALUE val)
return self;
}
-#if PANGO_CHECK_VERSION(1,2,0)
static VALUE
rg_runs(VALUE self)
{
@@ -166,7 +141,6 @@ rg_runs(VALUE self)
}
return ary;
}
-#endif
struct layout_line_set_runs_args {
PangoLayoutLine *line;
@@ -214,7 +188,6 @@ rg_set_runs(VALUE self, VALUE attrs)
return self;
}
-#if PANGO_CHECK_VERSION(1,4,0)
static VALUE
rg_paragraph_start_p(VALUE self)
{
@@ -240,7 +213,6 @@ rg_set_resolved_dir(VALUE self, VALUE val)
_SELF(self)->resolved_dir = NUM2UINT(val);
return self;
}
-#endif
void
Init_pango_layout_line(VALUE mPango)
@@ -258,15 +230,10 @@ Init_pango_layout_line(VALUE mPango)
RG_DEF_METHOD(set_start_index, 1);
RG_DEF_METHOD(length, 0);
RG_DEF_METHOD(set_length, 1);
-#if PANGO_CHECK_VERSION(1,2,0)
RG_DEF_METHOD(runs, 0);
-#endif
RG_DEF_METHOD(set_runs, 1);
-
-#if PANGO_CHECK_VERSION(1,4,0)
RG_DEF_METHOD_P(paragraph_start, 0);
RG_DEF_METHOD(set_paragraph_start, 1);
RG_DEF_METHOD(resolved_dir, 0);
RG_DEF_METHOD(set_resolved_dir, 1);
-#endif
}
diff --git a/pango/ext/pango/rbpangologattr.c b/pango/ext/pango/rbpangologattr.c
index 9174398..4282371 100644
--- a/pango/ext/pango/rbpangologattr.c
+++ b/pango/ext/pango/rbpangologattr.c
@@ -84,10 +84,7 @@ ATTR_BOOL(is_word_end);
ATTR_BOOL(is_sentence_boundary);
ATTR_BOOL(is_sentence_start);
ATTR_BOOL(is_sentence_end);
-
-#if PANGO_CHECK_VERSION(1,4,0)
ATTR_BOOL(backspace_deletes_character);
-#endif
void
Init_pango_logattr(VALUE mPango)
@@ -107,8 +104,6 @@ Init_pango_logattr(VALUE mPango)
DEFINE_ACCESSOR(RG_TARGET_NAMESPACE, sentence_start);
DEFINE_ACCESSOR(RG_TARGET_NAMESPACE, sentence_end);
-#if PANGO_CHECK_VERSION(1,4,0)
rbg_define_method(RG_TARGET_NAMESPACE, "backspace_deletes_character?", log_get_backspace_deletes_character, 0);
rbg_define_method(RG_TARGET_NAMESPACE, "set_backspace_deletes_character", log_set_backspace_deletes_character, 1);
-#endif
}
diff --git a/pango/ext/pango/rbpangomatrix.c b/pango/ext/pango/rbpangomatrix.c
index f3974e1..13f2167 100644
--- a/pango/ext/pango/rbpangomatrix.c
+++ b/pango/ext/pango/rbpangomatrix.c
@@ -21,8 +21,6 @@
#include "rbpangoprivate.h"
-#if PANGO_CHECK_VERSION(1,6,0)
-
#define RG_TARGET_NAMESPACE cMatrix
#define _SELF(self) (RVAL2PANGOMATRIX(self))
@@ -99,13 +97,11 @@ rg_concat_bang(VALUE self, VALUE new_matrix)
return self;
}
-#if PANGO_CHECK_VERSION(1,12,0)
static VALUE
rg_font_scale_factor(VALUE self)
{
return rb_float_new(pango_matrix_get_font_scale_factor(_SELF(self)));
}
-#endif
ATTR_FLOAT(xx);
ATTR_FLOAT(xy);
@@ -122,12 +118,9 @@ rg_to_a(VALUE self)
INT2NUM(matrix->yy), INT2NUM(matrix->x0), INT2NUM(matrix->y0));
}
-#endif
-
void
Init_pango_matrix(VALUE mPango)
{
-#if PANGO_CHECK_VERSION(1,6,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(PANGO_TYPE_MATRIX, "Matrix", mPango);
RG_DEF_METHOD(initialize, -1);
@@ -135,9 +128,7 @@ Init_pango_matrix(VALUE mPango)
RG_DEF_METHOD_BANG(scale, 2);
RG_DEF_METHOD_BANG(rotate, 1);
RG_DEF_METHOD_BANG(concat, 1);
-#if PANGO_CHECK_VERSION(1,12,0)
RG_DEF_METHOD(font_scale_factor, 0);
-#endif
#if PANGO_CHECK_VERSION(1,16,0)
RG_DEF_METHOD(gravity, 0);
#endif
@@ -149,5 +140,4 @@ Init_pango_matrix(VALUE mPango)
DEFINE_ACCESSOR(yy);
DEFINE_ACCESSOR(x0);
DEFINE_ACCESSOR(y0);
-#endif
}
diff --git a/pango/ext/pango/rbpangoprivate.h b/pango/ext/pango/rbpangoprivate.h
index 1b14542..c1cc8de 100644
--- a/pango/ext/pango/rbpangoprivate.h
+++ b/pango/ext/pango/rbpangoprivate.h
@@ -7,10 +7,6 @@
# define rb_errinfo() (ruby_errinfo)
#endif
-#if PANGO_CHECK_VERSION(1,10,0) && defined(HAVE_RB_CAIRO_H)
-# define CAIRO_AVAILABLE 1
-#endif
-
G_BEGIN_DECLS
G_GNUC_INTERNAL void Init_pango_analysis(VALUE mPango);
diff --git a/pango/ext/pango/rbpangorenderer.c b/pango/ext/pango/rbpangorenderer.c
index 121259c..68f62af 100644
--- a/pango/ext/pango/rbpangorenderer.c
+++ b/pango/ext/pango/rbpangorenderer.c
@@ -21,7 +21,6 @@
#include "rbpangoprivate.h"
-#if PANGO_CHECK_VERSION(1,8,0)
#define RG_TARGET_NAMESPACE cRenderer
#define _SELF(self) (RVAL2PANGORENDERER(self))
@@ -166,12 +165,9 @@ rg_matrix(VALUE self)
return PANGOMATRIX2RVAL((PangoMatrix*)matrix);
}
-#endif
-
void
Init_pangorenderer(VALUE mPango)
{
-#if PANGO_CHECK_VERSION(1,8,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(PANGO_TYPE_RENDERER, "Renderer", mPango);
RG_DEF_METHOD(draw_layout, 3);
@@ -194,6 +190,4 @@ Init_pangorenderer(VALUE mPango)
G_DEF_CLASS(PANGO_TYPE_RENDER_PART, "Part", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, PANGO_TYPE_RENDER_PART, "PANGO_RENDER_");
#endif
-
-#endif
}
diff --git a/pango/ext/pango/rbpangoscript.c b/pango/ext/pango/rbpangoscript.c
index 3d5d0fd..9c1aaa4 100644
--- a/pango/ext/pango/rbpangoscript.c
+++ b/pango/ext/pango/rbpangoscript.c
@@ -21,7 +21,6 @@
#include "rbpangoprivate.h"
-#if PANGO_CHECK_VERSION(1,4,0)
#define RG_TARGET_NAMESPACE cScript
#define _SELF(r) (RVAL2PANGOSCRIPT(r))
@@ -71,17 +70,14 @@ rg_get_gravity(int argc, VALUE *argv, VALUE self)
gboolean pango_language_includes_script (PangoLanguage *language,
PangoScript script);
*/
-#endif
void
Init_pango_script(VALUE mPango)
{
-#if PANGO_CHECK_VERSION(1,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(PANGO_TYPE_SCRIPT, "Script", mPango);
RG_DEF_SMETHOD(for_unichar, 1);
RG_DEF_METHOD(sample_language, 0);
-#endif
#if PANGO_CHECK_VERSION(1,16,0)
RG_DEF_METHOD(get_gravity, -1);
#endif
diff --git a/pango/ext/pango/rbpangoscriptiter.c b/pango/ext/pango/rbpangoscriptiter.c
index 601c8e2..bd8c76a 100644
--- a/pango/ext/pango/rbpangoscriptiter.c
+++ b/pango/ext/pango/rbpangoscriptiter.c
@@ -21,8 +21,6 @@
#include "rbpangoprivate.h"
-#if PANGO_CHECK_VERSION(1,4,0)
-
/**********************************/
static PangoScriptIter*
rbpango_script_iter_copy(PangoScriptIter *ref)
@@ -82,16 +80,13 @@ rg_next_bang(VALUE self)
{
return CBOOL2RVAL(pango_script_iter_next(_SELF(self)));
}
-#endif
void
Init_pango_script_iter(VALUE mPango)
{
-#if PANGO_CHECK_VERSION(1,4,0)
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(PANGO_TYPE_SCRIPT_ITER, "ScriptIter", mPango);
RG_DEF_METHOD(initialize, 1);
RG_DEF_METHOD(range, 0);
RG_DEF_METHOD_BANG(next, 0);
-#endif
}
diff --git a/pango/patches/harfbuzz-0.9.17-disable-uniscribe.diff b/pango/patches/harfbuzz-0.9.17-disable-uniscribe.diff
deleted file mode 100644
index d37dcca..0000000
--- a/pango/patches/harfbuzz-0.9.17-disable-uniscribe.diff
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru harfbuzz-0.9.17.orig/configure.ac harfbuzz-0.9.17/configure.ac
---- harfbuzz-0.9.17.orig/configure.ac 2013-05-20 22:21:57.000000000 +0900
-+++ harfbuzz-0.9.17/configure.ac 2013-05-26 09:01:41.881876729 +0900
-@@ -248,7 +248,7 @@
- LIBS="$LIBS -lusp10 -lgdi32"
- AC_LINK_IFELSE([AC_LANG_PROGRAM(
- [[
-- #define _WIN32_WINNT 0x0600
-+ #define _WIN32_WINNT 0x0501
- #include <windows.h>
- #include <usp10.h>
- ]],
diff --git a/pango/test/test_layout.rb b/pango/test/test-layout.rb
similarity index 67%
rename from pango/test/test_layout.rb
rename to pango/test/test-layout.rb
index e8fb81f..4552fee 100644
--- a/pango/test/test_layout.rb
+++ b/pango/test/test-layout.rb
@@ -17,4 +17,18 @@ class TestLayout < Test::Unit::TestCase
@layout.font_description = description
assert_equal("monospace 10", @layout.font_description.to_s)
end
+
+ def test_height
+ assert_equal(-1, @layout.height)
+ end
+
+ def test_set_height
+ new_height = 29 * Pango::SCALE
+ @layout.height = new_height
+ assert_equal(new_height, @layout.height)
+ end
+
+ def test_ellipsized?
+ assert_false(@layout.ellipsized?)
+ end
end
diff --git a/poppler/COPYING.LIB b/poppler/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/poppler/COPYING.LIB
+++ b/poppler/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/poppler/README b/poppler/README
index 0e8a40b..3d5bf71 100644
--- a/poppler/README
+++ b/poppler/README
@@ -11,7 +11,7 @@ Requirements
Ruby/GLib2: http://ruby-gnome2.sourceforge.net/
cairo/rcairo: http://cairographics.org/ (optional)
- [*]: 0.8.0 or later is requried.
+ [*]: 0.12.0 or later is requried.
Install
-------
diff --git a/poppler/Rakefile b/poppler/Rakefile
index 032b542..f9108e6 100644
--- a/poppler/Rakefile
+++ b/poppler/Rakefile
@@ -1,16 +1,76 @@
# -*- ruby -*-
+#
+# Copyright (C) 2010-2013 Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
$LOAD_PATH.unshift("./../glib2/lib")
require 'gnome2-raketask'
-package = GNOME2Package.new do |_package|
- _package.summary = "Ruby/Poppler is a Ruby binding of poppler-glib."
- _package.description = "Ruby/Poppler is a Ruby binding of poppler-glib."
- _package.dependency.gem.runtime = []
- _package.win32.packages = []
- _package.win32.dependencies = ["poppler",
- ["libpng", "1.2.40-1"],
- ["jpeg", "7-1"]]
+package_task = GNOME2::Rake::PackageTask.new do |package|
+ package.summary = "Ruby/Poppler is a Ruby binding of poppler-glib."
+ package.description = "Ruby/Poppler is a Ruby binding of poppler-glib."
+ package.dependency.gem.runtime = [["cairo", ">= 1.12.8"], "gdk_pixbuf2"]
+ package.win32.packages = []
+ package.win32.dependencies = []
+ package.windows.build_dependencies = [
+ "glib2",
+ "gobject-introspection",
+ "pango",
+ "gdk_pixbuf2",
+ ]
+ package.windows.gobject_introspection_dependencies = [
+ "gdk_pixbuf2",
+ ]
+ package.external_packages = [
+ {
+ :name => "libjpeg",
+ :base_name => "jpeg-9",
+ :archive_base_name => "jpegsrc.v9.tar.gz",
+ :download_base_url => "http://www.ijg.org/files",
+ :label => "libjpeg",
+ :windows => {
+ :configure_args => [],
+ :built_file => "bin/libjpeg-9.dll",
+ },
+ },
+ {
+ :name => "sqlite-autoconf",
+ :download_base_url => "http://www.sqlite.org/2013",
+ :label => "SQLite",
+ :version => "3080200",
+ :compression_method => "gz",
+ :windows => {
+ :configure_args => [],
+ :built_file => "bin/libsqlite3-0.dll",
+ },
+ },
+ {
+ :name => "poppler",
+ :download_base_url => "http://poppler.freedesktop.org",
+ :label => "Poppler",
+ :version => "0.24.4",
+ :compression_method => "xz",
+ :windows => {
+ :configure_args => [
+ "--enable-introspection",
+ ],
+ :built_file => "bin/libpoppler-glib-8.dll",
+ },
+ },
+ ]
end
-package.define_tasks
+package_task.define
diff --git a/poppler/ext/poppler/extconf.rb b/poppler/ext/poppler/extconf.rb
index b9619e8..5959e60 100644
--- a/poppler/ext/poppler/extconf.rb
+++ b/poppler/ext/poppler/extconf.rb
@@ -51,11 +51,14 @@ rcairo_source_dir_names.each do |rcairo_source_dir_name|
break
end
end
-check_cairo(rcairo_options)
+
+unless check_cairo(rcairo_options)
+ exit(false)
+end
setup_win32(module_name, base_dir)
-unless required_pkg_config_package([package_id, 0, 8, 0],
+unless required_pkg_config_package([package_id, 0, 12, 0],
:debian => "libpoppler-glib-dev",
:redhat => "poppler-glib-devel",
# :homebrew => "poppler", # need --with-glib option
diff --git a/poppler/ext/poppler/rbpoppler-action.c b/poppler/ext/poppler/rbpoppler-action.c
index 29273f6..3c2d5e5 100644
--- a/poppler/ext/poppler/rbpoppler-action.c
+++ b/poppler/ext/poppler/rbpoppler-action.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006-2008 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -22,39 +21,170 @@
#include "rbpoppler-private.h"
/* PopplerAction */
-static VALUE actions[POPPLER_ACTION_MOVIE + 1];
+static VALUE rb_cPopplerAction;
+static VALUE rb_cPopplerActionDest;
+static VALUE rb_cPopplerActionAny;
+static VALUE rb_cPopplerActionUnknown;
+static VALUE rb_cPopplerActionGotoDest;
+static VALUE rb_cPopplerActionGotoRemote;
+static VALUE rb_cPopplerActionLaunch;
+static VALUE rb_cPopplerActionURI;
+static VALUE rb_cPopplerActionNamed;
+static VALUE rb_cPopplerActionMovie;
+static VALUE rb_cPopplerActionRendition;
+static VALUE rb_cPopplerActionOCGState;
+static VALUE rb_cPopplerActionJavaScript;
+
+#define DEFINE_ACTION_TYPE(type_lower_case, type_upper_case) \
+static GType \
+rb_poppler_action_ ## type_lower_case ## _get_type(void) \
+{ \
+ static GType type = 0; \
+ if (type == 0) { \
+ type = g_boxed_type_register_static("PopplerAction" # type_upper_case, \
+ (GBoxedCopyFunc)poppler_action_copy, \
+ (GBoxedFreeFunc)poppler_action_free); \
+ } \
+ return type; \
+}
-VALUE
-rb_poppler_ruby_object_from_action(PopplerAction *action)
+DEFINE_ACTION_TYPE(any, Any)
+DEFINE_ACTION_TYPE(unknown, Unknown)
+DEFINE_ACTION_TYPE(goto_dest, GotoDest)
+DEFINE_ACTION_TYPE(goto_remote, GotoRemote)
+DEFINE_ACTION_TYPE(launch, Launch)
+DEFINE_ACTION_TYPE(uri, URI)
+DEFINE_ACTION_TYPE(named, Named)
+DEFINE_ACTION_TYPE(movie, Movie)
+DEFINE_ACTION_TYPE(rendition, Rendition)
+DEFINE_ACTION_TYPE(ocg_state, OCGState)
+DEFINE_ACTION_TYPE(javascript, JavaScript)
+
+#define POPPLER_ACTION_TYPE_ANY (rb_poppler_action_any_get_type())
+#define POPPLER_ACTION_TYPE_UNKNOWN (rb_poppler_action_unknown_get_type())
+#define POPPLER_ACTION_TYPE_GOTO_DEST (rb_poppler_action_goto_dest_get_type())
+#define POPPLER_ACTION_TYPE_GOTO_REMOTE (rb_poppler_action_goto_remote_get_type())
+#define POPPLER_ACTION_TYPE_LAUNCH (rb_poppler_action_launch_get_type())
+#define POPPLER_ACTION_TYPE_URI (rb_poppler_action_uri_get_type())
+#define POPPLER_ACTION_TYPE_NAMED (rb_poppler_action_named_get_type())
+#define POPPLER_ACTION_TYPE_MOVIE (rb_poppler_action_movie_get_type())
+#define POPPLER_ACTION_TYPE_RENDITION (rb_poppler_action_rendition_get_type())
+#define POPPLER_ACTION_TYPE_OCG_STATE (rb_poppler_action_ocg_state_get_type())
+#define POPPLER_ACTION_TYPE_JAVASCRIPT (rb_poppler_action_javascript_get_type())
+
+static GType
+rb_poppler_action_type_to_gtype(PopplerActionType action_type)
{
- VALUE obj;
+ GType gtype = POPPLER_ACTION_TYPE_ANY;
+
+ switch (action_type) {
+ case POPPLER_ACTION_NONE:
+ break;
+ case POPPLER_ACTION_UNKNOWN:
+ gtype = POPPLER_ACTION_TYPE_UNKNOWN;
+ break;
+ case POPPLER_ACTION_GOTO_DEST:
+ gtype = POPPLER_ACTION_TYPE_GOTO_DEST;
+ break;
+ case POPPLER_ACTION_GOTO_REMOTE:
+ gtype = POPPLER_ACTION_TYPE_GOTO_REMOTE;
+ break;
+ case POPPLER_ACTION_LAUNCH:
+ gtype = POPPLER_ACTION_TYPE_LAUNCH;
+ break;
+ case POPPLER_ACTION_URI:
+ gtype = POPPLER_ACTION_TYPE_URI;
+ break;
+ case POPPLER_ACTION_NAMED:
+ gtype = POPPLER_ACTION_TYPE_NAMED;
+ break;
+#if POPPLER_CHECK_VERSION(0, 14, 0)
+ case POPPLER_ACTION_MOVIE:
+ gtype = POPPLER_ACTION_TYPE_MOVIE;
+ break;
+ case POPPLER_ACTION_RENDITION:
+ gtype = POPPLER_ACTION_TYPE_RENDITION;
+ break;
+ case POPPLER_ACTION_OCG_STATE:
+ gtype = POPPLER_ACTION_TYPE_OCG_STATE;
+ break;
+#endif
+#if POPPLER_CHECK_VERSION(0, 18, 0)
+ case POPPLER_ACTION_JAVASCRIPT:
+ gtype = POPPLER_ACTION_TYPE_JAVASCRIPT;
+ break;
+#endif
+ default:
+ break;
+ }
- if (!action)
- return Qnil;
+ return gtype;
+}
- obj = BOXED2RVAL(action, POPPLER_TYPE_ACTION);
- RBASIC(obj)->klass = actions[action->type];
- return obj;
+static GType
+rb_poppler_action_to_gtype(VALUE action)
+{
+ VALUE klass;
+ GType type = POPPLER_ACTION_TYPE_ANY;
+
+ klass = rb_obj_class(action);
+ if (klass == rb_cPopplerActionAny) {
+ type = POPPLER_ACTION_TYPE_ANY;
+ } else if (klass == rb_cPopplerActionUnknown) {
+ type = POPPLER_ACTION_TYPE_UNKNOWN;
+ } else if (klass == rb_cPopplerActionGotoDest) {
+ type = POPPLER_ACTION_TYPE_GOTO_DEST;
+ } else if (klass == rb_cPopplerActionGotoRemote) {
+ type = POPPLER_ACTION_TYPE_GOTO_REMOTE;
+ } else if (klass == rb_cPopplerActionLaunch) {
+ type = POPPLER_ACTION_TYPE_LAUNCH;
+ } else if (klass == rb_cPopplerActionURI) {
+ type = POPPLER_ACTION_TYPE_URI;
+ } else if (klass == rb_cPopplerActionNamed) {
+ type = POPPLER_ACTION_TYPE_NAMED;
+#if POPPLER_CHECK_VERSION(0, 14, 0)
+ } else if (klass == rb_cPopplerActionMovie) {
+ type = POPPLER_ACTION_TYPE_MOVIE;
+ } else if (klass == rb_cPopplerActionRendition) {
+ type = POPPLER_ACTION_TYPE_RENDITION;
+ } else if (klass == rb_cPopplerActionOCGState) {
+ type = POPPLER_ACTION_TYPE_OCG_STATE;
+#endif
+#if POPPLER_CHECK_VERSION(0, 18, 0)
+ } else if (klass == rb_cPopplerActionJavaScript) {
+ type = POPPLER_ACTION_TYPE_JAVASCRIPT;
+#endif
+ } else {
+ rb_raise(rb_eArgError, "Not action object: %s", RBG_INSPECT(action));
+ }
+
+ return type;
+}
+
+VALUE
+rb_poppler_ruby_object_from_action(PopplerAction *action)
+{
+ return BOXED2RVAL(action, rb_poppler_action_type_to_gtype(action->any.type));
}
PopplerAction *
rb_poppler_action_from_ruby_object(VALUE action)
{
- return NIL_P(action) ? NULL : RVAL2BOXED(action, POPPLER_TYPE_ACTION);
+ return RVAL2BOXED(action, rb_poppler_action_to_gtype(action));
}
#define ACTION_ATTR_STR(type, name) \
static VALUE \
action_ ## type ## _ ## name (VALUE self) \
{ \
- return CSTR2RVAL(RVAL2POPPLERACTION(self)->type.name); \
+ return CSTR2RVAL(RVAL2POPPLERACTION(self)->type.name); \
}
-#define ACTION_ATTR_DEST(type, name) \
-static VALUE \
-action_ ## type ## _ ## name (VALUE self) \
-{ \
- return POPPLERDEST2RVAL(RVAL2POPPLERACTION(self)->type.name); \
+#define ACTION_ATTR_DEST(type, name) \
+static VALUE \
+action_ ## type ## _ ## name (VALUE self) \
+{ \
+ return POPPLERDEST2RVAL(RVAL2POPPLERACTION(self)->type.name); \
}
#define DEFINE_ACCESSOR(prefix, target, name) \
@@ -82,28 +212,41 @@ ACTION_ATTR_DEST(goto_remote, dest);
ACTION_ATTR_STR(launch, file_name);
ACTION_ATTR_STR(launch, params);
-/* PopplerActionUri */
+/* PopplerActionURI */
ACTION_ATTR_STR(uri, uri);
/* PopplerActionNamed */
ACTION_ATTR_STR(named, named_dest);
+#if POPPLER_CHECK_VERSION(0, 14, 0)
/* PopplerActionMovie */
+ACTION_ATTR_DEST(movie, movie);
+
+/* PopplerActionRendition */
+ACTION_ATTR_DEST(rendition, media);
+/* PopplerActionOCGState */
+ACTION_ATTR_DEST(ocg_state, state_list);
+#endif
+
+#if POPPLER_CHECK_VERSION(0, 18, 0)
+/* PopplerActionJavascript */
+ACTION_ATTR_STR(javascript, script);
+#endif
/* PopplerDest */
#ifdef RB_POPPLER_TYPE_DEST_NOT_DEFINED
GType
poppler_dest_get_type (void)
{
- static GType our_type = 0;
+ static GType our_type = 0;
- if (our_type == 0)
- our_type = g_boxed_type_register_static ("PopplerDest",
- (GBoxedCopyFunc) poppler_dest_copy,
- (GBoxedFreeFunc) poppler_dest_free);
+ if (our_type == 0)
+ our_type = g_boxed_type_register_static("PopplerDest",
+ (GBoxedCopyFunc)poppler_dest_copy,
+ (GBoxedFreeFunc)poppler_dest_free);
- return our_type;
+ return our_type;
}
#endif
@@ -113,32 +256,32 @@ dest_get_type(VALUE self)
return POPPLERDESTTYPE2RVAL(RVAL2POPPLERDEST(self)->type);
}
-#define DEST_ATTR_INT(name) \
-static VALUE \
-dest_ ## name (VALUE self) \
-{ \
- return INT2NUM(RVAL2POPPLERDEST(self)->name); \
+#define DEST_ATTR_INT(name) \
+static VALUE \
+dest_ ## name (VALUE self) \
+{ \
+ return INT2NUM(RVAL2POPPLERDEST(self)->name); \
}
-#define DEST_ATTR_UINT(name) \
-static VALUE \
-dest_ ## name (VALUE self) \
-{ \
- return UINT2NUM(RVAL2POPPLERDEST(self)->name); \
+#define DEST_ATTR_UINT(name) \
+static VALUE \
+dest_ ## name (VALUE self) \
+{ \
+ return UINT2NUM(RVAL2POPPLERDEST(self)->name); \
}
-#define DEST_ATTR_DOUBLE(name) \
-static VALUE \
-dest_ ## name (VALUE self) \
-{ \
- return rb_float_new(RVAL2POPPLERDEST(self)->name); \
+#define DEST_ATTR_DOUBLE(name) \
+static VALUE \
+dest_ ## name (VALUE self) \
+{ \
+ return rb_float_new(RVAL2POPPLERDEST(self)->name); \
}
-#define DEST_ATTR_STR(name) \
-static VALUE \
-dest_ ## name (VALUE self) \
-{ \
- return CSTR2RVAL(RVAL2POPPLERDEST(self)->name); \
+#define DEST_ATTR_STR(name) \
+static VALUE \
+dest_ ## name (VALUE self) \
+{ \
+ return CSTR2RVAL(RVAL2POPPLERDEST(self)->name); \
}
#define DEFINE_DEST_ACCESSOR(target, name) \
@@ -159,58 +302,71 @@ DEST_ATTR_UINT(change_zoom)
void
Init_poppler_action(VALUE mPoppler)
{
- VALUE cDest, cAction, cActionAny, cActionGotoDest, cActionGotoRemote;
- VALUE cActionLaunch, cActionUri, cActionNamed, cActionMovie;
+ rb_cPopplerAction = G_DEF_CLASS(POPPLER_TYPE_ACTION, "Action", mPoppler);
+
+ rb_cPopplerActionAny = rb_define_class_under(mPoppler, "ActionAny", rb_cPopplerAction);
+ rbg_define_method(rb_cPopplerActionAny, "type", action_any_type, 0);
+ DEFINE_ACTION_ACCESSOR(rb_cPopplerActionAny, any, title);
- cAction = G_DEF_CLASS(POPPLER_TYPE_ACTION, "Action", mPoppler);
+ rb_cPopplerActionUnknown = rb_define_class_under(mPoppler, "ActionUnknown",
+ rb_cPopplerAction);
- cActionAny = rb_define_class_under(mPoppler, "ActionAny", cAction);
- rbg_define_method(cActionAny, "type", action_any_type, 0);
- DEFINE_ACTION_ACCESSOR(cActionAny, any, title);
+ rb_cPopplerActionGotoDest = rb_define_class_under(mPoppler, "ActionGotoDest",
+ rb_cPopplerActionAny);
+ DEFINE_ACTION_ACCESSOR(rb_cPopplerActionGotoDest, goto_dest, dest);
- cActionGotoDest = rb_define_class_under(mPoppler, "ActionGotoDest",
- cActionAny);
- DEFINE_ACTION_ACCESSOR(cActionGotoDest, goto_dest, dest);
+ rb_cPopplerActionGotoRemote = rb_define_class_under(mPoppler, "ActionGotoRemote",
+ rb_cPopplerActionAny);
+ DEFINE_ACTION_ACCESSOR(rb_cPopplerActionGotoRemote, goto_remote, file_name);
+ DEFINE_ACTION_ACCESSOR(rb_cPopplerActionGotoRemote, goto_remote, dest);
- cActionGotoRemote = rb_define_class_under(mPoppler, "ActionGotoRemote",
- cActionAny);
- DEFINE_ACTION_ACCESSOR(cActionGotoRemote, goto_remote, file_name);
- DEFINE_ACTION_ACCESSOR(cActionGotoRemote, goto_remote, dest);
+ rb_cPopplerActionLaunch = rb_define_class_under(mPoppler, "ActionLaunch",
+ rb_cPopplerActionAny);
+ DEFINE_ACTION_ACCESSOR(rb_cPopplerActionLaunch, launch, file_name);
+ DEFINE_ACTION_ACCESSOR(rb_cPopplerActionLaunch, launch, params);
- cActionLaunch = rb_define_class_under(mPoppler, "ActionLaunch", cActionAny);
- DEFINE_ACTION_ACCESSOR(cActionLaunch, launch, file_name);
- DEFINE_ACTION_ACCESSOR(cActionLaunch, launch, params);
+ rb_cPopplerActionURI = rb_define_class_under(mPoppler, "ActionURI", rb_cPopplerActionAny);
+ DEFINE_ACTION_ACCESSOR(rb_cPopplerActionURI, uri, uri);
- cActionUri = rb_define_class_under(mPoppler, "ActionUri", cActionAny);
- DEFINE_ACTION_ACCESSOR(cActionUri, uri, uri);
+ rb_cPopplerActionNamed = rb_define_class_under(mPoppler, "ActionNamed",
+ rb_cPopplerActionAny);
+ DEFINE_ACTION_ACCESSOR(rb_cPopplerActionNamed, named, named_dest);
- cActionNamed = rb_define_class_under(mPoppler, "ActionNamed", cActionAny);
- DEFINE_ACTION_ACCESSOR(cActionNamed, named, named_dest);
+#if POPPLER_CHECK_VERSION(0, 14, 0)
+ rb_cPopplerActionMovie = rb_define_class_under(mPoppler, "ActionMovie",
+ rb_cPopplerActionAny);
+ DEFINE_ACTION_ACCESSOR(rb_cPopplerActionMovie, movie, movie);
- cActionMovie = rb_define_class_under(mPoppler, "ActionMovie", cActionAny);
+ rb_cPopplerActionRendition = rb_define_class_under(mPoppler, "ActionRendtion",
+ rb_cPopplerActionAny);
+ DEFINE_ACTION_ACCESSOR(rb_cPopplerActionRendition, rendition, media);
- actions[POPPLER_ACTION_UNKNOWN] = cActionAny;
- actions[POPPLER_ACTION_GOTO_DEST] = cActionGotoDest;
- actions[POPPLER_ACTION_GOTO_REMOTE] = cActionGotoRemote;
- actions[POPPLER_ACTION_LAUNCH] = cActionLaunch;
- actions[POPPLER_ACTION_URI] = cActionUri;
- actions[POPPLER_ACTION_NAMED] = cActionNamed;
- actions[POPPLER_ACTION_MOVIE] = cActionMovie;
+ rb_cPopplerActionOCGState = rb_define_class_under(mPoppler, "ActionOCGState",
+ rb_cPopplerActionAny);
+ DEFINE_ACTION_ACCESSOR(rb_cPopplerActionOCGState, ocg_state, state_list);
+#endif
+
+#if POPPLER_CHECK_VERSION(0, 18, 0)
+ rb_cPopplerActionJavaScript =
+ rb_define_class_under(mPoppler, "ActionJavaScript",
+ rb_cPopplerActionAny);
+ DEFINE_ACTION_ACCESSOR(rb_cPopplerActionJavaScript, javascript, script);
+#endif
G_DEF_CLASS(POPPLER_TYPE_ACTION_TYPE, "ActionType", mPoppler);
G_DEF_CLASS(POPPLER_TYPE_DEST_TYPE, "DestType", mPoppler);
- cDest = G_DEF_CLASS(POPPLER_TYPE_DEST, "Dest", mPoppler);
-
- rbg_define_method(cDest, "type", dest_get_type, 0);
- DEFINE_DEST_ACCESSOR(cDest, page_num);
- DEFINE_DEST_ACCESSOR(cDest, left);
- DEFINE_DEST_ACCESSOR(cDest, bottom);
- DEFINE_DEST_ACCESSOR(cDest, right);
- DEFINE_DEST_ACCESSOR(cDest, top);
- DEFINE_DEST_ACCESSOR(cDest, zoom);
- DEFINE_DEST_ACCESSOR(cDest, named_dest);
- DEFINE_DEST_ACCESSOR(cDest, change_left);
- DEFINE_DEST_ACCESSOR(cDest, change_top);
- DEFINE_DEST_ACCESSOR(cDest, change_zoom);
+ rb_cPopplerActionDest = G_DEF_CLASS(POPPLER_TYPE_DEST, "Dest", mPoppler);
+
+ rbg_define_method(rb_cPopplerActionDest, "type", dest_get_type, 0);
+ DEFINE_DEST_ACCESSOR(rb_cPopplerActionDest, page_num);
+ DEFINE_DEST_ACCESSOR(rb_cPopplerActionDest, left);
+ DEFINE_DEST_ACCESSOR(rb_cPopplerActionDest, bottom);
+ DEFINE_DEST_ACCESSOR(rb_cPopplerActionDest, right);
+ DEFINE_DEST_ACCESSOR(rb_cPopplerActionDest, top);
+ DEFINE_DEST_ACCESSOR(rb_cPopplerActionDest, zoom);
+ DEFINE_DEST_ACCESSOR(rb_cPopplerActionDest, named_dest);
+ DEFINE_DEST_ACCESSOR(rb_cPopplerActionDest, change_left);
+ DEFINE_DEST_ACCESSOR(rb_cPopplerActionDest, change_top);
+ DEFINE_DEST_ACCESSOR(rb_cPopplerActionDest, change_zoom);
}
diff --git a/poppler/ext/poppler/rbpoppler-annotationcalloutline.c b/poppler/ext/poppler/rbpoppler-annotation-callout-line.c
similarity index 97%
rename from poppler/ext/poppler/rbpoppler-annotationcalloutline.c
rename to poppler/ext/poppler/rbpoppler-annotation-callout-line.c
index 263b4e7..13ca8f1 100644
--- a/poppler/ext/poppler/rbpoppler-annotationcalloutline.c
+++ b/poppler/ext/poppler/rbpoppler-annotation-callout-line.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2008 Ruby-GNOME2 Project Team
+ * Copyright (C) 2008-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -87,7 +86,7 @@ rg_inspect(VALUE self)
}
void
-Init_poppler_annotationcalloutline(VALUE mPoppler)
+Init_poppler_annotation_callout_line(VALUE mPoppler)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_ANNOT_CALLOUT_LINE,
"AnnotationCalloutLine", mPoppler);
diff --git a/poppler/ext/poppler/rbpoppler-annotationfreetext.c b/poppler/ext/poppler/rbpoppler-annotation-free-text.c
similarity index 90%
rename from poppler/ext/poppler/rbpoppler-annotationfreetext.c
rename to poppler/ext/poppler/rbpoppler-annotation-free-text.c
index 67c672f..aa92ea2 100644
--- a/poppler/ext/poppler/rbpoppler-annotationfreetext.c
+++ b/poppler/ext/poppler/rbpoppler-annotation-free-text.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2008 Ruby-GNOME2 Project Team
+ * Copyright (C) 2008-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -37,7 +36,7 @@ rg_callout_line(VALUE self)
}
void
-Init_poppler_annotationfreetext(VALUE mPoppler)
+Init_poppler_annotation_free_text(VALUE mPoppler)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_ANNOT_FREE_TEXT,
"AnnotationFreeText", mPoppler);
diff --git a/poppler/ext/poppler/rbpoppler-annotationmapping.c b/poppler/ext/poppler/rbpoppler-annotation-mapping.c
similarity index 93%
rename from poppler/ext/poppler/rbpoppler-annotationmapping.c
rename to poppler/ext/poppler/rbpoppler-annotation-mapping.c
index 83b4725..777e4ae 100644
--- a/poppler/ext/poppler/rbpoppler-annotationmapping.c
+++ b/poppler/ext/poppler/rbpoppler-annotation-mapping.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006-2008 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -57,7 +56,7 @@ rg_set_annotation(VALUE self, VALUE annotation)
}
void
-Init_poppler_annotationmapping(VALUE mPoppler)
+Init_poppler_annotation_mapping(VALUE mPoppler)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_ANNOT_MAPPING,
"AnnotationMapping", mPoppler);
diff --git a/poppler/ext/poppler/rbpoppler-annotationmarkup.c b/poppler/ext/poppler/rbpoppler-annotation-markup.c
similarity index 92%
rename from poppler/ext/poppler/rbpoppler-annotationmarkup.c
rename to poppler/ext/poppler/rbpoppler-annotation-markup.c
index 5aad700..02ba9e4 100644
--- a/poppler/ext/poppler/rbpoppler-annotationmarkup.c
+++ b/poppler/ext/poppler/rbpoppler-annotation-markup.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2008 Ruby-GNOME2 Project Team
+ * Copyright (C) 2008-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -79,12 +78,14 @@ rg_external_data(VALUE self)
}
void
-Init_poppler_annotationmarkup(VALUE mPoppler)
+Init_poppler_annotation_markup(VALUE mPoppler)
{
+ VALUE RG_TARGET_NAMESPACE;
+
id_new = rb_intern("new");
rb_cDate = rb_const_get(rb_cObject, rb_intern("Date"));
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_ANNOT_MARKUP,
+ RG_TARGET_NAMESPACE= G_DEF_CLASS(POPPLER_TYPE_ANNOT_MARKUP,
"AnnotationMarkup", mPoppler);
RG_DEF_METHOD(label, 0);
diff --git a/poppler/ext/poppler/rbpoppler-annotationtext.c b/poppler/ext/poppler/rbpoppler-annotation-text.c
similarity index 84%
rename from poppler/ext/poppler/rbpoppler-annotationtext.c
rename to poppler/ext/poppler/rbpoppler-annotation-text.c
index 5fa7b28..3fa3115 100644
--- a/poppler/ext/poppler/rbpoppler-annotationtext.c
+++ b/poppler/ext/poppler/rbpoppler-annotation-text.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2008 Ruby-GNOME2 Project Team
+ * Copyright (C) 2008-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -33,11 +32,7 @@ rg_open_p(VALUE self)
static VALUE
rg_icon(VALUE self)
{
-#if POPPLER_CHECK_VERSION(0, 9, 0)
return CSTR2RVAL_FREE(poppler_annot_text_get_icon(SELF(self)));
-#else
- return POPPLERANNOTTEXTICON2RVAL(poppler_annot_text_get_icon(SELF(self)));
-#endif
}
static VALUE
@@ -47,7 +42,7 @@ rg_state(VALUE self)
}
void
-Init_poppler_annotationtext(VALUE mPoppler)
+Init_poppler_annotation_text(VALUE mPoppler)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_ANNOT_TEXT,
"AnnotationText", mPoppler);
diff --git a/poppler/ext/poppler/rbpoppler-buttonfield.c b/poppler/ext/poppler/rbpoppler-button-field.c
similarity index 100%
rename from poppler/ext/poppler/rbpoppler-buttonfield.c
rename to poppler/ext/poppler/rbpoppler-button-field.c
diff --git a/poppler/ext/poppler/rbpoppler-choicefield.c b/poppler/ext/poppler/rbpoppler-choice-field.c
similarity index 100%
rename from poppler/ext/poppler/rbpoppler-choicefield.c
rename to poppler/ext/poppler/rbpoppler-choice-field.c
diff --git a/poppler/ext/poppler/rbpoppler-fontinfo.c b/poppler/ext/poppler/rbpoppler-font-info.c
similarity index 88%
rename from poppler/ext/poppler/rbpoppler-fontinfo.c
rename to poppler/ext/poppler/rbpoppler-font-info.c
index bfd0552..5056c35 100644
--- a/poppler/ext/poppler/rbpoppler-fontinfo.c
+++ b/poppler/ext/poppler/rbpoppler-font-info.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -25,8 +24,6 @@
static VALUE RG_TARGET_NAMESPACE;
-#if POPPLER_CHECK_VERSION(0, 6, 0)
-
static ID id_valid;
static VALUE
@@ -49,17 +46,14 @@ rg_scan(VALUE self, VALUE n_pages)
}
return rb_iter;
}
-#endif
void
-Init_poppler_fontinfo(VALUE mPoppler)
+Init_poppler_font_info(VALUE mPoppler)
{
id_valid = rb_intern("valid?");
RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_FONT_INFO, "FontInfo", mPoppler);
-#if POPPLER_CHECK_VERSION(0, 6, 0)
RG_DEF_METHOD(initialize, 1);
RG_DEF_METHOD(scan, 1);
-#endif
}
diff --git a/poppler/ext/poppler/rbpoppler-fontsiter.c b/poppler/ext/poppler/rbpoppler-fonts-iter.c
similarity index 91%
rename from poppler/ext/poppler/rbpoppler-fontsiter.c
rename to poppler/ext/poppler/rbpoppler-fonts-iter.c
index 32c63af..a53bbad 100644
--- a/poppler/ext/poppler/rbpoppler-fontsiter.c
+++ b/poppler/ext/poppler/rbpoppler-fonts-iter.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -105,19 +104,19 @@ rg_each(VALUE self)
}
void
-Init_poppler_fontsiter(VALUE mPoppler)
+Init_poppler_fonts_iter(VALUE mPoppler)
{
+ VALUE RG_TARGET_NAMESPACE;
+
id_valid = rb_intern("valid?");
- VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_FONTS_ITER, "FontsIter", mPoppler);
+ RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_FONTS_ITER, "FontsIter", mPoppler);
rb_include_module(RG_TARGET_NAMESPACE, rb_mEnumerable);
RG_DEF_METHOD(name, 0);
RG_DEF_METHOD(full_name, 0);
-#if POPPLER_CHECK_VERSION(0, 6, 0)
RG_DEF_METHOD(file_name, 0);
-#endif
RG_DEF_METHOD(font_type, 0);
RG_DEF_METHOD_P(embedded, 0);
RG_DEF_METHOD_P(subset, 0);
diff --git a/poppler/ext/poppler/rbpoppler-formfieldmapping.c b/poppler/ext/poppler/rbpoppler-form-field-mapping.c
similarity index 92%
rename from poppler/ext/poppler/rbpoppler-formfieldmapping.c
rename to poppler/ext/poppler/rbpoppler-form-field-mapping.c
index b4ccaa3..4db67c2 100644
--- a/poppler/ext/poppler/rbpoppler-formfieldmapping.c
+++ b/poppler/ext/poppler/rbpoppler-form-field-mapping.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006-2008 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -29,7 +28,7 @@ DEF_ACCESSOR(form_field_mapping, field, RVAL2POPPLERFORMFIELDMAPPING,
POPPLERFORMFIELD2RVAL, RVAL2POPPLERFORMFIELD)
void
-Init_poppler_formfieldmapping(VALUE mPoppler)
+Init_poppler_form_field_mapping(VALUE mPoppler)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_FORM_FIELD_MAPPING,
"FormFieldMapping", mPoppler);
diff --git a/poppler/ext/poppler/rbpoppler-imagemapping.c b/poppler/ext/poppler/rbpoppler-image-mapping.c
similarity index 89%
rename from poppler/ext/poppler/rbpoppler-imagemapping.c
rename to poppler/ext/poppler/rbpoppler-image-mapping.c
index dc8d7f8..4e0e43b 100644
--- a/poppler/ext/poppler/rbpoppler-imagemapping.c
+++ b/poppler/ext/poppler/rbpoppler-image-mapping.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006-2008 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -26,26 +25,22 @@
DEF_ACCESSOR_WITH_SETTER(image_mapping, area,
RVAL2POPPLERIMAGEMAPPING, RECT_ENTITY2RVAL, RECT_ENTITY_SET)
DEF_ACCESSOR(image_mapping, image_id, RVAL2POPPLERIMAGEMAPPING, INT2NUM, NUM2INT)
-#ifdef RB_POPPLER_CAIRO_AVAILABLE
static VALUE
rg_image(VALUE self)
{
return rb_funcall(rb_iv_get(self, "@page"), rb_intern("get_image"),
1, INT2NUM(RVAL2POPPLERIMAGEMAPPING(self)->image_id));
}
-#endif
void
-Init_poppler_imagemapping(VALUE mPoppler)
+Init_poppler_image_mapping(VALUE mPoppler)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_IMAGE_MAPPING,
"ImageMapping", mPoppler);
rbg_define_method(RG_TARGET_NAMESPACE, "area", image_mapping_get_area, 0);
rbg_define_method(RG_TARGET_NAMESPACE, "image_id", image_mapping_get_image_id, 0);
-#ifdef RB_POPPLER_CAIRO_AVAILABLE
RG_DEF_METHOD(image, 0);
-#endif
rbg_define_method(RG_TARGET_NAMESPACE, "set_area", image_mapping_set_area, 1);
rbg_define_method(RG_TARGET_NAMESPACE, "set_image_id",
diff --git a/poppler/ext/poppler/rbpoppler-indexiter.c b/poppler/ext/poppler/rbpoppler-index-iter.c
similarity index 95%
rename from poppler/ext/poppler/rbpoppler-indexiter.c
rename to poppler/ext/poppler/rbpoppler-index-iter.c
index cb28f98..79719d6 100644
--- a/poppler/ext/poppler/rbpoppler-indexiter.c
+++ b/poppler/ext/poppler/rbpoppler-index-iter.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -107,7 +106,7 @@ rg_each(VALUE self)
}
void
-Init_poppler_indexiter(VALUE mPoppler)
+Init_poppler_index_iter(VALUE mPoppler)
{
id_valid = rb_intern("valid?");
diff --git a/poppler/ext/poppler/rbpoppler-linkmapping.c b/poppler/ext/poppler/rbpoppler-link-mapping.c
similarity index 92%
rename from poppler/ext/poppler/rbpoppler-linkmapping.c
rename to poppler/ext/poppler/rbpoppler-link-mapping.c
index 3a1ca1d..d6e86fe 100644
--- a/poppler/ext/poppler/rbpoppler-linkmapping.c
+++ b/poppler/ext/poppler/rbpoppler-link-mapping.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006-2008 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -35,7 +34,7 @@ DEF_ACCESSOR(link_mapping, action, RVAL2POPPLERLINKMAPPING,
POPPLERACTION2RVAL, RVAL2POPPLERACTION)
void
-Init_poppler_linkmapping(VALUE mPoppler)
+Init_poppler_link_mapping(VALUE mPoppler)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_LINK_MAPPING, "LinkMapping",
mPoppler);
diff --git a/poppler/ext/poppler/rbpoppler-pagetransition.c b/poppler/ext/poppler/rbpoppler-page-transition.c
similarity index 95%
rename from poppler/ext/poppler/rbpoppler-pagetransition.c
rename to poppler/ext/poppler/rbpoppler-page-transition.c
index 3a2ecc2..6acc7b1 100644
--- a/poppler/ext/poppler/rbpoppler-pagetransition.c
+++ b/poppler/ext/poppler/rbpoppler-page-transition.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006-2008 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -32,7 +31,7 @@ DEF_ACCESSOR(page_trans, scale, RVAL2POPPLERPAGETRANSITION, NUM2DBL, rb_float_ne
DEF_ACCESSOR(page_trans, rectangular, RVAL2POPPLERPAGETRANSITION, RVAL2CBOOL, CBOOL2RVAL)
void
-Init_poppler_pagetransition(VALUE mPoppler)
+Init_poppler_page_transition(VALUE mPoppler)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_PAGE_TRANSITION,
"PageTransition", mPoppler);
diff --git a/poppler/ext/poppler/rbpoppler-page.c b/poppler/ext/poppler/rbpoppler-page.c
index af7796f..12219d0 100644
--- a/poppler/ext/poppler/rbpoppler-page.c
+++ b/poppler/ext/poppler/rbpoppler-page.c
@@ -27,14 +27,12 @@
static VALUE cRectangle;
static VALUE cPSFile;
-#ifdef RB_POPPLER_CAIRO_AVAILABLE
static VALUE
page_render(VALUE self, VALUE cairo)
{
poppler_page_render(SELF(self), RVAL2CRCONTEXT(cairo));
return Qnil;
}
-#endif
static VALUE
page_render_to_ps(VALUE self, VALUE ps_file)
@@ -49,34 +47,23 @@ rg_render(VALUE self, VALUE ps_file_or_cairo)
if (RVAL2CBOOL(rb_obj_is_kind_of(ps_file_or_cairo, cPSFile))) {
return page_render_to_ps(self, ps_file_or_cairo);
} else {
-#ifdef RB_POPPLER_CAIRO_AVAILABLE
return page_render(self, ps_file_or_cairo);
-#else
- rb_raise(rb_eArgError, "cairo is not available");
-#endif
}
}
-#ifdef RB_POPPLER_CAIRO_AVAILABLE
static VALUE
page_render_for_printing(VALUE self, VALUE cairo)
{
poppler_page_render_for_printing(SELF(self), RVAL2CRCONTEXT(cairo));
return Qnil;
}
-#endif
static VALUE
rg_render_for_printing(VALUE self, VALUE cairo)
{
-#ifdef RB_POPPLER_CAIRO_AVAILABLE
return page_render_for_printing(self, cairo);
-#else
- rb_raise(rb_eArgError, "cairo is not available");
-#endif
}
-#ifdef RB_POPPLER_CAIRO_AVAILABLE
static VALUE
page_render_selection(VALUE self, VALUE cairo,
VALUE selection, VALUE rb_old_selection,
@@ -94,19 +81,14 @@ page_render_selection(VALUE self, VALUE cairo,
RVAL2POPPLERCOLOR(background_color));
return Qnil;
}
-#endif
static VALUE
rg_render_selection(VALUE self,
VALUE cairo, VALUE selection, VALUE old_selection,
VALUE style, VALUE glyph_color, VALUE background_color)
{
-#ifdef RB_POPPLER_CAIRO_AVAILABLE
return page_render_selection(self, cairo, selection, old_selection,
style, glyph_color, background_color);
-#else
- rb_raise(rb_eArgError, "cairo is not available");
-#endif
}
static VALUE
@@ -135,13 +117,11 @@ rg_transition(VALUE self)
return POPPLERPAGETRANSITION2RVAL(poppler_page_get_transition(SELF(self)));
}
-#if RB_POPPLER_CAIRO_AVAILABLE
static VALUE
rg_thumbnail(VALUE self)
{
return CRSURFACE2RVAL(poppler_page_get_thumbnail(SELF(self)));
}
-#endif
static VALUE
rg_thumbnail_size(VALUE self)
@@ -273,23 +253,18 @@ rg_image_mapping(VALUE self)
image_mapping = node->data;
mapping = POPPLERIMAGEMAPPING2RVAL(image_mapping);
-#ifdef RB_POPPLER_CAIRO_AVAILABLE
rb_iv_set(mapping, "@page", self);
-#endif
- rb_ary_push(mappings, mapping);
}
poppler_page_free_image_mapping(image_mapping);
return mappings;
}
-#ifdef RB_POPPLER_CAIRO_AVAILABLE
static VALUE
rg_get_image(VALUE self, VALUE image_id)
{
return CRSURFACE2RVAL(poppler_page_get_image(SELF(self), NUM2INT(image_id)));
}
-#endif
static VALUE
rg_form_field_mapping(VALUE self)
@@ -328,9 +303,7 @@ Init_poppler_page(VALUE mPoppler)
RG_DEF_METHOD(duration, 0);
RG_DEF_METHOD(transition, 0);
-#if RB_POPPLER_CAIRO_AVAILABLE
RG_DEF_METHOD(thumbnail, 0);
-#endif
RG_DEF_METHOD(thumbnail_size, 0);
RG_DEF_METHOD(find_text, 1);
RG_DEF_METHOD(get_text, -1);
@@ -340,9 +313,7 @@ Init_poppler_page(VALUE mPoppler)
RG_DEF_METHOD(get_selection_region, 3);
RG_DEF_METHOD(link_mapping, 0);
RG_DEF_METHOD(image_mapping, 0);
-#if RB_POPPLER_CAIRO_AVAILABLE
RG_DEF_METHOD(get_image, 1);
-#endif
RG_DEF_METHOD(form_field_mapping, 0);
RG_DEF_METHOD(annotation_mapping, 0);
diff --git a/poppler/ext/poppler/rbpoppler-private.h b/poppler/ext/poppler/rbpoppler-private.h
index bbfd784..ae6d8d5 100644
--- a/poppler/ext/poppler/rbpoppler-private.h
+++ b/poppler/ext/poppler/rbpoppler-private.h
@@ -5,26 +5,26 @@
#define RVAL2GDKPIXBUF(o) (GDK_PIXBUF(RVAL2GOBJ(o)))
-G_GNUC_INTERNAL void Init_poppler_indexiter(VALUE mPoppler);
-G_GNUC_INTERNAL void Init_poppler_fontinfo(VALUE mPoppler);
+G_GNUC_INTERNAL void Init_poppler_index_iter(VALUE mPoppler);
+G_GNUC_INTERNAL void Init_poppler_font_info(VALUE mPoppler);
G_GNUC_INTERNAL void Init_poppler_document(VALUE mPoppler);
-G_GNUC_INTERNAL void Init_poppler_fontsiter(VALUE mPoppler);
-G_GNUC_INTERNAL void Init_poppler_psfile(VALUE mPoppler);
+G_GNUC_INTERNAL void Init_poppler_fonts_iter(VALUE mPoppler);
+G_GNUC_INTERNAL void Init_poppler_ps_file(VALUE mPoppler);
G_GNUC_INTERNAL void Init_poppler_rectangle(VALUE mPoppler);
G_GNUC_INTERNAL void Init_poppler_page(VALUE mPoppler);
G_GNUC_INTERNAL void Init_poppler_color(VALUE mPoppler);
-G_GNUC_INTERNAL void Init_poppler_linkmapping(VALUE mPoppler);
-G_GNUC_INTERNAL void Init_poppler_pagetransition(VALUE mPoppler);
-G_GNUC_INTERNAL void Init_poppler_imagemapping(VALUE mPoppler);
-G_GNUC_INTERNAL void Init_poppler_formfieldmapping(VALUE mPoppler);
-G_GNUC_INTERNAL void Init_poppler_annotationmapping(VALUE mPoppler);
+G_GNUC_INTERNAL void Init_poppler_link_mapping(VALUE mPoppler);
+G_GNUC_INTERNAL void Init_poppler_page_transition(VALUE mPoppler);
+G_GNUC_INTERNAL void Init_poppler_image_mapping(VALUE mPoppler);
+G_GNUC_INTERNAL void Init_poppler_form_field_mapping(VALUE mPoppler);
+G_GNUC_INTERNAL void Init_poppler_annotation_mapping(VALUE mPoppler);
G_GNUC_INTERNAL void Init_poppler_attachment(VALUE mPoppler);
G_GNUC_INTERNAL void Init_poppler_action(VALUE mPoppler);
G_GNUC_INTERNAL void Init_poppler_annotation(VALUE mPoppler);
-G_GNUC_INTERNAL void Init_poppler_annotationmarkup(VALUE mPoppler);
-G_GNUC_INTERNAL void Init_poppler_annotationtext(VALUE mPoppler);
-G_GNUC_INTERNAL void Init_poppler_annotationfreetext(VALUE mPoppler);
-G_GNUC_INTERNAL void Init_poppler_annotationcalloutline(VALUE mPoppler);
+G_GNUC_INTERNAL void Init_poppler_annotation_markup(VALUE mPoppler);
+G_GNUC_INTERNAL void Init_poppler_annotation_text(VALUE mPoppler);
+G_GNUC_INTERNAL void Init_poppler_annotation_free_text(VALUE mPoppler);
+G_GNUC_INTERNAL void Init_poppler_annotation_callout_line(VALUE mPoppler);
G_GNUC_INTERNAL void Init_poppler_form_field(VALUE mPoppler);
G_GNUC_INTERNAL void Init_poppler_button_field(VALUE mPoppler, VALUE cFormField);
G_GNUC_INTERNAL void Init_poppler_text_field(VALUE mPoppler, VALUE cFormField);
diff --git a/poppler/ext/poppler/rbpoppler-psfile.c b/poppler/ext/poppler/rbpoppler-ps-file.c
similarity index 93%
rename from poppler/ext/poppler/rbpoppler-psfile.c
rename to poppler/ext/poppler/rbpoppler-ps-file.c
index d27195f..3096942 100644
--- a/poppler/ext/poppler/rbpoppler-psfile.c
+++ b/poppler/ext/poppler/rbpoppler-ps-file.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -56,7 +55,7 @@ rg_set_duplex(VALUE self, VALUE duplex)
}
void
-Init_poppler_psfile(VALUE mPoppler)
+Init_poppler_ps_file(VALUE mPoppler)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(POPPLER_TYPE_PS_FILE, "PSFile", mPoppler);
diff --git a/poppler/ext/poppler/rbpoppler-textfield.c b/poppler/ext/poppler/rbpoppler-text-field.c
similarity index 100%
rename from poppler/ext/poppler/rbpoppler-textfield.c
rename to poppler/ext/poppler/rbpoppler-text-field.c
diff --git a/poppler/ext/poppler/rbpoppler.c b/poppler/ext/poppler/rbpoppler.c
index caa3855..2b28f95 100644
--- a/poppler/ext/poppler/rbpoppler.c
+++ b/poppler/ext/poppler/rbpoppler.c
@@ -1,7 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2011 Ruby-GNOME2 Project Team
- * Copyright (C) 2006-2008 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -40,11 +39,7 @@ rg_s_version(G_GNUC_UNUSED VALUE self)
static VALUE
rg_s_cairo_available_p(G_GNUC_UNUSED VALUE self)
{
-#ifdef RB_POPPLER_CAIRO_AVAILABLE
return Qtrue;
-#else
- return Qfalse;
-#endif
}
void
@@ -82,9 +77,6 @@ Init_poppler(void)
G_RENAME_NICK("3D", "TYPE_3D");
G_DEF_CLASS(POPPLER_TYPE_ANNOT_EXTERNAL_DATA_TYPE,
"AnnotationExternalDataType", RG_TARGET_NAMESPACE);
-# if !POPPLER_CHECK_VERSION(0, 9, 0)
- G_DEF_CLASS(POPPLER_TYPE_ANNOT_TEXT_ICON, "AnnotationTextIcon", RG_TARGET_NAMESPACE);
-# endif
G_DEF_CLASS(POPPLER_TYPE_ANNOT_TEXT_STATE, "AnnotationTextState", RG_TARGET_NAMESPACE);
G_DEF_CLASS(POPPLER_TYPE_ANNOT_FREE_TEXT_QUADDING,
"AnnotationFreeTextQuadding", RG_TARGET_NAMESPACE);
@@ -95,25 +87,25 @@ Init_poppler(void)
RG_DEF_SMETHOD(version, 0);
RG_DEF_SMETHOD_P(cairo_available, 0);
- Init_poppler_indexiter(RG_TARGET_NAMESPACE);
- Init_poppler_fontinfo(RG_TARGET_NAMESPACE);
+ Init_poppler_index_iter(RG_TARGET_NAMESPACE);
+ Init_poppler_font_info(RG_TARGET_NAMESPACE);
Init_poppler_document(RG_TARGET_NAMESPACE);
- Init_poppler_fontsiter(RG_TARGET_NAMESPACE);
- Init_poppler_psfile(RG_TARGET_NAMESPACE);
+ Init_poppler_fonts_iter(RG_TARGET_NAMESPACE);
+ Init_poppler_ps_file(RG_TARGET_NAMESPACE);
Init_poppler_rectangle(RG_TARGET_NAMESPACE);
Init_poppler_page(RG_TARGET_NAMESPACE);
Init_poppler_color(RG_TARGET_NAMESPACE);
- Init_poppler_linkmapping(RG_TARGET_NAMESPACE);
- Init_poppler_pagetransition(RG_TARGET_NAMESPACE);
- Init_poppler_imagemapping(RG_TARGET_NAMESPACE);
- Init_poppler_formfieldmapping(RG_TARGET_NAMESPACE);
- Init_poppler_annotationmapping(RG_TARGET_NAMESPACE);
+ Init_poppler_link_mapping(RG_TARGET_NAMESPACE);
+ Init_poppler_page_transition(RG_TARGET_NAMESPACE);
+ Init_poppler_image_mapping(RG_TARGET_NAMESPACE);
+ Init_poppler_form_field_mapping(RG_TARGET_NAMESPACE);
+ Init_poppler_annotation_mapping(RG_TARGET_NAMESPACE);
Init_poppler_attachment(RG_TARGET_NAMESPACE);
Init_poppler_action(RG_TARGET_NAMESPACE);
Init_poppler_annotation(RG_TARGET_NAMESPACE);
- Init_poppler_annotationmarkup(RG_TARGET_NAMESPACE);
- Init_poppler_annotationtext(RG_TARGET_NAMESPACE);
- Init_poppler_annotationfreetext(RG_TARGET_NAMESPACE);
- Init_poppler_annotationcalloutline(RG_TARGET_NAMESPACE);
+ Init_poppler_annotation_markup(RG_TARGET_NAMESPACE);
+ Init_poppler_annotation_text(RG_TARGET_NAMESPACE);
+ Init_poppler_annotation_free_text(RG_TARGET_NAMESPACE);
+ Init_poppler_annotation_callout_line(RG_TARGET_NAMESPACE);
Init_poppler_form_field(RG_TARGET_NAMESPACE);
}
diff --git a/poppler/ext/poppler/rbpoppler.h b/poppler/ext/poppler/rbpoppler.h
index 4d36548..c4594e9 100644
--- a/poppler/ext/poppler/rbpoppler.h
+++ b/poppler/ext/poppler/rbpoppler.h
@@ -1,6 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2006-2011 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -47,18 +47,15 @@ extern GType poppler_dest_get_type (void) G_GNUC_CONST;
# define RB_POPPLER_TYPE_DEST_NOT_DEFINED
#endif
-#if defined(HAVE_RB_CAIRO_H) && defined(POPPLER_HAS_CAIRO)
-# define RB_POPPLER_CAIRO_AVAILABLE 1
-# include <rb_cairo.h>
-#endif
+#include <rb_cairo.h>
#ifdef POPPLER_TYPE_COLOR
extern PopplerColor *rb_poppler_ruby_object_to_color(VALUE color);
extern VALUE rb_poppler_ruby_object_from_color_with_free(PopplerColor *color);
#endif
+extern VALUE rb_poppler_ruby_object_from_form_field(PopplerFormField *field);
extern VALUE rb_poppler_ruby_object_from_action(PopplerAction *action);
extern PopplerAction *rb_poppler_action_from_ruby_object(VALUE action);
-extern VALUE rb_poppler_ruby_object_from_form_field(PopplerFormField *field);
#endif
diff --git a/poppler/ext/poppler/rbpopplerconversions.h b/poppler/ext/poppler/rbpopplerconversions.h
index 7caa1e8..9988c88 100644
--- a/poppler/ext/poppler/rbpopplerconversions.h
+++ b/poppler/ext/poppler/rbpopplerconversions.h
@@ -1,6 +1,6 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
- * Copyright (C) 2006-2011 Ruby-GNOME2 Project Team
+ * Copyright (C) 2006-2013 Ruby-GNOME2 Project Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
diff --git a/poppler/sample/pdf2.rb b/poppler/sample/pdf2.rb
index dcd4403..2db8405 100755
--- a/poppler/sample/pdf2.rb
+++ b/poppler/sample/pdf2.rb
@@ -1,17 +1,53 @@
#!/usr/bin/env ruby
-require 'tempfile'
+require "tempfile"
+require "optparse"
require "poppler"
require "gdk_pixbuf2"
-if ARGV.size < 2
- puts "usage: #{$0} input.pdf output [scale_ratio] [rotate_angle]"
- exit(-1)
+page = 0
+scale = 1.0
+rotate = 0
+
+parser = OptionParser.new
+parser.banner = <<-BANNER
+Usage: #{parser.program_name} INPUT.PDF OUTPUT [options]
+
+#{parser.program_name} coverts the target page in INPUT.PDF to an image file.
+Many popular image formats such as PNG and JPEG are supported.
+You can specify output image format by OUTPUT file extension.
+For example, the following comand generates PNG file:
+
+ % #{$0} INPUT.PDF OUTPUT.png
+
+BANNER
+
+parser.on("--page=PAGE", Integer,
+ "Use PAGE as the target page",
+ "(0-origin)",
+ "[#{page}]") do |value|
+ page = value.to_i
end
-input, output, scale, rotate = ARGV
-scale = (scale || 1.0).to_f
-rotate = (rotate || 0).to_i % 360
+parser.on("--scale=RATIO", Float,
+ "Scale the target page in INPUT.PDF RATIO times larger in OUTPUT",
+ "[#{scale}]") do |value|
+ scale = value.to_f
+end
+
+parser.on("--rotate=DEGREE", Integer,
+ "Rotate the target page in INPUT.PDF DEGREE degrees clockwise in OUTPUT",
+ "(available values: 0...360)",
+ "[#{rotate}]") do |value|
+ rotate = value.to_i % 360
+end
+
+rest_args = parser.parse!
+if rest_args.size != 2
+ puts(parser.help)
+ exit(false)
+end
+input, output = rest_args
ext_name = File.extname(output)[1..-1]
if ext_name
@@ -52,9 +88,9 @@ def compute_size(width, height, rotate)
end
end
-def to_pixbuf_with_cairo(input, scale, rotate)
+def to_pixbuf_with_cairo(input, page_number, scale, rotate)
doc = Poppler::Document.new(input)
- page = doc[0]
+ page = doc[page_number]
width, height = page.size.collect {|x| x * scale}
surface_width, surface_height = compute_size(width, height, rotate)
@@ -86,7 +122,7 @@ unless Poppler.cairo_available?
puts "cairo isn't available."
exit(false)
end
-pixbuf = to_pixbuf_with_cairo(input, scale, rotate)
+pixbuf = to_pixbuf_with_cairo(input, page, scale, rotate)
if pixbuf.nil?
puts "Is it a PDF file?: #{input}"
diff --git a/poppler/test/fixtures/image.png b/poppler/test/fixtures/image.png
index b937203..439f7d7 100644
Binary files a/poppler/test/fixtures/image.png and b/poppler/test/fixtures/image.png differ
diff --git a/poppler/test/run-test.rb b/poppler/test/run-test.rb
index a512a52..63f3129 100755
--- a/poppler/test/run-test.rb
+++ b/poppler/test/run-test.rb
@@ -2,21 +2,24 @@
base_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
-if system("which make > /dev/null")
- system("cd #{base_dir.dump} && make > /dev/null") or exit(1)
-end
+have_make = system("which make > /dev/null")
glib_dir = File.expand_path(File.join(base_dir, "..", "glib2"))
gdk_pixbuf_dir = File.expand_path(File.join(base_dir, "..", "gdk_pixbuf2"))
+pango_dir = File.join(File.join(base_dir, ".." , "pango"))
gtk_dir = File.expand_path(File.join(base_dir, "..", "gtk2"))
$LOAD_PATH.unshift(File.join(glib_dir, "test"))
require 'glib-test-init'
[[gtk_dir, "gtk2"],
- [gdk_pixbuf_dir, "gdk_pibuf2"],
+ [gdk_pixbuf_dir, "gdk_pixbuf2"],
+ [pango_dir, "pango"],
[glib_dir, "glib2"],
[base_dir, "poppler"]].each do |dir, module_name|
+ if have_make
+ system("cd #{dir.dump} && make > /dev/null") or exit(false)
+ end
$LOAD_PATH.unshift(File.join(dir, "ext", module_name))
$LOAD_PATH.unshift(File.join(dir, "lib"))
end
diff --git a/poppler/test/test_page.rb b/poppler/test/test_page.rb
index 8333060..2d2fd29 100644
--- a/poppler/test/test_page.rb
+++ b/poppler/test/test_page.rb
@@ -31,6 +31,7 @@ class TestPage < Test::Unit::TestCase
end
def test_render
+ only_poppler_version(0, 20, 0)
document = Poppler::Document.new(image_pdf)
page = document[0]
png = StringIO.new
diff --git a/rsvg2/COPYING.LIB b/rsvg2/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/rsvg2/COPYING.LIB
+++ b/rsvg2/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/rsvg2/Rakefile b/rsvg2/Rakefile
index 752ed53..b733d56 100644
--- a/rsvg2/Rakefile
+++ b/rsvg2/Rakefile
@@ -1,14 +1,70 @@
# -*- ruby -*-
+#
+# Copyright (C) 2010-2013 Ruby-GNOME2 Project Team
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
$LOAD_PATH.unshift("./../glib2/lib")
require 'gnome2-raketask'
-package = GNOME2Package.new do |_package|
- _package.summary = "Ruby/RSVG is a Ruby binding of librsvg-2.x."
- _package.description = "Ruby/RSVG is a Ruby binding of librsvg-2.x."
- _package.dependency.gem.runtime = [["cairo", ">= 1.10.0"], "gdk_pixbuf2"]
- _package.win32.packages = ["librsvg", "libcroco"]
- _package.win32.dependencies = ["libxml2"]
+package_task = GNOME2::Rake::PackageTask.new do |package|
+ package.summary = "Ruby/RSVG is a Ruby binding of librsvg-2.x."
+ package.description = "Ruby/RSVG is a Ruby binding of librsvg-2.x."
+ package.dependency.gem.runtime = [["cairo", ">= 1.12.8"], "gdk_pixbuf2"]
+ package.windows.packages = []
+ package.windows.dependencies = []
+ package.windows.build_dependencies = [
+ "glib2",
+ "gobject-introspection",
+ "pango",
+ "gdk_pixbuf2",
+ ]
+ package.windows.gobject_introspection_dependencies = [
+ "gdk_pixbuf2",
+ ]
+ package.external_packages = [
+ {
+ :name => "libcroco",
+ :download_site => :gnome,
+ :label => "libcroco",
+ :version => "0.6.8",
+ :compression_method => "xz",
+ :windows => {
+ :configure_args => [
+ "--enable-introspection",
+ ],
+ :built_file => "bin/libcroco-0.6-3.dll",
+ },
+ },
+ {
+ :name => "librsvg",
+ :download_site => :gnome,
+ :label => "librsvg",
+ :version => "2.40.1",
+ :compression_method => "xz",
+ :windows => {
+ :configure_args => [
+ "--enable-introspection",
+ ],
+ :patches => [
+ "librsvg-2.40.1-replace-canonicalize-file-name.diff",
+ ],
+ :built_file => "bin/librsvg-2-2.dll",
+ },
+ },
+ ]
end
-package.define_tasks
+package_task.define
diff --git a/rsvg2/ext/rsvg2/extconf.rb b/rsvg2/ext/rsvg2/extconf.rb
index d69d921..a698419 100644
--- a/rsvg2/ext/rsvg2/extconf.rb
+++ b/rsvg2/ext/rsvg2/extconf.rb
@@ -51,7 +51,10 @@ rcairo_source_dir_names.each do |rcairo_source_dir_name|
break
end
end
-check_cairo(rcairo_options)
+
+unless check_cairo(rcairo_options)
+ exit(false)
+end
setup_win32(module_name, base_dir)
diff --git a/rsvg2/patches/librsvg-2.40.1-replace-canonicalize-file-name.diff b/rsvg2/patches/librsvg-2.40.1-replace-canonicalize-file-name.diff
new file mode 100644
index 0000000..11bf6c0
--- /dev/null
+++ b/rsvg2/patches/librsvg-2.40.1-replace-canonicalize-file-name.diff
@@ -0,0 +1,75 @@
+https://bugzilla.gnome.org/attachment.cgi?id=258810
+--- a/rsvg-base.c 2013-05-11 05:19:07.000000000 -0400
++++ b/rsvg-base.c 2013-11-02 13:01:46.446835464 -0400
+@@ -2151,9 +2151,8 @@
+ GError **error)
+ {
+ RsvgHandlePrivate *priv = handle->priv;
+- GFile *base;
+- char *path, *dir;
+- char *scheme = NULL, *cpath = NULL, *cdir = NULL;
++ GFile *base = NULL, *urifile = NULL;
++ char *scheme = NULL;
+
+ g_assert (handle->priv->load_policy == RSVG_LOAD_POLICY_STRICT);
+
+@@ -2183,47 +2182,35 @@
+ if (!g_str_equal (scheme, "file"))
+ goto deny;
+
++ /* Ensure that uri is under the file's base directory */
+ base = g_file_get_parent (priv->base_gfile);
+ if (base == NULL)
+ goto deny;
+
+- dir = g_file_get_path (base);
+- g_object_unref (base);
+-
+- /* FIXME portability */
+- cdir = canonicalize_file_name (dir);
+- g_free (dir);
+- if (cdir == NULL)
++ urifile = g_file_new_for_uri (uri);
++ if (urifile == NULL)
+ goto deny;
+
+- path = g_filename_from_uri (uri, NULL, NULL);
+- if (path == NULL)
+- goto deny;
+-
+- /* FIXME portability */
+- cpath = canonicalize_file_name (path);
+- g_free (path);
+-
+- if (cpath == NULL)
++ if (!g_file_has_prefix (urifile, base))
+ goto deny;
+
+- /* Now check that @cpath is below @cdir */
+- if (!g_str_has_prefix (cpath, cdir) ||
+- cpath[strlen (cdir)] != G_DIR_SEPARATOR)
+- goto deny;
++ g_object_unref (urifile);
++ g_object_unref (base);
+
+ /* Allow load! */
+
+ allow:
+ g_free (scheme);
+- free (cpath);
+- free (cdir);
+ return TRUE;
+
+ deny:
+ g_free (scheme);
+- free (cpath);
+- free (cdir);
++
++ if (urifile)
++ g_object_unref (urifile);
++
++ if (base)
++ g_object_unref (base);
+
+ g_set_error (error, G_IO_ERROR, G_IO_ERROR_PERMISSION_DENIED,
+ "File may not link to URI \"%s\"", uri);
diff --git a/run-test.rb b/run-test.rb
index 4174639..b5fcbbd 100755
--- a/run-test.rb
+++ b/run-test.rb
@@ -27,7 +27,12 @@ Pathname.glob((base_dir + "*").to_s) do |dir|
targets << dir
end
-ignored_modules = ["gstreamer", "webkit-gtk", "webkit-gtk2"]
+ignored_modules = [
+ "gstreamer",
+ "gstreamer-no-gi",
+ "webkit-gtk",
+ "webkit-gtk2",
+]
succeeded = true
targets.each do |target|
diff --git a/vte/COPYING.LIB b/vte/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/vte/COPYING.LIB
+++ b/vte/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/vte3/COPYING.LIB b/vte3/COPYING.LIB
index b1e3f5a..4362b49 100644
--- a/vte3/COPYING.LIB
+++ b/vte3/COPYING.LIB
@@ -1,8 +1,8 @@
- GNU LESSER GENERAL PUBLIC LICENSE
- Version 2.1, February 1999
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -10,7 +10,7 @@
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
- GNU LESSER GENERAL PUBLIC LICENSE
+ GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
-
+
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
- NO WARRANTY
+ NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
- END OF TERMS AND CONDITIONS
+ END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Also add information on how to contact you by electronic and paper mail.
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/vte3/README b/vte3/README
deleted file mode 100644
index ec86d35..0000000
--- a/vte3/README
+++ /dev/null
@@ -1,34 +0,0 @@
-Ruby/VTE
-========
-
-Ruby/VTE is a Ruby binding of VTE.
-
-Requirements
-------------
-
- Ruby: http://www.ruby-lang.org/
- VTE [*]: http://www.gnome.org/
- Ruby/GTK2: http://ruby-gnome2.sourceforge.net/
-
- [*]: 0.12.1 or later is required.
-
-Install
--------
-
- 0. install ruby and VTE.
- 1. ruby extconf.rb
- 2. make
- 3. su
- 4. make install
-
-Copying
--------
- Copyright (c) 2002-2006 Ruby-GNOME2 Project Team
-
- This program is free software.
- You can distribute/modify this program under the terms of
- the GNU LESSER GENERAL PUBLIC LICENSE Version 2.1.
-
-Project Website
----------------
- http://ruby-gnome2.sourceforge.jp/
diff --git a/gtk3/README.md b/vte3/README.md
similarity index 59%
copy from gtk3/README.md
copy to vte3/README.md
index 7320d27..bb06d76 100644
--- a/gtk3/README.md
+++ b/vte3/README.md
@@ -1,17 +1,16 @@
-# Ruby/GTK3
+# Ruby/VTE3
-Ruby/GTK3 is a Ruby binding of GTK 3.
+Ruby/VTE3 is a Ruby binding of VTE for use with GTK3.
## Requirements
-* Ruby/GLib2, Ruby/ATK, Ruby/Pango, Ruby/GdkPixbuf2 and Ruby/GTK3 in
+* Ruby/GTK3 in
[Ruby-GNOME2](http://ruby-gnome2.sourceforge.jp/)
-* [rcairo](https://github.com/rcairo/rcairo)
-* [GTK+](http://cairographics.org/) 3.4.2 or later
+* [VTE](https://live.gnome.org/Terminal/VTE)
## Install
- gem install gtk3
+ gem install vte3
## License
diff --git a/vte3/Rakefile b/vte3/Rakefile
index 5f07bda..585a1b9 100644
--- a/vte3/Rakefile
+++ b/vte3/Rakefile
@@ -40,7 +40,6 @@ package = GNOME2Package.new do |_package|
# :compression_method => "xz",
# }
]
- _package.required_ruby_version = ">= 1.9.2"
_package.post_install_message = "This library is experimental."
end
package.define_tasks
diff --git a/vte3/sample/terminal.rb b/vte3/sample/terminal.rb
index 5b46ed6..41fca44 100755
--- a/vte3/sample/terminal.rb
+++ b/vte3/sample/terminal.rb
@@ -14,7 +14,7 @@ window = Gtk::Window.new("Terminal sample")
window.signal_connect("destroy"){Gtk.main_quit}
terminal = Vte::Terminal.new
-terminal.set_font("Monospace 16", Vte::TerminalAntiAlias::FORCE_ENABLE)
+terminal.set_font("Monospace 16")
terminal.signal_connect("child-exited") do |widget|
Gtk.main_quit
end
diff --git a/webkit-gtk/Rakefile b/webkit-gtk/Rakefile
index 5370ab2..d6751a9 100644
--- a/webkit-gtk/Rakefile
+++ b/webkit-gtk/Rakefile
@@ -26,20 +26,115 @@ package_task = GNOME2::Rake::PackageTask.new do |package|
package.dependency.gem.development = ["test-unit-notify"]
package.windows.packages = []
package.windows.dependencies = []
- package.windows.build_dependencies = ["glib2", "gobject-introspection"]
+ package.windows.build_dependencies = [
+ "glib2",
+ "gobject-introspection",
+ "atk",
+ "pango",
+ "gdk_pixbuf2",
+ "gtk2",
+ "gdk3",
+ "gstreamer",
+ ]
+ package.windows.gobject_introspection_dependencies = [
+ "atk",
+ "gdk_pixbuf2",
+ "pango",
+ "gdk3",
+ "gstreamer",
+ ]
package.external_packages = [
- {
- :name => "webkitgtk",
- :download_base_url => "http://webkitgtk.org/releases",
- :label => "WebKitGTK+",
- :version => "2.0.0",
- :compression_method => "xz",
- :windows => {
- :configure_args => [
- "--enable-introspection",
- ],
- },
- },
+ # {
+ # :name => "libjpeg",
+ # :base_name => "jpeg-9",
+ # :archive_base_name => "jpegsrc.v9.tar.gz",
+ # :download_base_url => "http://www.ijg.org/files",
+ # :label => "libjpeg",
+ # :windows => {
+ # :configure_args => [],
+ # :built_file => "bin/libjpeg-9.dll",
+ # },
+ # },
+ # {
+ # :name => "libwebp",
+ # :download_base_url => "https://webp.googlecode.com/files",
+ # :label => "WebP",
+ # :version => "0.3.1",
+ # :windows => {
+ # :built_file => "bin/libwebp-4.dll",
+ # },
+ # },
+ # {
+ # :name => "sqlite-autoconf",
+ # :download_base_url => "http://www.sqlite.org/2013",
+ # :label => "SQLite",
+ # :version => "3080200",
+ # :compression_method => "gz",
+ # :windows => {
+ # :configure_args => [],
+ # :built_file => "bin/libsqlite3-0.dll",
+ # },
+ # },
+ # {
+ # :name => "libsoup",
+ # :download_site => :gnome,
+ # :label => "libsoup",
+ # :version => "2.45.3",
+ # :compression_method => "xz",
+ # :windows => {
+ # :configure_args => [
+ # "--enable-introspection",
+ # "--without-apache-httpd",
+ # ],
+ # :build_concurrently => false,
+ # :built_file => "bin/libsoup-2.4-1.dll",
+ # },
+ # },
+ # {
+ # :name => "libiconv",
+ # :label => "iconv",
+ # :version => "1.14",
+ # :download_base_url => "http://ftp.gnu.org/pub/gnu/libiconv",
+ # :compression_method => "gz",
+ # :windows => {
+ # :built_file => "bin/libiconv-2.dll",
+ # },
+ # },
+ # {
+ # :name => "libxslt",
+ # :version => "1.1.28",
+ # :download_base_url => "ftp://xmlsoft.org/libxslt",
+ # :compression_method => "gz",
+ # :windows => {
+ # :built_file => "bin/libxslt-1.dll",
+ # :configure_args => [
+ # "--without-python",
+ # ],
+ # :patches => [
+ # "libxslt-1.1.28-add-mkdir-fallback.diff",
+ # ],
+ # },
+ # },
+ # {
+ # :name => "webkitgtk",
+ # :download_base_url => "http://webkitgtk.org/releases",
+ # :label => "WebKitGTK+",
+ # :version => "2.2.3",
+ # :compression_method => "xz",
+ # :windows => {
+ # :configure_args => [
+ # "--enable-introspection",
+ # "--with-target=win32",
+ # "--disable-credential-storage",
+ # "--disable-geolocation",
+ # "--disable-webkit2",
+ # ],
+ # :patches => [
+ # "webkitgtk-2.2.3-buildable.diff",
+ # ],
+ # :need_autoreconf => true,
+ # },
+ # },
]
end
package_task.define
diff --git a/webkit-gtk/patches/libxslt-1.1.28-add-mkdir-fallback.diff b/webkit-gtk/patches/libxslt-1.1.28-add-mkdir-fallback.diff
new file mode 100644
index 0000000..456509a
--- /dev/null
+++ b/webkit-gtk/patches/libxslt-1.1.28-add-mkdir-fallback.diff
@@ -0,0 +1,11 @@
+diff -ru libxslt-1.1.28.orig/libxslt/security.c libxslt-1.1.28/libxslt/security.c
+--- libxslt-1.1.28.orig/libxslt/security.c 2012-09-12 14:58:14.000000000 +0900
++++ libxslt-1.1.28/libxslt/security.c 2013-12-28 19:25:13.615751850 +0900
+@@ -39,6 +39,7 @@
+ #ifndef INVALID_FILE_ATTRIBUTES
+ #define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
+ #endif
++#define mkdir(path, mode) mkdir(path)
+ #endif
+
+ #ifndef HAVE_STAT
diff --git a/webkit-gtk/patches/webkitgtk-2.2.3-buildable.diff b/webkit-gtk/patches/webkitgtk-2.2.3-buildable.diff
new file mode 100644
index 0000000..1f06baa
--- /dev/null
+++ b/webkit-gtk/patches/webkitgtk-2.2.3-buildable.diff
@@ -0,0 +1,63 @@
+diff -ru webkitgtk-2.2.3.orig/Source/WTF/wtf/Atomics.h webkitgtk-2.2.3/Source/WTF/wtf/Atomics.h
+--- webkitgtk-2.2.3.orig/Source/WTF/wtf/Atomics.h 2013-12-02 17:11:56.000000000 +0900
++++ webkitgtk-2.2.3/Source/WTF/wtf/Atomics.h 2013-12-28 21:57:07.695695396 +0900
+@@ -66,7 +66,7 @@
+ #if OS(WINCE)
+ #include <cmnintrin.h>
+ #else
+-extern "C" void _ReadWriteBarrier(void);
++#include <intrin.h>
+ #pragma intrinsic(_ReadWriteBarrier)
+ #endif
+ #include <windows.h>
+@@ -288,7 +288,7 @@
+ : "memory"
+ );
+ return result;
+-#elif OS(WINDOWS) && CPU(X86)
++#elif OS(WINDOWS) && CPU(X86) && 0
+ // FIXME: We need a 64-bit ASM implementation, but this cannot be inline due to
+ // Microsoft's decision to exclude it from the compiler.
+ bool result = false;
+diff -ru webkitgtk-2.2.3.orig/Source/WTF/wtf/Platform.h webkitgtk-2.2.3/Source/WTF/wtf/Platform.h
+--- webkitgtk-2.2.3.orig/Source/WTF/wtf/Platform.h 2013-12-02 17:11:56.000000000 +0900
++++ webkitgtk-2.2.3/Source/WTF/wtf/Platform.h 2013-12-28 19:43:58.588605855 +0900
+@@ -629,7 +629,7 @@
+ #define HAVE_ISDEBUGGERPRESENT 1
+
+ #if !PLATFORM(QT)
+-#include <WTF/WTFHeaderDetection.h>
++/* #include <WTF/WTFHeaderDetection.h> */
+ #endif
+
+ #endif
+diff -ru webkitgtk-2.2.3.orig/Source/WTF/wtf/threads/BinarySemaphore.cpp webkitgtk-2.2.3/Source/WTF/wtf/threads/BinarySemaphore.cpp
+--- webkitgtk-2.2.3.orig/Source/WTF/wtf/threads/BinarySemaphore.cpp 2013-08-04 01:10:38.000000000 +0900
++++ webkitgtk-2.2.3/Source/WTF/wtf/threads/BinarySemaphore.cpp 2013-12-28 21:59:06.784816965 +0900
+@@ -26,7 +26,7 @@
+ #include "config.h"
+ #include "BinarySemaphore.h"
+
+-#if !PLATFORM(WIN)
++#if !OS(WINDOWS)
+
+ namespace WTF {
+
+@@ -65,4 +65,4 @@
+
+ } // namespace WTF
+
+-#endif // !PLATFORM(WIN)
++#endif // !OS(WINDOWS)
+diff -ru webkitgtk-2.2.3.orig/Source/autotools/FindDependencies.m4 webkitgtk-2.2.3/Source/autotools/FindDependencies.m4
+--- webkitgtk-2.2.3.orig/Source/autotools/FindDependencies.m4 2013-12-02 17:11:58.000000000 +0900
++++ webkitgtk-2.2.3/Source/autotools/FindDependencies.m4 2013-12-28 22:17:46.537935727 +0900
+@@ -110,7 +110,7 @@
+ ;;
+ *-*-mingw*)
+ UNICODE_CFLAGS=""
+- UNICODE_LIBS="-licui18n -licuuc"
++ UNICODE_LIBS="-licuuc"
+ AC_CHECK_HEADERS([unicode/uchar.h], [], [AC_MSG_ERROR([Could not find ICU headers.])])
+ ;;
+ *)
diff --git a/webkit-gtk/test/run-test.rb b/webkit-gtk/test/run-test.rb
index 594c746..ea435d4 100755
--- a/webkit-gtk/test/run-test.rb
+++ b/webkit-gtk/test/run-test.rb
@@ -23,6 +23,7 @@ glib_base = File.join(ruby_gnome2_base, "glib2")
gio_base = File.join(ruby_gnome2_base, "gio2")
atk_base = File.join(ruby_gnome2_base, "atk")
pango_base = File.join(ruby_gnome2_base, "pango")
+gdk_pixbuf_base = File.join(ruby_gnome2_base, "gdk_pixbuf2")
gdk3_base = File.join(ruby_gnome2_base, "gdk3")
gtk3_base = File.join(ruby_gnome2_base, "gtk3")
gobject_introspection_base = File.join(ruby_gnome2_base, "gobject-introspection")
@@ -33,6 +34,7 @@ modules = [
[gio_base, "gio2"],
[atk_base, "atk"],
[pango_base, "pango"],
+ [gdk_pixbuf_base, "gdk_pixbuf2"],
[gdk3_base, "gdk3"],
[gtk3_base, "gtk3"],
[gobject_introspection_base, "gobject-introspection"],
diff --git a/webkit-gtk2/test/run-test.rb b/webkit-gtk2/test/run-test.rb
index 23ce7b9..589845c 100755
--- a/webkit-gtk2/test/run-test.rb
+++ b/webkit-gtk2/test/run-test.rb
@@ -23,6 +23,7 @@ glib_base = File.join(ruby_gnome2_base, "glib2")
gio_base = File.join(ruby_gnome2_base, "gio2")
atk_base = File.join(ruby_gnome2_base, "atk")
pango_base = File.join(ruby_gnome2_base, "pango")
+gdk_pixbuf_base = File.join(ruby_gnome2_base, "gdk_pixbuf2")
gtk2_base = File.join(ruby_gnome2_base, "gtk2")
gobject_introspection_base = File.join(ruby_gnome2_base, "gobject-introspection")
webkit_gtk2_base = File.join(ruby_gnome2_base, "webkit-gtk2")
@@ -32,6 +33,7 @@ modules = [
[gio_base, "gio2"],
[atk_base, "atk"],
[pango_base, "pango"],
+ [gdk_pixbuf_base, "gdk_pixbuf2"],
[gtk2_base, "gtk2"],
[gobject_introspection_base, "gobject-introspection"],
[webkit_gtk2_base, "webkit-gtk2"],
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/ruby-gnome2.git
More information about the Pkg-ruby-extras-commits
mailing list