glib2 0.90.2-x86-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ChangeLog +3115 -0
- data/README +40 -0
- data/Rakefile +69 -0
- data/ext/glib2/depend +10 -0
- data/ext/glib2/extconf.rb +61 -0
- data/ext/glib2/glib2.def +89 -0
- data/ext/glib2/rbgcompat.h +30 -0
- data/ext/glib2/rbglib.c +330 -0
- data/ext/glib2/rbglib.h +96 -0
- data/ext/glib2/rbglib_bookmarkfile.c +595 -0
- data/ext/glib2/rbglib_completion.c +192 -0
- data/ext/glib2/rbglib_convert.c +195 -0
- data/ext/glib2/rbglib_error.c +95 -0
- data/ext/glib2/rbglib_fileutils.c +83 -0
- data/ext/glib2/rbglib_i18n.c +44 -0
- data/ext/glib2/rbglib_int64.c +157 -0
- data/ext/glib2/rbglib_iochannel.c +883 -0
- data/ext/glib2/rbglib_keyfile.c +846 -0
- data/ext/glib2/rbglib_maincontext.c +915 -0
- data/ext/glib2/rbglib_mainloop.c +87 -0
- data/ext/glib2/rbglib_messages.c +150 -0
- data/ext/glib2/rbglib_pollfd.c +111 -0
- data/ext/glib2/rbglib_shell.c +68 -0
- data/ext/glib2/rbglib_source.c +190 -0
- data/ext/glib2/rbglib_spawn.c +345 -0
- data/ext/glib2/rbglib_threads.c +51 -0
- data/ext/glib2/rbglib_timer.c +127 -0
- data/ext/glib2/rbglib_unicode.c +611 -0
- data/ext/glib2/rbglib_utils.c +386 -0
- data/ext/glib2/rbglib_win32.c +136 -0
- data/ext/glib2/rbgobj_boxed.c +251 -0
- data/ext/glib2/rbgobj_closure.c +337 -0
- data/ext/glib2/rbgobj_convert.c +167 -0
- data/ext/glib2/rbgobj_enums.c +961 -0
- data/ext/glib2/rbgobj_fundamental.c +30 -0
- data/ext/glib2/rbgobj_object.c +892 -0
- data/ext/glib2/rbgobj_param.c +390 -0
- data/ext/glib2/rbgobj_paramspecs.c +305 -0
- data/ext/glib2/rbgobj_signal.c +963 -0
- data/ext/glib2/rbgobj_strv.c +61 -0
- data/ext/glib2/rbgobj_type.c +851 -0
- data/ext/glib2/rbgobj_typeinstance.c +121 -0
- data/ext/glib2/rbgobj_typeinterface.c +148 -0
- data/ext/glib2/rbgobj_typemodule.c +66 -0
- data/ext/glib2/rbgobj_typeplugin.c +49 -0
- data/ext/glib2/rbgobj_value.c +313 -0
- data/ext/glib2/rbgobj_valuearray.c +59 -0
- data/ext/glib2/rbgobj_valuetypes.c +298 -0
- data/ext/glib2/rbgobject.c +406 -0
- data/ext/glib2/rbgobject.h +265 -0
- data/ext/glib2/rbgprivate.h +88 -0
- data/ext/glib2/rbgutil.c +316 -0
- data/ext/glib2/rbgutil.h +82 -0
- data/ext/glib2/rbgutil_callback.c +231 -0
- data/extconf.rb +49 -0
- data/lib/1.8/glib2.so +0 -0
- data/lib/1.9/glib2.so +0 -0
- data/lib/glib-mkenums.rb +199 -0
- data/lib/glib2.rb +239 -0
- data/lib/gnome2-win32-binary-downloader.rb +92 -0
- data/lib/mkmf-gnome2.rb +377 -0
- data/sample/bookmarkfile.rb +66 -0
- data/sample/completion.rb +45 -0
- data/sample/idle.rb +41 -0
- data/sample/iochannel.rb +44 -0
- data/sample/keyfile.rb +62 -0
- data/sample/shell.rb +36 -0
- data/sample/spawn.rb +25 -0
- data/sample/timeout.rb +28 -0
- data/sample/timeout2.rb +35 -0
- data/sample/timer.rb +40 -0
- data/sample/type-register.rb +103 -0
- data/sample/type-register2.rb +104 -0
- data/sample/utils.rb +54 -0
- data/test/glib-test-init.rb +6 -0
- data/test/glib-test-utils.rb +12 -0
- data/test/run-test.rb +21 -0
- data/test/test_enum.rb +99 -0
- data/test/test_file_utils.rb +15 -0
- data/test/test_glib2.rb +120 -0
- data/test/test_iochannel.rb +275 -0
- data/test/test_key_file.rb +38 -0
- data/test/test_mkenums.rb +25 -0
- data/test/test_signal.rb +20 -0
- data/test/test_timeout.rb +28 -0
- data/test/test_unicode.rb +369 -0
- data/test/test_utils.rb +37 -0
- data/test/test_win32.rb +13 -0
- data/test-unit/COPYING +56 -0
- data/test-unit/GPL +340 -0
- data/test-unit/History.txt +232 -0
- data/test-unit/Manifest.txt +110 -0
- data/test-unit/PSFL +271 -0
- data/test-unit/README.txt +75 -0
- data/test-unit/Rakefile +53 -0
- data/test-unit/TODO +5 -0
- data/test-unit/bin/testrb +5 -0
- data/test-unit/html/bar.png +0 -0
- data/test-unit/html/bar.svg +153 -0
- data/test-unit/html/developer.png +0 -0
- data/test-unit/html/developer.svg +469 -0
- data/test-unit/html/famfamfam-logo.png +0 -0
- data/test-unit/html/favicon.ico +0 -0
- data/test-unit/html/favicon.png +0 -0
- data/test-unit/html/favicon.svg +82 -0
- data/test-unit/html/heading-mark.png +0 -0
- data/test-unit/html/heading-mark.svg +393 -0
- data/test-unit/html/index.html +247 -0
- data/test-unit/html/index.html.ja +270 -0
- data/test-unit/html/install.png +0 -0
- data/test-unit/html/install.svg +636 -0
- data/test-unit/html/jp.png +0 -0
- data/test-unit/html/kinotan-failure.png +0 -0
- data/test-unit/html/kinotan-pass.png +0 -0
- data/test-unit/html/logo.png +0 -0
- data/test-unit/html/logo.svg +483 -0
- data/test-unit/html/reference.png +0 -0
- data/test-unit/html/rubyforge.png +0 -0
- data/test-unit/html/tango-logo.png +0 -0
- data/test-unit/html/test-unit.css +339 -0
- data/test-unit/html/tutorial.png +0 -0
- data/test-unit/html/tutorial.svg +559 -0
- data/test-unit/html/us.png +0 -0
- data/test-unit/images/color-diff.png +0 -0
- data/test-unit/lib/test/unit/assertionfailederror.rb +25 -0
- data/test-unit/lib/test/unit/assertions.rb +1334 -0
- data/test-unit/lib/test/unit/attribute.rb +125 -0
- data/test-unit/lib/test/unit/autorunner.rb +363 -0
- data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
- data/test-unit/lib/test/unit/collector/dir.rb +108 -0
- data/test-unit/lib/test/unit/collector/load.rb +144 -0
- data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
- data/test-unit/lib/test/unit/collector.rb +36 -0
- data/test-unit/lib/test/unit/color-scheme.rb +106 -0
- data/test-unit/lib/test/unit/color.rb +96 -0
- data/test-unit/lib/test/unit/diff.rb +740 -0
- data/test-unit/lib/test/unit/error.rb +130 -0
- data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
- data/test-unit/lib/test/unit/failure.rb +136 -0
- data/test-unit/lib/test/unit/fixture.rb +176 -0
- data/test-unit/lib/test/unit/notification.rb +129 -0
- data/test-unit/lib/test/unit/omission.rb +191 -0
- data/test-unit/lib/test/unit/pending.rb +150 -0
- data/test-unit/lib/test/unit/priority.rb +180 -0
- data/test-unit/lib/test/unit/runner/console.rb +52 -0
- data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
- data/test-unit/lib/test/unit/runner/tap.rb +8 -0
- data/test-unit/lib/test/unit/testcase.rb +483 -0
- data/test-unit/lib/test/unit/testresult.rb +121 -0
- data/test-unit/lib/test/unit/testsuite.rb +110 -0
- data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
- data/test-unit/lib/test/unit/ui/console/testrunner.rb +430 -0
- data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +63 -0
- data/test-unit/lib/test/unit/ui/tap/testrunner.rb +82 -0
- data/test-unit/lib/test/unit/ui/testrunner.rb +53 -0
- data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
- data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
- data/test-unit/lib/test/unit/util/backtracefilter.rb +42 -0
- data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
- data/test-unit/lib/test/unit/util/observable.rb +90 -0
- data/test-unit/lib/test/unit/util/output.rb +31 -0
- data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
- data/test-unit/lib/test/unit/version.rb +7 -0
- data/test-unit/lib/test/unit.rb +328 -0
- data/test-unit/sample/adder.rb +13 -0
- data/test-unit/sample/subtracter.rb +12 -0
- data/test-unit/sample/test_adder.rb +20 -0
- data/test-unit/sample/test_subtracter.rb +20 -0
- data/test-unit/sample/test_user.rb +23 -0
- data/test-unit/test/collector/test-descendant.rb +133 -0
- data/test-unit/test/collector/test-load.rb +442 -0
- data/test-unit/test/collector/test_dir.rb +406 -0
- data/test-unit/test/collector/test_objectspace.rb +100 -0
- data/test-unit/test/run-test.rb +15 -0
- data/test-unit/test/test-attribute.rb +86 -0
- data/test-unit/test/test-color-scheme.rb +69 -0
- data/test-unit/test/test-color.rb +47 -0
- data/test-unit/test/test-diff.rb +518 -0
- data/test-unit/test/test-emacs-runner.rb +60 -0
- data/test-unit/test/test-fixture.rb +287 -0
- data/test-unit/test/test-notification.rb +33 -0
- data/test-unit/test/test-omission.rb +81 -0
- data/test-unit/test/test-pending.rb +70 -0
- data/test-unit/test/test-priority.rb +119 -0
- data/test-unit/test/test-testcase.rb +544 -0
- data/test-unit/test/test_assertions.rb +1197 -0
- data/test-unit/test/test_error.rb +26 -0
- data/test-unit/test/test_failure.rb +33 -0
- data/test-unit/test/test_testresult.rb +113 -0
- data/test-unit/test/test_testsuite.rb +129 -0
- data/test-unit/test/testunit-test-util.rb +14 -0
- data/test-unit/test/ui/test_tap.rb +33 -0
- data/test-unit/test/ui/test_testrunmediator.rb +20 -0
- data/test-unit/test/util/test-method-owner-finder.rb +38 -0
- data/test-unit/test/util/test-output.rb +11 -0
- data/test-unit/test/util/test_backtracefilter.rb +41 -0
- data/test-unit/test/util/test_observable.rb +102 -0
- data/test-unit/test/util/test_procwrapper.rb +36 -0
- data/vendor/local/bin/envsubst.exe +0 -0
- data/vendor/local/bin/gettext.exe +0 -0
- data/vendor/local/bin/gettext.sh +123 -0
- data/vendor/local/bin/glib-genmarshal.exe +0 -0
- data/vendor/local/bin/glib-gettextize +188 -0
- data/vendor/local/bin/glib-mkenums +511 -0
- data/vendor/local/bin/gobject-query.exe +0 -0
- data/vendor/local/bin/gspawn-win32-helper-console.exe +0 -0
- data/vendor/local/bin/gspawn-win32-helper.exe +0 -0
- data/vendor/local/bin/intl.dll +0 -0
- data/vendor/local/bin/libasprintf-0.dll +0 -0
- data/vendor/local/bin/libgcc_s_dw2-1.dll +0 -0
- data/vendor/local/bin/libgio-2.0-0.dll +0 -0
- data/vendor/local/bin/libglib-2.0-0.dll +0 -0
- data/vendor/local/bin/libgmodule-2.0-0.dll +0 -0
- data/vendor/local/bin/libgobject-2.0-0.dll +0 -0
- data/vendor/local/bin/libgthread-2.0-0.dll +0 -0
- data/vendor/local/bin/ngettext.exe +0 -0
- data/vendor/local/include/autosprintf.h +66 -0
- data/vendor/local/include/glib-2.0/gio/gappinfo.h +237 -0
- data/vendor/local/include/glib-2.0/gio/gasyncinitable.h +119 -0
- data/vendor/local/include/glib-2.0/gio/gasyncresult.h +73 -0
- data/vendor/local/include/glib-2.0/gio/gbufferedinputstream.h +123 -0
- data/vendor/local/include/glib-2.0/gio/gbufferedoutputstream.h +82 -0
- data/vendor/local/include/glib-2.0/gio/gcancellable.h +103 -0
- data/vendor/local/include/glib-2.0/gio/gcharsetconverter.h +60 -0
- data/vendor/local/include/glib-2.0/gio/gcontenttype.h +57 -0
- data/vendor/local/include/glib-2.0/gio/gconverter.h +95 -0
- data/vendor/local/include/glib-2.0/gio/gconverterinputstream.h +80 -0
- data/vendor/local/include/glib-2.0/gio/gconverteroutputstream.h +80 -0
- data/vendor/local/include/glib-2.0/gio/gdatainputstream.h +133 -0
- data/vendor/local/include/glib-2.0/gio/gdataoutputstream.h +116 -0
- data/vendor/local/include/glib-2.0/gio/gdrive.h +225 -0
- data/vendor/local/include/glib-2.0/gio/gemblem.h +58 -0
- data/vendor/local/include/glib-2.0/gio/gemblemedicon.h +62 -0
- data/vendor/local/include/glib-2.0/gio/gfile.h +1017 -0
- data/vendor/local/include/glib-2.0/gio/gfileattribute.h +77 -0
- data/vendor/local/include/glib-2.0/gio/gfileenumerator.h +133 -0
- data/vendor/local/include/glib-2.0/gio/gfileicon.h +56 -0
- data/vendor/local/include/glib-2.0/gio/gfileinfo.h +951 -0
- data/vendor/local/include/glib-2.0/gio/gfileinputstream.h +112 -0
- data/vendor/local/include/glib-2.0/gio/gfileiostream.h +118 -0
- data/vendor/local/include/glib-2.0/gio/gfilemonitor.h +95 -0
- data/vendor/local/include/glib-2.0/gio/gfilenamecompleter.h +76 -0
- data/vendor/local/include/glib-2.0/gio/gfileoutputstream.h +119 -0
- data/vendor/local/include/glib-2.0/gio/gfilterinputstream.h +76 -0
- data/vendor/local/include/glib-2.0/gio/gfilteroutputstream.h +76 -0
- data/vendor/local/include/glib-2.0/gio/gicon.h +91 -0
- data/vendor/local/include/glib-2.0/gio/ginetaddress.h +103 -0
- data/vendor/local/include/glib-2.0/gio/ginetsocketaddress.h +69 -0
- data/vendor/local/include/glib-2.0/gio/ginitable.h +96 -0
- data/vendor/local/include/glib-2.0/gio/ginputstream.h +172 -0
- data/vendor/local/include/glib-2.0/gio/gio.h +101 -0
- data/vendor/local/include/glib-2.0/gio/gioenums.h +703 -0
- data/vendor/local/include/glib-2.0/gio/gioenumtypes.h +79 -0
- data/vendor/local/include/glib-2.0/gio/gioerror.h +48 -0
- data/vendor/local/include/glib-2.0/gio/giomodule.h +132 -0
- data/vendor/local/include/glib-2.0/gio/gioscheduler.h +52 -0
- data/vendor/local/include/glib-2.0/gio/giostream.h +112 -0
- data/vendor/local/include/glib-2.0/gio/giotypes.h +339 -0
- data/vendor/local/include/glib-2.0/gio/gloadableicon.h +97 -0
- data/vendor/local/include/glib-2.0/gio/gmemoryinputstream.h +82 -0
- data/vendor/local/include/glib-2.0/gio/gmemoryoutputstream.h +97 -0
- data/vendor/local/include/glib-2.0/gio/gmount.h +242 -0
- data/vendor/local/include/glib-2.0/gio/gmountoperation.h +123 -0
- data/vendor/local/include/glib-2.0/gio/gnativevolumemonitor.h +62 -0
- data/vendor/local/include/glib-2.0/gio/gnetworkaddress.h +69 -0
- data/vendor/local/include/glib-2.0/gio/gnetworkservice.h +69 -0
- data/vendor/local/include/glib-2.0/gio/goutputstream.h +207 -0
- data/vendor/local/include/glib-2.0/gio/gresolver.h +167 -0
- data/vendor/local/include/glib-2.0/gio/gseekable.h +99 -0
- data/vendor/local/include/glib-2.0/gio/gsimpleasyncresult.h +125 -0
- data/vendor/local/include/glib-2.0/gio/gsocket.h +176 -0
- data/vendor/local/include/glib-2.0/gio/gsocketaddress.h +79 -0
- data/vendor/local/include/glib-2.0/gio/gsocketaddressenumerator.h +89 -0
- data/vendor/local/include/glib-2.0/gio/gsocketclient.h +130 -0
- data/vendor/local/include/glib-2.0/gio/gsocketconnectable.h +68 -0
- data/vendor/local/include/glib-2.0/gio/gsocketconnection.h +91 -0
- data/vendor/local/include/glib-2.0/gio/gsocketcontrolmessage.h +105 -0
- data/vendor/local/include/glib-2.0/gio/gsocketlistener.h +138 -0
- data/vendor/local/include/glib-2.0/gio/gsocketservice.h +88 -0
- data/vendor/local/include/glib-2.0/gio/gsrvtarget.h +52 -0
- data/vendor/local/include/glib-2.0/gio/gtcpconnection.h +68 -0
- data/vendor/local/include/glib-2.0/gio/gthemedicon.h +63 -0
- data/vendor/local/include/glib-2.0/gio/gthreadedsocketservice.h +81 -0
- data/vendor/local/include/glib-2.0/gio/gvfs.h +125 -0
- data/vendor/local/include/glib-2.0/gio/gvolume.h +211 -0
- data/vendor/local/include/glib-2.0/gio/gvolumemonitor.h +151 -0
- data/vendor/local/include/glib-2.0/gio/gzlibcompressor.h +55 -0
- data/vendor/local/include/glib-2.0/gio/gzlibdecompressor.h +54 -0
- data/vendor/local/include/glib-2.0/glib/galloca.h +63 -0
- data/vendor/local/include/glib-2.0/glib/garray.h +179 -0
- data/vendor/local/include/glib-2.0/glib/gasyncqueue.h +120 -0
- data/vendor/local/include/glib-2.0/glib/gatomic.h +85 -0
- data/vendor/local/include/glib-2.0/glib/gbacktrace.h +68 -0
- data/vendor/local/include/glib-2.0/glib/gbase64.h +57 -0
- data/vendor/local/include/glib-2.0/glib/gbitlock.h +43 -0
- data/vendor/local/include/glib-2.0/glib/gbookmarkfile.h +191 -0
- data/vendor/local/include/glib-2.0/glib/gcache.h +69 -0
- data/vendor/local/include/glib-2.0/glib/gchecksum.h +86 -0
- data/vendor/local/include/glib-2.0/glib/gcompletion.h +77 -0
- data/vendor/local/include/glib-2.0/glib/gconvert.h +138 -0
- data/vendor/local/include/glib-2.0/glib/gdataset.h +122 -0
- data/vendor/local/include/glib-2.0/glib/gdate.h +263 -0
- data/vendor/local/include/glib-2.0/glib/gdir.h +52 -0
- data/vendor/local/include/glib-2.0/glib/gerror.h +98 -0
- data/vendor/local/include/glib-2.0/glib/gfileutils.h +128 -0
- data/vendor/local/include/glib-2.0/glib/ghash.h +166 -0
- data/vendor/local/include/glib-2.0/glib/ghook.h +181 -0
- data/vendor/local/include/glib-2.0/glib/ghostutils.h +40 -0
- data/vendor/local/include/glib-2.0/glib/gi18n-lib.h +38 -0
- data/vendor/local/include/glib-2.0/glib/gi18n.h +34 -0
- data/vendor/local/include/glib-2.0/glib/giochannel.h +366 -0
- data/vendor/local/include/glib-2.0/glib/gkeyfile.h +250 -0
- data/vendor/local/include/glib-2.0/glib/glist.h +120 -0
- data/vendor/local/include/glib-2.0/glib/gmacros.h +277 -0
- data/vendor/local/include/glib-2.0/glib/gmain.h +304 -0
- data/vendor/local/include/glib-2.0/glib/gmappedfile.h +49 -0
- data/vendor/local/include/glib-2.0/glib/gmarkup.h +163 -0
- data/vendor/local/include/glib-2.0/glib/gmem.h +203 -0
- data/vendor/local/include/glib-2.0/glib/gmessages.h +343 -0
- data/vendor/local/include/glib-2.0/glib/gnode.h +288 -0
- data/vendor/local/include/glib-2.0/glib/goption.h +370 -0
- data/vendor/local/include/glib-2.0/glib/gpattern.h +49 -0
- data/vendor/local/include/glib-2.0/glib/gpoll.h +93 -0
- data/vendor/local/include/glib-2.0/glib/gprimes.h +51 -0
- data/vendor/local/include/glib-2.0/glib/gprintf.h +52 -0
- data/vendor/local/include/glib-2.0/glib/gqsort.h +46 -0
- data/vendor/local/include/glib-2.0/glib/gquark.h +52 -0
- data/vendor/local/include/glib-2.0/glib/gqueue.h +127 -0
- data/vendor/local/include/glib-2.0/glib/grand.h +85 -0
- data/vendor/local/include/glib-2.0/glib/gregex.h +243 -0
- data/vendor/local/include/glib-2.0/glib/grel.h +97 -0
- data/vendor/local/include/glib-2.0/glib/gscanner.h +278 -0
- data/vendor/local/include/glib-2.0/glib/gsequence.h +128 -0
- data/vendor/local/include/glib-2.0/glib/gshell.h +55 -0
- data/vendor/local/include/glib-2.0/glib/gslice.h +86 -0
- data/vendor/local/include/glib-2.0/glib/gslist.h +114 -0
- data/vendor/local/include/glib-2.0/glib/gspawn.h +139 -0
- data/vendor/local/include/glib-2.0/glib/gstdio.h +159 -0
- data/vendor/local/include/glib-2.0/glib/gstrfuncs.h +267 -0
- data/vendor/local/include/glib-2.0/glib/gstring.h +178 -0
- data/vendor/local/include/glib-2.0/glib/gtestutils.h +292 -0
- data/vendor/local/include/glib-2.0/glib/gthread.h +408 -0
- data/vendor/local/include/glib-2.0/glib/gthreadpool.h +114 -0
- data/vendor/local/include/glib-2.0/glib/gtimer.h +65 -0
- data/vendor/local/include/glib-2.0/glib/gtree.h +91 -0
- data/vendor/local/include/glib-2.0/glib/gtypes.h +451 -0
- data/vendor/local/include/glib-2.0/glib/gunicode.h +404 -0
- data/vendor/local/include/glib-2.0/glib/gurifuncs.h +81 -0
- data/vendor/local/include/glib-2.0/glib/gutils.h +490 -0
- data/vendor/local/include/glib-2.0/glib/gvariant.h +224 -0
- data/vendor/local/include/glib-2.0/glib/gvarianttype.h +305 -0
- data/vendor/local/include/glib-2.0/glib/gwin32.h +114 -0
- data/vendor/local/include/glib-2.0/glib-object.h +41 -0
- data/vendor/local/include/glib-2.0/glib.h +97 -0
- data/vendor/local/include/glib-2.0/gmodule.h +101 -0
- data/vendor/local/include/glib-2.0/gobject/gboxed.h +236 -0
- data/vendor/local/include/glib-2.0/gobject/gclosure.h +251 -0
- data/vendor/local/include/glib-2.0/gobject/genums.h +261 -0
- data/vendor/local/include/glib-2.0/gobject/gmarshal.h +169 -0
- data/vendor/local/include/glib-2.0/gobject/gobject.h +562 -0
- data/vendor/local/include/glib-2.0/gobject/gobjectnotifyqueue.c +166 -0
- data/vendor/local/include/glib-2.0/gobject/gparam.h +410 -0
- data/vendor/local/include/glib-2.0/gobject/gparamspecs.h +1083 -0
- data/vendor/local/include/glib-2.0/gobject/gsignal.h +509 -0
- data/vendor/local/include/glib-2.0/gobject/gsourceclosure.h +51 -0
- data/vendor/local/include/glib-2.0/gobject/gtype.h +1608 -0
- data/vendor/local/include/glib-2.0/gobject/gtypemodule.h +263 -0
- data/vendor/local/include/glib-2.0/gobject/gtypeplugin.h +134 -0
- data/vendor/local/include/glib-2.0/gobject/gvalue.h +159 -0
- data/vendor/local/include/glib-2.0/gobject/gvaluearray.h +77 -0
- data/vendor/local/include/glib-2.0/gobject/gvaluecollector.h +222 -0
- data/vendor/local/include/glib-2.0/gobject/gvaluetypes.h +243 -0
- data/vendor/local/include/libintl.h +464 -0
- data/vendor/local/lib/GNU.Gettext.dll +0 -0
- data/vendor/local/lib/gio-2.0.def +800 -0
- data/vendor/local/lib/gio-2.0.lib +0 -0
- data/vendor/local/lib/glib-2.0/include/glibconfig.h +284 -0
- data/vendor/local/lib/glib-2.0.def +1381 -0
- data/vendor/local/lib/glib-2.0.lib +0 -0
- data/vendor/local/lib/gmodule-2.0.def +11 -0
- data/vendor/local/lib/gmodule-2.0.lib +0 -0
- data/vendor/local/lib/gobject-2.0.def +349 -0
- data/vendor/local/lib/gobject-2.0.lib +0 -0
- data/vendor/local/lib/gthread-2.0.def +3 -0
- data/vendor/local/lib/gthread-2.0.lib +0 -0
- data/vendor/local/lib/intl.lib +0 -0
- data/vendor/local/lib/libasprintf.dll.a +0 -0
- data/vendor/local/lib/libgio-2.0.dll.a +0 -0
- data/vendor/local/lib/libglib-2.0.dll.a +0 -0
- data/vendor/local/lib/libgmodule-2.0.dll.a +0 -0
- data/vendor/local/lib/libgobject-2.0.dll.a +0 -0
- data/vendor/local/lib/libgthread-2.0.dll.a +0 -0
- data/vendor/local/lib/libintl.def +31 -0
- data/vendor/local/lib/libintl.dll.a +0 -0
- data/vendor/local/lib/pkgconfig/gio-2.0.pc +14 -0
- data/vendor/local/lib/pkgconfig/glib-2.0.pc +15 -0
- data/vendor/local/lib/pkgconfig/gmodule-2.0.pc +14 -0
- data/vendor/local/lib/pkgconfig/gmodule-no-export-2.0.pc +14 -0
- data/vendor/local/lib/pkgconfig/gobject-2.0.pc +11 -0
- data/vendor/local/lib/pkgconfig/gthread-2.0.pc +11 -0
- data/vendor/local/manifest/gettext-runtime-dev_0.18.1.1-2_win32.mft +81 -0
- data/vendor/local/manifest/gettext-runtime_0.18.1.1-2_win32.mft +3 -0
- data/vendor/local/manifest/glib-dev_2.24.2-2_win32.mft +491 -0
- data/vendor/local/manifest/glib_2.24.2-2_win32.mft +101 -0
- data/vendor/local/share/aclocal/glib-2.0.m4 +211 -0
- data/vendor/local/share/aclocal/glib-gettext.m4 +432 -0
- data/vendor/local/share/doc/gettext/bind_textdomain_codeset.3.html +165 -0
- data/vendor/local/share/doc/gettext/bindtextdomain.3.html +160 -0
- data/vendor/local/share/doc/gettext/csharpdoc/GNU_Gettext.html +8 -0
- data/vendor/local/share/doc/gettext/csharpdoc/GNU_Gettext_GettextResourceManager.html +305 -0
- data/vendor/local/share/doc/gettext/csharpdoc/GNU_Gettext_GettextResourceSet.html +356 -0
- data/vendor/local/share/doc/gettext/csharpdoc/begin.html +11 -0
- data/vendor/local/share/doc/gettext/csharpdoc/index.html +10 -0
- data/vendor/local/share/doc/gettext/csharpdoc/namespaces.html +6 -0
- data/vendor/local/share/doc/gettext/envsubst.1.html +213 -0
- data/vendor/local/share/doc/gettext/gettext.1.html +266 -0
- data/vendor/local/share/doc/gettext/gettext.3.html +186 -0
- data/vendor/local/share/doc/gettext/ngettext.1.html +280 -0
- data/vendor/local/share/doc/gettext/ngettext.3.html +143 -0
- data/vendor/local/share/doc/gettext/textdomain.3.html +150 -0
- data/vendor/local/share/doc/glib-2.24.2/COPYING +482 -0
- data/vendor/local/share/doc/glib-dev-2.24.2/COPYING +482 -0
- data/vendor/local/share/doc/libasprintf/autosprintf_all.html +174 -0
- data/vendor/local/share/glib-2.0/gdb/glib.py +252 -0
- data/vendor/local/share/glib-2.0/gdb/gobject.py +305 -0
- data/vendor/local/share/glib-2.0/gettext/mkinstalldirs +111 -0
- data/vendor/local/share/glib-2.0/gettext/po/Makefile.in.in +277 -0
- data/vendor/local/share/gtk-doc/html/gio/GAppInfo.html +1390 -0
- data/vendor/local/share/gtk-doc/html/gio/GAsyncInitable.html +531 -0
- data/vendor/local/share/gtk-doc/html/gio/GAsyncResult.html +343 -0
- data/vendor/local/share/gtk-doc/html/gio/GBufferedInputStream.html +568 -0
- data/vendor/local/share/gtk-doc/html/gio/GBufferedOutputStream.html +295 -0
- data/vendor/local/share/gtk-doc/html/gio/GCancellable.html +620 -0
- data/vendor/local/share/gtk-doc/html/gio/GCharsetConverter.html +245 -0
- data/vendor/local/share/gtk-doc/html/gio/GConverter.html +388 -0
- data/vendor/local/share/gtk-doc/html/gio/GDataInputStream.html +993 -0
- data/vendor/local/share/gtk-doc/html/gio/GDataOutputStream.html +544 -0
- data/vendor/local/share/gtk-doc/html/gio/GDrive.html +1416 -0
- data/vendor/local/share/gtk-doc/html/gio/GEmblem.html +272 -0
- data/vendor/local/share/gtk-doc/html/gio/GEmblemedIcon.html +206 -0
- data/vendor/local/share/gtk-doc/html/gio/GFile.html +7450 -0
- data/vendor/local/share/gtk-doc/html/gio/GFileDescriptorBased.html +115 -0
- data/vendor/local/share/gtk-doc/html/gio/GFileEnumerator.html +520 -0
- data/vendor/local/share/gtk-doc/html/gio/GFileIOStream.html +312 -0
- data/vendor/local/share/gtk-doc/html/gio/GFileIcon.html +155 -0
- data/vendor/local/share/gtk-doc/html/gio/GFileInfo.html +3116 -0
- data/vendor/local/share/gtk-doc/html/gio/GFileInputStream.html +262 -0
- data/vendor/local/share/gtk-doc/html/gio/GFileMonitor.html +353 -0
- data/vendor/local/share/gtk-doc/html/gio/GFileOutputStream.html +301 -0
- data/vendor/local/share/gtk-doc/html/gio/GFilenameCompleter.html +217 -0
- data/vendor/local/share/gtk-doc/html/gio/GFilterInputStream.html +182 -0
- data/vendor/local/share/gtk-doc/html/gio/GFilterOutputStream.html +183 -0
- data/vendor/local/share/gtk-doc/html/gio/GIOModule.html +261 -0
- data/vendor/local/share/gtk-doc/html/gio/GIOStream.html +479 -0
- data/vendor/local/share/gtk-doc/html/gio/GIcon.html +331 -0
- data/vendor/local/share/gtk-doc/html/gio/GInetAddress.html +717 -0
- data/vendor/local/share/gtk-doc/html/gio/GInetSocketAddress.html +195 -0
- data/vendor/local/share/gtk-doc/html/gio/GInitable.html +388 -0
- data/vendor/local/share/gtk-doc/html/gio/GInputStream.html +808 -0
- data/vendor/local/share/gtk-doc/html/gio/GLoadableIcon.html +301 -0
- data/vendor/local/share/gtk-doc/html/gio/GMemoryInputStream.html +185 -0
- data/vendor/local/share/gtk-doc/html/gio/GMemoryOutputStream.html +362 -0
- data/vendor/local/share/gtk-doc/html/gio/GMount.html +1465 -0
- data/vendor/local/share/gtk-doc/html/gio/GMountOperation.html +848 -0
- data/vendor/local/share/gtk-doc/html/gio/GNetworkAddress.html +263 -0
- data/vendor/local/share/gtk-doc/html/gio/GNetworkService.html +248 -0
- data/vendor/local/share/gtk-doc/html/gio/GOutputStream.html +1006 -0
- data/vendor/local/share/gtk-doc/html/gio/GResolver.html +787 -0
- data/vendor/local/share/gtk-doc/html/gio/GSeekable.html +350 -0
- data/vendor/local/share/gtk-doc/html/gio/GSimpleAsyncResult.html +979 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocket.html +2152 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketAddress.html +297 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketClient.html +930 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketConnectable.html +428 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketConnection.html +548 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketControlMessage.html +274 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketListener.html +741 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketService.html +258 -0
- data/vendor/local/share/gtk-doc/html/gio/GThemedIcon.html +377 -0
- data/vendor/local/share/gtk-doc/html/gio/GThreadedSocketService.html +197 -0
- data/vendor/local/share/gtk-doc/html/gio/GUnixFDList.html +381 -0
- data/vendor/local/share/gtk-doc/html/gio/GUnixFDMessage.html +280 -0
- data/vendor/local/share/gtk-doc/html/gio/GUnixInputStream.html +237 -0
- data/vendor/local/share/gtk-doc/html/gio/GUnixOutputStream.html +237 -0
- data/vendor/local/share/gtk-doc/html/gio/GUnixSocketAddress.html +306 -0
- data/vendor/local/share/gtk-doc/html/gio/GVfs.html +274 -0
- data/vendor/local/share/gtk-doc/html/gio/GVolume.html +1028 -0
- data/vendor/local/share/gtk-doc/html/gio/GVolumeMonitor.html +709 -0
- data/vendor/local/share/gtk-doc/html/gio/GZlibCompressor.html +180 -0
- data/vendor/local/share/gtk-doc/html/gio/GZlibDecompressor.html +128 -0
- data/vendor/local/share/gtk-doc/html/gio/api-index-2-18.html +153 -0
- data/vendor/local/share/gtk-doc/html/gio/api-index-2-20.html +155 -0
- data/vendor/local/share/gtk-doc/html/gio/api-index-2-22.html +1088 -0
- data/vendor/local/share/gtk-doc/html/gio/api-index-2-24.html +206 -0
- data/vendor/local/share/gtk-doc/html/gio/api-index-deprecated.html +97 -0
- data/vendor/local/share/gtk-doc/html/gio/api-index-full.html +4499 -0
- data/vendor/local/share/gtk-doc/html/gio/async.html +44 -0
- data/vendor/local/share/gtk-doc/html/gio/ch01.html +171 -0
- data/vendor/local/share/gtk-doc/html/gio/ch02.html +45 -0
- data/vendor/local/share/gtk-doc/html/gio/ch03.html +80 -0
- data/vendor/local/share/gtk-doc/html/gio/ch19.html +75 -0
- data/vendor/local/share/gtk-doc/html/gio/ch20.html +217 -0
- data/vendor/local/share/gtk-doc/html/gio/ch20s02.html +41 -0
- data/vendor/local/share/gtk-doc/html/gio/ch20s03.html +39 -0
- data/vendor/local/share/gtk-doc/html/gio/conversion.html +44 -0
- data/vendor/local/share/gtk-doc/html/gio/extending-gio.html +96 -0
- data/vendor/local/share/gtk-doc/html/gio/extending.html +41 -0
- data/vendor/local/share/gtk-doc/html/gio/failable_initialization.html +38 -0
- data/vendor/local/share/gtk-doc/html/gio/file_mon.html +33 -0
- data/vendor/local/share/gtk-doc/html/gio/file_ops.html +50 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-Desktop-file-based-GAppInfo.html +339 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-Extension-Points.html +465 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-GContentType.html +381 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-GConverterInputstream.html +163 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-GConverterOutputstream.html +163 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-GFileAttribute.html +927 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-GIOError.html +328 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-GIOScheduler.html +297 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-GSrvTarget.html +313 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-Unix-Mounts.html +918 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-hierarchy.html +107 -0
- data/vendor/local/share/gtk-doc/html/gio/gio.devhelp +1235 -0
- data/vendor/local/share/gtk-doc/html/gio/gio.devhelp2 +1384 -0
- data/vendor/local/share/gtk-doc/html/gio/gvfs-overview.png +0 -0
- data/vendor/local/share/gtk-doc/html/gio/highlevel-socket.html +47 -0
- data/vendor/local/share/gtk-doc/html/gio/home.png +0 -0
- data/vendor/local/share/gtk-doc/html/gio/icons.html +50 -0
- data/vendor/local/share/gtk-doc/html/gio/index.html +318 -0
- data/vendor/local/share/gtk-doc/html/gio/index.sgml +1795 -0
- data/vendor/local/share/gtk-doc/html/gio/left.png +0 -0
- data/vendor/local/share/gtk-doc/html/gio/migrating.html +42 -0
- data/vendor/local/share/gtk-doc/html/gio/networking.html +57 -0
- data/vendor/local/share/gtk-doc/html/gio/pt01.html +39 -0
- data/vendor/local/share/gtk-doc/html/gio/pt02.html +293 -0
- data/vendor/local/share/gtk-doc/html/gio/resolver.html +47 -0
- data/vendor/local/share/gtk-doc/html/gio/right.png +0 -0
- data/vendor/local/share/gtk-doc/html/gio/streaming.html +92 -0
- data/vendor/local/share/gtk-doc/html/gio/style.css +257 -0
- data/vendor/local/share/gtk-doc/html/gio/types.html +41 -0
- data/vendor/local/share/gtk-doc/html/gio/up.png +0 -0
- data/vendor/local/share/gtk-doc/html/gio/utils.html +33 -0
- data/vendor/local/share/gtk-doc/html/gio/volume_mon.html +47 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-10.html +180 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-12.html +312 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-14.html +563 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-16.html +362 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-18.html +102 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-2.html +124 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-20.html +83 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-22.html +194 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-24.html +419 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-4.html +389 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-6.html +413 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-8.html +158 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-deprecated.html +340 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-full.html +7835 -0
- data/vendor/local/share/gtk-doc/html/glib/file-name-encodings.png +0 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Arrays.html +893 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Asynchronous-Queues.html +818 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Atomic-Operations.html +413 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Automatic-String-Completion.html +430 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Balanced-Binary-Trees.html +802 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Base64-Encoding.html +372 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Basic-Types.html +500 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Bookmark-file-parser.html +2054 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Byte-Arrays.html +560 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Byte-Order-Macros.html +1686 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Caches.html +398 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Character-Set-Conversion.html +1187 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Commandline-option-parser.html +1665 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Data-Checksums.html +460 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Datasets.html +528 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html +2042 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Double-ended-Queues.html +1278 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html +1406 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Dynamic-Loading-of-Modules.html +548 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Error-Reporting.html +1023 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-File-Utilities.html +1810 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-GVariant.html +3798 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-GVariantType.html +1815 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Glob-style-pattern-matching.html +295 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Hash-Tables.html +1512 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Hook-Functions.html +1367 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Hostname-Utilities.html +229 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-I18N.html +629 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-IO-Channels.html +2196 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Key-value-file-parser.html +2556 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Keyed-Data-Lists.html +612 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Lexical-Scanner.html +1451 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Limits-of-Basic-Types.html +389 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Allocation.html +1029 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Allocators.html +141 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Chunks.html +706 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Slices.html +510 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Message-Logging.html +703 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Macros.html +1045 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Utility-Functions.html +1523 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-N-ary-Trees.html +1466 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Numerical-Definitions.html +204 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Perl-compatible-regular-expressions.html +2648 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Pointer-Arrays.html +752 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Quarks.html +269 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Random-Numbers.html +578 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Relations-and-Tuples.html +483 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Sequences.html +1353 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Shell-related-Utilities.html +238 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Simple-XML-Subset-Parser.html +1283 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html +1212 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Spawning-Processes.html +924 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Standard-Macros.html +466 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-String-Chunks.html +301 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-String-Utility-Functions.html +2947 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Strings.html +1290 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Testing.html +1719 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html +3379 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Thread-Pools.html +606 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Threads.html +3411 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Timers.html +245 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Trash-Stacks.html +188 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Type-Conversion-Macros.html +263 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-URI-Functions.html +314 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html +3356 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Version-Information.html +150 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Warnings-and-Assertions.html +438 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Windows-Compatibility-Functions.html +476 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-building.html +438 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-changes.html +159 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-compiling.html +118 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-core.html +64 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-cross-compiling.html +160 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-data-types.html +120 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-fundamentals.html +59 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-gettextize.html +93 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-regex-syntax.html +2395 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-resources.html +121 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-running.html +302 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-utilities.html +112 -0
- data/vendor/local/share/gtk-doc/html/glib/glib.devhelp +2084 -0
- data/vendor/local/share/gtk-doc/html/glib/glib.devhelp2 +2556 -0
- data/vendor/local/share/gtk-doc/html/glib/glib.html +80 -0
- data/vendor/local/share/gtk-doc/html/glib/gtester-report.html +72 -0
- data/vendor/local/share/gtk-doc/html/glib/gtester.html +131 -0
- data/vendor/local/share/gtk-doc/html/glib/gvariant-format-strings.html +1171 -0
- data/vendor/local/share/gtk-doc/html/glib/home.png +0 -0
- data/vendor/local/share/gtk-doc/html/glib/index.html +336 -0
- data/vendor/local/share/gtk-doc/html/glib/index.sgml +2717 -0
- data/vendor/local/share/gtk-doc/html/glib/left.png +0 -0
- data/vendor/local/share/gtk-doc/html/glib/mainloop-states.gif +0 -0
- data/vendor/local/share/gtk-doc/html/glib/right.png +0 -0
- data/vendor/local/share/gtk-doc/html/glib/style.css +257 -0
- data/vendor/local/share/gtk-doc/html/glib/tools.html +41 -0
- data/vendor/local/share/gtk-doc/html/glib/up.png +0 -0
- data/vendor/local/share/gtk-doc/html/gobject/GTypeModule.html +710 -0
- data/vendor/local/share/gtk-doc/html/gobject/GTypePlugin.html +453 -0
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-10.html +85 -0
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-12.html +55 -0
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-14.html +51 -0
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-18.html +46 -0
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-2.html +38 -0
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-22.html +46 -0
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-24.html +72 -0
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-4.html +178 -0
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-6.html +42 -0
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-8.html +42 -0
- data/vendor/local/share/gtk-doc/html/gobject/api-index-deprecated.html +50 -0
- data/vendor/local/share/gtk-doc/html/gobject/api-index-full.html +2577 -0
- data/vendor/local/share/gtk-doc/html/gobject/ch01s02.html +136 -0
- data/vendor/local/share/gtk-doc/html/gobject/ch06s03.html +113 -0
- data/vendor/local/share/gtk-doc/html/gobject/chapter-gobject.html +293 -0
- data/vendor/local/share/gtk-doc/html/gobject/chapter-gtype.html +263 -0
- data/vendor/local/share/gtk-doc/html/gobject/chapter-intro.html +92 -0
- data/vendor/local/share/gtk-doc/html/gobject/chapter-signal.html +214 -0
- data/vendor/local/share/gtk-doc/html/gobject/glib-genmarshal.html +355 -0
- data/vendor/local/share/gtk-doc/html/gobject/glib-mkenums.html +295 -0
- data/vendor/local/share/gtk-doc/html/gobject/glue.png +0 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html +406 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Closures.html +2355 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html +847 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-GParamSpec.html +1423 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Generic-values.html +776 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Signals.html +2741 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Standard-Parameter-and-Value-Types.html +5242 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html +2609 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Type-Information.html +4227 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Value-arrays.html +413 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Varargs-Value-Collection.html +230 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-memory.html +234 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-properties.html +270 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-query.html +117 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject.devhelp +723 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject.devhelp2 +757 -0
- data/vendor/local/share/gtk-doc/html/gobject/gtype-conventions.html +143 -0
- data/vendor/local/share/gtk-doc/html/gobject/gtype-instantiable-classed.html +287 -0
- data/vendor/local/share/gtk-doc/html/gobject/gtype-non-instantiable-classed.html +316 -0
- data/vendor/local/share/gtk-doc/html/gobject/gtype-non-instantiable.html +76 -0
- data/vendor/local/share/gtk-doc/html/gobject/home.png +0 -0
- data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-chainup.html +100 -0
- data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-code.html +86 -0
- data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-construction.html +113 -0
- data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-destruction.html +122 -0
- data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-methods.html +257 -0
- data/vendor/local/share/gtk-doc/html/gobject/howto-gobject.html +283 -0
- data/vendor/local/share/gtk-doc/html/gobject/howto-interface-implement.html +125 -0
- data/vendor/local/share/gtk-doc/html/gobject/howto-interface-properties.html +167 -0
- data/vendor/local/share/gtk-doc/html/gobject/howto-interface.html +160 -0
- data/vendor/local/share/gtk-doc/html/gobject/howto-signals.html +121 -0
- data/vendor/local/share/gtk-doc/html/gobject/index.html +187 -0
- data/vendor/local/share/gtk-doc/html/gobject/index.sgml +734 -0
- data/vendor/local/share/gtk-doc/html/gobject/left.png +0 -0
- data/vendor/local/share/gtk-doc/html/gobject/pr01.html +72 -0
- data/vendor/local/share/gtk-doc/html/gobject/pt01.html +80 -0
- data/vendor/local/share/gtk-doc/html/gobject/pt02.html +66 -0
- data/vendor/local/share/gtk-doc/html/gobject/pt03.html +55 -0
- data/vendor/local/share/gtk-doc/html/gobject/right.png +0 -0
- data/vendor/local/share/gtk-doc/html/gobject/rn01.html +82 -0
- data/vendor/local/share/gtk-doc/html/gobject/rn02.html +47 -0
- data/vendor/local/share/gtk-doc/html/gobject/signal.html +377 -0
- data/vendor/local/share/gtk-doc/html/gobject/style.css +257 -0
- data/vendor/local/share/gtk-doc/html/gobject/tools-ginspector.html +35 -0
- data/vendor/local/share/gtk-doc/html/gobject/tools-gob.html +40 -0
- data/vendor/local/share/gtk-doc/html/gobject/tools-gtkdoc.html +63 -0
- data/vendor/local/share/gtk-doc/html/gobject/tools-refdb.html +55 -0
- data/vendor/local/share/gtk-doc/html/gobject/tools-vala.html +43 -0
- data/vendor/local/share/gtk-doc/html/gobject/up.png +0 -0
- data/vendor/local/share/locale/af/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/am/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ar/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/as/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ast/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/az/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/be/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/be/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/be@latin/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/bg/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/bg/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/bn/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/bn_IN/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/bs/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ca/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/ca/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/cs/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/cs/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/cy/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/da/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/da/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/de/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/de/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/dz/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/el/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/el/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/en@boldquot/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/en@quot/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/en@shaw/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/en_CA/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/en_GB/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/eo/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/eo/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/es/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/es/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/et/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/et/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/eu/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/fa/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/fi/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/fi/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/fr/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/fr/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ga/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/ga/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/gl/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/gl/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/gu/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/he/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/hi/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/hr/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/hu/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/hy/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/id/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/id/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/is/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/it/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/it/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ja/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/ja/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ka/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/kn/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ko/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/ko/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ku/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/locale.alias +77 -0
- data/vendor/local/share/locale/lt/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/lv/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/mai/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/mg/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/mk/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ml/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/mn/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/mr/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ms/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/nb/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/nb/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/nds/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ne/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/nl/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/nl/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/nn/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/nn/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/oc/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/or/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/pa/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/pl/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/pl/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ps/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/pt/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/pt/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/pt_BR/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/pt_BR/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ro/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/ro/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ru/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/ru/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/rw/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/si/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/sk/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/sk/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/sl/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/sl/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/sq/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/sr/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/sr/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/sr@ije/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/sr@latin/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/sv/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/sv/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/ta/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/te/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/th/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/tl/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/tr/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/tr/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/tt/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/uk/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/uk/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/vi/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/vi/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/wa/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/xh/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/yi/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/zh_CN/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/zh_CN/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/zh_HK/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/zh_HK/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/locale/zh_TW/LC_MESSAGES/gettext-runtime.mo +0 -0
- data/vendor/local/share/locale/zh_TW/LC_MESSAGES/glib20.mo +0 -0
- data/vendor/local/share/man/man1/envsubst.1 +54 -0
- data/vendor/local/share/man/man1/gettext.1 +69 -0
- data/vendor/local/share/man/man1/glib-genmarshal.1 +307 -0
- data/vendor/local/share/man/man1/glib-mkenums.1 +234 -0
- data/vendor/local/share/man/man1/gobject-query.1 +83 -0
- data/vendor/local/share/man/man1/ngettext.1 +68 -0
- data/vendor/local/share/man/man3/bind_textdomain_codeset.3 +72 -0
- data/vendor/local/share/man/man3/bindtextdomain.3 +69 -0
- data/vendor/local/share/man/man3/dcgettext.3 +1 -0
- data/vendor/local/share/man/man3/dcngettext.3 +1 -0
- data/vendor/local/share/man/man3/dgettext.3 +1 -0
- data/vendor/local/share/man/man3/dngettext.3 +1 -0
- data/vendor/local/share/man/man3/gettext.3 +99 -0
- data/vendor/local/share/man/man3/ngettext.3 +60 -0
- data/vendor/local/share/man/man3/textdomain.3 +57 -0
- data/vendor/local/src/tml/packaging/gettext_0.18.1.1-2_win32.log +10423 -0
- data/vendor/local/src/tml/packaging/gettext_0.18.1.1-2_win32.sh +457 -0
- data/vendor/local/src/tml/packaging/glib_2.24.2-2_win32.log +2602 -0
- data/vendor/local/src/tml/packaging/glib_2.24.2-2_win32.sh +290 -0
- metadata +940 -0
@@ -0,0 +1,316 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
5
|
+
<title>Non-instantiable classed types: interfaces</title>
|
6
|
+
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
7
|
+
<link rel="home" href="index.html" title="GObject Reference Manual">
|
8
|
+
<link rel="up" href="chapter-gtype.html" title="The GLib Dynamic Type System">
|
9
|
+
<link rel="prev" href="gtype-instantiable-classed.html" title="Instantiable classed types: objects">
|
10
|
+
<link rel="next" href="chapter-gobject.html" title="The GObject base class">
|
11
|
+
<meta name="generator" content="GTK-Doc V1.14 (XML mode)">
|
12
|
+
<link rel="stylesheet" href="style.css" type="text/css">
|
13
|
+
</head>
|
14
|
+
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
15
|
+
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
|
16
|
+
<td><a accesskey="p" href="gtype-instantiable-classed.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
|
17
|
+
<td><a accesskey="u" href="chapter-gtype.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
|
18
|
+
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
|
19
|
+
<th width="100%" align="center">GObject Reference Manual</th>
|
20
|
+
<td><a accesskey="n" href="chapter-gobject.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
|
21
|
+
</tr></table>
|
22
|
+
<div class="sect1" title="Non-instantiable classed types: interfaces">
|
23
|
+
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
24
|
+
<a name="gtype-non-instantiable-classed"></a>Non-instantiable classed types: interfaces</h2></div></div></div>
|
25
|
+
<p>
|
26
|
+
GType's interfaces are very similar to Java's interfaces. They allow
|
27
|
+
to describe a common API that several classes will adhere to.
|
28
|
+
Imagine the play, pause and stop buttons on hi-fi equipment - those can
|
29
|
+
be seen as a playback interface. Once you know what they do, you can
|
30
|
+
control your CD player, MP3 player or anything that uses these symbols.
|
31
|
+
To declare an interface you have to register a non-instantiable
|
32
|
+
classed type which derives from
|
33
|
+
<span class="type"><a class="link" href="gobject-Type-Information.html#GTypeInterface" title="GTypeInterface">GTypeInterface</a></span>. The following piece of code declares such an interface.
|
34
|
+
</p>
|
35
|
+
<pre class="programlisting">
|
36
|
+
#define MAMAN_IBAZ_TYPE (maman_ibaz_get_type ())
|
37
|
+
#define MAMAN_IBAZ(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAMAN_IBAZ_TYPE, MamanIbaz))
|
38
|
+
#define MAMAN_IS_IBAZ(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAMAN_IBAZ_TYPE))
|
39
|
+
#define MAMAN_IBAZ_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), MAMAN_IBAZ_TYPE, MamanIbazInterface))
|
40
|
+
|
41
|
+
typedef struct _MamanIbaz MamanIbaz; /* dummy object */
|
42
|
+
typedef struct _MamanIbazInterface MamanIbazInterface;
|
43
|
+
|
44
|
+
struct _MamanIbazInterface {
|
45
|
+
GTypeInterface parent;
|
46
|
+
|
47
|
+
void (*do_action) (MamanIbaz *self);
|
48
|
+
};
|
49
|
+
|
50
|
+
GType maman_ibaz_get_type (void);
|
51
|
+
|
52
|
+
void maman_ibaz_do_action (MamanIbaz *self);
|
53
|
+
</pre>
|
54
|
+
<p>
|
55
|
+
The interface function, <code class="function">maman_ibaz_do_action</code> is implemented
|
56
|
+
in a pretty simple way:
|
57
|
+
</p>
|
58
|
+
<pre class="programlisting">
|
59
|
+
void maman_ibaz_do_action (MamanIbaz *self)
|
60
|
+
{
|
61
|
+
MAMAN_IBAZ_GET_INTERFACE (self)->do_action (self);
|
62
|
+
}
|
63
|
+
</pre>
|
64
|
+
<p>
|
65
|
+
<code class="function">maman_ibaz_get_type</code> registers a type named <span class="emphasis"><em>MamanIBaz</em></span>
|
66
|
+
which inherits from G_TYPE_INTERFACE. All interfaces must be children of G_TYPE_INTERFACE in the
|
67
|
+
inheritance tree.
|
68
|
+
</p>
|
69
|
+
<p>
|
70
|
+
An interface is defined by only one structure which must contain as first member
|
71
|
+
a <span class="type"><a class="link" href="gobject-Type-Information.html#GTypeInterface" title="GTypeInterface">GTypeInterface</a></span> structure. The interface structure is expected to
|
72
|
+
contain the function pointers of the interface methods. It is good style to
|
73
|
+
define helper functions for each of the interface methods which simply call
|
74
|
+
the interface' method directly: <code class="function">maman_ibaz_do_action</code>
|
75
|
+
is one of these.
|
76
|
+
</p>
|
77
|
+
<p>
|
78
|
+
Once an interface type is registered, you must register implementations for these
|
79
|
+
interfaces. The function named <code class="function">maman_baz_get_type</code> registers
|
80
|
+
a new GType named MamanBaz which inherits from <span class="type"><a class="link" href="gobject-The-Base-Object-Type.html#GObject">GObject</a></span> and which
|
81
|
+
implements the interface <span class="type">MamanIBaz</span>.
|
82
|
+
</p>
|
83
|
+
<pre class="programlisting">
|
84
|
+
static void maman_baz_do_action (MamanIbaz *self)
|
85
|
+
{
|
86
|
+
g_print ("Baz implementation of IBaz interface Action.\n");
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
static void
|
91
|
+
baz_interface_init (gpointer g_iface,
|
92
|
+
gpointer iface_data)
|
93
|
+
{
|
94
|
+
MamanIbazInterface *iface = (MamanIbazInterface *)g_iface;
|
95
|
+
iface->do_action = maman_baz_do_action;
|
96
|
+
}
|
97
|
+
|
98
|
+
GType
|
99
|
+
maman_baz_get_type (void)
|
100
|
+
{
|
101
|
+
static GType type = 0;
|
102
|
+
if (type == 0) {
|
103
|
+
static const GTypeInfo info = {
|
104
|
+
sizeof (MamanBazInterface),
|
105
|
+
NULL, /* base_init */
|
106
|
+
NULL, /* base_finalize */
|
107
|
+
NULL, /* class_init */
|
108
|
+
NULL, /* class_finalize */
|
109
|
+
NULL, /* class_data */
|
110
|
+
sizeof (MamanBaz),
|
111
|
+
0, /* n_preallocs */
|
112
|
+
NULL /* instance_init */
|
113
|
+
};
|
114
|
+
static const GInterfaceInfo ibaz_info = {
|
115
|
+
(GInterfaceInitFunc) baz_interface_init, /* interface_init */
|
116
|
+
NULL, /* interface_finalize */
|
117
|
+
NULL /* interface_data */
|
118
|
+
};
|
119
|
+
type = g_type_register_static (G_TYPE_OBJECT,
|
120
|
+
"MamanBazType",
|
121
|
+
&info, 0);
|
122
|
+
g_type_add_interface_static (type,
|
123
|
+
MAMAN_IBAZ_TYPE,
|
124
|
+
&ibaz_info);
|
125
|
+
}
|
126
|
+
return type;
|
127
|
+
}
|
128
|
+
</pre>
|
129
|
+
<p>
|
130
|
+
</p>
|
131
|
+
<p>
|
132
|
+
<code class="function"><a class="link" href="gobject-Type-Information.html#g-type-add-interface-static" title="g_type_add_interface_static ()">g_type_add_interface_static</a></code> records in the type system that
|
133
|
+
a given type implements also <span class="type">FooInterface</span>
|
134
|
+
(<code class="function">foo_interface_get_type</code> returns the type of
|
135
|
+
<span class="type">FooInterface</span>).
|
136
|
+
The <span class="type"><a class="link" href="gobject-Type-Information.html#GInterfaceInfo" title="GInterfaceInfo">GInterfaceInfo</a></span> structure holds
|
137
|
+
information about the implementation of the interface:
|
138
|
+
</p>
|
139
|
+
<pre class="programlisting">
|
140
|
+
struct _GInterfaceInfo
|
141
|
+
{
|
142
|
+
GInterfaceInitFunc interface_init;
|
143
|
+
GInterfaceFinalizeFunc interface_finalize;
|
144
|
+
gpointer interface_data;
|
145
|
+
};
|
146
|
+
</pre>
|
147
|
+
<p>
|
148
|
+
</p>
|
149
|
+
<p>
|
150
|
+
When having no special requirements you also can use the <code class="function">G_DEFINE_INTERFACE</code> macro:
|
151
|
+
</p>
|
152
|
+
<pre class="programlisting">
|
153
|
+
G_DEFINE_INTERFACE (MamanBaz, maman_baz, G_TYPE_OBJECT)
|
154
|
+
</pre>
|
155
|
+
<p>
|
156
|
+
</p>
|
157
|
+
<div class="sect2" title="Interface Initialization">
|
158
|
+
<div class="titlepage"><div><div><h3 class="title">
|
159
|
+
<a name="gtype-non-instantiable-classed-init"></a>Interface Initialization</h3></div></div></div>
|
160
|
+
<p>
|
161
|
+
When an instantiable classed type which registered an interface
|
162
|
+
implementation is created for the first time, its class structure
|
163
|
+
is initialized following the process
|
164
|
+
described in <a class="xref" href="gtype-instantiable-classed.html" title="Instantiable classed types: objects">the section called “Instantiable classed types: objects”</a>.
|
165
|
+
After that, the interface implementations associated with
|
166
|
+
the type are initialized.
|
167
|
+
</p>
|
168
|
+
<p>
|
169
|
+
First a memory buffer is allocated to hold the interface structure. The parent's
|
170
|
+
interface structure is then copied over to the new interface structure (the parent
|
171
|
+
interface is already initialized at that point). If there is no parent interface,
|
172
|
+
the interface structure is initialized with zeros. The g_type and the g_instance_type
|
173
|
+
fields are then initialized: g_type is set to the type of the most-derived interface
|
174
|
+
and g_instance_type is set to the type of the most derived type which implements
|
175
|
+
this interface.
|
176
|
+
</p>
|
177
|
+
<p>
|
178
|
+
Finally, the interface' most-derived <code class="function">base_init</code> function and then
|
179
|
+
the implementation's <code class="function">interface_init</code>
|
180
|
+
function are invoked. It is important to understand that if there are multiple
|
181
|
+
implementations of an interface the <code class="function">base_init</code> and
|
182
|
+
<code class="function">interface_init</code> functions will be
|
183
|
+
invoked once for each implementation initialized.
|
184
|
+
</p>
|
185
|
+
<p>
|
186
|
+
It is thus common for base_init functions to hold a local static boolean variable
|
187
|
+
which makes sure that the interface type is initialized only once even if there are
|
188
|
+
multiple implementations of the interface:
|
189
|
+
</p>
|
190
|
+
<pre class="programlisting">
|
191
|
+
static void
|
192
|
+
maman_ibaz_base_init (gpointer g_iface)
|
193
|
+
{
|
194
|
+
static gboolean initialized = FALSE;
|
195
|
+
|
196
|
+
if (!initialized) {
|
197
|
+
/* create interface signals here. */
|
198
|
+
initialized = TRUE;
|
199
|
+
}
|
200
|
+
}
|
201
|
+
</pre>
|
202
|
+
<p>
|
203
|
+
</p>
|
204
|
+
<p>
|
205
|
+
If you have found the stuff about interface hairy, you are right: it is hairy but
|
206
|
+
there is not much I can do about it. What I can do is summarize what you need to know
|
207
|
+
about interfaces:
|
208
|
+
</p>
|
209
|
+
<p>
|
210
|
+
The above process can be summarized as follows:
|
211
|
+
</p>
|
212
|
+
<div class="table">
|
213
|
+
<a name="ginterface-init-table"></a><p class="title"><b>Table 2. Interface Initialization</b></p>
|
214
|
+
<div class="table-contents"><table summary="Interface Initialization" border="1">
|
215
|
+
<colgroup>
|
216
|
+
<col align="left">
|
217
|
+
<col align="left">
|
218
|
+
<col align="left">
|
219
|
+
</colgroup>
|
220
|
+
<thead><tr>
|
221
|
+
<th align="left">Invocation time</th>
|
222
|
+
<th align="left">Function Invoked</th>
|
223
|
+
<th align="left">Function's parameters</th>
|
224
|
+
<th>Remark</th>
|
225
|
+
</tr></thead>
|
226
|
+
<tbody>
|
227
|
+
<tr>
|
228
|
+
<td rowspan="2" align="left">First call to <code class="function"><a class="link" href="gobject-Type-Information.html#g-type-create-instance" title="g_type_create_instance ()">g_type_create_instance</a></code> for type
|
229
|
+
implementing interface
|
230
|
+
</td>
|
231
|
+
<td align="left">interface' base_init function</td>
|
232
|
+
<td align="left">On interface' vtable</td>
|
233
|
+
<td>Register interface' signals here (use a local static
|
234
|
+
boolean variable as described above to make sure not to register them
|
235
|
+
twice.).</td>
|
236
|
+
</tr>
|
237
|
+
<tr>
|
238
|
+
<td align="left">interface' interface_init function</td>
|
239
|
+
<td align="left">On interface' vtable</td>
|
240
|
+
<td>
|
241
|
+
Initialize interface' implementation. That is, initialize the interface
|
242
|
+
method pointers in the interface structure to the function's implementation.
|
243
|
+
</td>
|
244
|
+
</tr>
|
245
|
+
</tbody>
|
246
|
+
</table></div>
|
247
|
+
</div>
|
248
|
+
<p><br class="table-break">
|
249
|
+
It is highly unlikely (i.e. I do not know of <span class="emphasis"><em>anyone</em></span> who actually
|
250
|
+
used it) you will ever need other more fancy things such as the ones described in the
|
251
|
+
following section (<a class="xref" href="gtype-non-instantiable-classed.html#gtype-non-instantiable-classed-dest" title="Interface Destruction">the section called “Interface Destruction”</a>).
|
252
|
+
</p>
|
253
|
+
</div>
|
254
|
+
<div class="sect2" title="Interface Destruction">
|
255
|
+
<div class="titlepage"><div><div><h3 class="title">
|
256
|
+
<a name="gtype-non-instantiable-classed-dest"></a>Interface Destruction</h3></div></div></div>
|
257
|
+
<p>
|
258
|
+
When the last instance of an instantiable type which registered
|
259
|
+
an interface implementation is destroyed, the interface's
|
260
|
+
implementations associated to the type are destroyed.
|
261
|
+
</p>
|
262
|
+
<p>
|
263
|
+
To destroy an interface implementation, GType first calls the
|
264
|
+
implementation's <code class="function">interface_finalize</code> function
|
265
|
+
and then the interface's most-derived
|
266
|
+
<code class="function">base_finalize</code> function.
|
267
|
+
</p>
|
268
|
+
<p>
|
269
|
+
Again, it is important to understand, as in
|
270
|
+
<a class="xref" href="gtype-non-instantiable-classed.html#gtype-non-instantiable-classed-init" title="Interface Initialization">the section called “Interface Initialization”</a>,
|
271
|
+
that both <code class="function">interface_finalize</code> and <code class="function">base_finalize</code>
|
272
|
+
are invoked exactly once for the destruction of each implementation of an interface. Thus,
|
273
|
+
if you were to use one of these functions, you would need to use a static integer variable
|
274
|
+
which would hold the number of instances of implementations of an interface such that
|
275
|
+
the interface's class is destroyed only once (when the integer variable reaches zero).
|
276
|
+
</p>
|
277
|
+
<p>
|
278
|
+
The above process can be summarized as follows:
|
279
|
+
</p>
|
280
|
+
<div class="table">
|
281
|
+
<a name="ginterface-fini-table"></a><p class="title"><b>Table 3. Interface Finalization</b></p>
|
282
|
+
<div class="table-contents"><table summary="Interface Finalization" border="1">
|
283
|
+
<colgroup>
|
284
|
+
<col align="left">
|
285
|
+
<col align="left">
|
286
|
+
<col align="left">
|
287
|
+
</colgroup>
|
288
|
+
<thead><tr>
|
289
|
+
<th align="left">Invocation time</th>
|
290
|
+
<th align="left">Function Invoked</th>
|
291
|
+
<th align="left">Function's parameters</th>
|
292
|
+
</tr></thead>
|
293
|
+
<tbody>
|
294
|
+
<tr>
|
295
|
+
<td rowspan="2" align="left">Last call to <code class="function"><a class="link" href="gobject-Type-Information.html#g-type-free-instance" title="g_type_free_instance ()">g_type_free_instance</a></code> for type
|
296
|
+
implementing interface
|
297
|
+
</td>
|
298
|
+
<td align="left">interface' interface_finalize function</td>
|
299
|
+
<td align="left">On interface' vtable</td>
|
300
|
+
</tr>
|
301
|
+
<tr>
|
302
|
+
<td align="left">interface' base_finalize function</td>
|
303
|
+
<td align="left">On interface' vtable</td>
|
304
|
+
</tr>
|
305
|
+
</tbody>
|
306
|
+
</table></div>
|
307
|
+
</div>
|
308
|
+
<p><br class="table-break">
|
309
|
+
</p>
|
310
|
+
</div>
|
311
|
+
</div>
|
312
|
+
<div class="footer">
|
313
|
+
<hr>
|
314
|
+
Generated by GTK-Doc V1.14</div>
|
315
|
+
</body>
|
316
|
+
</html>
|
@@ -0,0 +1,76 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
5
|
+
<title>Non-instantiable non-classed fundamental types</title>
|
6
|
+
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
7
|
+
<link rel="home" href="index.html" title="GObject Reference Manual">
|
8
|
+
<link rel="up" href="chapter-gtype.html" title="The GLib Dynamic Type System">
|
9
|
+
<link rel="prev" href="gtype-conventions.html" title="Conventions">
|
10
|
+
<link rel="next" href="gtype-instantiable-classed.html" title="Instantiable classed types: objects">
|
11
|
+
<meta name="generator" content="GTK-Doc V1.14 (XML mode)">
|
12
|
+
<link rel="stylesheet" href="style.css" type="text/css">
|
13
|
+
</head>
|
14
|
+
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
15
|
+
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
|
16
|
+
<td><a accesskey="p" href="gtype-conventions.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
|
17
|
+
<td><a accesskey="u" href="chapter-gtype.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
|
18
|
+
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
|
19
|
+
<th width="100%" align="center">GObject Reference Manual</th>
|
20
|
+
<td><a accesskey="n" href="gtype-instantiable-classed.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
|
21
|
+
</tr></table>
|
22
|
+
<div class="sect1" title="Non-instantiable non-classed fundamental types">
|
23
|
+
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
24
|
+
<a name="gtype-non-instantiable"></a>Non-instantiable non-classed fundamental types</h2></div></div></div>
|
25
|
+
<p>
|
26
|
+
A lot of types are not instantiable by the type system and do not have
|
27
|
+
a class. Most of these types are fundamental trivial types such as <span class="emphasis"><em>gchar</em></span>,
|
28
|
+
registered in <code class="function">g_value_types_init</code> (in <code class="filename">gvaluetypes.c</code>).
|
29
|
+
</p>
|
30
|
+
<p>
|
31
|
+
To register such a type in the type system, you just need to fill the
|
32
|
+
<span class="type"><a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo">GTypeInfo</a></span> structure with zeros since these types are also most of the time
|
33
|
+
fundamental:
|
34
|
+
</p>
|
35
|
+
<pre class="programlisting">
|
36
|
+
GTypeInfo info = {
|
37
|
+
0, /* class_size */
|
38
|
+
NULL, /* base_init */
|
39
|
+
NULL, /* base_destroy */
|
40
|
+
NULL, /* class_init */
|
41
|
+
NULL, /* class_destroy */
|
42
|
+
NULL, /* class_data */
|
43
|
+
0, /* instance_size */
|
44
|
+
0, /* n_preallocs */
|
45
|
+
NULL, /* instance_init */
|
46
|
+
NULL, /* value_table */
|
47
|
+
};
|
48
|
+
static const GTypeValueTable value_table = {
|
49
|
+
value_init_long0, /* value_init */
|
50
|
+
NULL, /* value_free */
|
51
|
+
value_copy_long0, /* value_copy */
|
52
|
+
NULL, /* value_peek_pointer */
|
53
|
+
"i", /* collect_format */
|
54
|
+
value_collect_int, /* collect_value */
|
55
|
+
"p", /* lcopy_format */
|
56
|
+
value_lcopy_char, /* lcopy_value */
|
57
|
+
};
|
58
|
+
info.value_table = &value_table;
|
59
|
+
type = g_type_register_fundamental (G_TYPE_CHAR, "gchar", &info, &finfo, 0);
|
60
|
+
</pre>
|
61
|
+
<p>
|
62
|
+
</p>
|
63
|
+
<p>
|
64
|
+
Having non-instantiable types might seem a bit useless: what good is a type
|
65
|
+
if you cannot instantiate an instance of that type ? Most of these types
|
66
|
+
are used in conjunction with <span class="type"><a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a></span>s: a GValue is initialized
|
67
|
+
with an integer or a string and it is passed around by using the registered
|
68
|
+
type's value_table. <span class="type"><a class="link" href="gobject-Generic-values.html#GValue" title="GValue">GValue</a></span>s (and by extension these trivial fundamental
|
69
|
+
types) are most useful when used in conjunction with object properties and signals.
|
70
|
+
</p>
|
71
|
+
</div>
|
72
|
+
<div class="footer">
|
73
|
+
<hr>
|
74
|
+
Generated by GTK-Doc V1.14</div>
|
75
|
+
</body>
|
76
|
+
</html>
|
Binary file
|
@@ -0,0 +1,100 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
5
|
+
<title>Chaining up</title>
|
6
|
+
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
7
|
+
<link rel="home" href="index.html" title="GObject Reference Manual">
|
8
|
+
<link rel="up" href="howto-gobject.html" title="How to define and implement a new GObject">
|
9
|
+
<link rel="prev" href="howto-gobject-methods.html" title="Object methods">
|
10
|
+
<link rel="next" href="howto-interface.html" title="How to define and implement interfaces">
|
11
|
+
<meta name="generator" content="GTK-Doc V1.14 (XML mode)">
|
12
|
+
<link rel="stylesheet" href="style.css" type="text/css">
|
13
|
+
</head>
|
14
|
+
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
15
|
+
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
|
16
|
+
<td><a accesskey="p" href="howto-gobject-methods.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
|
17
|
+
<td><a accesskey="u" href="howto-gobject.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
|
18
|
+
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
|
19
|
+
<th width="100%" align="center">GObject Reference Manual</th>
|
20
|
+
<td><a accesskey="n" href="howto-interface.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
|
21
|
+
</tr></table>
|
22
|
+
<div class="sect1" title="Chaining up">
|
23
|
+
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
24
|
+
<a name="howto-gobject-chainup"></a>Chaining up</h2></div></div></div>
|
25
|
+
<p>Chaining up is often loosely defined by the following set of
|
26
|
+
conditions:
|
27
|
+
</p>
|
28
|
+
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
29
|
+
<li class="listitem"><p>Parent class A defines a public virtual method named <code class="function">foo</code> and
|
30
|
+
provides a default implementation.</p></li>
|
31
|
+
<li class="listitem"><p>Child class B re-implements method <code class="function">foo</code>.</p></li>
|
32
|
+
<li class="listitem"><p>In the method B::foo, the child class B calls its parent class method A::foo.</p></li>
|
33
|
+
</ul></div>
|
34
|
+
<p>
|
35
|
+
There are many uses to this idiom:
|
36
|
+
</p>
|
37
|
+
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
38
|
+
<li class="listitem"><p>You need to change the behaviour of a class without modifying its code. You create
|
39
|
+
a subclass to inherit its implementation, re-implement a public virtual method to modify the behaviour
|
40
|
+
slightly and chain up to ensure that the previous behaviour is not really modified, just extended.
|
41
|
+
</p></li>
|
42
|
+
<li class="listitem"><p>You are lazy, you have access to the source code of the parent class but you don't want
|
43
|
+
to modify it to add method calls to new specialized method calls: it is faster to hack the child class
|
44
|
+
to chain up than to modify the parent to call down.</p></li>
|
45
|
+
<li class="listitem"><p>You need to implement the Chain Of Responsibility pattern: each object of the inheritance
|
46
|
+
tree chains up to its parent (typically, at the beginning or the end of the method) to ensure that
|
47
|
+
they each handler is run in turn.</p></li>
|
48
|
+
</ul></div>
|
49
|
+
<p>
|
50
|
+
I am personally not really convinced any of the last two uses are really a good idea but since this
|
51
|
+
programming idiom is often used, this section attempts to explain how to implement it.
|
52
|
+
</p>
|
53
|
+
<p>
|
54
|
+
To explicitly chain up to the implementation of the virtual method in the parent class,
|
55
|
+
you first need a handle to the original parent class structure. This pointer can then be used to
|
56
|
+
access the original class function pointer and invoke it directly.
|
57
|
+
<sup>[<a name="id597386" href="#ftn.id597386" class="footnote">11</a>]</sup>
|
58
|
+
</p>
|
59
|
+
<p>The function <code class="function"><a class="link" href="gobject-Type-Information.html#g-type-class-peek-parent" title="g_type_class_peek_parent ()">g_type_class_peek_parent</a></code> is used to access the original parent
|
60
|
+
class structure. Its input is a pointer to the class of the derived object and it returns a pointer
|
61
|
+
to the original parent class structure. The code below shows how you could use it:
|
62
|
+
</p>
|
63
|
+
<pre class="programlisting">
|
64
|
+
static void
|
65
|
+
b_method_to_call (B *obj, int a)
|
66
|
+
{
|
67
|
+
BClass *klass;
|
68
|
+
AClass *parent_class;
|
69
|
+
|
70
|
+
klass = B_GET_CLASS (obj);
|
71
|
+
parent_class = g_type_class_peek_parent (klass);
|
72
|
+
|
73
|
+
/* do stuff before chain up */
|
74
|
+
|
75
|
+
parent_class->method_to_call (obj, a);
|
76
|
+
|
77
|
+
/* do stuff after chain up */
|
78
|
+
}
|
79
|
+
</pre>
|
80
|
+
<p>
|
81
|
+
</p>
|
82
|
+
<div class="footnotes">
|
83
|
+
<br><hr width="100" align="left">
|
84
|
+
<div class="footnote"><p><sup>[<a name="ftn.id597386" href="#id597386" class="para">11</a>] </sup>
|
85
|
+
The <span class="emphasis"><em>original</em></span> adjective used in this sentence is not innocuous. To fully
|
86
|
+
understand its meaning, you need to recall how class structures are initialized: for each object type,
|
87
|
+
the class structure associated to this object is created by first copying the class structure of its
|
88
|
+
parent type (a simple <code class="function">memcpy</code>) and then by invoking the class_init callback on
|
89
|
+
the resulting class structure. Since the class_init callback is responsible for overwriting the class structure
|
90
|
+
with the user re-implementations of the class methods, we cannot merely use the modified copy of the parent class
|
91
|
+
structure stored in our derived instance. We want to get a copy of the class structure of an instance of the parent
|
92
|
+
class.
|
93
|
+
</p></div>
|
94
|
+
</div>
|
95
|
+
</div>
|
96
|
+
<div class="footer">
|
97
|
+
<hr>
|
98
|
+
Generated by GTK-Doc V1.14</div>
|
99
|
+
</body>
|
100
|
+
</html>
|
@@ -0,0 +1,86 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
5
|
+
<title>Boilerplate code</title>
|
6
|
+
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
7
|
+
<link rel="home" href="index.html" title="GObject Reference Manual">
|
8
|
+
<link rel="up" href="howto-gobject.html" title="How to define and implement a new GObject">
|
9
|
+
<link rel="prev" href="howto-gobject.html" title="How to define and implement a new GObject">
|
10
|
+
<link rel="next" href="howto-gobject-construction.html" title="Object Construction">
|
11
|
+
<meta name="generator" content="GTK-Doc V1.14 (XML mode)">
|
12
|
+
<link rel="stylesheet" href="style.css" type="text/css">
|
13
|
+
</head>
|
14
|
+
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
15
|
+
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
|
16
|
+
<td><a accesskey="p" href="howto-gobject.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
|
17
|
+
<td><a accesskey="u" href="howto-gobject.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
|
18
|
+
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
|
19
|
+
<th width="100%" align="center">GObject Reference Manual</th>
|
20
|
+
<td><a accesskey="n" href="howto-gobject-construction.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
|
21
|
+
</tr></table>
|
22
|
+
<div class="sect1" title="Boilerplate code">
|
23
|
+
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
24
|
+
<a name="howto-gobject-code"></a>Boilerplate code</h2></div></div></div>
|
25
|
+
<p>
|
26
|
+
In your code, the first step is to #include the needed headers: depending
|
27
|
+
on your header include strategy, this can be as simple as
|
28
|
+
<code class="literal">#include "maman-bar.h"</code> or as complicated as tens
|
29
|
+
of #include lines ending with <code class="literal">#include "maman-bar.h"</code>:
|
30
|
+
</p>
|
31
|
+
<pre class="programlisting">
|
32
|
+
/*
|
33
|
+
* Copyright information
|
34
|
+
*/
|
35
|
+
|
36
|
+
#include "maman-bar.h"
|
37
|
+
|
38
|
+
/* If you use Pimpls, include the private structure
|
39
|
+
* definition here. Some people create a maman-bar-private.h header
|
40
|
+
* which is included by the maman-bar.c file and which contains the
|
41
|
+
* definition for this private structure.
|
42
|
+
*/
|
43
|
+
struct _MamanBarPrivate {
|
44
|
+
int member_1;
|
45
|
+
/* stuff */
|
46
|
+
};
|
47
|
+
|
48
|
+
/*
|
49
|
+
* forward definitions
|
50
|
+
*/
|
51
|
+
</pre>
|
52
|
+
<p>
|
53
|
+
</p>
|
54
|
+
<p>
|
55
|
+
Call the <code class="function">G_DEFINE_TYPE</code> macro using the name
|
56
|
+
of the type, the prefix of the functions and the parent GType to
|
57
|
+
reduce the amount of boilerplate needed. This macro will:
|
58
|
+
|
59
|
+
</p>
|
60
|
+
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
61
|
+
<li class="listitem">implement the <code class="function">maman_bar_get_type</code>
|
62
|
+
function</li>
|
63
|
+
<li class="listitem">define a parent class pointer accessible from
|
64
|
+
the whole .c file</li>
|
65
|
+
</ul></div>
|
66
|
+
<p>
|
67
|
+
|
68
|
+
</p>
|
69
|
+
<pre class="programlisting">
|
70
|
+
G_DEFINE_TYPE (MamanBar, maman_bar, G_TYPE_OBJECT);
|
71
|
+
</pre>
|
72
|
+
<p>
|
73
|
+
</p>
|
74
|
+
<p>
|
75
|
+
It is also possible to use the
|
76
|
+
<code class="function">G_DEFINE_TYPE_WITH_CODE</code> macro to control the
|
77
|
+
get_type function implementation - for instance, to add a call to
|
78
|
+
<code class="function">G_IMPLEMENT_INTERFACE</code> macro which will
|
79
|
+
call the <code class="function">g_type_implement_interface</code> function.
|
80
|
+
</p>
|
81
|
+
</div>
|
82
|
+
<div class="footer">
|
83
|
+
<hr>
|
84
|
+
Generated by GTK-Doc V1.14</div>
|
85
|
+
</body>
|
86
|
+
</html>
|