glib2 0.90.2-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (875) hide show
  1. data/ChangeLog +3115 -0
  2. data/README +40 -0
  3. data/Rakefile +69 -0
  4. data/ext/glib2/depend +10 -0
  5. data/ext/glib2/extconf.rb +61 -0
  6. data/ext/glib2/glib2.def +89 -0
  7. data/ext/glib2/rbgcompat.h +30 -0
  8. data/ext/glib2/rbglib.c +330 -0
  9. data/ext/glib2/rbglib.h +96 -0
  10. data/ext/glib2/rbglib_bookmarkfile.c +595 -0
  11. data/ext/glib2/rbglib_completion.c +192 -0
  12. data/ext/glib2/rbglib_convert.c +195 -0
  13. data/ext/glib2/rbglib_error.c +95 -0
  14. data/ext/glib2/rbglib_fileutils.c +83 -0
  15. data/ext/glib2/rbglib_i18n.c +44 -0
  16. data/ext/glib2/rbglib_int64.c +157 -0
  17. data/ext/glib2/rbglib_iochannel.c +883 -0
  18. data/ext/glib2/rbglib_keyfile.c +846 -0
  19. data/ext/glib2/rbglib_maincontext.c +915 -0
  20. data/ext/glib2/rbglib_mainloop.c +87 -0
  21. data/ext/glib2/rbglib_messages.c +150 -0
  22. data/ext/glib2/rbglib_pollfd.c +111 -0
  23. data/ext/glib2/rbglib_shell.c +68 -0
  24. data/ext/glib2/rbglib_source.c +190 -0
  25. data/ext/glib2/rbglib_spawn.c +345 -0
  26. data/ext/glib2/rbglib_threads.c +51 -0
  27. data/ext/glib2/rbglib_timer.c +127 -0
  28. data/ext/glib2/rbglib_unicode.c +611 -0
  29. data/ext/glib2/rbglib_utils.c +386 -0
  30. data/ext/glib2/rbglib_win32.c +136 -0
  31. data/ext/glib2/rbgobj_boxed.c +251 -0
  32. data/ext/glib2/rbgobj_closure.c +337 -0
  33. data/ext/glib2/rbgobj_convert.c +167 -0
  34. data/ext/glib2/rbgobj_enums.c +961 -0
  35. data/ext/glib2/rbgobj_fundamental.c +30 -0
  36. data/ext/glib2/rbgobj_object.c +892 -0
  37. data/ext/glib2/rbgobj_param.c +390 -0
  38. data/ext/glib2/rbgobj_paramspecs.c +305 -0
  39. data/ext/glib2/rbgobj_signal.c +963 -0
  40. data/ext/glib2/rbgobj_strv.c +61 -0
  41. data/ext/glib2/rbgobj_type.c +851 -0
  42. data/ext/glib2/rbgobj_typeinstance.c +121 -0
  43. data/ext/glib2/rbgobj_typeinterface.c +148 -0
  44. data/ext/glib2/rbgobj_typemodule.c +66 -0
  45. data/ext/glib2/rbgobj_typeplugin.c +49 -0
  46. data/ext/glib2/rbgobj_value.c +313 -0
  47. data/ext/glib2/rbgobj_valuearray.c +59 -0
  48. data/ext/glib2/rbgobj_valuetypes.c +298 -0
  49. data/ext/glib2/rbgobject.c +406 -0
  50. data/ext/glib2/rbgobject.h +265 -0
  51. data/ext/glib2/rbgprivate.h +88 -0
  52. data/ext/glib2/rbgutil.c +316 -0
  53. data/ext/glib2/rbgutil.h +82 -0
  54. data/ext/glib2/rbgutil_callback.c +231 -0
  55. data/extconf.rb +49 -0
  56. data/lib/1.8/glib2.so +0 -0
  57. data/lib/1.9/glib2.so +0 -0
  58. data/lib/glib-mkenums.rb +199 -0
  59. data/lib/glib2.rb +239 -0
  60. data/lib/gnome2-win32-binary-downloader.rb +92 -0
  61. data/lib/mkmf-gnome2.rb +377 -0
  62. data/sample/bookmarkfile.rb +66 -0
  63. data/sample/completion.rb +45 -0
  64. data/sample/idle.rb +41 -0
  65. data/sample/iochannel.rb +44 -0
  66. data/sample/keyfile.rb +62 -0
  67. data/sample/shell.rb +36 -0
  68. data/sample/spawn.rb +25 -0
  69. data/sample/timeout.rb +28 -0
  70. data/sample/timeout2.rb +35 -0
  71. data/sample/timer.rb +40 -0
  72. data/sample/type-register.rb +103 -0
  73. data/sample/type-register2.rb +104 -0
  74. data/sample/utils.rb +54 -0
  75. data/test/glib-test-init.rb +6 -0
  76. data/test/glib-test-utils.rb +12 -0
  77. data/test/run-test.rb +21 -0
  78. data/test/test_enum.rb +99 -0
  79. data/test/test_file_utils.rb +15 -0
  80. data/test/test_glib2.rb +120 -0
  81. data/test/test_iochannel.rb +275 -0
  82. data/test/test_key_file.rb +38 -0
  83. data/test/test_mkenums.rb +25 -0
  84. data/test/test_signal.rb +20 -0
  85. data/test/test_timeout.rb +28 -0
  86. data/test/test_unicode.rb +369 -0
  87. data/test/test_utils.rb +37 -0
  88. data/test/test_win32.rb +13 -0
  89. data/test-unit/COPYING +56 -0
  90. data/test-unit/GPL +340 -0
  91. data/test-unit/History.txt +232 -0
  92. data/test-unit/Manifest.txt +110 -0
  93. data/test-unit/PSFL +271 -0
  94. data/test-unit/README.txt +75 -0
  95. data/test-unit/Rakefile +53 -0
  96. data/test-unit/TODO +5 -0
  97. data/test-unit/bin/testrb +5 -0
  98. data/test-unit/html/bar.png +0 -0
  99. data/test-unit/html/bar.svg +153 -0
  100. data/test-unit/html/developer.png +0 -0
  101. data/test-unit/html/developer.svg +469 -0
  102. data/test-unit/html/famfamfam-logo.png +0 -0
  103. data/test-unit/html/favicon.ico +0 -0
  104. data/test-unit/html/favicon.png +0 -0
  105. data/test-unit/html/favicon.svg +82 -0
  106. data/test-unit/html/heading-mark.png +0 -0
  107. data/test-unit/html/heading-mark.svg +393 -0
  108. data/test-unit/html/index.html +247 -0
  109. data/test-unit/html/index.html.ja +270 -0
  110. data/test-unit/html/install.png +0 -0
  111. data/test-unit/html/install.svg +636 -0
  112. data/test-unit/html/jp.png +0 -0
  113. data/test-unit/html/kinotan-failure.png +0 -0
  114. data/test-unit/html/kinotan-pass.png +0 -0
  115. data/test-unit/html/logo.png +0 -0
  116. data/test-unit/html/logo.svg +483 -0
  117. data/test-unit/html/reference.png +0 -0
  118. data/test-unit/html/rubyforge.png +0 -0
  119. data/test-unit/html/tango-logo.png +0 -0
  120. data/test-unit/html/test-unit.css +339 -0
  121. data/test-unit/html/tutorial.png +0 -0
  122. data/test-unit/html/tutorial.svg +559 -0
  123. data/test-unit/html/us.png +0 -0
  124. data/test-unit/images/color-diff.png +0 -0
  125. data/test-unit/lib/test/unit/assertionfailederror.rb +25 -0
  126. data/test-unit/lib/test/unit/assertions.rb +1334 -0
  127. data/test-unit/lib/test/unit/attribute.rb +125 -0
  128. data/test-unit/lib/test/unit/autorunner.rb +363 -0
  129. data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
  130. data/test-unit/lib/test/unit/collector/dir.rb +108 -0
  131. data/test-unit/lib/test/unit/collector/load.rb +144 -0
  132. data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
  133. data/test-unit/lib/test/unit/collector.rb +36 -0
  134. data/test-unit/lib/test/unit/color-scheme.rb +106 -0
  135. data/test-unit/lib/test/unit/color.rb +96 -0
  136. data/test-unit/lib/test/unit/diff.rb +740 -0
  137. data/test-unit/lib/test/unit/error.rb +130 -0
  138. data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
  139. data/test-unit/lib/test/unit/failure.rb +136 -0
  140. data/test-unit/lib/test/unit/fixture.rb +176 -0
  141. data/test-unit/lib/test/unit/notification.rb +129 -0
  142. data/test-unit/lib/test/unit/omission.rb +191 -0
  143. data/test-unit/lib/test/unit/pending.rb +150 -0
  144. data/test-unit/lib/test/unit/priority.rb +180 -0
  145. data/test-unit/lib/test/unit/runner/console.rb +52 -0
  146. data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
  147. data/test-unit/lib/test/unit/runner/tap.rb +8 -0
  148. data/test-unit/lib/test/unit/testcase.rb +483 -0
  149. data/test-unit/lib/test/unit/testresult.rb +121 -0
  150. data/test-unit/lib/test/unit/testsuite.rb +110 -0
  151. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
  152. data/test-unit/lib/test/unit/ui/console/testrunner.rb +430 -0
  153. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +63 -0
  154. data/test-unit/lib/test/unit/ui/tap/testrunner.rb +82 -0
  155. data/test-unit/lib/test/unit/ui/testrunner.rb +53 -0
  156. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
  157. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  158. data/test-unit/lib/test/unit/util/backtracefilter.rb +42 -0
  159. data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
  160. data/test-unit/lib/test/unit/util/observable.rb +90 -0
  161. data/test-unit/lib/test/unit/util/output.rb +31 -0
  162. data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
  163. data/test-unit/lib/test/unit/version.rb +7 -0
  164. data/test-unit/lib/test/unit.rb +328 -0
  165. data/test-unit/sample/adder.rb +13 -0
  166. data/test-unit/sample/subtracter.rb +12 -0
  167. data/test-unit/sample/test_adder.rb +20 -0
  168. data/test-unit/sample/test_subtracter.rb +20 -0
  169. data/test-unit/sample/test_user.rb +23 -0
  170. data/test-unit/test/collector/test-descendant.rb +133 -0
  171. data/test-unit/test/collector/test-load.rb +442 -0
  172. data/test-unit/test/collector/test_dir.rb +406 -0
  173. data/test-unit/test/collector/test_objectspace.rb +100 -0
  174. data/test-unit/test/run-test.rb +15 -0
  175. data/test-unit/test/test-attribute.rb +86 -0
  176. data/test-unit/test/test-color-scheme.rb +69 -0
  177. data/test-unit/test/test-color.rb +47 -0
  178. data/test-unit/test/test-diff.rb +518 -0
  179. data/test-unit/test/test-emacs-runner.rb +60 -0
  180. data/test-unit/test/test-fixture.rb +287 -0
  181. data/test-unit/test/test-notification.rb +33 -0
  182. data/test-unit/test/test-omission.rb +81 -0
  183. data/test-unit/test/test-pending.rb +70 -0
  184. data/test-unit/test/test-priority.rb +119 -0
  185. data/test-unit/test/test-testcase.rb +544 -0
  186. data/test-unit/test/test_assertions.rb +1197 -0
  187. data/test-unit/test/test_error.rb +26 -0
  188. data/test-unit/test/test_failure.rb +33 -0
  189. data/test-unit/test/test_testresult.rb +113 -0
  190. data/test-unit/test/test_testsuite.rb +129 -0
  191. data/test-unit/test/testunit-test-util.rb +14 -0
  192. data/test-unit/test/ui/test_tap.rb +33 -0
  193. data/test-unit/test/ui/test_testrunmediator.rb +20 -0
  194. data/test-unit/test/util/test-method-owner-finder.rb +38 -0
  195. data/test-unit/test/util/test-output.rb +11 -0
  196. data/test-unit/test/util/test_backtracefilter.rb +41 -0
  197. data/test-unit/test/util/test_observable.rb +102 -0
  198. data/test-unit/test/util/test_procwrapper.rb +36 -0
  199. data/vendor/local/bin/envsubst.exe +0 -0
  200. data/vendor/local/bin/gettext.exe +0 -0
  201. data/vendor/local/bin/gettext.sh +123 -0
  202. data/vendor/local/bin/glib-genmarshal.exe +0 -0
  203. data/vendor/local/bin/glib-gettextize +188 -0
  204. data/vendor/local/bin/glib-mkenums +511 -0
  205. data/vendor/local/bin/gobject-query.exe +0 -0
  206. data/vendor/local/bin/gspawn-win32-helper-console.exe +0 -0
  207. data/vendor/local/bin/gspawn-win32-helper.exe +0 -0
  208. data/vendor/local/bin/intl.dll +0 -0
  209. data/vendor/local/bin/libasprintf-0.dll +0 -0
  210. data/vendor/local/bin/libgcc_s_dw2-1.dll +0 -0
  211. data/vendor/local/bin/libgio-2.0-0.dll +0 -0
  212. data/vendor/local/bin/libglib-2.0-0.dll +0 -0
  213. data/vendor/local/bin/libgmodule-2.0-0.dll +0 -0
  214. data/vendor/local/bin/libgobject-2.0-0.dll +0 -0
  215. data/vendor/local/bin/libgthread-2.0-0.dll +0 -0
  216. data/vendor/local/bin/ngettext.exe +0 -0
  217. data/vendor/local/include/autosprintf.h +66 -0
  218. data/vendor/local/include/glib-2.0/gio/gappinfo.h +237 -0
  219. data/vendor/local/include/glib-2.0/gio/gasyncinitable.h +119 -0
  220. data/vendor/local/include/glib-2.0/gio/gasyncresult.h +73 -0
  221. data/vendor/local/include/glib-2.0/gio/gbufferedinputstream.h +123 -0
  222. data/vendor/local/include/glib-2.0/gio/gbufferedoutputstream.h +82 -0
  223. data/vendor/local/include/glib-2.0/gio/gcancellable.h +103 -0
  224. data/vendor/local/include/glib-2.0/gio/gcharsetconverter.h +60 -0
  225. data/vendor/local/include/glib-2.0/gio/gcontenttype.h +57 -0
  226. data/vendor/local/include/glib-2.0/gio/gconverter.h +95 -0
  227. data/vendor/local/include/glib-2.0/gio/gconverterinputstream.h +80 -0
  228. data/vendor/local/include/glib-2.0/gio/gconverteroutputstream.h +80 -0
  229. data/vendor/local/include/glib-2.0/gio/gdatainputstream.h +133 -0
  230. data/vendor/local/include/glib-2.0/gio/gdataoutputstream.h +116 -0
  231. data/vendor/local/include/glib-2.0/gio/gdrive.h +225 -0
  232. data/vendor/local/include/glib-2.0/gio/gemblem.h +58 -0
  233. data/vendor/local/include/glib-2.0/gio/gemblemedicon.h +62 -0
  234. data/vendor/local/include/glib-2.0/gio/gfile.h +1017 -0
  235. data/vendor/local/include/glib-2.0/gio/gfileattribute.h +77 -0
  236. data/vendor/local/include/glib-2.0/gio/gfileenumerator.h +133 -0
  237. data/vendor/local/include/glib-2.0/gio/gfileicon.h +56 -0
  238. data/vendor/local/include/glib-2.0/gio/gfileinfo.h +951 -0
  239. data/vendor/local/include/glib-2.0/gio/gfileinputstream.h +112 -0
  240. data/vendor/local/include/glib-2.0/gio/gfileiostream.h +118 -0
  241. data/vendor/local/include/glib-2.0/gio/gfilemonitor.h +95 -0
  242. data/vendor/local/include/glib-2.0/gio/gfilenamecompleter.h +76 -0
  243. data/vendor/local/include/glib-2.0/gio/gfileoutputstream.h +119 -0
  244. data/vendor/local/include/glib-2.0/gio/gfilterinputstream.h +76 -0
  245. data/vendor/local/include/glib-2.0/gio/gfilteroutputstream.h +76 -0
  246. data/vendor/local/include/glib-2.0/gio/gicon.h +91 -0
  247. data/vendor/local/include/glib-2.0/gio/ginetaddress.h +103 -0
  248. data/vendor/local/include/glib-2.0/gio/ginetsocketaddress.h +69 -0
  249. data/vendor/local/include/glib-2.0/gio/ginitable.h +96 -0
  250. data/vendor/local/include/glib-2.0/gio/ginputstream.h +172 -0
  251. data/vendor/local/include/glib-2.0/gio/gio.h +101 -0
  252. data/vendor/local/include/glib-2.0/gio/gioenums.h +703 -0
  253. data/vendor/local/include/glib-2.0/gio/gioenumtypes.h +79 -0
  254. data/vendor/local/include/glib-2.0/gio/gioerror.h +48 -0
  255. data/vendor/local/include/glib-2.0/gio/giomodule.h +132 -0
  256. data/vendor/local/include/glib-2.0/gio/gioscheduler.h +52 -0
  257. data/vendor/local/include/glib-2.0/gio/giostream.h +112 -0
  258. data/vendor/local/include/glib-2.0/gio/giotypes.h +339 -0
  259. data/vendor/local/include/glib-2.0/gio/gloadableicon.h +97 -0
  260. data/vendor/local/include/glib-2.0/gio/gmemoryinputstream.h +82 -0
  261. data/vendor/local/include/glib-2.0/gio/gmemoryoutputstream.h +97 -0
  262. data/vendor/local/include/glib-2.0/gio/gmount.h +242 -0
  263. data/vendor/local/include/glib-2.0/gio/gmountoperation.h +123 -0
  264. data/vendor/local/include/glib-2.0/gio/gnativevolumemonitor.h +62 -0
  265. data/vendor/local/include/glib-2.0/gio/gnetworkaddress.h +69 -0
  266. data/vendor/local/include/glib-2.0/gio/gnetworkservice.h +69 -0
  267. data/vendor/local/include/glib-2.0/gio/goutputstream.h +207 -0
  268. data/vendor/local/include/glib-2.0/gio/gresolver.h +167 -0
  269. data/vendor/local/include/glib-2.0/gio/gseekable.h +99 -0
  270. data/vendor/local/include/glib-2.0/gio/gsimpleasyncresult.h +125 -0
  271. data/vendor/local/include/glib-2.0/gio/gsocket.h +176 -0
  272. data/vendor/local/include/glib-2.0/gio/gsocketaddress.h +79 -0
  273. data/vendor/local/include/glib-2.0/gio/gsocketaddressenumerator.h +89 -0
  274. data/vendor/local/include/glib-2.0/gio/gsocketclient.h +130 -0
  275. data/vendor/local/include/glib-2.0/gio/gsocketconnectable.h +68 -0
  276. data/vendor/local/include/glib-2.0/gio/gsocketconnection.h +91 -0
  277. data/vendor/local/include/glib-2.0/gio/gsocketcontrolmessage.h +105 -0
  278. data/vendor/local/include/glib-2.0/gio/gsocketlistener.h +138 -0
  279. data/vendor/local/include/glib-2.0/gio/gsocketservice.h +88 -0
  280. data/vendor/local/include/glib-2.0/gio/gsrvtarget.h +52 -0
  281. data/vendor/local/include/glib-2.0/gio/gtcpconnection.h +68 -0
  282. data/vendor/local/include/glib-2.0/gio/gthemedicon.h +63 -0
  283. data/vendor/local/include/glib-2.0/gio/gthreadedsocketservice.h +81 -0
  284. data/vendor/local/include/glib-2.0/gio/gvfs.h +125 -0
  285. data/vendor/local/include/glib-2.0/gio/gvolume.h +211 -0
  286. data/vendor/local/include/glib-2.0/gio/gvolumemonitor.h +151 -0
  287. data/vendor/local/include/glib-2.0/gio/gzlibcompressor.h +55 -0
  288. data/vendor/local/include/glib-2.0/gio/gzlibdecompressor.h +54 -0
  289. data/vendor/local/include/glib-2.0/glib/galloca.h +63 -0
  290. data/vendor/local/include/glib-2.0/glib/garray.h +179 -0
  291. data/vendor/local/include/glib-2.0/glib/gasyncqueue.h +120 -0
  292. data/vendor/local/include/glib-2.0/glib/gatomic.h +85 -0
  293. data/vendor/local/include/glib-2.0/glib/gbacktrace.h +68 -0
  294. data/vendor/local/include/glib-2.0/glib/gbase64.h +57 -0
  295. data/vendor/local/include/glib-2.0/glib/gbitlock.h +43 -0
  296. data/vendor/local/include/glib-2.0/glib/gbookmarkfile.h +191 -0
  297. data/vendor/local/include/glib-2.0/glib/gcache.h +69 -0
  298. data/vendor/local/include/glib-2.0/glib/gchecksum.h +86 -0
  299. data/vendor/local/include/glib-2.0/glib/gcompletion.h +77 -0
  300. data/vendor/local/include/glib-2.0/glib/gconvert.h +138 -0
  301. data/vendor/local/include/glib-2.0/glib/gdataset.h +122 -0
  302. data/vendor/local/include/glib-2.0/glib/gdate.h +263 -0
  303. data/vendor/local/include/glib-2.0/glib/gdir.h +52 -0
  304. data/vendor/local/include/glib-2.0/glib/gerror.h +98 -0
  305. data/vendor/local/include/glib-2.0/glib/gfileutils.h +128 -0
  306. data/vendor/local/include/glib-2.0/glib/ghash.h +166 -0
  307. data/vendor/local/include/glib-2.0/glib/ghook.h +181 -0
  308. data/vendor/local/include/glib-2.0/glib/ghostutils.h +40 -0
  309. data/vendor/local/include/glib-2.0/glib/gi18n-lib.h +38 -0
  310. data/vendor/local/include/glib-2.0/glib/gi18n.h +34 -0
  311. data/vendor/local/include/glib-2.0/glib/giochannel.h +366 -0
  312. data/vendor/local/include/glib-2.0/glib/gkeyfile.h +250 -0
  313. data/vendor/local/include/glib-2.0/glib/glist.h +120 -0
  314. data/vendor/local/include/glib-2.0/glib/gmacros.h +277 -0
  315. data/vendor/local/include/glib-2.0/glib/gmain.h +304 -0
  316. data/vendor/local/include/glib-2.0/glib/gmappedfile.h +49 -0
  317. data/vendor/local/include/glib-2.0/glib/gmarkup.h +163 -0
  318. data/vendor/local/include/glib-2.0/glib/gmem.h +203 -0
  319. data/vendor/local/include/glib-2.0/glib/gmessages.h +343 -0
  320. data/vendor/local/include/glib-2.0/glib/gnode.h +288 -0
  321. data/vendor/local/include/glib-2.0/glib/goption.h +370 -0
  322. data/vendor/local/include/glib-2.0/glib/gpattern.h +49 -0
  323. data/vendor/local/include/glib-2.0/glib/gpoll.h +93 -0
  324. data/vendor/local/include/glib-2.0/glib/gprimes.h +51 -0
  325. data/vendor/local/include/glib-2.0/glib/gprintf.h +52 -0
  326. data/vendor/local/include/glib-2.0/glib/gqsort.h +46 -0
  327. data/vendor/local/include/glib-2.0/glib/gquark.h +52 -0
  328. data/vendor/local/include/glib-2.0/glib/gqueue.h +127 -0
  329. data/vendor/local/include/glib-2.0/glib/grand.h +85 -0
  330. data/vendor/local/include/glib-2.0/glib/gregex.h +243 -0
  331. data/vendor/local/include/glib-2.0/glib/grel.h +97 -0
  332. data/vendor/local/include/glib-2.0/glib/gscanner.h +278 -0
  333. data/vendor/local/include/glib-2.0/glib/gsequence.h +128 -0
  334. data/vendor/local/include/glib-2.0/glib/gshell.h +55 -0
  335. data/vendor/local/include/glib-2.0/glib/gslice.h +86 -0
  336. data/vendor/local/include/glib-2.0/glib/gslist.h +114 -0
  337. data/vendor/local/include/glib-2.0/glib/gspawn.h +139 -0
  338. data/vendor/local/include/glib-2.0/glib/gstdio.h +159 -0
  339. data/vendor/local/include/glib-2.0/glib/gstrfuncs.h +267 -0
  340. data/vendor/local/include/glib-2.0/glib/gstring.h +178 -0
  341. data/vendor/local/include/glib-2.0/glib/gtestutils.h +292 -0
  342. data/vendor/local/include/glib-2.0/glib/gthread.h +408 -0
  343. data/vendor/local/include/glib-2.0/glib/gthreadpool.h +114 -0
  344. data/vendor/local/include/glib-2.0/glib/gtimer.h +65 -0
  345. data/vendor/local/include/glib-2.0/glib/gtree.h +91 -0
  346. data/vendor/local/include/glib-2.0/glib/gtypes.h +451 -0
  347. data/vendor/local/include/glib-2.0/glib/gunicode.h +404 -0
  348. data/vendor/local/include/glib-2.0/glib/gurifuncs.h +81 -0
  349. data/vendor/local/include/glib-2.0/glib/gutils.h +490 -0
  350. data/vendor/local/include/glib-2.0/glib/gvariant.h +224 -0
  351. data/vendor/local/include/glib-2.0/glib/gvarianttype.h +305 -0
  352. data/vendor/local/include/glib-2.0/glib/gwin32.h +114 -0
  353. data/vendor/local/include/glib-2.0/glib-object.h +41 -0
  354. data/vendor/local/include/glib-2.0/glib.h +97 -0
  355. data/vendor/local/include/glib-2.0/gmodule.h +101 -0
  356. data/vendor/local/include/glib-2.0/gobject/gboxed.h +236 -0
  357. data/vendor/local/include/glib-2.0/gobject/gclosure.h +251 -0
  358. data/vendor/local/include/glib-2.0/gobject/genums.h +261 -0
  359. data/vendor/local/include/glib-2.0/gobject/gmarshal.h +169 -0
  360. data/vendor/local/include/glib-2.0/gobject/gobject.h +562 -0
  361. data/vendor/local/include/glib-2.0/gobject/gobjectnotifyqueue.c +166 -0
  362. data/vendor/local/include/glib-2.0/gobject/gparam.h +410 -0
  363. data/vendor/local/include/glib-2.0/gobject/gparamspecs.h +1083 -0
  364. data/vendor/local/include/glib-2.0/gobject/gsignal.h +509 -0
  365. data/vendor/local/include/glib-2.0/gobject/gsourceclosure.h +51 -0
  366. data/vendor/local/include/glib-2.0/gobject/gtype.h +1608 -0
  367. data/vendor/local/include/glib-2.0/gobject/gtypemodule.h +263 -0
  368. data/vendor/local/include/glib-2.0/gobject/gtypeplugin.h +134 -0
  369. data/vendor/local/include/glib-2.0/gobject/gvalue.h +159 -0
  370. data/vendor/local/include/glib-2.0/gobject/gvaluearray.h +77 -0
  371. data/vendor/local/include/glib-2.0/gobject/gvaluecollector.h +222 -0
  372. data/vendor/local/include/glib-2.0/gobject/gvaluetypes.h +243 -0
  373. data/vendor/local/include/libintl.h +464 -0
  374. data/vendor/local/lib/GNU.Gettext.dll +0 -0
  375. data/vendor/local/lib/gio-2.0.def +800 -0
  376. data/vendor/local/lib/gio-2.0.lib +0 -0
  377. data/vendor/local/lib/glib-2.0/include/glibconfig.h +284 -0
  378. data/vendor/local/lib/glib-2.0.def +1381 -0
  379. data/vendor/local/lib/glib-2.0.lib +0 -0
  380. data/vendor/local/lib/gmodule-2.0.def +11 -0
  381. data/vendor/local/lib/gmodule-2.0.lib +0 -0
  382. data/vendor/local/lib/gobject-2.0.def +349 -0
  383. data/vendor/local/lib/gobject-2.0.lib +0 -0
  384. data/vendor/local/lib/gthread-2.0.def +3 -0
  385. data/vendor/local/lib/gthread-2.0.lib +0 -0
  386. data/vendor/local/lib/intl.lib +0 -0
  387. data/vendor/local/lib/libasprintf.dll.a +0 -0
  388. data/vendor/local/lib/libgio-2.0.dll.a +0 -0
  389. data/vendor/local/lib/libglib-2.0.dll.a +0 -0
  390. data/vendor/local/lib/libgmodule-2.0.dll.a +0 -0
  391. data/vendor/local/lib/libgobject-2.0.dll.a +0 -0
  392. data/vendor/local/lib/libgthread-2.0.dll.a +0 -0
  393. data/vendor/local/lib/libintl.def +31 -0
  394. data/vendor/local/lib/libintl.dll.a +0 -0
  395. data/vendor/local/lib/pkgconfig/gio-2.0.pc +14 -0
  396. data/vendor/local/lib/pkgconfig/glib-2.0.pc +15 -0
  397. data/vendor/local/lib/pkgconfig/gmodule-2.0.pc +14 -0
  398. data/vendor/local/lib/pkgconfig/gmodule-no-export-2.0.pc +14 -0
  399. data/vendor/local/lib/pkgconfig/gobject-2.0.pc +11 -0
  400. data/vendor/local/lib/pkgconfig/gthread-2.0.pc +11 -0
  401. data/vendor/local/manifest/gettext-runtime-dev_0.18.1.1-2_win32.mft +81 -0
  402. data/vendor/local/manifest/gettext-runtime_0.18.1.1-2_win32.mft +3 -0
  403. data/vendor/local/manifest/glib-dev_2.24.2-2_win32.mft +491 -0
  404. data/vendor/local/manifest/glib_2.24.2-2_win32.mft +101 -0
  405. data/vendor/local/share/aclocal/glib-2.0.m4 +211 -0
  406. data/vendor/local/share/aclocal/glib-gettext.m4 +432 -0
  407. data/vendor/local/share/doc/gettext/bind_textdomain_codeset.3.html +165 -0
  408. data/vendor/local/share/doc/gettext/bindtextdomain.3.html +160 -0
  409. data/vendor/local/share/doc/gettext/csharpdoc/GNU_Gettext.html +8 -0
  410. data/vendor/local/share/doc/gettext/csharpdoc/GNU_Gettext_GettextResourceManager.html +305 -0
  411. data/vendor/local/share/doc/gettext/csharpdoc/GNU_Gettext_GettextResourceSet.html +356 -0
  412. data/vendor/local/share/doc/gettext/csharpdoc/begin.html +11 -0
  413. data/vendor/local/share/doc/gettext/csharpdoc/index.html +10 -0
  414. data/vendor/local/share/doc/gettext/csharpdoc/namespaces.html +6 -0
  415. data/vendor/local/share/doc/gettext/envsubst.1.html +213 -0
  416. data/vendor/local/share/doc/gettext/gettext.1.html +266 -0
  417. data/vendor/local/share/doc/gettext/gettext.3.html +186 -0
  418. data/vendor/local/share/doc/gettext/ngettext.1.html +280 -0
  419. data/vendor/local/share/doc/gettext/ngettext.3.html +143 -0
  420. data/vendor/local/share/doc/gettext/textdomain.3.html +150 -0
  421. data/vendor/local/share/doc/glib-2.24.2/COPYING +482 -0
  422. data/vendor/local/share/doc/glib-dev-2.24.2/COPYING +482 -0
  423. data/vendor/local/share/doc/libasprintf/autosprintf_all.html +174 -0
  424. data/vendor/local/share/glib-2.0/gdb/glib.py +252 -0
  425. data/vendor/local/share/glib-2.0/gdb/gobject.py +305 -0
  426. data/vendor/local/share/glib-2.0/gettext/mkinstalldirs +111 -0
  427. data/vendor/local/share/glib-2.0/gettext/po/Makefile.in.in +277 -0
  428. data/vendor/local/share/gtk-doc/html/gio/GAppInfo.html +1390 -0
  429. data/vendor/local/share/gtk-doc/html/gio/GAsyncInitable.html +531 -0
  430. data/vendor/local/share/gtk-doc/html/gio/GAsyncResult.html +343 -0
  431. data/vendor/local/share/gtk-doc/html/gio/GBufferedInputStream.html +568 -0
  432. data/vendor/local/share/gtk-doc/html/gio/GBufferedOutputStream.html +295 -0
  433. data/vendor/local/share/gtk-doc/html/gio/GCancellable.html +620 -0
  434. data/vendor/local/share/gtk-doc/html/gio/GCharsetConverter.html +245 -0
  435. data/vendor/local/share/gtk-doc/html/gio/GConverter.html +388 -0
  436. data/vendor/local/share/gtk-doc/html/gio/GDataInputStream.html +993 -0
  437. data/vendor/local/share/gtk-doc/html/gio/GDataOutputStream.html +544 -0
  438. data/vendor/local/share/gtk-doc/html/gio/GDrive.html +1416 -0
  439. data/vendor/local/share/gtk-doc/html/gio/GEmblem.html +272 -0
  440. data/vendor/local/share/gtk-doc/html/gio/GEmblemedIcon.html +206 -0
  441. data/vendor/local/share/gtk-doc/html/gio/GFile.html +7450 -0
  442. data/vendor/local/share/gtk-doc/html/gio/GFileDescriptorBased.html +115 -0
  443. data/vendor/local/share/gtk-doc/html/gio/GFileEnumerator.html +520 -0
  444. data/vendor/local/share/gtk-doc/html/gio/GFileIOStream.html +312 -0
  445. data/vendor/local/share/gtk-doc/html/gio/GFileIcon.html +155 -0
  446. data/vendor/local/share/gtk-doc/html/gio/GFileInfo.html +3116 -0
  447. data/vendor/local/share/gtk-doc/html/gio/GFileInputStream.html +262 -0
  448. data/vendor/local/share/gtk-doc/html/gio/GFileMonitor.html +353 -0
  449. data/vendor/local/share/gtk-doc/html/gio/GFileOutputStream.html +301 -0
  450. data/vendor/local/share/gtk-doc/html/gio/GFilenameCompleter.html +217 -0
  451. data/vendor/local/share/gtk-doc/html/gio/GFilterInputStream.html +182 -0
  452. data/vendor/local/share/gtk-doc/html/gio/GFilterOutputStream.html +183 -0
  453. data/vendor/local/share/gtk-doc/html/gio/GIOModule.html +261 -0
  454. data/vendor/local/share/gtk-doc/html/gio/GIOStream.html +479 -0
  455. data/vendor/local/share/gtk-doc/html/gio/GIcon.html +331 -0
  456. data/vendor/local/share/gtk-doc/html/gio/GInetAddress.html +717 -0
  457. data/vendor/local/share/gtk-doc/html/gio/GInetSocketAddress.html +195 -0
  458. data/vendor/local/share/gtk-doc/html/gio/GInitable.html +388 -0
  459. data/vendor/local/share/gtk-doc/html/gio/GInputStream.html +808 -0
  460. data/vendor/local/share/gtk-doc/html/gio/GLoadableIcon.html +301 -0
  461. data/vendor/local/share/gtk-doc/html/gio/GMemoryInputStream.html +185 -0
  462. data/vendor/local/share/gtk-doc/html/gio/GMemoryOutputStream.html +362 -0
  463. data/vendor/local/share/gtk-doc/html/gio/GMount.html +1465 -0
  464. data/vendor/local/share/gtk-doc/html/gio/GMountOperation.html +848 -0
  465. data/vendor/local/share/gtk-doc/html/gio/GNetworkAddress.html +263 -0
  466. data/vendor/local/share/gtk-doc/html/gio/GNetworkService.html +248 -0
  467. data/vendor/local/share/gtk-doc/html/gio/GOutputStream.html +1006 -0
  468. data/vendor/local/share/gtk-doc/html/gio/GResolver.html +787 -0
  469. data/vendor/local/share/gtk-doc/html/gio/GSeekable.html +350 -0
  470. data/vendor/local/share/gtk-doc/html/gio/GSimpleAsyncResult.html +979 -0
  471. data/vendor/local/share/gtk-doc/html/gio/GSocket.html +2152 -0
  472. data/vendor/local/share/gtk-doc/html/gio/GSocketAddress.html +297 -0
  473. data/vendor/local/share/gtk-doc/html/gio/GSocketClient.html +930 -0
  474. data/vendor/local/share/gtk-doc/html/gio/GSocketConnectable.html +428 -0
  475. data/vendor/local/share/gtk-doc/html/gio/GSocketConnection.html +548 -0
  476. data/vendor/local/share/gtk-doc/html/gio/GSocketControlMessage.html +274 -0
  477. data/vendor/local/share/gtk-doc/html/gio/GSocketListener.html +741 -0
  478. data/vendor/local/share/gtk-doc/html/gio/GSocketService.html +258 -0
  479. data/vendor/local/share/gtk-doc/html/gio/GThemedIcon.html +377 -0
  480. data/vendor/local/share/gtk-doc/html/gio/GThreadedSocketService.html +197 -0
  481. data/vendor/local/share/gtk-doc/html/gio/GUnixFDList.html +381 -0
  482. data/vendor/local/share/gtk-doc/html/gio/GUnixFDMessage.html +280 -0
  483. data/vendor/local/share/gtk-doc/html/gio/GUnixInputStream.html +237 -0
  484. data/vendor/local/share/gtk-doc/html/gio/GUnixOutputStream.html +237 -0
  485. data/vendor/local/share/gtk-doc/html/gio/GUnixSocketAddress.html +306 -0
  486. data/vendor/local/share/gtk-doc/html/gio/GVfs.html +274 -0
  487. data/vendor/local/share/gtk-doc/html/gio/GVolume.html +1028 -0
  488. data/vendor/local/share/gtk-doc/html/gio/GVolumeMonitor.html +709 -0
  489. data/vendor/local/share/gtk-doc/html/gio/GZlibCompressor.html +180 -0
  490. data/vendor/local/share/gtk-doc/html/gio/GZlibDecompressor.html +128 -0
  491. data/vendor/local/share/gtk-doc/html/gio/api-index-2-18.html +153 -0
  492. data/vendor/local/share/gtk-doc/html/gio/api-index-2-20.html +155 -0
  493. data/vendor/local/share/gtk-doc/html/gio/api-index-2-22.html +1088 -0
  494. data/vendor/local/share/gtk-doc/html/gio/api-index-2-24.html +206 -0
  495. data/vendor/local/share/gtk-doc/html/gio/api-index-deprecated.html +97 -0
  496. data/vendor/local/share/gtk-doc/html/gio/api-index-full.html +4499 -0
  497. data/vendor/local/share/gtk-doc/html/gio/async.html +44 -0
  498. data/vendor/local/share/gtk-doc/html/gio/ch01.html +171 -0
  499. data/vendor/local/share/gtk-doc/html/gio/ch02.html +45 -0
  500. data/vendor/local/share/gtk-doc/html/gio/ch03.html +80 -0
  501. data/vendor/local/share/gtk-doc/html/gio/ch19.html +75 -0
  502. data/vendor/local/share/gtk-doc/html/gio/ch20.html +217 -0
  503. data/vendor/local/share/gtk-doc/html/gio/ch20s02.html +41 -0
  504. data/vendor/local/share/gtk-doc/html/gio/ch20s03.html +39 -0
  505. data/vendor/local/share/gtk-doc/html/gio/conversion.html +44 -0
  506. data/vendor/local/share/gtk-doc/html/gio/extending-gio.html +96 -0
  507. data/vendor/local/share/gtk-doc/html/gio/extending.html +41 -0
  508. data/vendor/local/share/gtk-doc/html/gio/failable_initialization.html +38 -0
  509. data/vendor/local/share/gtk-doc/html/gio/file_mon.html +33 -0
  510. data/vendor/local/share/gtk-doc/html/gio/file_ops.html +50 -0
  511. data/vendor/local/share/gtk-doc/html/gio/gio-Desktop-file-based-GAppInfo.html +339 -0
  512. data/vendor/local/share/gtk-doc/html/gio/gio-Extension-Points.html +465 -0
  513. data/vendor/local/share/gtk-doc/html/gio/gio-GContentType.html +381 -0
  514. data/vendor/local/share/gtk-doc/html/gio/gio-GConverterInputstream.html +163 -0
  515. data/vendor/local/share/gtk-doc/html/gio/gio-GConverterOutputstream.html +163 -0
  516. data/vendor/local/share/gtk-doc/html/gio/gio-GFileAttribute.html +927 -0
  517. data/vendor/local/share/gtk-doc/html/gio/gio-GIOError.html +328 -0
  518. data/vendor/local/share/gtk-doc/html/gio/gio-GIOScheduler.html +297 -0
  519. data/vendor/local/share/gtk-doc/html/gio/gio-GSrvTarget.html +313 -0
  520. data/vendor/local/share/gtk-doc/html/gio/gio-Unix-Mounts.html +918 -0
  521. data/vendor/local/share/gtk-doc/html/gio/gio-hierarchy.html +107 -0
  522. data/vendor/local/share/gtk-doc/html/gio/gio.devhelp +1235 -0
  523. data/vendor/local/share/gtk-doc/html/gio/gio.devhelp2 +1384 -0
  524. data/vendor/local/share/gtk-doc/html/gio/gvfs-overview.png +0 -0
  525. data/vendor/local/share/gtk-doc/html/gio/highlevel-socket.html +47 -0
  526. data/vendor/local/share/gtk-doc/html/gio/home.png +0 -0
  527. data/vendor/local/share/gtk-doc/html/gio/icons.html +50 -0
  528. data/vendor/local/share/gtk-doc/html/gio/index.html +318 -0
  529. data/vendor/local/share/gtk-doc/html/gio/index.sgml +1795 -0
  530. data/vendor/local/share/gtk-doc/html/gio/left.png +0 -0
  531. data/vendor/local/share/gtk-doc/html/gio/migrating.html +42 -0
  532. data/vendor/local/share/gtk-doc/html/gio/networking.html +57 -0
  533. data/vendor/local/share/gtk-doc/html/gio/pt01.html +39 -0
  534. data/vendor/local/share/gtk-doc/html/gio/pt02.html +293 -0
  535. data/vendor/local/share/gtk-doc/html/gio/resolver.html +47 -0
  536. data/vendor/local/share/gtk-doc/html/gio/right.png +0 -0
  537. data/vendor/local/share/gtk-doc/html/gio/streaming.html +92 -0
  538. data/vendor/local/share/gtk-doc/html/gio/style.css +257 -0
  539. data/vendor/local/share/gtk-doc/html/gio/types.html +41 -0
  540. data/vendor/local/share/gtk-doc/html/gio/up.png +0 -0
  541. data/vendor/local/share/gtk-doc/html/gio/utils.html +33 -0
  542. data/vendor/local/share/gtk-doc/html/gio/volume_mon.html +47 -0
  543. data/vendor/local/share/gtk-doc/html/glib/api-index-2-10.html +180 -0
  544. data/vendor/local/share/gtk-doc/html/glib/api-index-2-12.html +312 -0
  545. data/vendor/local/share/gtk-doc/html/glib/api-index-2-14.html +563 -0
  546. data/vendor/local/share/gtk-doc/html/glib/api-index-2-16.html +362 -0
  547. data/vendor/local/share/gtk-doc/html/glib/api-index-2-18.html +102 -0
  548. data/vendor/local/share/gtk-doc/html/glib/api-index-2-2.html +124 -0
  549. data/vendor/local/share/gtk-doc/html/glib/api-index-2-20.html +83 -0
  550. data/vendor/local/share/gtk-doc/html/glib/api-index-2-22.html +194 -0
  551. data/vendor/local/share/gtk-doc/html/glib/api-index-2-24.html +419 -0
  552. data/vendor/local/share/gtk-doc/html/glib/api-index-2-4.html +389 -0
  553. data/vendor/local/share/gtk-doc/html/glib/api-index-2-6.html +413 -0
  554. data/vendor/local/share/gtk-doc/html/glib/api-index-2-8.html +158 -0
  555. data/vendor/local/share/gtk-doc/html/glib/api-index-deprecated.html +340 -0
  556. data/vendor/local/share/gtk-doc/html/glib/api-index-full.html +7835 -0
  557. data/vendor/local/share/gtk-doc/html/glib/file-name-encodings.png +0 -0
  558. data/vendor/local/share/gtk-doc/html/glib/glib-Arrays.html +893 -0
  559. data/vendor/local/share/gtk-doc/html/glib/glib-Asynchronous-Queues.html +818 -0
  560. data/vendor/local/share/gtk-doc/html/glib/glib-Atomic-Operations.html +413 -0
  561. data/vendor/local/share/gtk-doc/html/glib/glib-Automatic-String-Completion.html +430 -0
  562. data/vendor/local/share/gtk-doc/html/glib/glib-Balanced-Binary-Trees.html +802 -0
  563. data/vendor/local/share/gtk-doc/html/glib/glib-Base64-Encoding.html +372 -0
  564. data/vendor/local/share/gtk-doc/html/glib/glib-Basic-Types.html +500 -0
  565. data/vendor/local/share/gtk-doc/html/glib/glib-Bookmark-file-parser.html +2054 -0
  566. data/vendor/local/share/gtk-doc/html/glib/glib-Byte-Arrays.html +560 -0
  567. data/vendor/local/share/gtk-doc/html/glib/glib-Byte-Order-Macros.html +1686 -0
  568. data/vendor/local/share/gtk-doc/html/glib/glib-Caches.html +398 -0
  569. data/vendor/local/share/gtk-doc/html/glib/glib-Character-Set-Conversion.html +1187 -0
  570. data/vendor/local/share/gtk-doc/html/glib/glib-Commandline-option-parser.html +1665 -0
  571. data/vendor/local/share/gtk-doc/html/glib/glib-Data-Checksums.html +460 -0
  572. data/vendor/local/share/gtk-doc/html/glib/glib-Datasets.html +528 -0
  573. data/vendor/local/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html +2042 -0
  574. data/vendor/local/share/gtk-doc/html/glib/glib-Double-ended-Queues.html +1278 -0
  575. data/vendor/local/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html +1406 -0
  576. data/vendor/local/share/gtk-doc/html/glib/glib-Dynamic-Loading-of-Modules.html +548 -0
  577. data/vendor/local/share/gtk-doc/html/glib/glib-Error-Reporting.html +1023 -0
  578. data/vendor/local/share/gtk-doc/html/glib/glib-File-Utilities.html +1810 -0
  579. data/vendor/local/share/gtk-doc/html/glib/glib-GVariant.html +3798 -0
  580. data/vendor/local/share/gtk-doc/html/glib/glib-GVariantType.html +1815 -0
  581. data/vendor/local/share/gtk-doc/html/glib/glib-Glob-style-pattern-matching.html +295 -0
  582. data/vendor/local/share/gtk-doc/html/glib/glib-Hash-Tables.html +1512 -0
  583. data/vendor/local/share/gtk-doc/html/glib/glib-Hook-Functions.html +1367 -0
  584. data/vendor/local/share/gtk-doc/html/glib/glib-Hostname-Utilities.html +229 -0
  585. data/vendor/local/share/gtk-doc/html/glib/glib-I18N.html +629 -0
  586. data/vendor/local/share/gtk-doc/html/glib/glib-IO-Channels.html +2196 -0
  587. data/vendor/local/share/gtk-doc/html/glib/glib-Key-value-file-parser.html +2556 -0
  588. data/vendor/local/share/gtk-doc/html/glib/glib-Keyed-Data-Lists.html +612 -0
  589. data/vendor/local/share/gtk-doc/html/glib/glib-Lexical-Scanner.html +1451 -0
  590. data/vendor/local/share/gtk-doc/html/glib/glib-Limits-of-Basic-Types.html +389 -0
  591. data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Allocation.html +1029 -0
  592. data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Allocators.html +141 -0
  593. data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Chunks.html +706 -0
  594. data/vendor/local/share/gtk-doc/html/glib/glib-Memory-Slices.html +510 -0
  595. data/vendor/local/share/gtk-doc/html/glib/glib-Message-Logging.html +703 -0
  596. data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Macros.html +1045 -0
  597. data/vendor/local/share/gtk-doc/html/glib/glib-Miscellaneous-Utility-Functions.html +1523 -0
  598. data/vendor/local/share/gtk-doc/html/glib/glib-N-ary-Trees.html +1466 -0
  599. data/vendor/local/share/gtk-doc/html/glib/glib-Numerical-Definitions.html +204 -0
  600. data/vendor/local/share/gtk-doc/html/glib/glib-Perl-compatible-regular-expressions.html +2648 -0
  601. data/vendor/local/share/gtk-doc/html/glib/glib-Pointer-Arrays.html +752 -0
  602. data/vendor/local/share/gtk-doc/html/glib/glib-Quarks.html +269 -0
  603. data/vendor/local/share/gtk-doc/html/glib/glib-Random-Numbers.html +578 -0
  604. data/vendor/local/share/gtk-doc/html/glib/glib-Relations-and-Tuples.html +483 -0
  605. data/vendor/local/share/gtk-doc/html/glib/glib-Sequences.html +1353 -0
  606. data/vendor/local/share/gtk-doc/html/glib/glib-Shell-related-Utilities.html +238 -0
  607. data/vendor/local/share/gtk-doc/html/glib/glib-Simple-XML-Subset-Parser.html +1283 -0
  608. data/vendor/local/share/gtk-doc/html/glib/glib-Singly-Linked-Lists.html +1212 -0
  609. data/vendor/local/share/gtk-doc/html/glib/glib-Spawning-Processes.html +924 -0
  610. data/vendor/local/share/gtk-doc/html/glib/glib-Standard-Macros.html +466 -0
  611. data/vendor/local/share/gtk-doc/html/glib/glib-String-Chunks.html +301 -0
  612. data/vendor/local/share/gtk-doc/html/glib/glib-String-Utility-Functions.html +2947 -0
  613. data/vendor/local/share/gtk-doc/html/glib/glib-Strings.html +1290 -0
  614. data/vendor/local/share/gtk-doc/html/glib/glib-Testing.html +1719 -0
  615. data/vendor/local/share/gtk-doc/html/glib/glib-The-Main-Event-Loop.html +3379 -0
  616. data/vendor/local/share/gtk-doc/html/glib/glib-Thread-Pools.html +606 -0
  617. data/vendor/local/share/gtk-doc/html/glib/glib-Threads.html +3411 -0
  618. data/vendor/local/share/gtk-doc/html/glib/glib-Timers.html +245 -0
  619. data/vendor/local/share/gtk-doc/html/glib/glib-Trash-Stacks.html +188 -0
  620. data/vendor/local/share/gtk-doc/html/glib/glib-Type-Conversion-Macros.html +263 -0
  621. data/vendor/local/share/gtk-doc/html/glib/glib-URI-Functions.html +314 -0
  622. data/vendor/local/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html +3356 -0
  623. data/vendor/local/share/gtk-doc/html/glib/glib-Version-Information.html +150 -0
  624. data/vendor/local/share/gtk-doc/html/glib/glib-Warnings-and-Assertions.html +438 -0
  625. data/vendor/local/share/gtk-doc/html/glib/glib-Windows-Compatibility-Functions.html +476 -0
  626. data/vendor/local/share/gtk-doc/html/glib/glib-building.html +438 -0
  627. data/vendor/local/share/gtk-doc/html/glib/glib-changes.html +159 -0
  628. data/vendor/local/share/gtk-doc/html/glib/glib-compiling.html +118 -0
  629. data/vendor/local/share/gtk-doc/html/glib/glib-core.html +64 -0
  630. data/vendor/local/share/gtk-doc/html/glib/glib-cross-compiling.html +160 -0
  631. data/vendor/local/share/gtk-doc/html/glib/glib-data-types.html +120 -0
  632. data/vendor/local/share/gtk-doc/html/glib/glib-fundamentals.html +59 -0
  633. data/vendor/local/share/gtk-doc/html/glib/glib-gettextize.html +93 -0
  634. data/vendor/local/share/gtk-doc/html/glib/glib-regex-syntax.html +2395 -0
  635. data/vendor/local/share/gtk-doc/html/glib/glib-resources.html +121 -0
  636. data/vendor/local/share/gtk-doc/html/glib/glib-running.html +302 -0
  637. data/vendor/local/share/gtk-doc/html/glib/glib-utilities.html +112 -0
  638. data/vendor/local/share/gtk-doc/html/glib/glib.devhelp +2084 -0
  639. data/vendor/local/share/gtk-doc/html/glib/glib.devhelp2 +2556 -0
  640. data/vendor/local/share/gtk-doc/html/glib/glib.html +80 -0
  641. data/vendor/local/share/gtk-doc/html/glib/gtester-report.html +72 -0
  642. data/vendor/local/share/gtk-doc/html/glib/gtester.html +131 -0
  643. data/vendor/local/share/gtk-doc/html/glib/gvariant-format-strings.html +1171 -0
  644. data/vendor/local/share/gtk-doc/html/glib/home.png +0 -0
  645. data/vendor/local/share/gtk-doc/html/glib/index.html +336 -0
  646. data/vendor/local/share/gtk-doc/html/glib/index.sgml +2717 -0
  647. data/vendor/local/share/gtk-doc/html/glib/left.png +0 -0
  648. data/vendor/local/share/gtk-doc/html/glib/mainloop-states.gif +0 -0
  649. data/vendor/local/share/gtk-doc/html/glib/right.png +0 -0
  650. data/vendor/local/share/gtk-doc/html/glib/style.css +257 -0
  651. data/vendor/local/share/gtk-doc/html/glib/tools.html +41 -0
  652. data/vendor/local/share/gtk-doc/html/glib/up.png +0 -0
  653. data/vendor/local/share/gtk-doc/html/gobject/GTypeModule.html +710 -0
  654. data/vendor/local/share/gtk-doc/html/gobject/GTypePlugin.html +453 -0
  655. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-10.html +85 -0
  656. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-12.html +55 -0
  657. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-14.html +51 -0
  658. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-18.html +46 -0
  659. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-2.html +38 -0
  660. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-22.html +46 -0
  661. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-24.html +72 -0
  662. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-4.html +178 -0
  663. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-6.html +42 -0
  664. data/vendor/local/share/gtk-doc/html/gobject/api-index-2-8.html +42 -0
  665. data/vendor/local/share/gtk-doc/html/gobject/api-index-deprecated.html +50 -0
  666. data/vendor/local/share/gtk-doc/html/gobject/api-index-full.html +2577 -0
  667. data/vendor/local/share/gtk-doc/html/gobject/ch01s02.html +136 -0
  668. data/vendor/local/share/gtk-doc/html/gobject/ch06s03.html +113 -0
  669. data/vendor/local/share/gtk-doc/html/gobject/chapter-gobject.html +293 -0
  670. data/vendor/local/share/gtk-doc/html/gobject/chapter-gtype.html +263 -0
  671. data/vendor/local/share/gtk-doc/html/gobject/chapter-intro.html +92 -0
  672. data/vendor/local/share/gtk-doc/html/gobject/chapter-signal.html +214 -0
  673. data/vendor/local/share/gtk-doc/html/gobject/glib-genmarshal.html +355 -0
  674. data/vendor/local/share/gtk-doc/html/gobject/glib-mkenums.html +295 -0
  675. data/vendor/local/share/gtk-doc/html/gobject/glue.png +0 -0
  676. data/vendor/local/share/gtk-doc/html/gobject/gobject-Boxed-Types.html +406 -0
  677. data/vendor/local/share/gtk-doc/html/gobject/gobject-Closures.html +2355 -0
  678. data/vendor/local/share/gtk-doc/html/gobject/gobject-Enumeration-and-Flag-Types.html +847 -0
  679. data/vendor/local/share/gtk-doc/html/gobject/gobject-GParamSpec.html +1423 -0
  680. data/vendor/local/share/gtk-doc/html/gobject/gobject-Generic-values.html +776 -0
  681. data/vendor/local/share/gtk-doc/html/gobject/gobject-Signals.html +2741 -0
  682. data/vendor/local/share/gtk-doc/html/gobject/gobject-Standard-Parameter-and-Value-Types.html +5242 -0
  683. data/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html +2609 -0
  684. data/vendor/local/share/gtk-doc/html/gobject/gobject-Type-Information.html +4227 -0
  685. data/vendor/local/share/gtk-doc/html/gobject/gobject-Value-arrays.html +413 -0
  686. data/vendor/local/share/gtk-doc/html/gobject/gobject-Varargs-Value-Collection.html +230 -0
  687. data/vendor/local/share/gtk-doc/html/gobject/gobject-memory.html +234 -0
  688. data/vendor/local/share/gtk-doc/html/gobject/gobject-properties.html +270 -0
  689. data/vendor/local/share/gtk-doc/html/gobject/gobject-query.html +117 -0
  690. data/vendor/local/share/gtk-doc/html/gobject/gobject.devhelp +723 -0
  691. data/vendor/local/share/gtk-doc/html/gobject/gobject.devhelp2 +757 -0
  692. data/vendor/local/share/gtk-doc/html/gobject/gtype-conventions.html +143 -0
  693. data/vendor/local/share/gtk-doc/html/gobject/gtype-instantiable-classed.html +287 -0
  694. data/vendor/local/share/gtk-doc/html/gobject/gtype-non-instantiable-classed.html +316 -0
  695. data/vendor/local/share/gtk-doc/html/gobject/gtype-non-instantiable.html +76 -0
  696. data/vendor/local/share/gtk-doc/html/gobject/home.png +0 -0
  697. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-chainup.html +100 -0
  698. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-code.html +86 -0
  699. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-construction.html +113 -0
  700. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-destruction.html +122 -0
  701. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject-methods.html +257 -0
  702. data/vendor/local/share/gtk-doc/html/gobject/howto-gobject.html +283 -0
  703. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-implement.html +125 -0
  704. data/vendor/local/share/gtk-doc/html/gobject/howto-interface-properties.html +167 -0
  705. data/vendor/local/share/gtk-doc/html/gobject/howto-interface.html +160 -0
  706. data/vendor/local/share/gtk-doc/html/gobject/howto-signals.html +121 -0
  707. data/vendor/local/share/gtk-doc/html/gobject/index.html +187 -0
  708. data/vendor/local/share/gtk-doc/html/gobject/index.sgml +734 -0
  709. data/vendor/local/share/gtk-doc/html/gobject/left.png +0 -0
  710. data/vendor/local/share/gtk-doc/html/gobject/pr01.html +72 -0
  711. data/vendor/local/share/gtk-doc/html/gobject/pt01.html +80 -0
  712. data/vendor/local/share/gtk-doc/html/gobject/pt02.html +66 -0
  713. data/vendor/local/share/gtk-doc/html/gobject/pt03.html +55 -0
  714. data/vendor/local/share/gtk-doc/html/gobject/right.png +0 -0
  715. data/vendor/local/share/gtk-doc/html/gobject/rn01.html +82 -0
  716. data/vendor/local/share/gtk-doc/html/gobject/rn02.html +47 -0
  717. data/vendor/local/share/gtk-doc/html/gobject/signal.html +377 -0
  718. data/vendor/local/share/gtk-doc/html/gobject/style.css +257 -0
  719. data/vendor/local/share/gtk-doc/html/gobject/tools-ginspector.html +35 -0
  720. data/vendor/local/share/gtk-doc/html/gobject/tools-gob.html +40 -0
  721. data/vendor/local/share/gtk-doc/html/gobject/tools-gtkdoc.html +63 -0
  722. data/vendor/local/share/gtk-doc/html/gobject/tools-refdb.html +55 -0
  723. data/vendor/local/share/gtk-doc/html/gobject/tools-vala.html +43 -0
  724. data/vendor/local/share/gtk-doc/html/gobject/up.png +0 -0
  725. data/vendor/local/share/locale/af/LC_MESSAGES/glib20.mo +0 -0
  726. data/vendor/local/share/locale/am/LC_MESSAGES/glib20.mo +0 -0
  727. data/vendor/local/share/locale/ar/LC_MESSAGES/glib20.mo +0 -0
  728. data/vendor/local/share/locale/as/LC_MESSAGES/glib20.mo +0 -0
  729. data/vendor/local/share/locale/ast/LC_MESSAGES/glib20.mo +0 -0
  730. data/vendor/local/share/locale/az/LC_MESSAGES/glib20.mo +0 -0
  731. data/vendor/local/share/locale/be/LC_MESSAGES/gettext-runtime.mo +0 -0
  732. data/vendor/local/share/locale/be/LC_MESSAGES/glib20.mo +0 -0
  733. data/vendor/local/share/locale/be@latin/LC_MESSAGES/glib20.mo +0 -0
  734. data/vendor/local/share/locale/bg/LC_MESSAGES/gettext-runtime.mo +0 -0
  735. data/vendor/local/share/locale/bg/LC_MESSAGES/glib20.mo +0 -0
  736. data/vendor/local/share/locale/bn/LC_MESSAGES/glib20.mo +0 -0
  737. data/vendor/local/share/locale/bn_IN/LC_MESSAGES/glib20.mo +0 -0
  738. data/vendor/local/share/locale/bs/LC_MESSAGES/glib20.mo +0 -0
  739. data/vendor/local/share/locale/ca/LC_MESSAGES/gettext-runtime.mo +0 -0
  740. data/vendor/local/share/locale/ca/LC_MESSAGES/glib20.mo +0 -0
  741. data/vendor/local/share/locale/ca@valencia/LC_MESSAGES/glib20.mo +0 -0
  742. data/vendor/local/share/locale/cs/LC_MESSAGES/gettext-runtime.mo +0 -0
  743. data/vendor/local/share/locale/cs/LC_MESSAGES/glib20.mo +0 -0
  744. data/vendor/local/share/locale/cy/LC_MESSAGES/glib20.mo +0 -0
  745. data/vendor/local/share/locale/da/LC_MESSAGES/gettext-runtime.mo +0 -0
  746. data/vendor/local/share/locale/da/LC_MESSAGES/glib20.mo +0 -0
  747. data/vendor/local/share/locale/de/LC_MESSAGES/gettext-runtime.mo +0 -0
  748. data/vendor/local/share/locale/de/LC_MESSAGES/glib20.mo +0 -0
  749. data/vendor/local/share/locale/dz/LC_MESSAGES/glib20.mo +0 -0
  750. data/vendor/local/share/locale/el/LC_MESSAGES/gettext-runtime.mo +0 -0
  751. data/vendor/local/share/locale/el/LC_MESSAGES/glib20.mo +0 -0
  752. data/vendor/local/share/locale/en@boldquot/LC_MESSAGES/gettext-runtime.mo +0 -0
  753. data/vendor/local/share/locale/en@quot/LC_MESSAGES/gettext-runtime.mo +0 -0
  754. data/vendor/local/share/locale/en@shaw/LC_MESSAGES/glib20.mo +0 -0
  755. data/vendor/local/share/locale/en_CA/LC_MESSAGES/glib20.mo +0 -0
  756. data/vendor/local/share/locale/en_GB/LC_MESSAGES/glib20.mo +0 -0
  757. data/vendor/local/share/locale/eo/LC_MESSAGES/gettext-runtime.mo +0 -0
  758. data/vendor/local/share/locale/eo/LC_MESSAGES/glib20.mo +0 -0
  759. data/vendor/local/share/locale/es/LC_MESSAGES/gettext-runtime.mo +0 -0
  760. data/vendor/local/share/locale/es/LC_MESSAGES/glib20.mo +0 -0
  761. data/vendor/local/share/locale/et/LC_MESSAGES/gettext-runtime.mo +0 -0
  762. data/vendor/local/share/locale/et/LC_MESSAGES/glib20.mo +0 -0
  763. data/vendor/local/share/locale/eu/LC_MESSAGES/glib20.mo +0 -0
  764. data/vendor/local/share/locale/fa/LC_MESSAGES/glib20.mo +0 -0
  765. data/vendor/local/share/locale/fi/LC_MESSAGES/gettext-runtime.mo +0 -0
  766. data/vendor/local/share/locale/fi/LC_MESSAGES/glib20.mo +0 -0
  767. data/vendor/local/share/locale/fr/LC_MESSAGES/gettext-runtime.mo +0 -0
  768. data/vendor/local/share/locale/fr/LC_MESSAGES/glib20.mo +0 -0
  769. data/vendor/local/share/locale/ga/LC_MESSAGES/gettext-runtime.mo +0 -0
  770. data/vendor/local/share/locale/ga/LC_MESSAGES/glib20.mo +0 -0
  771. data/vendor/local/share/locale/gl/LC_MESSAGES/gettext-runtime.mo +0 -0
  772. data/vendor/local/share/locale/gl/LC_MESSAGES/glib20.mo +0 -0
  773. data/vendor/local/share/locale/gu/LC_MESSAGES/glib20.mo +0 -0
  774. data/vendor/local/share/locale/he/LC_MESSAGES/glib20.mo +0 -0
  775. data/vendor/local/share/locale/hi/LC_MESSAGES/glib20.mo +0 -0
  776. data/vendor/local/share/locale/hr/LC_MESSAGES/glib20.mo +0 -0
  777. data/vendor/local/share/locale/hu/LC_MESSAGES/glib20.mo +0 -0
  778. data/vendor/local/share/locale/hy/LC_MESSAGES/glib20.mo +0 -0
  779. data/vendor/local/share/locale/id/LC_MESSAGES/gettext-runtime.mo +0 -0
  780. data/vendor/local/share/locale/id/LC_MESSAGES/glib20.mo +0 -0
  781. data/vendor/local/share/locale/is/LC_MESSAGES/glib20.mo +0 -0
  782. data/vendor/local/share/locale/it/LC_MESSAGES/gettext-runtime.mo +0 -0
  783. data/vendor/local/share/locale/it/LC_MESSAGES/glib20.mo +0 -0
  784. data/vendor/local/share/locale/ja/LC_MESSAGES/gettext-runtime.mo +0 -0
  785. data/vendor/local/share/locale/ja/LC_MESSAGES/glib20.mo +0 -0
  786. data/vendor/local/share/locale/ka/LC_MESSAGES/glib20.mo +0 -0
  787. data/vendor/local/share/locale/kn/LC_MESSAGES/glib20.mo +0 -0
  788. data/vendor/local/share/locale/ko/LC_MESSAGES/gettext-runtime.mo +0 -0
  789. data/vendor/local/share/locale/ko/LC_MESSAGES/glib20.mo +0 -0
  790. data/vendor/local/share/locale/ku/LC_MESSAGES/glib20.mo +0 -0
  791. data/vendor/local/share/locale/locale.alias +77 -0
  792. data/vendor/local/share/locale/lt/LC_MESSAGES/glib20.mo +0 -0
  793. data/vendor/local/share/locale/lv/LC_MESSAGES/glib20.mo +0 -0
  794. data/vendor/local/share/locale/mai/LC_MESSAGES/glib20.mo +0 -0
  795. data/vendor/local/share/locale/mg/LC_MESSAGES/glib20.mo +0 -0
  796. data/vendor/local/share/locale/mk/LC_MESSAGES/glib20.mo +0 -0
  797. data/vendor/local/share/locale/ml/LC_MESSAGES/glib20.mo +0 -0
  798. data/vendor/local/share/locale/mn/LC_MESSAGES/glib20.mo +0 -0
  799. data/vendor/local/share/locale/mr/LC_MESSAGES/glib20.mo +0 -0
  800. data/vendor/local/share/locale/ms/LC_MESSAGES/glib20.mo +0 -0
  801. data/vendor/local/share/locale/nb/LC_MESSAGES/gettext-runtime.mo +0 -0
  802. data/vendor/local/share/locale/nb/LC_MESSAGES/glib20.mo +0 -0
  803. data/vendor/local/share/locale/nds/LC_MESSAGES/glib20.mo +0 -0
  804. data/vendor/local/share/locale/ne/LC_MESSAGES/glib20.mo +0 -0
  805. data/vendor/local/share/locale/nl/LC_MESSAGES/gettext-runtime.mo +0 -0
  806. data/vendor/local/share/locale/nl/LC_MESSAGES/glib20.mo +0 -0
  807. data/vendor/local/share/locale/nn/LC_MESSAGES/gettext-runtime.mo +0 -0
  808. data/vendor/local/share/locale/nn/LC_MESSAGES/glib20.mo +0 -0
  809. data/vendor/local/share/locale/oc/LC_MESSAGES/glib20.mo +0 -0
  810. data/vendor/local/share/locale/or/LC_MESSAGES/glib20.mo +0 -0
  811. data/vendor/local/share/locale/pa/LC_MESSAGES/glib20.mo +0 -0
  812. data/vendor/local/share/locale/pl/LC_MESSAGES/gettext-runtime.mo +0 -0
  813. data/vendor/local/share/locale/pl/LC_MESSAGES/glib20.mo +0 -0
  814. data/vendor/local/share/locale/ps/LC_MESSAGES/glib20.mo +0 -0
  815. data/vendor/local/share/locale/pt/LC_MESSAGES/gettext-runtime.mo +0 -0
  816. data/vendor/local/share/locale/pt/LC_MESSAGES/glib20.mo +0 -0
  817. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/gettext-runtime.mo +0 -0
  818. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/glib20.mo +0 -0
  819. data/vendor/local/share/locale/ro/LC_MESSAGES/gettext-runtime.mo +0 -0
  820. data/vendor/local/share/locale/ro/LC_MESSAGES/glib20.mo +0 -0
  821. data/vendor/local/share/locale/ru/LC_MESSAGES/gettext-runtime.mo +0 -0
  822. data/vendor/local/share/locale/ru/LC_MESSAGES/glib20.mo +0 -0
  823. data/vendor/local/share/locale/rw/LC_MESSAGES/glib20.mo +0 -0
  824. data/vendor/local/share/locale/si/LC_MESSAGES/glib20.mo +0 -0
  825. data/vendor/local/share/locale/sk/LC_MESSAGES/gettext-runtime.mo +0 -0
  826. data/vendor/local/share/locale/sk/LC_MESSAGES/glib20.mo +0 -0
  827. data/vendor/local/share/locale/sl/LC_MESSAGES/gettext-runtime.mo +0 -0
  828. data/vendor/local/share/locale/sl/LC_MESSAGES/glib20.mo +0 -0
  829. data/vendor/local/share/locale/sq/LC_MESSAGES/glib20.mo +0 -0
  830. data/vendor/local/share/locale/sr/LC_MESSAGES/gettext-runtime.mo +0 -0
  831. data/vendor/local/share/locale/sr/LC_MESSAGES/glib20.mo +0 -0
  832. data/vendor/local/share/locale/sr@ije/LC_MESSAGES/glib20.mo +0 -0
  833. data/vendor/local/share/locale/sr@latin/LC_MESSAGES/glib20.mo +0 -0
  834. data/vendor/local/share/locale/sv/LC_MESSAGES/gettext-runtime.mo +0 -0
  835. data/vendor/local/share/locale/sv/LC_MESSAGES/glib20.mo +0 -0
  836. data/vendor/local/share/locale/ta/LC_MESSAGES/glib20.mo +0 -0
  837. data/vendor/local/share/locale/te/LC_MESSAGES/glib20.mo +0 -0
  838. data/vendor/local/share/locale/th/LC_MESSAGES/glib20.mo +0 -0
  839. data/vendor/local/share/locale/tl/LC_MESSAGES/glib20.mo +0 -0
  840. data/vendor/local/share/locale/tr/LC_MESSAGES/gettext-runtime.mo +0 -0
  841. data/vendor/local/share/locale/tr/LC_MESSAGES/glib20.mo +0 -0
  842. data/vendor/local/share/locale/tt/LC_MESSAGES/glib20.mo +0 -0
  843. data/vendor/local/share/locale/uk/LC_MESSAGES/gettext-runtime.mo +0 -0
  844. data/vendor/local/share/locale/uk/LC_MESSAGES/glib20.mo +0 -0
  845. data/vendor/local/share/locale/vi/LC_MESSAGES/gettext-runtime.mo +0 -0
  846. data/vendor/local/share/locale/vi/LC_MESSAGES/glib20.mo +0 -0
  847. data/vendor/local/share/locale/wa/LC_MESSAGES/glib20.mo +0 -0
  848. data/vendor/local/share/locale/xh/LC_MESSAGES/glib20.mo +0 -0
  849. data/vendor/local/share/locale/yi/LC_MESSAGES/glib20.mo +0 -0
  850. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/gettext-runtime.mo +0 -0
  851. data/vendor/local/share/locale/zh_CN/LC_MESSAGES/glib20.mo +0 -0
  852. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/gettext-runtime.mo +0 -0
  853. data/vendor/local/share/locale/zh_HK/LC_MESSAGES/glib20.mo +0 -0
  854. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/gettext-runtime.mo +0 -0
  855. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/glib20.mo +0 -0
  856. data/vendor/local/share/man/man1/envsubst.1 +54 -0
  857. data/vendor/local/share/man/man1/gettext.1 +69 -0
  858. data/vendor/local/share/man/man1/glib-genmarshal.1 +307 -0
  859. data/vendor/local/share/man/man1/glib-mkenums.1 +234 -0
  860. data/vendor/local/share/man/man1/gobject-query.1 +83 -0
  861. data/vendor/local/share/man/man1/ngettext.1 +68 -0
  862. data/vendor/local/share/man/man3/bind_textdomain_codeset.3 +72 -0
  863. data/vendor/local/share/man/man3/bindtextdomain.3 +69 -0
  864. data/vendor/local/share/man/man3/dcgettext.3 +1 -0
  865. data/vendor/local/share/man/man3/dcngettext.3 +1 -0
  866. data/vendor/local/share/man/man3/dgettext.3 +1 -0
  867. data/vendor/local/share/man/man3/dngettext.3 +1 -0
  868. data/vendor/local/share/man/man3/gettext.3 +99 -0
  869. data/vendor/local/share/man/man3/ngettext.3 +60 -0
  870. data/vendor/local/share/man/man3/textdomain.3 +57 -0
  871. data/vendor/local/src/tml/packaging/gettext_0.18.1.1-2_win32.log +10423 -0
  872. data/vendor/local/src/tml/packaging/gettext_0.18.1.1-2_win32.sh +457 -0
  873. data/vendor/local/src/tml/packaging/glib_2.24.2-2_win32.log +2602 -0
  874. data/vendor/local/src/tml/packaging/glib_2.24.2-2_win32.sh +290 -0
  875. metadata +940 -0
@@ -0,0 +1,4227 @@
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>Type Information</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="rn01.html" title="API Reference">
9
+ <link rel="prev" href="rn01.html" title="API Reference">
10
+ <link rel="next" href="GTypePlugin.html" title="GTypePlugin">
11
+ <meta name="generator" content="GTK-Doc V1.14 (XML mode)">
12
+ <link rel="stylesheet" href="style.css" type="text/css">
13
+ </head>
14
+ <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15
+ <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16
+ <tr valign="middle">
17
+ <td><a accesskey="p" href="rn01.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18
+ <td><a accesskey="u" href="rn01.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19
+ <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20
+ <th width="100%" align="center">GObject Reference Manual</th>
21
+ <td><a accesskey="n" href="GTypePlugin.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22
+ </tr>
23
+ <tr><td colspan="5" class="shortcuts">
24
+ <a href="#gobject-Type-Information.synopsis" class="shortcut">Top</a>
25
+  | 
26
+ <a href="#gobject-Type-Information.description" class="shortcut">Description</a>
27
+ </td></tr>
28
+ </table>
29
+ <div class="refentry" title="Type Information">
30
+ <a name="gobject-Type-Information"></a><div class="titlepage"></div>
31
+ <div class="refnamediv"><table width="100%"><tr>
32
+ <td valign="top">
33
+ <h2><span class="refentrytitle"><a name="gobject-Type-Information.top_of_page"></a>Type Information</span></h2>
34
+ <p>Type Information — The GLib Runtime type identification and
35
+ management system</p>
36
+ </td>
37
+ <td valign="top" align="right"></td>
38
+ </tr></table></div>
39
+ <div class="refsynopsisdiv" title="Synopsis">
40
+ <a name="gobject-Type-Information.synopsis"></a><h2>Synopsis</h2>
41
+ <pre class="synopsis">
42
+ #include &lt;glib-object.h&gt;
43
+
44
+ typedef <a class="link" href="gobject-Type-Information.html#GType" title="GType">GType</a>;
45
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-FUNDAMENTAL:CAPS" title="G_TYPE_FUNDAMENTAL()">G_TYPE_FUNDAMENTAL</a> (type)
46
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-FUNDAMENTAL-MAX:CAPS" title="G_TYPE_FUNDAMENTAL_MAX">G_TYPE_FUNDAMENTAL_MAX</a>
47
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-MAKE-FUNDAMENTAL:CAPS" title="G_TYPE_MAKE_FUNDAMENTAL()">G_TYPE_MAKE_FUNDAMENTAL</a> (x)
48
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-IS-ABSTRACT:CAPS" title="G_TYPE_IS_ABSTRACT()">G_TYPE_IS_ABSTRACT</a> (type)
49
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-IS-DERIVED:CAPS" title="G_TYPE_IS_DERIVED()">G_TYPE_IS_DERIVED</a> (type)
50
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-IS-FUNDAMENTAL:CAPS" title="G_TYPE_IS_FUNDAMENTAL()">G_TYPE_IS_FUNDAMENTAL</a> (type)
51
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-IS-VALUE-TYPE:CAPS" title="G_TYPE_IS_VALUE_TYPE()">G_TYPE_IS_VALUE_TYPE</a> (type)
52
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-HAS-VALUE-TABLE:CAPS" title="G_TYPE_HAS_VALUE_TABLE()">G_TYPE_HAS_VALUE_TABLE</a> (type)
53
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-IS-CLASSED:CAPS" title="G_TYPE_IS_CLASSED()">G_TYPE_IS_CLASSED</a> (type)
54
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-IS-INSTANTIATABLE:CAPS" title="G_TYPE_IS_INSTANTIATABLE()">G_TYPE_IS_INSTANTIATABLE</a> (type)
55
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-IS-DERIVABLE:CAPS" title="G_TYPE_IS_DERIVABLE()">G_TYPE_IS_DERIVABLE</a> (type)
56
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-IS-DEEP-DERIVABLE:CAPS" title="G_TYPE_IS_DEEP_DERIVABLE()">G_TYPE_IS_DEEP_DERIVABLE</a> (type)
57
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-IS-INTERFACE:CAPS" title="G_TYPE_IS_INTERFACE()">G_TYPE_IS_INTERFACE</a> (type)
58
+ <a class="link" href="gobject-Type-Information.html#GTypeInterface" title="GTypeInterface">GTypeInterface</a>;
59
+ <a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance">GTypeInstance</a>;
60
+ <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass">GTypeClass</a>;
61
+ <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo">GTypeInfo</a>;
62
+ <a class="link" href="gobject-Type-Information.html#GTypeFundamentalInfo" title="GTypeFundamentalInfo">GTypeFundamentalInfo</a>;
63
+ <a class="link" href="gobject-Type-Information.html#GInterfaceInfo" title="GInterfaceInfo">GInterfaceInfo</a>;
64
+ <a class="link" href="gobject-Type-Information.html#GTypeValueTable" title="GTypeValueTable">GTypeValueTable</a>;
65
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-FROM-INSTANCE:CAPS" title="G_TYPE_FROM_INSTANCE()">G_TYPE_FROM_INSTANCE</a> (instance)
66
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-FROM-CLASS:CAPS" title="G_TYPE_FROM_CLASS()">G_TYPE_FROM_CLASS</a> (g_class)
67
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-FROM-INTERFACE:CAPS" title="G_TYPE_FROM_INTERFACE()">G_TYPE_FROM_INTERFACE</a> (g_iface)
68
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-INSTANCE-GET-CLASS:CAPS" title="G_TYPE_INSTANCE_GET_CLASS()">G_TYPE_INSTANCE_GET_CLASS</a> (instance,
69
+ g_type,
70
+ c_type)
71
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-INSTANCE-GET-INTERFACE:CAPS" title="G_TYPE_INSTANCE_GET_INTERFACE()">G_TYPE_INSTANCE_GET_INTERFACE</a> (instance,
72
+ g_type,
73
+ c_type)
74
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-INSTANCE-GET-PRIVATE:CAPS" title="G_TYPE_INSTANCE_GET_PRIVATE()">G_TYPE_INSTANCE_GET_PRIVATE</a> (instance,
75
+ g_type,
76
+ c_type)
77
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-CHECK-INSTANCE:CAPS" title="G_TYPE_CHECK_INSTANCE()">G_TYPE_CHECK_INSTANCE</a> (instance)
78
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-CHECK-INSTANCE-CAST:CAPS" title="G_TYPE_CHECK_INSTANCE_CAST()">G_TYPE_CHECK_INSTANCE_CAST</a> (instance,
79
+ g_type,
80
+ c_type)
81
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-CHECK-INSTANCE-TYPE:CAPS" title="G_TYPE_CHECK_INSTANCE_TYPE()">G_TYPE_CHECK_INSTANCE_TYPE</a> (instance,
82
+ g_type)
83
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-CHECK-CLASS-CAST:CAPS" title="G_TYPE_CHECK_CLASS_CAST()">G_TYPE_CHECK_CLASS_CAST</a> (g_class,
84
+ g_type,
85
+ c_type)
86
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-CHECK-CLASS-TYPE:CAPS" title="G_TYPE_CHECK_CLASS_TYPE()">G_TYPE_CHECK_CLASS_TYPE</a> (g_class,
87
+ g_type)
88
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-CHECK-VALUE:CAPS" title="G_TYPE_CHECK_VALUE()">G_TYPE_CHECK_VALUE</a> (value)
89
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-CHECK-VALUE-TYPE:CAPS" title="G_TYPE_CHECK_VALUE_TYPE()">G_TYPE_CHECK_VALUE_TYPE</a> (value,
90
+ g_type)
91
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-FLAG-RESERVED-ID-BIT:CAPS" title="G_TYPE_FLAG_RESERVED_ID_BIT">G_TYPE_FLAG_RESERVED_ID_BIT</a>
92
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-init" title="g_type_init ()">g_type_init</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
93
+ enum <a class="link" href="gobject-Type-Information.html#GTypeDebugFlags" title="enum GTypeDebugFlags">GTypeDebugFlags</a>;
94
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-init-with-debug-flags" title="g_type_init_with_debug_flags ()">g_type_init_with_debug_flags</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeDebugFlags" title="enum GTypeDebugFlags"><span class="type">GTypeDebugFlags</span></a> debug_flags</code></em>);
95
+ const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a>* <a class="link" href="gobject-Type-Information.html#g-type-name" title="g_type_name ()">g_type_name</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);
96
+ <a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> <a class="link" href="gobject-Type-Information.html#g-type-qname" title="g_type_qname ()">g_type_qname</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);
97
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> <a class="link" href="gobject-Type-Information.html#g-type-from-name" title="g_type_from_name ()">g_type_from_name</a> (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
98
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> <a class="link" href="gobject-Type-Information.html#g-type-parent" title="g_type_parent ()">g_type_parent</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);
99
+ <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> <a class="link" href="gobject-Type-Information.html#g-type-depth" title="g_type_depth ()">g_type_depth</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);
100
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> <a class="link" href="gobject-Type-Information.html#g-type-next-base" title="g_type_next_base ()">g_type_next_base</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> leaf_type</code></em>,
101
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> root_type</code></em>);
102
+ <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="gobject-Type-Information.html#g-type-is-a" title="g_type_is_a ()">g_type_is_a</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>,
103
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> is_a_type</code></em>);
104
+ <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="gobject-Type-Information.html#g-type-class-ref" title="g_type_class_ref ()">g_type_class_ref</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);
105
+ <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="gobject-Type-Information.html#g-type-class-peek" title="g_type_class_peek ()">g_type_class_peek</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);
106
+ <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="gobject-Type-Information.html#g-type-class-peek-static" title="g_type_class_peek_static ()">g_type_class_peek_static</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);
107
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-class-unref" title="g_type_class_unref ()">g_type_class_unref</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>);
108
+ <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="gobject-Type-Information.html#g-type-class-peek-parent" title="g_type_class_peek_parent ()">g_type_class_peek_parent</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>);
109
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-class-add-private" title="g_type_class_add_private ()">g_type_class_add_private</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>,
110
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> private_size</code></em>);
111
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-add-class-private" title="g_type_add_class_private ()">g_type_add_class_private</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> class_type</code></em>,
112
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> private_size</code></em>);
113
+ <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="gobject-Type-Information.html#g-type-interface-peek" title="g_type_interface_peek ()">g_type_interface_peek</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance_class</code></em>,
114
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> iface_type</code></em>);
115
+ <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="gobject-Type-Information.html#g-type-interface-peek-parent" title="g_type_interface_peek_parent ()">g_type_interface_peek_parent</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>);
116
+ <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="gobject-Type-Information.html#g-type-default-interface-ref" title="g_type_default_interface_ref ()">g_type_default_interface_ref</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> g_type</code></em>);
117
+ <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="gobject-Type-Information.html#g-type-default-interface-peek" title="g_type_default_interface_peek ()">g_type_default_interface_peek</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> g_type</code></em>);
118
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-default-interface-unref" title="g_type_default_interface_unref ()">g_type_default_interface_unref</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>);
119
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a>* <a class="link" href="gobject-Type-Information.html#g-type-children" title="g_type_children ()">g_type_children</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>,
120
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_children</code></em>);
121
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a>* <a class="link" href="gobject-Type-Information.html#g-type-interfaces" title="g_type_interfaces ()">g_type_interfaces</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>,
122
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_interfaces</code></em>);
123
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a>* <a class="link" href="gobject-Type-Information.html#g-type-interface-prerequisites" title="g_type_interface_prerequisites ()">g_type_interface_prerequisites</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> interface_type</code></em>,
124
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_prerequisites</code></em>);
125
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-set-qdata" title="g_type_set_qdata ()">g_type_set_qdata</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>,
126
+ <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>,
127
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);
128
+ <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> <a class="link" href="gobject-Type-Information.html#g-type-get-qdata" title="g_type_get_qdata ()">g_type_get_qdata</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>,
129
+ <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>);
130
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-query" title="g_type_query ()">g_type_query</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>,
131
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeQuery" title="GTypeQuery"><span class="type">GTypeQuery</span></a> *query</code></em>);
132
+ <a class="link" href="gobject-Type-Information.html#GTypeQuery" title="GTypeQuery">GTypeQuery</a>;
133
+ <span class="returnvalue">void</span> (<a class="link" href="gobject-Type-Information.html#GBaseInitFunc" title="GBaseInitFunc ()">*GBaseInitFunc</a>) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>);
134
+ <span class="returnvalue">void</span> (<a class="link" href="gobject-Type-Information.html#GBaseFinalizeFunc" title="GBaseFinalizeFunc ()">*GBaseFinalizeFunc</a>) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>);
135
+ <span class="returnvalue">void</span> (<a class="link" href="gobject-Type-Information.html#GClassInitFunc" title="GClassInitFunc ()">*GClassInitFunc</a>) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>,
136
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> class_data</code></em>);
137
+ <span class="returnvalue">void</span> (<a class="link" href="gobject-Type-Information.html#GClassFinalizeFunc" title="GClassFinalizeFunc ()">*GClassFinalizeFunc</a>) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>,
138
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> class_data</code></em>);
139
+ <span class="returnvalue">void</span> (<a class="link" href="gobject-Type-Information.html#GInstanceInitFunc" title="GInstanceInitFunc ()">*GInstanceInitFunc</a>) (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance"><span class="type">GTypeInstance</span></a> *instance</code></em>,
140
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>);
141
+ <span class="returnvalue">void</span> (<a class="link" href="gobject-Type-Information.html#GInterfaceInitFunc" title="GInterfaceInitFunc ()">*GInterfaceInitFunc</a>) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>,
142
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> iface_data</code></em>);
143
+ <span class="returnvalue">void</span> (<a class="link" href="gobject-Type-Information.html#GInterfaceFinalizeFunc" title="GInterfaceFinalizeFunc ()">*GInterfaceFinalizeFunc</a>) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>,
144
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> iface_data</code></em>);
145
+ <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> (<a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()">*GTypeClassCacheFunc</a>) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> cache_data</code></em>,
146
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> *g_class</code></em>);
147
+ enum <a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags">GTypeFlags</a>;
148
+ enum <a class="link" href="gobject-Type-Information.html#GTypeFundamentalFlags" title="enum GTypeFundamentalFlags">GTypeFundamentalFlags</a>;
149
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> <a class="link" href="gobject-Type-Information.html#g-type-register-static" title="g_type_register_static ()">g_type_register_static</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> parent_type</code></em>,
150
+ <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type_name</code></em>,
151
+ <em class="parameter"><code>const <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> *info</code></em>,
152
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags"><span class="type">GTypeFlags</span></a> flags</code></em>);
153
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> <a class="link" href="gobject-Type-Information.html#g-type-register-static-simple" title="g_type_register_static_simple ()">g_type_register_static_simple</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> parent_type</code></em>,
154
+ <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type_name</code></em>,
155
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> class_size</code></em>,
156
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GClassInitFunc" title="GClassInitFunc ()"><span class="type">GClassInitFunc</span></a> class_init</code></em>,
157
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> instance_size</code></em>,
158
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GInstanceInitFunc" title="GInstanceInitFunc ()"><span class="type">GInstanceInitFunc</span></a> instance_init</code></em>,
159
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags"><span class="type">GTypeFlags</span></a> flags</code></em>);
160
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> <a class="link" href="gobject-Type-Information.html#g-type-register-dynamic" title="g_type_register_dynamic ()">g_type_register_dynamic</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> parent_type</code></em>,
161
+ <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type_name</code></em>,
162
+ <em class="parameter"><code><a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> *plugin</code></em>,
163
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags"><span class="type">GTypeFlags</span></a> flags</code></em>);
164
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> <a class="link" href="gobject-Type-Information.html#g-type-register-fundamental" title="g_type_register_fundamental ()">g_type_register_fundamental</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type_id</code></em>,
165
+ <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type_name</code></em>,
166
+ <em class="parameter"><code>const <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> *info</code></em>,
167
+ <em class="parameter"><code>const <a class="link" href="gobject-Type-Information.html#GTypeFundamentalInfo" title="GTypeFundamentalInfo"><span class="type">GTypeFundamentalInfo</span></a> *finfo</code></em>,
168
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags"><span class="type">GTypeFlags</span></a> flags</code></em>);
169
+ <span class="returnvalue">void</span> <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> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> instance_type</code></em>,
170
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> interface_type</code></em>,
171
+ <em class="parameter"><code>const <a class="link" href="gobject-Type-Information.html#GInterfaceInfo" title="GInterfaceInfo"><span class="type">GInterfaceInfo</span></a> *info</code></em>);
172
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-add-interface-dynamic" title="g_type_add_interface_dynamic ()">g_type_add_interface_dynamic</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> instance_type</code></em>,
173
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> interface_type</code></em>,
174
+ <em class="parameter"><code><a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> *plugin</code></em>);
175
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-interface-add-prerequisite" title="g_type_interface_add_prerequisite ()">g_type_interface_add_prerequisite</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> interface_type</code></em>,
176
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> prerequisite_type</code></em>);
177
+ <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="returnvalue">GTypePlugin</span></a>* <a class="link" href="gobject-Type-Information.html#g-type-get-plugin" title="g_type_get_plugin ()">g_type_get_plugin</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);
178
+ <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="returnvalue">GTypePlugin</span></a>* <a class="link" href="gobject-Type-Information.html#g-type-interface-get-plugin" title="g_type_interface_get_plugin ()">g_type_interface_get_plugin</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> instance_type</code></em>,
179
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> interface_type</code></em>);
180
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> <a class="link" href="gobject-Type-Information.html#g-type-fundamental-next" title="g_type_fundamental_next ()">g_type_fundamental_next</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
181
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> <a class="link" href="gobject-Type-Information.html#g-type-fundamental" title="g_type_fundamental ()">g_type_fundamental</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type_id</code></em>);
182
+ <a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance"><span class="returnvalue">GTypeInstance</span></a>* <a class="link" href="gobject-Type-Information.html#g-type-create-instance" title="g_type_create_instance ()">g_type_create_instance</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);
183
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-free-instance" title="g_type_free_instance ()">g_type_free_instance</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance"><span class="type">GTypeInstance</span></a> *instance</code></em>);
184
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-add-class-cache-func" title="g_type_add_class_cache_func ()">g_type_add_class_cache_func</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> cache_data</code></em>,
185
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a> cache_func</code></em>);
186
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-remove-class-cache-func" title="g_type_remove_class_cache_func ()">g_type_remove_class_cache_func</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> cache_data</code></em>,
187
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a> cache_func</code></em>);
188
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-class-unref-uncached" title="g_type_class_unref_uncached ()">g_type_class_unref_uncached</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>);
189
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-add-interface-check" title="g_type_add_interface_check ()">g_type_add_interface_check</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> check_data</code></em>,
190
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeInterfaceCheckFunc" title="GTypeInterfaceCheckFunc ()"><span class="type">GTypeInterfaceCheckFunc</span></a> check_func</code></em>);
191
+ <span class="returnvalue">void</span> <a class="link" href="gobject-Type-Information.html#g-type-remove-interface-check" title="g_type_remove_interface_check ()">g_type_remove_interface_check</a> (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> check_data</code></em>,
192
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeInterfaceCheckFunc" title="GTypeInterfaceCheckFunc ()"><span class="type">GTypeInterfaceCheckFunc</span></a> check_func</code></em>);
193
+ <span class="returnvalue">void</span> (<a class="link" href="gobject-Type-Information.html#GTypeInterfaceCheckFunc" title="GTypeInterfaceCheckFunc ()">*GTypeInterfaceCheckFunc</a>) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> check_data</code></em>,
194
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>);
195
+ <a class="link" href="gobject-Type-Information.html#GTypeValueTable" title="GTypeValueTable"><span class="returnvalue">GTypeValueTable</span></a>* <a class="link" href="gobject-Type-Information.html#g-type-value-table-peek" title="g_type_value_table_peek ()">g_type_value_table_peek</a> (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);
196
+ #define <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE:CAPS" title="G_DEFINE_TYPE()">G_DEFINE_TYPE</a> (TN,
197
+ t_n,
198
+ T_P)
199
+ #define <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS" title="G_DEFINE_TYPE_WITH_CODE()">G_DEFINE_TYPE_WITH_CODE</a> (TN,
200
+ t_n,
201
+ T_P,
202
+ _C_)
203
+ #define <a class="link" href="gobject-Type-Information.html#G-DEFINE-ABSTRACT-TYPE:CAPS" title="G_DEFINE_ABSTRACT_TYPE()">G_DEFINE_ABSTRACT_TYPE</a> (TN,
204
+ t_n,
205
+ T_P)
206
+ #define <a class="link" href="gobject-Type-Information.html#G-DEFINE-ABSTRACT-TYPE-WITH-CODE:CAPS" title="G_DEFINE_ABSTRACT_TYPE_WITH_CODE()">G_DEFINE_ABSTRACT_TYPE_WITH_CODE</a> (TN,
207
+ t_n,
208
+ T_P,
209
+ _C_)
210
+ #define <a class="link" href="gobject-Type-Information.html#G-DEFINE-INTERFACE:CAPS" title="G_DEFINE_INTERFACE()">G_DEFINE_INTERFACE</a> (TN,
211
+ t_n,
212
+ T_P)
213
+ #define <a class="link" href="gobject-Type-Information.html#G-DEFINE-INTERFACE-WITH-CODE:CAPS" title="G_DEFINE_INTERFACE_WITH_CODE()">G_DEFINE_INTERFACE_WITH_CODE</a> (TN,
214
+ t_n,
215
+ T_P,
216
+ _C_)
217
+ #define <a class="link" href="gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS" title="G_IMPLEMENT_INTERFACE()">G_IMPLEMENT_INTERFACE</a> (TYPE_IFACE,
218
+ iface_init)
219
+ #define <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE-EXTENDED:CAPS" title="G_DEFINE_TYPE_EXTENDED()">G_DEFINE_TYPE_EXTENDED</a> (TN,
220
+ t_n,
221
+ T_P,
222
+ _f_,
223
+ _C_)
224
+
225
+
226
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-INVALID:CAPS" title="G_TYPE_INVALID">G_TYPE_INVALID</a>
227
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-NONE:CAPS" title="G_TYPE_NONE">G_TYPE_NONE</a>
228
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-INTERFACE:CAPS" title="G_TYPE_INTERFACE">G_TYPE_INTERFACE</a>
229
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-CHAR:CAPS" title="G_TYPE_CHAR">G_TYPE_CHAR</a>
230
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-UCHAR:CAPS" title="G_TYPE_UCHAR">G_TYPE_UCHAR</a>
231
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-BOOLEAN:CAPS" title="G_TYPE_BOOLEAN">G_TYPE_BOOLEAN</a>
232
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-INT:CAPS" title="G_TYPE_INT">G_TYPE_INT</a>
233
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-UINT:CAPS" title="G_TYPE_UINT">G_TYPE_UINT</a>
234
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-LONG:CAPS" title="G_TYPE_LONG">G_TYPE_LONG</a>
235
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-ULONG:CAPS" title="G_TYPE_ULONG">G_TYPE_ULONG</a>
236
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-INT64:CAPS" title="G_TYPE_INT64">G_TYPE_INT64</a>
237
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-UINT64:CAPS" title="G_TYPE_UINT64">G_TYPE_UINT64</a>
238
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-ENUM:CAPS" title="G_TYPE_ENUM">G_TYPE_ENUM</a>
239
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-FLAGS:CAPS" title="G_TYPE_FLAGS">G_TYPE_FLAGS</a>
240
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-FLOAT:CAPS" title="G_TYPE_FLOAT">G_TYPE_FLOAT</a>
241
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-DOUBLE:CAPS" title="G_TYPE_DOUBLE">G_TYPE_DOUBLE</a>
242
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-STRING:CAPS" title="G_TYPE_STRING">G_TYPE_STRING</a>
243
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-POINTER:CAPS" title="G_TYPE_POINTER">G_TYPE_POINTER</a>
244
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-BOXED:CAPS" title="G_TYPE_BOXED">G_TYPE_BOXED</a>
245
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-PARAM:CAPS" title="G_TYPE_PARAM">G_TYPE_PARAM</a>
246
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-OBJECT:CAPS" title="G_TYPE_OBJECT">G_TYPE_OBJECT</a>
247
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-GTYPE:CAPS" title="G_TYPE_GTYPE">G_TYPE_GTYPE</a>
248
+
249
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-RESERVED-GLIB-FIRST:CAPS" title="G_TYPE_RESERVED_GLIB_FIRST">G_TYPE_RESERVED_GLIB_FIRST</a>
250
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-RESERVED-GLIB-LAST:CAPS" title="G_TYPE_RESERVED_GLIB_LAST">G_TYPE_RESERVED_GLIB_LAST</a>
251
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-RESERVED-BSE-FIRST:CAPS" title="G_TYPE_RESERVED_BSE_FIRST">G_TYPE_RESERVED_BSE_FIRST</a>
252
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-RESERVED-BSE-LAST:CAPS" title="G_TYPE_RESERVED_BSE_LAST">G_TYPE_RESERVED_BSE_LAST</a>
253
+ #define <a class="link" href="gobject-Type-Information.html#G-TYPE-RESERVED-USER-FIRST:CAPS" title="G_TYPE_RESERVED_USER_FIRST">G_TYPE_RESERVED_USER_FIRST</a>
254
+ </pre>
255
+ </div>
256
+ <div class="refsect1" title="Description">
257
+ <a name="gobject-Type-Information.description"></a><h2>Description</h2>
258
+ <p>
259
+ The GType API is the foundation of the GObject system. It provides the
260
+ facilities for registering and managing all fundamental data types,
261
+ user-defined object and interface types. Before using any GType
262
+ or GObject functions, <a class="link" href="gobject-Type-Information.html#g-type-init" title="g_type_init ()"><code class="function">g_type_init()</code></a> must be called to initialize the
263
+ type system.
264
+ </p>
265
+ <p>
266
+ For type creation and registration purposes, all types fall into one of
267
+ two categories: static or dynamic. Static types are never loaded or
268
+ unloaded at run-time as dynamic types may be. Static types are created
269
+ with <a class="link" href="gobject-Type-Information.html#g-type-register-static" title="g_type_register_static ()"><code class="function">g_type_register_static()</code></a> that gets type specific information passed
270
+ in via a <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> structure.
271
+ Dynamic types are created with <a class="link" href="gobject-Type-Information.html#g-type-register-dynamic" title="g_type_register_dynamic ()"><code class="function">g_type_register_dynamic()</code></a> which takes a
272
+ <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> structure instead. The remaining type information (the
273
+ <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> structure) is retrieved during runtime through <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a>
274
+ and the g_type_plugin_*() API.
275
+ These registration functions are usually called only once from a
276
+ function whose only purpose is to return the type identifier for a
277
+ specific class. Once the type (or class or interface) is registered,
278
+ it may be instantiated, inherited, or implemented depending on exactly
279
+ what sort of type it is.
280
+ There is also a third registration function for registering fundamental
281
+ types called <a class="link" href="gobject-Type-Information.html#g-type-register-fundamental" title="g_type_register_fundamental ()"><code class="function">g_type_register_fundamental()</code></a> which requires both a <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a>
282
+ structure and a <a class="link" href="gobject-Type-Information.html#GTypeFundamentalInfo" title="GTypeFundamentalInfo"><span class="type">GTypeFundamentalInfo</span></a> structure but it is seldom used
283
+ since most fundamental types are predefined rather than user-defined.
284
+ </p>
285
+ <p>
286
+ A final word about type names.
287
+ Such an identifier needs to be at least three characters long. There is no
288
+ upper length limit. The first character needs to be a letter (a-z or A-Z)
289
+ or an underscore '_'. Subsequent characters can be letters, numbers or
290
+ any of '-_+'.
291
+ </p>
292
+ </div>
293
+ <div class="refsect1" title="Details">
294
+ <a name="gobject-Type-Information.details"></a><h2>Details</h2>
295
+ <div class="refsect2" title="GType">
296
+ <a name="GType"></a><h3>GType</h3>
297
+ <p>
298
+ A numerical value which represents the unique identifier of a registered
299
+ type.
300
+ </p>
301
+ </div>
302
+ <hr>
303
+ <div class="refsect2" title="G_TYPE_FUNDAMENTAL()">
304
+ <a name="G-TYPE-FUNDAMENTAL:CAPS"></a><h3>G_TYPE_FUNDAMENTAL()</h3>
305
+ <pre class="programlisting">#define G_TYPE_FUNDAMENTAL(type) (g_type_fundamental (type))
306
+ </pre>
307
+ <p>
308
+ The fundamental type which is the ancestor of <em class="parameter"><code>type</code></em>.
309
+ Fundamental types are types that serve as ultimate bases for the derived types,
310
+ thus they are the roots of distinct inheritance hierarchies.
311
+ </p>
312
+ <div class="variablelist"><table border="0">
313
+ <col align="left" valign="top">
314
+ <tbody><tr>
315
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
316
+ <td>A <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value.
317
+ </td>
318
+ </tr></tbody>
319
+ </table></div>
320
+ </div>
321
+ <hr>
322
+ <div class="refsect2" title="G_TYPE_FUNDAMENTAL_MAX">
323
+ <a name="G-TYPE-FUNDAMENTAL-MAX:CAPS"></a><h3>G_TYPE_FUNDAMENTAL_MAX</h3>
324
+ <pre class="programlisting">#define G_TYPE_FUNDAMENTAL_MAX (255 &lt;&lt; G_TYPE_FUNDAMENTAL_SHIFT)
325
+ </pre>
326
+ <p>
327
+ An integer constant that represents the number of identifiers reserved
328
+ for types that are assigned at compile-time.
329
+ </p>
330
+ </div>
331
+ <hr>
332
+ <div class="refsect2" title="G_TYPE_MAKE_FUNDAMENTAL()">
333
+ <a name="G-TYPE-MAKE-FUNDAMENTAL:CAPS"></a><h3>G_TYPE_MAKE_FUNDAMENTAL()</h3>
334
+ <pre class="programlisting">#define G_TYPE_MAKE_FUNDAMENTAL(x) ((GType) ((x) &lt;&lt; G_TYPE_FUNDAMENTAL_SHIFT))
335
+ </pre>
336
+ <p>
337
+ Get the type ID for the fundamental type number <em class="parameter"><code>x</code></em>.
338
+ Use <a class="link" href="gobject-Type-Information.html#g-type-fundamental-next" title="g_type_fundamental_next ()"><code class="function">g_type_fundamental_next()</code></a> instead of this macro to create new fundamental
339
+ types.
340
+ </p>
341
+ <div class="variablelist"><table border="0">
342
+ <col align="left" valign="top">
343
+ <tbody>
344
+ <tr>
345
+ <td><p><span class="term"><em class="parameter"><code>x</code></em> :</span></p></td>
346
+ <td>the fundamental type number.
347
+ </td>
348
+ </tr>
349
+ <tr>
350
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
351
+ <td> the GType
352
+ </td>
353
+ </tr>
354
+ </tbody>
355
+ </table></div>
356
+ </div>
357
+ <hr>
358
+ <div class="refsect2" title="G_TYPE_IS_ABSTRACT()">
359
+ <a name="G-TYPE-IS-ABSTRACT:CAPS"></a><h3>G_TYPE_IS_ABSTRACT()</h3>
360
+ <pre class="programlisting">#define G_TYPE_IS_ABSTRACT(type) (g_type_test_flags ((type), G_TYPE_FLAG_ABSTRACT))
361
+ </pre>
362
+ <p>
363
+ Checks if <em class="parameter"><code>type</code></em> is an abstract type. An abstract type can not be
364
+ instantiated and is normally used as an abstract base class for
365
+ derived classes.
366
+ </p>
367
+ <div class="variablelist"><table border="0">
368
+ <col align="left" valign="top">
369
+ <tbody>
370
+ <tr>
371
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
372
+ <td>A <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value.
373
+ </td>
374
+ </tr>
375
+ <tr>
376
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
377
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
378
+ </td>
379
+ </tr>
380
+ </tbody>
381
+ </table></div>
382
+ </div>
383
+ <hr>
384
+ <div class="refsect2" title="G_TYPE_IS_DERIVED()">
385
+ <a name="G-TYPE-IS-DERIVED:CAPS"></a><h3>G_TYPE_IS_DERIVED()</h3>
386
+ <pre class="programlisting">#define G_TYPE_IS_DERIVED(type) ((type) &gt; G_TYPE_FUNDAMENTAL_MAX)
387
+ </pre>
388
+ <p>
389
+ Checks if <em class="parameter"><code>type</code></em> is derived (or in object-oriented terminology:
390
+ inherited) from another type (this holds true for all non-fundamental
391
+ types).
392
+ </p>
393
+ <div class="variablelist"><table border="0">
394
+ <col align="left" valign="top">
395
+ <tbody>
396
+ <tr>
397
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
398
+ <td>A <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value.
399
+ </td>
400
+ </tr>
401
+ <tr>
402
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
403
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
404
+ </td>
405
+ </tr>
406
+ </tbody>
407
+ </table></div>
408
+ </div>
409
+ <hr>
410
+ <div class="refsect2" title="G_TYPE_IS_FUNDAMENTAL()">
411
+ <a name="G-TYPE-IS-FUNDAMENTAL:CAPS"></a><h3>G_TYPE_IS_FUNDAMENTAL()</h3>
412
+ <pre class="programlisting">#define G_TYPE_IS_FUNDAMENTAL(type) ((type) &lt;= G_TYPE_FUNDAMENTAL_MAX)
413
+ </pre>
414
+ <p>
415
+ Checks if <em class="parameter"><code>type</code></em> is a fundamental type.
416
+ </p>
417
+ <div class="variablelist"><table border="0">
418
+ <col align="left" valign="top">
419
+ <tbody>
420
+ <tr>
421
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
422
+ <td>A <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value.
423
+ </td>
424
+ </tr>
425
+ <tr>
426
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
427
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
428
+ </td>
429
+ </tr>
430
+ </tbody>
431
+ </table></div>
432
+ </div>
433
+ <hr>
434
+ <div class="refsect2" title="G_TYPE_IS_VALUE_TYPE()">
435
+ <a name="G-TYPE-IS-VALUE-TYPE:CAPS"></a><h3>G_TYPE_IS_VALUE_TYPE()</h3>
436
+ <pre class="programlisting">#define G_TYPE_IS_VALUE_TYPE(type) (g_type_check_is_value_type (type))
437
+ </pre>
438
+ <p>
439
+ Checks if <em class="parameter"><code>type</code></em> is a value type and can be used with <a class="link" href="gobject-Generic-values.html#g-value-init" title="g_value_init ()"><code class="function">g_value_init()</code></a>.
440
+ </p>
441
+ <div class="variablelist"><table border="0">
442
+ <col align="left" valign="top">
443
+ <tbody>
444
+ <tr>
445
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
446
+ <td>A <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value.
447
+ </td>
448
+ </tr>
449
+ <tr>
450
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
451
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
452
+ </td>
453
+ </tr>
454
+ </tbody>
455
+ </table></div>
456
+ </div>
457
+ <hr>
458
+ <div class="refsect2" title="G_TYPE_HAS_VALUE_TABLE()">
459
+ <a name="G-TYPE-HAS-VALUE-TABLE:CAPS"></a><h3>G_TYPE_HAS_VALUE_TABLE()</h3>
460
+ <pre class="programlisting">#define G_TYPE_HAS_VALUE_TABLE(type) (g_type_value_table_peek (type) != NULL)
461
+ </pre>
462
+ <p>
463
+ Checks if <em class="parameter"><code>type</code></em> has a <a class="link" href="gobject-Type-Information.html#GTypeValueTable" title="GTypeValueTable"><span class="type">GTypeValueTable</span></a>.
464
+ </p>
465
+ <div class="variablelist"><table border="0">
466
+ <col align="left" valign="top">
467
+ <tbody>
468
+ <tr>
469
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
470
+ <td>A <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value.
471
+ </td>
472
+ </tr>
473
+ <tr>
474
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
475
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
476
+ </td>
477
+ </tr>
478
+ </tbody>
479
+ </table></div>
480
+ </div>
481
+ <hr>
482
+ <div class="refsect2" title="G_TYPE_IS_CLASSED()">
483
+ <a name="G-TYPE-IS-CLASSED:CAPS"></a><h3>G_TYPE_IS_CLASSED()</h3>
484
+ <pre class="programlisting">#define G_TYPE_IS_CLASSED(type) (g_type_test_flags ((type), G_TYPE_FLAG_CLASSED))
485
+ </pre>
486
+ <p>
487
+ Checks if <em class="parameter"><code>type</code></em> is a classed type.
488
+ </p>
489
+ <div class="variablelist"><table border="0">
490
+ <col align="left" valign="top">
491
+ <tbody>
492
+ <tr>
493
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
494
+ <td>A <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value.
495
+ </td>
496
+ </tr>
497
+ <tr>
498
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
499
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
500
+ </td>
501
+ </tr>
502
+ </tbody>
503
+ </table></div>
504
+ </div>
505
+ <hr>
506
+ <div class="refsect2" title="G_TYPE_IS_INSTANTIATABLE()">
507
+ <a name="G-TYPE-IS-INSTANTIATABLE:CAPS"></a><h3>G_TYPE_IS_INSTANTIATABLE()</h3>
508
+ <pre class="programlisting">#define G_TYPE_IS_INSTANTIATABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_INSTANTIATABLE))
509
+ </pre>
510
+ <p>
511
+ Checks if <em class="parameter"><code>type</code></em> can be instantiated. Instantiation is the
512
+ process of creating an instance (object) of this type.
513
+ </p>
514
+ <div class="variablelist"><table border="0">
515
+ <col align="left" valign="top">
516
+ <tbody>
517
+ <tr>
518
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
519
+ <td>A <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value.
520
+ </td>
521
+ </tr>
522
+ <tr>
523
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
524
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
525
+ </td>
526
+ </tr>
527
+ </tbody>
528
+ </table></div>
529
+ </div>
530
+ <hr>
531
+ <div class="refsect2" title="G_TYPE_IS_DERIVABLE()">
532
+ <a name="G-TYPE-IS-DERIVABLE:CAPS"></a><h3>G_TYPE_IS_DERIVABLE()</h3>
533
+ <pre class="programlisting">#define G_TYPE_IS_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DERIVABLE))
534
+ </pre>
535
+ <p>
536
+ Checks if <em class="parameter"><code>type</code></em> is a derivable type. A derivable type can
537
+ be used as the base class of a flat (single-level) class hierarchy.
538
+ </p>
539
+ <div class="variablelist"><table border="0">
540
+ <col align="left" valign="top">
541
+ <tbody>
542
+ <tr>
543
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
544
+ <td>A <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value.
545
+ </td>
546
+ </tr>
547
+ <tr>
548
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
549
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
550
+ </td>
551
+ </tr>
552
+ </tbody>
553
+ </table></div>
554
+ </div>
555
+ <hr>
556
+ <div class="refsect2" title="G_TYPE_IS_DEEP_DERIVABLE()">
557
+ <a name="G-TYPE-IS-DEEP-DERIVABLE:CAPS"></a><h3>G_TYPE_IS_DEEP_DERIVABLE()</h3>
558
+ <pre class="programlisting">#define G_TYPE_IS_DEEP_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DEEP_DERIVABLE))
559
+ </pre>
560
+ <p>
561
+ Checks if <em class="parameter"><code>type</code></em> is a deep derivable type. A deep derivable type
562
+ can be used as the base class of a deep (multi-level) class hierarchy.
563
+ </p>
564
+ <div class="variablelist"><table border="0">
565
+ <col align="left" valign="top">
566
+ <tbody>
567
+ <tr>
568
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
569
+ <td>A <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value.
570
+ </td>
571
+ </tr>
572
+ <tr>
573
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
574
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
575
+ </td>
576
+ </tr>
577
+ </tbody>
578
+ </table></div>
579
+ </div>
580
+ <hr>
581
+ <div class="refsect2" title="G_TYPE_IS_INTERFACE()">
582
+ <a name="G-TYPE-IS-INTERFACE:CAPS"></a><h3>G_TYPE_IS_INTERFACE()</h3>
583
+ <pre class="programlisting">#define G_TYPE_IS_INTERFACE(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE)
584
+ </pre>
585
+ <p>
586
+ Checks if <em class="parameter"><code>type</code></em> is an interface type.
587
+ An interface type provides a pure API, the implementation
588
+ of which is provided by another type (which is then said to conform
589
+ to the interface). GLib interfaces are somewhat analogous to Java
590
+ interfaces and C++ classes containing only pure virtual functions,
591
+ with the difference that GType interfaces are not derivable (but see
592
+ <a class="link" href="gobject-Type-Information.html#g-type-interface-add-prerequisite" title="g_type_interface_add_prerequisite ()"><code class="function">g_type_interface_add_prerequisite()</code></a> for an alternative).
593
+ </p>
594
+ <div class="variablelist"><table border="0">
595
+ <col align="left" valign="top">
596
+ <tbody>
597
+ <tr>
598
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
599
+ <td>A <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value.
600
+ </td>
601
+ </tr>
602
+ <tr>
603
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
604
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
605
+ </td>
606
+ </tr>
607
+ </tbody>
608
+ </table></div>
609
+ </div>
610
+ <hr>
611
+ <div class="refsect2" title="GTypeInterface">
612
+ <a name="GTypeInterface"></a><h3>GTypeInterface</h3>
613
+ <pre class="programlisting">typedef struct {
614
+ } GTypeInterface;
615
+ </pre>
616
+ <p>
617
+ An opaque structure used as the base of all interface types.
618
+ </p>
619
+ </div>
620
+ <hr>
621
+ <div class="refsect2" title="GTypeInstance">
622
+ <a name="GTypeInstance"></a><h3>GTypeInstance</h3>
623
+ <pre class="programlisting">typedef struct {
624
+ } GTypeInstance;
625
+ </pre>
626
+ <p>
627
+ An opaque structure used as the base of all type instances.
628
+ </p>
629
+ </div>
630
+ <hr>
631
+ <div class="refsect2" title="GTypeClass">
632
+ <a name="GTypeClass"></a><h3>GTypeClass</h3>
633
+ <pre class="programlisting">typedef struct {
634
+ } GTypeClass;
635
+ </pre>
636
+ <p>
637
+ An opaque structure used as the base of all classes.
638
+ </p>
639
+ </div>
640
+ <hr>
641
+ <div class="refsect2" title="GTypeInfo">
642
+ <a name="GTypeInfo"></a><h3>GTypeInfo</h3>
643
+ <pre class="programlisting">typedef struct {
644
+ /* interface types, classed types, instantiated types */
645
+ guint16 class_size;
646
+
647
+ GBaseInitFunc base_init;
648
+ GBaseFinalizeFunc base_finalize;
649
+
650
+ /* interface types, classed types, instantiated types */
651
+ GClassInitFunc class_init;
652
+ GClassFinalizeFunc class_finalize;
653
+ gconstpointer class_data;
654
+
655
+ /* instantiated types */
656
+ guint16 instance_size;
657
+ guint16 n_preallocs;
658
+ GInstanceInitFunc instance_init;
659
+
660
+ /* value handling */
661
+ const GTypeValueTable *value_table;
662
+ } GTypeInfo;
663
+ </pre>
664
+ <p>
665
+ This structure is used to provide the type system with the information
666
+ required to initialize and destruct (finalize) a type's class and
667
+ its instances.
668
+ The initialized structure is passed to the <a class="link" href="gobject-Type-Information.html#g-type-register-static" title="g_type_register_static ()"><code class="function">g_type_register_static()</code></a> function
669
+ (or is copied into the provided <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> structure in the
670
+ <a class="link" href="GTypePlugin.html#g-type-plugin-complete-type-info" title="g_type_plugin_complete_type_info ()"><code class="function">g_type_plugin_complete_type_info()</code></a>). The type system will perform a deep
671
+ copy of this structure, so its memory does not need to be persistent
672
+ across invocation of <a class="link" href="gobject-Type-Information.html#g-type-register-static" title="g_type_register_static ()"><code class="function">g_type_register_static()</code></a>.
673
+ </p>
674
+ <div class="variablelist"><table border="0">
675
+ <col align="left" valign="top">
676
+ <tbody>
677
+ <tr>
678
+ <td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="GTypeInfo.class-size"></a>class_size</code></em>;</span></p></td>
679
+ <td>Size of the class structure (required for interface, classed and instantiatable types).
680
+ </td>
681
+ </tr>
682
+ <tr>
683
+ <td><p><span class="term"><a class="link" href="gobject-Type-Information.html#GBaseInitFunc" title="GBaseInitFunc ()"><span class="type">GBaseInitFunc</span></a> <em class="structfield"><code><a name="GTypeInfo.base-init"></a>base_init</code></em>;</span></p></td>
684
+ <td>Location of the base initialization function (optional).
685
+ </td>
686
+ </tr>
687
+ <tr>
688
+ <td><p><span class="term"><a class="link" href="gobject-Type-Information.html#GBaseFinalizeFunc" title="GBaseFinalizeFunc ()"><span class="type">GBaseFinalizeFunc</span></a> <em class="structfield"><code><a name="GTypeInfo.base-finalize"></a>base_finalize</code></em>;</span></p></td>
689
+ <td>Location of the base finalization function (optional).
690
+ </td>
691
+ </tr>
692
+ <tr>
693
+ <td><p><span class="term"><a class="link" href="gobject-Type-Information.html#GClassInitFunc" title="GClassInitFunc ()"><span class="type">GClassInitFunc</span></a> <em class="structfield"><code><a name="GTypeInfo.class-init"></a>class_init</code></em>;</span></p></td>
694
+ <td>Location of the class initialization function for
695
+ classed and instantiatable types. Location of the default vtable
696
+ inititalization function for interface types. (optional) This function
697
+ is used both to fill in virtual functions in the class or default vtable,
698
+ and to do type-specific setup such as registering signals and object
699
+ properties.
700
+ </td>
701
+ </tr>
702
+ <tr>
703
+ <td><p><span class="term"><a class="link" href="gobject-Type-Information.html#GClassFinalizeFunc" title="GClassFinalizeFunc ()"><span class="type">GClassFinalizeFunc</span></a> <em class="structfield"><code><a name="GTypeInfo.class-finalize"></a>class_finalize</code></em>;</span></p></td>
704
+ <td>Location of the class finalization function for
705
+ classed and instantiatable types. Location fo the default vtable
706
+ finalization function for interface types. (optional)
707
+ </td>
708
+ </tr>
709
+ <tr>
710
+ <td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> <em class="structfield"><code><a name="GTypeInfo.class-data"></a>class_data</code></em>;</span></p></td>
711
+ <td>User-supplied data passed to the class init/finalize functions.
712
+ </td>
713
+ </tr>
714
+ <tr>
715
+ <td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="GTypeInfo.instance-size"></a>instance_size</code></em>;</span></p></td>
716
+ <td>Size of the instance (object) structure (required for instantiatable types only).
717
+ </td>
718
+ </tr>
719
+ <tr>
720
+ <td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="GTypeInfo.n-preallocs"></a>n_preallocs</code></em>;</span></p></td>
721
+ <td>Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the <a href="./../glib/glib/glib-Memory-Slices.html">slice allocator</a> now.
722
+ </td>
723
+ </tr>
724
+ <tr>
725
+ <td><p><span class="term"><a class="link" href="gobject-Type-Information.html#GInstanceInitFunc" title="GInstanceInitFunc ()"><span class="type">GInstanceInitFunc</span></a> <em class="structfield"><code><a name="GTypeInfo.instance-init"></a>instance_init</code></em>;</span></p></td>
726
+ <td>Location of the instance initialization function (optional, for instantiatable types only).
727
+ </td>
728
+ </tr>
729
+ <tr>
730
+ <td><p><span class="term">const <a class="link" href="gobject-Type-Information.html#GTypeValueTable" title="GTypeValueTable"><span class="type">GTypeValueTable</span></a> *<em class="structfield"><code><a name="GTypeInfo.value-table"></a>value_table</code></em>;</span></p></td>
731
+ <td>A <a class="link" href="gobject-Type-Information.html#GTypeValueTable" title="GTypeValueTable"><span class="type">GTypeValueTable</span></a> function table for generic handling of GValues of this type (usually only
732
+ useful for fundamental types).
733
+ </td>
734
+ </tr>
735
+ </tbody>
736
+ </table></div>
737
+ </div>
738
+ <hr>
739
+ <div class="refsect2" title="GTypeFundamentalInfo">
740
+ <a name="GTypeFundamentalInfo"></a><h3>GTypeFundamentalInfo</h3>
741
+ <pre class="programlisting">typedef struct {
742
+ GTypeFundamentalFlags type_flags;
743
+ } GTypeFundamentalInfo;
744
+ </pre>
745
+ <p>
746
+ A structure that provides information to the type system which is
747
+ used specifically for managing fundamental types.
748
+ </p>
749
+ <div class="variablelist"><table border="0">
750
+ <col align="left" valign="top">
751
+ <tbody><tr>
752
+ <td><p><span class="term"><a class="link" href="gobject-Type-Information.html#GTypeFundamentalFlags" title="enum GTypeFundamentalFlags"><span class="type">GTypeFundamentalFlags</span></a> <em class="structfield"><code><a name="GTypeFundamentalInfo.type-flags"></a>type_flags</code></em>;</span></p></td>
753
+ <td>
754
+ <a class="link" href="gobject-Type-Information.html#GTypeFundamentalFlags" title="enum GTypeFundamentalFlags"><span class="type">GTypeFundamentalFlags</span></a> describing the characteristics of the fundamental type
755
+ </td>
756
+ </tr></tbody>
757
+ </table></div>
758
+ </div>
759
+ <hr>
760
+ <div class="refsect2" title="GInterfaceInfo">
761
+ <a name="GInterfaceInfo"></a><h3>GInterfaceInfo</h3>
762
+ <pre class="programlisting">typedef struct {
763
+ GInterfaceInitFunc interface_init;
764
+ GInterfaceFinalizeFunc interface_finalize;
765
+ gpointer interface_data;
766
+ } GInterfaceInfo;
767
+ </pre>
768
+ <p>
769
+ A structure that provides information to the type system which is
770
+ used specifically for managing interface types.
771
+ </p>
772
+ <div class="variablelist"><table border="0">
773
+ <col align="left" valign="top">
774
+ <tbody>
775
+ <tr>
776
+ <td><p><span class="term"><a class="link" href="gobject-Type-Information.html#GInterfaceInitFunc" title="GInterfaceInitFunc ()"><span class="type">GInterfaceInitFunc</span></a> <em class="structfield"><code><a name="GInterfaceInfo.interface-init"></a>interface_init</code></em>;</span></p></td>
777
+ <td>location of the interface initialization function
778
+ </td>
779
+ </tr>
780
+ <tr>
781
+ <td><p><span class="term"><a class="link" href="gobject-Type-Information.html#GInterfaceFinalizeFunc" title="GInterfaceFinalizeFunc ()"><span class="type">GInterfaceFinalizeFunc</span></a> <em class="structfield"><code><a name="GInterfaceInfo.interface-finalize"></a>interface_finalize</code></em>;</span></p></td>
782
+ <td>location of the interface finalization function
783
+ </td>
784
+ </tr>
785
+ <tr>
786
+ <td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GInterfaceInfo.interface-data"></a>interface_data</code></em>;</span></p></td>
787
+ <td>user-supplied data passed to the interface init/finalize functions
788
+ </td>
789
+ </tr>
790
+ </tbody>
791
+ </table></div>
792
+ </div>
793
+ <hr>
794
+ <div class="refsect2" title="GTypeValueTable">
795
+ <a name="GTypeValueTable"></a><h3>GTypeValueTable</h3>
796
+ <pre class="programlisting">typedef struct {
797
+ void (*value_init) (GValue *value);
798
+ void (*value_free) (GValue *value);
799
+ void (*value_copy) (const GValue *src_value,
800
+ GValue *dest_value);
801
+ /* varargs functionality (optional) */
802
+ gpointer (*value_peek_pointer) (const GValue *value);
803
+ gchar *collect_format;
804
+ gchar* (*collect_value) (GValue *value,
805
+ guint n_collect_values,
806
+ GTypeCValue *collect_values,
807
+ guint collect_flags);
808
+ gchar *lcopy_format;
809
+ gchar* (*lcopy_value) (const GValue *value,
810
+ guint n_collect_values,
811
+ GTypeCValue *collect_values,
812
+ guint collect_flags);
813
+ } GTypeValueTable;
814
+ </pre>
815
+ <p>
816
+ The <a class="link" href="gobject-Type-Information.html#GTypeValueTable" title="GTypeValueTable"><span class="type">GTypeValueTable</span></a> provides the functions required by the <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> implementation,
817
+ to serve as a container for values of a type.
818
+ </p>
819
+ <div class="variablelist"><table border="0">
820
+ <col align="left" valign="top">
821
+ <tbody>
822
+ <tr>
823
+ <td><p><span class="term"><em class="structfield"><code><a name="GTypeValueTable.value-init"></a>value_init</code></em> ()</span></p></td>
824
+ <td>Default initialize <em class="parameter"><code>values</code></em> contents by poking values
825
+ directly into the value-&gt;data array. The data array of
826
+ the <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> passed into this function was zero-filled
827
+ with <code class="function"><code class="function">memset()</code></code>, so no care has to
828
+ be taken to free any
829
+ old contents. E.g. for the implementation of a string
830
+ value that may never be <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the implementation might
831
+ look like:
832
+ <div class="informalexample">
833
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
834
+ <tbody>
835
+ <tr>
836
+ <td class="listing_lines" align="right"><pre>1</pre></td>
837
+ <td class="listing_code"><pre class="programlisting"><span class="normal">value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-String-Utility-Functions.html#g-strdup">g_strdup</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">""</span><span class="symbol">);</span></pre></td>
838
+ </tr>
839
+ </tbody>
840
+ </table>
841
+ </div>
842
+
843
+ </td>
844
+ </tr>
845
+ <tr>
846
+ <td><p><span class="term"><em class="structfield"><code><a name="GTypeValueTable.value-free"></a>value_free</code></em> ()</span></p></td>
847
+ <td>Free any old contents that might be left in the
848
+ data array of the passed in <em class="parameter"><code>value</code></em>. No resources may
849
+ remain allocated through the <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> contents after
850
+ this function returns. E.g. for our above string type:
851
+ <div class="informalexample">
852
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
853
+ <tbody>
854
+ <tr>
855
+ <td class="listing_lines" align="right"><pre>1
856
+ 2
857
+ 3</pre></td>
858
+ <td class="listing_code"><pre class="programlisting"><span class="comment">// only free strings without a specific flag for static storage</span>
859
+ <span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!(</span><span class="normal">value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">1</span><span class="symbol">].</span><span class="normal">v_uint </span><span class="symbol">&amp;</span><span class="normal"> G_VALUE_NOCOPY_CONTENTS</span><span class="symbol">))</span>
860
+ <span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">);</span></pre></td>
861
+ </tr>
862
+ </tbody>
863
+ </table>
864
+ </div>
865
+
866
+ </td>
867
+ </tr>
868
+ <tr>
869
+ <td><p><span class="term"><em class="structfield"><code><a name="GTypeValueTable.value-copy"></a>value_copy</code></em> ()</span></p></td>
870
+ <td>
871
+ <em class="parameter"><code>dest_value</code></em> is a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> with zero-filled data section
872
+ and <em class="parameter"><code>src_value</code></em> is a properly setup <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> of same or
873
+ derived type.
874
+ The purpose of this function is to copy the contents of
875
+ <em class="parameter"><code>src_value</code></em> into <em class="parameter"><code>dest_value</code></em> in a way, that even after
876
+ <em class="parameter"><code>src_value</code></em> has been freed, the contents of <em class="parameter"><code>dest_value</code></em>
877
+ remain valid. String type example:
878
+ <div class="informalexample">
879
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
880
+ <tbody>
881
+ <tr>
882
+ <td class="listing_lines" align="right"><pre>1</pre></td>
883
+ <td class="listing_code"><pre class="programlisting"><span class="normal">dest_value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-String-Utility-Functions.html#g-strdup">g_strdup</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">src_value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">);</span></pre></td>
884
+ </tr>
885
+ </tbody>
886
+ </table>
887
+ </div>
888
+
889
+ </td>
890
+ </tr>
891
+ <tr>
892
+ <td><p><span class="term"><em class="structfield"><code><a name="GTypeValueTable.value-peek-pointer"></a>value_peek_pointer</code></em> ()</span></p></td>
893
+ <td>If the value contents fit into a pointer, such as objects
894
+ or strings, return this pointer, so the caller can peek at
895
+ the current contents. To extend on our above string example:
896
+ <div class="informalexample">
897
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
898
+ <tbody>
899
+ <tr>
900
+ <td class="listing_lines" align="right"><pre>1</pre></td>
901
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">return</span><span class="normal"> value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">;</span></pre></td>
902
+ </tr>
903
+ </tbody>
904
+ </table>
905
+ </div>
906
+
907
+ </td>
908
+ </tr>
909
+ <tr>
910
+ <td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GTypeValueTable.collect-format"></a>collect_format</code></em>;</span></p></td>
911
+ <td>A string format describing how to collect the contents of
912
+ this value bit-by-bit. Each character in the format represents
913
+ an argument to be collected, and the characters themselves indicate
914
+ the type of the argument. Currently supported arguments are:
915
+ <div class="variablelist"><table border="0">
916
+ <col align="left" valign="top">
917
+ <tbody>
918
+ <tr>
919
+ <td><p><span class="term"></span></p></td>
920
+ <td><p>
921
+ 'i' - Integers. passed as collect_values[].v_int.
922
+ </p></td>
923
+ </tr>
924
+ <tr>
925
+ <td><p><span class="term"></span></p></td>
926
+ <td><p>
927
+ 'l' - Longs. passed as collect_values[].v_long.
928
+ </p></td>
929
+ </tr>
930
+ <tr>
931
+ <td><p><span class="term"></span></p></td>
932
+ <td><p>
933
+ 'd' - Doubles. passed as collect_values[].v_double.
934
+ </p></td>
935
+ </tr>
936
+ <tr>
937
+ <td><p><span class="term"></span></p></td>
938
+ <td><p>
939
+ 'p' - Pointers. passed as collect_values[].v_pointer.
940
+ </p></td>
941
+ </tr>
942
+ </tbody>
943
+ </table></div>
944
+ It should be noted that for variable argument list construction,
945
+ ANSI C promotes every type smaller than an integer to an int, and
946
+ floats to doubles. So for collection of short int or char, 'i'
947
+ needs to be used, and for collection of floats 'd'.
948
+ </td>
949
+ </tr>
950
+ <tr>
951
+ <td><p><span class="term"><em class="structfield"><code><a name="GTypeValueTable.collect-value"></a>collect_value</code></em> ()</span></p></td>
952
+ <td>The <code class="function">collect_value()</code> function is responsible for converting the
953
+ values collected from a variable argument list into contents
954
+ suitable for storage in a GValue. This function should setup
955
+ <em class="parameter"><code>value</code></em> similar to <code class="function">value_init()</code>; e.g. for a string value that
956
+ does not allow <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> pointers, it needs to either spew an error,
957
+ or do an implicit conversion by storing an empty string.
958
+ The <em class="parameter"><code>value</code></em> passed in to this function has a zero-filled data
959
+ array, so just like for <code class="function">value_init()</code> it is guaranteed to not
960
+ contain any old contents that might need freeing.
961
+ <em class="parameter"><code>n_collect_values</code></em> is exactly the string length of <em class="parameter"><code>collect_format</code></em>,
962
+ and <em class="parameter"><code>collect_values</code></em> is an array of unions <a class="link" href="gobject-Varargs-Value-Collection.html#GTypeCValue" title="union GTypeCValue"><span class="type">GTypeCValue</span></a> with
963
+ length <em class="parameter"><code>n_collect_values</code></em>, containing the collected values
964
+ according to <em class="parameter"><code>collect_format</code></em>.
965
+ <em class="parameter"><code>collect_flags</code></em> is an argument provided as a hint by the caller.
966
+ It may contain the flag <code class="literal">G_VALUE_NOCOPY_CONTENTS</code> indicating,
967
+ that the collected value contents may be considered "static"
968
+ for the duration of the <em class="parameter"><code>value</code></em> lifetime.
969
+ Thus an extra copy of the contents stored in <em class="parameter"><code>collect_values</code></em> is
970
+ not required for assignment to <em class="parameter"><code>value</code></em>.
971
+ For our above string example, we continue with:
972
+ <div class="informalexample">
973
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
974
+ <tbody>
975
+ <tr>
976
+ <td class="listing_lines" align="right"><pre>1
977
+ 2
978
+ 3
979
+ 4
980
+ 5
981
+ 6
982
+ 7
983
+ 8
984
+ 9
985
+ 10
986
+ 11</pre></td>
987
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="normal">collect_values</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">)</span>
988
+ <span class="normal"> value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-String-Utility-Functions.html#g-strdup">g_strdup</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">""</span><span class="symbol">);</span>
989
+ <span class="keyword">else</span><span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">collect_flags </span><span class="symbol">&amp;</span><span class="normal"> G_VALUE_NOCOPY_CONTENTS</span><span class="symbol">)</span>
990
+ <span class="cbracket">{</span>
991
+ <span class="normal"> value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer </span><span class="symbol">=</span><span class="normal"> collect_values</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">;</span>
992
+ <span class="normal"> </span><span class="comment">// keep a flag for the value_free() implementation to not free this string</span>
993
+ <span class="normal"> value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">1</span><span class="symbol">].</span><span class="normal">v_uint </span><span class="symbol">=</span><span class="normal"> G_VALUE_NOCOPY_CONTENTS</span><span class="symbol">;</span>
994
+ <span class="cbracket">}</span>
995
+ <span class="keyword">else</span>
996
+ <span class="normal"> value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-String-Utility-Functions.html#g-strdup">g_strdup</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">collect_values</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">);</span>
997
+ <span class="keyword">return</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span></pre></td>
998
+ </tr>
999
+ </tbody>
1000
+ </table>
1001
+ </div>
1002
+
1003
+ It should be noted, that it is generally a bad idea to follow the
1004
+ <span class="type">G_VALUE_NOCOPY_CONTENTS</span> hint for reference counted types. Due to
1005
+ reentrancy requirements and reference count assertions performed
1006
+ by the <span class="type">GSignal</span> code, reference counts should always be incremented
1007
+ for reference counted contents stored in the value-&gt;data array.
1008
+ To deviate from our string example for a moment, and taking a look
1009
+ at an exemplary implementation for <code class="function">collect_value()</code> of <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>:
1010
+ <div class="informalexample">
1011
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1012
+ <tbody>
1013
+ <tr>
1014
+ <td class="listing_lines" align="right"><pre>1
1015
+ 2
1016
+ 3
1017
+ 4
1018
+ 5
1019
+ 6
1020
+ 7
1021
+ 8
1022
+ 9
1023
+ 10</pre></td>
1024
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">collect_values</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">)</span>
1025
+ <span class="cbracket">{</span>
1026
+ <span class="normal"> </span><span class="usertype">GObject</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">object </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">collect_values</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">);</span>
1027
+ <span class="normal"> </span><span class="comment">// never honour G_VALUE_NOCOPY_CONTENTS for ref-counted types</span>
1028
+ <span class="normal"> value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="gobject-The-Base-Object-Type.html#g-object-ref">g_object_ref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object</span><span class="symbol">);</span>
1029
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
1030
+ <span class="cbracket">}</span>
1031
+ <span class="keyword">else</span>
1032
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-String-Utility-Functions.html#g-strdup-printf">g_strdup_printf</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Object passed as invalid NULL pointer"</span><span class="symbol">);</span>
1033
+ <span class="cbracket">}</span></pre></td>
1034
+ </tr>
1035
+ </tbody>
1036
+ </table>
1037
+ </div>
1038
+
1039
+ The reference count for valid objects is always incremented,
1040
+ regardless of <em class="parameter"><code>collect_flags</code></em>. For invalid objects, the example
1041
+ returns a newly allocated string without altering <em class="parameter"><code>value</code></em>.
1042
+ Upon success, <code class="function">collect_value()</code> needs to return <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. If, however,
1043
+ an error condition occurred, <code class="function">collect_value()</code> may spew an
1044
+ error by returning a newly allocated non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> string, giving
1045
+ a suitable description of the error condition.
1046
+ The calling code makes no assumptions about the <em class="parameter"><code>value</code></em>
1047
+ contents being valid upon error returns, <em class="parameter"><code>value</code></em>
1048
+ is simply thrown away without further freeing. As such, it is
1049
+ a good idea to not allocate <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a> contents, prior to returning
1050
+ an error, however, <code class="function">collect_values()</code> is not obliged to return
1051
+ a correctly setup <em class="parameter"><code>value</code></em> for error returns, simply because
1052
+ any non-<a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> return is considered a fatal condition so further
1053
+ program behaviour is undefined.
1054
+ </td>
1055
+ </tr>
1056
+ <tr>
1057
+ <td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GTypeValueTable.lcopy-format"></a>lcopy_format</code></em>;</span></p></td>
1058
+ <td>Format description of the arguments to collect for <em class="parameter"><code>lcopy_value</code></em>,
1059
+ analogous to <em class="parameter"><code>collect_format</code></em>. Usually, <em class="parameter"><code>lcopy_format</code></em> string consists
1060
+ only of 'p's to provide <code class="function">lcopy_value()</code> with pointers to storage locations.
1061
+ </td>
1062
+ </tr>
1063
+ <tr>
1064
+ <td><p><span class="term"><em class="structfield"><code><a name="GTypeValueTable.lcopy-value"></a>lcopy_value</code></em> ()</span></p></td>
1065
+ <td>This function is responsible for storing the <em class="parameter"><code>value</code></em> contents into
1066
+ arguments passed through a variable argument list which got
1067
+ collected into <em class="parameter"><code>collect_values</code></em> according to <em class="parameter"><code>lcopy_format</code></em>.
1068
+ <em class="parameter"><code>n_collect_values</code></em> equals the string length of <em class="parameter"><code>lcopy_format</code></em>,
1069
+ and <em class="parameter"><code>collect_flags</code></em> may contain <code class="literal">G_VALUE_NOCOPY_CONTENTS</code>.
1070
+ In contrast to <code class="function">collect_value()</code>, <code class="function">lcopy_value()</code> is obliged to
1071
+ always properly support <code class="literal">G_VALUE_NOCOPY_CONTENTS</code>.
1072
+ Similar to <code class="function">collect_value()</code> the function may prematurely abort
1073
+ by returning a newly allocated string describing an error condition.
1074
+ To complete the string example:
1075
+ <div class="informalexample">
1076
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1077
+ <tbody>
1078
+ <tr>
1079
+ <td class="listing_lines" align="right"><pre>1
1080
+ 2
1081
+ 3
1082
+ 4
1083
+ 5
1084
+ 6
1085
+ 7</pre></td>
1086
+ <td class="listing_code"><pre class="programlisting"><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">**</span><span class="normal">string_p </span><span class="symbol">=</span><span class="normal"> collect_values</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">;</span>
1087
+ <span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="normal">string_p</span><span class="symbol">)</span>
1088
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-String-Utility-Functions.html#g-strdup-printf">g_strdup_printf</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"string location passed as NULL"</span><span class="symbol">);</span>
1089
+ <span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">collect_flags </span><span class="symbol">&amp;</span><span class="normal"> G_VALUE_NOCOPY_CONTENTS</span><span class="symbol">)</span>
1090
+ <span class="normal"> </span><span class="symbol">*</span><span class="normal">string_p </span><span class="symbol">=</span><span class="normal"> value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">;</span>
1091
+ <span class="keyword">else</span>
1092
+ <span class="normal"> </span><span class="symbol">*</span><span class="normal">string_p </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-String-Utility-Functions.html#g-strdup">g_strdup</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">);</span></pre></td>
1093
+ </tr>
1094
+ </tbody>
1095
+ </table>
1096
+ </div>
1097
+
1098
+ And an illustrative version of <code class="function">lcopy_value()</code> for
1099
+ reference-counted types:
1100
+ <div class="informalexample">
1101
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1102
+ <tbody>
1103
+ <tr>
1104
+ <td class="listing_lines" align="right"><pre>1
1105
+ 2
1106
+ 3
1107
+ 4
1108
+ 5
1109
+ 6
1110
+ 7
1111
+ 8
1112
+ 9
1113
+ 10</pre></td>
1114
+ <td class="listing_code"><pre class="programlisting"><span class="usertype">GObject</span><span class="normal"> </span><span class="symbol">**</span><span class="normal">object_p </span><span class="symbol">=</span><span class="normal"> collect_values</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">;</span>
1115
+ <span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="normal">object_p</span><span class="symbol">)</span>
1116
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-String-Utility-Functions.html#g-strdup-printf">g_strdup_printf</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"object location passed as NULL"</span><span class="symbol">);</span>
1117
+ <span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="normal">value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">)</span>
1118
+ <span class="normal"> </span><span class="symbol">*</span><span class="normal">object_p </span><span class="symbol">=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
1119
+ <span class="keyword">else</span><span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">collect_flags </span><span class="symbol">&amp;</span><span class="normal"> G_VALUE_NOCOPY_CONTENTS</span><span class="symbol">)</span><span class="normal"> </span><span class="comment">// always honour</span>
1120
+ <span class="normal"> </span><span class="symbol">*</span><span class="normal">object_p </span><span class="symbol">=</span><span class="normal"> value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">;</span>
1121
+ <span class="keyword">else</span>
1122
+ <span class="normal"> </span><span class="symbol">*</span><span class="normal">object_p </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="gobject-The-Base-Object-Type.html#g-object-ref">g_object_ref</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">value</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">[</span><span class="number">0</span><span class="symbol">].</span><span class="normal">v_pointer</span><span class="symbol">);</span>
1123
+ <span class="keyword">return</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span></pre></td>
1124
+ </tr>
1125
+ </tbody>
1126
+ </table>
1127
+ </div>
1128
+
1129
+ </td>
1130
+ </tr>
1131
+ </tbody>
1132
+ </table></div>
1133
+ </div>
1134
+ <hr>
1135
+ <div class="refsect2" title="G_TYPE_FROM_INSTANCE()">
1136
+ <a name="G-TYPE-FROM-INSTANCE:CAPS"></a><h3>G_TYPE_FROM_INSTANCE()</h3>
1137
+ <pre class="programlisting">#define G_TYPE_FROM_INSTANCE(instance) (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))-&gt;g_class))
1138
+ </pre>
1139
+ <p>
1140
+ Get the type identifier from a given <em class="parameter"><code>instance</code></em> structure.
1141
+ </p>
1142
+ <p>
1143
+ This macro should only be used in type implementations.
1144
+ </p>
1145
+ <div class="variablelist"><table border="0">
1146
+ <col align="left" valign="top">
1147
+ <tbody>
1148
+ <tr>
1149
+ <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td>
1150
+ <td>Location of a valid <a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance"><span class="type">GTypeInstance</span></a> structure.
1151
+ </td>
1152
+ </tr>
1153
+ <tr>
1154
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1155
+ <td> the <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a>
1156
+ </td>
1157
+ </tr>
1158
+ </tbody>
1159
+ </table></div>
1160
+ </div>
1161
+ <hr>
1162
+ <div class="refsect2" title="G_TYPE_FROM_CLASS()">
1163
+ <a name="G-TYPE-FROM-CLASS:CAPS"></a><h3>G_TYPE_FROM_CLASS()</h3>
1164
+ <pre class="programlisting">#define G_TYPE_FROM_CLASS(g_class) (((GTypeClass*) (g_class))-&gt;g_type)
1165
+ </pre>
1166
+ <p>
1167
+ Get the type identifier from a given <em class="parameter"><code>class</code></em> structure.
1168
+ </p>
1169
+ <p>
1170
+ This macro should only be used in type implementations.
1171
+ </p>
1172
+ <div class="variablelist"><table border="0">
1173
+ <col align="left" valign="top">
1174
+ <tbody>
1175
+ <tr>
1176
+ <td><p><span class="term"><em class="parameter"><code>g_class</code></em> :</span></p></td>
1177
+ <td>Location of a valid <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure.
1178
+ </td>
1179
+ </tr>
1180
+ <tr>
1181
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1182
+ <td> the <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a>
1183
+ </td>
1184
+ </tr>
1185
+ </tbody>
1186
+ </table></div>
1187
+ </div>
1188
+ <hr>
1189
+ <div class="refsect2" title="G_TYPE_FROM_INTERFACE()">
1190
+ <a name="G-TYPE-FROM-INTERFACE:CAPS"></a><h3>G_TYPE_FROM_INTERFACE()</h3>
1191
+ <pre class="programlisting">#define G_TYPE_FROM_INTERFACE(g_iface) (((GTypeInterface*) (g_iface))-&gt;g_type)
1192
+ </pre>
1193
+ <p>
1194
+ Get the type identifier from a given <em class="parameter"><code>interface</code></em> structure.
1195
+ </p>
1196
+ <p>
1197
+ This macro should only be used in type implementations.
1198
+ </p>
1199
+ <div class="variablelist"><table border="0">
1200
+ <col align="left" valign="top">
1201
+ <tbody>
1202
+ <tr>
1203
+ <td><p><span class="term"><em class="parameter"><code>g_iface</code></em> :</span></p></td>
1204
+ <td>Location of a valid <a class="link" href="gobject-Type-Information.html#GTypeInterface" title="GTypeInterface"><span class="type">GTypeInterface</span></a> structure.
1205
+ </td>
1206
+ </tr>
1207
+ <tr>
1208
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1209
+ <td> the <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a>
1210
+ </td>
1211
+ </tr>
1212
+ </tbody>
1213
+ </table></div>
1214
+ </div>
1215
+ <hr>
1216
+ <div class="refsect2" title="G_TYPE_INSTANCE_GET_CLASS()">
1217
+ <a name="G-TYPE-INSTANCE-GET-CLASS:CAPS"></a><h3>G_TYPE_INSTANCE_GET_CLASS()</h3>
1218
+ <pre class="programlisting">#define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type) (_G_TYPE_IGC ((instance), (g_type), c_type))
1219
+ </pre>
1220
+ <p>
1221
+ Get the class structure of a given <em class="parameter"><code>instance</code></em>, casted
1222
+ to a specified ancestor type <em class="parameter"><code>g_type</code></em> of the instance.
1223
+ </p>
1224
+ <p>
1225
+ Note that while calling a <a class="link" href="gobject-Type-Information.html#GInstanceInitFunc" title="GInstanceInitFunc ()"><code class="function">GInstanceInitFunc()</code></a>, the class pointer gets
1226
+ modified, so it might not always return the expected pointer.
1227
+ </p>
1228
+ <p>
1229
+ This macro should only be used in type implementations.
1230
+ </p>
1231
+ <div class="variablelist"><table border="0">
1232
+ <col align="left" valign="top">
1233
+ <tbody>
1234
+ <tr>
1235
+ <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td>
1236
+ <td>Location of the <a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance"><span class="type">GTypeInstance</span></a> structure.
1237
+ </td>
1238
+ </tr>
1239
+ <tr>
1240
+ <td><p><span class="term"><em class="parameter"><code>g_type</code></em> :</span></p></td>
1241
+ <td>The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> of the class to be returned.
1242
+ </td>
1243
+ </tr>
1244
+ <tr>
1245
+ <td><p><span class="term"><em class="parameter"><code>c_type</code></em> :</span></p></td>
1246
+ <td>The C type of the class structure.
1247
+ </td>
1248
+ </tr>
1249
+ <tr>
1250
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1251
+ <td> a pointer to the class structure
1252
+ </td>
1253
+ </tr>
1254
+ </tbody>
1255
+ </table></div>
1256
+ </div>
1257
+ <hr>
1258
+ <div class="refsect2" title="G_TYPE_INSTANCE_GET_INTERFACE()">
1259
+ <a name="G-TYPE-INSTANCE-GET-INTERFACE:CAPS"></a><h3>G_TYPE_INSTANCE_GET_INTERFACE()</h3>
1260
+ <pre class="programlisting">#define G_TYPE_INSTANCE_GET_INTERFACE(instance, g_type, c_type) (_G_TYPE_IGI ((instance), (g_type), c_type))
1261
+ </pre>
1262
+ <p>
1263
+ Get the interface structure for interface <em class="parameter"><code>g_type</code></em> of a given <em class="parameter"><code>instance</code></em>.
1264
+ </p>
1265
+ <p>
1266
+ This macro should only be used in type implementations.
1267
+ </p>
1268
+ <div class="variablelist"><table border="0">
1269
+ <col align="left" valign="top">
1270
+ <tbody>
1271
+ <tr>
1272
+ <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td>
1273
+ <td>Location of the <a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance"><span class="type">GTypeInstance</span></a> structure.
1274
+ </td>
1275
+ </tr>
1276
+ <tr>
1277
+ <td><p><span class="term"><em class="parameter"><code>g_type</code></em> :</span></p></td>
1278
+ <td>The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> of the interface to be returned.
1279
+ </td>
1280
+ </tr>
1281
+ <tr>
1282
+ <td><p><span class="term"><em class="parameter"><code>c_type</code></em> :</span></p></td>
1283
+ <td>The C type of the interface structure.
1284
+ </td>
1285
+ </tr>
1286
+ <tr>
1287
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1288
+ <td> a pointer to the interface structure
1289
+ </td>
1290
+ </tr>
1291
+ </tbody>
1292
+ </table></div>
1293
+ </div>
1294
+ <hr>
1295
+ <div class="refsect2" title="G_TYPE_INSTANCE_GET_PRIVATE()">
1296
+ <a name="G-TYPE-INSTANCE-GET-PRIVATE:CAPS"></a><h3>G_TYPE_INSTANCE_GET_PRIVATE()</h3>
1297
+ <pre class="programlisting">#define G_TYPE_INSTANCE_GET_PRIVATE(instance, g_type, c_type) ((c_type*) g_type_instance_get_private ((GTypeInstance*) (instance), (g_type)))
1298
+ </pre>
1299
+ <p>
1300
+ Gets the private structure for a particular type.
1301
+ The private structure must have been registered in the
1302
+ class_init function with <a class="link" href="gobject-Type-Information.html#g-type-class-add-private" title="g_type_class_add_private ()"><code class="function">g_type_class_add_private()</code></a>.
1303
+ </p>
1304
+ <p>
1305
+ This macro should only be used in type implementations.
1306
+ </p>
1307
+ <div class="variablelist"><table border="0">
1308
+ <col align="left" valign="top">
1309
+ <tbody>
1310
+ <tr>
1311
+ <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td>
1312
+ <td>the instance of a type deriving from <em class="parameter"><code>private_type</code></em>.
1313
+ </td>
1314
+ </tr>
1315
+ <tr>
1316
+ <td><p><span class="term"><em class="parameter"><code>g_type</code></em> :</span></p></td>
1317
+ <td>the type identifying which private data to retrieve.
1318
+ </td>
1319
+ </tr>
1320
+ <tr>
1321
+ <td><p><span class="term"><em class="parameter"><code>c_type</code></em> :</span></p></td>
1322
+ <td>The C type for the private structure.
1323
+ </td>
1324
+ </tr>
1325
+ <tr>
1326
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1327
+ <td> a pointer to the private data structure.
1328
+ </td>
1329
+ </tr>
1330
+ </tbody>
1331
+ </table></div>
1332
+ <p class="since">Since 2.4</p>
1333
+ </div>
1334
+ <hr>
1335
+ <div class="refsect2" title="G_TYPE_CHECK_INSTANCE()">
1336
+ <a name="G-TYPE-CHECK-INSTANCE:CAPS"></a><h3>G_TYPE_CHECK_INSTANCE()</h3>
1337
+ <pre class="programlisting">#define G_TYPE_CHECK_INSTANCE(instance) (_G_TYPE_CHI ((GTypeInstance*) (instance)))
1338
+ </pre>
1339
+ <p>
1340
+ Checks if <em class="parameter"><code>instance</code></em> is a valid <a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance"><span class="type">GTypeInstance</span></a> structure,
1341
+ otherwise issues a warning and returns <a href="./../glib/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.
1342
+ </p>
1343
+ <p>
1344
+ This macro should only be used in type implementations.
1345
+ </p>
1346
+ <div class="variablelist"><table border="0">
1347
+ <col align="left" valign="top">
1348
+ <tbody>
1349
+ <tr>
1350
+ <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td>
1351
+ <td>Location of a <a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance"><span class="type">GTypeInstance</span></a> structure.
1352
+ </td>
1353
+ </tr>
1354
+ <tr>
1355
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1356
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
1357
+ </td>
1358
+ </tr>
1359
+ </tbody>
1360
+ </table></div>
1361
+ </div>
1362
+ <hr>
1363
+ <div class="refsect2" title="G_TYPE_CHECK_INSTANCE_CAST()">
1364
+ <a name="G-TYPE-CHECK-INSTANCE-CAST:CAPS"></a><h3>G_TYPE_CHECK_INSTANCE_CAST()</h3>
1365
+ <pre class="programlisting">#define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type) (_G_TYPE_CIC ((instance), (g_type), c_type))
1366
+ </pre>
1367
+ <p>
1368
+ Checks that <em class="parameter"><code>instance</code></em> is an instance of the type identified by <em class="parameter"><code>g_type</code></em>
1369
+ and issues a warning if this is not the case. Returns <em class="parameter"><code>instance</code></em> casted
1370
+ to a pointer to <em class="parameter"><code>c_type</code></em>.
1371
+ </p>
1372
+ <p>
1373
+ This macro should only be used in type implementations.
1374
+ </p>
1375
+ <div class="variablelist"><table border="0">
1376
+ <col align="left" valign="top">
1377
+ <tbody>
1378
+ <tr>
1379
+ <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td>
1380
+ <td>Location of a <a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance"><span class="type">GTypeInstance</span></a> structure.
1381
+ </td>
1382
+ </tr>
1383
+ <tr>
1384
+ <td><p><span class="term"><em class="parameter"><code>g_type</code></em> :</span></p></td>
1385
+ <td>The type to be returned.
1386
+ </td>
1387
+ </tr>
1388
+ <tr>
1389
+ <td><p><span class="term"><em class="parameter"><code>c_type</code></em> :</span></p></td>
1390
+ <td>The corresponding C type of <em class="parameter"><code>g_type</code></em>.
1391
+ </td>
1392
+ </tr>
1393
+ </tbody>
1394
+ </table></div>
1395
+ </div>
1396
+ <hr>
1397
+ <div class="refsect2" title="G_TYPE_CHECK_INSTANCE_TYPE()">
1398
+ <a name="G-TYPE-CHECK-INSTANCE-TYPE:CAPS"></a><h3>G_TYPE_CHECK_INSTANCE_TYPE()</h3>
1399
+ <pre class="programlisting">#define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type) (_G_TYPE_CIT ((instance), (g_type)))
1400
+ </pre>
1401
+ <p>
1402
+ Checks if <em class="parameter"><code>instance</code></em> is an instance of the type identified by <em class="parameter"><code>g_type</code></em>.
1403
+ </p>
1404
+ <p>
1405
+ This macro should only be used in type implementations.
1406
+ </p>
1407
+ <div class="variablelist"><table border="0">
1408
+ <col align="left" valign="top">
1409
+ <tbody>
1410
+ <tr>
1411
+ <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td>
1412
+ <td>Location of a <a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance"><span class="type">GTypeInstance</span></a> structure.
1413
+ </td>
1414
+ </tr>
1415
+ <tr>
1416
+ <td><p><span class="term"><em class="parameter"><code>g_type</code></em> :</span></p></td>
1417
+ <td>The type to be checked
1418
+ </td>
1419
+ </tr>
1420
+ <tr>
1421
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1422
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
1423
+ </td>
1424
+ </tr>
1425
+ </tbody>
1426
+ </table></div>
1427
+ </div>
1428
+ <hr>
1429
+ <div class="refsect2" title="G_TYPE_CHECK_CLASS_CAST()">
1430
+ <a name="G-TYPE-CHECK-CLASS-CAST:CAPS"></a><h3>G_TYPE_CHECK_CLASS_CAST()</h3>
1431
+ <pre class="programlisting">#define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type) (_G_TYPE_CCC ((g_class), (g_type), c_type))
1432
+ </pre>
1433
+ <p>
1434
+ Checks that <em class="parameter"><code>g_class</code></em> is a class structure of the type identified by <em class="parameter"><code>g_type</code></em>
1435
+ and issues a warning if this is not the case. Returns <em class="parameter"><code>g_class</code></em> casted
1436
+ to a pointer to <em class="parameter"><code>c_type</code></em>.
1437
+ </p>
1438
+ <p>
1439
+ This macro should only be used in type implementations.
1440
+ </p>
1441
+ <div class="variablelist"><table border="0">
1442
+ <col align="left" valign="top">
1443
+ <tbody>
1444
+ <tr>
1445
+ <td><p><span class="term"><em class="parameter"><code>g_class</code></em> :</span></p></td>
1446
+ <td>Location of a <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure.
1447
+ </td>
1448
+ </tr>
1449
+ <tr>
1450
+ <td><p><span class="term"><em class="parameter"><code>g_type</code></em> :</span></p></td>
1451
+ <td>The type to be returned.
1452
+ </td>
1453
+ </tr>
1454
+ <tr>
1455
+ <td><p><span class="term"><em class="parameter"><code>c_type</code></em> :</span></p></td>
1456
+ <td>The corresponding C type of class structure of <em class="parameter"><code>g_type</code></em>.
1457
+ </td>
1458
+ </tr>
1459
+ </tbody>
1460
+ </table></div>
1461
+ </div>
1462
+ <hr>
1463
+ <div class="refsect2" title="G_TYPE_CHECK_CLASS_TYPE()">
1464
+ <a name="G-TYPE-CHECK-CLASS-TYPE:CAPS"></a><h3>G_TYPE_CHECK_CLASS_TYPE()</h3>
1465
+ <pre class="programlisting">#define G_TYPE_CHECK_CLASS_TYPE(g_class, g_type) (_G_TYPE_CCT ((g_class), (g_type)))
1466
+ </pre>
1467
+ <p>
1468
+ Checks if <em class="parameter"><code>g_class</code></em> is a class structure of the type identified by
1469
+ <em class="parameter"><code>g_type</code></em>.
1470
+ </p>
1471
+ <p>
1472
+ This macro should only be used in type implementations.
1473
+ </p>
1474
+ <div class="variablelist"><table border="0">
1475
+ <col align="left" valign="top">
1476
+ <tbody>
1477
+ <tr>
1478
+ <td><p><span class="term"><em class="parameter"><code>g_class</code></em> :</span></p></td>
1479
+ <td>Location of a <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure.
1480
+ </td>
1481
+ </tr>
1482
+ <tr>
1483
+ <td><p><span class="term"><em class="parameter"><code>g_type</code></em> :</span></p></td>
1484
+ <td>The type to be checked.
1485
+ </td>
1486
+ </tr>
1487
+ <tr>
1488
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1489
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
1490
+ </td>
1491
+ </tr>
1492
+ </tbody>
1493
+ </table></div>
1494
+ </div>
1495
+ <hr>
1496
+ <div class="refsect2" title="G_TYPE_CHECK_VALUE()">
1497
+ <a name="G-TYPE-CHECK-VALUE:CAPS"></a><h3>G_TYPE_CHECK_VALUE()</h3>
1498
+ <pre class="programlisting">#define G_TYPE_CHECK_VALUE(value) (_G_TYPE_CHV ((value)))
1499
+ </pre>
1500
+ <p>
1501
+ Checks if <em class="parameter"><code>value</code></em> has been initialized to hold values
1502
+ of a value type.
1503
+ </p>
1504
+ <p>
1505
+ This macro should only be used in type implementations.
1506
+ </p>
1507
+ <div class="variablelist"><table border="0">
1508
+ <col align="left" valign="top">
1509
+ <tbody>
1510
+ <tr>
1511
+ <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1512
+ <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a>
1513
+ </td>
1514
+ </tr>
1515
+ <tr>
1516
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1517
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
1518
+ </td>
1519
+ </tr>
1520
+ </tbody>
1521
+ </table></div>
1522
+ </div>
1523
+ <hr>
1524
+ <div class="refsect2" title="G_TYPE_CHECK_VALUE_TYPE()">
1525
+ <a name="G-TYPE-CHECK-VALUE-TYPE:CAPS"></a><h3>G_TYPE_CHECK_VALUE_TYPE()</h3>
1526
+ <pre class="programlisting">#define G_TYPE_CHECK_VALUE_TYPE(value, g_type) (_G_TYPE_CVH ((value), (g_type)))
1527
+ </pre>
1528
+ <p>
1529
+ Checks if <em class="parameter"><code>value</code></em> has been initialized to hold values
1530
+ of type <em class="parameter"><code>g_type</code></em>.
1531
+ </p>
1532
+ <p>
1533
+ This macro should only be used in type implementations.
1534
+ </p>
1535
+ <div class="variablelist"><table border="0">
1536
+ <col align="left" valign="top">
1537
+ <tbody>
1538
+ <tr>
1539
+ <td><p><span class="term"><em class="parameter"><code>value</code></em> :</span></p></td>
1540
+ <td>a <a class="link" href="gobject-Generic-values.html#GValue" title="GValue"><span class="type">GValue</span></a>
1541
+ </td>
1542
+ </tr>
1543
+ <tr>
1544
+ <td><p><span class="term"><em class="parameter"><code>g_type</code></em> :</span></p></td>
1545
+ <td>The type to be checked.
1546
+ </td>
1547
+ </tr>
1548
+ <tr>
1549
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1550
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.
1551
+ </td>
1552
+ </tr>
1553
+ </tbody>
1554
+ </table></div>
1555
+ </div>
1556
+ <hr>
1557
+ <div class="refsect2" title="G_TYPE_FLAG_RESERVED_ID_BIT">
1558
+ <a name="G-TYPE-FLAG-RESERVED-ID-BIT:CAPS"></a><h3>G_TYPE_FLAG_RESERVED_ID_BIT</h3>
1559
+ <pre class="programlisting">#define G_TYPE_FLAG_RESERVED_ID_BIT ((GType) (1 &lt;&lt; 0))
1560
+ </pre>
1561
+ <p>
1562
+ A bit in the type number that's supposed to be left untouched.
1563
+ </p>
1564
+ </div>
1565
+ <hr>
1566
+ <div class="refsect2" title="g_type_init ()">
1567
+ <a name="g-type-init"></a><h3>g_type_init ()</h3>
1568
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_init (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
1569
+ <p>
1570
+ Prior to any use of the type system, <a class="link" href="gobject-Type-Information.html#g-type-init" title="g_type_init ()"><code class="function">g_type_init()</code></a> has to be called
1571
+ to initialize the type system and assorted other code portions
1572
+ (such as the various fundamental type implementations or the signal
1573
+ system).
1574
+ </p>
1575
+ <p>
1576
+ Since version 2.24 this also initializes the thread system
1577
+ </p>
1578
+ </div>
1579
+ <hr>
1580
+ <div class="refsect2" title="enum GTypeDebugFlags">
1581
+ <a name="GTypeDebugFlags"></a><h3>enum GTypeDebugFlags</h3>
1582
+ <pre class="programlisting">typedef enum /*&lt; skip &gt;*/
1583
+ {
1584
+ G_TYPE_DEBUG_NONE = 0,
1585
+ G_TYPE_DEBUG_OBJECTS = 1 &lt;&lt; 0,
1586
+ G_TYPE_DEBUG_SIGNALS = 1 &lt;&lt; 1,
1587
+ G_TYPE_DEBUG_MASK = 0x03
1588
+ } GTypeDebugFlags;
1589
+ </pre>
1590
+ <p>
1591
+ The <span class="type">GTypeDebugFlags</span> enumeration values can be passed to
1592
+ <a class="link" href="gobject-Type-Information.html#g-type-init-with-debug-flags" title="g_type_init_with_debug_flags ()"><code class="function">g_type_init_with_debug_flags()</code></a> to trigger debugging messages during runtime.
1593
+ Note that the messages can also be triggered by setting the
1594
+ <code class="envar">GOBJECT_DEBUG</code> environment variable to a ':'-separated list of
1595
+ "objects" and "signals".
1596
+ </p>
1597
+ <div class="variablelist"><table border="0">
1598
+ <col align="left" valign="top">
1599
+ <tbody>
1600
+ <tr>
1601
+ <td><p><a name="G-TYPE-DEBUG-NONE:CAPS"></a><span class="term"><code class="literal">G_TYPE_DEBUG_NONE</code></span></p></td>
1602
+ <td>Print no messages.
1603
+ </td>
1604
+ </tr>
1605
+ <tr>
1606
+ <td><p><a name="G-TYPE-DEBUG-OBJECTS:CAPS"></a><span class="term"><code class="literal">G_TYPE_DEBUG_OBJECTS</code></span></p></td>
1607
+ <td>Print messages about object bookkeeping.
1608
+ </td>
1609
+ </tr>
1610
+ <tr>
1611
+ <td><p><a name="G-TYPE-DEBUG-SIGNALS:CAPS"></a><span class="term"><code class="literal">G_TYPE_DEBUG_SIGNALS</code></span></p></td>
1612
+ <td>Print messages about signal emissions.
1613
+ </td>
1614
+ </tr>
1615
+ <tr>
1616
+ <td><p><a name="G-TYPE-DEBUG-MASK:CAPS"></a><span class="term"><code class="literal">G_TYPE_DEBUG_MASK</code></span></p></td>
1617
+ <td>Mask covering all debug flags.
1618
+ </td>
1619
+ </tr>
1620
+ </tbody>
1621
+ </table></div>
1622
+ </div>
1623
+ <hr>
1624
+ <div class="refsect2" title="g_type_init_with_debug_flags ()">
1625
+ <a name="g-type-init-with-debug-flags"></a><h3>g_type_init_with_debug_flags ()</h3>
1626
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_init_with_debug_flags (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeDebugFlags" title="enum GTypeDebugFlags"><span class="type">GTypeDebugFlags</span></a> debug_flags</code></em>);</pre>
1627
+ <p>
1628
+ Similar to <a class="link" href="gobject-Type-Information.html#g-type-init" title="g_type_init ()"><code class="function">g_type_init()</code></a>, but additionally sets debug flags.
1629
+ </p>
1630
+ <div class="variablelist"><table border="0">
1631
+ <col align="left" valign="top">
1632
+ <tbody><tr>
1633
+ <td><p><span class="term"><em class="parameter"><code>debug_flags</code></em> :</span></p></td>
1634
+ <td>Bitwise combination of <a class="link" href="gobject-Type-Information.html#GTypeDebugFlags" title="enum GTypeDebugFlags"><span class="type">GTypeDebugFlags</span></a> values for
1635
+ debugging purposes.
1636
+ </td>
1637
+ </tr></tbody>
1638
+ </table></div>
1639
+ </div>
1640
+ <hr>
1641
+ <div class="refsect2" title="g_type_name ()">
1642
+ <a name="g-type-name"></a><h3>g_type_name ()</h3>
1643
+ <pre class="programlisting">const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a>* g_type_name (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);</pre>
1644
+ <p>
1645
+ Get the unique name that is assigned to a type ID. Note that this
1646
+ function (like all other GType API) cannot cope with invalid type
1647
+ IDs. <a class="link" href="gobject-Type-Information.html#G-TYPE-INVALID:CAPS" title="G_TYPE_INVALID"><code class="literal">G_TYPE_INVALID</code></a> may be passed to this function, as may be any
1648
+ other validly registered type ID, but randomized type IDs should
1649
+ not be passed in and will most likely lead to a crash.
1650
+ </p>
1651
+ <div class="variablelist"><table border="0">
1652
+ <col align="left" valign="top">
1653
+ <tbody>
1654
+ <tr>
1655
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
1656
+ <td>Type to return name for.
1657
+ </td>
1658
+ </tr>
1659
+ <tr>
1660
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1661
+ <td> Static type name or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.
1662
+ </td>
1663
+ </tr>
1664
+ </tbody>
1665
+ </table></div>
1666
+ </div>
1667
+ <hr>
1668
+ <div class="refsect2" title="g_type_qname ()">
1669
+ <a name="g-type-qname"></a><h3>g_type_qname ()</h3>
1670
+ <pre class="programlisting"><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="returnvalue">GQuark</span></a> g_type_qname (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);</pre>
1671
+ <p>
1672
+ Get the corresponding quark of the type IDs name.
1673
+ </p>
1674
+ <div class="variablelist"><table border="0">
1675
+ <col align="left" valign="top">
1676
+ <tbody>
1677
+ <tr>
1678
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
1679
+ <td>Type to return quark of type name for.
1680
+ </td>
1681
+ </tr>
1682
+ <tr>
1683
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1684
+ <td> The type names quark or 0.
1685
+ </td>
1686
+ </tr>
1687
+ </tbody>
1688
+ </table></div>
1689
+ </div>
1690
+ <hr>
1691
+ <div class="refsect2" title="g_type_from_name ()">
1692
+ <a name="g-type-from-name"></a><h3>g_type_from_name ()</h3>
1693
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> g_type_from_name (<em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
1694
+ <p>
1695
+ Lookup the type ID from a given type name, returning 0 if no type
1696
+ has been registered under this name (this is the preferred method
1697
+ to find out by name whether a specific type has been registered
1698
+ yet).
1699
+ </p>
1700
+ <div class="variablelist"><table border="0">
1701
+ <col align="left" valign="top">
1702
+ <tbody>
1703
+ <tr>
1704
+ <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
1705
+ <td>Type name to lookup.
1706
+ </td>
1707
+ </tr>
1708
+ <tr>
1709
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1710
+ <td> Corresponding type ID or 0.
1711
+ </td>
1712
+ </tr>
1713
+ </tbody>
1714
+ </table></div>
1715
+ </div>
1716
+ <hr>
1717
+ <div class="refsect2" title="g_type_parent ()">
1718
+ <a name="g-type-parent"></a><h3>g_type_parent ()</h3>
1719
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> g_type_parent (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);</pre>
1720
+ <p>
1721
+ Return the direct parent type of the passed in type. If the passed
1722
+ in type has no parent, i.e. is a fundamental type, 0 is returned.
1723
+ </p>
1724
+ <div class="variablelist"><table border="0">
1725
+ <col align="left" valign="top">
1726
+ <tbody>
1727
+ <tr>
1728
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
1729
+ <td>The derived type.
1730
+ </td>
1731
+ </tr>
1732
+ <tr>
1733
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1734
+ <td> The parent type.
1735
+ </td>
1736
+ </tr>
1737
+ </tbody>
1738
+ </table></div>
1739
+ </div>
1740
+ <hr>
1741
+ <div class="refsect2" title="g_type_depth ()">
1742
+ <a name="g-type-depth"></a><h3>g_type_depth ()</h3>
1743
+ <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a> g_type_depth (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);</pre>
1744
+ <p>
1745
+ Returns the length of the ancestry of the passed in type. This
1746
+ includes the type itself, so that e.g. a fundamental type has depth 1.
1747
+ </p>
1748
+ <div class="variablelist"><table border="0">
1749
+ <col align="left" valign="top">
1750
+ <tbody>
1751
+ <tr>
1752
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
1753
+ <td>A <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value.
1754
+ </td>
1755
+ </tr>
1756
+ <tr>
1757
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1758
+ <td> The depth of <em class="parameter"><code>type</code></em>.
1759
+ </td>
1760
+ </tr>
1761
+ </tbody>
1762
+ </table></div>
1763
+ </div>
1764
+ <hr>
1765
+ <div class="refsect2" title="g_type_next_base ()">
1766
+ <a name="g-type-next-base"></a><h3>g_type_next_base ()</h3>
1767
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> g_type_next_base (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> leaf_type</code></em>,
1768
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> root_type</code></em>);</pre>
1769
+ <p>
1770
+ Given a <em class="parameter"><code>leaf_type</code></em> and a <em class="parameter"><code>root_type</code></em> which is contained in its
1771
+ anchestry, return the type that <em class="parameter"><code>root_type</code></em> is the immediate parent
1772
+ of. In other words, this function determines the type that is
1773
+ derived directly from <em class="parameter"><code>root_type</code></em> which is also a base class of
1774
+ <em class="parameter"><code>leaf_type</code></em>. Given a root type and a leaf type, this function can
1775
+ be used to determine the types and order in which the leaf type is
1776
+ descended from the root type.
1777
+ </p>
1778
+ <div class="variablelist"><table border="0">
1779
+ <col align="left" valign="top">
1780
+ <tbody>
1781
+ <tr>
1782
+ <td><p><span class="term"><em class="parameter"><code>leaf_type</code></em> :</span></p></td>
1783
+ <td>Descendant of <em class="parameter"><code>root_type</code></em> and the type to be returned.
1784
+ </td>
1785
+ </tr>
1786
+ <tr>
1787
+ <td><p><span class="term"><em class="parameter"><code>root_type</code></em> :</span></p></td>
1788
+ <td>Immediate parent of the returned type.
1789
+ </td>
1790
+ </tr>
1791
+ <tr>
1792
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1793
+ <td> Immediate child of <em class="parameter"><code>root_type</code></em> and anchestor of <em class="parameter"><code>leaf_type</code></em>.
1794
+ </td>
1795
+ </tr>
1796
+ </tbody>
1797
+ </table></div>
1798
+ </div>
1799
+ <hr>
1800
+ <div class="refsect2" title="g_type_is_a ()">
1801
+ <a name="g-type-is-a"></a><h3>g_type_is_a ()</h3>
1802
+ <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> g_type_is_a (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>,
1803
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> is_a_type</code></em>);</pre>
1804
+ <p>
1805
+ If <em class="parameter"><code>is_a_type</code></em> is a derivable type, check whether <em class="parameter"><code>type</code></em> is a
1806
+ descendant of <em class="parameter"><code>is_a_type</code></em>. If <em class="parameter"><code>is_a_type</code></em> is an interface, check
1807
+ whether <em class="parameter"><code>type</code></em> conforms to it.
1808
+ </p>
1809
+ <div class="variablelist"><table border="0">
1810
+ <col align="left" valign="top">
1811
+ <tbody>
1812
+ <tr>
1813
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
1814
+ <td>Type to check anchestry for.
1815
+ </td>
1816
+ </tr>
1817
+ <tr>
1818
+ <td><p><span class="term"><em class="parameter"><code>is_a_type</code></em> :</span></p></td>
1819
+ <td>Possible anchestor of <em class="parameter"><code>type</code></em> or interface <em class="parameter"><code>type</code></em> could conform to.
1820
+ </td>
1821
+ </tr>
1822
+ <tr>
1823
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1824
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>type</code></em> is_a <em class="parameter"><code>is_a_type</code></em> holds true.
1825
+ </td>
1826
+ </tr>
1827
+ </tbody>
1828
+ </table></div>
1829
+ </div>
1830
+ <hr>
1831
+ <div class="refsect2" title="g_type_class_ref ()">
1832
+ <a name="g-type-class-ref"></a><h3>g_type_class_ref ()</h3>
1833
+ <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> g_type_class_ref (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);</pre>
1834
+ <p>
1835
+ Increments the reference count of the class structure belonging to
1836
+ <em class="parameter"><code>type</code></em>. This function will demand-create the class if it doesn't
1837
+ exist already.
1838
+ </p>
1839
+ <div class="variablelist"><table border="0">
1840
+ <col align="left" valign="top">
1841
+ <tbody>
1842
+ <tr>
1843
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
1844
+ <td>Type ID of a classed type.
1845
+ </td>
1846
+ </tr>
1847
+ <tr>
1848
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1849
+ <td> The <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure for the given type ID.
1850
+ </td>
1851
+ </tr>
1852
+ </tbody>
1853
+ </table></div>
1854
+ </div>
1855
+ <hr>
1856
+ <div class="refsect2" title="g_type_class_peek ()">
1857
+ <a name="g-type-class-peek"></a><h3>g_type_class_peek ()</h3>
1858
+ <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> g_type_class_peek (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);</pre>
1859
+ <p>
1860
+ This function is essentially the same as <a class="link" href="gobject-Type-Information.html#g-type-class-ref" title="g_type_class_ref ()"><code class="function">g_type_class_ref()</code></a>, except that
1861
+ the classes reference count isn't incremented. As a consequence, this function
1862
+ may return <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the class of the type passed in does not currently
1863
+ exist (hasn't been referenced before).
1864
+ </p>
1865
+ <div class="variablelist"><table border="0">
1866
+ <col align="left" valign="top">
1867
+ <tbody>
1868
+ <tr>
1869
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
1870
+ <td>Type ID of a classed type.
1871
+ </td>
1872
+ </tr>
1873
+ <tr>
1874
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1875
+ <td> The <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure for the given type ID or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
1876
+ if the class does not currently exist.
1877
+ </td>
1878
+ </tr>
1879
+ </tbody>
1880
+ </table></div>
1881
+ </div>
1882
+ <hr>
1883
+ <div class="refsect2" title="g_type_class_peek_static ()">
1884
+ <a name="g-type-class-peek-static"></a><h3>g_type_class_peek_static ()</h3>
1885
+ <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> g_type_class_peek_static (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);</pre>
1886
+ <p>
1887
+ A more efficient version of <a class="link" href="gobject-Type-Information.html#g-type-class-peek" title="g_type_class_peek ()"><code class="function">g_type_class_peek()</code></a> which works only for
1888
+ static types.
1889
+ </p>
1890
+ <div class="variablelist"><table border="0">
1891
+ <col align="left" valign="top">
1892
+ <tbody>
1893
+ <tr>
1894
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
1895
+ <td>Type ID of a classed type.
1896
+ </td>
1897
+ </tr>
1898
+ <tr>
1899
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1900
+ <td> The <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure for the given type ID or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
1901
+ if the class does not currently exist or is dynamically loaded.
1902
+ </td>
1903
+ </tr>
1904
+ </tbody>
1905
+ </table></div>
1906
+ <p class="since">Since 2.4</p>
1907
+ </div>
1908
+ <hr>
1909
+ <div class="refsect2" title="g_type_class_unref ()">
1910
+ <a name="g-type-class-unref"></a><h3>g_type_class_unref ()</h3>
1911
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_class_unref (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>);</pre>
1912
+ <p>
1913
+ Decrements the reference count of the class structure being passed in.
1914
+ Once the last reference count of a class has been released, classes
1915
+ may be finalized by the type system, so further dereferencing of a
1916
+ class pointer after <a class="link" href="gobject-Type-Information.html#g-type-class-unref" title="g_type_class_unref ()"><code class="function">g_type_class_unref()</code></a> are invalid.
1917
+ </p>
1918
+ <div class="variablelist"><table border="0">
1919
+ <col align="left" valign="top">
1920
+ <tbody><tr>
1921
+ <td><p><span class="term"><em class="parameter"><code>g_class</code></em> :</span></p></td>
1922
+ <td>The <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure to unreference.
1923
+ </td>
1924
+ </tr></tbody>
1925
+ </table></div>
1926
+ </div>
1927
+ <hr>
1928
+ <div class="refsect2" title="g_type_class_peek_parent ()">
1929
+ <a name="g-type-class-peek-parent"></a><h3>g_type_class_peek_parent ()</h3>
1930
+ <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> g_type_class_peek_parent (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>);</pre>
1931
+ <p>
1932
+ This is a convenience function often needed in class initializers.
1933
+ It returns the class structure of the immediate parent type of the
1934
+ class passed in. Since derived classes hold a reference count on
1935
+ their parent classes as long as they are instantiated, the returned
1936
+ class will always exist. This function is essentially equivalent
1937
+ to:
1938
+ </p>
1939
+ <p>
1940
+ </p>
1941
+ <pre class="programlisting">
1942
+ g_type_class_peek (g_type_parent (G_TYPE_FROM_CLASS (g_class)));
1943
+ </pre>
1944
+ <p>
1945
+ </p>
1946
+ <div class="variablelist"><table border="0">
1947
+ <col align="left" valign="top">
1948
+ <tbody>
1949
+ <tr>
1950
+ <td><p><span class="term"><em class="parameter"><code>g_class</code></em> :</span></p></td>
1951
+ <td>The <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure to retrieve the parent class for.
1952
+ </td>
1953
+ </tr>
1954
+ <tr>
1955
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1956
+ <td> The parent class of <em class="parameter"><code>g_class</code></em>.
1957
+ </td>
1958
+ </tr>
1959
+ </tbody>
1960
+ </table></div>
1961
+ </div>
1962
+ <hr>
1963
+ <div class="refsect2" title="g_type_class_add_private ()">
1964
+ <a name="g-type-class-add-private"></a><h3>g_type_class_add_private ()</h3>
1965
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_class_add_private (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>,
1966
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> private_size</code></em>);</pre>
1967
+ <p>
1968
+ Registers a private structure for an instantiatable type;
1969
+ when an object is allocated, the private structures for
1970
+ the type and all of its parent types are allocated
1971
+ sequentially in the same memory block as the public
1972
+ structures. This function should be called in the
1973
+ type's <code class="function">class_init()</code> function. The private structure can
1974
+ be retrieved using the <a class="link" href="gobject-Type-Information.html#G-TYPE-INSTANCE-GET-PRIVATE:CAPS" title="G_TYPE_INSTANCE_GET_PRIVATE()"><code class="function">G_TYPE_INSTANCE_GET_PRIVATE()</code></a> macro.
1975
+ The following example shows attaching a private structure
1976
+ <span class="structname">MyObjectPrivate</span> to an object
1977
+ <span class="structname">MyObject</span> defined in the standard GObject
1978
+ fashion.
1979
+ type's <code class="function">class_init()</code> function.
1980
+ </p>
1981
+ <p>
1982
+ </p>
1983
+ <div class="informalexample">
1984
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1985
+ <tbody>
1986
+ <tr>
1987
+ <td class="listing_lines" align="right"><pre>1
1988
+ 2
1989
+ 3
1990
+ 4
1991
+ 5
1992
+ 6
1993
+ 7
1994
+ 8
1995
+ 9
1996
+ 10
1997
+ 11
1998
+ 12
1999
+ 13
2000
+ 14
2001
+ 15
2002
+ 16
2003
+ 17
2004
+ 18
2005
+ 19
2006
+ 20
2007
+ 21
2008
+ 22
2009
+ 23
2010
+ 24
2011
+ 25
2012
+ 26
2013
+ 27
2014
+ 28
2015
+ 29
2016
+ 30
2017
+ 31
2018
+ 32
2019
+ 33
2020
+ 34</pre></td>
2021
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">typedef</span><span class="normal"> </span><span class="keyword">struct</span><span class="normal"> </span><span class="classname">_MyObject</span><span class="normal"> MyObject</span><span class="symbol">;</span>
2022
+ <span class="keyword">typedef</span><span class="normal"> </span><span class="keyword">struct</span><span class="normal"> </span><span class="classname">_MyObjectPrivate</span><span class="normal"> MyObjectPrivate</span><span class="symbol">;</span>
2023
+
2024
+ <span class="keyword">struct</span><span class="normal"> </span><span class="classname">_MyObject</span><span class="normal"> </span><span class="cbracket">{</span>
2025
+ <span class="normal"> </span><span class="usertype">GObject</span><span class="normal"> parent</span><span class="symbol">;</span>
2026
+
2027
+ <span class="normal"> </span><span class="usertype">MyObjectPrivate</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">priv</span><span class="symbol">;</span>
2028
+ <span class="cbracket">}</span><span class="symbol">;</span>
2029
+
2030
+ <span class="keyword">struct</span><span class="normal"> </span><span class="classname">_MyObjectPrivate</span><span class="normal"> </span><span class="cbracket">{</span>
2031
+ <span class="normal"> </span><span class="type">int</span><span class="normal"> some_field</span><span class="symbol">;</span>
2032
+ <span class="cbracket">}</span><span class="symbol">;</span>
2033
+
2034
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
2035
+ <span class="function">my_object_class_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">MyObjectClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">klass</span><span class="symbol">)</span>
2036
+ <span class="cbracket">{</span>
2037
+ <span class="normal"> </span><span class="function"><a href="gobject-Type-Information.html#g-type-class-add-private">g_type_class_add_private</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">klass</span><span class="symbol">,</span><span class="normal"> </span><span class="keyword">sizeof</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">MyObjectPrivate</span><span class="symbol">));</span>
2038
+ <span class="cbracket">}</span>
2039
+
2040
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
2041
+ <span class="function">my_object_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">MyObject</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">my_object</span><span class="symbol">)</span>
2042
+ <span class="cbracket">{</span>
2043
+ <span class="normal"> my_object</span><span class="symbol">-&gt;</span><span class="normal">priv </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="gobject-Type-Information.html#G-TYPE-INSTANCE-GET-PRIVATE:CAPS">G_TYPE_INSTANCE_GET_PRIVATE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">my_object</span><span class="symbol">,</span>
2044
+ <span class="normal"> MY_TYPE_OBJECT</span><span class="symbol">,</span>
2045
+ <span class="normal"> MyObjectPrivate</span><span class="symbol">);</span>
2046
+ <span class="cbracket">}</span>
2047
+
2048
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">int</span>
2049
+ <span class="function">my_object_get_some_field</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">MyObject</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">my_object</span><span class="symbol">)</span>
2050
+ <span class="cbracket">{</span>
2051
+ <span class="normal"> </span><span class="usertype">MyObjectPrivate</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">priv </span><span class="symbol">=</span><span class="normal"> my_object</span><span class="symbol">-&gt;</span><span class="normal">priv</span><span class="symbol">;</span>
2052
+
2053
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> priv</span><span class="symbol">-&gt;</span><span class="normal">some_field</span><span class="symbol">;</span>
2054
+ <span class="cbracket">}</span></pre></td>
2055
+ </tr>
2056
+ </tbody>
2057
+ </table>
2058
+ </div>
2059
+
2060
+ <p>
2061
+ </p>
2062
+ <div class="variablelist"><table border="0">
2063
+ <col align="left" valign="top">
2064
+ <tbody>
2065
+ <tr>
2066
+ <td><p><span class="term"><em class="parameter"><code>g_class</code></em> :</span></p></td>
2067
+ <td>class structure for an instantiatable type
2068
+ </td>
2069
+ </tr>
2070
+ <tr>
2071
+ <td><p><span class="term"><em class="parameter"><code>private_size</code></em> :</span></p></td>
2072
+ <td>size of private structure.
2073
+ </td>
2074
+ </tr>
2075
+ </tbody>
2076
+ </table></div>
2077
+ <p class="since">Since 2.4</p>
2078
+ </div>
2079
+ <hr>
2080
+ <div class="refsect2" title="g_type_add_class_private ()">
2081
+ <a name="g-type-add-class-private"></a><h3>g_type_add_class_private ()</h3>
2082
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_add_class_private (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> class_type</code></em>,
2083
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gsize"><span class="type">gsize</span></a> private_size</code></em>);</pre>
2084
+ <p>
2085
+ Registers a private class structure for a classed type;
2086
+ when the class is allocated, the private structures for
2087
+ the class and all of its parent types are allocated
2088
+ sequentially in the same memory block as the public
2089
+ structures. This function should be called in the
2090
+ type's <code class="function">get_type()</code> function after the type is registered.
2091
+ The private structure can be retrieved using the
2092
+ <code class="function">G_TYPE_CLASS_GET_PRIVATE()</code> macro.
2093
+ </p>
2094
+ <div class="variablelist"><table border="0">
2095
+ <col align="left" valign="top">
2096
+ <tbody>
2097
+ <tr>
2098
+ <td><p><span class="term"><em class="parameter"><code>class_type</code></em> :</span></p></td>
2099
+ <td>GType of an classed type.
2100
+ </td>
2101
+ </tr>
2102
+ <tr>
2103
+ <td><p><span class="term"><em class="parameter"><code>private_size</code></em> :</span></p></td>
2104
+ <td>size of private structure.
2105
+ </td>
2106
+ </tr>
2107
+ </tbody>
2108
+ </table></div>
2109
+ <p class="since">Since 2.24</p>
2110
+ </div>
2111
+ <hr>
2112
+ <div class="refsect2" title="g_type_interface_peek ()">
2113
+ <a name="g-type-interface-peek"></a><h3>g_type_interface_peek ()</h3>
2114
+ <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> g_type_interface_peek (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> instance_class</code></em>,
2115
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> iface_type</code></em>);</pre>
2116
+ <p>
2117
+ Returns the <a class="link" href="gobject-Type-Information.html#GTypeInterface" title="GTypeInterface"><span class="type">GTypeInterface</span></a> structure of an interface to which the
2118
+ passed in class conforms.
2119
+ </p>
2120
+ <div class="variablelist"><table border="0">
2121
+ <col align="left" valign="top">
2122
+ <tbody>
2123
+ <tr>
2124
+ <td><p><span class="term"><em class="parameter"><code>instance_class</code></em> :</span></p></td>
2125
+ <td>A <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure.
2126
+ </td>
2127
+ </tr>
2128
+ <tr>
2129
+ <td><p><span class="term"><em class="parameter"><code>iface_type</code></em> :</span></p></td>
2130
+ <td>An interface ID which this class conforms to.
2131
+ </td>
2132
+ </tr>
2133
+ <tr>
2134
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2135
+ <td> The GTypeInterface structure of iface_type if implemented
2136
+ by <em class="parameter"><code>instance_class</code></em>, <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise
2137
+ </td>
2138
+ </tr>
2139
+ </tbody>
2140
+ </table></div>
2141
+ </div>
2142
+ <hr>
2143
+ <div class="refsect2" title="g_type_interface_peek_parent ()">
2144
+ <a name="g-type-interface-peek-parent"></a><h3>g_type_interface_peek_parent ()</h3>
2145
+ <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> g_type_interface_peek_parent (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>);</pre>
2146
+ <p>
2147
+ Returns the corresponding <a class="link" href="gobject-Type-Information.html#GTypeInterface" title="GTypeInterface"><span class="type">GTypeInterface</span></a> structure of the parent type
2148
+ of the instance type to which <em class="parameter"><code>g_iface</code></em> belongs. This is useful when
2149
+ deriving the implementation of an interface from the parent type and
2150
+ then possibly overriding some methods.
2151
+ </p>
2152
+ <div class="variablelist"><table border="0">
2153
+ <col align="left" valign="top">
2154
+ <tbody>
2155
+ <tr>
2156
+ <td><p><span class="term"><em class="parameter"><code>g_iface</code></em> :</span></p></td>
2157
+ <td>A <a class="link" href="gobject-Type-Information.html#GTypeInterface" title="GTypeInterface"><span class="type">GTypeInterface</span></a> structure.
2158
+ </td>
2159
+ </tr>
2160
+ <tr>
2161
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2162
+ <td> The corresponding <a class="link" href="gobject-Type-Information.html#GTypeInterface" title="GTypeInterface"><span class="type">GTypeInterface</span></a> structure of the parent
2163
+ type of the instance type to which <em class="parameter"><code>g_iface</code></em> belongs, or
2164
+ <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the parent type doesn't conform to the interface.
2165
+ </td>
2166
+ </tr>
2167
+ </tbody>
2168
+ </table></div>
2169
+ </div>
2170
+ <hr>
2171
+ <div class="refsect2" title="g_type_default_interface_ref ()">
2172
+ <a name="g-type-default-interface-ref"></a><h3>g_type_default_interface_ref ()</h3>
2173
+ <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> g_type_default_interface_ref (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> g_type</code></em>);</pre>
2174
+ <p>
2175
+ Increments the reference count for the interface type <em class="parameter"><code>g_type</code></em>,
2176
+ and returns the default interface vtable for the type.
2177
+ </p>
2178
+ <p>
2179
+ If the type is not currently in use, then the default vtable
2180
+ for the type will be created and initalized by calling
2181
+ the base interface init and default vtable init functions for
2182
+ the type (the @<em class="structfield"><code>base_init</code></em>
2183
+ and <em class="structfield"><code>class_init</code></em> members of <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a>).
2184
+ Calling <a class="link" href="gobject-Type-Information.html#g-type-default-interface-ref" title="g_type_default_interface_ref ()"><code class="function">g_type_default_interface_ref()</code></a> is useful when you
2185
+ want to make sure that signals and properties for an interface
2186
+ have been installed.
2187
+ </p>
2188
+ <div class="variablelist"><table border="0">
2189
+ <col align="left" valign="top">
2190
+ <tbody>
2191
+ <tr>
2192
+ <td><p><span class="term"><em class="parameter"><code>g_type</code></em> :</span></p></td>
2193
+ <td>an interface type
2194
+ </td>
2195
+ </tr>
2196
+ <tr>
2197
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2198
+ <td> the default vtable for the interface; call
2199
+ <a class="link" href="gobject-Type-Information.html#g-type-default-interface-unref" title="g_type_default_interface_unref ()"><code class="function">g_type_default_interface_unref()</code></a> when you are done using
2200
+ the interface.
2201
+ </td>
2202
+ </tr>
2203
+ </tbody>
2204
+ </table></div>
2205
+ <p class="since">Since 2.4</p>
2206
+ </div>
2207
+ <hr>
2208
+ <div class="refsect2" title="g_type_default_interface_peek ()">
2209
+ <a name="g-type-default-interface-peek"></a><h3>g_type_default_interface_peek ()</h3>
2210
+ <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> g_type_default_interface_peek (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> g_type</code></em>);</pre>
2211
+ <p>
2212
+ If the interface type <em class="parameter"><code>g_type</code></em> is currently in use, returns its
2213
+ default interface vtable.
2214
+ </p>
2215
+ <div class="variablelist"><table border="0">
2216
+ <col align="left" valign="top">
2217
+ <tbody>
2218
+ <tr>
2219
+ <td><p><span class="term"><em class="parameter"><code>g_type</code></em> :</span></p></td>
2220
+ <td>an interface type
2221
+ </td>
2222
+ </tr>
2223
+ <tr>
2224
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2225
+ <td> the default vtable for the interface, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
2226
+ if the type is not currently in use.
2227
+ </td>
2228
+ </tr>
2229
+ </tbody>
2230
+ </table></div>
2231
+ <p class="since">Since 2.4</p>
2232
+ </div>
2233
+ <hr>
2234
+ <div class="refsect2" title="g_type_default_interface_unref ()">
2235
+ <a name="g-type-default-interface-unref"></a><h3>g_type_default_interface_unref ()</h3>
2236
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_default_interface_unref (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>);</pre>
2237
+ <p>
2238
+ Decrements the reference count for the type corresponding to the
2239
+ interface default vtable <em class="parameter"><code>g_iface</code></em>. If the type is dynamic, then
2240
+ when no one is using the interface and all references have
2241
+ been released, the finalize function for the interface's default
2242
+ vtable (the <em class="structfield"><code>class_finalize</code></em> member of
2243
+ <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a>) will be called.
2244
+ </p>
2245
+ <div class="variablelist"><table border="0">
2246
+ <col align="left" valign="top">
2247
+ <tbody><tr>
2248
+ <td><p><span class="term"><em class="parameter"><code>g_iface</code></em> :</span></p></td>
2249
+ <td>the default vtable structure for a interface, as
2250
+ returned by <a class="link" href="gobject-Type-Information.html#g-type-default-interface-ref" title="g_type_default_interface_ref ()"><code class="function">g_type_default_interface_ref()</code></a>
2251
+ </td>
2252
+ </tr></tbody>
2253
+ </table></div>
2254
+ <p class="since">Since 2.4</p>
2255
+ </div>
2256
+ <hr>
2257
+ <div class="refsect2" title="g_type_children ()">
2258
+ <a name="g-type-children"></a><h3>g_type_children ()</h3>
2259
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a>* g_type_children (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>,
2260
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_children</code></em>);</pre>
2261
+ <p>
2262
+ Return a newly allocated and 0-terminated array of type IDs, listing the
2263
+ child types of <em class="parameter"><code>type</code></em>. The return value has to be <a href="./../glib/glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>ed after use.
2264
+ </p>
2265
+ <div class="variablelist"><table border="0">
2266
+ <col align="left" valign="top">
2267
+ <tbody>
2268
+ <tr>
2269
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
2270
+ <td>The parent type.
2271
+ </td>
2272
+ </tr>
2273
+ <tr>
2274
+ <td><p><span class="term"><em class="parameter"><code>n_children</code></em> :</span></p></td>
2275
+ <td>Optional <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pointer to contain the number of child types.
2276
+ </td>
2277
+ </tr>
2278
+ <tr>
2279
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2280
+ <td> Newly allocated and 0-terminated array of child types.
2281
+ </td>
2282
+ </tr>
2283
+ </tbody>
2284
+ </table></div>
2285
+ </div>
2286
+ <hr>
2287
+ <div class="refsect2" title="g_type_interfaces ()">
2288
+ <a name="g-type-interfaces"></a><h3>g_type_interfaces ()</h3>
2289
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a>* g_type_interfaces (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>,
2290
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_interfaces</code></em>);</pre>
2291
+ <p>
2292
+ Return a newly allocated and 0-terminated array of type IDs, listing the
2293
+ interface types that <em class="parameter"><code>type</code></em> conforms to. The return value has to be
2294
+ <a href="./../glib/glib/glib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>ed after use.
2295
+ </p>
2296
+ <div class="variablelist"><table border="0">
2297
+ <col align="left" valign="top">
2298
+ <tbody>
2299
+ <tr>
2300
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
2301
+ <td>The type to list interface types for.
2302
+ </td>
2303
+ </tr>
2304
+ <tr>
2305
+ <td><p><span class="term"><em class="parameter"><code>n_interfaces</code></em> :</span></p></td>
2306
+ <td>Optional <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> pointer to contain the number of
2307
+ interface types.
2308
+ </td>
2309
+ </tr>
2310
+ <tr>
2311
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2312
+ <td> Newly allocated and 0-terminated array of interface types.
2313
+ </td>
2314
+ </tr>
2315
+ </tbody>
2316
+ </table></div>
2317
+ </div>
2318
+ <hr>
2319
+ <div class="refsect2" title="g_type_interface_prerequisites ()">
2320
+ <a name="g-type-interface-prerequisites"></a><h3>g_type_interface_prerequisites ()</h3>
2321
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a>* g_type_interface_prerequisites (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> interface_type</code></em>,
2322
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_prerequisites</code></em>);</pre>
2323
+ <p>
2324
+ Returns the prerequisites of an interfaces type.
2325
+ </p>
2326
+ <div class="variablelist"><table border="0">
2327
+ <col align="left" valign="top">
2328
+ <tbody>
2329
+ <tr>
2330
+ <td><p><span class="term"><em class="parameter"><code>interface_type</code></em> :</span></p></td>
2331
+ <td>an interface type
2332
+ </td>
2333
+ </tr>
2334
+ <tr>
2335
+ <td><p><span class="term"><em class="parameter"><code>n_prerequisites</code></em> :</span></p></td>
2336
+ <td>location to return the number of prerequisites, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
2337
+ </td>
2338
+ </tr>
2339
+ <tr>
2340
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2341
+ <td> a newly-allocated zero-terminated array of <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> containing
2342
+ the prerequisites of <em class="parameter"><code>interface_type</code></em>
2343
+ </td>
2344
+ </tr>
2345
+ </tbody>
2346
+ </table></div>
2347
+ <p class="since">Since 2.2</p>
2348
+ </div>
2349
+ <hr>
2350
+ <div class="refsect2" title="g_type_set_qdata ()">
2351
+ <a name="g-type-set-qdata"></a><h3>g_type_set_qdata ()</h3>
2352
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_set_qdata (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>,
2353
+ <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>,
2354
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
2355
+ <p>
2356
+ Attaches arbitrary data to a type.
2357
+ </p>
2358
+ <div class="variablelist"><table border="0">
2359
+ <col align="left" valign="top">
2360
+ <tbody>
2361
+ <tr>
2362
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
2363
+ <td>a <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a>
2364
+ </td>
2365
+ </tr>
2366
+ <tr>
2367
+ <td><p><span class="term"><em class="parameter"><code>quark</code></em> :</span></p></td>
2368
+ <td>a <a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> id to identify the data
2369
+ </td>
2370
+ </tr>
2371
+ <tr>
2372
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
2373
+ <td>the data
2374
+ </td>
2375
+ </tr>
2376
+ </tbody>
2377
+ </table></div>
2378
+ </div>
2379
+ <hr>
2380
+ <div class="refsect2" title="g_type_get_qdata ()">
2381
+ <a name="g-type-get-qdata"></a><h3>g_type_get_qdata ()</h3>
2382
+ <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a> g_type_get_qdata (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>,
2383
+ <em class="parameter"><code><a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> quark</code></em>);</pre>
2384
+ <p>
2385
+ Obtains data which has previously been attached to <em class="parameter"><code>type</code></em>
2386
+ with <a class="link" href="gobject-Type-Information.html#g-type-set-qdata" title="g_type_set_qdata ()"><code class="function">g_type_set_qdata()</code></a>.
2387
+ </p>
2388
+ <div class="variablelist"><table border="0">
2389
+ <col align="left" valign="top">
2390
+ <tbody>
2391
+ <tr>
2392
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
2393
+ <td>a <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a>
2394
+ </td>
2395
+ </tr>
2396
+ <tr>
2397
+ <td><p><span class="term"><em class="parameter"><code>quark</code></em> :</span></p></td>
2398
+ <td>a <a href="./../glib/glib/glib-Quarks.html#GQuark"><span class="type">GQuark</span></a> id to identify the data
2399
+ </td>
2400
+ </tr>
2401
+ <tr>
2402
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2403
+ <td> the data, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no data was found
2404
+ </td>
2405
+ </tr>
2406
+ </tbody>
2407
+ </table></div>
2408
+ </div>
2409
+ <hr>
2410
+ <div class="refsect2" title="g_type_query ()">
2411
+ <a name="g-type-query"></a><h3>g_type_query ()</h3>
2412
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_query (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>,
2413
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeQuery" title="GTypeQuery"><span class="type">GTypeQuery</span></a> *query</code></em>);</pre>
2414
+ <p>
2415
+ Queries the type system for information about a specific type.
2416
+ This function will fill in a user-provided structure to hold
2417
+ type-specific information. If an invalid <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> is passed in, the
2418
+ <em class="parameter"><code>type</code></em> member of the <a class="link" href="gobject-Type-Information.html#GTypeQuery" title="GTypeQuery"><span class="type">GTypeQuery</span></a> is 0. All members filled into the
2419
+ <a class="link" href="gobject-Type-Information.html#GTypeQuery" title="GTypeQuery"><span class="type">GTypeQuery</span></a> structure should be considered constant and have to be
2420
+ left untouched.
2421
+ </p>
2422
+ <div class="variablelist"><table border="0">
2423
+ <col align="left" valign="top">
2424
+ <tbody>
2425
+ <tr>
2426
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
2427
+ <td>the <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value of a static, classed type.
2428
+ </td>
2429
+ </tr>
2430
+ <tr>
2431
+ <td><p><span class="term"><em class="parameter"><code>query</code></em> :</span></p></td>
2432
+ <td>A user provided structure that is filled in with constant values
2433
+ upon success.
2434
+ </td>
2435
+ </tr>
2436
+ </tbody>
2437
+ </table></div>
2438
+ </div>
2439
+ <hr>
2440
+ <div class="refsect2" title="GTypeQuery">
2441
+ <a name="GTypeQuery"></a><h3>GTypeQuery</h3>
2442
+ <pre class="programlisting">typedef struct {
2443
+ GType type;
2444
+ const gchar *type_name;
2445
+ guint class_size;
2446
+ guint instance_size;
2447
+ } GTypeQuery;
2448
+ </pre>
2449
+ <p>
2450
+ A structure holding information for a specific type. It is
2451
+ filled in by the <a class="link" href="gobject-Type-Information.html#g-type-query" title="g_type_query ()"><code class="function">g_type_query()</code></a> function.
2452
+ </p>
2453
+ <div class="variablelist"><table border="0">
2454
+ <col align="left" valign="top">
2455
+ <tbody>
2456
+ <tr>
2457
+ <td><p><span class="term"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> <em class="structfield"><code><a name="GTypeQuery.type"></a>type</code></em>;</span></p></td>
2458
+ <td>the <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value of the type.
2459
+ </td>
2460
+ </tr>
2461
+ <tr>
2462
+ <td><p><span class="term">const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GTypeQuery.type-name"></a>type_name</code></em>;</span></p></td>
2463
+ <td>the name of the type.
2464
+ </td>
2465
+ </tr>
2466
+ <tr>
2467
+ <td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GTypeQuery.class-size"></a>class_size</code></em>;</span></p></td>
2468
+ <td>the size of the class structure.
2469
+ </td>
2470
+ </tr>
2471
+ <tr>
2472
+ <td><p><span class="term"><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GTypeQuery.instance-size"></a>instance_size</code></em>;</span></p></td>
2473
+ <td>the size of the instance structure.
2474
+ </td>
2475
+ </tr>
2476
+ </tbody>
2477
+ </table></div>
2478
+ </div>
2479
+ <hr>
2480
+ <div class="refsect2" title="GBaseInitFunc ()">
2481
+ <a name="GBaseInitFunc"></a><h3>GBaseInitFunc ()</h3>
2482
+ <pre class="programlisting"><span class="returnvalue">void</span> (*GBaseInitFunc) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>);</pre>
2483
+ <p>
2484
+ A callback function used by the type system to do base initialization
2485
+ of the class structures of derived types. It is called as part of the
2486
+ initialization process of all derived classes and should reallocate
2487
+ or reset all dynamic class members copied over from the parent class.
2488
+ For example, class members (such as strings) that are not sufficiently
2489
+ handled by a plain memory copy of the parent class into the derived class
2490
+ have to be altered. See <a class="link" href="gobject-Type-Information.html#GClassInitFunc" title="GClassInitFunc ()"><code class="function">GClassInitFunc()</code></a> for a discussion of the class
2491
+ intialization process.
2492
+ </p>
2493
+ <div class="variablelist"><table border="0">
2494
+ <col align="left" valign="top">
2495
+ <tbody><tr>
2496
+ <td><p><span class="term"><em class="parameter"><code>g_class</code></em> :</span></p></td>
2497
+ <td>The <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure to initialize.
2498
+ </td>
2499
+ </tr></tbody>
2500
+ </table></div>
2501
+ </div>
2502
+ <hr>
2503
+ <div class="refsect2" title="GBaseFinalizeFunc ()">
2504
+ <a name="GBaseFinalizeFunc"></a><h3>GBaseFinalizeFunc ()</h3>
2505
+ <pre class="programlisting"><span class="returnvalue">void</span> (*GBaseFinalizeFunc) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>);</pre>
2506
+ <p>
2507
+ A callback function used by the type system to finalize those portions
2508
+ of a derived types class structure that were setup from the corresponding
2509
+ <a class="link" href="gobject-Type-Information.html#GBaseInitFunc" title="GBaseInitFunc ()"><code class="function">GBaseInitFunc()</code></a> function. Class finalization basically works the inverse
2510
+ way in which class intialization is performed.
2511
+ See <a class="link" href="gobject-Type-Information.html#GClassInitFunc" title="GClassInitFunc ()"><code class="function">GClassInitFunc()</code></a> for a discussion of the class intialization process.
2512
+ </p>
2513
+ <div class="variablelist"><table border="0">
2514
+ <col align="left" valign="top">
2515
+ <tbody><tr>
2516
+ <td><p><span class="term"><em class="parameter"><code>g_class</code></em> :</span></p></td>
2517
+ <td>The <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure to finalize.
2518
+ </td>
2519
+ </tr></tbody>
2520
+ </table></div>
2521
+ </div>
2522
+ <hr>
2523
+ <div class="refsect2" title="GClassInitFunc ()">
2524
+ <a name="GClassInitFunc"></a><h3>GClassInitFunc ()</h3>
2525
+ <pre class="programlisting"><span class="returnvalue">void</span> (*GClassInitFunc) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>,
2526
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> class_data</code></em>);</pre>
2527
+ <p>
2528
+ A callback function used by the type system to initialize the class
2529
+ of a specific type. This function should initialize all static class
2530
+ members.
2531
+ The initialization process of a class involves:
2532
+ </p>
2533
+ <div class="itemizedlist"><ul class="itemizedlist" type="disc">
2534
+ <li class="listitem"><p>
2535
+ 1 - Copying common members from the parent class over to the
2536
+ derived class structure.
2537
+ </p></li>
2538
+ <li class="listitem"><p>
2539
+ 2 - Zero initialization of the remaining members not copied
2540
+ over from the parent class.
2541
+ </p></li>
2542
+ <li class="listitem"><p>
2543
+ 3 - Invocation of the <a class="link" href="gobject-Type-Information.html#GBaseInitFunc" title="GBaseInitFunc ()"><code class="function">GBaseInitFunc()</code></a> initializers of all parent
2544
+ types and the class' type.
2545
+ </p></li>
2546
+ <li class="listitem"><p>
2547
+ 4 - Invocation of the class' <a class="link" href="gobject-Type-Information.html#GClassInitFunc" title="GClassInitFunc ()"><code class="function">GClassInitFunc()</code></a> initializer.
2548
+ </p></li>
2549
+ </ul></div>
2550
+ <p>
2551
+ Since derived classes are partially initialized through a memory copy
2552
+ of the parent class, the general rule is that <a class="link" href="gobject-Type-Information.html#GBaseInitFunc" title="GBaseInitFunc ()"><code class="function">GBaseInitFunc()</code></a> and
2553
+ <a class="link" href="gobject-Type-Information.html#GBaseFinalizeFunc" title="GBaseFinalizeFunc ()"><code class="function">GBaseFinalizeFunc()</code></a> should take care of necessary reinitialization
2554
+ and release of those class members that were introduced by the type
2555
+ that specified these <a class="link" href="gobject-Type-Information.html#GBaseInitFunc" title="GBaseInitFunc ()"><code class="function">GBaseInitFunc()</code></a>/<a class="link" href="gobject-Type-Information.html#GBaseFinalizeFunc" title="GBaseFinalizeFunc ()"><code class="function">GBaseFinalizeFunc()</code></a>.
2556
+ <a class="link" href="gobject-Type-Information.html#GClassInitFunc" title="GClassInitFunc ()"><code class="function">GClassInitFunc()</code></a> should only care about initializing static
2557
+ class members, while dynamic class members (such as allocated strings
2558
+ or reference counted resources) are better handled by a <a class="link" href="gobject-Type-Information.html#GBaseInitFunc" title="GBaseInitFunc ()"><code class="function">GBaseInitFunc()</code></a>
2559
+ for this type, so proper initialization of the dynamic class members
2560
+ is performed for class initialization of derived types as well.
2561
+ An example may help to correspond the intend of the different class
2562
+ initializers:
2563
+ </p>
2564
+ <p>
2565
+ </p>
2566
+ <div class="informalexample">
2567
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
2568
+ <tbody>
2569
+ <tr>
2570
+ <td class="listing_lines" align="right"><pre>1
2571
+ 2
2572
+ 3
2573
+ 4
2574
+ 5
2575
+ 6
2576
+ 7
2577
+ 8
2578
+ 9
2579
+ 10
2580
+ 11
2581
+ 12
2582
+ 13
2583
+ 14
2584
+ 15
2585
+ 16
2586
+ 17
2587
+ 18
2588
+ 19
2589
+ 20
2590
+ 21
2591
+ 22
2592
+ 23
2593
+ 24
2594
+ 25
2595
+ 26
2596
+ 27
2597
+ 28
2598
+ 29
2599
+ 30
2600
+ 31
2601
+ 32
2602
+ 33
2603
+ 34
2604
+ 35
2605
+ 36
2606
+ 37
2607
+ 38
2608
+ 39
2609
+ 40
2610
+ 41</pre></td>
2611
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">typedef</span><span class="normal"> </span><span class="keyword">struct</span><span class="normal"> </span><span class="cbracket">{</span>
2612
+ <span class="normal"> </span><span class="usertype">GObjectClass</span><span class="normal"> parent_class</span><span class="symbol">;</span>
2613
+ <span class="normal"> </span><span class="usertype">gint</span><span class="normal"> static_integer</span><span class="symbol">;</span>
2614
+ <span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">dynamic_string</span><span class="symbol">;</span>
2615
+ <span class="cbracket">}</span><span class="normal"> TypeAClass</span><span class="symbol">;</span>
2616
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
2617
+ <span class="function">type_a_base_class_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TypeAClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">class</span><span class="symbol">)</span>
2618
+ <span class="cbracket">{</span>
2619
+ <span class="normal"> class</span><span class="symbol">-&gt;</span><span class="normal">dynamic_string </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-String-Utility-Functions.html#g-strdup">g_strdup</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"some string"</span><span class="symbol">);</span>
2620
+ <span class="cbracket">}</span>
2621
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
2622
+ <span class="function">type_a_base_class_finalize</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TypeAClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">class</span><span class="symbol">)</span>
2623
+ <span class="cbracket">{</span>
2624
+ <span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">class</span><span class="symbol">-&gt;</span><span class="normal">dynamic_string</span><span class="symbol">);</span>
2625
+ <span class="cbracket">}</span>
2626
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
2627
+ <span class="function">type_a_class_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TypeAClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">class</span><span class="symbol">)</span>
2628
+ <span class="cbracket">{</span>
2629
+ <span class="normal"> class</span><span class="symbol">-&gt;</span><span class="normal">static_integer </span><span class="symbol">=</span><span class="normal"> </span><span class="number">42</span><span class="symbol">;</span>
2630
+ <span class="cbracket">}</span>
2631
+
2632
+ <span class="keyword">typedef</span><span class="normal"> </span><span class="keyword">struct</span><span class="normal"> </span><span class="cbracket">{</span>
2633
+ <span class="normal"> </span><span class="usertype">TypeAClass</span><span class="normal"> parent_class</span><span class="symbol">;</span>
2634
+ <span class="normal"> </span><span class="usertype">gfloat</span><span class="normal"> static_float</span><span class="symbol">;</span>
2635
+ <span class="normal"> </span><span class="usertype">GString</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">dynamic_gstring</span><span class="symbol">;</span>
2636
+ <span class="cbracket">}</span><span class="normal"> TypeBClass</span><span class="symbol">;</span>
2637
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
2638
+ <span class="function">type_b_base_class_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TypeBClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">class</span><span class="symbol">)</span>
2639
+ <span class="cbracket">{</span>
2640
+ <span class="normal"> class</span><span class="symbol">-&gt;</span><span class="normal">dynamic_gstring </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-Strings.html#g-string-new">g_string_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"some other string"</span><span class="symbol">);</span>
2641
+ <span class="cbracket">}</span>
2642
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
2643
+ <span class="function">type_b_base_class_finalize</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TypeBClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">class</span><span class="symbol">)</span>
2644
+ <span class="cbracket">{</span>
2645
+ <span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-Strings.html#g-string-free">g_string_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">class</span><span class="symbol">-&gt;</span><span class="normal">dynamic_gstring</span><span class="symbol">);</span>
2646
+ <span class="cbracket">}</span>
2647
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
2648
+ <span class="function">type_b_class_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">TypeBClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">class</span><span class="symbol">)</span>
2649
+ <span class="cbracket">{</span>
2650
+ <span class="normal"> class</span><span class="symbol">-&gt;</span><span class="normal">static_float </span><span class="symbol">=</span><span class="normal"> </span><span class="number">3.14159265358979323846</span><span class="symbol">;</span>
2651
+ <span class="cbracket">}</span></pre></td>
2652
+ </tr>
2653
+ </tbody>
2654
+ </table>
2655
+ </div>
2656
+
2657
+ <p>
2658
+ Initialization of TypeBClass will first cause initialization of
2659
+ TypeAClass (derived classes reference their parent classes, see
2660
+ <a class="link" href="gobject-Type-Information.html#g-type-class-ref" title="g_type_class_ref ()"><code class="function">g_type_class_ref()</code></a> on this).
2661
+ Initialization of TypeAClass roughly involves zero-initializing its fields,
2662
+ then calling its <a class="link" href="gobject-Type-Information.html#GBaseInitFunc" title="GBaseInitFunc ()"><code class="function">GBaseInitFunc()</code></a> <code class="function">type_a_base_class_init()</code> to allocate
2663
+ its dynamic members (dynamic_string), and finally calling its <a class="link" href="gobject-Type-Information.html#GClassInitFunc" title="GClassInitFunc ()"><code class="function">GClassInitFunc()</code></a>
2664
+ <code class="function">type_a_class_init()</code> to initialize its static members (static_integer).
2665
+ The first step in the initialization process of TypeBClass is then
2666
+ a plain memory copy of the contents of TypeAClass into TypeBClass and
2667
+ zero-initialization of the remaining fields in TypeBClass.
2668
+ The dynamic members of TypeAClass within TypeBClass now need
2669
+ reinitialization which is performed by calling <code class="function">type_a_base_class_init()</code>
2670
+ with an argument of TypeBClass.
2671
+ After that, the <a class="link" href="gobject-Type-Information.html#GBaseInitFunc" title="GBaseInitFunc ()"><code class="function">GBaseInitFunc()</code></a> of TypeBClass, <code class="function">type_b_base_class_init()</code>
2672
+ is called to allocate the dynamic members of TypeBClass (dynamic_gstring),
2673
+ and finally the <a class="link" href="gobject-Type-Information.html#GClassInitFunc" title="GClassInitFunc ()"><code class="function">GClassInitFunc()</code></a> of TypeBClass, <code class="function">type_b_class_init()</code>,
2674
+ is called to complete the initialization process with the static members
2675
+ (static_float).
2676
+ Corresponding finalization counter parts to the <a class="link" href="gobject-Type-Information.html#GBaseInitFunc" title="GBaseInitFunc ()"><code class="function">GBaseInitFunc()</code></a> functions
2677
+ have to be provided to release allocated resources at class finalization
2678
+ time.
2679
+ </p>
2680
+ <div class="variablelist"><table border="0">
2681
+ <col align="left" valign="top">
2682
+ <tbody>
2683
+ <tr>
2684
+ <td><p><span class="term"><em class="parameter"><code>g_class</code></em> :</span></p></td>
2685
+ <td>The <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure to initialize.
2686
+ </td>
2687
+ </tr>
2688
+ <tr>
2689
+ <td><p><span class="term"><em class="parameter"><code>class_data</code></em> :</span></p></td>
2690
+ <td>The <em class="parameter"><code>class_data</code></em> member supplied via the <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> structure.
2691
+ </td>
2692
+ </tr>
2693
+ </tbody>
2694
+ </table></div>
2695
+ </div>
2696
+ <hr>
2697
+ <div class="refsect2" title="GClassFinalizeFunc ()">
2698
+ <a name="GClassFinalizeFunc"></a><h3>GClassFinalizeFunc ()</h3>
2699
+ <pre class="programlisting"><span class="returnvalue">void</span> (*GClassFinalizeFunc) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>,
2700
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> class_data</code></em>);</pre>
2701
+ <p>
2702
+ A callback function used by the type system to finalize a class.
2703
+ This function is rarely needed, as dynamically allocated class resources
2704
+ should be handled by <a class="link" href="gobject-Type-Information.html#GBaseInitFunc" title="GBaseInitFunc ()"><code class="function">GBaseInitFunc()</code></a> and <a class="link" href="gobject-Type-Information.html#GBaseFinalizeFunc" title="GBaseFinalizeFunc ()"><code class="function">GBaseFinalizeFunc()</code></a>.
2705
+ Also, specification of a <a class="link" href="gobject-Type-Information.html#GClassFinalizeFunc" title="GClassFinalizeFunc ()"><code class="function">GClassFinalizeFunc()</code></a> in the <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a>
2706
+ structure of a static type is invalid, because classes of static types
2707
+ will never be finalized (they are artificially kept alive when their
2708
+ reference count drops to zero).
2709
+ </p>
2710
+ <div class="variablelist"><table border="0">
2711
+ <col align="left" valign="top">
2712
+ <tbody>
2713
+ <tr>
2714
+ <td><p><span class="term"><em class="parameter"><code>g_class</code></em> :</span></p></td>
2715
+ <td>The <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure to finalize.
2716
+ </td>
2717
+ </tr>
2718
+ <tr>
2719
+ <td><p><span class="term"><em class="parameter"><code>class_data</code></em> :</span></p></td>
2720
+ <td>The <em class="parameter"><code>class_data</code></em> member supplied via the <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> structure.
2721
+ </td>
2722
+ </tr>
2723
+ </tbody>
2724
+ </table></div>
2725
+ </div>
2726
+ <hr>
2727
+ <div class="refsect2" title="GInstanceInitFunc ()">
2728
+ <a name="GInstanceInitFunc"></a><h3>GInstanceInitFunc ()</h3>
2729
+ <pre class="programlisting"><span class="returnvalue">void</span> (*GInstanceInitFunc) (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance"><span class="type">GTypeInstance</span></a> *instance</code></em>,
2730
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>);</pre>
2731
+ <p>
2732
+ A callback function used by the type system to initialize a new
2733
+ instance of a type. This function initializes all instance members and
2734
+ allocates any resources required by it.
2735
+ Initialization of a derived instance involves calling all its parent
2736
+ types instance initializers, so the class member of the instance
2737
+ is altered during its initialization to always point to the class that
2738
+ belongs to the type the current initializer was introduced for.
2739
+ </p>
2740
+ <div class="variablelist"><table border="0">
2741
+ <col align="left" valign="top">
2742
+ <tbody>
2743
+ <tr>
2744
+ <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td>
2745
+ <td>The instance to initialize.
2746
+ </td>
2747
+ </tr>
2748
+ <tr>
2749
+ <td><p><span class="term"><em class="parameter"><code>g_class</code></em> :</span></p></td>
2750
+ <td>The class of the type the instance is created for.
2751
+ </td>
2752
+ </tr>
2753
+ </tbody>
2754
+ </table></div>
2755
+ </div>
2756
+ <hr>
2757
+ <div class="refsect2" title="GInterfaceInitFunc ()">
2758
+ <a name="GInterfaceInitFunc"></a><h3>GInterfaceInitFunc ()</h3>
2759
+ <pre class="programlisting"><span class="returnvalue">void</span> (*GInterfaceInitFunc) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>,
2760
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> iface_data</code></em>);</pre>
2761
+ <p>
2762
+ A callback function used by the type system to initialize a new
2763
+ interface. This function should initialize all internal data and
2764
+ allocate any resources required by the interface.
2765
+ </p>
2766
+ <div class="variablelist"><table border="0">
2767
+ <col align="left" valign="top">
2768
+ <tbody>
2769
+ <tr>
2770
+ <td><p><span class="term"><em class="parameter"><code>g_iface</code></em> :</span></p></td>
2771
+ <td>The interface structure to initialize.
2772
+ </td>
2773
+ </tr>
2774
+ <tr>
2775
+ <td><p><span class="term"><em class="parameter"><code>iface_data</code></em> :</span></p></td>
2776
+ <td>The <em class="parameter"><code>interface_data</code></em> supplied via the <a class="link" href="gobject-Type-Information.html#GInterfaceInfo" title="GInterfaceInfo"><span class="type">GInterfaceInfo</span></a> structure.
2777
+ </td>
2778
+ </tr>
2779
+ </tbody>
2780
+ </table></div>
2781
+ </div>
2782
+ <hr>
2783
+ <div class="refsect2" title="GInterfaceFinalizeFunc ()">
2784
+ <a name="GInterfaceFinalizeFunc"></a><h3>GInterfaceFinalizeFunc ()</h3>
2785
+ <pre class="programlisting"><span class="returnvalue">void</span> (*GInterfaceFinalizeFunc) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>,
2786
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> iface_data</code></em>);</pre>
2787
+ <p>
2788
+ A callback function used by the type system to finalize an interface.
2789
+ This function should destroy any internal data and release any resources
2790
+ allocated by the corresponding <a class="link" href="gobject-Type-Information.html#GInterfaceInitFunc" title="GInterfaceInitFunc ()"><code class="function">GInterfaceInitFunc()</code></a> function.
2791
+ </p>
2792
+ <div class="variablelist"><table border="0">
2793
+ <col align="left" valign="top">
2794
+ <tbody>
2795
+ <tr>
2796
+ <td><p><span class="term"><em class="parameter"><code>g_iface</code></em> :</span></p></td>
2797
+ <td>The interface structure to finalize.
2798
+ </td>
2799
+ </tr>
2800
+ <tr>
2801
+ <td><p><span class="term"><em class="parameter"><code>iface_data</code></em> :</span></p></td>
2802
+ <td>The <em class="parameter"><code>interface_data</code></em> supplied via the <a class="link" href="gobject-Type-Information.html#GInterfaceInfo" title="GInterfaceInfo"><span class="type">GInterfaceInfo</span></a> structure.
2803
+ </td>
2804
+ </tr>
2805
+ </tbody>
2806
+ </table></div>
2807
+ </div>
2808
+ <hr>
2809
+ <div class="refsect2" title="GTypeClassCacheFunc ()">
2810
+ <a name="GTypeClassCacheFunc"></a><h3>GTypeClassCacheFunc ()</h3>
2811
+ <pre class="programlisting"><a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a> (*GTypeClassCacheFunc) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> cache_data</code></em>,
2812
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> *g_class</code></em>);</pre>
2813
+ <p>
2814
+ A callback function which is called when the reference count of a class
2815
+ drops to zero. It may use <a class="link" href="gobject-Type-Information.html#g-type-class-ref" title="g_type_class_ref ()"><code class="function">g_type_class_ref()</code></a> to prevent the class from
2816
+ being freed. You should not call <a class="link" href="gobject-Type-Information.html#g-type-class-unref" title="g_type_class_unref ()"><code class="function">g_type_class_unref()</code></a> from a
2817
+ <a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a> function to prevent infinite recursion, use
2818
+ <a class="link" href="gobject-Type-Information.html#g-type-class-unref-uncached" title="g_type_class_unref_uncached ()"><code class="function">g_type_class_unref_uncached()</code></a> instead.
2819
+ </p>
2820
+ <p>
2821
+ The functions have to check the class id passed in to figure
2822
+ whether they actually want to cache the class of this type, since all
2823
+ classes are routed through the same <a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a> chain.
2824
+ </p>
2825
+ <div class="variablelist"><table border="0">
2826
+ <col align="left" valign="top">
2827
+ <tbody>
2828
+ <tr>
2829
+ <td><p><span class="term"><em class="parameter"><code>cache_data</code></em> :</span></p></td>
2830
+ <td>data that was given to the <a class="link" href="gobject-Type-Information.html#g-type-add-class-cache-func" title="g_type_add_class_cache_func ()"><code class="function">g_type_add_class_cache_func()</code></a> call
2831
+ </td>
2832
+ </tr>
2833
+ <tr>
2834
+ <td><p><span class="term"><em class="parameter"><code>g_class</code></em> :</span></p></td>
2835
+ <td>The <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure which is unreferenced
2836
+ </td>
2837
+ </tr>
2838
+ <tr>
2839
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2840
+ <td> <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to stop further <a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a>s from being
2841
+ called, <a href="./../glib/glib/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> to continue.
2842
+ </td>
2843
+ </tr>
2844
+ </tbody>
2845
+ </table></div>
2846
+ </div>
2847
+ <hr>
2848
+ <div class="refsect2" title="enum GTypeFlags">
2849
+ <a name="GTypeFlags"></a><h3>enum GTypeFlags</h3>
2850
+ <pre class="programlisting">typedef enum /*&lt; skip &gt;*/
2851
+ {
2852
+ G_TYPE_FLAG_ABSTRACT = (1 &lt;&lt; 4),
2853
+ G_TYPE_FLAG_VALUE_ABSTRACT = (1 &lt;&lt; 5)
2854
+ } GTypeFlags;
2855
+ </pre>
2856
+ <p>
2857
+ Bit masks used to check or determine characteristics of a type.
2858
+ </p>
2859
+ <div class="variablelist"><table border="0">
2860
+ <col align="left" valign="top">
2861
+ <tbody>
2862
+ <tr>
2863
+ <td><p><a name="G-TYPE-FLAG-ABSTRACT:CAPS"></a><span class="term"><code class="literal">G_TYPE_FLAG_ABSTRACT</code></span></p></td>
2864
+ <td>Indicates an abstract type. No instances can be
2865
+ created for an abstract type.
2866
+ </td>
2867
+ </tr>
2868
+ <tr>
2869
+ <td><p><a name="G-TYPE-FLAG-VALUE-ABSTRACT:CAPS"></a><span class="term"><code class="literal">G_TYPE_FLAG_VALUE_ABSTRACT</code></span></p></td>
2870
+ <td>Indicates an abstract value type, i.e. a type
2871
+ that introduces a value table, but can't be used for
2872
+ <a class="link" href="gobject-Generic-values.html#g-value-init" title="g_value_init ()"><code class="function">g_value_init()</code></a>.
2873
+ </td>
2874
+ </tr>
2875
+ </tbody>
2876
+ </table></div>
2877
+ </div>
2878
+ <hr>
2879
+ <div class="refsect2" title="enum GTypeFundamentalFlags">
2880
+ <a name="GTypeFundamentalFlags"></a><h3>enum GTypeFundamentalFlags</h3>
2881
+ <pre class="programlisting">typedef enum /*&lt; skip &gt;*/
2882
+ {
2883
+ G_TYPE_FLAG_CLASSED = (1 &lt;&lt; 0),
2884
+ G_TYPE_FLAG_INSTANTIATABLE = (1 &lt;&lt; 1),
2885
+ G_TYPE_FLAG_DERIVABLE = (1 &lt;&lt; 2),
2886
+ G_TYPE_FLAG_DEEP_DERIVABLE = (1 &lt;&lt; 3)
2887
+ } GTypeFundamentalFlags;
2888
+ </pre>
2889
+ <p>
2890
+ Bit masks used to check or determine specific characteristics of a
2891
+ fundamental type.
2892
+ </p>
2893
+ <div class="variablelist"><table border="0">
2894
+ <col align="left" valign="top">
2895
+ <tbody>
2896
+ <tr>
2897
+ <td><p><a name="G-TYPE-FLAG-CLASSED:CAPS"></a><span class="term"><code class="literal">G_TYPE_FLAG_CLASSED</code></span></p></td>
2898
+ <td>Indicates a classed type.
2899
+ </td>
2900
+ </tr>
2901
+ <tr>
2902
+ <td><p><a name="G-TYPE-FLAG-INSTANTIATABLE:CAPS"></a><span class="term"><code class="literal">G_TYPE_FLAG_INSTANTIATABLE</code></span></p></td>
2903
+ <td>Indicates an instantiable type (implies classed).
2904
+ </td>
2905
+ </tr>
2906
+ <tr>
2907
+ <td><p><a name="G-TYPE-FLAG-DERIVABLE:CAPS"></a><span class="term"><code class="literal">G_TYPE_FLAG_DERIVABLE</code></span></p></td>
2908
+ <td>Indicates a flat derivable type.
2909
+ </td>
2910
+ </tr>
2911
+ <tr>
2912
+ <td><p><a name="G-TYPE-FLAG-DEEP-DERIVABLE:CAPS"></a><span class="term"><code class="literal">G_TYPE_FLAG_DEEP_DERIVABLE</code></span></p></td>
2913
+ <td>Indicates a deep derivable type (implies derivable).
2914
+ </td>
2915
+ </tr>
2916
+ </tbody>
2917
+ </table></div>
2918
+ </div>
2919
+ <hr>
2920
+ <div class="refsect2" title="g_type_register_static ()">
2921
+ <a name="g-type-register-static"></a><h3>g_type_register_static ()</h3>
2922
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> g_type_register_static (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> parent_type</code></em>,
2923
+ <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type_name</code></em>,
2924
+ <em class="parameter"><code>const <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> *info</code></em>,
2925
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags"><span class="type">GTypeFlags</span></a> flags</code></em>);</pre>
2926
+ <p>
2927
+ Registers <em class="parameter"><code>type_name</code></em> as the name of a new static type derived from
2928
+ <em class="parameter"><code>parent_type</code></em>. The type system uses the information contained in the
2929
+ <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> structure pointed to by <em class="parameter"><code>info</code></em> to manage the type and its
2930
+ instances (if not abstract). The value of <em class="parameter"><code>flags</code></em> determines the nature
2931
+ (e.g. abstract or not) of the type.
2932
+ </p>
2933
+ <div class="variablelist"><table border="0">
2934
+ <col align="left" valign="top">
2935
+ <tbody>
2936
+ <tr>
2937
+ <td><p><span class="term"><em class="parameter"><code>parent_type</code></em> :</span></p></td>
2938
+ <td>Type from which this type will be derived.
2939
+ </td>
2940
+ </tr>
2941
+ <tr>
2942
+ <td><p><span class="term"><em class="parameter"><code>type_name</code></em> :</span></p></td>
2943
+ <td>0-terminated string used as the name of the new type.
2944
+ </td>
2945
+ </tr>
2946
+ <tr>
2947
+ <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
2948
+ <td>The <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> structure for this type.
2949
+ </td>
2950
+ </tr>
2951
+ <tr>
2952
+ <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
2953
+ <td>Bitwise combination of <a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags"><span class="type">GTypeFlags</span></a> values.
2954
+ </td>
2955
+ </tr>
2956
+ <tr>
2957
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2958
+ <td> The new type identifier.
2959
+ </td>
2960
+ </tr>
2961
+ </tbody>
2962
+ </table></div>
2963
+ </div>
2964
+ <hr>
2965
+ <div class="refsect2" title="g_type_register_static_simple ()">
2966
+ <a name="g-type-register-static-simple"></a><h3>g_type_register_static_simple ()</h3>
2967
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> g_type_register_static_simple (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> parent_type</code></em>,
2968
+ <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type_name</code></em>,
2969
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> class_size</code></em>,
2970
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GClassInitFunc" title="GClassInitFunc ()"><span class="type">GClassInitFunc</span></a> class_init</code></em>,
2971
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a> instance_size</code></em>,
2972
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GInstanceInitFunc" title="GInstanceInitFunc ()"><span class="type">GInstanceInitFunc</span></a> instance_init</code></em>,
2973
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags"><span class="type">GTypeFlags</span></a> flags</code></em>);</pre>
2974
+ <p>
2975
+ Registers <em class="parameter"><code>type_name</code></em> as the name of a new static type derived from
2976
+ <em class="parameter"><code>parent_type</code></em>. The value of <em class="parameter"><code>flags</code></em> determines the nature (e.g.
2977
+ abstract or not) of the type. It works by filling a <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a>
2978
+ struct and calling <a class="link" href="gobject-Type-Information.html#g-type-register-static" title="g_type_register_static ()"><code class="function">g_type_register_static()</code></a>.
2979
+ </p>
2980
+ <div class="variablelist"><table border="0">
2981
+ <col align="left" valign="top">
2982
+ <tbody>
2983
+ <tr>
2984
+ <td><p><span class="term"><em class="parameter"><code>parent_type</code></em> :</span></p></td>
2985
+ <td>Type from which this type will be derived.
2986
+ </td>
2987
+ </tr>
2988
+ <tr>
2989
+ <td><p><span class="term"><em class="parameter"><code>type_name</code></em> :</span></p></td>
2990
+ <td>0-terminated string used as the name of the new type.
2991
+ </td>
2992
+ </tr>
2993
+ <tr>
2994
+ <td><p><span class="term"><em class="parameter"><code>class_size</code></em> :</span></p></td>
2995
+ <td>Size of the class structure (see <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a>)
2996
+ </td>
2997
+ </tr>
2998
+ <tr>
2999
+ <td><p><span class="term"><em class="parameter"><code>class_init</code></em> :</span></p></td>
3000
+ <td>Location of the class initialization function (see <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a>)
3001
+ </td>
3002
+ </tr>
3003
+ <tr>
3004
+ <td><p><span class="term"><em class="parameter"><code>instance_size</code></em> :</span></p></td>
3005
+ <td>Size of the instance structure (see <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a>)
3006
+ </td>
3007
+ </tr>
3008
+ <tr>
3009
+ <td><p><span class="term"><em class="parameter"><code>instance_init</code></em> :</span></p></td>
3010
+ <td>Location of the instance initialization function (see <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a>)
3011
+ </td>
3012
+ </tr>
3013
+ <tr>
3014
+ <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
3015
+ <td>Bitwise combination of <a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags"><span class="type">GTypeFlags</span></a> values.
3016
+ </td>
3017
+ </tr>
3018
+ <tr>
3019
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3020
+ <td> The new type identifier.
3021
+ </td>
3022
+ </tr>
3023
+ </tbody>
3024
+ </table></div>
3025
+ <p class="since">Since 2.12</p>
3026
+ </div>
3027
+ <hr>
3028
+ <div class="refsect2" title="g_type_register_dynamic ()">
3029
+ <a name="g-type-register-dynamic"></a><h3>g_type_register_dynamic ()</h3>
3030
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> g_type_register_dynamic (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> parent_type</code></em>,
3031
+ <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type_name</code></em>,
3032
+ <em class="parameter"><code><a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> *plugin</code></em>,
3033
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags"><span class="type">GTypeFlags</span></a> flags</code></em>);</pre>
3034
+ <p>
3035
+ Registers <em class="parameter"><code>type_name</code></em> as the name of a new dynamic type derived from
3036
+ <em class="parameter"><code>parent_type</code></em>. The type system uses the information contained in the
3037
+ <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> structure pointed to by <em class="parameter"><code>plugin</code></em> to manage the type and its
3038
+ instances (if not abstract). The value of <em class="parameter"><code>flags</code></em> determines the nature
3039
+ (e.g. abstract or not) of the type.
3040
+ </p>
3041
+ <div class="variablelist"><table border="0">
3042
+ <col align="left" valign="top">
3043
+ <tbody>
3044
+ <tr>
3045
+ <td><p><span class="term"><em class="parameter"><code>parent_type</code></em> :</span></p></td>
3046
+ <td>Type from which this type will be derived.
3047
+ </td>
3048
+ </tr>
3049
+ <tr>
3050
+ <td><p><span class="term"><em class="parameter"><code>type_name</code></em> :</span></p></td>
3051
+ <td>0-terminated string used as the name of the new type.
3052
+ </td>
3053
+ </tr>
3054
+ <tr>
3055
+ <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
3056
+ <td>The <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> structure to retrieve the <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> from.
3057
+ </td>
3058
+ </tr>
3059
+ <tr>
3060
+ <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
3061
+ <td>Bitwise combination of <a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags"><span class="type">GTypeFlags</span></a> values.
3062
+ </td>
3063
+ </tr>
3064
+ <tr>
3065
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3066
+ <td> The new type identifier or <a class="link" href="gobject-Type-Information.html#G-TYPE-INVALID:CAPS" title="G_TYPE_INVALID"><span class="type">G_TYPE_INVALID</span></a> if registration failed.
3067
+ </td>
3068
+ </tr>
3069
+ </tbody>
3070
+ </table></div>
3071
+ </div>
3072
+ <hr>
3073
+ <div class="refsect2" title="g_type_register_fundamental ()">
3074
+ <a name="g-type-register-fundamental"></a><h3>g_type_register_fundamental ()</h3>
3075
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> g_type_register_fundamental (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type_id</code></em>,
3076
+ <em class="parameter"><code>const <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type_name</code></em>,
3077
+ <em class="parameter"><code>const <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> *info</code></em>,
3078
+ <em class="parameter"><code>const <a class="link" href="gobject-Type-Information.html#GTypeFundamentalInfo" title="GTypeFundamentalInfo"><span class="type">GTypeFundamentalInfo</span></a> *finfo</code></em>,
3079
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags"><span class="type">GTypeFlags</span></a> flags</code></em>);</pre>
3080
+ <p>
3081
+ Registers <em class="parameter"><code>type_id</code></em> as the predefined identifier and <em class="parameter"><code>type_name</code></em> as the
3082
+ name of a fundamental type. The type system uses the information
3083
+ contained in the <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> structure pointed to by <em class="parameter"><code>info</code></em> and the
3084
+ <a class="link" href="gobject-Type-Information.html#GTypeFundamentalInfo" title="GTypeFundamentalInfo"><span class="type">GTypeFundamentalInfo</span></a> structure pointed to by <em class="parameter"><code>finfo</code></em> to manage the
3085
+ type and its instances. The value of <em class="parameter"><code>flags</code></em> determines additional
3086
+ characteristics of the fundamental type.
3087
+ </p>
3088
+ <div class="variablelist"><table border="0">
3089
+ <col align="left" valign="top">
3090
+ <tbody>
3091
+ <tr>
3092
+ <td><p><span class="term"><em class="parameter"><code>type_id</code></em> :</span></p></td>
3093
+ <td>A predefined type identifier.
3094
+ </td>
3095
+ </tr>
3096
+ <tr>
3097
+ <td><p><span class="term"><em class="parameter"><code>type_name</code></em> :</span></p></td>
3098
+ <td>0-terminated string used as the name of the new type.
3099
+ </td>
3100
+ </tr>
3101
+ <tr>
3102
+ <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
3103
+ <td>The <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> structure for this type.
3104
+ </td>
3105
+ </tr>
3106
+ <tr>
3107
+ <td><p><span class="term"><em class="parameter"><code>finfo</code></em> :</span></p></td>
3108
+ <td>The <a class="link" href="gobject-Type-Information.html#GTypeFundamentalInfo" title="GTypeFundamentalInfo"><span class="type">GTypeFundamentalInfo</span></a> structure for this type.
3109
+ </td>
3110
+ </tr>
3111
+ <tr>
3112
+ <td><p><span class="term"><em class="parameter"><code>flags</code></em> :</span></p></td>
3113
+ <td>Bitwise combination of <a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags"><span class="type">GTypeFlags</span></a> values.
3114
+ </td>
3115
+ </tr>
3116
+ <tr>
3117
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3118
+ <td> The predefined type identifier.
3119
+ </td>
3120
+ </tr>
3121
+ </tbody>
3122
+ </table></div>
3123
+ </div>
3124
+ <hr>
3125
+ <div class="refsect2" title="g_type_add_interface_static ()">
3126
+ <a name="g-type-add-interface-static"></a><h3>g_type_add_interface_static ()</h3>
3127
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_add_interface_static (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> instance_type</code></em>,
3128
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> interface_type</code></em>,
3129
+ <em class="parameter"><code>const <a class="link" href="gobject-Type-Information.html#GInterfaceInfo" title="GInterfaceInfo"><span class="type">GInterfaceInfo</span></a> *info</code></em>);</pre>
3130
+ <p>
3131
+ Adds the static <em class="parameter"><code>interface_type</code></em> to <em class="parameter"><code>instantiable_type</code></em>. The information
3132
+ contained in the <span class="type">GTypeInterfaceInfo</span> structure pointed to by <em class="parameter"><code>info</code></em>
3133
+ is used to manage the relationship.
3134
+ </p>
3135
+ <div class="variablelist"><table border="0">
3136
+ <col align="left" valign="top">
3137
+ <tbody>
3138
+ <tr>
3139
+ <td><p><span class="term"><em class="parameter"><code>instance_type</code></em> :</span></p></td>
3140
+ <td>
3141
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value of an instantiable type.
3142
+ </td>
3143
+ </tr>
3144
+ <tr>
3145
+ <td><p><span class="term"><em class="parameter"><code>interface_type</code></em> :</span></p></td>
3146
+ <td>
3147
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value of an interface type.
3148
+ </td>
3149
+ </tr>
3150
+ <tr>
3151
+ <td><p><span class="term"><em class="parameter"><code>info</code></em> :</span></p></td>
3152
+ <td>The <a class="link" href="gobject-Type-Information.html#GInterfaceInfo" title="GInterfaceInfo"><span class="type">GInterfaceInfo</span></a> structure for this
3153
+ (<em class="parameter"><code>instance_type</code></em>, <em class="parameter"><code>interface_type</code></em>) combination.
3154
+ </td>
3155
+ </tr>
3156
+ </tbody>
3157
+ </table></div>
3158
+ </div>
3159
+ <hr>
3160
+ <div class="refsect2" title="g_type_add_interface_dynamic ()">
3161
+ <a name="g-type-add-interface-dynamic"></a><h3>g_type_add_interface_dynamic ()</h3>
3162
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_add_interface_dynamic (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> instance_type</code></em>,
3163
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> interface_type</code></em>,
3164
+ <em class="parameter"><code><a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> *plugin</code></em>);</pre>
3165
+ <p>
3166
+ Adds the dynamic <em class="parameter"><code>interface_type</code></em> to <em class="parameter"><code>instantiable_type</code></em>. The information
3167
+ contained in the <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> structure pointed to by <em class="parameter"><code>plugin</code></em>
3168
+ is used to manage the relationship.
3169
+ </p>
3170
+ <div class="variablelist"><table border="0">
3171
+ <col align="left" valign="top">
3172
+ <tbody>
3173
+ <tr>
3174
+ <td><p><span class="term"><em class="parameter"><code>instance_type</code></em> :</span></p></td>
3175
+ <td>the <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value of an instantiable type.
3176
+ </td>
3177
+ </tr>
3178
+ <tr>
3179
+ <td><p><span class="term"><em class="parameter"><code>interface_type</code></em> :</span></p></td>
3180
+ <td>the <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value of an interface type.
3181
+ </td>
3182
+ </tr>
3183
+ <tr>
3184
+ <td><p><span class="term"><em class="parameter"><code>plugin</code></em> :</span></p></td>
3185
+ <td>the <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> structure to retrieve the <a class="link" href="gobject-Type-Information.html#GInterfaceInfo" title="GInterfaceInfo"><span class="type">GInterfaceInfo</span></a> from.
3186
+ </td>
3187
+ </tr>
3188
+ </tbody>
3189
+ </table></div>
3190
+ </div>
3191
+ <hr>
3192
+ <div class="refsect2" title="g_type_interface_add_prerequisite ()">
3193
+ <a name="g-type-interface-add-prerequisite"></a><h3>g_type_interface_add_prerequisite ()</h3>
3194
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_interface_add_prerequisite (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> interface_type</code></em>,
3195
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> prerequisite_type</code></em>);</pre>
3196
+ <p>
3197
+ Adds <em class="parameter"><code>prerequisite_type</code></em> to the list of prerequisites of <em class="parameter"><code>interface_type</code></em>.
3198
+ This means that any type implementing <em class="parameter"><code>interface_type</code></em> must also implement
3199
+ <em class="parameter"><code>prerequisite_type</code></em>. Prerequisites can be thought of as an alternative to
3200
+ interface derivation (which GType doesn't support). An interface can have
3201
+ at most one instantiatable prerequisite type.
3202
+ </p>
3203
+ <div class="variablelist"><table border="0">
3204
+ <col align="left" valign="top">
3205
+ <tbody>
3206
+ <tr>
3207
+ <td><p><span class="term"><em class="parameter"><code>interface_type</code></em> :</span></p></td>
3208
+ <td>
3209
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value of an interface type.
3210
+ </td>
3211
+ </tr>
3212
+ <tr>
3213
+ <td><p><span class="term"><em class="parameter"><code>prerequisite_type</code></em> :</span></p></td>
3214
+ <td>
3215
+ <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value of an interface or instantiatable type.
3216
+ </td>
3217
+ </tr>
3218
+ </tbody>
3219
+ </table></div>
3220
+ </div>
3221
+ <hr>
3222
+ <div class="refsect2" title="g_type_get_plugin ()">
3223
+ <a name="g-type-get-plugin"></a><h3>g_type_get_plugin ()</h3>
3224
+ <pre class="programlisting"><a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="returnvalue">GTypePlugin</span></a>* g_type_get_plugin (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);</pre>
3225
+ <p>
3226
+ Returns the <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> structure for <em class="parameter"><code>type</code></em> or
3227
+ <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if <em class="parameter"><code>type</code></em> does not have a <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> structure.
3228
+ </p>
3229
+ <div class="variablelist"><table border="0">
3230
+ <col align="left" valign="top">
3231
+ <tbody>
3232
+ <tr>
3233
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
3234
+ <td>The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> to retrieve the plugin for.
3235
+ </td>
3236
+ </tr>
3237
+ <tr>
3238
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3239
+ <td> The corresponding plugin if <em class="parameter"><code>type</code></em> is a dynamic type,
3240
+ <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise.
3241
+ </td>
3242
+ </tr>
3243
+ </tbody>
3244
+ </table></div>
3245
+ </div>
3246
+ <hr>
3247
+ <div class="refsect2" title="g_type_interface_get_plugin ()">
3248
+ <a name="g-type-interface-get-plugin"></a><h3>g_type_interface_get_plugin ()</h3>
3249
+ <pre class="programlisting"><a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="returnvalue">GTypePlugin</span></a>* g_type_interface_get_plugin (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> instance_type</code></em>,
3250
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> interface_type</code></em>);</pre>
3251
+ <p>
3252
+ Returns the <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> structure for the dynamic interface
3253
+ <em class="parameter"><code>interface_type</code></em> which has been added to <em class="parameter"><code>instance_type</code></em>, or <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
3254
+ <em class="parameter"><code>interface_type</code></em> has not been added to <em class="parameter"><code>instance_type</code></em> or does not
3255
+ have a <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> structure. See <a class="link" href="gobject-Type-Information.html#g-type-add-interface-dynamic" title="g_type_add_interface_dynamic ()"><code class="function">g_type_add_interface_dynamic()</code></a>.
3256
+ </p>
3257
+ <div class="variablelist"><table border="0">
3258
+ <col align="left" valign="top">
3259
+ <tbody>
3260
+ <tr>
3261
+ <td><p><span class="term"><em class="parameter"><code>instance_type</code></em> :</span></p></td>
3262
+ <td>the <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value of an instantiatable type.
3263
+ </td>
3264
+ </tr>
3265
+ <tr>
3266
+ <td><p><span class="term"><em class="parameter"><code>interface_type</code></em> :</span></p></td>
3267
+ <td>the <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value of an interface type.
3268
+ </td>
3269
+ </tr>
3270
+ <tr>
3271
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3272
+ <td> the <a class="link" href="GTypePlugin.html" title="GTypePlugin"><span class="type">GTypePlugin</span></a> for the dynamic interface <em class="parameter"><code>interface_type</code></em>
3273
+ of <em class="parameter"><code>instance_type</code></em>.
3274
+ </td>
3275
+ </tr>
3276
+ </tbody>
3277
+ </table></div>
3278
+ </div>
3279
+ <hr>
3280
+ <div class="refsect2" title="g_type_fundamental_next ()">
3281
+ <a name="g-type-fundamental-next"></a><h3>g_type_fundamental_next ()</h3>
3282
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> g_type_fundamental_next (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
3283
+ <p>
3284
+ Returns the next free fundamental type id which can be used to
3285
+ register a new fundamental type with <a class="link" href="gobject-Type-Information.html#g-type-register-fundamental" title="g_type_register_fundamental ()"><code class="function">g_type_register_fundamental()</code></a>.
3286
+ The returned type ID represents the highest currently registered
3287
+ fundamental type identifier.
3288
+ </p>
3289
+ <div class="variablelist"><table border="0">
3290
+ <col align="left" valign="top">
3291
+ <tbody><tr>
3292
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3293
+ <td> The nextmost fundamental type ID to be registered,
3294
+ or 0 if the type system ran out of fundamental type IDs.
3295
+ </td>
3296
+ </tr></tbody>
3297
+ </table></div>
3298
+ </div>
3299
+ <hr>
3300
+ <div class="refsect2" title="g_type_fundamental ()">
3301
+ <a name="g-type-fundamental"></a><h3>g_type_fundamental ()</h3>
3302
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="returnvalue">GType</span></a> g_type_fundamental (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type_id</code></em>);</pre>
3303
+ <p>
3304
+ Internal function, used to extract the fundamental type ID portion.
3305
+ use <a class="link" href="gobject-Type-Information.html#G-TYPE-FUNDAMENTAL:CAPS" title="G_TYPE_FUNDAMENTAL()"><code class="function">G_TYPE_FUNDAMENTAL()</code></a> instead.
3306
+ </p>
3307
+ <div class="variablelist"><table border="0">
3308
+ <col align="left" valign="top">
3309
+ <tbody>
3310
+ <tr>
3311
+ <td><p><span class="term"><em class="parameter"><code>type_id</code></em> :</span></p></td>
3312
+ <td>valid type ID
3313
+ </td>
3314
+ </tr>
3315
+ <tr>
3316
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3317
+ <td> fundamental type ID
3318
+ </td>
3319
+ </tr>
3320
+ </tbody>
3321
+ </table></div>
3322
+ </div>
3323
+ <hr>
3324
+ <div class="refsect2" title="g_type_create_instance ()">
3325
+ <a name="g-type-create-instance"></a><h3>g_type_create_instance ()</h3>
3326
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance"><span class="returnvalue">GTypeInstance</span></a>* g_type_create_instance (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);</pre>
3327
+ <p>
3328
+ Creates and initializes an instance of <em class="parameter"><code>type</code></em> if <em class="parameter"><code>type</code></em> is valid and
3329
+ can be instantiated. The type system only performs basic allocation
3330
+ and structure setups for instances: actual instance creation should
3331
+ happen through functions supplied by the type's fundamental type
3332
+ implementation. So use of <a class="link" href="gobject-Type-Information.html#g-type-create-instance" title="g_type_create_instance ()"><code class="function">g_type_create_instance()</code></a> is reserved for
3333
+ implementators of fundamental types only. E.g. instances of the
3334
+ <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> hierarchy should be created via <a class="link" href="gobject-The-Base-Object-Type.html#g-object-new" title="g_object_new ()"><code class="function">g_object_new()</code></a> and
3335
+ <span class="emphasis"><em>never</em></span> directly through
3336
+ <a class="link" href="gobject-Type-Information.html#g-type-create-instance" title="g_type_create_instance ()"><code class="function">g_type_create_instance()</code></a> which doesn't handle things like singleton
3337
+ objects or object construction. Note: Do <span class="emphasis"><em>not</em></span>
3338
+ use this function, unless you're implementing a fundamental
3339
+ type. Also language bindings should <span class="emphasis"><em>not</em></span> use
3340
+ this function but <a class="link" href="gobject-The-Base-Object-Type.html#g-object-new" title="g_object_new ()"><code class="function">g_object_new()</code></a> instead.
3341
+ </p>
3342
+ <div class="variablelist"><table border="0">
3343
+ <col align="left" valign="top">
3344
+ <tbody>
3345
+ <tr>
3346
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
3347
+ <td>An instantiatable type to create an instance for.
3348
+ </td>
3349
+ </tr>
3350
+ <tr>
3351
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3352
+ <td> An allocated and initialized instance, subject to further
3353
+ treatment by the fundamental type implementation.
3354
+ </td>
3355
+ </tr>
3356
+ </tbody>
3357
+ </table></div>
3358
+ </div>
3359
+ <hr>
3360
+ <div class="refsect2" title="g_type_free_instance ()">
3361
+ <a name="g-type-free-instance"></a><h3>g_type_free_instance ()</h3>
3362
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_free_instance (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeInstance" title="GTypeInstance"><span class="type">GTypeInstance</span></a> *instance</code></em>);</pre>
3363
+ <p>
3364
+ Frees an instance of a type, returning it to the instance pool for
3365
+ the type, if there is one.
3366
+ </p>
3367
+ <p>
3368
+ Like <a class="link" href="gobject-Type-Information.html#g-type-create-instance" title="g_type_create_instance ()"><code class="function">g_type_create_instance()</code></a>, this function is reserved for
3369
+ implementors of fundamental types.
3370
+ </p>
3371
+ <div class="variablelist"><table border="0">
3372
+ <col align="left" valign="top">
3373
+ <tbody><tr>
3374
+ <td><p><span class="term"><em class="parameter"><code>instance</code></em> :</span></p></td>
3375
+ <td>an instance of a type.
3376
+ </td>
3377
+ </tr></tbody>
3378
+ </table></div>
3379
+ </div>
3380
+ <hr>
3381
+ <div class="refsect2" title="g_type_add_class_cache_func ()">
3382
+ <a name="g-type-add-class-cache-func"></a><h3>g_type_add_class_cache_func ()</h3>
3383
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_add_class_cache_func (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> cache_data</code></em>,
3384
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a> cache_func</code></em>);</pre>
3385
+ <p>
3386
+ Adds a <a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a> to be called before the reference count of a
3387
+ class goes from one to zero. This can be used to prevent premature class
3388
+ destruction. All installed <a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a> functions will be chained
3389
+ until one of them returns <a href="./../glib/glib/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. The functions have to check the class id
3390
+ passed in to figure whether they actually want to cache the class of this
3391
+ type, since all classes are routed through the same <a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a>
3392
+ chain.
3393
+ </p>
3394
+ <div class="variablelist"><table border="0">
3395
+ <col align="left" valign="top">
3396
+ <tbody>
3397
+ <tr>
3398
+ <td><p><span class="term"><em class="parameter"><code>cache_data</code></em> :</span></p></td>
3399
+ <td>data to be passed to <em class="parameter"><code>cache_func</code></em>
3400
+ </td>
3401
+ </tr>
3402
+ <tr>
3403
+ <td><p><span class="term"><em class="parameter"><code>cache_func</code></em> :</span></p></td>
3404
+ <td>a <a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a>
3405
+ </td>
3406
+ </tr>
3407
+ </tbody>
3408
+ </table></div>
3409
+ </div>
3410
+ <hr>
3411
+ <div class="refsect2" title="g_type_remove_class_cache_func ()">
3412
+ <a name="g-type-remove-class-cache-func"></a><h3>g_type_remove_class_cache_func ()</h3>
3413
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_remove_class_cache_func (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> cache_data</code></em>,
3414
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a> cache_func</code></em>);</pre>
3415
+ <p>
3416
+ Removes a previously installed <a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a>. The cache
3417
+ maintained by <em class="parameter"><code>cache_func</code></em> has to be empty when calling
3418
+ <a class="link" href="gobject-Type-Information.html#g-type-remove-class-cache-func" title="g_type_remove_class_cache_func ()"><code class="function">g_type_remove_class_cache_func()</code></a> to avoid leaks.
3419
+ </p>
3420
+ <div class="variablelist"><table border="0">
3421
+ <col align="left" valign="top">
3422
+ <tbody>
3423
+ <tr>
3424
+ <td><p><span class="term"><em class="parameter"><code>cache_data</code></em> :</span></p></td>
3425
+ <td>data that was given when adding <em class="parameter"><code>cache_func</code></em>
3426
+ </td>
3427
+ </tr>
3428
+ <tr>
3429
+ <td><p><span class="term"><em class="parameter"><code>cache_func</code></em> :</span></p></td>
3430
+ <td>a <a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a>
3431
+ </td>
3432
+ </tr>
3433
+ </tbody>
3434
+ </table></div>
3435
+ </div>
3436
+ <hr>
3437
+ <div class="refsect2" title="g_type_class_unref_uncached ()">
3438
+ <a name="g-type-class-unref-uncached"></a><h3>g_type_class_unref_uncached ()</h3>
3439
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_class_unref_uncached (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_class</code></em>);</pre>
3440
+ <p>
3441
+ A variant of <a class="link" href="gobject-Type-Information.html#g-type-class-unref" title="g_type_class_unref ()"><code class="function">g_type_class_unref()</code></a> for use in <a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a>
3442
+ implementations. It unreferences a class without consulting the chain
3443
+ of <a class="link" href="gobject-Type-Information.html#GTypeClassCacheFunc" title="GTypeClassCacheFunc ()"><span class="type">GTypeClassCacheFunc</span></a>s, avoiding the recursion which would occur
3444
+ otherwise.
3445
+ </p>
3446
+ <div class="variablelist"><table border="0">
3447
+ <col align="left" valign="top">
3448
+ <tbody><tr>
3449
+ <td><p><span class="term"><em class="parameter"><code>g_class</code></em> :</span></p></td>
3450
+ <td>The <a class="link" href="gobject-Type-Information.html#GTypeClass" title="GTypeClass"><span class="type">GTypeClass</span></a> structure to unreference.
3451
+ </td>
3452
+ </tr></tbody>
3453
+ </table></div>
3454
+ </div>
3455
+ <hr>
3456
+ <div class="refsect2" title="g_type_add_interface_check ()">
3457
+ <a name="g-type-add-interface-check"></a><h3>g_type_add_interface_check ()</h3>
3458
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_add_interface_check (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> check_data</code></em>,
3459
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeInterfaceCheckFunc" title="GTypeInterfaceCheckFunc ()"><span class="type">GTypeInterfaceCheckFunc</span></a> check_func</code></em>);</pre>
3460
+ <p>
3461
+ Adds a function to be called after an interface vtable is
3462
+ initialized for any class (i.e. after the <em class="parameter"><code>interface_init</code></em> member of
3463
+ <a class="link" href="gobject-Type-Information.html#GInterfaceInfo" title="GInterfaceInfo"><span class="type">GInterfaceInfo</span></a> has been called).
3464
+ </p>
3465
+ <p>
3466
+ This function is useful when you want to check an invariant that
3467
+ depends on the interfaces of a class. For instance, the
3468
+ implementation of <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> uses this facility to check that an
3469
+ object implements all of the properties that are defined on its
3470
+ interfaces.
3471
+ </p>
3472
+ <div class="variablelist"><table border="0">
3473
+ <col align="left" valign="top">
3474
+ <tbody>
3475
+ <tr>
3476
+ <td><p><span class="term"><em class="parameter"><code>check_data</code></em> :</span></p></td>
3477
+ <td>data to pass to <em class="parameter"><code>check_func</code></em>
3478
+ </td>
3479
+ </tr>
3480
+ <tr>
3481
+ <td><p><span class="term"><em class="parameter"><code>check_func</code></em> :</span></p></td>
3482
+ <td>function to be called after each interface
3483
+ is initialized.
3484
+ </td>
3485
+ </tr>
3486
+ </tbody>
3487
+ </table></div>
3488
+ <p class="since">Since 2.4</p>
3489
+ </div>
3490
+ <hr>
3491
+ <div class="refsect2" title="g_type_remove_interface_check ()">
3492
+ <a name="g-type-remove-interface-check"></a><h3>g_type_remove_interface_check ()</h3>
3493
+ <pre class="programlisting"><span class="returnvalue">void</span> g_type_remove_interface_check (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> check_data</code></em>,
3494
+ <em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GTypeInterfaceCheckFunc" title="GTypeInterfaceCheckFunc ()"><span class="type">GTypeInterfaceCheckFunc</span></a> check_func</code></em>);</pre>
3495
+ <p>
3496
+ Removes an interface check function added with
3497
+ <a class="link" href="gobject-Type-Information.html#g-type-add-interface-check" title="g_type_add_interface_check ()"><code class="function">g_type_add_interface_check()</code></a>.
3498
+ </p>
3499
+ <div class="variablelist"><table border="0">
3500
+ <col align="left" valign="top">
3501
+ <tbody>
3502
+ <tr>
3503
+ <td><p><span class="term"><em class="parameter"><code>check_data</code></em> :</span></p></td>
3504
+ <td>callback data passed to <a class="link" href="gobject-Type-Information.html#g-type-add-interface-check" title="g_type_add_interface_check ()"><code class="function">g_type_add_interface_check()</code></a>
3505
+ </td>
3506
+ </tr>
3507
+ <tr>
3508
+ <td><p><span class="term"><em class="parameter"><code>check_func</code></em> :</span></p></td>
3509
+ <td>callback function passed to <a class="link" href="gobject-Type-Information.html#g-type-add-interface-check" title="g_type_add_interface_check ()"><code class="function">g_type_add_interface_check()</code></a>
3510
+ </td>
3511
+ </tr>
3512
+ </tbody>
3513
+ </table></div>
3514
+ <p class="since">Since 2.4</p>
3515
+ </div>
3516
+ <hr>
3517
+ <div class="refsect2" title="GTypeInterfaceCheckFunc ()">
3518
+ <a name="GTypeInterfaceCheckFunc"></a><h3>GTypeInterfaceCheckFunc ()</h3>
3519
+ <pre class="programlisting"><span class="returnvalue">void</span> (*GTypeInterfaceCheckFunc) (<em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> check_data</code></em>,
3520
+ <em class="parameter"><code><a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> g_iface</code></em>);</pre>
3521
+ <p>
3522
+ A callback called after an interface vtable is initialized.
3523
+ See <a class="link" href="gobject-Type-Information.html#g-type-add-interface-check" title="g_type_add_interface_check ()"><code class="function">g_type_add_interface_check()</code></a>.
3524
+ </p>
3525
+ <div class="variablelist"><table border="0">
3526
+ <col align="left" valign="top">
3527
+ <tbody>
3528
+ <tr>
3529
+ <td><p><span class="term"><em class="parameter"><code>check_data</code></em> :</span></p></td>
3530
+ <td>data passed to <a class="link" href="gobject-Type-Information.html#g-type-add-interface-check" title="g_type_add_interface_check ()"><code class="function">g_type_add_interface_check()</code></a>.
3531
+ </td>
3532
+ </tr>
3533
+ <tr>
3534
+ <td><p><span class="term"><em class="parameter"><code>g_iface</code></em> :</span></p></td>
3535
+ <td>the interface that has been initialized
3536
+ </td>
3537
+ </tr>
3538
+ </tbody>
3539
+ </table></div>
3540
+ <p class="since">Since 2.4</p>
3541
+ </div>
3542
+ <hr>
3543
+ <div class="refsect2" title="g_type_value_table_peek ()">
3544
+ <a name="g-type-value-table-peek"></a><h3>g_type_value_table_peek ()</h3>
3545
+ <pre class="programlisting"><a class="link" href="gobject-Type-Information.html#GTypeValueTable" title="GTypeValueTable"><span class="returnvalue">GTypeValueTable</span></a>* g_type_value_table_peek (<em class="parameter"><code><a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> type</code></em>);</pre>
3546
+ <p>
3547
+ Returns the location of the <a class="link" href="gobject-Type-Information.html#GTypeValueTable" title="GTypeValueTable"><span class="type">GTypeValueTable</span></a> associated with <em class="parameter"><code>type</code></em>.
3548
+ <span class="emphasis"><em>Note that this function should only be used from source code
3549
+ that implements or has internal knowledge of the implementation of
3550
+ <em class="parameter"><code>type</code></em>.</em></span>
3551
+ </p>
3552
+ <div class="variablelist"><table border="0">
3553
+ <col align="left" valign="top">
3554
+ <tbody>
3555
+ <tr>
3556
+ <td><p><span class="term"><em class="parameter"><code>type</code></em> :</span></p></td>
3557
+ <td>A <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> value.
3558
+ </td>
3559
+ </tr>
3560
+ <tr>
3561
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3562
+ <td> Location of the <a class="link" href="gobject-Type-Information.html#GTypeValueTable" title="GTypeValueTable"><span class="type">GTypeValueTable</span></a> associated with <em class="parameter"><code>type</code></em> or
3563
+ <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is no <a class="link" href="gobject-Type-Information.html#GTypeValueTable" title="GTypeValueTable"><span class="type">GTypeValueTable</span></a> associated with <em class="parameter"><code>type</code></em>.
3564
+ </td>
3565
+ </tr>
3566
+ </tbody>
3567
+ </table></div>
3568
+ </div>
3569
+ <hr>
3570
+ <div class="refsect2" title="G_DEFINE_TYPE()">
3571
+ <a name="G-DEFINE-TYPE:CAPS"></a><h3>G_DEFINE_TYPE()</h3>
3572
+ <pre class="programlisting">#define G_DEFINE_TYPE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
3573
+ </pre>
3574
+ <p>
3575
+ A convenience macro for type implementations, which declares a
3576
+ class initialization function, an instance initialization function (see <a class="link" href="gobject-Type-Information.html#GTypeInfo" title="GTypeInfo"><span class="type">GTypeInfo</span></a> for information about
3577
+ these) and a static variable named <em class="parameter"><code>t_n</code></em>_parent_class pointing to the parent class. Furthermore, it defines
3578
+ a *_get_type() function. See <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE-EXTENDED:CAPS" title="G_DEFINE_TYPE_EXTENDED()"><code class="function">G_DEFINE_TYPE_EXTENDED()</code></a> for an example.
3579
+ </p>
3580
+ <div class="variablelist"><table border="0">
3581
+ <col align="left" valign="top">
3582
+ <tbody>
3583
+ <tr>
3584
+ <td><p><span class="term"><em class="parameter"><code>TN</code></em> :</span></p></td>
3585
+ <td>The name of the new type, in Camel case.
3586
+ </td>
3587
+ </tr>
3588
+ <tr>
3589
+ <td><p><span class="term"><em class="parameter"><code>t_n</code></em> :</span></p></td>
3590
+ <td>The name of the new type, in lowercase, with words
3591
+ separated by '_'.
3592
+ </td>
3593
+ </tr>
3594
+ <tr>
3595
+ <td><p><span class="term"><em class="parameter"><code>T_P</code></em> :</span></p></td>
3596
+ <td>The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> of the parent type.
3597
+ </td>
3598
+ </tr>
3599
+ </tbody>
3600
+ </table></div>
3601
+ <p class="since">Since 2.4</p>
3602
+ </div>
3603
+ <hr>
3604
+ <div class="refsect2" title="G_DEFINE_TYPE_WITH_CODE()">
3605
+ <a name="G-DEFINE-TYPE-WITH-CODE:CAPS"></a><h3>G_DEFINE_TYPE_WITH_CODE()</h3>
3606
+ <pre class="programlisting">#define G_DEFINE_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, 0) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
3607
+ </pre>
3608
+ <p>
3609
+ A convenience macro for type implementations.
3610
+ Similar to <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE:CAPS" title="G_DEFINE_TYPE()"><code class="function">G_DEFINE_TYPE()</code></a>, but allows you to insert custom code into the
3611
+ *_get_type() function, e.g. interface implementations via <a class="link" href="gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS" title="G_IMPLEMENT_INTERFACE()"><code class="function">G_IMPLEMENT_INTERFACE()</code></a>.
3612
+ See <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE-EXTENDED:CAPS" title="G_DEFINE_TYPE_EXTENDED()"><code class="function">G_DEFINE_TYPE_EXTENDED()</code></a> for an example.
3613
+ </p>
3614
+ <div class="variablelist"><table border="0">
3615
+ <col align="left" valign="top">
3616
+ <tbody>
3617
+ <tr>
3618
+ <td><p><span class="term"><em class="parameter"><code>TN</code></em> :</span></p></td>
3619
+ <td>The name of the new type, in Camel case.
3620
+ </td>
3621
+ </tr>
3622
+ <tr>
3623
+ <td><p><span class="term"><em class="parameter"><code>t_n</code></em> :</span></p></td>
3624
+ <td>The name of the new type in lowercase, with words separated by '_'.
3625
+ </td>
3626
+ </tr>
3627
+ <tr>
3628
+ <td><p><span class="term"><em class="parameter"><code>T_P</code></em> :</span></p></td>
3629
+ <td>The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> of the parent type.
3630
+ </td>
3631
+ </tr>
3632
+ <tr>
3633
+ <td><p><span class="term"><em class="parameter"><code>_C_</code></em> :</span></p></td>
3634
+ <td>Custom code that gets inserted in the *_get_type() function.
3635
+ </td>
3636
+ </tr>
3637
+ </tbody>
3638
+ </table></div>
3639
+ <p class="since">Since 2.4</p>
3640
+ </div>
3641
+ <hr>
3642
+ <div class="refsect2" title="G_DEFINE_ABSTRACT_TYPE()">
3643
+ <a name="G-DEFINE-ABSTRACT-TYPE:CAPS"></a><h3>G_DEFINE_ABSTRACT_TYPE()</h3>
3644
+ <pre class="programlisting">#define G_DEFINE_ABSTRACT_TYPE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, {})
3645
+ </pre>
3646
+ <p>
3647
+ A convenience macro for type implementations.
3648
+ Similar to <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE:CAPS" title="G_DEFINE_TYPE()"><code class="function">G_DEFINE_TYPE()</code></a>, but defines an abstract type.
3649
+ See <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE-EXTENDED:CAPS" title="G_DEFINE_TYPE_EXTENDED()"><code class="function">G_DEFINE_TYPE_EXTENDED()</code></a> for an example.
3650
+ </p>
3651
+ <div class="variablelist"><table border="0">
3652
+ <col align="left" valign="top">
3653
+ <tbody>
3654
+ <tr>
3655
+ <td><p><span class="term"><em class="parameter"><code>TN</code></em> :</span></p></td>
3656
+ <td>The name of the new type, in Camel case.
3657
+ </td>
3658
+ </tr>
3659
+ <tr>
3660
+ <td><p><span class="term"><em class="parameter"><code>t_n</code></em> :</span></p></td>
3661
+ <td>The name of the new type, in lowercase, with words
3662
+ separated by '_'.
3663
+ </td>
3664
+ </tr>
3665
+ <tr>
3666
+ <td><p><span class="term"><em class="parameter"><code>T_P</code></em> :</span></p></td>
3667
+ <td>The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> of the parent type.
3668
+ </td>
3669
+ </tr>
3670
+ </tbody>
3671
+ </table></div>
3672
+ <p class="since">Since 2.4</p>
3673
+ </div>
3674
+ <hr>
3675
+ <div class="refsect2" title="G_DEFINE_ABSTRACT_TYPE_WITH_CODE()">
3676
+ <a name="G-DEFINE-ABSTRACT-TYPE-WITH-CODE:CAPS"></a><h3>G_DEFINE_ABSTRACT_TYPE_WITH_CODE()</h3>
3677
+ <pre class="programlisting">#define G_DEFINE_ABSTRACT_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
3678
+ </pre>
3679
+ <p>
3680
+ A convenience macro for type implementations.
3681
+ Similar to <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS" title="G_DEFINE_TYPE_WITH_CODE()"><code class="function">G_DEFINE_TYPE_WITH_CODE()</code></a>, but defines an abstract type and allows you to
3682
+ insert custom code into the *_get_type() function, e.g. interface implementations
3683
+ via <a class="link" href="gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS" title="G_IMPLEMENT_INTERFACE()"><code class="function">G_IMPLEMENT_INTERFACE()</code></a>. See <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE-EXTENDED:CAPS" title="G_DEFINE_TYPE_EXTENDED()"><code class="function">G_DEFINE_TYPE_EXTENDED()</code></a> for an example.
3684
+ </p>
3685
+ <div class="variablelist"><table border="0">
3686
+ <col align="left" valign="top">
3687
+ <tbody>
3688
+ <tr>
3689
+ <td><p><span class="term"><em class="parameter"><code>TN</code></em> :</span></p></td>
3690
+ <td>The name of the new type, in Camel case.
3691
+ </td>
3692
+ </tr>
3693
+ <tr>
3694
+ <td><p><span class="term"><em class="parameter"><code>t_n</code></em> :</span></p></td>
3695
+ <td>The name of the new type, in lowercase, with words
3696
+ separated by '_'.
3697
+ </td>
3698
+ </tr>
3699
+ <tr>
3700
+ <td><p><span class="term"><em class="parameter"><code>T_P</code></em> :</span></p></td>
3701
+ <td>The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> of the parent type.
3702
+ </td>
3703
+ </tr>
3704
+ <tr>
3705
+ <td><p><span class="term"><em class="parameter"><code>_C_</code></em> :</span></p></td>
3706
+ <td>Custom code that gets inserted in the @<code class="function">type_name_get_type()</code> function.
3707
+ </td>
3708
+ </tr>
3709
+ </tbody>
3710
+ </table></div>
3711
+ <p class="since">Since 2.4</p>
3712
+ </div>
3713
+ <hr>
3714
+ <div class="refsect2" title="G_DEFINE_INTERFACE()">
3715
+ <a name="G-DEFINE-INTERFACE:CAPS"></a><h3>G_DEFINE_INTERFACE()</h3>
3716
+ <pre class="programlisting">#define G_DEFINE_INTERFACE(TN, t_n, T_P) G_DEFINE_INTERFACE_WITH_CODE(TN, t_n, T_P, ;)
3717
+ </pre>
3718
+ <p>
3719
+ A convenience macro for <a class="link" href="gobject-Type-Information.html#GTypeInterface" title="GTypeInterface"><span class="type">GTypeInterface</span></a> definitions, which declares
3720
+ a default vtable initialization function and defines a *_get_type()
3721
+ function.
3722
+ </p>
3723
+ <p>
3724
+ The macro expects the interface initialization function to have the
3725
+ name <code class="literal">t_n ## _default_init</code>, and the interface
3726
+ structure to have the name <code class="literal">TN ## Interface</code>.
3727
+ </p>
3728
+ <div class="variablelist"><table border="0">
3729
+ <col align="left" valign="top">
3730
+ <tbody>
3731
+ <tr>
3732
+ <td><p><span class="term"><em class="parameter"><code>TN</code></em> :</span></p></td>
3733
+ <td>The name of the new type, in Camel case.
3734
+ </td>
3735
+ </tr>
3736
+ <tr>
3737
+ <td><p><span class="term"><em class="parameter"><code>t_n</code></em> :</span></p></td>
3738
+ <td>The name of the new type, in lowercase, with words separated by '_'.
3739
+ </td>
3740
+ </tr>
3741
+ <tr>
3742
+ <td><p><span class="term"><em class="parameter"><code>T_P</code></em> :</span></p></td>
3743
+ <td>The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> of the prerequisite type for the interface, or 0
3744
+ (<a class="link" href="gobject-Type-Information.html#G-TYPE-INVALID:CAPS" title="G_TYPE_INVALID"><code class="literal">G_TYPE_INVALID</code></a>) for no prerequisite type.
3745
+ </td>
3746
+ </tr>
3747
+ </tbody>
3748
+ </table></div>
3749
+ <p class="since">Since 2.24</p>
3750
+ </div>
3751
+ <hr>
3752
+ <div class="refsect2" title="G_DEFINE_INTERFACE_WITH_CODE()">
3753
+ <a name="G-DEFINE-INTERFACE-WITH-CODE:CAPS"></a><h3>G_DEFINE_INTERFACE_WITH_CODE()</h3>
3754
+ <pre class="programlisting">#define G_DEFINE_INTERFACE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_INTERFACE_EXTENDED_BEGIN(TN, t_n, T_P) {_C_;} _G_DEFINE_INTERFACE_EXTENDED_END()
3755
+ </pre>
3756
+ <p>
3757
+ A convenience macro for <a class="link" href="gobject-Type-Information.html#GTypeInterface" title="GTypeInterface"><span class="type">GTypeInterface</span></a> definitions. Similar to
3758
+ <a class="link" href="gobject-Type-Information.html#G-DEFINE-INTERFACE:CAPS" title="G_DEFINE_INTERFACE()"><code class="function">G_DEFINE_INTERFACE()</code></a>, but allows you to insert custom code into the
3759
+ *_get_type() function, e.g. additional interface implementations
3760
+ via <a class="link" href="gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS" title="G_IMPLEMENT_INTERFACE()"><code class="function">G_IMPLEMENT_INTERFACE()</code></a>, or additional prerequisite types. See
3761
+ <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE-EXTENDED:CAPS" title="G_DEFINE_TYPE_EXTENDED()"><code class="function">G_DEFINE_TYPE_EXTENDED()</code></a> for a similar example using
3762
+ <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS" title="G_DEFINE_TYPE_WITH_CODE()"><code class="function">G_DEFINE_TYPE_WITH_CODE()</code></a>.
3763
+ </p>
3764
+ <div class="variablelist"><table border="0">
3765
+ <col align="left" valign="top">
3766
+ <tbody>
3767
+ <tr>
3768
+ <td><p><span class="term"><em class="parameter"><code>TN</code></em> :</span></p></td>
3769
+ <td>The name of the new type, in Camel case.
3770
+ </td>
3771
+ </tr>
3772
+ <tr>
3773
+ <td><p><span class="term"><em class="parameter"><code>t_n</code></em> :</span></p></td>
3774
+ <td>The name of the new type, in lowercase, with words separated by '_'.
3775
+ </td>
3776
+ </tr>
3777
+ <tr>
3778
+ <td><p><span class="term"><em class="parameter"><code>T_P</code></em> :</span></p></td>
3779
+ <td>The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> of the prerequisite type for the interface, or 0
3780
+ (<a class="link" href="gobject-Type-Information.html#G-TYPE-INVALID:CAPS" title="G_TYPE_INVALID"><code class="literal">G_TYPE_INVALID</code></a>) for no prerequisite type.
3781
+ </td>
3782
+ </tr>
3783
+ <tr>
3784
+ <td><p><span class="term"><em class="parameter"><code>_C_</code></em> :</span></p></td>
3785
+ <td>Custom code that gets inserted in the *_get_type() function.
3786
+ </td>
3787
+ </tr>
3788
+ </tbody>
3789
+ </table></div>
3790
+ <p class="since">Since 2.24</p>
3791
+ </div>
3792
+ <hr>
3793
+ <div class="refsect2" title="G_IMPLEMENT_INTERFACE()">
3794
+ <a name="G-IMPLEMENT-INTERFACE:CAPS"></a><h3>G_IMPLEMENT_INTERFACE()</h3>
3795
+ <pre class="programlisting">#define G_IMPLEMENT_INTERFACE(TYPE_IFACE, iface_init)</pre>
3796
+ <p>
3797
+ A convenience macro to ease interface addition in the <em class="parameter"><code>_C_</code></em> section
3798
+ of <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE-WITH-CODE:CAPS" title="G_DEFINE_TYPE_WITH_CODE()"><code class="function">G_DEFINE_TYPE_WITH_CODE()</code></a> or <a class="link" href="gobject-Type-Information.html#G-DEFINE-ABSTRACT-TYPE-WITH-CODE:CAPS" title="G_DEFINE_ABSTRACT_TYPE_WITH_CODE()"><code class="function">G_DEFINE_ABSTRACT_TYPE_WITH_CODE()</code></a>.
3799
+ See <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE-EXTENDED:CAPS" title="G_DEFINE_TYPE_EXTENDED()"><code class="function">G_DEFINE_TYPE_EXTENDED()</code></a> for an example.
3800
+ </p>
3801
+ <p>
3802
+ Note that this macro can only be used together with the G_DEFINE_TYPE_*
3803
+ macros, since it depends on variable names from those macros.
3804
+ </p>
3805
+ <div class="variablelist"><table border="0">
3806
+ <col align="left" valign="top">
3807
+ <tbody>
3808
+ <tr>
3809
+ <td><p><span class="term"><em class="parameter"><code>TYPE_IFACE</code></em> :</span></p></td>
3810
+ <td>The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> of the interface to add
3811
+ </td>
3812
+ </tr>
3813
+ <tr>
3814
+ <td><p><span class="term"><em class="parameter"><code>iface_init</code></em> :</span></p></td>
3815
+ <td>The interface init function
3816
+ </td>
3817
+ </tr>
3818
+ </tbody>
3819
+ </table></div>
3820
+ <p class="since">Since 2.4</p>
3821
+ </div>
3822
+ <hr>
3823
+ <div class="refsect2" title="G_DEFINE_TYPE_EXTENDED()">
3824
+ <a name="G-DEFINE-TYPE-EXTENDED:CAPS"></a><h3>G_DEFINE_TYPE_EXTENDED()</h3>
3825
+ <pre class="programlisting">#define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END()
3826
+ </pre>
3827
+ <p>
3828
+ The most general convenience macro for type implementations, on which
3829
+ <a class="link" href="gobject-Type-Information.html#G-DEFINE-TYPE:CAPS" title="G_DEFINE_TYPE()"><code class="function">G_DEFINE_TYPE()</code></a>, etc are based.
3830
+ </p>
3831
+ <p>
3832
+ </p>
3833
+ <div class="informalexample">
3834
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
3835
+ <tbody>
3836
+ <tr>
3837
+ <td class="listing_lines" align="right"><pre>1
3838
+ 2
3839
+ 3
3840
+ 4
3841
+ 5
3842
+ 6</pre></td>
3843
+ <td class="listing_code"><pre class="programlisting"><span class="function"><a href="gobject-Type-Information.html#G-DEFINE-TYPE-EXTENDED:CAPS">G_DEFINE_TYPE_EXTENDED</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">GtkGadget</span><span class="symbol">,</span>
3844
+ <span class="normal"> gtk_gadget</span><span class="symbol">,</span>
3845
+ <span class="normal"> GTK_TYPE_WIDGET</span><span class="symbol">,</span>
3846
+ <span class="normal"> </span><span class="number">0</span><span class="symbol">,</span>
3847
+ <span class="normal"> </span><span class="function"><a href="gobject-Type-Information.html#G-IMPLEMENT-INTERFACE:CAPS">G_IMPLEMENT_INTERFACE</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">TYPE_GIZMO</span><span class="symbol">,</span>
3848
+ <span class="normal"> gtk_gadget_gizmo_init</span><span class="symbol">));</span></pre></td>
3849
+ </tr>
3850
+ </tbody>
3851
+ </table>
3852
+ </div>
3853
+
3854
+ <p>
3855
+ expands to
3856
+ </p>
3857
+ <div class="informalexample">
3858
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
3859
+ <tbody>
3860
+ <tr>
3861
+ <td class="listing_lines" align="right"><pre>1
3862
+ 2
3863
+ 3
3864
+ 4
3865
+ 5
3866
+ 6
3867
+ 7
3868
+ 8
3869
+ 9
3870
+ 10
3871
+ 11
3872
+ 12
3873
+ 13
3874
+ 14
3875
+ 15
3876
+ 16
3877
+ 17
3878
+ 18
3879
+ 19
3880
+ 20
3881
+ 21
3882
+ 22
3883
+ 23
3884
+ 24
3885
+ 25
3886
+ 26
3887
+ 27
3888
+ 28
3889
+ 29
3890
+ 30
3891
+ 31
3892
+ 32
3893
+ 33</pre></td>
3894
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span><span class="function">gtk_gadget_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GtkGadget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self</span><span class="symbol">);</span>
3895
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span><span class="function">gtk_gadget_class_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GtkGadgetClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">klass</span><span class="symbol">);</span>
3896
+ <span class="keyword">static</span><span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> gtk_gadget_parent_class </span><span class="symbol">=</span><span class="normal"> <a href="./../glib/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
3897
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span><span class="function">gtk_gadget_class_intern_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">gpointer</span><span class="normal"> klass</span><span class="symbol">)</span>
3898
+ <span class="cbracket">{</span>
3899
+ <span class="normal"> gtk_gadget_parent_class </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="gobject-Type-Information.html#g-type-class-peek-parent">g_type_class_peek_parent</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">klass</span><span class="symbol">);</span>
3900
+ <span class="normal"> </span><span class="function">gtk_gadget_class_init</span><span class="normal"> </span><span class="symbol">((</span><span class="normal">GtkGadgetClass</span><span class="symbol">*)</span><span class="normal"> klass</span><span class="symbol">);</span>
3901
+ <span class="cbracket">}</span>
3902
+
3903
+ <span class="normal"><a href="gobject-Type-Information.html#GType">GType</a></span>
3904
+ <span class="function">gtk_gadget_get_type</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
3905
+ <span class="cbracket">{</span>
3906
+ <span class="normal"> </span><span class="keyword">static</span><span class="normal"> </span><span class="keyword">volatile</span><span class="normal"> </span><span class="usertype">gsize</span><span class="normal"> g_define_type_id__volatile </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>
3907
+ <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="./../glib/glib/glib-Threads.html#g-once-init-enter">g_once_init_enter</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">g_define_type_id__volatile</span><span class="symbol">))</span>
3908
+ <span class="normal"> </span><span class="cbracket">{</span>
3909
+ <span class="normal"> </span><span class="usertype">GType</span><span class="normal"> g_define_type_id </span><span class="symbol">=</span>
3910
+ <span class="normal"> </span><span class="function"><a href="gobject-Type-Information.html#g-type-register-static-simple">g_type_register_static_simple</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">GTK_TYPE_WIDGET</span><span class="symbol">,</span>
3911
+ <span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-Quarks.html#g-intern-static-string">g_intern_static_string</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"GtkGadget"</span><span class="symbol">),</span>
3912
+ <span class="normal"> </span><span class="keyword">sizeof</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">GtkGadgetClass</span><span class="symbol">),</span>
3913
+ <span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="gobject-Type-Information.html#GClassInitFunc">GClassInitFunc</a></span><span class="symbol">)</span><span class="normal"> gtk_gadget_class_intern_init</span><span class="symbol">,</span>
3914
+ <span class="normal"> </span><span class="keyword">sizeof</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">GtkGadget</span><span class="symbol">),</span>
3915
+ <span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="gobject-Type-Information.html#GInstanceInitFunc">GInstanceInitFunc</a></span><span class="symbol">)</span><span class="normal"> gtk_gadget_init</span><span class="symbol">,</span>
3916
+ <span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="gobject-Type-Information.html#GTypeFlags">GTypeFlags</a></span><span class="symbol">)</span><span class="normal"> flags</span><span class="symbol">);</span>
3917
+ <span class="normal"> </span><span class="cbracket">{</span>
3918
+ <span class="normal"> </span><span class="keyword">static</span><span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">GInterfaceInfo</span><span class="normal"> g_implement_interface_info </span><span class="symbol">=</span><span class="normal"> </span><span class="cbracket">{</span>
3919
+ <span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="gobject-Type-Information.html#GInterfaceInitFunc">GInterfaceInitFunc</a></span><span class="symbol">)</span><span class="normal"> gtk_gadget_gizmo_init</span>
3920
+ <span class="normal"> </span><span class="cbracket">}</span><span class="symbol">;</span>
3921
+ <span class="normal"> </span><span class="function"><a href="gobject-Type-Information.html#g-type-add-interface-static">g_type_add_interface_static</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">g_define_type_id</span><span class="symbol">,</span><span class="normal"> TYPE_GIZMO</span><span class="symbol">,</span><span class="normal"> </span><span class="symbol">&amp;</span><span class="normal">g_implement_interface_info</span><span class="symbol">);</span>
3922
+ <span class="normal"> </span><span class="cbracket">}</span>
3923
+ <span class="normal"> </span><span class="function"><a href="./../glib/glib/glib-Threads.html#g-once-init-leave">g_once_init_leave</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">g_define_type_id__volatile</span><span class="symbol">,</span><span class="normal"> g_define_type_id</span><span class="symbol">);</span>
3924
+ <span class="normal"> </span><span class="cbracket">}</span>
3925
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> g_define_type_id__volatile</span><span class="symbol">;</span>
3926
+ <span class="cbracket">}</span></pre></td>
3927
+ </tr>
3928
+ </tbody>
3929
+ </table>
3930
+ </div>
3931
+
3932
+ <p>
3933
+ The only pieces which have to be manually provided are the definitions of
3934
+ the instance and class structure and the definitions of the instance and
3935
+ class init functions.
3936
+ </p>
3937
+ <div class="variablelist"><table border="0">
3938
+ <col align="left" valign="top">
3939
+ <tbody>
3940
+ <tr>
3941
+ <td><p><span class="term"><em class="parameter"><code>TN</code></em> :</span></p></td>
3942
+ <td>The name of the new type, in Camel case.
3943
+ </td>
3944
+ </tr>
3945
+ <tr>
3946
+ <td><p><span class="term"><em class="parameter"><code>t_n</code></em> :</span></p></td>
3947
+ <td>The name of the new type, in lowercase, with words
3948
+ separated by '_'.
3949
+ </td>
3950
+ </tr>
3951
+ <tr>
3952
+ <td><p><span class="term"><em class="parameter"><code>T_P</code></em> :</span></p></td>
3953
+ <td>The <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> of the parent type.
3954
+ </td>
3955
+ </tr>
3956
+ <tr>
3957
+ <td><p><span class="term"><em class="parameter"><code>_f_</code></em> :</span></p></td>
3958
+ <td>
3959
+ <a class="link" href="gobject-Type-Information.html#GTypeFlags" title="enum GTypeFlags"><span class="type">GTypeFlags</span></a> to pass to <a class="link" href="gobject-Type-Information.html#g-type-register-static" title="g_type_register_static ()"><code class="function">g_type_register_static()</code></a>
3960
+ </td>
3961
+ </tr>
3962
+ <tr>
3963
+ <td><p><span class="term"><em class="parameter"><code>_C_</code></em> :</span></p></td>
3964
+ <td>Custom code that gets inserted in the *_get_type() function.
3965
+ </td>
3966
+ </tr>
3967
+ </tbody>
3968
+ </table></div>
3969
+ <p class="since">Since 2.4</p>
3970
+ </div>
3971
+ <hr>
3972
+ <div class="refsect2" title="G_TYPE_INVALID">
3973
+ <a name="G-TYPE-INVALID:CAPS"></a><h3>G_TYPE_INVALID</h3>
3974
+ <pre class="programlisting">#define G_TYPE_INVALID G_TYPE_MAKE_FUNDAMENTAL (0)
3975
+ </pre>
3976
+ <p>
3977
+ An invalid <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a> used as error return value in some functions which return
3978
+ a <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a>.
3979
+ </p>
3980
+ </div>
3981
+ <hr>
3982
+ <div class="refsect2" title="G_TYPE_NONE">
3983
+ <a name="G-TYPE-NONE:CAPS"></a><h3>G_TYPE_NONE</h3>
3984
+ <pre class="programlisting">#define G_TYPE_NONE G_TYPE_MAKE_FUNDAMENTAL (1)
3985
+ </pre>
3986
+ <p>
3987
+ A fundamental type which is used as a replacement for the C
3988
+ <code class="literal">void</code> return type.
3989
+ </p>
3990
+ </div>
3991
+ <hr>
3992
+ <div class="refsect2" title="G_TYPE_INTERFACE">
3993
+ <a name="G-TYPE-INTERFACE:CAPS"></a><h3>G_TYPE_INTERFACE</h3>
3994
+ <pre class="programlisting">#define G_TYPE_INTERFACE G_TYPE_MAKE_FUNDAMENTAL (2)
3995
+ </pre>
3996
+ <p>
3997
+ The fundamental type from which all interfaces are derived.
3998
+ </p>
3999
+ </div>
4000
+ <hr>
4001
+ <div class="refsect2" title="G_TYPE_CHAR">
4002
+ <a name="G-TYPE-CHAR:CAPS"></a><h3>G_TYPE_CHAR</h3>
4003
+ <pre class="programlisting">#define G_TYPE_CHAR G_TYPE_MAKE_FUNDAMENTAL (3)
4004
+ </pre>
4005
+ <p>
4006
+ The fundamental type corresponding to <a href="./../glib/glib/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>.
4007
+ The type designated by G_TYPE_CHAR is unconditionally an 8-bit signed integer.
4008
+ This may or may not be the same type a the C type "gchar".
4009
+ </p>
4010
+ </div>
4011
+ <hr>
4012
+ <div class="refsect2" title="G_TYPE_UCHAR">
4013
+ <a name="G-TYPE-UCHAR:CAPS"></a><h3>G_TYPE_UCHAR</h3>
4014
+ <pre class="programlisting">#define G_TYPE_UCHAR G_TYPE_MAKE_FUNDAMENTAL (4)
4015
+ </pre>
4016
+ <p>
4017
+ The fundamental type corresponding to <a href="./../glib/glib/glib-Basic-Types.html#guchar"><span class="type">guchar</span></a>.
4018
+ </p>
4019
+ </div>
4020
+ <hr>
4021
+ <div class="refsect2" title="G_TYPE_BOOLEAN">
4022
+ <a name="G-TYPE-BOOLEAN:CAPS"></a><h3>G_TYPE_BOOLEAN</h3>
4023
+ <pre class="programlisting">#define G_TYPE_BOOLEAN G_TYPE_MAKE_FUNDAMENTAL (5)
4024
+ </pre>
4025
+ <p>
4026
+ The fundamental type corresponding to <a href="./../glib/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>.
4027
+ </p>
4028
+ </div>
4029
+ <hr>
4030
+ <div class="refsect2" title="G_TYPE_INT">
4031
+ <a name="G-TYPE-INT:CAPS"></a><h3>G_TYPE_INT</h3>
4032
+ <pre class="programlisting">#define G_TYPE_INT G_TYPE_MAKE_FUNDAMENTAL (6)
4033
+ </pre>
4034
+ <p>
4035
+ The fundamental type corresponding to <a href="./../glib/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a>.
4036
+ </p>
4037
+ </div>
4038
+ <hr>
4039
+ <div class="refsect2" title="G_TYPE_UINT">
4040
+ <a name="G-TYPE-UINT:CAPS"></a><h3>G_TYPE_UINT</h3>
4041
+ <pre class="programlisting">#define G_TYPE_UINT G_TYPE_MAKE_FUNDAMENTAL (7)
4042
+ </pre>
4043
+ <p>
4044
+ The fundamental type corresponding to <a href="./../glib/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a>.
4045
+ </p>
4046
+ </div>
4047
+ <hr>
4048
+ <div class="refsect2" title="G_TYPE_LONG">
4049
+ <a name="G-TYPE-LONG:CAPS"></a><h3>G_TYPE_LONG</h3>
4050
+ <pre class="programlisting">#define G_TYPE_LONG G_TYPE_MAKE_FUNDAMENTAL (8)
4051
+ </pre>
4052
+ <p>
4053
+ The fundamental type corresponding to <a href="./../glib/glib/glib-Basic-Types.html#glong"><span class="type">glong</span></a>.
4054
+ </p>
4055
+ </div>
4056
+ <hr>
4057
+ <div class="refsect2" title="G_TYPE_ULONG">
4058
+ <a name="G-TYPE-ULONG:CAPS"></a><h3>G_TYPE_ULONG</h3>
4059
+ <pre class="programlisting">#define G_TYPE_ULONG G_TYPE_MAKE_FUNDAMENTAL (9)
4060
+ </pre>
4061
+ <p>
4062
+ The fundamental type corresponding to <a href="./../glib/glib/glib-Basic-Types.html#gulong"><span class="type">gulong</span></a>.
4063
+ </p>
4064
+ </div>
4065
+ <hr>
4066
+ <div class="refsect2" title="G_TYPE_INT64">
4067
+ <a name="G-TYPE-INT64:CAPS"></a><h3>G_TYPE_INT64</h3>
4068
+ <pre class="programlisting">#define G_TYPE_INT64 G_TYPE_MAKE_FUNDAMENTAL (10)
4069
+ </pre>
4070
+ <p>
4071
+ The fundamental type corresponding to <a href="./../glib/glib/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a>.
4072
+ </p>
4073
+ </div>
4074
+ <hr>
4075
+ <div class="refsect2" title="G_TYPE_UINT64">
4076
+ <a name="G-TYPE-UINT64:CAPS"></a><h3>G_TYPE_UINT64</h3>
4077
+ <pre class="programlisting">#define G_TYPE_UINT64 G_TYPE_MAKE_FUNDAMENTAL (11)
4078
+ </pre>
4079
+ <p>
4080
+ The fundamental type corresponding to <a href="./../glib/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a>.
4081
+ </p>
4082
+ </div>
4083
+ <hr>
4084
+ <div class="refsect2" title="G_TYPE_ENUM">
4085
+ <a name="G-TYPE-ENUM:CAPS"></a><h3>G_TYPE_ENUM</h3>
4086
+ <pre class="programlisting">#define G_TYPE_ENUM G_TYPE_MAKE_FUNDAMENTAL (12)
4087
+ </pre>
4088
+ <p>
4089
+ The fundamental type from which all enumeration types are derived.
4090
+ </p>
4091
+ </div>
4092
+ <hr>
4093
+ <div class="refsect2" title="G_TYPE_FLAGS">
4094
+ <a name="G-TYPE-FLAGS:CAPS"></a><h3>G_TYPE_FLAGS</h3>
4095
+ <pre class="programlisting">#define G_TYPE_FLAGS G_TYPE_MAKE_FUNDAMENTAL (13)
4096
+ </pre>
4097
+ <p>
4098
+ The fundamental type from which all flags types are derived.
4099
+ </p>
4100
+ </div>
4101
+ <hr>
4102
+ <div class="refsect2" title="G_TYPE_FLOAT">
4103
+ <a name="G-TYPE-FLOAT:CAPS"></a><h3>G_TYPE_FLOAT</h3>
4104
+ <pre class="programlisting">#define G_TYPE_FLOAT G_TYPE_MAKE_FUNDAMENTAL (14)
4105
+ </pre>
4106
+ <p>
4107
+ The fundamental type corresponding to <a href="./../glib/glib/glib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a>.
4108
+ </p>
4109
+ </div>
4110
+ <hr>
4111
+ <div class="refsect2" title="G_TYPE_DOUBLE">
4112
+ <a name="G-TYPE-DOUBLE:CAPS"></a><h3>G_TYPE_DOUBLE</h3>
4113
+ <pre class="programlisting">#define G_TYPE_DOUBLE G_TYPE_MAKE_FUNDAMENTAL (15)
4114
+ </pre>
4115
+ <p>
4116
+ The fundamental type corresponding to <a href="./../glib/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a>.
4117
+ </p>
4118
+ </div>
4119
+ <hr>
4120
+ <div class="refsect2" title="G_TYPE_STRING">
4121
+ <a name="G-TYPE-STRING:CAPS"></a><h3>G_TYPE_STRING</h3>
4122
+ <pre class="programlisting">#define G_TYPE_STRING G_TYPE_MAKE_FUNDAMENTAL (16)
4123
+ </pre>
4124
+ <p>
4125
+ The fundamental type corresponding to nul-terminated C strings.
4126
+ </p>
4127
+ </div>
4128
+ <hr>
4129
+ <div class="refsect2" title="G_TYPE_POINTER">
4130
+ <a name="G-TYPE-POINTER:CAPS"></a><h3>G_TYPE_POINTER</h3>
4131
+ <pre class="programlisting">#define G_TYPE_POINTER G_TYPE_MAKE_FUNDAMENTAL (17)
4132
+ </pre>
4133
+ <p>
4134
+ The fundamental type corresponding to <a href="./../glib/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>.
4135
+ </p>
4136
+ </div>
4137
+ <hr>
4138
+ <div class="refsect2" title="G_TYPE_BOXED">
4139
+ <a name="G-TYPE-BOXED:CAPS"></a><h3>G_TYPE_BOXED</h3>
4140
+ <pre class="programlisting">#define G_TYPE_BOXED G_TYPE_MAKE_FUNDAMENTAL (18)
4141
+ </pre>
4142
+ <p>
4143
+ The fundamental type from which all boxed types are derived.
4144
+ </p>
4145
+ </div>
4146
+ <hr>
4147
+ <div class="refsect2" title="G_TYPE_PARAM">
4148
+ <a name="G-TYPE-PARAM:CAPS"></a><h3>G_TYPE_PARAM</h3>
4149
+ <pre class="programlisting">#define G_TYPE_PARAM G_TYPE_MAKE_FUNDAMENTAL (19)
4150
+ </pre>
4151
+ <p>
4152
+ The fundamental type from which all <a class="link" href="gobject-GParamSpec.html#GParamSpec" title="GParamSpec"><span class="type">GParamSpec</span></a> types are derived.
4153
+ </p>
4154
+ </div>
4155
+ <hr>
4156
+ <div class="refsect2" title="G_TYPE_OBJECT">
4157
+ <a name="G-TYPE-OBJECT:CAPS"></a><h3>G_TYPE_OBJECT</h3>
4158
+ <pre class="programlisting">#define G_TYPE_OBJECT G_TYPE_MAKE_FUNDAMENTAL (20)
4159
+ </pre>
4160
+ <p>
4161
+ The fundamental type for <a class="link" href="gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a>.
4162
+ </p>
4163
+ </div>
4164
+ <hr>
4165
+ <div class="refsect2" title="G_TYPE_GTYPE">
4166
+ <a name="G-TYPE-GTYPE:CAPS"></a><h3>G_TYPE_GTYPE</h3>
4167
+ <pre class="programlisting">#define G_TYPE_GTYPE (g_gtype_get_type())
4168
+ </pre>
4169
+ <p>
4170
+ The type for <a class="link" href="gobject-Type-Information.html#GType" title="GType"><span class="type">GType</span></a>.
4171
+ </p>
4172
+ </div>
4173
+ <hr>
4174
+ <div class="refsect2" title="G_TYPE_RESERVED_GLIB_FIRST">
4175
+ <a name="G-TYPE-RESERVED-GLIB-FIRST:CAPS"></a><h3>G_TYPE_RESERVED_GLIB_FIRST</h3>
4176
+ <pre class="programlisting">#define G_TYPE_RESERVED_GLIB_FIRST (21)
4177
+ </pre>
4178
+ <p>
4179
+ First fundamental type number to create a new fundamental type id with
4180
+ <a class="link" href="gobject-Type-Information.html#G-TYPE-MAKE-FUNDAMENTAL:CAPS" title="G_TYPE_MAKE_FUNDAMENTAL()"><code class="function">G_TYPE_MAKE_FUNDAMENTAL()</code></a> reserved for GLib.
4181
+ </p>
4182
+ </div>
4183
+ <hr>
4184
+ <div class="refsect2" title="G_TYPE_RESERVED_GLIB_LAST">
4185
+ <a name="G-TYPE-RESERVED-GLIB-LAST:CAPS"></a><h3>G_TYPE_RESERVED_GLIB_LAST</h3>
4186
+ <pre class="programlisting">#define G_TYPE_RESERVED_GLIB_LAST (31)
4187
+ </pre>
4188
+ <p>
4189
+ Last fundamental type number reserved for GLib.
4190
+ </p>
4191
+ </div>
4192
+ <hr>
4193
+ <div class="refsect2" title="G_TYPE_RESERVED_BSE_FIRST">
4194
+ <a name="G-TYPE-RESERVED-BSE-FIRST:CAPS"></a><h3>G_TYPE_RESERVED_BSE_FIRST</h3>
4195
+ <pre class="programlisting">#define G_TYPE_RESERVED_BSE_FIRST (32)
4196
+ </pre>
4197
+ <p>
4198
+ First fundamental type number to create a new fundamental type id with
4199
+ <a class="link" href="gobject-Type-Information.html#G-TYPE-MAKE-FUNDAMENTAL:CAPS" title="G_TYPE_MAKE_FUNDAMENTAL()"><code class="function">G_TYPE_MAKE_FUNDAMENTAL()</code></a> reserved for BSE.
4200
+ </p>
4201
+ </div>
4202
+ <hr>
4203
+ <div class="refsect2" title="G_TYPE_RESERVED_BSE_LAST">
4204
+ <a name="G-TYPE-RESERVED-BSE-LAST:CAPS"></a><h3>G_TYPE_RESERVED_BSE_LAST</h3>
4205
+ <pre class="programlisting">#define G_TYPE_RESERVED_BSE_LAST (48)
4206
+ </pre>
4207
+ <p>
4208
+ Last fundamental type number reserved for BSE.
4209
+ </p>
4210
+ </div>
4211
+ <hr>
4212
+ <div class="refsect2" title="G_TYPE_RESERVED_USER_FIRST">
4213
+ <a name="G-TYPE-RESERVED-USER-FIRST:CAPS"></a><h3>G_TYPE_RESERVED_USER_FIRST</h3>
4214
+ <pre class="programlisting">#define G_TYPE_RESERVED_USER_FIRST (49)
4215
+ </pre>
4216
+ <p>
4217
+ First available fundamental type number to create new fundamental
4218
+ type id with <a class="link" href="gobject-Type-Information.html#G-TYPE-MAKE-FUNDAMENTAL:CAPS" title="G_TYPE_MAKE_FUNDAMENTAL()"><code class="function">G_TYPE_MAKE_FUNDAMENTAL()</code></a>.
4219
+ </p>
4220
+ </div>
4221
+ </div>
4222
+ </div>
4223
+ <div class="footer">
4224
+ <hr>
4225
+ Generated by GTK-Doc V1.14</div>
4226
+ </body>
4227
+ </html>