gio2 0.90.3-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +60 -0
- data/README +34 -0
- data/Rakefile +76 -0
- data/ext/gio2/depend +5 -0
- data/ext/gio2/extconf.rb +91 -0
- data/ext/gio2/gappinfo.c +318 -0
- data/ext/gio2/gapplaunchcontext.c +79 -0
- data/ext/gio2/gasyncinitable.c +244 -0
- data/ext/gio2/gasyncresult.c +39 -0
- data/ext/gio2/gbufferedinputstream.c +184 -0
- data/ext/gio2/gbufferedoutputstream.c +82 -0
- data/ext/gio2/gcancellable.c +177 -0
- data/ext/gio2/gcharsetconverter.c +72 -0
- data/ext/gio2/gcontenttype.c +135 -0
- data/ext/gio2/gconverter.c +117 -0
- data/ext/gio2/gconverterinputstream.c +48 -0
- data/ext/gio2/gconverteroutputstream.c +48 -0
- data/ext/gio2/gdatainputstream.c +341 -0
- data/ext/gio2/gdataoutputstream.c +202 -0
- data/ext/gio2/gdesktopappinfo.c +90 -0
- data/ext/gio2/gdrive.c +267 -0
- data/ext/gio2/gemblem.c +71 -0
- data/ext/gio2/gemblemedicon.c +63 -0
- data/ext/gio2/gfile.c +2058 -0
- data/ext/gio2/gfileattribute.c +263 -0
- data/ext/gio2/gfileattributematcher.c +90 -0
- data/ext/gio2/gfiledescriptorbased.c +42 -0
- data/ext/gio2/gfileenumerator.c +167 -0
- data/ext/gio2/gfileicon.c +46 -0
- data/ext/gio2/gfileinfo.c +641 -0
- data/ext/gio2/gfileinputstream.c +92 -0
- data/ext/gio2/gfileiostream.c +98 -0
- data/ext/gio2/gfilemonitor.c +63 -0
- data/ext/gio2/gfilenamecompleter.c +72 -0
- data/ext/gio2/gfileoutputstream.c +100 -0
- data/ext/gio2/gfilterinputstream.c +56 -0
- data/ext/gio2/gfilteroutputstream.c +56 -0
- data/ext/gio2/gicon.c +69 -0
- data/ext/gio2/ginetaddress.c +188 -0
- data/ext/gio2/ginetsocketaddress.c +54 -0
- data/ext/gio2/ginitable.c +195 -0
- data/ext/gio2/ginputstream.c +341 -0
- data/ext/gio2/gio2.c +120 -0
- data/ext/gio2/gio2.def +2 -0
- data/ext/gio2/gio2.h +343 -0
- data/ext/gio2/gioerror.c +67 -0
- data/ext/gio2/giomodule.c +63 -0
- data/ext/gio2/gioscheduler.c +195 -0
- data/ext/gio2/giostream.c +129 -0
- data/ext/gio2/gloadableicon.c +91 -0
- data/ext/gio2/gmemoryinputstream.c +65 -0
- data/ext/gio2/gmemoryoutputstream.c +65 -0
- data/ext/gio2/gmount.c +283 -0
- data/ext/gio2/gmountoperation.c +168 -0
- data/ext/gio2/gnetworkaddress.c +71 -0
- data/ext/gio2/gnetworkservice.c +64 -0
- data/ext/gio2/goutputstream.c +343 -0
- data/ext/gio2/gresolver.c +230 -0
- data/ext/gio2/gseekable.c +89 -0
- data/ext/gio2/gsimpleasyncresult.c +153 -0
- data/ext/gio2/gsocket.c +451 -0
- data/ext/gio2/gsocketaddress.c +45 -0
- data/ext/gio2/gsocketclient.c +273 -0
- data/ext/gio2/gsocketconnectable.c +97 -0
- data/ext/gio2/gsocketconnection.c +82 -0
- data/ext/gio2/gsocketcontrolmessage.c +82 -0
- data/ext/gio2/gsocketlistener.c +239 -0
- data/ext/gio2/gsocketservice.c +64 -0
- data/ext/gio2/gsrvtarget.c +77 -0
- data/ext/gio2/gtcpconnection.c +48 -0
- data/ext/gio2/gthemedicon.c +86 -0
- data/ext/gio2/gthreadedsocketservice.c +39 -0
- data/ext/gio2/gunixconnection.c +69 -0
- data/ext/gio2/gunixfdlist.c +112 -0
- data/ext/gio2/gunixfdmessage.c +81 -0
- data/ext/gio2/gunixinputstream.c +73 -0
- data/ext/gio2/gunixmounts.c +346 -0
- data/ext/gio2/gunixoutputstream.c +73 -0
- data/ext/gio2/gunixsocketaddress.c +79 -0
- data/ext/gio2/gvfs.c +84 -0
- data/ext/gio2/gvolume.c +191 -0
- data/ext/gio2/gvolumemonitor.c +77 -0
- data/ext/gio2/gzlibcompressor.c +47 -0
- data/ext/gio2/gzlibdecompressor.c +43 -0
- data/ext/gio2/util.c +323 -0
- data/extconf.rb +49 -0
- data/lib/1.8/gio2.so +0 -0
- data/lib/1.9/gio2.so +0 -0
- data/lib/gio2.rb +141 -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 +537 -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 +236 -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 +81 -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 +79 -0
- data/vendor/local/include/glib-2.0/gio/gconverteroutputstream.h +79 -0
- data/vendor/local/include/glib-2.0/gio/gcredentials.h +76 -0
- data/vendor/local/include/glib-2.0/gio/gdatainputstream.h +150 -0
- data/vendor/local/include/glib-2.0/gio/gdataoutputstream.h +115 -0
- data/vendor/local/include/glib-2.0/gio/gdbusaddress.h +58 -0
- data/vendor/local/include/glib-2.0/gio/gdbusauthobserver.h +46 -0
- data/vendor/local/include/glib-2.0/gio/gdbusconnection.h +562 -0
- data/vendor/local/include/glib-2.0/gio/gdbuserror.h +100 -0
- data/vendor/local/include/glib-2.0/gio/gdbusintrospection.h +286 -0
- data/vendor/local/include/glib-2.0/gio/gdbusmessage.h +149 -0
- data/vendor/local/include/glib-2.0/gio/gdbusmethodinvocation.h +73 -0
- data/vendor/local/include/glib-2.0/gio/gdbusnameowning.h +112 -0
- data/vendor/local/include/glib-2.0/gio/gdbusnamewatching.h +94 -0
- data/vendor/local/include/glib-2.0/gio/gdbusproxy.h +167 -0
- data/vendor/local/include/glib-2.0/gio/gdbusserver.h +54 -0
- data/vendor/local/include/glib-2.0/gio/gdbusutils.h +44 -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 +132 -0
- data/vendor/local/include/glib-2.0/gio/gfileicon.h +56 -0
- data/vendor/local/include/glib-2.0/gio/gfileinfo.h +952 -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 +122 -0
- data/vendor/local/include/glib-2.0/gio/gioenums.h +1221 -0
- data/vendor/local/include/glib-2.0/gio/gioenumtypes.h +121 -0
- data/vendor/local/include/glib-2.0/gio/gioerror.h +52 -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 +375 -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 +98 -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 +73 -0
- data/vendor/local/include/glib-2.0/gio/gnetworkservice.h +71 -0
- data/vendor/local/include/glib-2.0/gio/goutputstream.h +207 -0
- data/vendor/local/include/glib-2.0/gio/gpermission.h +118 -0
- data/vendor/local/include/glib-2.0/gio/gproxy.h +123 -0
- data/vendor/local/include/glib-2.0/gio/gproxyaddress.h +76 -0
- data/vendor/local/include/glib-2.0/gio/gproxyaddressenumerator.h +75 -0
- data/vendor/local/include/glib-2.0/gio/gproxyresolver.h +96 -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/gsettings.h +258 -0
- data/vendor/local/include/glib-2.0/gio/gsettingsbackend.h +138 -0
- data/vendor/local/include/glib-2.0/gio/gsimpleasyncresult.h +125 -0
- data/vendor/local/include/glib-2.0/gio/gsimplepermission.h +45 -0
- data/vendor/local/include/glib-2.0/gio/gsocket.h +194 -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 +152 -0
- data/vendor/local/include/glib-2.0/gio/gsocketconnectable.h +74 -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 +150 -0
- data/vendor/local/include/glib-2.0/gio/gzlibcompressor.h +60 -0
- data/vendor/local/include/glib-2.0/gio/gzlibdecompressor.h +57 -0
- data/vendor/local/include/glib-2.0/glib-object.h +42 -0
- data/vendor/local/include/glib-2.0/glib.h +99 -0
- data/vendor/local/include/glib-2.0/glib/galloca.h +110 -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 +105 -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 +215 -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 +81 -0
- data/vendor/local/include/glib-2.0/glib/gconvert.h +162 -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/gdatetime.h +217 -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 +266 -0
- data/vendor/local/include/glib-2.0/glib/glist.h +120 -0
- data/vendor/local/include/glib-2.0/glib/gmacros.h +284 -0
- data/vendor/local/include/glib-2.0/glib/gmain.h +531 -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 +309 -0
- data/vendor/local/include/glib-2.0/glib/gmessages.h +343 -0
- data/vendor/local/include/glib-2.0/glib/gnode.h +290 -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 +117 -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 +471 -0
- data/vendor/local/include/glib-2.0/glib/grel.h +101 -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 +147 -0
- data/vendor/local/include/glib-2.0/glib/gstrfuncs.h +269 -0
- data/vendor/local/include/glib-2.0/glib/gstring.h +178 -0
- data/vendor/local/include/glib-2.0/glib/gtestutils.h +297 -0
- data/vendor/local/include/glib-2.0/glib/gthread.h +407 -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/gtimezone.h +44 -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 +421 -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 +248 -0
- data/vendor/local/include/glib-2.0/glib/gvarianttype.h +334 -0
- data/vendor/local/include/glib-2.0/glib/gwin32.h +114 -0
- data/vendor/local/include/glib-2.0/gmodule.h +101 -0
- data/vendor/local/include/glib-2.0/gobject/gbinding.h +136 -0
- data/vendor/local/include/glib-2.0/gobject/gboxed.h +248 -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 +186 -0
- data/vendor/local/include/glib-2.0/gobject/gobject.h +567 -0
- data/vendor/local/include/glib-2.0/gobject/gobjectnotifyqueue.c +193 -0
- data/vendor/local/include/glib-2.0/gobject/gparam.h +415 -0
- data/vendor/local/include/glib-2.0/gobject/gparamspecs.h +1137 -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 +1736 -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 +227 -0
- data/vendor/local/include/glib-2.0/gobject/gvaluetypes.h +260 -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 +1143 -0
- data/vendor/local/lib/gio-2.0.lib +0 -0
- data/vendor/local/lib/glib-2.0.def +1452 -0
- data/vendor/local/lib/glib-2.0.lib +0 -0
- data/vendor/local/lib/glib-2.0/include/glibconfig.h +284 -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 +370 -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 +15 -0
- data/vendor/local/lib/pkgconfig/gio-windows-2.0.pc +11 -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-dev_2.26.0-2_win32.mft +570 -0
- data/vendor/local/manifest/glib_2.24.2-2_win32.mft +101 -0
- data/vendor/local/manifest/glib_2.26.0-2_win32.mft +102 -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-2.26.0/COPYING +482 -0
- data/vendor/local/share/doc/glib-dev-2.24.2/COPYING +482 -0
- data/vendor/local/share/doc/glib-dev-2.26.0/COPYING +482 -0
- data/vendor/local/share/doc/libasprintf/autosprintf_all.html +174 -0
- data/vendor/local/share/glib-2.0/gdb/glib.py +249 -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 +279 -0
- data/vendor/local/share/glib-2.0/schemas/gschema.dtd +60 -0
- data/vendor/local/share/gtk-doc/html/gio/GAppInfo.html +1403 -0
- data/vendor/local/share/gtk-doc/html/gio/GAsyncInitable.html +733 -0
- data/vendor/local/share/gtk-doc/html/gio/GAsyncResult.html +343 -0
- data/vendor/local/share/gtk-doc/html/gio/GBufferedInputStream.html +563 -0
- data/vendor/local/share/gtk-doc/html/gio/GBufferedOutputStream.html +291 -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 +423 -0
- data/vendor/local/share/gtk-doc/html/gio/GCredentials.html +398 -0
- data/vendor/local/share/gtk-doc/html/gio/GDBusAuthObserver.html +254 -0
- data/vendor/local/share/gtk-doc/html/gio/GDBusConnection.html +6211 -0
- data/vendor/local/share/gtk-doc/html/gio/GDBusMessage.html +1833 -0
- data/vendor/local/share/gtk-doc/html/gio/GDBusMethodInvocation.html +618 -0
- data/vendor/local/share/gtk-doc/html/gio/GDBusProxy.html +2050 -0
- data/vendor/local/share/gtk-doc/html/gio/GDBusServer.html +1124 -0
- data/vendor/local/share/gtk-doc/html/gio/GDataInputStream.html +1215 -0
- data/vendor/local/share/gtk-doc/html/gio/GDataOutputStream.html +540 -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 +7462 -0
- data/vendor/local/share/gtk-doc/html/gio/GFileDescriptorBased.html +120 -0
- data/vendor/local/share/gtk-doc/html/gio/GFileEnumerator.html +516 -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 +3144 -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 +188 -0
- data/vendor/local/share/gtk-doc/html/gio/GFilterOutputStream.html +189 -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 +196 -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 +393 -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 +343 -0
- data/vendor/local/share/gtk-doc/html/gio/GNetworkService.html +311 -0
- data/vendor/local/share/gtk-doc/html/gio/GOutputStream.html +1012 -0
- data/vendor/local/share/gtk-doc/html/gio/GPermission.html +560 -0
- data/vendor/local/share/gtk-doc/html/gio/GProxy.html +312 -0
- data/vendor/local/share/gtk-doc/html/gio/GProxyAddress.html +348 -0
- data/vendor/local/share/gtk-doc/html/gio/GProxyResolver.html +301 -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/GSettings.html +2424 -0
- data/vendor/local/share/gtk-doc/html/gio/GSettingsBackend.html +609 -0
- data/vendor/local/share/gtk-doc/html/gio/GSimpleAsyncResult.html +1193 -0
- data/vendor/local/share/gtk-doc/html/gio/GSimplePermission.html +107 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocket.html +2438 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketAddress.html +297 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketClient.html +1292 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketConnectable.html +513 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketConnection.html +337 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketControlMessage.html +275 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketListener.html +745 -0
- data/vendor/local/share/gtk-doc/html/gio/GSocketService.html +258 -0
- data/vendor/local/share/gtk-doc/html/gio/GTcpConnection.html +165 -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/GUnixConnection.html +298 -0
- data/vendor/local/share/gtk-doc/html/gio/GUnixCredentialsMessage.html +222 -0
- data/vendor/local/share/gtk-doc/html/gio/GUnixFDList.html +389 -0
- data/vendor/local/share/gtk-doc/html/gio/GUnixFDMessage.html +288 -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 +491 -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 +705 -0
- data/vendor/local/share/gtk-doc/html/gio/GZlibCompressor.html +252 -0
- data/vendor/local/share/gtk-doc/html/gio/GZlibDecompressor.html +170 -0
- data/vendor/local/share/gtk-doc/html/gio/annotation-glossary.html +65 -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 +1084 -0
- data/vendor/local/share/gtk-doc/html/gio/api-index-2-24.html +223 -0
- data/vendor/local/share/gtk-doc/html/gio/api-index-2-26.html +1598 -0
- data/vendor/local/share/gtk-doc/html/gio/api-index-deprecated.html +112 -0
- data/vendor/local/share/gtk-doc/html/gio/api-index-full.html +6250 -0
- data/vendor/local/share/gtk-doc/html/gio/async.html +44 -0
- data/vendor/local/share/gtk-doc/html/gio/ch01.html +207 -0
- data/vendor/local/share/gtk-doc/html/gio/ch02.html +50 -0
- data/vendor/local/share/gtk-doc/html/gio/ch03.html +180 -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/ch24.html +75 -0
- data/vendor/local/share/gtk-doc/html/gio/ch25.html +217 -0
- data/vendor/local/share/gtk-doc/html/gio/ch25s02.html +41 -0
- data/vendor/local/share/gtk-doc/html/gio/ch25s03.html +39 -0
- data/vendor/local/share/gtk-doc/html/gio/ch26.html +57 -0
- data/vendor/local/share/gtk-doc/html/gio/ch26s02.html +59 -0
- data/vendor/local/share/gtk-doc/html/gio/ch26s03.html +159 -0
- data/vendor/local/share/gtk-doc/html/gio/ch26s04.html +46 -0
- data/vendor/local/share/gtk-doc/html/gio/ch26s05.html +48 -0
- data/vendor/local/share/gtk-doc/html/gio/ch26s06.html +277 -0
- data/vendor/local/share/gtk-doc/html/gio/ch26s07.html +95 -0
- data/vendor/local/share/gtk-doc/html/gio/ch27.html +70 -0
- data/vendor/local/share/gtk-doc/html/gio/ch27s02.html +130 -0
- data/vendor/local/share/gtk-doc/html/gio/ch27s03.html +202 -0
- data/vendor/local/share/gtk-doc/html/gio/ch27s04.html +96 -0
- data/vendor/local/share/gtk-doc/html/gio/ch27s05.html +823 -0
- data/vendor/local/share/gtk-doc/html/gio/ch27s06.html +828 -0
- data/vendor/local/share/gtk-doc/html/gio/conversion.html +44 -0
- data/vendor/local/share/gtk-doc/html/gio/extending-gio.html +109 -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/gdbus-convenience.html +41 -0
- data/vendor/local/share/gtk-doc/html/gio/gdbus-lowlevel.html +59 -0
- data/vendor/local/share/gtk-doc/html/gio/gdbus.html +243 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Addresses.html +316 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Introspection-Data.html +1117 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-D-Bus-Utilities.html +216 -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 +473 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-GContentType.html +391 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-GConverterInputstream.html +159 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-GConverterOutputstream.html +159 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-GDBusError.html +908 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-GFileAttribute.html +933 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-GIOError.html +409 -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-Owning-Bus-Names.html +736 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-Unix-Mounts.html +909 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-Watching-Bus-Names.html +666 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-hierarchy.html +123 -0
- data/vendor/local/share/gtk-doc/html/gio/gio-querymodules.html +53 -0
- data/vendor/local/share/gtk-doc/html/gio/gio.devhelp +1736 -0
- data/vendor/local/share/gtk-doc/html/gio/gio.devhelp2 +2006 -0
- data/vendor/local/share/gtk-doc/html/gio/glib-compile-schemas.html +102 -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 +53 -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 +435 -0
- data/vendor/local/share/gtk-doc/html/gio/index.sgml +2513 -0
- data/vendor/local/share/gtk-doc/html/gio/left.png +0 -0
- data/vendor/local/share/gtk-doc/html/gio/migrating.html +62 -0
- data/vendor/local/share/gtk-doc/html/gio/networking.html +69 -0
- data/vendor/local/share/gtk-doc/html/gio/permissions.html +39 -0
- data/vendor/local/share/gtk-doc/html/gio/pt01.html +39 -0
- data/vendor/local/share/gtk-doc/html/gio/pt02.html +390 -0
- data/vendor/local/share/gtk-doc/html/gio/resolver.html +50 -0
- data/vendor/local/share/gtk-doc/html/gio/right.png +0 -0
- data/vendor/local/share/gtk-doc/html/gio/settings.html +38 -0
- data/vendor/local/share/gtk-doc/html/gio/streaming.html +92 -0
- data/vendor/local/share/gtk-doc/html/gio/style.css +265 -0
- data/vendor/local/share/gtk-doc/html/gio/tools.html +44 -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/annotation-glossary.html +77 -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 +559 -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 +420 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-26.html +359 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-4.html +396 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-2-6.html +417 -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 +419 -0
- data/vendor/local/share/gtk-doc/html/glib/api-index-full.html +8214 -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 +414 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Automatic-String-Completion.html +466 -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 +2056 -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 +1094 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Commandline-option-parser.html +1671 -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 +2045 -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 +1026 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-File-Utilities.html +1852 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-GDateTime.html +2201 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-GTimeZone.html +239 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-GVariant.html +4278 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-GVariantType.html +1864 -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 +692 -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 +2740 -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 +1033 -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 +748 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Macros.html +1105 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Utility-Functions.html +1552 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-N-ary-Trees.html +1468 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Numerical-Definitions.html +194 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Perl-compatible-regular-expressions.html +2745 -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 +532 -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 +1282 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html +1213 -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 +470 -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 +2960 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Strings.html +1291 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Testing.html +1805 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html +3478 -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 +400 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html +3448 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-Version-Information.html +253 -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 +466 -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 +2217 -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 +319 -0
- data/vendor/local/share/gtk-doc/html/glib/glib-utilities.html +118 -0
- data/vendor/local/share/gtk-doc/html/glib/glib.devhelp +2183 -0
- data/vendor/local/share/gtk-doc/html/glib/glib.devhelp2 +2671 -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 +1288 -0
- data/vendor/local/share/gtk-doc/html/glib/home.png +0 -0
- data/vendor/local/share/gtk-doc/html/glib/index.html +344 -0
- data/vendor/local/share/gtk-doc/html/glib/index.sgml +2846 -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 +265 -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/GBinding.html +803 -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/annotation-glossary.html +47 -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 +73 -0
- data/vendor/local/share/gtk-doc/html/gobject/api-index-2-26.html +201 -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 +2721 -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 +361 -0
- data/vendor/local/share/gtk-doc/html/gobject/glib-mkenums.html +307 -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 +417 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Closures.html +2412 -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 +1433 -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 +5555 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html +2875 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Type-Information.html +4460 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Value-arrays.html +416 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject-Varargs-Value-Collection.html +260 -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 +762 -0
- data/vendor/local/share/gtk-doc/html/gobject/gobject.devhelp2 +801 -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 +192 -0
- data/vendor/local/share/gtk-doc/html/gobject/index.sgml +786 -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 +85 -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 +265 -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/kk/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 +312 -0
- data/vendor/local/share/man/man1/glib-mkenums.1 +246 -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
- data/vendor/local/src/tml/packaging/glib_2.26.0-2_win32.log +2867 -0
- data/vendor/local/src/tml/packaging/glib_2.26.0-2_win32.sh +64 -0
- metadata +952 -0
@@ -0,0 +1,143 @@
|
|
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>Conventions</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="chapter-gtype.html" title="The GLib Dynamic Type System">
|
10
|
+
<link rel="next" href="gtype-non-instantiable.html" title="Non-instantiable non-classed fundamental types">
|
11
|
+
<meta name="generator" content="GTK-Doc V1.15.1 (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="chapter-gtype.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-non-instantiable.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
|
21
|
+
</tr></table>
|
22
|
+
<div class="sect1">
|
23
|
+
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
24
|
+
<a name="gtype-conventions"></a>Conventions</h2></div></div></div>
|
25
|
+
<p>
|
26
|
+
There are a number of conventions users are expected to follow when creating new types
|
27
|
+
which are to be exported in a header file:
|
28
|
+
</p>
|
29
|
+
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
30
|
+
<li class="listitem"><p>
|
31
|
+
Use the <code class="function">object_method</code> pattern for function names: to invoke
|
32
|
+
the method named foo on an instance of object type bar, call
|
33
|
+
<code class="function">bar_foo</code>.
|
34
|
+
</p></li>
|
35
|
+
<li class="listitem"><p>Use prefixing to avoid namespace conflicts with other projects.
|
36
|
+
If your library (or application) is named <span class="emphasis"><em>Maman</em></span>,
|
37
|
+
<sup>[<a name="id365787" href="#ftn.id365787" class="footnote">3</a>]</sup>
|
38
|
+
|
39
|
+
prefix all your function names with <span class="emphasis"><em>maman_</em></span>.
|
40
|
+
For example: <code class="function">maman_object_method</code>.
|
41
|
+
</p></li>
|
42
|
+
<li class="listitem"><p>Create a macro named <code class="function">PREFIX_TYPE_OBJECT</code> which always
|
43
|
+
returns the GType for the associated object type. For an object of type
|
44
|
+
<span class="emphasis"><em>Bar</em></span> in a library prefixed by <span class="emphasis"><em>maman</em></span>,
|
45
|
+
use: <code class="function">MAMAN_TYPE_BAR</code>.
|
46
|
+
It is common although not a convention to implement this macro using either a global
|
47
|
+
static variable or a function named <code class="function">prefix_object_get_type</code>.
|
48
|
+
We will follow the function pattern wherever possible in this document.
|
49
|
+
</p></li>
|
50
|
+
<li class="listitem"><p>Create a macro named <code class="function">PREFIX_OBJECT (obj)</code> which
|
51
|
+
returns a pointer of type <span class="type">PrefixObject</span>. This macro is used to enforce
|
52
|
+
static type safety by doing explicit casts wherever needed. It also enforces
|
53
|
+
dynamic type safety by doing runtime checks. It is possible to disable the dynamic
|
54
|
+
type checks in production builds (see <a href="./../glib/glib/glib-building.html">building glib</a>).
|
55
|
+
For example, we would create
|
56
|
+
<code class="function">MAMAN_BAR (obj)</code> to keep the previous example.
|
57
|
+
</p></li>
|
58
|
+
<li class="listitem"><p>If the type is classed, create a macro named
|
59
|
+
<code class="function">PREFIX_OBJECT_CLASS (klass)</code>. This macro
|
60
|
+
is strictly equivalent to the previous casting macro: it does static casting with
|
61
|
+
dynamic type checking of class structures. It is expected to return a pointer
|
62
|
+
to a class structure of type <span class="type">PrefixObjectClass</span>. Again, an example is:
|
63
|
+
<code class="function">MAMAN_BAR_CLASS</code>.
|
64
|
+
</p></li>
|
65
|
+
<li class="listitem"><p>Create a macro named <code class="function">PREFIX_IS_BAR (obj)</code>: this macro is expected
|
66
|
+
to return a <span class="type">gboolean</span> which indicates whether or not the input
|
67
|
+
object instance pointer of type BAR.
|
68
|
+
</p></li>
|
69
|
+
<li class="listitem"><p>If the type is classed, create a macro named
|
70
|
+
<code class="function">PREFIX_IS_OBJECT_CLASS (klass)</code> which, as above, returns a boolean
|
71
|
+
if the input class pointer is a pointer to a class of type OBJECT.
|
72
|
+
</p></li>
|
73
|
+
<li class="listitem"><p>If the type is classed, create a macro named
|
74
|
+
<code class="function">PREFIX_OBJECT_GET_CLASS (obj)</code>
|
75
|
+
which returns the class pointer associated to an instance of a given type. This macro
|
76
|
+
is used for static and dynamic type safety purposes (just like the previous casting
|
77
|
+
macros).
|
78
|
+
</p></li>
|
79
|
+
</ul></div>
|
80
|
+
<p>
|
81
|
+
The implementation of these macros is pretty straightforward: a number of simple-to-use
|
82
|
+
macros are provided in <code class="filename">gtype.h</code>. For the example we used above, we would
|
83
|
+
write the following trivial code to declare the macros:
|
84
|
+
</p>
|
85
|
+
<pre class="programlisting">
|
86
|
+
#define MAMAN_TYPE_BAR (maman_bar_get_type ())
|
87
|
+
#define MAMAN_BAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAMAN_TYPE_BAR, MamanBar))
|
88
|
+
#define MAMAN_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAMAN_TYPE_BAR, MamanBarClass))
|
89
|
+
#define MAMAN_IS_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAMAN_TYPE_BAR))
|
90
|
+
#define MAMAN_IS_BAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MAMAN_TYPE_BAR))
|
91
|
+
#define MAMAN_BAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MAMAN_TYPE_BAR, MamanBarClass))
|
92
|
+
</pre>
|
93
|
+
<p>
|
94
|
+
</p>
|
95
|
+
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
|
96
|
+
<h3 class="title">Note</h3>
|
97
|
+
<p>Stick to the naming <code class="varname">klass</code> as <code class="varname">class</code> is a registered c++ keyword.</p>
|
98
|
+
</div>
|
99
|
+
<p>
|
100
|
+
</p>
|
101
|
+
<p>
|
102
|
+
The following code shows how to implement the <code class="function">maman_bar_get_type</code>
|
103
|
+
function:
|
104
|
+
</p>
|
105
|
+
<pre class="programlisting">
|
106
|
+
GType maman_bar_get_type (void)
|
107
|
+
{
|
108
|
+
static GType type = 0;
|
109
|
+
if (type == 0) {
|
110
|
+
static const GTypeInfo info = {
|
111
|
+
/* You fill this structure. */
|
112
|
+
};
|
113
|
+
type = g_type_register_static (G_TYPE_OBJECT,
|
114
|
+
"MamanBarType",
|
115
|
+
&info, 0);
|
116
|
+
}
|
117
|
+
return type;
|
118
|
+
}
|
119
|
+
</pre>
|
120
|
+
<p>
|
121
|
+
</p>
|
122
|
+
<p>
|
123
|
+
When having no special requirements you also can use the <code class="function">G_DEFINE_TYPE</code>
|
124
|
+
macro:
|
125
|
+
</p>
|
126
|
+
<pre class="programlisting">
|
127
|
+
G_DEFINE_TYPE (MamanBar, maman_bar, G_TYPE_OBJECT)
|
128
|
+
</pre>
|
129
|
+
<p>
|
130
|
+
</p>
|
131
|
+
<div class="footnotes">
|
132
|
+
<br><hr width="100" align="left">
|
133
|
+
<div class="footnote"><p><sup>[<a name="ftn.id365787" href="#id365787" class="para">3</a>] </sup>
|
134
|
+
<span class="emphasis"><em>Maman</em></span> is the French word for <span class="emphasis"><em>mum</em></span>
|
135
|
+
or <span class="emphasis"><em>mother</em></span> - nothing more and nothing less.
|
136
|
+
</p></div>
|
137
|
+
</div>
|
138
|
+
</div>
|
139
|
+
<div class="footer">
|
140
|
+
<hr>
|
141
|
+
Generated by GTK-Doc V1.15.1</div>
|
142
|
+
</body>
|
143
|
+
</html>
|
@@ -0,0 +1,287 @@
|
|
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>Instantiable classed types: objects</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-non-instantiable.html" title="Non-instantiable non-classed fundamental types">
|
10
|
+
<link rel="next" href="gtype-non-instantiable-classed.html" title="Non-instantiable classed types: interfaces">
|
11
|
+
<meta name="generator" content="GTK-Doc V1.15.1 (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-non-instantiable.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-non-instantiable-classed.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
|
21
|
+
</tr></table>
|
22
|
+
<div class="sect1">
|
23
|
+
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
24
|
+
<a name="gtype-instantiable-classed"></a>Instantiable classed types: objects</h2></div></div></div>
|
25
|
+
<p>
|
26
|
+
Types which are registered with a class and are declared instantiable are
|
27
|
+
what most closely resembles an <span class="emphasis"><em>object</em></span>.
|
28
|
+
Although <span class="type"><a class="link" href="gobject-The-Base-Object-Type.html#GObject">GObject</a></span>s (detailed in <a class="xref" href="chapter-gobject.html" title="The GObject base class"><i>The GObject base class</i></a>)
|
29
|
+
are the most well known type of instantiable
|
30
|
+
classed types, other kinds of similar objects used as the base of an inheritance
|
31
|
+
hierarchy have been externally developed and they are all built on the fundamental
|
32
|
+
features described below.
|
33
|
+
</p>
|
34
|
+
<p>
|
35
|
+
For example, the code below shows how you could register
|
36
|
+
such a fundamental object type in the type system:
|
37
|
+
</p>
|
38
|
+
<pre class="programlisting">
|
39
|
+
typedef struct {
|
40
|
+
GObject parent;
|
41
|
+
/* instance members */
|
42
|
+
int field_a;
|
43
|
+
} MamanBar;
|
44
|
+
|
45
|
+
typedef struct {
|
46
|
+
GObjectClass parent;
|
47
|
+
/* class members */
|
48
|
+
void (*do_action_public_virtual) (MamanBar *self, guint8 i);
|
49
|
+
|
50
|
+
void (*do_action_public_pure_virtual) (MamanBar *self, guint8 i);
|
51
|
+
} MamanBarClass;
|
52
|
+
|
53
|
+
#define MAMAN_TYPE_BAR (maman_bar_get_type ())
|
54
|
+
|
55
|
+
GType
|
56
|
+
maman_bar_get_type (void)
|
57
|
+
{
|
58
|
+
static GType type = 0;
|
59
|
+
if (type == 0) {
|
60
|
+
static const GTypeInfo info = {
|
61
|
+
sizeof (MamanBarClass),
|
62
|
+
NULL, /* base_init */
|
63
|
+
NULL, /* base_finalize */
|
64
|
+
(GClassInitFunc) foo_class_init,
|
65
|
+
NULL, /* class_finalize */
|
66
|
+
NULL, /* class_data */
|
67
|
+
sizeof (MamanBar),
|
68
|
+
0, /* n_preallocs */
|
69
|
+
(GInstanceInitFunc) NULL /* instance_init */
|
70
|
+
};
|
71
|
+
type = g_type_register_static (G_TYPE_OBJECT,
|
72
|
+
"BarType",
|
73
|
+
&info, 0);
|
74
|
+
}
|
75
|
+
return type;
|
76
|
+
}
|
77
|
+
</pre>
|
78
|
+
<p>
|
79
|
+
Upon the first call to <code class="function">maman_bar_get_type</code>, the type named
|
80
|
+
<span class="emphasis"><em>BarType</em></span> will be registered in the type system as inheriting
|
81
|
+
from the type <span class="emphasis"><em>G_TYPE_OBJECT</em></span>.
|
82
|
+
</p>
|
83
|
+
<p>
|
84
|
+
Every object must define two structures: its class structure and its
|
85
|
+
instance structure. All class structures must contain as first member
|
86
|
+
a <span class="type"><a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass">GTypeClass</a></span> structure. All instance structures must contain as first
|
87
|
+
member a <span class="type"><a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance">GTypeInstance</a></span> structure. The declaration of these C types,
|
88
|
+
coming from <code class="filename">gtype.h</code> is shown below:
|
89
|
+
</p>
|
90
|
+
<pre class="programlisting">
|
91
|
+
struct _GTypeClass
|
92
|
+
{
|
93
|
+
GType g_type;
|
94
|
+
};
|
95
|
+
struct _GTypeInstance
|
96
|
+
{
|
97
|
+
GTypeClass *g_class;
|
98
|
+
};
|
99
|
+
</pre>
|
100
|
+
<p>
|
101
|
+
These constraints allow the type system to make sure that every object instance
|
102
|
+
(identified by a pointer to the object's instance structure) contains in its
|
103
|
+
first bytes a pointer to the object's class structure.
|
104
|
+
</p>
|
105
|
+
<p>
|
106
|
+
This relationship is best explained by an example: let's take object B which
|
107
|
+
inherits from object A:
|
108
|
+
</p>
|
109
|
+
<pre class="programlisting">
|
110
|
+
/* A definitions */
|
111
|
+
typedef struct {
|
112
|
+
GTypeInstance parent;
|
113
|
+
int field_a;
|
114
|
+
int field_b;
|
115
|
+
} A;
|
116
|
+
typedef struct {
|
117
|
+
GTypeClass parent_class;
|
118
|
+
void (*method_a) (void);
|
119
|
+
void (*method_b) (void);
|
120
|
+
} AClass;
|
121
|
+
|
122
|
+
/* B definitions. */
|
123
|
+
typedef struct {
|
124
|
+
A parent;
|
125
|
+
int field_c;
|
126
|
+
int field_d;
|
127
|
+
} B;
|
128
|
+
typedef struct {
|
129
|
+
AClass parent_class;
|
130
|
+
void (*method_c) (void);
|
131
|
+
void (*method_d) (void);
|
132
|
+
} BClass;
|
133
|
+
</pre>
|
134
|
+
<p>
|
135
|
+
The C standard mandates that the first field of a C structure is stored starting
|
136
|
+
in the first byte of the buffer used to hold the structure's fields in memory.
|
137
|
+
This means that the first field of an instance of an object B is A's first field
|
138
|
+
which in turn is GTypeInstance's first field which in turn is g_class, a pointer
|
139
|
+
to B's class structure.
|
140
|
+
</p>
|
141
|
+
<p>
|
142
|
+
Thanks to these simple conditions, it is possible to detect the type of every
|
143
|
+
object instance by doing:
|
144
|
+
</p>
|
145
|
+
<pre class="programlisting">
|
146
|
+
B *b;
|
147
|
+
b->parent.parent.g_class->g_type
|
148
|
+
</pre>
|
149
|
+
<p>
|
150
|
+
or, more quickly:
|
151
|
+
</p>
|
152
|
+
<pre class="programlisting">
|
153
|
+
B *b;
|
154
|
+
((GTypeInstance*)b)->g_class->g_type
|
155
|
+
</pre>
|
156
|
+
<p>
|
157
|
+
</p>
|
158
|
+
<div class="sect2">
|
159
|
+
<div class="titlepage"><div><div><h3 class="title">
|
160
|
+
<a name="gtype-instantiable-classed-init-done"></a>Initialization and Destruction</h3></div></div></div>
|
161
|
+
<p>
|
162
|
+
instantiation of these types can be done with
|
163
|
+
<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>:
|
164
|
+
</p>
|
165
|
+
<pre class="programlisting">
|
166
|
+
GTypeInstance* g_type_create_instance (GType type);
|
167
|
+
void g_type_free_instance (GTypeInstance *instance);
|
168
|
+
</pre>
|
169
|
+
<p>
|
170
|
+
<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> will look up the type information
|
171
|
+
structure associated to the type requested. Then, the instance size and instantiation
|
172
|
+
policy (if the n_preallocs field is set to a non-zero value, the type system allocates
|
173
|
+
the object's instance structures in chunks rather than mallocing for every instance)
|
174
|
+
declared by the user are used to get a buffer to hold the object's instance
|
175
|
+
structure.
|
176
|
+
</p>
|
177
|
+
<p>
|
178
|
+
If this is the first instance of the object ever created, the type system must create
|
179
|
+
a class structure: it allocates a buffer to hold the object's class structure and
|
180
|
+
initializes it. It first copies the parent's class structure over this structure
|
181
|
+
(if there is no parent, it initializes it to zero). It then invokes the
|
182
|
+
base_class_initialization functions (<span class="type"><a class="link" href="gobject-Type-Information.html#GBaseInitFunc" title="GBaseInitFunc ()">GBaseInitFunc</a></span>) from topmost
|
183
|
+
fundamental object to bottom-most most derived object. The object's class_init
|
184
|
+
(<span class="type"><a class="link" href="gobject-Type-Information.html#GClassInitFunc" title="GClassInitFunc ()">GClassInitFunc</a></span>) function is invoked afterwards to complete
|
185
|
+
initialization of the class structure.
|
186
|
+
Finally, the object's interfaces are initialized (we will discuss interface initialization
|
187
|
+
in more detail later).
|
188
|
+
</p>
|
189
|
+
<p>
|
190
|
+
Once the type system has a pointer to an initialized class structure, it sets the object's
|
191
|
+
instance class pointer to the object's class structure and invokes the object's
|
192
|
+
instance_init (<span class="type"><a class="link" href="gobject-Type-Information.html#GInstanceInitFunc" title="GInstanceInitFunc ()">GInstanceInitFunc</a></span>)functions, from top-most fundamental
|
193
|
+
type to bottom-most most derived type.
|
194
|
+
</p>
|
195
|
+
<p>
|
196
|
+
Object instance destruction through <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> is very simple:
|
197
|
+
the instance structure is returned to the instance pool if there is one and if this was the
|
198
|
+
last living instance of the object, the class is destroyed.
|
199
|
+
</p>
|
200
|
+
<p>
|
201
|
+
Class destruction (the concept of destruction is sometimes partly
|
202
|
+
referred to as finalization in GType) is the symmetric process of
|
203
|
+
the initialization: interfaces are destroyed first.
|
204
|
+
Then, the most derived
|
205
|
+
class_finalize (<span class="type">ClassFinalizeFunc</span>) function is invoked. The
|
206
|
+
base_class_finalize (<span class="type"><a class="link" href="gobject-Type-Information.html#GBaseFinalizeFunc" title="GBaseFinalizeFunc ()">GBaseFinalizeFunc</a></span>) functions are
|
207
|
+
Finally invoked from bottom-most most-derived type to top-most fundamental type and
|
208
|
+
the class structure is freed.
|
209
|
+
</p>
|
210
|
+
<p>
|
211
|
+
As many readers have now understood it, the base initialization/finalization process is
|
212
|
+
very similar to the C++ constructor/destructor paradigm. The practical details are different
|
213
|
+
though and it is important not to get confused by superficial similarities.
|
214
|
+
GTypes have no instance destruction mechanism. It is
|
215
|
+
the user's responsibility to implement correct destruction semantics on top
|
216
|
+
of the existing GType code. (this is what GObject does. See
|
217
|
+
<a class="xref" href="chapter-gobject.html" title="The GObject base class"><i>The GObject base class</i></a>)
|
218
|
+
Furthermore, C++ code equivalent to the base_init
|
219
|
+
and class_init callbacks of GType is usually not needed because C++ cannot really create object
|
220
|
+
types at runtime.
|
221
|
+
</p>
|
222
|
+
<p>
|
223
|
+
The instantiation/finalization process can be summarized as follows:
|
224
|
+
</p>
|
225
|
+
<div class="table">
|
226
|
+
<a name="gtype-init-fini-table"></a><p class="title"><b>Table 1. GType Instantiation/Finalization</b></p>
|
227
|
+
<div class="table-contents"><table summary="GType Instantiation/Finalization" border="1">
|
228
|
+
<colgroup>
|
229
|
+
<col align="left">
|
230
|
+
<col align="left">
|
231
|
+
<col align="left">
|
232
|
+
</colgroup>
|
233
|
+
<thead><tr>
|
234
|
+
<th align="left">Invocation time</th>
|
235
|
+
<th align="left">Function Invoked</th>
|
236
|
+
<th align="left">Function's parameters</th>
|
237
|
+
</tr></thead>
|
238
|
+
<tbody>
|
239
|
+
<tr>
|
240
|
+
<td rowspan="3" 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 target type</td>
|
241
|
+
<td align="left">type's base_init function</td>
|
242
|
+
<td align="left">On the inheritance tree of classes from fundamental type to target type.
|
243
|
+
base_init is invoked once for each class structure.</td>
|
244
|
+
</tr>
|
245
|
+
<tr>
|
246
|
+
<td align="left">target type's class_init function</td>
|
247
|
+
<td align="left">On target type's class structure</td>
|
248
|
+
</tr>
|
249
|
+
<tr>
|
250
|
+
<td align="left">interface initialization, see
|
251
|
+
<a class="xref" href="gtype-non-instantiable-classed.html#gtype-non-instantiable-classed-init" title="Interface Initialization">the section called “Interface Initialization”</a>
|
252
|
+
</td>
|
253
|
+
<td align="left"> </td>
|
254
|
+
</tr>
|
255
|
+
<tr>
|
256
|
+
<td align="left">Each 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 target type</td>
|
257
|
+
<td align="left">target type's instance_init function</td>
|
258
|
+
<td align="left">On object's instance</td>
|
259
|
+
</tr>
|
260
|
+
<tr>
|
261
|
+
<td rowspan="3" 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 target type</td>
|
262
|
+
<td align="left">interface destruction, see
|
263
|
+
<a class="xref" href="gtype-non-instantiable-classed.html#gtype-non-instantiable-classed-dest" title="Interface Destruction">the section called “Interface Destruction”</a>
|
264
|
+
</td>
|
265
|
+
<td align="left"> </td>
|
266
|
+
</tr>
|
267
|
+
<tr>
|
268
|
+
<td align="left">target type's class_finalize function</td>
|
269
|
+
<td align="left">On target type's class structure</td>
|
270
|
+
</tr>
|
271
|
+
<tr>
|
272
|
+
<td align="left">type's base_finalize function</td>
|
273
|
+
<td align="left">On the inheritance tree of classes from fundamental type to target type.
|
274
|
+
base_finalize is invoked once for each class structure.</td>
|
275
|
+
</tr>
|
276
|
+
</tbody>
|
277
|
+
</table></div>
|
278
|
+
</div>
|
279
|
+
<p><br class="table-break">
|
280
|
+
</p>
|
281
|
+
</div>
|
282
|
+
</div>
|
283
|
+
<div class="footer">
|
284
|
+
<hr>
|
285
|
+
Generated by GTK-Doc V1.15.1</div>
|
286
|
+
</body>
|
287
|
+
</html>
|
@@ -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.15.1 (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">
|
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">
|
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">
|
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.15.1</div>
|
315
|
+
</body>
|
316
|
+
</html>
|