Please enter the commit message for your changes. Lines starting

with '' will be ignored, and an empty message aborts the commit.
 On branch master
 Changes to be committed:
   (use "git reset HEAD <file>..." to unstage)

	new file:   lib/ruby-gtk2-2.0.2/AUTHORS
	new file:   lib/ruby-gtk2-2.0.2/COPYING.LIB
	new file:   lib/ruby-gtk2-2.0.2/NEWS
	new file:   lib/ruby-gtk2-2.0.2/README
	new file:   lib/ruby-gtk2-2.0.2/Rakefile
	new file:   lib/ruby-gtk2-2.0.2/atk/COPYING.LIB
	new file:   lib/ruby-gtk2-2.0.2/atk/README
	new file:   lib/ruby-gtk2-2.0.2/atk/Rakefile
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/atk.def
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/depend
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatk.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatk.h
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkaction.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkcomponent.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkconversions.h
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkdocument.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkeditabletext.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkgobjectaccessible.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkhyperlink.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkhypertext.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkimage.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkimplementor.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatknoopobject.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatknoopobjectfactory.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkobject.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkobjectfactory.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkobjectrole.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkprivate.h
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkregistry.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkrelation.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkrelationset.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkrelationtype.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkselection.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkstate.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkstateset.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkstreamablecontent.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatktable.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatktext.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatktextattribute.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatktextrange.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatktextrectangle.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkutil.c
	new file:   lib/ruby-gtk2-2.0.2/atk/ext/atk/rbatkvalue.c
	new file:   lib/ruby-gtk2-2.0.2/atk/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/atk/lib/atk.rb
	new file:   lib/ruby-gtk2-2.0.2/atk/test/atk-test-utils.rb
	new file:   lib/ruby-gtk2-2.0.2/atk/test/run-test.rb
	new file:   lib/ruby-gtk2-2.0.2/atk/test/test-text-rectangle.rb
	new file:   lib/ruby-gtk2-2.0.2/exec_make.rb
	new file:   lib/ruby-gtk2-2.0.2/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/COPYING.LIB
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/README
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/Rakefile
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/ext/gdk_pixbuf2/depend
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/ext/gdk_pixbuf2/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/ext/gdk_pixbuf2/gdk_pixbuf2.def
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/ext/gdk_pixbuf2/rbgdk-pixbuf-format.c
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/ext/gdk_pixbuf2/rbgdk-pixbuf-loader.c
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/ext/gdk_pixbuf2/rbgdk-pixbuf.c
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/ext/gdk_pixbuf2/rbgdk-pixbuf.h
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/ext/gdk_pixbuf2/rbgdk-pixbuf2conversions.h
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/ext/gdk_pixbuf2/rbgdk-pixbuf2private.h
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/ext/gdk_pixbuf2/rbgdk-pixbufanimation.c
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/ext/gdk_pixbuf2/rbgdk-pixbufanimationiter.c
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/ext/gdk_pixbuf2/rbgdk-pixbufsimpleanim.c
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/ext/gdk_pixbuf2/rbgdk-pixdata.c
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/lib/gdk_pixbuf2.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/anim.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/composite.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/flip.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/floppybuddy.gif
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/format.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/gnome-foot.png
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/inline.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/loader.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/pixdata.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/rotate.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/save.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/scale.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/simpleanim.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/utils.rb
	new file:   lib/ruby-gtk2-2.0.2/gdk_pixbuf2/sample/xpm.rb
	new file:   lib/ruby-gtk2-2.0.2/gio2/README
	new file:   lib/ruby-gtk2-2.0.2/gio2/Rakefile
	new file:   lib/ruby-gtk2-2.0.2/gio2/TODO
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/depend
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/gio2.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/gio2.def
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/gio2.h
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgio.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgio2.h
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgio2conversions.h
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgio2private.h
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioappinfo.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioapplaunchcontext.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioasyncinitable.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioasyncresult.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiobufferedinputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiobufferedoutputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiocancellable.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiocharsetconverter.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiocontenttype.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioconverter.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioconverterinputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioconverteroutputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiodatainputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiodataoutputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiodesktopappinfo.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiodrive.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioemblem.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioemblemedicon.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofile.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofileattribute.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofileattributeinfo.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofileattributeinfolist.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofileattributematcher.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofiledescriptorbased.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofileenumerator.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofileicon.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofileinfo.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofileinputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofileiostream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofilemonitor.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofilenamecompleter.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofileoutputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofilterinputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiofilteroutputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioicon.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioinetaddress.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioinetsocketaddress.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioinitable.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioinputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioio.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioiomodule.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioiomodules.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioioscheduler.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioioschedulerjob.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioiostream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioloadableicon.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiomemoryinputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiomemoryoutputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiomount.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiomountoperation.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgionetworkaddress.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgionetworkservice.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiooutputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioresolver.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgioseekable.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiosimpleasyncresult.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiosocket.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiosocketaddress.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiosocketaddressenumerator.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiosocketclient.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiosocketconnectable.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiosocketconnection.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiosocketconnectionfactory.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiosocketcontrolmessage.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiosocketlistener.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiosocketservice.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiosrvtarget.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiotcpconnection.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiothemedicon.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiothreadedsocketservice.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiotlscertificate.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiounixconnection.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiounixfdlist.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiounixfdmessage.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiounixinputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiounixmount.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiounixmountmonitor.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiounixmountpoint.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiounixmountpoints.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiounixmounts.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiounixoutputstream.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiounixsocketaddress.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiovfs.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiovolume.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiovolumemonitor.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiozlibcompressor.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/rbgiozlibdecompressor.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/ext/gio2/util.c
	new file:   lib/ruby-gtk2-2.0.2/gio2/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/gio2/lib/gio2.rb
	new file:   lib/ruby-gtk2-2.0.2/gio2/lib/gio2/deprecated.rb
	new file:   lib/ruby-gtk2-2.0.2/gio2/test/load-test.rb
	new file:   lib/ruby-gtk2-2.0.2/gio2/test/test_bufferedinputstream.rb
	new file:   lib/ruby-gtk2-2.0.2/gio2/test/test_charsetconverter.rb
	new file:   lib/ruby-gtk2-2.0.2/gio2/test/test_datainputstream.rb
	new file:   lib/ruby-gtk2-2.0.2/gio2/test/test_fileenumerator.rb
	new file:   lib/ruby-gtk2-2.0.2/gio2/test/test_filemonitor.rb
	new file:   lib/ruby-gtk2-2.0.2/gio2/test/test_inetaddress.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/COPYING.LIB
	new file:   lib/ruby-gtk2-2.0.2/glib2/README
	new file:   lib/ruby-gtk2-2.0.2/glib2/Rakefile
	new file:   lib/ruby-gtk2-2.0.2/glib2/TODO
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/depend
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/glib2.def
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgcompat.h
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib.h
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib2conversions.h
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_bookmarkfile.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_convert.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_error.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_fileutils.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_i18n.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_int64.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_io_constants.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_iochannel.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_iochannel_win32_socket.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_iochannelerror.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_keyfile.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_maincontext.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_mainloop.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_messages.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_pollfd.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_shell.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_shellerror.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_source.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_spawn.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_spawnerror.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_threads.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_timer.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_ucs4.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_unichar.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_unicode.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_utf16.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_utf8.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_utils.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglib_win32.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglibdeprecated.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbglibdeprecated.h
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_boxed.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_closure.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_convert.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_enumflags.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_enums.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_flags.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_object.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_param.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_paramspecs.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_signal.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_strv.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_type.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_typeinstance.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_typeinterface.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_typemodule.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_typeplugin.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_value.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_valuearray.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobj_valuetypes.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobject.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgobject.h
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgprivate.h
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgutil.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgutil.h
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgutil_callback.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgutil_list.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgutil_list.h
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgutildeprecated.c
	new file:   lib/ruby-gtk2-2.0.2/glib2/ext/glib2/rbgutildeprecated.h
	new file:   lib/ruby-gtk2-2.0.2/glib2/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/lib/glib-mkenums.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/lib/glib2.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/lib/glib2/deprecatable.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/lib/gnome2-raketask.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/lib/gnome2/rake/external-package.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/lib/gnome2/rake/native-binary-build-task.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/lib/gnome2/rake/package-task.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/lib/gnome2/rake/package.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/lib/gnome2/rake/source-download-task.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/lib/gnome2/rake/win32-binary-build-task.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/lib/gnome2/rake/win32-binary-download-task.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/lib/mkmf-gnome2.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/sample/bookmarkfile.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/sample/idle.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/sample/iochannel.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/sample/keyfile.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/sample/shell.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/sample/spawn.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/sample/timeout.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/sample/timeout2.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/sample/timer.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/sample/type-register.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/sample/type-register2.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/sample/utils.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/glib-test-init.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/glib-test-utils.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/run-test.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_enum.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_file_utils.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_flags.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_glib2.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_iochannel.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_key_file.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_mkenums.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_poll_fd.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_signal.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_source.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_spawn.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_timeout.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_unicode.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_utils.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_value.rb
	new file:   lib/ruby-gtk2-2.0.2/glib2/test/test_win32.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/COPYING.LIB
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/README.md
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/Rakefile
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/depend
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/gobject_introspection.def
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-arg-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-argument.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-base-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-boxed-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-callable-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-callback-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-constant-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-constructor-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-conversions.h
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-enum-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-field-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-flags-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-function-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-interface-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-loader.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-method-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-object-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-private.h
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-property-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-registered-type-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-repository.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-signal-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-struct-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-type-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-type-tag.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-types.h
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-union-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-unresolved-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-value-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gi-vfunc-info.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gobject-introspection.c
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/ext/gobject-introspection/rb-gobject-introspection.h
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/lib/gobject-introspection.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/lib/gobject-introspection/boxed-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/lib/gobject-introspection/callable-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/lib/gobject-introspection/collection-reader.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/lib/gobject-introspection/interface-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/lib/gobject-introspection/loader.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/lib/gobject-introspection/object-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/lib/gobject-introspection/repository.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/lib/gobject-introspection/struct-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/lib/gobject-introspection/union-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/patches/0001-Support-external-g-ir-scanner.patch
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/patches/cross-g-ir-scanner.diff
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/gobject-introspection-test-utils.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/run-test.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-arg-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-base-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-boxed-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-callable-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-callback-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-constant-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-enum-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-field-type.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-flags-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-function-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-interface-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-loader.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-object-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-property-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-registered-type-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-repository.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-signal-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-struct-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-type-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-type-tag.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-union-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-value-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gobject-introspection/test/test-vfunc-info.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/COPYING.LIB
	new file:   lib/ruby-gtk2-2.0.2/gtk2/README
	new file:   lib/ruby-gtk2-2.0.2/gtk2/Rakefile
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/depend
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/global.h
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/gtk2.def
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/init.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdk.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdk.h
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkatom.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkcairo.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkcolor.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkcolormap.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkconst.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkconversions.h
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkcursor.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkdevice.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkdisplay.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkdisplaymanager.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkdragcontext.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkdraw.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkevent.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkgc.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkgeometry.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkimage.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkinput.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkkeymap.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkkeyval.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkpango.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkpangorenderer.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkpixbuf.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkpixmap.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkproperty.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkrectangle.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkregion.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkrgb.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkscreen.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkselection.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkthreads.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdktimecoord.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkvisual.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkwindow.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkwindowattr.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgdkx11.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtk.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtk.h
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkaboutdialog.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkaccelerator.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkaccelgroup.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkaccelgroupentry.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkaccelkey.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkaccellabel.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkaccelmap.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkaccessible.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkaction.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkactiongroup.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkadjustment.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkalignment.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkallocation.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkarrow.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkaspectframe.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkassistant.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkbbox.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkbin.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkbindingset.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkborder.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkbox.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkbuildable.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkbuilder.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkbutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcalendar.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcelleditable.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcelllayout.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcellrenderer.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcellrendereraccel.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcellrenderercombo.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcellrendererpixbuf.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcellrendererprogress.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcellrendererspin.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcellrendererspinner.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcellrenderertext.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcellrenderertoggle.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcellview.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcheckbutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcheckmenuitem.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkclipboard.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcolorbutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcolorsel.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcolorselectiondialog.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcombo.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcombobox.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcomboboxentry.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkconst.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcontainer.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkconversions.h
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkcurve.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkdialog.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkdrag.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkdrawingarea.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkeditable.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkentry.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkentrycompletion.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkeventbox.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkexpander.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkfilechooser.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkfilechooserbutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkfilechooserdialog.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkfilechooserwidget.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkfilefilter.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkfilesel.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkfilesystemerror.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkfixed.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkfontbutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkfontselection.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkfontselectiondialog.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkframe.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkgamma.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkhandlebox.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkhbbox.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkhbox.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkhpaned.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkhruler.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkhscale.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkhscrollbar.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkhseparator.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkiconfactory.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkiconinfo.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkiconset.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkiconsize.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkiconsource.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkicontheme.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkiconview.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkimage.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkimagemenuitem.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkimcontext.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkimcontextsimple.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkimmulticontext.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkinfobar.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkinputdialog.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkinvisible.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkitem.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkitemfactory.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtklabel.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtklayout.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtklinkbutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkliststore.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkmacros.h
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkmenu.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkmenubar.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkmenuitem.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkmenushell.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkmenutoolbutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkmessagedialog.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkmisc.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtknotebook.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkobject.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkoptionmenu.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkpagesetup.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkpagesetupunixdialog.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkpaned.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkpapersize.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkplug.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkprintcontext.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkprinter.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkprintjob.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkprintoperation.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkprintoperationpreview.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkprintsettings.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkprintunixdialog.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkprogress.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkprogressbar.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkradioaction.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkradiobutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkradiomenuitem.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkradiotoolbutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkrange.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkrc.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkrcstyle.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkrecentaction.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkrecentchooser.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkrecentchooserdialog.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkrecentchoosermenu.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkrecentchooserwidget.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkrecentdata.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkrecentfilter.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkrecentfilterinfo.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkrecentinfo.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkrecentmanager.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkruler.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkscale.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkscalebutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkscrollbar.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkscrolledwindow.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkselection.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkselectiondata.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkseparator.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkseparatormenuitem.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkseparatortoolitem.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtksettings.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtksizegroup.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtksocket.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkspinbutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkspinner.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkstatusbar.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkstatusicon.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkstock.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkstyle.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktable.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktargetlist.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktearoffmenuitem.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktextappearance.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktextattributes.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktextbuffer.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktextchild.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktextiter.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktextmark.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktexttag.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktexttagtable.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktextview.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktoggleaction.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktogglebutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktoggletoolbutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktoolbar.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktoolbutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktoolitem.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktooltip.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktooltips.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktreedragdest.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktreedragsource.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktreeiter.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktreemodel.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktreemodelfilter.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktreemodelsort.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktreepath.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktreerowreference.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktreeselection.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktreesortable.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktreestore.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktreeview.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtktreeviewcolumn.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkuimanager.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkvbbox.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkvbox.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkviewport.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkvolumebutton.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkvpaned.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkvruler.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkvscale.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkvscrollbar.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkvseparator.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkwidget.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkwindow.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/ext/gtk2/rbgtkwindowgroup.c
	new file:   lib/ruby-gtk2-2.0.2/gtk2/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/lib/gtk2.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/lib/gtk2/base.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/patches/gtk+-2.24.14-add-missing-exeext.diff
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/README
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/alphatest.png
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/apple-red.png
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/appwindow.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/background.jpg
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/builder.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/button_box.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-arc-negative.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-arc.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-clip-image.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-clip-rectangle.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-clip.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-curve-rectangle.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-curve-to.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-dash.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-fill-and-stroke.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-fill-and-stroke2.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-gradient.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-image-pattern.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-image.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-line-cap.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-line-join.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-long-lines.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-operator.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-path.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-pattern-fill.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-self-intersect.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-text-align-center.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-text-extents.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/cairo-text.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/changedisplay.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/clipboard.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/colorsel.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/common.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/demo.ui
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/dialog.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/drawingarea.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/editable_cells.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/entry_completion.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/expander.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/floppybuddy.gif
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/gnome-applets.png
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/gnome-calendar.png
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/gnome-foot.png
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/gnome-fs-directory.png
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/gnome-fs-regular.png
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/gnome-gimp.png
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/gnome-gmush.png
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/gnome-gsame.png
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/gnu-keys.png
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/gtk-logo-rgb.gif
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/hypertext.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/iconview.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/images.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/item_factory.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/list_store.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/main.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/menus.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/panes.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/pixbufs.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/printing.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/rotated_text.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/ruby-gnome2-logo.png
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/sizegroup.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/stock_browser.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/textview.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/gtk-demo/tree_store.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/aboutdialog.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/aboutdialog2.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/alpha-demo.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/assistant.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/bindings.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/button.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/button2.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/buttonbox.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/cairo-pong.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/calendar.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/checkbutton.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/colorselection.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/combo_check.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/combobox.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/composited-windows.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/cursor.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/dialog.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/dialog2.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/dnd.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/dndtreeview.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/drag-move.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/drawing.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/entry.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/entrycompletion.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/expander.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/filechooser.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/fileselection.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/frame.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/gc.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/gdkscreen.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/gnome-logo-icon.png
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/helloworld.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/iconview.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/image.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/infobar.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/itemfactory.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/itemfactory2.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/keyboard_grab.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/label.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/linkbutton.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/listview.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/menu.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/misc_button.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/mouse-gesture.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/pangorenderer.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/pointer_grab.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/print.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/properties.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/radiobutton.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/recentchooserdialog.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/rgtk+cairo.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/scalebutton.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/settings.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/statusicon.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/stock.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/style_property.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/style_property.rc
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/t-gtkplug.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/t-gtksocket.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/test.xpm
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/textbuffer_serialize.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/threads.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/to_drawable.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/togglebutton.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/toolbar.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/tooltips.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/tree_combo.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/tree_progress.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/treemodelfilter.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/treeview.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/uimanager.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/uimanager2.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/uimanager2.xml
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/window.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/misc/xbm_cursor.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/3DRings.xpm
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/FilesQueue.xpm
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/Modeller.xpm
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/README
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/button.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/buttonbox.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/check-n.xpm
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/check-y.xpm
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/checkbutton.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/circles.xbm
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/colorselect.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/dialog.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/entry.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/filesel.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/fontselection.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/gammacurve.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/labels.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/layout.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/marble.xpm
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/menu.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/notebook.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/pixmap.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/progressbar.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/radiobutton.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/range.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/reparent.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/rulers.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/sample.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/savedposition.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/scrolledwindow.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/shapedwindow.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/spinbutton.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/statusbar.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/test.xpm
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/testgtk.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/testgtkrc
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/testgtkrc2
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/togglebutton.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/toolbar.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/tooltips.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/sample/testgtk/wmhints.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/gtk-test-utils.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/run-test.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gc.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gdk.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gdk_color.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gdk_display.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gdk_event.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gdk_gc.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gdk_geometry.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gdk_keymap.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gdk_pango.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gdk_rectangle.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gdk_selection_data.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gdk_window.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gdk_window_attribute.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_about_dialog.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_accel_group_entry.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_accel_key.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_allocation.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_border.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_buildable.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_builder.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_entry.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_icon_theme.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_image.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_list_store.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_menu_item.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_rc_style.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_recent_data.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_recent_filter_info.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_tree_path.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_unix_print.rb
	new file:   lib/ruby-gtk2-2.0.2/gtk2/test/test_gtk_widget.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/COPYING.LIB
	new file:   lib/ruby-gtk2-2.0.2/pango/README
	new file:   lib/ruby-gtk2-2.0.2/pango/Rakefile
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/depend
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/pango.def
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpango.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpango.h
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangoanalysis.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangoattribute.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangoattriterator.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangoattrlist.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangocairo.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangocairocontext.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangocolor.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangocontext.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangoconversions.h
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangocoverage.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangoengine.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangofont.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangofontdescription.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangofontface.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangofontfamily.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangofontmap.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangofontmetrics.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangofontset.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangofontsetsimple.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangoglyphinfo.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangoglyphitem.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangoglyphstring.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangogravity.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangoitem.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangolanguage.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangolayout.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangolayoutiter.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangolayoutline.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangologattr.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangomatrix.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangoprivate.h
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangorectangle.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangorenderer.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangoscript.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangoscriptiter.c
	new file:   lib/ruby-gtk2-2.0.2/pango/ext/pango/rbpangotabarray.c
	new file:   lib/ruby-gtk2-2.0.2/pango/extconf.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/lib/pango.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/patches/harfbuzz-0.9.17-disable-uniscribe.diff
	new file:   lib/ruby-gtk2-2.0.2/pango/patches/pango-1.34.0-enable-fc-font.diff
	new file:   lib/ruby-gtk2-2.0.2/pango/sample/attribute.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/sample/break.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/sample/gdk_layout.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/sample/glyphstring.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/sample/item.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/sample/label.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/sample/layout.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/sample/pango_cairo.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/sample/parse.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/sample/sample.txt
	new file:   lib/ruby-gtk2-2.0.2/pango/sample/script.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/test/pango-test-utils.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/test/run-test.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/test/test-analysis.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/test/test-attribute.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/test/test-color.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/test/test-language.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/test/test-log-attr.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/test/test-matrix.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/test/test-rectangle.rb
	new file:   lib/ruby-gtk2-2.0.2/pango/test/test_layout.rb
	new file:   lib/ruby-gtk2-2.0.2/run-test.rb
This commit is contained in:
Quentin
2013-12-17 11:20:08 +01:00
parent 2e835fac51
commit 26e8968796
929 changed files with 121236 additions and 0 deletions

View File

@ -0,0 +1,2 @@
EXPORTS
Init_atk

View File

@ -0,0 +1,11 @@
install-so: install-headers
install-headers:
$(INSTALL_DATA) $(srcdir)/rbatk.h $(RUBYARCHDIR)
$(INSTALL_DATA) rbatkversion.h $(RUBYARCHDIR)
install: install-pc
install-pc:
if test -n "$(pkgconfigdir)"; then \
$(MAKEDIRS) $(pkgconfigdir); \
$(INSTALL_DATA) ruby-atk.pc $(pkgconfigdir); \
fi

View File

@ -0,0 +1,81 @@
=begin
extconf.rb for Ruby/Atk extention library
=end
require 'pathname'
base_dir = Pathname(__FILE__).dirname.parent.parent.expand_path
top_dir = base_dir.parent
top_build_dir = Pathname(".").parent.parent.parent.expand_path
mkmf_gnome2_dir = top_dir + "glib2" + 'lib'
version_suffix = ""
unless mkmf_gnome2_dir.exist?
if /(-\d+\.\d+\.\d+)(?:\.\d+)?\z/ =~ base_dir.basename.to_s
version_suffix = $1
mkmf_gnome2_dir = top_dir + "glib2#{version_suffix}" + 'lib'
end
end
$LOAD_PATH.unshift(mkmf_gnome2_dir.to_s)
module_name = "atk"
package_id = "atk"
begin
require 'mkmf-gnome2'
rescue LoadError
require 'rubygems'
gem 'glib2'
require 'mkmf-gnome2'
end
ruby_header = 'ruby.h'
have_func 'rb_errinfo', ruby_header
["glib2"].each do |package|
directory = "#{package}#{version_suffix}"
build_dir = "#{directory}/tmp/#{RUBY_PLATFORM}/#{package}/#{RUBY_VERSION}"
add_depend_package(package, "#{directory}/ext/#{package}",
top_dir.to_s,
:top_build_dir => top_build_dir.to_s,
:target_build_dir => build_dir)
end
setup_win32(module_name, base_dir)
unless required_pkg_config_package(package_id,
:debian => "libatk1.0-dev",
:redhat => "atk-devel",
:homebrew => "atk",
:macports => "atk")
exit(false)
end
atk_header = "atk/atk.h"
have_func('atk_action_get_localized_name', atk_header)
have_func('atk_hyperlink_is_inline', atk_header)
have_func('atk_object_add_relationship', atk_header)
have_func('atk_object_remove_relationship', atk_header)
have_func('atk_component_get_layer', atk_header)
have_func('atk_component_get_mdi_zorder', atk_header)
have_func('atk_hyperlink_is_selected_link', atk_header)
have_func('atk_text_get_bounded_ranges', atk_header)
have_func('atk_role_get_localized_name', atk_header)
have_func('atk_text_clip_type_get_type', atk_header)
have_func('atk_text_free_ranges', atk_header)
make_version_header("ATK", package_id, ".")
create_pkg_config_file("Ruby/ATK", package_id)
$defs << " -DRUBY_ATK_COMPILATION"
create_makefile(module_name)
pkg_config_dir = with_config("pkg-config-dir")
if pkg_config_dir.is_a?(String)
File.open("Makefile", "ab") do |makefile|
makefile.puts
makefile.puts("pkgconfigdir=#{pkg_config_dir}")
end
end

View File

@ -0,0 +1,66 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003-2005 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE mAtk
VALUE mAtk;
extern void Init_atk(void);
void
Init_atk(void)
{
RG_TARGET_NAMESPACE = rb_define_module("Atk");
rb_define_const(RG_TARGET_NAMESPACE, "BUILD_VERSION",
rb_ary_new3(3,
INT2FIX(ATK_MAJOR_VERSION),
INT2FIX(ATK_MINOR_VERSION),
INT2FIX(ATK_MICRO_VERSION)));
Init_atk_action(RG_TARGET_NAMESPACE);
Init_atk_component(RG_TARGET_NAMESPACE);
Init_atk_document(RG_TARGET_NAMESPACE);
Init_atk_editabletext(RG_TARGET_NAMESPACE);
Init_atk_gobjectaccessible(RG_TARGET_NAMESPACE);
Init_atk_hyperlink(RG_TARGET_NAMESPACE);
Init_atk_hypertext(RG_TARGET_NAMESPACE);
Init_atk_image(RG_TARGET_NAMESPACE);
Init_atk_implementor(RG_TARGET_NAMESPACE);
Init_atk_noopobject(RG_TARGET_NAMESPACE);
Init_atk_noopobjectfactory(RG_TARGET_NAMESPACE);
Init_atk_object(RG_TARGET_NAMESPACE);
Init_atk_objectfactory(RG_TARGET_NAMESPACE);
Init_atk_registry(RG_TARGET_NAMESPACE);
Init_atk_relation(RG_TARGET_NAMESPACE);
Init_atk_relation_set(RG_TARGET_NAMESPACE);
Init_atk_selection(RG_TARGET_NAMESPACE);
Init_atk_state(RG_TARGET_NAMESPACE);
Init_atk_state_set(RG_TARGET_NAMESPACE);
Init_atk_streamable_content(RG_TARGET_NAMESPACE);
Init_atk_table(RG_TARGET_NAMESPACE);
Init_atk_text(RG_TARGET_NAMESPACE);
Init_atk_text_range(RG_TARGET_NAMESPACE);
Init_atk_text_rectangle(RG_TARGET_NAMESPACE);
Init_atk_util(RG_TARGET_NAMESPACE);
Init_atk_value(RG_TARGET_NAMESPACE);
}

View File

@ -0,0 +1,47 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003,2004 Masao Mutoh
*
* 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 "ruby.h"
#include <atk/atk.h>
#include <atk/atk-enum-types.h>
#include <atk/atknoopobject.h>
#include <atk/atknoopobjectfactory.h>
#include "rbgobject.h"
#include "rbatkversion.h"
#include "rbatkconversions.h"
#if defined(G_PLATFORM_WIN32) && !defined(RUBY_ATK_STATIC_COMPILATION)
# ifdef RUBY_ATK_COMPILATION
# define RUBY_ATK_VAR __declspec(dllexport)
# else
# define RUBY_ATK_VAR extern __declspec(dllimport)
# endif
#else
# define RUBY_ATK_VAR extern
#endif
extern GType atk_text_rectangle_get_type(void);
extern GType atk_text_range_get_type(void);
RUBY_ATK_VAR VALUE mAtk;
#define ATK_TYPE_TEXT_RECTANGLE (atk_text_rectangle_get_type())
#define ATK_TYPE_TEXT_RANGE (atk_text_range_get_type())

View File

@ -0,0 +1,85 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2004 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE mAction
#define _SELF(s) (RVAL2ATKACTION(s))
static VALUE
rg_do_action(VALUE self, VALUE i)
{
return CBOOL2RVAL(atk_action_do_action(_SELF(self), NUM2INT(i)));
}
static VALUE
rg_n_actions(VALUE self)
{
return INT2NUM(atk_action_get_n_actions(_SELF(self)));
}
static VALUE
rg_get_description(VALUE self, VALUE i)
{
return CSTR2RVAL(atk_action_get_description(_SELF(self), NUM2INT(i)));
}
static VALUE
rg_get_name(VALUE self, VALUE i)
{
return CSTR2RVAL(atk_action_get_name(_SELF(self), NUM2INT(i)));
}
#ifdef HAVE_ATK_ACTION_GET_LOCALIZED_NAME
static VALUE
rg_get_localized_name(VALUE self, VALUE i)
{
return CSTR2RVAL(atk_action_get_localized_name(_SELF(self), NUM2INT(i)));
}
#endif
static VALUE
rg_get_keybinding(VALUE self, VALUE i)
{
return CSTR2RVAL(atk_action_get_keybinding(_SELF(self), NUM2INT(i)));
}
static VALUE
rg_set_description(VALUE self, VALUE i, VALUE desc)
{
return CBOOL2RVAL(atk_action_set_description(_SELF(self), NUM2INT(i), RVAL2CSTR(desc)));
}
void
Init_atk_action(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(ATK_TYPE_ACTION, "Action", mAtk);
RG_DEF_METHOD(do_action, 1);
RG_DEF_METHOD(n_actions, 0);
RG_DEF_METHOD(get_description, 1);
RG_DEF_METHOD(get_name, 1);
#ifdef HAVE_ATK_ACTION_GET_LOCALIZED_NAME
RG_DEF_METHOD(get_localized_name, 1);
#endif
RG_DEF_METHOD(get_keybinding, 1);
RG_DEF_METHOD(set_description, 2);
}

View File

@ -0,0 +1,179 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2004 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE mComponent
#define _SELF(s) (RVAL2ATKCOMPONENT(s))
/*
static void
focus_handler(AtkObject *aobj, gboolean bool)
{
VALUE ret = rb_funcall((VALUE)func, id_call, 2,
GOBJ2RVAL(aobj), CBOOL2RVAL(bool));
}
static VALUE
rg_add_focus_handler(VALUE self)
{
VALUE func = rb_block_proc();
G_RELATIVE(self, func);
return UINT2NUM(atk_component_add_focus_handler(_SELF(self), focus_handler));
}
*/
static VALUE
rg_contains_p(VALUE self, VALUE x, VALUE y, VALUE coord_type)
{
return CBOOL2RVAL(atk_component_contains(_SELF(self),
NUM2INT(x), NUM2INT(y),
RVAL2ATKCOORDTYPE(coord_type)));
}
static VALUE
rg_get_extents(VALUE self, VALUE coord_type)
{
gint x, y, width, height;
atk_component_get_extents(_SELF(self), &x, &y, &width, &height,
RVAL2ATKCOORDTYPE(coord_type));
return rb_ary_new3(4, INT2NUM(x), INT2NUM(y), INT2NUM(width), INT2NUM(height));
}
#ifdef HAVE_ATK_COMPONENT_GET_LAYER
static VALUE
rg_layer(VALUE self)
{
return ATKLAYER2RVAL(atk_component_get_layer(_SELF(self)));
}
#endif
#ifdef HAVE_ATK_COMPONENT_GET_MDI_ZORDER
static VALUE
rg_mdi_zorder(VALUE self)
{
return INT2NUM(atk_component_get_mdi_zorder(_SELF(self)));
}
#endif
static VALUE
rg_position(VALUE self, VALUE coord_type)
{
gint x, y;
atk_component_get_position(_SELF(self), &x, &y,
RVAL2ATKCOORDTYPE(coord_type));
return rb_assoc_new(INT2NUM(x), INT2NUM(y));
}
static VALUE
rg_size(VALUE self)
{
gint width, height;
atk_component_get_size(_SELF(self), &width, &height);
return rb_assoc_new(INT2NUM(width), INT2NUM(height));
}
static VALUE
rg_grab_focus(VALUE self)
{
return CBOOL2RVAL(atk_component_grab_focus(_SELF(self)));
}
static VALUE
rg_ref_accessible_at_point(VALUE self, VALUE x, VALUE y, VALUE coord_type)
{
return GOBJ2RVAL(atk_component_ref_accessible_at_point(
_SELF(self),
NUM2INT(x), NUM2INT(y),
RVAL2ATKCOORDTYPE(coord_type)));
}
static VALUE
rg_remove_focus_handler(VALUE self, VALUE handler_id)
{
atk_component_remove_focus_handler(_SELF(self), NUM2UINT(handler_id));
return self;
}
static VALUE
rg_set_extents(VALUE self, VALUE x, VALUE y, VALUE width, VALUE height, VALUE coord_type)
{
gboolean ret = atk_component_set_extents(_SELF(self),
NUM2INT(x), NUM2INT(y),
NUM2INT(width), NUM2INT(height),
RVAL2ATKCOORDTYPE(coord_type));
if (! ret) rb_raise(rb_eRuntimeError, "Can't set extents");
return self;
}
static VALUE
rg_set_position(VALUE self, VALUE x, VALUE y, VALUE coord_type)
{
gboolean ret = atk_component_set_position(_SELF(self),
NUM2INT(x), NUM2INT(y),
RVAL2ATKCOORDTYPE(coord_type));
if (! ret) rb_raise(rb_eRuntimeError, "Can't set the position");
return self;
}
static VALUE
rg_set_size(VALUE self, VALUE width, VALUE height)
{
gboolean ret = atk_component_set_size(_SELF(self),
NUM2INT(width), NUM2INT(height));
if (! ret) rb_raise(rb_eRuntimeError, "Can't set the size");
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)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(ATK_TYPE_COMPONENT, "Component", mAtk);
/*
RG_DEF_METHOD(add_focus_handler, 0);
*/
RG_DEF_METHOD_P(contains, 3);
RG_DEF_METHOD(get_extents, 1);
#ifdef HAVE_ATK_COMPONENT_GET_LAYER
RG_DEF_METHOD(layer, 0);
#endif
#ifdef HAVE_ATK_COMPONENT_GET_MDI_ZORDER
RG_DEF_METHOD(mdi_zorder, 0);
#endif
RG_DEF_METHOD(position, 1);
RG_DEF_METHOD(size, 0);
RG_DEF_METHOD(grab_focus, 0);
RG_DEF_METHOD(ref_accessible_at_point, 3);
RG_DEF_METHOD(remove_focus_handler, 1);
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
}

View File

@ -0,0 +1,70 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 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
*/
#ifndef __RBATKCONVERSIONS_H__
#define __RBATKCONVERSIONS_H__
#define RVAL2ATKACTION(o) (ATK_ACTION(RVAL2GOBJ(o)))
#define RVAL2ATKCOMPONENT(o) (ATK_COMPONENT(RVAL2GOBJ(o)))
#define RVAL2ATKDOCUMENT(o) (ATK_DOCUMENT(RVAL2GOBJ(o)))
#define RVAL2ATKEDITABLETEXT(o) (ATK_EDITABLE_TEXT(RVAL2GOBJ(o)))
#define RVAL2ATKGOBJECTACCESSIBLE(o) (ATK_GOBJECT_ACCESSIBLE(RVAL2GOBJ(o)))
#define RVAL2ATKHYPERLINK(o) (ATK_HYPERLINK(RVAL2GOBJ(o)))
#define RVAL2ATKHYPERTEXT(o) (ATK_HYPERTEXT(RVAL2GOBJ(o)))
#define RVAL2ATKIMAGE(o) (ATK_IMAGE(RVAL2GOBJ(o)))
#define RVAL2ATKIMPLEMENTOR(o) (ATK_IMPLEMENTOR(RVAL2GOBJ(o)))
#define RVAL2ATKNOOPOBJECT(o) (ATK_NOOPOBJECT(RVAL2GOBJ(o)))
#define RVAL2ATKNOOPOBJECTFACTORY(o) (ATK_NO_OP_OBJECT_FACTORY(RVAL2GOBJ(o)))
#define RVAL2ATKOBJECT(o) (ATK_OBJECT(RVAL2GOBJ(o)))
#define RVAL2ATKOBJECTFACTORY(o) (ATK_OBJECT_FACTORY(RVAL2GOBJ(o)))
#define RVAL2ATKREGISTRY(o) (ATK_REGISTRY(RVAL2GOBJ(o)))
#define RVAL2ATKRELATION(o) (ATK_RELATION(RVAL2GOBJ(o)))
#define RVAL2ATKRELATIONSET(o) (ATK_RELATION_SET(RVAL2GOBJ(o)))
#define RVAL2ATKSELECTION(o) (ATK_SELECTION(RVAL2GOBJ(o)))
#define RVAL2ATKSTATE(o) (ATK_STATE(RVAL2GOBJ(o)))
#define RVAL2ATKSTATESET(o) (ATK_STATE_SET(RVAL2GOBJ(o)))
#define RVAL2ATKSTREAMABLECONTENT(o) (ATK_STREAMABLE_CONTENT(RVAL2GOBJ(o)))
#define RVAL2ATKTABLE(o) (ATK_TABLE(RVAL2GOBJ(o)))
#define RVAL2ATKTEXT(o) (ATK_TEXT(RVAL2GOBJ(o)))
#define RVAL2ATKVALUE(o) (ATK_VALUE(RVAL2GOBJ(o)))
#define RVAL2ATKTEXTRANGE(o) ((AtkTextRange*)RVAL2BOXED(o, ATK_TYPE_TEXT_RANGE))
#define ATKTEXTRANGE2RVAL(o) (BOXED2RVAL(o, ATK_TYPE_TEXT_RANGE))
#define RVAL2ATKTEXTRECTANGLE(o) ((AtkTextRectangle*)RVAL2BOXED(o, ATK_TYPE_TEXT_RECTANGLE))
#define ATKTEXTRECTANGLE2RVAL(o) (BOXED2RVAL(o, ATK_TYPE_TEXT_RECTANGLE))
#define RVAL2ATKCOORDTYPE(o) (RVAL2GENUM(o, ATK_TYPE_COORD_TYPE))
#define ATKCOORDTYPE2RVAL(o) (GENUM2RVAL(o, ATK_TYPE_COORD_TYPE))
#define RVAL2ATKLAYER(o) (RVAL2GENUM(o, ATK_TYPE_LAYER))
#define ATKLAYER2RVAL(o) (GENUM2RVAL(o, ATK_TYPE_LAYER))
#define RVAL2ATKRELATIONTYPE(o) (RVAL2GENUM(o, ATK_TYPE_RELATION_TYPE))
#define ATKRELATIONTYPE2RVAL(o) (GENUM2RVAL(o, ATK_TYPE_RELATION_TYPE))
#define RVAL2ATKROLE(o) (RVAL2GENUM(o, ATK_TYPE_ROLE))
#define ATKROLE2RVAL(o) (GENUM2RVAL(o, ATK_TYPE_ROLE))
#define RVAL2ATKSTATETYPE(o) (RVAL2GENUM(o, ATK_TYPE_STATE_TYPE))
#define ATKSTATETYPE2RVAL(o) (GENUM2RVAL(o, ATK_TYPE_STATE_TYPE))
#define RVAL2ATKTEXTATTRIBUTE(o) (RVAL2GENUM(o, ATK_TYPE_TEXT_ATTRIBUTE))
#define ATKTEXTATTRIBUTE2RVAL(o) (GENUM2RVAL(o, ATK_TYPE_TEXT_ATTRIBUTE))
#define RVAL2ATKTEXTBOUNDARY(o) (RVAL2GENUM(o, ATK_TYPE_TEXT_BOUNDARY))
#define ATKTEXTBOUNDARY2RVAL(o) (GENUM2RVAL(o, ATK_TYPE_TEXT_BOUNDARY))
#define RVAL2ATKTEXTCLIPTYPE(o) (RVAL2GENUM(o, ATK_TYPE_TEXT_CLIP_TYPE))
#define ATKTEXTCLIPTYPE2RVAL(o) (GENUM2RVAL(o, ATK_TYPE_TEXT_CLIP_TYPE))
#endif /* __RBATKCONVERSIONS_H__ */

View File

@ -0,0 +1,100 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE mDocument
#define _SELF(s) (RVAL2ATKDOCUMENT(s))
static VALUE
rg_document_type(VALUE self)
{
return CSTR2RVAL(atk_document_get_document_type(_SELF(self)));
}
/*
How can I implement this?
static VALUE
rg_document(VALUE self)
{
return GOBJ2RVAL(atk_document_get_document(_SELF(self)));
}
*/
#if ATK_CHECK_VERSION(1,12,0)
static VALUE
rg_get_attribute_value(VALUE self, VALUE name)
{
return CSTR2RVAL(atk_document_get_attribute_value(_SELF(self),
RVAL2CSTR(name)));
}
static VALUE
rg_set_attribute_value(VALUE self, VALUE name, VALUE value)
{
gboolean ret = atk_document_set_attribute_value(_SELF(self),
RVAL2CSTR(name),
RVAL2CSTR(value));
if (! ret) rb_raise(rb_eRuntimeError, "Can't set attribute value: %s, %s",
RVAL2CSTR(name), RVAL2CSTR(value));
return self;
}
static VALUE
rg_attributes(VALUE self)
{
AtkAttributeSet* list = atk_document_get_attributes(_SELF(self));
VALUE ary = rb_ary_new();
while (list) {
AtkAttribute* attr = list->data;
rb_ary_push(ary, rb_assoc_new(CSTR2RVAL(attr->name), CSTR2RVAL(attr->value)));
list = list->next;
}
return ary;
}
static VALUE
rg_locale(VALUE self)
{
return CSTR2RVAL(atk_document_get_locale(_SELF(self)));
}
#endif
void
Init_atk_document(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(ATK_TYPE_DOCUMENT, "Document", mAtk);
RG_DEF_METHOD(document_type, 0);
/*
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
}

View File

@ -0,0 +1,177 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE mEditableText
#define _SELF(s) (RVAL2ATKEDITABLETEXT(s))
struct rval2atkattributegslist_args {
VALUE ary;
long n;
GSList *result;
};
static VALUE
rbatk_rval2atkattributegslist_body(VALUE value)
{
long i;
struct rval2atkattributegslist_args *args = (struct rval2atkattributegslist_args *)value;
for (i = 0; i < args->n; i++) {
VALUE ary = rb_ary_to_ary(RARRAY_PTR(args->ary)[i]);
AtkAttribute *attribute;
if (RARRAY_LEN(ary) != 2)
rb_raise(rb_eArgError, "attribute %ld should be an array of length 2", i);
attribute = g_new(AtkAttribute, 1);
args->result = g_slist_append(args->result, attribute);
attribute->name = g_strdup(RVAL2CSTR(RARRAY_PTR(ary)[0]));
attribute->value = g_strdup(RVAL2CSTR(RARRAY_PTR(ary)[1]));
}
return Qnil;
}
static void
rbatk_atkattributegslist_free(GSList *list)
{
GSList *p;
for (p = list; p != NULL; p = g_slist_next(p)) {
AtkAttribute *attribute = (AtkAttribute *)p->data;
g_free(attribute->value);
g_free(attribute->name);
g_free(attribute);
}
g_slist_free(list);
}
static G_GNUC_NORETURN VALUE
rbatk_rval2atkattributegslist_rescue(VALUE value)
{
rbatk_atkattributegslist_free(((struct rval2atkattributegslist_args *)value)->result);
rb_exc_raise(rb_errinfo());
}
static GSList *
rbatk_rval2atkattributegslist(VALUE value)
{
struct rval2atkattributegslist_args args;
args.ary = rb_ary_to_ary(value);
args.n = RARRAY_LEN(args.ary);
args.result = NULL;
rb_rescue(rbatk_rval2atkattributegslist_body, (VALUE)&args,
rbatk_rval2atkattributegslist_rescue, (VALUE)&args);
return args.result;
}
#define RVAL2ATKATTRIBUTEGSLIST(value) rbatk_rval2atkattributegslist(value)
static VALUE
rg_set_run_attributes(VALUE self,
VALUE attributes,
VALUE rbstart_offset,
VALUE rbend_offset)
{
AtkEditableText *editable;
gint start_offset, end_offset;
AtkAttributeSet *list;
gboolean result;
if (NIL_P(attributes))
return Qfalse;
editable = _SELF(self);
start_offset = NUM2INT(rbstart_offset);
end_offset = NUM2INT(rbend_offset);
list = RVAL2ATKATTRIBUTEGSLIST(attributes);
result = atk_editable_text_set_run_attributes(editable, list, start_offset, end_offset);
rbatk_atkattributegslist_free(list);
return CBOOL2RVAL(result);
}
static VALUE
rg_set_text_contents(VALUE self, VALUE str)
{
atk_editable_text_set_text_contents(_SELF(self), RVAL2CSTR(str));
return self;
}
static VALUE
rg_insert_text(VALUE self, VALUE str, VALUE position)
{
gint pos = NUM2INT(position);
StringValue(str);
atk_editable_text_insert_text(_SELF(self), RVAL2CSTR(str), RSTRING_LEN(str), &pos);
return INT2NUM(pos);
}
static VALUE
rg_copy_text(VALUE self, VALUE start_pos, VALUE end_pos)
{
atk_editable_text_copy_text(_SELF(self), NUM2INT(start_pos), NUM2INT(end_pos));
return self;
}
static VALUE
rg_cut_text(VALUE self, VALUE start_pos, VALUE end_pos)
{
atk_editable_text_cut_text(_SELF(self), NUM2INT(start_pos), NUM2INT(end_pos));
return self;
}
static VALUE
rg_delete_text(VALUE self, VALUE start_pos, VALUE end_pos)
{
atk_editable_text_delete_text(_SELF(self), NUM2INT(start_pos), NUM2INT(end_pos));
return self;
}
static VALUE
rg_paste_text(VALUE self, VALUE position)
{
atk_editable_text_paste_text(_SELF(self), NUM2INT(position));
return self;
}
void
Init_atk_editabletext(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(ATK_TYPE_EDITABLE_TEXT, "EditableText", mAtk);
RG_DEF_METHOD(set_run_attributes, 3);
RG_DEF_METHOD(set_text_contents, 1);
RG_DEF_METHOD(insert_text, 2);
RG_DEF_METHOD(copy_text, 2);
RG_DEF_METHOD(cut_text, 2);
RG_DEF_METHOD(delete_text, 2);
RG_DEF_METHOD(paste_text, 1);
}

View File

@ -0,0 +1,46 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cGObjectAccessible
#define _SELF(s) (RVAL2ATKGOBJECTACCESSIBLE(s))
static VALUE
rg_s_for_object(G_GNUC_UNUSED VALUE self, VALUE obj)
{
return GOBJ2RVAL(atk_gobject_accessible_for_object(RVAL2GOBJ(obj)));
}
static VALUE
rg_object(VALUE self)
{
return GOBJ2RVAL(atk_gobject_accessible_get_object(_SELF(self)));
}
void
Init_atk_gobjectaccessible(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_GOBJECT_ACCESSIBLE, "GObjectAccessible", mAtk);
RG_DEF_SMETHOD(for_object, 1);
RG_DEF_METHOD(object, 0);
}

View File

@ -0,0 +1,71 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003,2004 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cHyperlink
#define _SELF(s) (RVAL2ATKHYPERLINK(s))
static VALUE
rg_get_uri(VALUE self, VALUE i)
{
return CSTR2RVAL(atk_hyperlink_get_uri(_SELF(self), NUM2INT(i)));
}
static VALUE
rg_get_object(VALUE self, VALUE i)
{
return GOBJ2RVAL(atk_hyperlink_get_object(_SELF(self), NUM2INT(i)));
}
static VALUE
rg_valid_p(VALUE self)
{
return CBOOL2RVAL(atk_hyperlink_is_valid(_SELF(self)));
}
#ifdef HAVE_ATK_HYPERLINK_IS_INLINE
static VALUE
rg_inline_p(VALUE self)
{
return CBOOL2RVAL(atk_hyperlink_is_inline(_SELF(self)));
}
#endif
static VALUE
rg_n_anchors(VALUE self)
{
return INT2NUM(atk_hyperlink_get_n_anchors(_SELF(self)));
}
void
Init_atk_hyperlink(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_HYPERLINK, "Hyperlink", mAtk);
RG_DEF_METHOD(get_uri, 1);
RG_DEF_METHOD(get_object, 1);
RG_DEF_METHOD_P(valid, 0);
#ifdef HAVE_ATK_HYPERLINK_IS_INLINE
RG_DEF_METHOD_P(inline, 0);
#endif
RG_DEF_METHOD(n_anchors, 0);
}

View File

@ -0,0 +1,53 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE mHypertext
#define _SELF(s) (RVAL2ATKHYPERTEXT(s))
static VALUE
rg_get_link(VALUE self, VALUE link_index)
{
return GOBJ2RVAL(atk_hypertext_get_link(_SELF(self), NUM2INT(link_index)));
}
static VALUE
rg_n_links(VALUE self)
{
return INT2NUM(atk_hypertext_get_n_links(_SELF(self)));
}
static VALUE
rg_link_index(VALUE self, VALUE char_index)
{
return INT2NUM(atk_hypertext_get_link_index(_SELF(self), NUM2INT(char_index)));
}
void
Init_atk_hypertext(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(ATK_TYPE_HYPERTEXT, "Hypertext", mAtk);
RG_DEF_METHOD(get_link, 1);
RG_DEF_METHOD(n_links, 0);
RG_DEF_METHOD(link_index, 1);
}

View File

@ -0,0 +1,68 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2004 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE mImage
#define _SELF(s) (RVAL2ATKIMAGE(s))
static VALUE
rg_image_position(VALUE self, VALUE coord_type)
{
gint x, y;
atk_image_get_image_position(_SELF(self), &x, &y,
RVAL2ATKCOORDTYPE(coord_type));
return rb_assoc_new(INT2NUM(x), INT2NUM(y));
}
static VALUE
rg_image_description(VALUE self)
{
return CSTR2RVAL(atk_image_get_image_description(_SELF(self)));
}
static VALUE
rg_set_image_description(VALUE self, VALUE description)
{
gboolean ret = atk_image_set_image_description(_SELF(self),
RVAL2CSTR(description));
if (! ret) rb_raise(rb_eRuntimeError, "Can't set image description");
return self;
}
static VALUE
rg_image_size(VALUE self)
{
gint width, height;
atk_image_get_image_size(_SELF(self), &width, &height);
return rb_assoc_new(INT2NUM(width), INT2NUM(height));
}
void
Init_atk_image(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(ATK_TYPE_IMAGE, "Image", mAtk);
RG_DEF_METHOD(image_position, 1);
RG_DEF_METHOD(image_description, 0);
RG_DEF_METHOD(set_image_description, 1);
RG_DEF_METHOD(image_size, 0);
}

View File

@ -0,0 +1,38 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE mImplementor
#define _SELF(s) (RVAL2ATKIMPLEMENTOR(s))
static VALUE
rg_ref_accessible(VALUE self)
{
return GOBJ2RVAL(atk_implementor_ref_accessible(_SELF(self)));
}
void
Init_atk_implementor(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(ATK_TYPE_IMPLEMENTOR, "Implementor", mAtk);
RG_DEF_METHOD(ref_accessible, 0);
}

View File

@ -0,0 +1,40 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cNoOpObject
#define _SELF(s) (RVAL2ATKNOOPOBJECT(s))
static VALUE
rg_initialize(VALUE self, VALUE gobj)
{
G_INITIALIZE(self, atk_no_op_object_new(RVAL2GOBJ(gobj)));
return Qnil;
}
void
Init_atk_noopobject(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_NO_OP_OBJECT, "NoOpObject", mAtk);
RG_DEF_METHOD(initialize, 1);
}

View File

@ -0,0 +1,40 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cNoOpObjectFactory
#define _SELF(s) (RVAL2ATKNOOPOBJECTFACTORY(s))
static VALUE
rg_initialize(VALUE self)
{
G_INITIALIZE(self, atk_no_op_object_factory_new());
return Qnil;
}
void
Init_atk_noopobjectfactory(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_NO_OP_OBJECT_FACTORY, "NoOpObjectFactory", mAtk);
RG_DEF_METHOD(initialize, 0);
}

View File

@ -0,0 +1,153 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003,2004 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cObject
#define _SELF(s) RVAL2ATKOBJECT(s)
/* How can I implement this? Since 1.10
AtkObject* atk_implementor_ref_accessible (AtkImplementor *implementor);
*/
/* Use properties accessible_*
G_CONST_RETURN gchar* atk_object_get_name (AtkObject *accessible);
G_CONST_RETURN gchar* atk_object_get_description
(AtkObject *accessible);
AtkObject* atk_object_get_parent (AtkObject *accessible);
(AtkObject *accessible);
*/
static VALUE
rg_n_accessible_children(VALUE self)
{
return INT2NUM(atk_object_get_n_accessible_children(_SELF(self)));
}
static VALUE
rg_ref_accessible_child(VALUE self, VALUE i)
{
return GOBJ2RVAL(atk_object_ref_accessible_child(_SELF(self), NUM2INT(i)));
}
static VALUE
rg_ref_relation_set(VALUE self)
{
return GOBJ2RVAL(atk_object_ref_relation_set(_SELF(self)));
}
/* Use properties accessible_*
AtkLayer atk_object_get_layer (AtkObject *accessible);
gint atk_object_get_mdi_zorder (AtkObject *accessible);
AtkRole atk_object_get_role (AtkObject *accessible);
*/
static VALUE
rg_ref_state_set(VALUE self)
{
return GOBJ2RVAL(atk_object_ref_state_set(_SELF(self)));
}
static VALUE
rg_index_in_parent(VALUE self)
{
return INT2NUM(atk_object_get_index_in_parent(_SELF(self)));
}
/* Use properties accessible_*
void atk_object_set_name (AtkObject *accessible,
const gchar *name);
void atk_object_set_description (AtkObject *accessible,
const gchar *description);
void atk_object_set_parent (AtkObject *accessible,
AtkObject *parent);
void atk_object_set_role (AtkObject *accessible,
AtkRole role);
*/
/*
guint atk_object_connect_property_change_handler
(AtkObject *accessible,
AtkPropertyChangeHandler *handler);
void atk_object_remove_property_change_handler
(AtkObject *accessible,
guint handler_id);
*/
static VALUE
rg_notify_state_change(VALUE self, VALUE state, VALUE value)
{
atk_object_notify_state_change(_SELF(self),
RVAL2ATKSTATETYPE(state),
RVAL2CBOOL(value));
return self;
}
/* I don't have a good idea to implement this method. Any idea?
void atk_object_initialize (AtkObject *accessible,
gpointer data);
*/
#ifdef HAVE_ATK_OBJECT_ADD_RELATIONSHIP
static VALUE
rg_add_relationship(VALUE self, VALUE relationship, VALUE target)
{
return CBOOL2RVAL(atk_object_add_relationship(
_SELF(self),
RVAL2ATKRELATIONTYPE(relationship),
_SELF(target)));
}
#endif
#ifdef HAVE_ATK_OBJECT_REMOVE_RELATIONSHIP
static VALUE
rg_remove_relationship(VALUE self, VALUE relationship, VALUE target)
{
return CBOOL2RVAL(atk_object_remove_relationship(
_SELF(self),
RVAL2ATKRELATIONTYPE(relationship),
_SELF(target)));
}
#endif
void
Init_atk_object(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_OBJECT, "Object", mAtk);
RG_DEF_METHOD(n_accessible_children, 0);
RG_DEF_METHOD(ref_accessible_child, 1);
RG_DEF_METHOD(ref_relation_set, 0);
RG_DEF_METHOD(ref_state_set, 0);
RG_DEF_METHOD(index_in_parent, 0);
RG_DEF_METHOD(notify_state_change, 2);
#ifdef HAVE_ATK_OBJECT_ADD_RELATIONSHIP
RG_DEF_METHOD(add_relationship, 2);
#endif
#ifdef HAVE_ATK_OBJECT_REMOVE_RELATIONSHIP
RG_DEF_METHOD(remove_relationship, 2);
#endif
Init_atk_object_role(RG_TARGET_NAMESPACE);
/* AtkLayer */
G_DEF_CLASS(ATK_TYPE_LAYER, "Layer", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, ATK_TYPE_LAYER, "ATK_");
}

View File

@ -0,0 +1,53 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cObjectFactory
#define _SELF(s) (RVAL2ATKOBJECTFACTORY(s))
static VALUE
rg_create_accessible(VALUE self, VALUE obj)
{
return GOBJ2RVAL(atk_object_factory_create_accessible(_SELF(self), RVAL2GOBJ(obj)));
}
static VALUE
rg_accessible_type(VALUE self)
{
return GTYPE2CLASS(atk_object_factory_get_accessible_type(_SELF(self)));
}
static VALUE
rg_invalidate(VALUE self)
{
atk_object_factory_invalidate(_SELF(self));
return self;
}
void
Init_atk_objectfactory(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_OBJECT_FACTORY, "ObjectFactory", mAtk);
RG_DEF_METHOD(create_accessible, 0);
RG_DEF_METHOD(accessible_type, 0);
RG_DEF_METHOD(invalidate, 0);
}

View File

@ -0,0 +1,50 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003,2004 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cRole
static VALUE
rg_localized_name(G_GNUC_UNUSED VALUE self)
{
#ifdef HAVE_ATK_ROLE_GET_LOCALIZED_NAME
return CSTR2RVAL(atk_role_get_localized_name(RVAL2ATKROLE(self)));
#else
rb_warning("not supported in this version of ATK.");
return Qnil;
#endif
}
static VALUE
rg_s_for_name(G_GNUC_UNUSED VALUE self, VALUE name)
{
return ATKROLE2RVAL(atk_role_for_name(RVAL2CSTR(name)));
}
void
Init_atk_object_role(VALUE cObject)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_ROLE, "Role", cObject);
RG_DEF_METHOD(localized_name, 0);
RG_DEF_SMETHOD(for_name, 1);
G_DEF_CONSTANTS(cObject, ATK_TYPE_ROLE, "ATK_");
}

View File

@ -0,0 +1,48 @@
#ifndef RB_ATK_PRIVATE_H
#define RB_ATK_PRIVATE_H
#include "rbatk.h"
#ifndef HAVE_RB_ERRINFO
# define rb_errinfo() (ruby_errinfo)
#endif
#ifndef G_VALUE_INIT
# define G_VALUE_INIT { 0, { { 0 } } }
#endif
G_BEGIN_DECLS
G_GNUC_INTERNAL void Init_atk_action(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_component(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_document(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_editabletext(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_gobjectaccessible(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_hyperlink(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_hypertext(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_image(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_implementor(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_noopobject(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_noopobjectfactory(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_object(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_object_role(VALUE cObject);
G_GNUC_INTERNAL void Init_atk_objectfactory(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_registry(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_relation(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_relation_type(VALUE cRelation);
G_GNUC_INTERNAL void Init_atk_relation_set(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_selection(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_state(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_state_set(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_streamable_content(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_table(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_text(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_text_attribute(VALUE mText);
G_GNUC_INTERNAL void Init_atk_text_range(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_text_rectangle(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_util(VALUE mAtk);
G_GNUC_INTERNAL void Init_atk_value(VALUE mAtk);
G_END_DECLS
#endif /* RB_ATK_PRIVATE_H */

View File

@ -0,0 +1,63 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cRegistry
#define _SELF(s) (RVAL2ATKREGISTRY(s))
static VALUE
rg_set_factory_type(VALUE self, VALUE type, VALUE factory_type)
{
atk_registry_set_factory_type(_SELF(self),
CLASS2GTYPE(type),
CLASS2GTYPE(factory_type));
return self;
}
static VALUE
rg_get_factory_type(VALUE self, VALUE type)
{
return GTYPE2CLASS(atk_registry_get_factory_type(_SELF(self), CLASS2GTYPE(type)));
}
static VALUE
rg_get_factory(VALUE self, VALUE type)
{
return GOBJ2RVAL(atk_registry_get_factory(_SELF(self),
CLASS2GTYPE(type)));
}
static VALUE
rg_s_default_registry(G_GNUC_UNUSED VALUE self)
{
return GOBJ2RVAL(atk_get_default_registry());
}
void
Init_atk_registry(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_REGISTRY, "Registry", mAtk);
RG_DEF_METHOD(set_factory_type, 2);
RG_DEF_METHOD(get_factory_type, 1);
RG_DEF_METHOD(get_factory, 1);
RG_DEF_SMETHOD(default_registry, 0);
}

View File

@ -0,0 +1,102 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cRelation
#define _SELF(s) (RVAL2ATKRELATION(s))
static VALUE
rg_s_type_register(G_GNUC_UNUSED VALUE self, VALUE name)
{
return ATKRELATIONTYPE2RVAL(atk_relation_type_register(RVAL2CSTR(name)));
}
struct rval2atkobjects_args {
VALUE ary;
long n;
AtkObject **result;
};
static VALUE
rval2atkobjects_body(VALUE value)
{
long i;
struct rval2atkobjects_args *args = (struct rval2atkobjects_args *)value;
for (i = 0; i < args->n; i++)
args->result[i] = RVAL2ATKOBJECT(RARRAY_PTR(args->ary)[i]);
return Qnil;
}
static G_GNUC_NORETURN VALUE
rval2atkobjects_rescue(VALUE value)
{
g_free(((struct rval2atkobjects_args *)value)->result);
rb_exc_raise(rb_errinfo());
}
static VALUE
rg_initialize(VALUE self, VALUE targets, VALUE rbrelationship)
{
AtkRelationType relationship = RVAL2ATKRELATIONTYPE(rbrelationship);
struct rval2atkobjects_args args;
AtkRelation *relation;
args.ary = rb_ary_to_ary(targets);
args.n = RARRAY_LEN(args.ary);
args.result = g_new(AtkObject *, args.n + 1);
rb_rescue(rval2atkobjects_body, (VALUE)&args,
rval2atkobjects_rescue, (VALUE)&args);
relation = atk_relation_new(args.result, args.n, relationship);
g_free(args.result);
G_INITIALIZE(self, relation);
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)
{
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);
}

View File

@ -0,0 +1,99 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cRelationSet
#define _SELF(s) (RVAL2ATKRELATIONSET(s))
static VALUE
rg_initialize(VALUE self)
{
G_INITIALIZE(self, atk_relation_set_new());
return Qnil;
}
static VALUE
rg_contains_p(VALUE self, VALUE relationship)
{
return CBOOL2RVAL(atk_relation_set_contains(
_SELF(self),
RVAL2ATKRELATIONTYPE(relationship)));
}
static VALUE
rg_remove(VALUE self, VALUE relation)
{
atk_relation_set_remove(_SELF(self), RVAL2ATKRELATION(relation));
return self;
}
static VALUE
rg_add(VALUE self, VALUE relation)
{
atk_relation_set_add(_SELF(self), RVAL2ATKRELATION(relation));
return self;
}
static VALUE
rg_n_relations(VALUE self)
{
return INT2NUM(atk_relation_set_get_n_relations(_SELF(self)));
}
static VALUE
rg_get_relation(VALUE self, VALUE i)
{
if (rb_obj_is_kind_of(i, GTYPE2CLASS(ATK_TYPE_RELATION_TYPE))){
return GOBJ2RVAL(atk_relation_set_get_relation_by_type(
_SELF(self),
RVAL2ATKRELATIONTYPE(i)));
} else {
return GOBJ2RVAL(atk_relation_set_get_relation(_SELF(self), NUM2INT(i)));
}
}
#if ATK_CHECK_VERSION(1,9,0)
static VALUE
rg_add_relation(VALUE self, VALUE relationship, VALUE obj)
{
atk_relation_set_add_relation_by_type(_SELF(self),
RVAL2ATKRELATIONTYPE(relationship),
RVAL2ATKOBJECT(obj));
return self;
}
#endif
void
Init_atk_relation_set(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_RELATION_SET, "RelationSet", mAtk);
RG_DEF_METHOD(initialize, 0);
RG_DEF_METHOD_P(contains, 1);
RG_DEF_METHOD(remove, 1);
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
}

View File

@ -0,0 +1,38 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cType
static VALUE
rg_s_for_name(G_GNUC_UNUSED VALUE self, VALUE name)
{
return ATKRELATIONTYPE2RVAL(atk_relation_type_for_name(RVAL2CSTR(name)));
}
void
Init_atk_relation_type(VALUE cRelation)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_RELATION_TYPE, "Type", cRelation);
RG_DEF_SMETHOD(for_name, 1);
G_DEF_CONSTANTS(cRelation, ATK_TYPE_RELATION_TYPE, "ATK_");
}

View File

@ -0,0 +1,87 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2004 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE mSelection
#define _SELF(s) (RVAL2ATKSELECTION(s))
static VALUE
rg_add_selection(VALUE self, VALUE i)
{
gboolean ret = atk_selection_add_selection(_SELF(self), NUM2INT(i));
if (! ret) rb_raise(rb_eRuntimeError, "Can't add selection");
return self;
}
static VALUE
rg_clear_selection(VALUE self)
{
gboolean ret = atk_selection_clear_selection(_SELF(self));
if (! ret) rb_raise(rb_eRuntimeError, "Can't clear selection");
return self;
}
static VALUE
rg_ref_selection(VALUE self, VALUE i)
{
return GOBJ2RVAL(atk_selection_ref_selection(_SELF(self), NUM2INT(i)));
}
static VALUE
rg_selection_count(VALUE self)
{
return INT2NUM(atk_selection_get_selection_count(_SELF(self)));
}
static VALUE
rg_child_selected_p(VALUE self, VALUE i)
{
return CBOOL2RVAL(atk_selection_is_child_selected(_SELF(self), NUM2INT(i)));
}
static VALUE
rg_remove_selection(VALUE self, VALUE i)
{
gboolean ret = atk_selection_remove_selection(_SELF(self), NUM2INT(i));
if (! ret) rb_raise(rb_eRuntimeError, "Can't remove selection");
return self;
}
static VALUE
rg_select_all_selection(VALUE self)
{
return CBOOL2RVAL(atk_selection_select_all_selection(_SELF(self)));
}
void
Init_atk_selection(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(ATK_TYPE_SELECTION, "Selection", mAtk);
RG_DEF_METHOD(add_selection, 1);
RG_DEF_METHOD(clear_selection, 0);
RG_DEF_METHOD(ref_selection, 1);
RG_DEF_METHOD(selection_count, 0);
RG_DEF_METHOD_P(child_selected, 1);
RG_DEF_METHOD(remove_selection, 1);
RG_DEF_METHOD(select_all_selection, 0);
}

View File

@ -0,0 +1,51 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003,2004 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cState
#define _SELF(s) (RVAL2ATKSTATE(s))
static VALUE
rg_s_type_register(G_GNUC_UNUSED VALUE self, VALUE name)
{
return ATKSTATETYPE2RVAL(atk_state_type_register(RVAL2CSTR(name)));
}
/* We don't need this.
G_CONST_RETURN gchar* atk_state_type_get_name
(AtkStateType type);
*/
static VALUE
rg_s_for_name(G_GNUC_UNUSED VALUE self, VALUE name)
{
return ATKSTATETYPE2RVAL(atk_state_type_for_name(RVAL2CSTR(name)));
}
void
Init_atk_state(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_STATE_TYPE, "State", mAtk);
RG_DEF_SMETHOD(type_register, 1);
RG_DEF_SMETHOD(for_name, 1);
G_DEF_CONSTANTS(mAtk, ATK_TYPE_STATE_TYPE, "ATK_");
}

View File

@ -0,0 +1,180 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cStateSet
#define _SELF(s) (RVAL2ATKSTATESET(s))
static VALUE
rg_initialize(VALUE self)
{
G_INITIALIZE(self, atk_state_set_new());
return Qnil;
}
static VALUE
rg_empty_p(VALUE self)
{
return CBOOL2RVAL(atk_state_set_is_empty(_SELF(self)));
}
static VALUE
rg_add_state(VALUE self, VALUE type)
{
return CBOOL2RVAL(atk_state_set_add_state(_SELF(self),
RVAL2ATKSTATETYPE(type)));
}
struct rval2atkstatetype_args {
VALUE ary;
long n;
AtkStateType *result;
};
static VALUE
rval2atkstatetype_body(VALUE value)
{
long i;
struct rval2atkstatetype_args *args = (struct rval2atkstatetype_args *)value;
for (i = 0; i < args->n; i++)
args->result[i] = RVAL2ATKSTATETYPE(RARRAY_PTR(args->ary)[i]);
return Qnil;
}
static G_GNUC_NORETURN VALUE
rval2atkstatetype_rescue(VALUE value)
{
g_free(((struct rval2atkstatetype_args *)value)->result);
rb_exc_raise(rb_errinfo());
}
static AtkStateType *
rval2atkstatetype(VALUE value, long *n)
{
struct rval2atkstatetype_args args;
args.ary = rb_ary_to_ary(value);
args.n = RARRAY_LEN(args.ary);
args.result = g_new(AtkStateType, args.n + 1);
rb_rescue(rval2atkstatetype_body, (VALUE)&args,
rval2atkstatetype_rescue, (VALUE)&args);
if (n != NULL)
*n = args.n;
return args.result;
}
#define RVAL2ATKSTATETYPES(value, n) rval2atkstatetype(value, n)
static VALUE
rg_add_states(VALUE self, VALUE rbtypes)
{
AtkStateSet *set = _SELF(self);
long n;
AtkStateType *types = RVAL2ATKSTATETYPES(rbtypes, &n);
atk_state_set_add_states(set, types, n);
g_free(types);
return self;
}
static VALUE
rg_clear_states(VALUE self)
{
atk_state_set_clear_states(_SELF(self));
return self;
}
static VALUE
rg_contains_state(VALUE self, VALUE type)
{
return CBOOL2RVAL(atk_state_set_contains_state(_SELF(self),
RVAL2ATKSTATETYPE(type)));
}
static VALUE
rg_contains_states(VALUE self, VALUE rbtypes)
{
AtkStateSet *set = _SELF(self);
long n;
AtkStateType *types = RVAL2ATKSTATETYPES(rbtypes, &n);
gboolean result;
result = atk_state_set_contains_states(set, types, n);
g_free(types);
return CBOOL2RVAL(result);
}
static VALUE
rg_remove_state(VALUE self, VALUE type)
{
return CBOOL2RVAL(atk_state_set_remove_state(_SELF(self),
RVAL2ATKSTATETYPE(type)));
}
static VALUE
rg_and(VALUE self, VALUE compare_set)
{
return GOBJ2RVAL(atk_state_set_and_sets(_SELF(self), _SELF(compare_set)));
}
static VALUE
rg_or(VALUE self, VALUE compare_set)
{
return GOBJ2RVAL(atk_state_set_or_sets(_SELF(self), _SELF(compare_set)));
}
static VALUE
rg_xor(VALUE self, VALUE compare_set)
{
return GOBJ2RVAL(atk_state_set_xor_sets(_SELF(self), _SELF(compare_set)));
}
void
Init_atk_state_set(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_STATE_SET, "StateSet", mAtk);
RG_DEF_METHOD(initialize, 0);
RG_DEF_METHOD_P(empty, 0);
RG_DEF_METHOD(add_state, 1);
RG_DEF_METHOD(add_states, 1);
RG_DEF_METHOD(clear_states, 0);
RG_DEF_METHOD(contains_state, 1);
RG_DEF_METHOD(contains_states, 1);
RG_DEF_METHOD(remove_state, 1);
RG_DEF_METHOD(and, 1);
RG_DEF_ALIAS("&", "and");
RG_DEF_METHOD(or, 1);
RG_DEF_ALIAS("|", "or");
RG_DEF_METHOD(xor, 1);
RG_DEF_ALIAS("^", "xor");
}

View File

@ -0,0 +1,57 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE mStreamableContent
#define _SELF(s) (RVAL2ATKSTREAMABLECONTENT(s))
static VALUE
rg_n_mime_types(VALUE self)
{
return INT2NUM(atk_streamable_content_get_n_mime_types(_SELF(self)));
}
static VALUE
rg_mime_type(VALUE self, VALUE i)
{
return CSTR2RVAL(atk_streamable_content_get_mime_type(_SELF(self), NUM2INT(i)));
}
static VALUE
rg_get_stream(VALUE self, VALUE mime_type)
{
GIOChannel* io = atk_streamable_content_get_stream(_SELF(self), RVAL2CSTR(mime_type));
if (!io)
rb_raise(rb_eRuntimeError, "Couldn't get the stream.");
return GIOCHANNEL2RVAL(io);
}
void
Init_atk_streamable_content(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(ATK_TYPE_STREAMABLE_CONTENT, "StreamableContent", mAtk);
RG_DEF_METHOD(n_mime_types, 0);
RG_DEF_METHOD(mime_type, 1);
RG_DEF_METHOD(get_stream, 1);
}

View File

@ -0,0 +1,271 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003,2004 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE mTable
#define _SELF(s) (RVAL2ATKTABLE(s))
static VALUE
rg_ref_at(VALUE self, VALUE row, VALUE column)
{
return GOBJ2RVAL(atk_table_ref_at(_SELF(self), NUM2INT(row), NUM2INT(column)));
}
static VALUE
rg_get_index_at(VALUE self, VALUE row, VALUE column)
{
return INT2NUM(atk_table_get_index_at(_SELF(self), NUM2INT(row), NUM2INT(column)));
}
static VALUE
rg_get_column_at_index(VALUE self, VALUE index_)
{
return INT2NUM(atk_table_get_column_at_index(_SELF(self), NUM2INT(index_)));
}
static VALUE
rg_get_row_at_index(VALUE self, VALUE index_)
{
return INT2NUM(atk_table_get_row_at_index(_SELF(self), NUM2INT(index_)));
}
static VALUE
rg_n_columns(VALUE self)
{
return INT2NUM(atk_table_get_n_columns(_SELF(self)));
}
static VALUE
rg_n_rows(VALUE self)
{
return INT2NUM(atk_table_get_n_rows(_SELF(self)));
}
static VALUE
rg_get_column_extent_at(VALUE self, VALUE row, VALUE column)
{
return INT2NUM(atk_table_get_column_extent_at(_SELF(self), NUM2INT(row), NUM2INT(column)));
}
static VALUE
rg_get_row_extent_at(VALUE self, VALUE row, VALUE column)
{
return INT2NUM(atk_table_get_row_extent_at(_SELF(self), NUM2INT(row), NUM2INT(column)));
}
static VALUE
rg_caption(VALUE self)
{
return GOBJ2RVAL(atk_table_get_caption(_SELF(self)));
}
static VALUE
rg_get_column_description(VALUE self, VALUE column)
{
return CSTR2RVAL(atk_table_get_column_description(_SELF(self), NUM2INT(column)));
}
static VALUE
rg_get_row_description(VALUE self, VALUE row)
{
return CSTR2RVAL(atk_table_get_row_description(_SELF(self), NUM2INT(row)));
}
static VALUE
rg_get_column_header(VALUE self, VALUE column)
{
return GOBJ2RVAL(atk_table_get_column_header(_SELF(self), NUM2INT(column)));
}
static VALUE
rg_get_row_header(VALUE self, VALUE row)
{
return GOBJ2RVAL(atk_table_get_row_header(_SELF(self), NUM2INT(row)));
}
static VALUE
rg_summary(VALUE self)
{
return GOBJ2RVAL(atk_table_get_summary(_SELF(self)));
}
static VALUE
rg_set_caption(VALUE self, VALUE caption)
{
atk_table_set_caption(_SELF(self), RVAL2ATKOBJECT(caption));
return self;
}
static VALUE
rg_set_row_description(VALUE self, VALUE row, VALUE description)
{
atk_table_set_row_description(_SELF(self), NUM2INT(row), RVAL2CSTR(description));
return self;
}
static VALUE
rg_set_column_description(VALUE self, VALUE column, VALUE description)
{
atk_table_set_column_description(_SELF(self), NUM2INT(column), RVAL2CSTR(description));
return self;
}
static VALUE
rg_set_row_header(VALUE self, VALUE row, VALUE header)
{
atk_table_set_row_header(_SELF(self), NUM2INT(row), RVAL2ATKOBJECT(header));
return self;
}
static VALUE
rg_set_column_header(VALUE self, VALUE column, VALUE header)
{
atk_table_set_column_header(_SELF(self), NUM2INT(column), RVAL2ATKOBJECT(header));
return self;
}
static VALUE
rg_set_summary(VALUE self, VALUE accessible)
{
atk_table_set_summary(_SELF(self), RVAL2ATKOBJECT(accessible));
return self;
}
static VALUE
rg_selected_columns(VALUE self)
{
gint ret;
gint* selected;
VALUE result = Qnil;
ret = atk_table_get_selected_columns(_SELF(self), &selected);
if (ret > 0){
gint i;
result = rb_ary_new2(ret);
for (i = 0; i < ret; i++){
rb_ary_push(result, INT2NUM(selected[i]));
}
}
return result;
}
static VALUE
rg_selected_rows(VALUE self)
{
gint ret;
gint* selected;
VALUE result = Qnil;
ret = atk_table_get_selected_rows(_SELF(self), &selected);
if (ret > 0){
gint i;
result = rb_ary_new2(ret);
for (i = 0; i < ret; i++){
rb_ary_push(result, INT2NUM(selected[i]));
}
}
return result;
}
static VALUE
rg_column_selected_p(VALUE self, VALUE column)
{
return CBOOL2RVAL(atk_table_is_column_selected(_SELF(self), NUM2INT(column)));
}
static VALUE
rg_row_selected_p(VALUE self, VALUE row)
{
return CBOOL2RVAL(atk_table_is_row_selected(_SELF(self), NUM2INT(row)));
}
static VALUE
rg_selected_p(VALUE self, VALUE row, VALUE column)
{
return CBOOL2RVAL(atk_table_is_selected(_SELF(self), NUM2INT(row), NUM2INT(column)));
}
static VALUE
rg_add_column_selection(VALUE self, VALUE column)
{
gboolean ret = atk_table_add_column_selection(_SELF(self), NUM2INT(column));
if (! ret) rb_raise(rb_eRuntimeError, "not implement this interface");
return self;
}
static VALUE
rg_add_row_selection(VALUE self, VALUE row)
{
gboolean ret = atk_table_add_row_selection(_SELF(self), NUM2INT(row));
if (! ret) rb_raise(rb_eRuntimeError, "not implement this interface");
return self;
}
static VALUE
rg_remove_column_selection(VALUE self, VALUE column)
{
gboolean ret = atk_table_remove_column_selection(_SELF(self), NUM2INT(column));
if (! ret) rb_raise(rb_eRuntimeError, "not implement this interface");
return self;
}
static VALUE
rg_remove_row_selection(VALUE self, VALUE row)
{
gboolean ret = atk_table_remove_row_selection(_SELF(self), NUM2INT(row));
if (! ret) rb_raise(rb_eRuntimeError, "not implement this interface");
return self;
}
void
Init_atk_table(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(ATK_TYPE_TABLE, "Table", mAtk);
RG_DEF_METHOD(ref_at, 2);
RG_DEF_METHOD(get_index_at, 2);
RG_DEF_METHOD(get_column_at_index, 1);
RG_DEF_METHOD(get_row_at_index, 1);
RG_DEF_METHOD(n_columns, 0);
RG_DEF_METHOD(n_rows, 0);
RG_DEF_METHOD(get_column_extent_at, 2);
RG_DEF_METHOD(get_row_extent_at, 2);
RG_DEF_METHOD(caption, 0);
RG_DEF_METHOD(get_column_description, 1);
RG_DEF_METHOD(get_row_description, 1);
RG_DEF_METHOD(get_column_header, 1);
RG_DEF_METHOD(get_row_header, 1);
RG_DEF_METHOD(summary, 0);
RG_DEF_METHOD(set_caption, 1);
RG_DEF_METHOD(set_row_description, 2);
RG_DEF_METHOD(set_column_description, 2);
RG_DEF_METHOD(set_row_header, 2);
RG_DEF_METHOD(set_column_header, 2);
RG_DEF_METHOD(set_summary, 1);
RG_DEF_METHOD(selected_columns, 0);
RG_DEF_METHOD(selected_rows, 0);
RG_DEF_METHOD_P(column_selected, 1);
RG_DEF_METHOD_P(row_selected, 1);
RG_DEF_METHOD_P(selected, 2);
RG_DEF_METHOD(add_column_selection, 1);
RG_DEF_METHOD(add_row_selection, 1);
RG_DEF_METHOD(remove_column_selection, 1);
RG_DEF_METHOD(remove_row_selection, 1);
}

View File

@ -0,0 +1,318 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2004 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE mText
#define _SELF(s) (RVAL2ATKTEXT(s))
static VALUE
rg_get_text(VALUE self, VALUE start_offset, VALUE end_offset)
{
VALUE ret;
gchar* text = atk_text_get_text(_SELF(self),
NUM2INT(start_offset),
NUM2INT(end_offset));
ret = CSTR2RVAL(text);
g_free(text);
return ret;
}
static VALUE
rg_get_character_at_offset(VALUE self, VALUE offset)
{
gchar buf[10];
gint len = g_unichar_to_utf8(atk_text_get_character_at_offset
(_SELF(self), NUM2INT(offset)), buf);
buf[len] = '\0';
return rb_str_new2(buf);
}
static VALUE
rg_get_text_after_offset(VALUE self, VALUE offset, VALUE boundary_type)
{
gchar* ret;
VALUE result;
gint start_offset, end_offset;
ret = atk_text_get_text_after_offset(_SELF(self), NUM2INT(offset),
RVAL2ATKTEXTBOUNDARY(boundary_type),
&start_offset, &end_offset);
result = rb_ary_new3(3, CSTR2RVAL(ret),
INT2NUM(start_offset), INT2NUM(end_offset));
g_free(ret);
return result;
}
static VALUE
rg_get_text_at_offset(VALUE self, VALUE offset, VALUE boundary_type)
{
gchar* ret;
VALUE result;
gint start_offset, end_offset;
ret = atk_text_get_text_at_offset(_SELF(self), NUM2INT(offset),
RVAL2ATKTEXTBOUNDARY(boundary_type),
&start_offset, &end_offset);
result = rb_ary_new3(3, CSTR2RVAL(ret),
INT2NUM(start_offset), INT2NUM(end_offset));
g_free(ret);
return result;
}
static VALUE
rg_get_text_before_offset(VALUE self, VALUE offset, VALUE boundary_type)
{
gchar* ret;
VALUE result;
gint start_offset, end_offset;
ret = atk_text_get_text_before_offset(_SELF(self), NUM2INT(offset),
RVAL2ATKTEXTBOUNDARY(boundary_type),
&start_offset, &end_offset);
result = rb_ary_new3(3, CSTR2RVAL(ret),
INT2NUM(start_offset), INT2NUM(end_offset));
g_free(ret);
return result;
}
static VALUE
rg_caret_offset(VALUE self)
{
return INT2NUM(atk_text_get_caret_offset(_SELF(self)));
}
static VALUE
rg_get_character_extents(VALUE self, VALUE offset, VALUE coords)
{
gint x, y, width, height;
atk_text_get_character_extents(_SELF(self), NUM2INT(offset),
&x, &y, &width, &height,
RVAL2ATKCOORDTYPE(coords));
return rb_ary_new3(4, INT2NUM(x), INT2NUM(y), INT2NUM(width), INT2NUM(height));
}
static VALUE
rg_get_run_attributes(VALUE self, VALUE offset)
{
gint start_offset, end_offset;
AtkAttributeSet* list;
VALUE ary;
list = atk_text_get_run_attributes(_SELF(self), NUM2INT(offset),
&start_offset, &end_offset);
ary = rb_ary_new();
while (list) {
AtkAttribute* data = (AtkAttribute*)list->data;
rb_ary_push(ary, rb_assoc_new(CSTR2RVAL(data->name),
CSTR2RVAL(data->value)));
list = list->next;
}
atk_attribute_set_free(list);
return ary;
}
static VALUE
rg_default_attributes(VALUE self)
{
AtkAttributeSet* list;
VALUE ary;
list = atk_text_get_default_attributes(_SELF(self));
ary = rb_ary_new();
while (list) {
AtkAttribute* data = (AtkAttribute*)list->data;
rb_ary_push(ary, rb_assoc_new(CSTR2RVAL(data->name),
CSTR2RVAL(data->value)));
list = list->next;
}
atk_attribute_set_free(list);
return ary;
}
static VALUE
rg_character_count(VALUE self)
{
return INT2NUM(atk_text_get_character_count(_SELF(self)));
}
static VALUE
rg_get_offset_at_point(VALUE self, VALUE x, VALUE y, VALUE coords)
{
return INT2NUM(atk_text_get_offset_at_point(_SELF(self),
NUM2INT(x), NUM2INT(y),
RVAL2ATKCOORDTYPE(coords)));
}
#ifdef HAVE_ATK_TEXT_GET_BOUNDED_RANGES
#ifdef HAVE_ATK_TEXT_CLIP_TYPE_GET_TYPE
static VALUE
rg_get_bounded_ranges(VALUE self, VALUE rect, VALUE coord_type, VALUE x_clip_type, VALUE y_clip_type)
{
AtkTextRange** ranges;
int i = 0;
VALUE ary;
ranges = atk_text_get_bounded_ranges(_SELF(self),
RVAL2ATKTEXTRECTANGLE(rect),
RVAL2ATKCOORDTYPE(coord_type),
RVAL2ATKTEXTCLIPTYPE(x_clip_type),
RVAL2ATKTEXTCLIPTYPE(y_clip_type));
ary = rb_ary_new();
while(ranges[i]){
rb_ary_push(ary, ATKTEXTRANGE2RVAL(ranges[i]));
i++;
}
#ifdef HAVE_ATK_TEXT_FREE_RANGES
atk_text_free_ranges(ranges);
#endif
return ary;
}
#endif
static VALUE
rg_get_range_extents(VALUE self, VALUE start_offset, VALUE end_offset, VALUE coord_type)
{
AtkTextRectangle rect;
atk_text_get_range_extents(_SELF(self), NUM2INT(start_offset),
NUM2INT(end_offset),
RVAL2ATKCOORDTYPE(coord_type),
&rect);
return ATKTEXTRECTANGLE2RVAL(&rect);
}
/* Don't need this
void atk_text_free_ranges (AtkTextRange **ranges);
*/
#endif
static VALUE
rg_n_selections(VALUE self)
{
return INT2NUM(atk_text_get_n_selections(_SELF(self)));
}
static VALUE
rg_get_selection(VALUE self, VALUE selection_num)
{
gint start_offset, end_offset;
VALUE ret;
gchar* text = atk_text_get_selection(_SELF(self), NUM2INT(selection_num),
&start_offset, &end_offset);
ret = CSTR2RVAL(text);
g_free(text);
return ret;
}
static VALUE
rg_add_selection(VALUE self, VALUE start_offset, VALUE end_offset)
{
gboolean ret = atk_text_add_selection(_SELF(self), NUM2INT(start_offset),
NUM2INT(end_offset));
if (! ret) rb_raise(rb_eRuntimeError, "Can't add selection");
return self;
}
static VALUE
rg_remove_selection(VALUE self, VALUE selection_num)
{
gint num;
gboolean ret;
num = NUM2INT(selection_num);
ret = atk_text_remove_selection(_SELF(self), num);
if (! ret)
rb_raise(rb_eRuntimeError, "Can't remove selection. num = %d", num);
return self;
}
static VALUE
rg_set_selection(VALUE self, VALUE selection_num, VALUE start_offset, VALUE end_offset)
{
gboolean ret = atk_text_set_selection(_SELF(self), NUM2INT(selection_num),
NUM2INT(start_offset),
NUM2INT(end_offset));
if (! ret) rb_raise(rb_eRuntimeError, "Can't set selection");
return self;
}
static VALUE
rg_set_caret_offset(VALUE self, VALUE offset)
{
gboolean ret = atk_text_set_caret_offset(_SELF(self), NUM2INT(offset));
if (! ret) rb_raise(rb_eRuntimeError, "Can't set caret offset");
return self;
}
/* We don't need them.
void atk_attribute_set_free (AtkAttributeSet *attrib_set);
*/
void
Init_atk_text(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(ATK_TYPE_TEXT, "Text", mAtk);
RG_DEF_METHOD(get_text, 2);
RG_DEF_METHOD(get_character_at_offset, 1);
RG_DEF_METHOD(get_text_after_offset, 2);
RG_DEF_METHOD(get_text_at_offset, 2);
RG_DEF_METHOD(get_text_before_offset, 2);
RG_DEF_METHOD(caret_offset, 0);
RG_DEF_METHOD(get_character_extents, 2);
RG_DEF_METHOD(get_run_attributes, 1);
RG_DEF_METHOD(default_attributes, 0);
RG_DEF_METHOD(character_count, 0);
RG_DEF_METHOD(get_offset_at_point, 3);
#ifdef HAVE_ATK_TEXT_GET_BOUNDED_RANGES
#ifdef HAVE_ATK_TEXT_CLIP_TYPE_GET_TYPE
RG_DEF_METHOD(get_bounded_ranges, 4);
RG_DEF_METHOD(get_range_extents, 3);
#endif
#endif
RG_DEF_METHOD(n_selections, 0);
RG_DEF_METHOD(get_selection, 1);
RG_DEF_METHOD(add_selection, 2);
RG_DEF_METHOD(remove_selection, 1);
RG_DEF_METHOD(set_selection, 3);
RG_DEF_METHOD(set_caret_offset, 1);
/* AtkTextBoundary */
#ifdef ATK_TYPE_TEXT_BOUNDARY
G_DEF_CLASS(ATK_TYPE_TEXT_BOUNDARY, "Boundary", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, ATK_TYPE_TEXT_BOUNDARY, "ATK_TEXT_");
#endif
/* AtkTextClipType */
#ifdef HAVE_ATK_TEXT_GET_BOUNDED_RANGES
#ifdef HAVE_ATK_TEXT_CLIP_TYPE_GET_TYPE
G_DEF_CLASS(ATK_TYPE_TEXT_CLIP_TYPE, "ClipType", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, ATK_TYPE_TEXT_CLIP_TYPE, "ATK_TEXT_");
#endif
#endif
Init_atk_text_attribute(RG_TARGET_NAMESPACE);
}

View File

@ -0,0 +1,54 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2004 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cAttribute
static VALUE
rg_s_type_register(G_GNUC_UNUSED VALUE self, VALUE name)
{
return ATKTEXTATTRIBUTE2RVAL(atk_text_attribute_register(RVAL2CSTR(name)));
}
static VALUE
rg_s_for_name(G_GNUC_UNUSED VALUE self, VALUE name)
{
return ATKTEXTATTRIBUTE2RVAL(atk_text_attribute_for_name(RVAL2CSTR(name)));
}
static VALUE
rg_get_value(VALUE self, VALUE index)
{
return CSTR2RVAL(atk_text_attribute_get_value(RVAL2ATKTEXTATTRIBUTE(self),
NUM2INT(index)));
}
void
Init_atk_text_attribute(VALUE mText)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_TEXT_ATTRIBUTE, "Attribute", mText);
G_DEF_CONSTANTS(mText, ATK_TYPE_TEXT_ATTRIBUTE, "ATK_TEXT_");
RG_DEF_SMETHOD(type_register, 1);
RG_DEF_SMETHOD(for_name, 1);
RG_DEF_METHOD(get_value, 1);
}

View File

@ -0,0 +1,92 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2004 Masao Mutoh
* Copyright (C) 2002,2003 Masao Mutoh
* Copyright (C) 1998-2000 Yukihiro Matsumoto,
* Daisuke Kanda,
* Hiroshi Igarashi
*
* 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 "rbatkprivate.h"
#ifdef HAVE_ATK_TEXT_GET_BOUNDED_RANGES
#define RG_TARGET_NAMESPACE cTextRange
#define _SELF(r) (RVAL2ATKTEXTRANGE(r))
/**********************************/
static AtkTextRange*
atk_text_range_copy(const AtkTextRange* val)
{
AtkTextRange* new_val;
g_return_val_if_fail (val != NULL, NULL);
new_val = g_new(AtkTextRange, 1);
*new_val = *val;
return new_val;
}
GType
atk_text_range_get_type(void)
{
static GType our_type = 0;
if (our_type == 0)
our_type = g_boxed_type_register_static ("AtkTextRange",
(GBoxedCopyFunc)atk_text_range_copy,
(GBoxedFreeFunc)g_free);
return our_type;
}
/**********************************/
/* Struct accessors */
static VALUE
rg_bounds(VALUE self)
{
return ATKTEXTRECTANGLE2RVAL(&_SELF(self)->bounds);
}
static VALUE
rg_start_offset(VALUE self)
{
return INT2NUM(_SELF(self)->start_offset);
}
static VALUE
rg_end_offset(VALUE self)
{
return INT2NUM(_SELF(self)->end_offset);
}
static VALUE
rg_content(VALUE self)
{
return CSTR2RVAL(_SELF(self)->content);
}
#endif
void
Init_atk_text_range(VALUE mAtk)
{
#ifdef HAVE_ATK_TEXT_GET_BOUNDED_RANGES
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_TEXT_RANGE, "TextRange", mAtk);
RG_DEF_METHOD(bounds, 0);
RG_DEF_METHOD(start_offset, 0);
RG_DEF_METHOD(end_offset, 0);
RG_DEF_METHOD(content, 0);
#endif
}

View File

@ -0,0 +1,149 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2004 Masao Mutoh
* Copyright (C) 2002,2003 Masao Mutoh
* Copyright (C) 1998-2000 Yukihiro Matsumoto,
* Daisuke Kanda,
* Hiroshi Igarashi
*
* 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 "rbatkprivate.h"
#ifdef HAVE_ATK_TEXT_GET_BOUNDED_RANGES
#define RG_TARGET_NAMESPACE cTextRectangle
#define _SELF(r) (RVAL2ATKTEXTRECTANGLE(r))
/**********************************/
static AtkTextRectangle*
atk_text_rectangle_copy(const AtkTextRectangle* val)
{
AtkTextRectangle* new_val;
g_return_val_if_fail (val != NULL, NULL);
new_val = g_new(AtkTextRectangle, 1);
*new_val = *val;
return new_val;
}
GType
atk_text_rectangle_get_type(void)
{
static GType our_type = 0;
if (our_type == 0)
our_type = g_boxed_type_register_static ("AtkTextRectangle",
(GBoxedCopyFunc)atk_text_rectangle_copy,
(GBoxedFreeFunc)g_free);
return our_type;
}
/**********************************/
static VALUE
rg_initialize(VALUE self, VALUE x, VALUE y, VALUE width, VALUE height)
{
AtkTextRectangle rectangle;
rectangle.x = NUM2INT(x);
rectangle.y = NUM2INT(y);
rectangle.width = NUM2INT(width);
rectangle.height = NUM2INT(height);
G_INITIALIZE(self, g_boxed_copy(ATK_TYPE_TEXT_RECTANGLE, &rectangle));
return Qnil;
}
/* Struct accessors */
static VALUE
rg_x(VALUE self)
{
return INT2NUM(_SELF(self)->x);
}
static VALUE
rg_y(VALUE self)
{
return INT2NUM(_SELF(self)->y);
}
static VALUE
rg_width(VALUE self)
{
return INT2NUM(_SELF(self)->width);
}
static VALUE
rg_height(VALUE self)
{
return INT2NUM(_SELF(self)->height);
}
static VALUE
rg_set_x(VALUE self, VALUE x)
{
_SELF(self)->x = NUM2INT(x);
return self;
}
static VALUE
rg_set_y(VALUE self, VALUE y)
{
_SELF(self)->y = NUM2INT(y);
return self;
}
static VALUE
rg_set_width(VALUE self, VALUE width)
{
_SELF(self)->width = NUM2INT(width);
return self;
}
static VALUE
rg_set_height(VALUE self, VALUE height)
{
_SELF(self)->height = NUM2INT(height);
return self;
}
static VALUE
rg_to_a(VALUE self)
{
AtkTextRectangle* a = _SELF(self);
return rb_ary_new3(4, INT2FIX(a->x), INT2FIX(a->y),
INT2FIX(a->width), INT2FIX(a->height));
}
#endif
void
Init_atk_text_rectangle(VALUE mAtk)
{
#ifdef HAVE_ATK_TEXT_GET_BOUNDED_RANGES
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_TEXT_RECTANGLE, "TextRectangle", mAtk);
RG_DEF_METHOD(initialize, 4);
RG_DEF_METHOD(x, 0);
RG_DEF_METHOD(y, 0);
RG_DEF_METHOD(width, 0);
RG_DEF_METHOD(height, 0);
RG_DEF_METHOD(set_x, 1);
RG_DEF_METHOD(set_y, 1);
RG_DEF_METHOD(set_width, 1);
RG_DEF_METHOD(set_height, 1);
RG_DEF_METHOD(to_a, 0);
#endif
}

View File

@ -0,0 +1,126 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2004 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE cUtil
static ID id_call;
/* How can I implement them?
guint atk_add_focus_tracker (AtkEventListener focus_tracker);
void atk_remove_focus_tracker (guint tracker_id);
void atk_focus_tracker_init (AtkEventListenerInit add_function);
void (*AtkEventListener) (AtkObject*);
void (*AtkEventListenerInit) (void);
guint atk_add_global_event_listener (GSignalEmissionHook listener,
const gchar *event_type);
void atk_remove_global_event_listener
(guint listener_id);
*/
static VALUE
rg_s_focus_tracker_notify(VALUE self, VALUE obj)
{
atk_focus_tracker_notify(RVAL2ATKOBJECT(obj));
return self;
}
static gint
key_snoop_func(AtkKeyEventStruct* event, gpointer func)
{
VALUE ret = rb_funcall((VALUE)func, id_call, 7,
INT2NUM(event->type), UINT2NUM(event->state),
UINT2NUM(event->keyval), INT2NUM(event->length),
CSTR2RVAL(event->string), UINT2NUM(event->keycode),
UINT2NUM(event->timestamp));
return NUM2INT(ret);
}
static VALUE
rg_s_add_key_event_listener(VALUE self)
{
guint ret;
VALUE func = rb_block_proc();
G_RELATIVE(self, func);
ret = atk_add_key_event_listener((AtkKeySnoopFunc)key_snoop_func, (gpointer)func);
return UINT2NUM(ret);
}
static VALUE
rg_s_remove_key_event_listener(VALUE self, VALUE id)
{
atk_remove_key_event_listener(NUM2UINT(id));
return self;
}
static VALUE
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)
{
return CSTR2RVAL(atk_get_toolkit_name());
}
static VALUE
rg_s_toolkit_version(G_GNUC_UNUSED VALUE self)
{
return CSTR2RVAL(atk_get_toolkit_version());
}
void
Init_atk_util(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_CLASS(ATK_TYPE_UTIL, "Util", mAtk);
id_call = rb_intern("call");
RG_DEF_SMETHOD(focus_tracker_notify, 1);
RG_DEF_SMETHOD(add_key_event_listener, 0);
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);
/* AtkCoordType */
G_DEF_CLASS(ATK_TYPE_COORD_TYPE, "CoordType", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, ATK_TYPE_COORD_TYPE, "ATK_");
/* AtkKeyEventType */
G_DEF_CLASS(ATK_TYPE_KEY_EVENT_TYPE, "KeyEventType", RG_TARGET_NAMESPACE);
G_DEF_CONSTANTS(RG_TARGET_NAMESPACE, ATK_TYPE_KEY_EVENT_TYPE, "ATK_");
}

View File

@ -0,0 +1,78 @@
/* -*- c-file-style: "ruby"; indent-tabs-mode: nil -*- */
/*
* Copyright (C) 2011 Ruby-GNOME2 Project Team
* Copyright (C) 2003 Masao Mutoh
*
* 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 "rbatkprivate.h"
#define RG_TARGET_NAMESPACE mValue
#define _SELF(s) (RVAL2ATKVALUE(s))
static VALUE
rg_current(VALUE self)
{
GValue gval = G_VALUE_INIT;
atk_value_get_current_value(_SELF(self), &gval);
return GVAL2RVAL(&gval);
}
static VALUE
rg_max(VALUE self)
{
GValue gval = G_VALUE_INIT;
atk_value_get_maximum_value(_SELF(self), &gval);
return GVAL2RVAL(&gval);
}
static VALUE
rg_min(VALUE self)
{
GValue gval = G_VALUE_INIT;
atk_value_get_minimum_value(_SELF(self), &gval);
return GVAL2RVAL(&gval);
}
static VALUE
rg_set_current(VALUE self, VALUE value)
{
GValue gval = G_VALUE_INIT;
g_value_init(&gval, RVAL2GTYPE(value));
rbgobj_rvalue_to_gvalue(value, &gval);
if (! atk_value_set_current_value(_SELF(self), &gval)){
rb_raise(rb_eRuntimeError, "Can't set the current value.");
}
return self;
}
void
Init_atk_value(VALUE mAtk)
{
VALUE RG_TARGET_NAMESPACE = G_DEF_INTERFACE(ATK_TYPE_VALUE, "Value", mAtk);
RG_DEF_METHOD(current, 0);
RG_DEF_METHOD(max, 0);
RG_DEF_METHOD(min, 0);
RG_DEF_METHOD(set_current, 1);
}