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,3379 @@
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>The Main Event Loop</title>
6
+ <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
7
+ <link rel="home" href="index.html" title="GLib Reference Manual">
8
+ <link rel="up" href="glib-core.html" title="GLib Core Application Support">
9
+ <link rel="prev" href="glib-core.html" title="GLib Core Application Support">
10
+ <link rel="next" href="glib-Threads.html" title="Threads">
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="glib-core.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18
+ <td><a accesskey="u" href="glib-core.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">GLib Reference Manual</th>
21
+ <td><a accesskey="n" href="glib-Threads.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="#glib-The-Main-Event-Loop.synopsis" class="shortcut">Top</a>
25
+  | 
26
+ <a href="#glib-The-Main-Event-Loop.description" class="shortcut">Description</a>
27
+ </td></tr>
28
+ </table>
29
+ <div class="refentry" title="The Main Event Loop">
30
+ <a name="glib-The-Main-Event-Loop"></a><div class="titlepage"></div>
31
+ <div class="refnamediv"><table width="100%"><tr>
32
+ <td valign="top">
33
+ <h2><span class="refentrytitle"><a name="glib-The-Main-Event-Loop.top_of_page"></a>The Main Event Loop</span></h2>
34
+ <p>The Main Event Loop — manages all available sources of events</p>
35
+ </td>
36
+ <td valign="top" align="right"></td>
37
+ </tr></table></div>
38
+ <div class="refsynopsisdiv" title="Synopsis">
39
+ <a name="glib-The-Main-Event-Loop.synopsis"></a><h2>Synopsis</h2>
40
+ <pre class="synopsis">
41
+ #include &lt;glib.h&gt;
42
+
43
+ <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop">GMainLoop</a>;
44
+ <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="returnvalue">GMainLoop</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-new" title="g_main_loop_new ()">g_main_loop_new</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
45
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> is_running</code></em>);
46
+ <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="returnvalue">GMainLoop</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-ref" title="g_main_loop_ref ()">g_main_loop_ref</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> *loop</code></em>);
47
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-unref" title="g_main_loop_unref ()">g_main_loop_unref</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> *loop</code></em>);
48
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-run" title="g_main_loop_run ()">g_main_loop_run</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> *loop</code></em>);
49
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-quit" title="g_main_loop_quit ()">g_main_loop_quit</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> *loop</code></em>);
50
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-is-running" title="g_main_loop_is_running ()">g_main_loop_is_running</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> *loop</code></em>);
51
+ <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="returnvalue">GMainContext</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-get-context" title="g_main_loop_get_context ()">g_main_loop_get_context</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> *loop</code></em>);
52
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#g-main-new" title="g_main_new()">g_main_new</a> (is_running)
53
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#g-main-destroy" title="g_main_destroy()">g_main_destroy</a> (loop)
54
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#g-main-run" title="g_main_run()">g_main_run</a> (loop)
55
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#g-main-quit" title="g_main_quit()">g_main_quit</a> (loop)
56
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#g-main-is-running" title="g_main_is_running()">g_main_is_running</a> (loop)
57
+
58
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-HIGH:CAPS" title="G_PRIORITY_HIGH">G_PRIORITY_HIGH</a>
59
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS" title="G_PRIORITY_DEFAULT">G_PRIORITY_DEFAULT</a>
60
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-HIGH-IDLE:CAPS" title="G_PRIORITY_HIGH_IDLE">G_PRIORITY_HIGH_IDLE</a>
61
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT-IDLE:CAPS" title="G_PRIORITY_DEFAULT_IDLE">G_PRIORITY_DEFAULT_IDLE</a>
62
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-LOW:CAPS" title="G_PRIORITY_LOW">G_PRIORITY_LOW</a>
63
+
64
+ <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext">GMainContext</a>;
65
+ <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="returnvalue">GMainContext</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-new" title="g_main_context_new ()">g_main_context_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
66
+ <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="returnvalue">GMainContext</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-ref" title="g_main_context_ref ()">g_main_context_ref</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);
67
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-unref" title="g_main_context_unref ()">g_main_context_unref</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);
68
+ <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="returnvalue">GMainContext</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-default" title="g_main_context_default ()">g_main_context_default</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
69
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-iteration" title="g_main_context_iteration ()">g_main_context_iteration</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
70
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> may_block</code></em>);
71
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#g-main-iteration" title="g_main_iteration()">g_main_iteration</a> (may_block)
72
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-pending" title="g_main_context_pending ()">g_main_context_pending</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);
73
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#g-main-pending" title="g_main_pending">g_main_pending</a>
74
+ <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-find-source-by-id" title="g_main_context_find_source_by_id ()">g_main_context_find_source_by_id</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
75
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> source_id</code></em>);
76
+ <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-find-source-by-user-data" title="g_main_context_find_source_by_user_data ()">g_main_context_find_source_by_user_data</a>
77
+ (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
78
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
79
+ <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-find-source-by-funcs-user-data" title="g_main_context_find_source_by_funcs_user_data ()">g_main_context_find_source_by_funcs_user_data</a>
80
+ (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
81
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFuncs" title="GSourceFuncs"><span class="type">GSourceFuncs</span></a> *funcs</code></em>,
82
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
83
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-wakeup" title="g_main_context_wakeup ()">g_main_context_wakeup</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);
84
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-acquire" title="g_main_context_acquire ()">g_main_context_acquire</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);
85
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-release" title="g_main_context_release ()">g_main_context_release</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);
86
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-is-owner" title="g_main_context_is_owner ()">g_main_context_is_owner</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);
87
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-wait" title="g_main_context_wait ()">g_main_context_wait</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
88
+ <em class="parameter"><code><a class="link" href="glib-Threads.html#GCond" title="GCond"><span class="type">GCond</span></a> *cond</code></em>,
89
+ <em class="parameter"><code><a class="link" href="glib-Threads.html#GMutex" title="GMutex"><span class="type">GMutex</span></a> *mutex</code></em>);
90
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-prepare" title="g_main_context_prepare ()">g_main_context_prepare</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
91
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> *priority</code></em>);
92
+ <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-query" title="g_main_context_query ()">g_main_context_query</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
93
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> max_priority</code></em>,
94
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> *timeout_</code></em>,
95
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fds</code></em>,
96
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> n_fds</code></em>);
97
+ <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-check" title="g_main_context_check ()">g_main_context_check</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
98
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> max_priority</code></em>,
99
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fds</code></em>,
100
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> n_fds</code></em>);
101
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-dispatch" title="g_main_context_dispatch ()">g_main_context_dispatch</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);
102
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-set-poll-func" title="g_main_context_set_poll_func ()">g_main_context_set_poll_func</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
103
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFunc" title="GPollFunc ()"><span class="type">GPollFunc</span></a> func</code></em>);
104
+ <a class="link" href="glib-The-Main-Event-Loop.html#GPollFunc" title="GPollFunc ()"><span class="returnvalue">GPollFunc</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-get-poll-func" title="g_main_context_get_poll_func ()">g_main_context_get_poll_func</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);
105
+ <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> (<a class="link" href="glib-The-Main-Event-Loop.html#GPollFunc" title="GPollFunc ()">*GPollFunc</a>) (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *ufds</code></em>,
106
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> nfsd</code></em>,
107
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> timeout_</code></em>);
108
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-add-poll" title="g_main_context_add_poll ()">g_main_context_add_poll</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
109
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fd</code></em>,
110
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> priority</code></em>);
111
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-remove-poll" title="g_main_context_remove_poll ()">g_main_context_remove_poll</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
112
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fd</code></em>);
113
+ <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-depth" title="g_main_depth ()">g_main_depth</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
114
+ <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-main-current-source" title="g_main_current_source ()">g_main_current_source</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
115
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#g-main-set-poll-func" title="g_main_set_poll_func()">g_main_set_poll_func</a> (func)
116
+
117
+ <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="returnvalue">GMainContext</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-get-thread-default" title="g_main_context_get_thread_default ()">g_main_context_get_thread_default</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
118
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-push-thread-default" title="g_main_context_push_thread_default ()">g_main_context_push_thread_default</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);
119
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-pop-thread-default" title="g_main_context_pop_thread_default ()">g_main_context_pop_thread_default</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);
120
+
121
+ <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-source-new" title="g_timeout_source_new ()">g_timeout_source_new</a> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> interval</code></em>);
122
+ <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-source-new-seconds" title="g_timeout_source_new_seconds ()">g_timeout_source_new_seconds</a> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> interval</code></em>);
123
+ <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add" title="g_timeout_add ()">g_timeout_add</a> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> interval</code></em>,
124
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> function</code></em>,
125
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);
126
+ <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add-full" title="g_timeout_add_full ()">g_timeout_add_full</a> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> priority</code></em>,
127
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> interval</code></em>,
128
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> function</code></em>,
129
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
130
+ <em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> notify</code></em>);
131
+ <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add-seconds" title="g_timeout_add_seconds ()">g_timeout_add_seconds</a> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> interval</code></em>,
132
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> function</code></em>,
133
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);
134
+ <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add-seconds-full" title="g_timeout_add_seconds_full ()">g_timeout_add_seconds_full</a> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> priority</code></em>,
135
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> interval</code></em>,
136
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> function</code></em>,
137
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
138
+ <em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> notify</code></em>);
139
+
140
+ <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-idle-source-new" title="g_idle_source_new ()">g_idle_source_new</a> (<em class="parameter"><code><span class="type">void</span></code></em>);
141
+ <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-idle-add" title="g_idle_add ()">g_idle_add</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> function</code></em>,
142
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);
143
+ <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-idle-add-full" title="g_idle_add_full ()">g_idle_add_full</a> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> priority</code></em>,
144
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> function</code></em>,
145
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
146
+ <em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> notify</code></em>);
147
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-idle-remove-by-data" title="g_idle_remove_by_data ()">g_idle_remove_by_data</a> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);
148
+
149
+ typedef <a class="link" href="glib-The-Main-Event-Loop.html#GPid" title="GPid">GPid</a>;
150
+ <span class="returnvalue">void</span> (<a class="link" href="glib-The-Main-Event-Loop.html#GChildWatchFunc" title="GChildWatchFunc ()">*GChildWatchFunc</a>) (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPid" title="GPid"><span class="type">GPid</span></a> pid</code></em>,
151
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> status</code></em>,
152
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);
153
+ <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-child-watch-source-new" title="g_child_watch_source_new ()">g_child_watch_source_new</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPid" title="GPid"><span class="type">GPid</span></a> pid</code></em>);
154
+ <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-child-watch-add" title="g_child_watch_add ()">g_child_watch_add</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPid" title="GPid"><span class="type">GPid</span></a> pid</code></em>,
155
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GChildWatchFunc" title="GChildWatchFunc ()"><span class="type">GChildWatchFunc</span></a> function</code></em>,
156
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);
157
+ <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-child-watch-add-full" title="g_child_watch_add_full ()">g_child_watch_add_full</a> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> priority</code></em>,
158
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPid" title="GPid"><span class="type">GPid</span></a> pid</code></em>,
159
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GChildWatchFunc" title="GChildWatchFunc ()"><span class="type">GChildWatchFunc</span></a> function</code></em>,
160
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
161
+ <em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> notify</code></em>);
162
+
163
+ <a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD">GPollFD</a>;
164
+ <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-poll" title="g_poll ()">g_poll</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fds</code></em>,
165
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> nfds</code></em>,
166
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> timeout</code></em>);
167
+ #define <a class="link" href="glib-The-Main-Event-Loop.html#G-POLLFD-FORMAT:CAPS" title="G_POLLFD_FORMAT">G_POLLFD_FORMAT</a>
168
+
169
+ <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource">GSource</a>;
170
+ <span class="returnvalue">void</span> (<a class="link" href="glib-The-Main-Event-Loop.html#GSourceDummyMarshal" title="GSourceDummyMarshal ()">*GSourceDummyMarshal</a>) (<em class="parameter"><code><span class="type">void</span></code></em>);
171
+ <a class="link" href="glib-The-Main-Event-Loop.html#GSourceFuncs" title="GSourceFuncs">GSourceFuncs</a>;
172
+ <a class="link" href="glib-The-Main-Event-Loop.html#GSourceCallbackFuncs" title="GSourceCallbackFuncs">GSourceCallbackFuncs</a>;
173
+ <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-source-new" title="g_source_new ()">g_source_new</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFuncs" title="GSourceFuncs"><span class="type">GSourceFuncs</span></a> *source_funcs</code></em>,
174
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> struct_size</code></em>);
175
+ <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-source-ref" title="g_source_ref ()">g_source_ref</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);
176
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-unref" title="g_source_unref ()">g_source_unref</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);
177
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-set-funcs" title="g_source_set_funcs ()">g_source_set_funcs</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
178
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFuncs" title="GSourceFuncs"><span class="type">GSourceFuncs</span></a> *funcs</code></em>);
179
+ <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()">g_source_attach</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
180
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);
181
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-destroy" title="g_source_destroy ()">g_source_destroy</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);
182
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-is-destroyed" title="g_source_is_destroyed ()">g_source_is_destroyed</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);
183
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-set-priority" title="g_source_set_priority ()">g_source_set_priority</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
184
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> priority</code></em>);
185
+ <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-get-priority" title="g_source_get_priority ()">g_source_get_priority</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);
186
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-set-can-recurse" title="g_source_set_can_recurse ()">g_source_set_can_recurse</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
187
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> can_recurse</code></em>);
188
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-get-can-recurse" title="g_source_get_can_recurse ()">g_source_get_can_recurse</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);
189
+ <a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-get-id" title="g_source_get_id ()">g_source_get_id</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);
190
+ <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="returnvalue">GMainContext</span></a> * <a class="link" href="glib-The-Main-Event-Loop.html#g-source-get-context" title="g_source_get_context ()">g_source_get_context</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);
191
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-set-callback" title="g_source_set_callback ()">g_source_set_callback</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
192
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> func</code></em>,
193
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
194
+ <em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> notify</code></em>);
195
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> (<a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()">*GSourceFunc</a>) (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);
196
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-set-callback-indirect" title="g_source_set_callback_indirect ()">g_source_set_callback_indirect</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
197
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> callback_data</code></em>,
198
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceCallbackFuncs" title="GSourceCallbackFuncs"><span class="type">GSourceCallbackFuncs</span></a> *callback_funcs</code></em>);
199
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-add-poll" title="g_source_add_poll ()">g_source_add_poll</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
200
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fd</code></em>);
201
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-remove-poll" title="g_source_remove_poll ()">g_source_remove_poll</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
202
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fd</code></em>);
203
+ <span class="returnvalue">void</span> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-get-current-time" title="g_source_get_current_time ()">g_source_get_current_time</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
204
+ <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="GTimeVal"><span class="type">GTimeVal</span></a> *timeval</code></em>);
205
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-remove" title="g_source_remove ()">g_source_remove</a> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> tag</code></em>);
206
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-remove-by-funcs-user-data" title="g_source_remove_by_funcs_user_data ()">g_source_remove_by_funcs_user_data</a> (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFuncs" title="GSourceFuncs"><span class="type">GSourceFuncs</span></a> *funcs</code></em>,
207
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
208
+ <a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> <a class="link" href="glib-The-Main-Event-Loop.html#g-source-remove-by-user-data" title="g_source_remove_by_user_data ()">g_source_remove_by_user_data</a> (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);
209
+ </pre>
210
+ </div>
211
+ <div class="refsect1" title="Description">
212
+ <a name="glib-The-Main-Event-Loop.description"></a><h2>Description</h2>
213
+ <p>
214
+ The main event loop manages all the available sources of events for
215
+ GLib and GTK+ applications. These events can come from any number of
216
+ different types of sources such as file descriptors (plain files,
217
+ pipes or sockets) and timeouts. New types of event sources can also
218
+ be added using <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a>.
219
+ </p>
220
+ <p>
221
+ To allow multiple independent sets of sources to be handled in
222
+ different threads, each source is associated with a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>.
223
+ A <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> can only be running in a single thread, but
224
+ sources can be added to it and removed from it from other threads.
225
+ </p>
226
+ <p>
227
+ Each event source is assigned a priority. The default priority,
228
+ <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS" title="G_PRIORITY_DEFAULT"><span class="type">G_PRIORITY_DEFAULT</span></a>, is 0. Values less than 0 denote higher
229
+ priorities. Values greater than 0 denote lower priorities. Events
230
+ from high priority sources are always processed before events from
231
+ lower priority sources.
232
+ </p>
233
+ <p>
234
+ Idle functions can also be added, and assigned a priority. These will
235
+ be run whenever no events with a higher priority are ready to be
236
+ processed.
237
+ </p>
238
+ <p>
239
+ The <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> data type represents a main event loop. A <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>
240
+ is created with <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-new" title="g_main_loop_new ()"><code class="function">g_main_loop_new()</code></a>. After adding the initial event sources,
241
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-run" title="g_main_loop_run ()"><code class="function">g_main_loop_run()</code></a> is called. This continuously checks for new events from
242
+ each of the event sources and dispatches them. Finally, the
243
+ processing of an event from one of the sources leads to a call to
244
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-quit" title="g_main_loop_quit ()"><code class="function">g_main_loop_quit()</code></a> to exit the main loop, and <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-run" title="g_main_loop_run ()"><code class="function">g_main_loop_run()</code></a> returns.
245
+ </p>
246
+ <p>
247
+ It is possible to create new instances of <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> recursively.
248
+ This is often used in GTK+ applications when showing modal dialog
249
+ boxes. Note that event sources are associated with a particular
250
+ <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>, and will be checked and dispatched for all main
251
+ loops associated with that <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>.
252
+ </p>
253
+ <p>
254
+ GTK+ contains wrappers of some of these functions, e.g. <code class="function">gtk_main()</code>,
255
+ <code class="function">gtk_main_quit()</code> and <code class="function">gtk_events_pending()</code>.
256
+ </p>
257
+ <div class="refsect2" title="Creating new sources types">
258
+ <a name="id573044"></a><h3>Creating new sources types</h3>
259
+ <p>
260
+ One of the unusual features of the GTK+ main loop functionality
261
+ is that new types of event source can be created and used in
262
+ addition to the builtin type of event source. A new event source
263
+ type is used for handling GDK events. A new source type is
264
+ created by <em class="firstterm">deriving</em> from the <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
265
+ structure. The derived type of source is represented by a
266
+ structure that has the <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> structure as a first element,
267
+ and other elements specific to the new source type. To create
268
+ an instance of the new source type, call <a class="link" href="glib-The-Main-Event-Loop.html#g-source-new" title="g_source_new ()"><code class="function">g_source_new()</code></a> passing
269
+ in the size of the derived structure and a table of functions.
270
+ These <a class="link" href="glib-The-Main-Event-Loop.html#GSourceFuncs" title="GSourceFuncs"><span class="type">GSourceFuncs</span></a> determine the behavior of the new source
271
+ types.
272
+ </p>
273
+ <p>
274
+ New source types basically interact with the main context
275
+ in two ways. Their prepare function in <a class="link" href="glib-The-Main-Event-Loop.html#GSourceFuncs" title="GSourceFuncs"><span class="type">GSourceFuncs</span></a> can set
276
+ a timeout to determine the maximum amount of time that the
277
+ main loop will sleep before checking the source again. In
278
+ addition, or as well, the source can add file descriptors to
279
+ the set that the main context checks using <a class="link" href="glib-The-Main-Event-Loop.html#g-source-add-poll" title="g_source_add_poll ()"><code class="function">g_source_add_poll()</code></a>.
280
+ </p>
281
+ </div>
282
+ <hr>
283
+ <div class="refsect2" title="Customizing the main loop iteration">
284
+ <a name="id573119"></a><h3>Customizing the main loop iteration</h3>
285
+ <p>
286
+ Single iterations of a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> can be run with
287
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-iteration" title="g_main_context_iteration ()"><code class="function">g_main_context_iteration()</code></a>. In some cases, more detailed control
288
+ of exactly how the details of the main loop work is desired,
289
+ for instance, when integrating the <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> with an external
290
+ main loop. In such cases, you can call the component functions
291
+ of <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-iteration" title="g_main_context_iteration ()"><code class="function">g_main_context_iteration()</code></a> directly. These functions
292
+ are <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-prepare" title="g_main_context_prepare ()"><code class="function">g_main_context_prepare()</code></a>, <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-query" title="g_main_context_query ()"><code class="function">g_main_context_query()</code></a>,
293
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-check" title="g_main_context_check ()"><code class="function">g_main_context_check()</code></a> and <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-dispatch" title="g_main_context_dispatch ()"><code class="function">g_main_context_dispatch()</code></a>.
294
+ </p>
295
+ <p>
296
+ The operation of these functions can best be seen in terms
297
+ of a state diagram, as shown in <a class="xref" href="glib-The-Main-Event-Loop.html#mainloop-states" title="Figure 1. States of a Main Context">Figure 1, “States of a Main Context”</a>.
298
+ </p>
299
+ <div class="figure">
300
+ <a name="mainloop-states"></a><p class="title"><b>Figure 1. States of a Main Context</b></p>
301
+ <div class="figure-contents"><div><img src="mainloop-states.gif" alt="States of a Main Context"></div></div>
302
+ </div>
303
+ <br class="figure-break">
304
+ </div>
305
+ </div>
306
+ <div class="refsect1" title="Details">
307
+ <a name="glib-The-Main-Event-Loop.details"></a><h2>Details</h2>
308
+ <div class="refsect2" title="GMainLoop">
309
+ <a name="GMainLoop"></a><h3>GMainLoop</h3>
310
+ <pre class="programlisting">typedef struct _GMainLoop GMainLoop;</pre>
311
+ <p>
312
+ The <span class="structname">GMainLoop</span> struct is an opaque data type
313
+ representing the main event loop of a GLib or GTK+ application.
314
+ </p>
315
+ </div>
316
+ <hr>
317
+ <div class="refsect2" title="g_main_loop_new ()">
318
+ <a name="g-main-loop-new"></a><h3>g_main_loop_new ()</h3>
319
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="returnvalue">GMainLoop</span></a> * g_main_loop_new (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
320
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> is_running</code></em>);</pre>
321
+ <p>
322
+ Creates a new <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> structure.
323
+ </p>
324
+ <div class="variablelist"><table border="0">
325
+ <col align="left" valign="top">
326
+ <tbody>
327
+ <tr>
328
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
329
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> (if <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, the default context will be used).
330
+ </td>
331
+ </tr>
332
+ <tr>
333
+ <td><p><span class="term"><em class="parameter"><code>is_running</code></em> :</span></p></td>
334
+ <td>set to <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> to indicate that the loop is running. This
335
+ is not very important since calling <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-run" title="g_main_loop_run ()"><code class="function">g_main_loop_run()</code></a> will set this to
336
+ <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> anyway.
337
+ </td>
338
+ </tr>
339
+ <tr>
340
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
341
+ <td> a new <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>.
342
+ </td>
343
+ </tr>
344
+ </tbody>
345
+ </table></div>
346
+ </div>
347
+ <hr>
348
+ <div class="refsect2" title="g_main_loop_ref ()">
349
+ <a name="g-main-loop-ref"></a><h3>g_main_loop_ref ()</h3>
350
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="returnvalue">GMainLoop</span></a> * g_main_loop_ref (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> *loop</code></em>);</pre>
351
+ <p>
352
+ Increases the reference count on a <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> object by one.
353
+ </p>
354
+ <div class="variablelist"><table border="0">
355
+ <col align="left" valign="top">
356
+ <tbody>
357
+ <tr>
358
+ <td><p><span class="term"><em class="parameter"><code>loop</code></em> :</span></p></td>
359
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>
360
+ </td>
361
+ </tr>
362
+ <tr>
363
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
364
+ <td> <em class="parameter"><code>loop</code></em>
365
+ </td>
366
+ </tr>
367
+ </tbody>
368
+ </table></div>
369
+ </div>
370
+ <hr>
371
+ <div class="refsect2" title="g_main_loop_unref ()">
372
+ <a name="g-main-loop-unref"></a><h3>g_main_loop_unref ()</h3>
373
+ <pre class="programlisting"><span class="returnvalue">void</span> g_main_loop_unref (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> *loop</code></em>);</pre>
374
+ <p>
375
+ Decreases the reference count on a <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> object by one. If
376
+ the result is zero, free the loop and free all associated memory.
377
+ </p>
378
+ <div class="variablelist"><table border="0">
379
+ <col align="left" valign="top">
380
+ <tbody><tr>
381
+ <td><p><span class="term"><em class="parameter"><code>loop</code></em> :</span></p></td>
382
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>
383
+ </td>
384
+ </tr></tbody>
385
+ </table></div>
386
+ </div>
387
+ <hr>
388
+ <div class="refsect2" title="g_main_loop_run ()">
389
+ <a name="g-main-loop-run"></a><h3>g_main_loop_run ()</h3>
390
+ <pre class="programlisting"><span class="returnvalue">void</span> g_main_loop_run (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> *loop</code></em>);</pre>
391
+ <p>
392
+ Runs a main loop until <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-quit" title="g_main_loop_quit ()"><code class="function">g_main_loop_quit()</code></a> is called on the loop.
393
+ If this is called for the thread of the loop's <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>,
394
+ it will process events from the loop, otherwise it will
395
+ simply wait.
396
+ </p>
397
+ <div class="variablelist"><table border="0">
398
+ <col align="left" valign="top">
399
+ <tbody><tr>
400
+ <td><p><span class="term"><em class="parameter"><code>loop</code></em> :</span></p></td>
401
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>
402
+ </td>
403
+ </tr></tbody>
404
+ </table></div>
405
+ </div>
406
+ <hr>
407
+ <div class="refsect2" title="g_main_loop_quit ()">
408
+ <a name="g-main-loop-quit"></a><h3>g_main_loop_quit ()</h3>
409
+ <pre class="programlisting"><span class="returnvalue">void</span> g_main_loop_quit (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> *loop</code></em>);</pre>
410
+ <p>
411
+ Stops a <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> from running. Any calls to <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-run" title="g_main_loop_run ()"><code class="function">g_main_loop_run()</code></a>
412
+ for the loop will return.
413
+ </p>
414
+ <p>
415
+ Note that sources that have already been dispatched when
416
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-quit" title="g_main_loop_quit ()"><code class="function">g_main_loop_quit()</code></a> is called will still be executed.
417
+ </p>
418
+ <div class="variablelist"><table border="0">
419
+ <col align="left" valign="top">
420
+ <tbody><tr>
421
+ <td><p><span class="term"><em class="parameter"><code>loop</code></em> :</span></p></td>
422
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>
423
+ </td>
424
+ </tr></tbody>
425
+ </table></div>
426
+ </div>
427
+ <hr>
428
+ <div class="refsect2" title="g_main_loop_is_running ()">
429
+ <a name="g-main-loop-is-running"></a><h3>g_main_loop_is_running ()</h3>
430
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_main_loop_is_running (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> *loop</code></em>);</pre>
431
+ <p>
432
+ Checks to see if the main loop is currently being run via <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-run" title="g_main_loop_run ()"><code class="function">g_main_loop_run()</code></a>.
433
+ </p>
434
+ <div class="variablelist"><table border="0">
435
+ <col align="left" valign="top">
436
+ <tbody>
437
+ <tr>
438
+ <td><p><span class="term"><em class="parameter"><code>loop</code></em> :</span></p></td>
439
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>.
440
+ </td>
441
+ </tr>
442
+ <tr>
443
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
444
+ <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the mainloop is currently being run.
445
+ </td>
446
+ </tr>
447
+ </tbody>
448
+ </table></div>
449
+ </div>
450
+ <hr>
451
+ <div class="refsect2" title="g_main_loop_get_context ()">
452
+ <a name="g-main-loop-get-context"></a><h3>g_main_loop_get_context ()</h3>
453
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="returnvalue">GMainContext</span></a> * g_main_loop_get_context (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> *loop</code></em>);</pre>
454
+ <p>
455
+ Returns the <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> of <em class="parameter"><code>loop</code></em>.
456
+ </p>
457
+ <div class="variablelist"><table border="0">
458
+ <col align="left" valign="top">
459
+ <tbody>
460
+ <tr>
461
+ <td><p><span class="term"><em class="parameter"><code>loop</code></em> :</span></p></td>
462
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>.
463
+ </td>
464
+ </tr>
465
+ <tr>
466
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
467
+ <td> the <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> of <em class="parameter"><code>loop</code></em>
468
+ </td>
469
+ </tr>
470
+ </tbody>
471
+ </table></div>
472
+ </div>
473
+ <hr>
474
+ <div class="refsect2" title="g_main_new()">
475
+ <a name="g-main-new"></a><h3>g_main_new()</h3>
476
+ <pre class="programlisting">#define g_main_new(is_running)</pre>
477
+ <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
478
+ <h3 class="title">Warning</h3>
479
+ <p><code class="literal">g_main_new</code> has been deprecated since version 2.2 and should not be used in newly-written code. Use <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-new" title="g_main_loop_new ()"><code class="function">g_main_loop_new()</code></a> instead.</p>
480
+ </div>
481
+ <p>
482
+ Creates a new <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> for the default main loop.
483
+ </p>
484
+ <div class="variablelist"><table border="0">
485
+ <col align="left" valign="top">
486
+ <tbody>
487
+ <tr>
488
+ <td><p><span class="term"><em class="parameter"><code>is_running</code></em> :</span></p></td>
489
+ <td>set to <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> to indicate that the loop is running. This is not
490
+ very important since calling <a class="link" href="glib-The-Main-Event-Loop.html#g-main-run" title="g_main_run()"><code class="function">g_main_run()</code></a> will set this to <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> anyway.
491
+ </td>
492
+ </tr>
493
+ <tr>
494
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
495
+ <td>a new <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>.
496
+ </td>
497
+ </tr>
498
+ </tbody>
499
+ </table></div>
500
+ </div>
501
+ <hr>
502
+ <div class="refsect2" title="g_main_destroy()">
503
+ <a name="g-main-destroy"></a><h3>g_main_destroy()</h3>
504
+ <pre class="programlisting">#define g_main_destroy(loop)</pre>
505
+ <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
506
+ <h3 class="title">Warning</h3>
507
+ <p><code class="literal">g_main_destroy</code> has been deprecated since version 2.2 and should not be used in newly-written code. Use <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-unref" title="g_main_loop_unref ()"><code class="function">g_main_loop_unref()</code></a> instead.</p>
508
+ </div>
509
+ <p>
510
+ Frees the memory allocated for the <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>.
511
+ </p>
512
+ <div class="variablelist"><table border="0">
513
+ <col align="left" valign="top">
514
+ <tbody><tr>
515
+ <td><p><span class="term"><em class="parameter"><code>loop</code></em> :</span></p></td>
516
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>.
517
+ </td>
518
+ </tr></tbody>
519
+ </table></div>
520
+ </div>
521
+ <hr>
522
+ <div class="refsect2" title="g_main_run()">
523
+ <a name="g-main-run"></a><h3>g_main_run()</h3>
524
+ <pre class="programlisting">#define g_main_run(loop)</pre>
525
+ <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
526
+ <h3 class="title">Warning</h3>
527
+ <p><code class="literal">g_main_run</code> has been deprecated since version 2.2 and should not be used in newly-written code. Use <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-run" title="g_main_loop_run ()"><code class="function">g_main_loop_run()</code></a> instead.</p>
528
+ </div>
529
+ <p>
530
+ Runs a main loop until it stops running.
531
+ </p>
532
+ <div class="variablelist"><table border="0">
533
+ <col align="left" valign="top">
534
+ <tbody><tr>
535
+ <td><p><span class="term"><em class="parameter"><code>loop</code></em> :</span></p></td>
536
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>.
537
+ </td>
538
+ </tr></tbody>
539
+ </table></div>
540
+ </div>
541
+ <hr>
542
+ <div class="refsect2" title="g_main_quit()">
543
+ <a name="g-main-quit"></a><h3>g_main_quit()</h3>
544
+ <pre class="programlisting">#define g_main_quit(loop)</pre>
545
+ <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
546
+ <h3 class="title">Warning</h3>
547
+ <p><code class="literal">g_main_quit</code> has been deprecated since version 2.2 and should not be used in newly-written code. Use <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-quit" title="g_main_loop_quit ()"><code class="function">g_main_loop_quit()</code></a> instead.</p>
548
+ </div>
549
+ <p>
550
+ Stops the <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>. If <a class="link" href="glib-The-Main-Event-Loop.html#g-main-run" title="g_main_run()"><code class="function">g_main_run()</code></a> was called to run the <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>,
551
+ it will now return.
552
+ </p>
553
+ <div class="variablelist"><table border="0">
554
+ <col align="left" valign="top">
555
+ <tbody><tr>
556
+ <td><p><span class="term"><em class="parameter"><code>loop</code></em> :</span></p></td>
557
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>.
558
+ </td>
559
+ </tr></tbody>
560
+ </table></div>
561
+ </div>
562
+ <hr>
563
+ <div class="refsect2" title="g_main_is_running()">
564
+ <a name="g-main-is-running"></a><h3>g_main_is_running()</h3>
565
+ <pre class="programlisting">#define g_main_is_running(loop)</pre>
566
+ <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
567
+ <h3 class="title">Warning</h3>
568
+ <p><code class="literal">g_main_is_running</code> has been deprecated since version 2.2 and should not be used in newly-written code. USe <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-is-running" title="g_main_loop_is_running ()"><code class="function">g_main_loop_is_running()</code></a> instead.</p>
569
+ </div>
570
+ <p>
571
+ Checks if the main loop is running.
572
+ </p>
573
+ <div class="variablelist"><table border="0">
574
+ <col align="left" valign="top">
575
+ <tbody>
576
+ <tr>
577
+ <td><p><span class="term"><em class="parameter"><code>loop</code></em> :</span></p></td>
578
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a>.
579
+ </td>
580
+ </tr>
581
+ <tr>
582
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
583
+ <td>
584
+ <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the main loop is running.
585
+ </td>
586
+ </tr>
587
+ </tbody>
588
+ </table></div>
589
+ </div>
590
+ <hr>
591
+ <div class="refsect2" title="G_PRIORITY_HIGH">
592
+ <a name="G-PRIORITY-HIGH:CAPS"></a><h3>G_PRIORITY_HIGH</h3>
593
+ <pre class="programlisting">#define G_PRIORITY_HIGH -100
594
+ </pre>
595
+ <p>
596
+ Use this for high priority event sources.
597
+ It is not used within GLib or GTK+.
598
+ </p>
599
+ </div>
600
+ <hr>
601
+ <div class="refsect2" title="G_PRIORITY_DEFAULT">
602
+ <a name="G-PRIORITY-DEFAULT:CAPS"></a><h3>G_PRIORITY_DEFAULT</h3>
603
+ <pre class="programlisting">#define G_PRIORITY_DEFAULT 0
604
+ </pre>
605
+ <p>
606
+ Use this for default priority event sources.
607
+ In GLib this priority is used when adding timeout functions with
608
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add" title="g_timeout_add ()"><code class="function">g_timeout_add()</code></a>.
609
+ In GDK this priority is used for events from the X server.
610
+ </p>
611
+ </div>
612
+ <hr>
613
+ <div class="refsect2" title="G_PRIORITY_HIGH_IDLE">
614
+ <a name="G-PRIORITY-HIGH-IDLE:CAPS"></a><h3>G_PRIORITY_HIGH_IDLE</h3>
615
+ <pre class="programlisting">#define G_PRIORITY_HIGH_IDLE 100
616
+ </pre>
617
+ <p>
618
+ Use this for high priority idle functions.
619
+ GTK+ uses <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-HIGH-IDLE:CAPS" title="G_PRIORITY_HIGH_IDLE"><span class="type">G_PRIORITY_HIGH_IDLE</span></a> + 10 for resizing operations, and
620
+ <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-HIGH-IDLE:CAPS" title="G_PRIORITY_HIGH_IDLE"><span class="type">G_PRIORITY_HIGH_IDLE</span></a> + 20 for redrawing operations. (This is done to
621
+ ensure that any pending resizes are processed before any pending redraws,
622
+ so that widgets are not redrawn twice unnecessarily.)
623
+ </p>
624
+ </div>
625
+ <hr>
626
+ <div class="refsect2" title="G_PRIORITY_DEFAULT_IDLE">
627
+ <a name="G-PRIORITY-DEFAULT-IDLE:CAPS"></a><h3>G_PRIORITY_DEFAULT_IDLE</h3>
628
+ <pre class="programlisting">#define G_PRIORITY_DEFAULT_IDLE 200
629
+ </pre>
630
+ <p>
631
+ Use this for default priority idle functions.
632
+ In GLib this priority is used when adding idle functions with <a class="link" href="glib-The-Main-Event-Loop.html#g-idle-add" title="g_idle_add ()"><code class="function">g_idle_add()</code></a>.
633
+ </p>
634
+ </div>
635
+ <hr>
636
+ <div class="refsect2" title="G_PRIORITY_LOW">
637
+ <a name="G-PRIORITY-LOW:CAPS"></a><h3>G_PRIORITY_LOW</h3>
638
+ <pre class="programlisting">#define G_PRIORITY_LOW 300
639
+ </pre>
640
+ <p>
641
+ Use this for very low priority background tasks.
642
+ It is not used within GLib or GTK+.
643
+ </p>
644
+ </div>
645
+ <hr>
646
+ <div class="refsect2" title="GMainContext">
647
+ <a name="GMainContext"></a><h3>GMainContext</h3>
648
+ <pre class="programlisting">typedef struct _GMainContext GMainContext;</pre>
649
+ <p>
650
+ The <span class="structname">GMainContext</span> struct is an opaque data type
651
+ representing a set of sources to be handled in a main loop.
652
+ </p>
653
+ </div>
654
+ <hr>
655
+ <div class="refsect2" title="g_main_context_new ()">
656
+ <a name="g-main-context-new"></a><h3>g_main_context_new ()</h3>
657
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="returnvalue">GMainContext</span></a> * g_main_context_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
658
+ <p>
659
+ Creates a new <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> structure.
660
+ </p>
661
+ <div class="variablelist"><table border="0">
662
+ <col align="left" valign="top">
663
+ <tbody><tr>
664
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
665
+ <td> the new <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
666
+ </td>
667
+ </tr></tbody>
668
+ </table></div>
669
+ </div>
670
+ <hr>
671
+ <div class="refsect2" title="g_main_context_ref ()">
672
+ <a name="g-main-context-ref"></a><h3>g_main_context_ref ()</h3>
673
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="returnvalue">GMainContext</span></a> * g_main_context_ref (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
674
+ <p>
675
+ Increases the reference count on a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> object by one.
676
+ </p>
677
+ <div class="variablelist"><table border="0">
678
+ <col align="left" valign="top">
679
+ <tbody>
680
+ <tr>
681
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
682
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
683
+ </td>
684
+ </tr>
685
+ <tr>
686
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
687
+ <td> the <em class="parameter"><code>context</code></em> that was passed in (since 2.6)
688
+ </td>
689
+ </tr>
690
+ </tbody>
691
+ </table></div>
692
+ </div>
693
+ <hr>
694
+ <div class="refsect2" title="g_main_context_unref ()">
695
+ <a name="g-main-context-unref"></a><h3>g_main_context_unref ()</h3>
696
+ <pre class="programlisting"><span class="returnvalue">void</span> g_main_context_unref (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
697
+ <p>
698
+ Decreases the reference count on a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> object by one. If
699
+ the result is zero, free the context and free all associated memory.
700
+ </p>
701
+ <div class="variablelist"><table border="0">
702
+ <col align="left" valign="top">
703
+ <tbody><tr>
704
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
705
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
706
+ </td>
707
+ </tr></tbody>
708
+ </table></div>
709
+ </div>
710
+ <hr>
711
+ <div class="refsect2" title="g_main_context_default ()">
712
+ <a name="g-main-context-default"></a><h3>g_main_context_default ()</h3>
713
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="returnvalue">GMainContext</span></a> * g_main_context_default (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
714
+ <p>
715
+ Returns the global default main context. This is the main context
716
+ used for main loop functions when a main loop is not explicitly
717
+ specified, and corresponds to the "main" main loop. See also
718
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-get-thread-default" title="g_main_context_get_thread_default ()"><code class="function">g_main_context_get_thread_default()</code></a>.
719
+ </p>
720
+ <div class="variablelist"><table border="0">
721
+ <col align="left" valign="top">
722
+ <tbody><tr>
723
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
724
+ <td> the global default main context.
725
+ </td>
726
+ </tr></tbody>
727
+ </table></div>
728
+ </div>
729
+ <hr>
730
+ <div class="refsect2" title="g_main_context_iteration ()">
731
+ <a name="g-main-context-iteration"></a><h3>g_main_context_iteration ()</h3>
732
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_main_context_iteration (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
733
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> may_block</code></em>);</pre>
734
+ <p>
735
+ Runs a single iteration for the given main loop. This involves
736
+ checking to see if any event sources are ready to be processed,
737
+ then if no events sources are ready and <em class="parameter"><code>may_block</code></em> is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>, waiting
738
+ for a source to become ready, then dispatching the highest priority
739
+ events sources that are ready. Otherwise, if <em class="parameter"><code>may_block</code></em> is <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>
740
+ sources are not waited to become ready, only those highest priority
741
+ events sources will be dispatched (if any), that are ready at this
742
+ given moment without further waiting.
743
+ </p>
744
+ <p>
745
+ Note that even when <em class="parameter"><code>may_block</code></em> is <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>, it is still possible for
746
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-iteration" title="g_main_context_iteration ()"><code class="function">g_main_context_iteration()</code></a> to return <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>, since the the wait may
747
+ be interrupted for other reasons than an event source becoming ready.
748
+ </p>
749
+ <div class="variablelist"><table border="0">
750
+ <col align="left" valign="top">
751
+ <tbody>
752
+ <tr>
753
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
754
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> (if <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, the default context will be used)
755
+ </td>
756
+ </tr>
757
+ <tr>
758
+ <td><p><span class="term"><em class="parameter"><code>may_block</code></em> :</span></p></td>
759
+ <td>whether the call may block.
760
+ </td>
761
+ </tr>
762
+ <tr>
763
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
764
+ <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if events were dispatched.
765
+ </td>
766
+ </tr>
767
+ </tbody>
768
+ </table></div>
769
+ </div>
770
+ <hr>
771
+ <div class="refsect2" title="g_main_iteration()">
772
+ <a name="g-main-iteration"></a><h3>g_main_iteration()</h3>
773
+ <pre class="programlisting">#define g_main_iteration(may_block)</pre>
774
+ <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
775
+ <h3 class="title">Warning</h3>
776
+ <p><code class="literal">g_main_iteration</code> has been deprecated since version 2.2 and should not be used in newly-written code. Use <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-iteration" title="g_main_context_iteration ()"><code class="function">g_main_context_iteration()</code></a> instead.</p>
777
+ </div>
778
+ <p>
779
+ Runs a single iteration for the default <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>.
780
+ </p>
781
+ <div class="variablelist"><table border="0">
782
+ <col align="left" valign="top">
783
+ <tbody>
784
+ <tr>
785
+ <td><p><span class="term"><em class="parameter"><code>may_block</code></em> :</span></p></td>
786
+ <td>set to <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if it should block (i.e. wait) until an event source
787
+ becomes ready. It will return after an event source has been processed.
788
+ If set to <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> it will return immediately if no event source is ready to be
789
+ processed.
790
+ </td>
791
+ </tr>
792
+ <tr>
793
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
794
+ <td>
795
+ <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if more events are pending.
796
+ </td>
797
+ </tr>
798
+ </tbody>
799
+ </table></div>
800
+ </div>
801
+ <hr>
802
+ <div class="refsect2" title="g_main_context_pending ()">
803
+ <a name="g-main-context-pending"></a><h3>g_main_context_pending ()</h3>
804
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_main_context_pending (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
805
+ <p>
806
+ Checks if any sources have pending events for the given context.
807
+ </p>
808
+ <div class="variablelist"><table border="0">
809
+ <col align="left" valign="top">
810
+ <tbody>
811
+ <tr>
812
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
813
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> (if <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, the default context will be used)
814
+ </td>
815
+ </tr>
816
+ <tr>
817
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
818
+ <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if events are pending.
819
+ </td>
820
+ </tr>
821
+ </tbody>
822
+ </table></div>
823
+ </div>
824
+ <hr>
825
+ <div class="refsect2" title="g_main_pending">
826
+ <a name="g-main-pending"></a><h3>g_main_pending</h3>
827
+ <pre class="programlisting">#define g_main_pending()</pre>
828
+ <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
829
+ <h3 class="title">Warning</h3>
830
+ <p><code class="literal">g_main_pending</code> has been deprecated since version 2.2 and should not be used in newly-written code. Use <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-pending" title="g_main_context_pending ()"><code class="function">g_main_context_pending()</code></a> instead.</p>
831
+ </div>
832
+ <p>
833
+ Checks if any events are pending for the default <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
834
+ (i.e. ready to be processed).
835
+ </p>
836
+ <div class="variablelist"><table border="0">
837
+ <col align="left" valign="top">
838
+ <tbody><tr>
839
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
840
+ <td>
841
+ <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if any events are pending.
842
+ </td>
843
+ </tr></tbody>
844
+ </table></div>
845
+ </div>
846
+ <hr>
847
+ <div class="refsect2" title="g_main_context_find_source_by_id ()">
848
+ <a name="g-main-context-find-source-by-id"></a><h3>g_main_context_find_source_by_id ()</h3>
849
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * g_main_context_find_source_by_id (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
850
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> source_id</code></em>);</pre>
851
+ <p>
852
+ Finds a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> given a pair of context and ID.
853
+ </p>
854
+ <div class="variablelist"><table border="0">
855
+ <col align="left" valign="top">
856
+ <tbody>
857
+ <tr>
858
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
859
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> (if <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, the default context will be used)
860
+ </td>
861
+ </tr>
862
+ <tr>
863
+ <td><p><span class="term"><em class="parameter"><code>source_id</code></em> :</span></p></td>
864
+ <td>the source ID, as returned by <a class="link" href="glib-The-Main-Event-Loop.html#g-source-get-id" title="g_source_get_id ()"><code class="function">g_source_get_id()</code></a>.
865
+ </td>
866
+ </tr>
867
+ <tr>
868
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
869
+ <td> the <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> if found, otherwise, <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>
870
+ </td>
871
+ </tr>
872
+ </tbody>
873
+ </table></div>
874
+ </div>
875
+ <hr>
876
+ <div class="refsect2" title="g_main_context_find_source_by_user_data ()">
877
+ <a name="g-main-context-find-source-by-user-data"></a><h3>g_main_context_find_source_by_user_data ()</h3>
878
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * g_main_context_find_source_by_user_data
879
+ (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
880
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
881
+ <p>
882
+ Finds a source with the given user data for the callback. If
883
+ multiple sources exist with the same user data, the first
884
+ one found will be returned.
885
+ </p>
886
+ <div class="variablelist"><table border="0">
887
+ <col align="left" valign="top">
888
+ <tbody>
889
+ <tr>
890
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
891
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
892
+ </td>
893
+ </tr>
894
+ <tr>
895
+ <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
896
+ <td>the user_data for the callback.
897
+ </td>
898
+ </tr>
899
+ <tr>
900
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
901
+ <td> the source, if one was found, otherwise <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>
902
+ </td>
903
+ </tr>
904
+ </tbody>
905
+ </table></div>
906
+ </div>
907
+ <hr>
908
+ <div class="refsect2" title="g_main_context_find_source_by_funcs_user_data ()">
909
+ <a name="g-main-context-find-source-by-funcs-user-data"></a><h3>g_main_context_find_source_by_funcs_user_data ()</h3>
910
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * g_main_context_find_source_by_funcs_user_data
911
+ (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
912
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFuncs" title="GSourceFuncs"><span class="type">GSourceFuncs</span></a> *funcs</code></em>,
913
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
914
+ <p>
915
+ Finds a source with the given source functions and user data. If
916
+ multiple sources exist with the same source function and user data,
917
+ the first one found will be returned.
918
+ </p>
919
+ <div class="variablelist"><table border="0">
920
+ <col align="left" valign="top">
921
+ <tbody>
922
+ <tr>
923
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
924
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> (if <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, the default context will be used).
925
+ </td>
926
+ </tr>
927
+ <tr>
928
+ <td><p><span class="term"><em class="parameter"><code>funcs</code></em> :</span></p></td>
929
+ <td>the <em class="parameter"><code>source_funcs</code></em> passed to <a class="link" href="glib-The-Main-Event-Loop.html#g-source-new" title="g_source_new ()"><code class="function">g_source_new()</code></a>.
930
+ </td>
931
+ </tr>
932
+ <tr>
933
+ <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
934
+ <td>the user data from the callback.
935
+ </td>
936
+ </tr>
937
+ <tr>
938
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
939
+ <td> the source, if one was found, otherwise <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>
940
+ </td>
941
+ </tr>
942
+ </tbody>
943
+ </table></div>
944
+ </div>
945
+ <hr>
946
+ <div class="refsect2" title="g_main_context_wakeup ()">
947
+ <a name="g-main-context-wakeup"></a><h3>g_main_context_wakeup ()</h3>
948
+ <pre class="programlisting"><span class="returnvalue">void</span> g_main_context_wakeup (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
949
+ <p>
950
+ If <em class="parameter"><code>context</code></em> is currently waiting in a <code class="function">poll()</code>, interrupt
951
+ the <code class="function">poll()</code>, and continue the iteration process.
952
+ </p>
953
+ <div class="variablelist"><table border="0">
954
+ <col align="left" valign="top">
955
+ <tbody><tr>
956
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
957
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
958
+ </td>
959
+ </tr></tbody>
960
+ </table></div>
961
+ </div>
962
+ <hr>
963
+ <div class="refsect2" title="g_main_context_acquire ()">
964
+ <a name="g-main-context-acquire"></a><h3>g_main_context_acquire ()</h3>
965
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_main_context_acquire (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
966
+ <p>
967
+ Tries to become the owner of the specified context.
968
+ If some other thread is the owner of the context,
969
+ returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> immediately. Ownership is properly
970
+ recursive: the owner can require ownership again
971
+ and will release ownership when <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-release" title="g_main_context_release ()"><code class="function">g_main_context_release()</code></a>
972
+ is called as many times as <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-acquire" title="g_main_context_acquire ()"><code class="function">g_main_context_acquire()</code></a>.
973
+ </p>
974
+ <p>
975
+ You must be the owner of a context before you
976
+ can call <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-prepare" title="g_main_context_prepare ()"><code class="function">g_main_context_prepare()</code></a>, <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-query" title="g_main_context_query ()"><code class="function">g_main_context_query()</code></a>,
977
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-check" title="g_main_context_check ()"><code class="function">g_main_context_check()</code></a>, <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-dispatch" title="g_main_context_dispatch ()"><code class="function">g_main_context_dispatch()</code></a>.
978
+ </p>
979
+ <div class="variablelist"><table border="0">
980
+ <col align="left" valign="top">
981
+ <tbody>
982
+ <tr>
983
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
984
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
985
+ </td>
986
+ </tr>
987
+ <tr>
988
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
989
+ <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the operation succeeded, and
990
+ this thread is now the owner of <em class="parameter"><code>context</code></em>.
991
+ </td>
992
+ </tr>
993
+ </tbody>
994
+ </table></div>
995
+ </div>
996
+ <hr>
997
+ <div class="refsect2" title="g_main_context_release ()">
998
+ <a name="g-main-context-release"></a><h3>g_main_context_release ()</h3>
999
+ <pre class="programlisting"><span class="returnvalue">void</span> g_main_context_release (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
1000
+ <p>
1001
+ Releases ownership of a context previously acquired by this thread
1002
+ with <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-acquire" title="g_main_context_acquire ()"><code class="function">g_main_context_acquire()</code></a>. If the context was acquired multiple
1003
+ times, the ownership will be released only when <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-release" title="g_main_context_release ()"><code class="function">g_main_context_release()</code></a>
1004
+ is called as many times as it was acquired.
1005
+ </p>
1006
+ <div class="variablelist"><table border="0">
1007
+ <col align="left" valign="top">
1008
+ <tbody><tr>
1009
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
1010
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
1011
+ </td>
1012
+ </tr></tbody>
1013
+ </table></div>
1014
+ </div>
1015
+ <hr>
1016
+ <div class="refsect2" title="g_main_context_is_owner ()">
1017
+ <a name="g-main-context-is-owner"></a><h3>g_main_context_is_owner ()</h3>
1018
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_main_context_is_owner (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
1019
+ <p>
1020
+ Determines whether this thread holds the (recursive)
1021
+ ownership of this <span class="type">GMaincontext</span>. This is useful to
1022
+ know before waiting on another thread that may be
1023
+ blocking to get ownership of <em class="parameter"><code>context</code></em>.
1024
+ </p>
1025
+ <div class="variablelist"><table border="0">
1026
+ <col align="left" valign="top">
1027
+ <tbody>
1028
+ <tr>
1029
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
1030
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
1031
+ </td>
1032
+ </tr>
1033
+ <tr>
1034
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1035
+ <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if current thread is owner of <em class="parameter"><code>context</code></em>.
1036
+
1037
+ </td>
1038
+ </tr>
1039
+ </tbody>
1040
+ </table></div>
1041
+ <p class="since">Since 2.10</p>
1042
+ </div>
1043
+ <hr>
1044
+ <div class="refsect2" title="g_main_context_wait ()">
1045
+ <a name="g-main-context-wait"></a><h3>g_main_context_wait ()</h3>
1046
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_main_context_wait (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
1047
+ <em class="parameter"><code><a class="link" href="glib-Threads.html#GCond" title="GCond"><span class="type">GCond</span></a> *cond</code></em>,
1048
+ <em class="parameter"><code><a class="link" href="glib-Threads.html#GMutex" title="GMutex"><span class="type">GMutex</span></a> *mutex</code></em>);</pre>
1049
+ <p>
1050
+ Tries to become the owner of the specified context,
1051
+ as with <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-acquire" title="g_main_context_acquire ()"><code class="function">g_main_context_acquire()</code></a>. But if another thread
1052
+ is the owner, atomically drop <em class="parameter"><code>mutex</code></em> and wait on <em class="parameter"><code>cond</code></em> until
1053
+ that owner releases ownership or until <em class="parameter"><code>cond</code></em> is signaled, then
1054
+ try again (once) to become the owner.
1055
+ </p>
1056
+ <div class="variablelist"><table border="0">
1057
+ <col align="left" valign="top">
1058
+ <tbody>
1059
+ <tr>
1060
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
1061
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
1062
+ </td>
1063
+ </tr>
1064
+ <tr>
1065
+ <td><p><span class="term"><em class="parameter"><code>cond</code></em> :</span></p></td>
1066
+ <td>a condition variable
1067
+ </td>
1068
+ </tr>
1069
+ <tr>
1070
+ <td><p><span class="term"><em class="parameter"><code>mutex</code></em> :</span></p></td>
1071
+ <td>a mutex, currently held
1072
+ </td>
1073
+ </tr>
1074
+ <tr>
1075
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1076
+ <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the operation succeeded, and
1077
+ this thread is now the owner of <em class="parameter"><code>context</code></em>.
1078
+ </td>
1079
+ </tr>
1080
+ </tbody>
1081
+ </table></div>
1082
+ </div>
1083
+ <hr>
1084
+ <div class="refsect2" title="g_main_context_prepare ()">
1085
+ <a name="g-main-context-prepare"></a><h3>g_main_context_prepare ()</h3>
1086
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_main_context_prepare (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
1087
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> *priority</code></em>);</pre>
1088
+ <p>
1089
+ Prepares to poll sources within a main loop. The resulting information
1090
+ for polling is determined by calling <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-query" title="g_main_context_query ()"><code class="function">g_main_context_query()</code></a>.
1091
+ </p>
1092
+ <div class="variablelist"><table border="0">
1093
+ <col align="left" valign="top">
1094
+ <tbody>
1095
+ <tr>
1096
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
1097
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
1098
+ </td>
1099
+ </tr>
1100
+ <tr>
1101
+ <td><p><span class="term"><em class="parameter"><code>priority</code></em> :</span></p></td>
1102
+ <td>location to store priority of highest priority
1103
+ source already ready.
1104
+ </td>
1105
+ </tr>
1106
+ <tr>
1107
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1108
+ <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if some source is ready to be dispatched
1109
+ prior to polling.
1110
+ </td>
1111
+ </tr>
1112
+ </tbody>
1113
+ </table></div>
1114
+ </div>
1115
+ <hr>
1116
+ <div class="refsect2" title="g_main_context_query ()">
1117
+ <a name="g-main-context-query"></a><h3>g_main_context_query ()</h3>
1118
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_main_context_query (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
1119
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> max_priority</code></em>,
1120
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> *timeout_</code></em>,
1121
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fds</code></em>,
1122
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> n_fds</code></em>);</pre>
1123
+ <p>
1124
+ Determines information necessary to poll this main loop.
1125
+ </p>
1126
+ <div class="variablelist"><table border="0">
1127
+ <col align="left" valign="top">
1128
+ <tbody>
1129
+ <tr>
1130
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
1131
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
1132
+ </td>
1133
+ </tr>
1134
+ <tr>
1135
+ <td><p><span class="term"><em class="parameter"><code>max_priority</code></em> :</span></p></td>
1136
+ <td>maximum priority source to check
1137
+ </td>
1138
+ </tr>
1139
+ <tr>
1140
+ <td><p><span class="term"><em class="parameter"><code>timeout_</code></em> :</span></p></td>
1141
+ <td>location to store timeout to be used in polling
1142
+ </td>
1143
+ </tr>
1144
+ <tr>
1145
+ <td><p><span class="term"><em class="parameter"><code>fds</code></em> :</span></p></td>
1146
+ <td>location to store <a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> records that need to be polled.
1147
+ </td>
1148
+ </tr>
1149
+ <tr>
1150
+ <td><p><span class="term"><em class="parameter"><code>n_fds</code></em> :</span></p></td>
1151
+ <td>length of <em class="parameter"><code>fds</code></em>.
1152
+ </td>
1153
+ </tr>
1154
+ <tr>
1155
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1156
+ <td> the number of records actually stored in <em class="parameter"><code>fds</code></em>,
1157
+ or, if more than <em class="parameter"><code>n_fds</code></em> records need to be stored, the number
1158
+ of records that need to be stored.
1159
+ </td>
1160
+ </tr>
1161
+ </tbody>
1162
+ </table></div>
1163
+ </div>
1164
+ <hr>
1165
+ <div class="refsect2" title="g_main_context_check ()">
1166
+ <a name="g-main-context-check"></a><h3>g_main_context_check ()</h3>
1167
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_main_context_check (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
1168
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> max_priority</code></em>,
1169
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fds</code></em>,
1170
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> n_fds</code></em>);</pre>
1171
+ <p>
1172
+ Passes the results of polling back to the main loop.
1173
+ </p>
1174
+ <div class="variablelist"><table border="0">
1175
+ <col align="left" valign="top">
1176
+ <tbody>
1177
+ <tr>
1178
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
1179
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
1180
+ </td>
1181
+ </tr>
1182
+ <tr>
1183
+ <td><p><span class="term"><em class="parameter"><code>max_priority</code></em> :</span></p></td>
1184
+ <td>the maximum numerical priority of sources to check
1185
+ </td>
1186
+ </tr>
1187
+ <tr>
1188
+ <td><p><span class="term"><em class="parameter"><code>fds</code></em> :</span></p></td>
1189
+ <td>array of <a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a>'s that was passed to the last call to
1190
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-query" title="g_main_context_query ()"><code class="function">g_main_context_query()</code></a>
1191
+ </td>
1192
+ </tr>
1193
+ <tr>
1194
+ <td><p><span class="term"><em class="parameter"><code>n_fds</code></em> :</span></p></td>
1195
+ <td>return value of <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-query" title="g_main_context_query ()"><code class="function">g_main_context_query()</code></a>
1196
+ </td>
1197
+ </tr>
1198
+ <tr>
1199
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1200
+ <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if some sources are ready to be dispatched.
1201
+ </td>
1202
+ </tr>
1203
+ </tbody>
1204
+ </table></div>
1205
+ </div>
1206
+ <hr>
1207
+ <div class="refsect2" title="g_main_context_dispatch ()">
1208
+ <a name="g-main-context-dispatch"></a><h3>g_main_context_dispatch ()</h3>
1209
+ <pre class="programlisting"><span class="returnvalue">void</span> g_main_context_dispatch (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
1210
+ <p>
1211
+ Dispatches all pending sources.
1212
+ </p>
1213
+ <div class="variablelist"><table border="0">
1214
+ <col align="left" valign="top">
1215
+ <tbody><tr>
1216
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
1217
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
1218
+ </td>
1219
+ </tr></tbody>
1220
+ </table></div>
1221
+ </div>
1222
+ <hr>
1223
+ <div class="refsect2" title="g_main_context_set_poll_func ()">
1224
+ <a name="g-main-context-set-poll-func"></a><h3>g_main_context_set_poll_func ()</h3>
1225
+ <pre class="programlisting"><span class="returnvalue">void</span> g_main_context_set_poll_func (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
1226
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFunc" title="GPollFunc ()"><span class="type">GPollFunc</span></a> func</code></em>);</pre>
1227
+ <p>
1228
+ Sets the function to use to handle polling of file descriptors. It
1229
+ will be used instead of the <code class="function">poll()</code> system call
1230
+ (or GLib's replacement function, which is used where
1231
+ <code class="function">poll()</code> isn't available).
1232
+ </p>
1233
+ <p>
1234
+ This function could possibly be used to integrate the GLib event
1235
+ loop with an external event loop.
1236
+ </p>
1237
+ <div class="variablelist"><table border="0">
1238
+ <col align="left" valign="top">
1239
+ <tbody>
1240
+ <tr>
1241
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
1242
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
1243
+ </td>
1244
+ </tr>
1245
+ <tr>
1246
+ <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
1247
+ <td>the function to call to poll all file descriptors
1248
+ </td>
1249
+ </tr>
1250
+ </tbody>
1251
+ </table></div>
1252
+ </div>
1253
+ <hr>
1254
+ <div class="refsect2" title="g_main_context_get_poll_func ()">
1255
+ <a name="g-main-context-get-poll-func"></a><h3>g_main_context_get_poll_func ()</h3>
1256
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GPollFunc" title="GPollFunc ()"><span class="returnvalue">GPollFunc</span></a> g_main_context_get_poll_func (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
1257
+ <p>
1258
+ Gets the poll function set by <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-set-poll-func" title="g_main_context_set_poll_func ()"><code class="function">g_main_context_set_poll_func()</code></a>.
1259
+ </p>
1260
+ <div class="variablelist"><table border="0">
1261
+ <col align="left" valign="top">
1262
+ <tbody>
1263
+ <tr>
1264
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
1265
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
1266
+ </td>
1267
+ </tr>
1268
+ <tr>
1269
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1270
+ <td> the poll function
1271
+ </td>
1272
+ </tr>
1273
+ </tbody>
1274
+ </table></div>
1275
+ </div>
1276
+ <hr>
1277
+ <div class="refsect2" title="GPollFunc ()">
1278
+ <a name="GPollFunc"></a><h3>GPollFunc ()</h3>
1279
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> (*GPollFunc) (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *ufds</code></em>,
1280
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> nfsd</code></em>,
1281
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> timeout_</code></em>);</pre>
1282
+ <p>
1283
+ Specifies the type of function passed to <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-set-poll-func" title="g_main_context_set_poll_func ()"><code class="function">g_main_context_set_poll_func()</code></a>.
1284
+ The semantics of the function should match those of the
1285
+ <code class="function"><code class="function">poll()</code></code> system call.
1286
+ </p>
1287
+ <div class="variablelist"><table border="0">
1288
+ <col align="left" valign="top">
1289
+ <tbody>
1290
+ <tr>
1291
+ <td><p><span class="term"><em class="parameter"><code>ufds</code></em> :</span></p></td>
1292
+ <td>an array of <a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> elements.
1293
+ </td>
1294
+ </tr>
1295
+ <tr>
1296
+ <td><p><span class="term"><em class="parameter"><code>nfsd</code></em> :</span></p></td>
1297
+ <td>the number of elements in <em class="parameter"><code>ufds</code></em>.
1298
+ </td>
1299
+ </tr>
1300
+ <tr>
1301
+ <td><p><span class="term"><em class="parameter"><code>timeout_</code></em> :</span></p></td>
1302
+ <td>the maximum time to wait for an event of the file descriptors.
1303
+ A negative value indicates an infinite timeout.
1304
+ </td>
1305
+ </tr>
1306
+ <tr>
1307
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1308
+ <td>the number of <a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> elements which have events or errors reported,
1309
+ or -1 if an error occurred.
1310
+ </td>
1311
+ </tr>
1312
+ </tbody>
1313
+ </table></div>
1314
+ </div>
1315
+ <hr>
1316
+ <div class="refsect2" title="g_main_context_add_poll ()">
1317
+ <a name="g-main-context-add-poll"></a><h3>g_main_context_add_poll ()</h3>
1318
+ <pre class="programlisting"><span class="returnvalue">void</span> g_main_context_add_poll (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
1319
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fd</code></em>,
1320
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> priority</code></em>);</pre>
1321
+ <p>
1322
+ Adds a file descriptor to the set of file descriptors polled for
1323
+ this context. This will very seldomly be used directly. Instead
1324
+ a typical event source will use <a class="link" href="glib-The-Main-Event-Loop.html#g-source-add-poll" title="g_source_add_poll ()"><code class="function">g_source_add_poll()</code></a> instead.
1325
+ </p>
1326
+ <div class="variablelist"><table border="0">
1327
+ <col align="left" valign="top">
1328
+ <tbody>
1329
+ <tr>
1330
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
1331
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> (or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> for the default context)
1332
+ </td>
1333
+ </tr>
1334
+ <tr>
1335
+ <td><p><span class="term"><em class="parameter"><code>fd</code></em> :</span></p></td>
1336
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> structure holding information about a file
1337
+ descriptor to watch.
1338
+ </td>
1339
+ </tr>
1340
+ <tr>
1341
+ <td><p><span class="term"><em class="parameter"><code>priority</code></em> :</span></p></td>
1342
+ <td>the priority for this file descriptor which should be
1343
+ the same as the priority used for <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a> to ensure that the
1344
+ file descriptor is polled whenever the results may be needed.
1345
+ </td>
1346
+ </tr>
1347
+ </tbody>
1348
+ </table></div>
1349
+ </div>
1350
+ <hr>
1351
+ <div class="refsect2" title="g_main_context_remove_poll ()">
1352
+ <a name="g-main-context-remove-poll"></a><h3>g_main_context_remove_poll ()</h3>
1353
+ <pre class="programlisting"><span class="returnvalue">void</span> g_main_context_remove_poll (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>,
1354
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fd</code></em>);</pre>
1355
+ <p>
1356
+ Removes file descriptor from the set of file descriptors to be
1357
+ polled for a particular context.
1358
+ </p>
1359
+ <div class="variablelist"><table border="0">
1360
+ <col align="left" valign="top">
1361
+ <tbody>
1362
+ <tr>
1363
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
1364
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
1365
+ </td>
1366
+ </tr>
1367
+ <tr>
1368
+ <td><p><span class="term"><em class="parameter"><code>fd</code></em> :</span></p></td>
1369
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> descriptor previously added with <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-add-poll" title="g_main_context_add_poll ()"><code class="function">g_main_context_add_poll()</code></a>
1370
+ </td>
1371
+ </tr>
1372
+ </tbody>
1373
+ </table></div>
1374
+ </div>
1375
+ <hr>
1376
+ <div class="refsect2" title="g_main_depth ()">
1377
+ <a name="g-main-depth"></a><h3>g_main_depth ()</h3>
1378
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_main_depth (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
1379
+ <p>
1380
+ Returns the depth of the stack of calls to
1381
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-dispatch" title="g_main_context_dispatch ()"><code class="function">g_main_context_dispatch()</code></a> on any <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> in the current thread.
1382
+ That is, when called from the toplevel, it gives 0. When
1383
+ called from within a callback from <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-iteration" title="g_main_context_iteration ()"><code class="function">g_main_context_iteration()</code></a>
1384
+ (or <a class="link" href="glib-The-Main-Event-Loop.html#g-main-loop-run" title="g_main_loop_run ()"><code class="function">g_main_loop_run()</code></a>, etc.) it returns 1. When called from within
1385
+ a callback to a recursive call to <code class="function">g_main_context_iterate()</code>,
1386
+ it returns 2. And so forth.
1387
+ </p>
1388
+ <p>
1389
+ This function is useful in a situation like the following:
1390
+ Imagine an extremely simple "garbage collected" system.
1391
+ </p>
1392
+ <p>
1393
+ </p>
1394
+ <div class="informalexample">
1395
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1396
+ <tbody>
1397
+ <tr>
1398
+ <td class="listing_lines" align="right"><pre>1
1399
+ 2
1400
+ 3
1401
+ 4
1402
+ 5
1403
+ 6
1404
+ 7
1405
+ 8
1406
+ 9
1407
+ 10
1408
+ 11
1409
+ 12
1410
+ 13
1411
+ 14
1412
+ 15
1413
+ 16
1414
+ 17
1415
+ 18
1416
+ 19
1417
+ 20
1418
+ 21
1419
+ 22
1420
+ 23
1421
+ 24
1422
+ 25
1423
+ 26
1424
+ 27</pre></td>
1425
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">free_list</span><span class="symbol">;</span>
1426
+
1427
+ <span class="normal"><a href="glib-Basic-Types.html#gpointer">gpointer</a></span>
1428
+ <span class="function">allocate_memory</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">gsize</span><span class="normal"> size</span><span class="symbol">)</span>
1429
+ <span class="cbracket">{</span><span class="normal"> </span>
1430
+ <span class="normal"> </span><span class="usertype">gpointer</span><span class="normal"> result </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Memory-Allocation.html#g-malloc">g_malloc</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">size</span><span class="symbol">);</span>
1431
+ <span class="normal"> free_list </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Doubly-Linked-Lists.html#g-list-prepend">g_list_prepend</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">free_list</span><span class="symbol">,</span><span class="normal"> result</span><span class="symbol">);</span>
1432
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> result</span><span class="symbol">;</span>
1433
+ <span class="cbracket">}</span>
1434
+
1435
+ <span class="type">void</span>
1436
+ <span class="function">free_allocated_memory</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
1437
+ <span class="cbracket">{</span>
1438
+ <span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">l</span><span class="symbol">;</span>
1439
+ <span class="normal"> </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">l </span><span class="symbol">=</span><span class="normal"> free_list</span><span class="symbol">;</span><span class="normal"> l</span><span class="symbol">;</span><span class="normal"> l </span><span class="symbol">=</span><span class="normal"> l</span><span class="symbol">-&gt;</span><span class="normal">next</span><span class="symbol">);</span>
1440
+ <span class="normal"> </span><span class="function"><a href="glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">l</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">);</span>
1441
+ <span class="normal"> </span><span class="function"><a href="glib-Doubly-Linked-Lists.html#g-list-free">g_list_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">free_list</span><span class="symbol">);</span>
1442
+ <span class="normal"> free_list </span><span class="symbol">=</span><span class="normal"> <a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">;</span>
1443
+ <span class="normal"> </span><span class="cbracket">}</span>
1444
+
1445
+ <span class="symbol">[...]</span>
1446
+
1447
+ <span class="keyword">while</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">);</span><span class="normal"> </span>
1448
+ <span class="normal"> </span><span class="cbracket">{</span>
1449
+ <span class="normal"> </span><span class="function"><a href="glib-The-Main-Event-Loop.html#g-main-context-iteration">g_main_context_iteration</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">,</span><span class="normal"> <a href="glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">);</span>
1450
+ <span class="normal"> </span><span class="function">free_allocated_memory</span><span class="symbol">();</span>
1451
+ <span class="normal"> </span><span class="cbracket">}</span></pre></td>
1452
+ </tr>
1453
+ </tbody>
1454
+ </table>
1455
+ </div>
1456
+
1457
+ <p>
1458
+ </p>
1459
+ <p>
1460
+ This works from an application, however, if you want to do the same
1461
+ thing from a library, it gets more difficult, since you no longer
1462
+ control the main loop. You might think you can simply use an idle
1463
+ function to make the call to <code class="function">free_allocated_memory()</code>, but that
1464
+ doesn't work, since the idle function could be called from a
1465
+ recursive callback. This can be fixed by using <a class="link" href="glib-The-Main-Event-Loop.html#g-main-depth" title="g_main_depth ()"><code class="function">g_main_depth()</code></a>
1466
+ </p>
1467
+ <p>
1468
+ </p>
1469
+ <div class="informalexample">
1470
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1471
+ <tbody>
1472
+ <tr>
1473
+ <td class="listing_lines" align="right"><pre>1
1474
+ 2
1475
+ 3
1476
+ 4
1477
+ 5
1478
+ 6
1479
+ 7
1480
+ 8
1481
+ 9
1482
+ 10
1483
+ 11
1484
+ 12
1485
+ 13
1486
+ 14
1487
+ 15
1488
+ 16
1489
+ 17
1490
+ 18
1491
+ 19
1492
+ 20
1493
+ 21
1494
+ 22
1495
+ 23
1496
+ 24
1497
+ 25
1498
+ 26
1499
+ 27
1500
+ 28
1501
+ 29
1502
+ 30</pre></td>
1503
+ <td class="listing_code"><pre class="programlisting"><span class="normal"><a href="glib-Basic-Types.html#gpointer">gpointer</a></span>
1504
+ <span class="function">allocate_memory</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">gsize</span><span class="normal"> size</span><span class="symbol">)</span>
1505
+ <span class="cbracket">{</span><span class="normal"> </span>
1506
+ <span class="normal"> </span><span class="usertype">FreeListBlock</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">block </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Memory-Allocation.html#g-new">g_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">FreeListBlock</span><span class="symbol">,</span><span class="normal"> </span><span class="number">1</span><span class="symbol">);</span>
1507
+ <span class="normal"> block</span><span class="symbol">-&gt;</span><span class="normal">mem </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Memory-Allocation.html#g-malloc">g_malloc</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">size</span><span class="symbol">);</span>
1508
+ <span class="normal"> block</span><span class="symbol">-&gt;</span><span class="normal">depth </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-The-Main-Event-Loop.html#g-main-depth">g_main_depth</a></span><span class="normal"> </span><span class="symbol">();</span><span class="normal"> </span>
1509
+ <span class="normal"> free_list </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Doubly-Linked-Lists.html#g-list-prepend">g_list_prepend</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">free_list</span><span class="symbol">,</span><span class="normal"> block</span><span class="symbol">);</span>
1510
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> block</span><span class="symbol">-&gt;</span><span class="normal">mem</span><span class="symbol">;</span>
1511
+ <span class="cbracket">}</span>
1512
+
1513
+ <span class="type">void</span>
1514
+ <span class="function">free_allocated_memory</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
1515
+ <span class="cbracket">{</span>
1516
+ <span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">l</span><span class="symbol">;</span>
1517
+ <span class="normal"> </span>
1518
+ <span class="normal"> </span><span class="type">int</span><span class="normal"> depth </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-The-Main-Event-Loop.html#g-main-depth">g_main_depth</a></span><span class="normal"> </span><span class="symbol">();</span>
1519
+ <span class="normal"> </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">l </span><span class="symbol">=</span><span class="normal"> free_list</span><span class="symbol">;</span><span class="normal"> l</span><span class="symbol">;</span><span class="normal"> </span><span class="symbol">);</span>
1520
+ <span class="normal"> </span><span class="cbracket">{</span>
1521
+ <span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">next </span><span class="symbol">=</span><span class="normal"> l</span><span class="symbol">-&gt;</span><span class="normal">next</span><span class="symbol">;</span>
1522
+ <span class="normal"> </span><span class="usertype">FreeListBlock</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">block </span><span class="symbol">=</span><span class="normal"> l</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">;</span>
1523
+ <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">block</span><span class="symbol">-&gt;</span><span class="normal">depth </span><span class="symbol">&gt;</span><span class="normal"> depth</span><span class="symbol">)</span>
1524
+ <span class="normal"> </span><span class="cbracket">{</span>
1525
+ <span class="normal"> </span><span class="function"><a href="glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">block</span><span class="symbol">-&gt;</span><span class="normal">mem</span><span class="symbol">);</span>
1526
+ <span class="normal"> </span><span class="function"><a href="glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">block</span><span class="symbol">);</span>
1527
+ <span class="normal"> free_list </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-Doubly-Linked-Lists.html#g-list-delete-link">g_list_delete_link</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">free_list</span><span class="symbol">,</span><span class="normal"> l</span><span class="symbol">);</span>
1528
+ <span class="normal"> </span><span class="cbracket">}</span>
1529
+ <span class="normal"> </span>
1530
+ <span class="normal"> l </span><span class="symbol">=</span><span class="normal"> next</span><span class="symbol">;</span>
1531
+ <span class="normal"> </span><span class="cbracket">}</span>
1532
+ <span class="normal"> </span><span class="cbracket">}</span></pre></td>
1533
+ </tr>
1534
+ </tbody>
1535
+ </table>
1536
+ </div>
1537
+
1538
+ <p>
1539
+ </p>
1540
+ <p>
1541
+ There is a temptation to use <a class="link" href="glib-The-Main-Event-Loop.html#g-main-depth" title="g_main_depth ()"><code class="function">g_main_depth()</code></a> to solve
1542
+ problems with reentrancy. For instance, while waiting for data
1543
+ to be received from the network in response to a menu item,
1544
+ the menu item might be selected again. It might seem that
1545
+ one could make the menu item's callback return immediately
1546
+ and do nothing if <a class="link" href="glib-The-Main-Event-Loop.html#g-main-depth" title="g_main_depth ()"><code class="function">g_main_depth()</code></a> returns a value greater than 1.
1547
+ However, this should be avoided since the user then sees selecting
1548
+ the menu item do nothing. Furthermore, you'll find yourself adding
1549
+ these checks all over your code, since there are doubtless many,
1550
+ many things that the user could do. Instead, you can use the
1551
+ following techniques:
1552
+ </p>
1553
+ <p>
1554
+ </p>
1555
+ <div class="orderedlist"><ol class="orderedlist" type="1">
1556
+ <li class="listitem"><p>
1557
+ Use <code class="function">gtk_widget_set_sensitive()</code> or modal dialogs to prevent
1558
+ the user from interacting with elements while the main
1559
+ loop is recursing.
1560
+ </p></li>
1561
+ <li class="listitem"><p>
1562
+ Avoid main loop recursion in situations where you can't handle
1563
+ arbitrary callbacks. Instead, structure your code so that you
1564
+ simply return to the main loop and then get called again when
1565
+ there is more work to do.
1566
+ </p></li>
1567
+ </ol></div>
1568
+ <p>
1569
+ </p>
1570
+ <div class="variablelist"><table border="0">
1571
+ <col align="left" valign="top">
1572
+ <tbody><tr>
1573
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1574
+ <td> The main loop recursion level in the current thread
1575
+ </td>
1576
+ </tr></tbody>
1577
+ </table></div>
1578
+ </div>
1579
+ <hr>
1580
+ <div class="refsect2" title="g_main_current_source ()">
1581
+ <a name="g-main-current-source"></a><h3>g_main_current_source ()</h3>
1582
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * g_main_current_source (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
1583
+ <p>
1584
+ Returns the currently firing source for this thread.
1585
+ </p>
1586
+ <div class="variablelist"><table border="0">
1587
+ <col align="left" valign="top">
1588
+ <tbody><tr>
1589
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1590
+ <td> The currently firing source or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
1591
+
1592
+ </td>
1593
+ </tr></tbody>
1594
+ </table></div>
1595
+ <p class="since">Since 2.12</p>
1596
+ </div>
1597
+ <hr>
1598
+ <div class="refsect2" title="g_main_set_poll_func()">
1599
+ <a name="g-main-set-poll-func"></a><h3>g_main_set_poll_func()</h3>
1600
+ <pre class="programlisting">#define g_main_set_poll_func(func)</pre>
1601
+ <div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;">
1602
+ <h3 class="title">Warning</h3>
1603
+ <p><code class="literal">g_main_set_poll_func</code> has been deprecated since version 2.2 and should not be used in newly-written code. Use <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-set-poll-func" title="g_main_context_set_poll_func ()"><code class="function">g_main_context_set_poll_func()</code></a> instead.</p>
1604
+ </div>
1605
+ <p>
1606
+ Sets the function to use for the handle polling of file descriptors
1607
+ for the default main context.
1608
+ </p>
1609
+ <div class="variablelist"><table border="0">
1610
+ <col align="left" valign="top">
1611
+ <tbody><tr>
1612
+ <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
1613
+ <td>the function to call to poll all file descriptors.
1614
+ </td>
1615
+ </tr></tbody>
1616
+ </table></div>
1617
+ </div>
1618
+ <hr>
1619
+ <div class="refsect2" title="g_main_context_get_thread_default ()">
1620
+ <a name="g-main-context-get-thread-default"></a><h3>g_main_context_get_thread_default ()</h3>
1621
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="returnvalue">GMainContext</span></a> * g_main_context_get_thread_default (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
1622
+ <p>
1623
+ Gets the thread-default <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> for this thread. Asynchronous
1624
+ operations that want to be able to be run in contexts other than
1625
+ the default one should call this method to get a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> to
1626
+ add their <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>s to. (Note that even in single-threaded
1627
+ programs applications may sometimes want to temporarily push a
1628
+ non-default context, so it is not safe to assume that this will
1629
+ always return <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if threads are not initialized.)
1630
+ </p>
1631
+ <div class="variablelist"><table border="0">
1632
+ <col align="left" valign="top">
1633
+ <tbody><tr>
1634
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1635
+ <td> the thread-default <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the
1636
+ thread-default context is the global default context.
1637
+
1638
+ </td>
1639
+ </tr></tbody>
1640
+ </table></div>
1641
+ <p class="since">Since 2.22</p>
1642
+ </div>
1643
+ <hr>
1644
+ <div class="refsect2" title="g_main_context_push_thread_default ()">
1645
+ <a name="g-main-context-push-thread-default"></a><h3>g_main_context_push_thread_default ()</h3>
1646
+ <pre class="programlisting"><span class="returnvalue">void</span> g_main_context_push_thread_default (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
1647
+ <p>
1648
+ Acquires <em class="parameter"><code>context</code></em> and sets it as the thread-default context for the
1649
+ current thread. This will cause certain asynchronous operations
1650
+ (such as most gio-based I/O) which are
1651
+ started in this thread to run under <em class="parameter"><code>context</code></em> and deliver their
1652
+ results to its main loop, rather than running under the global
1653
+ default context in the main thread. Note that calling this function
1654
+ changes the context returned by
1655
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-get-thread-default" title="g_main_context_get_thread_default ()"><code class="function">g_main_context_get_thread_default()</code></a>, <span class="emphasis"><em>not</em></span> the
1656
+ one returned by <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-default" title="g_main_context_default ()"><code class="function">g_main_context_default()</code></a>, so it does not affect the
1657
+ context used by functions like <a class="link" href="glib-The-Main-Event-Loop.html#g-idle-add" title="g_idle_add ()"><code class="function">g_idle_add()</code></a>.
1658
+ </p>
1659
+ <p>
1660
+ Normally you would call this function shortly after creating a new
1661
+ thread, passing it a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> which will be run by a
1662
+ <a class="link" href="glib-The-Main-Event-Loop.html#GMainLoop" title="GMainLoop"><span class="type">GMainLoop</span></a> in that thread, to set a new default context for all
1663
+ async operations in that thread. (In this case, you don't need to
1664
+ ever call <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-pop-thread-default" title="g_main_context_pop_thread_default ()"><code class="function">g_main_context_pop_thread_default()</code></a>.) In some cases
1665
+ however, you may want to schedule a single operation in a
1666
+ non-default context, or temporarily use a non-default context in
1667
+ the main thread. In that case, you can wrap the call to the
1668
+ asynchronous operation inside a
1669
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-push-thread-default" title="g_main_context_push_thread_default ()"><code class="function">g_main_context_push_thread_default()</code></a> /
1670
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-pop-thread-default" title="g_main_context_pop_thread_default ()"><code class="function">g_main_context_pop_thread_default()</code></a> pair, but it is up to you to
1671
+ ensure that no other asynchronous operations accidentally get
1672
+ started while the non-default context is active.
1673
+ </p>
1674
+ <p>
1675
+ Beware that libraries that predate this function may not correctly
1676
+ handle being used from a thread with a thread-default context. Eg,
1677
+ see <a href="/usr/share/gtk-doc/html/gio/GFile.html#g-file-supports-thread-contexts"><code class="function">g_file_supports_thread_contexts()</code></a>.
1678
+ </p>
1679
+ <div class="variablelist"><table border="0">
1680
+ <col align="left" valign="top">
1681
+ <tbody><tr>
1682
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
1683
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> for the global default context
1684
+ </td>
1685
+ </tr></tbody>
1686
+ </table></div>
1687
+ <p class="since">Since 2.22</p>
1688
+ </div>
1689
+ <hr>
1690
+ <div class="refsect2" title="g_main_context_pop_thread_default ()">
1691
+ <a name="g-main-context-pop-thread-default"></a><h3>g_main_context_pop_thread_default ()</h3>
1692
+ <pre class="programlisting"><span class="returnvalue">void</span> g_main_context_pop_thread_default (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
1693
+ <p>
1694
+ Pops <em class="parameter"><code>context</code></em> off the thread-default context stack (verifying that
1695
+ it was on the top of the stack).
1696
+ </p>
1697
+ <div class="variablelist"><table border="0">
1698
+ <col align="left" valign="top">
1699
+ <tbody><tr>
1700
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
1701
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> object, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>
1702
+ </td>
1703
+ </tr></tbody>
1704
+ </table></div>
1705
+ <p class="since">Since 2.22</p>
1706
+ </div>
1707
+ <hr>
1708
+ <div class="refsect2" title="g_timeout_source_new ()">
1709
+ <a name="g-timeout-source-new"></a><h3>g_timeout_source_new ()</h3>
1710
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * g_timeout_source_new (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> interval</code></em>);</pre>
1711
+ <p>
1712
+ Creates a new timeout source.
1713
+ </p>
1714
+ <p>
1715
+ The source will not initially be associated with any <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
1716
+ and must be added to one with <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a> before it will be
1717
+ executed.
1718
+ </p>
1719
+ <div class="variablelist"><table border="0">
1720
+ <col align="left" valign="top">
1721
+ <tbody>
1722
+ <tr>
1723
+ <td><p><span class="term"><em class="parameter"><code>interval</code></em> :</span></p></td>
1724
+ <td>the timeout interval in milliseconds.
1725
+ </td>
1726
+ </tr>
1727
+ <tr>
1728
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1729
+ <td> the newly-created timeout source
1730
+ </td>
1731
+ </tr>
1732
+ </tbody>
1733
+ </table></div>
1734
+ </div>
1735
+ <hr>
1736
+ <div class="refsect2" title="g_timeout_source_new_seconds ()">
1737
+ <a name="g-timeout-source-new-seconds"></a><h3>g_timeout_source_new_seconds ()</h3>
1738
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * g_timeout_source_new_seconds (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> interval</code></em>);</pre>
1739
+ <p>
1740
+ Creates a new timeout source.
1741
+ </p>
1742
+ <p>
1743
+ The source will not initially be associated with any <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
1744
+ and must be added to one with <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a> before it will be
1745
+ executed.
1746
+ </p>
1747
+ <p>
1748
+ The scheduling granularity/accuracy of this timeout source will be
1749
+ in seconds.
1750
+ </p>
1751
+ <div class="variablelist"><table border="0">
1752
+ <col align="left" valign="top">
1753
+ <tbody>
1754
+ <tr>
1755
+ <td><p><span class="term"><em class="parameter"><code>interval</code></em> :</span></p></td>
1756
+ <td>the timeout interval in seconds
1757
+ </td>
1758
+ </tr>
1759
+ <tr>
1760
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1761
+ <td> the newly-created timeout source
1762
+
1763
+ </td>
1764
+ </tr>
1765
+ </tbody>
1766
+ </table></div>
1767
+ <p class="since">Since 2.14</p>
1768
+ </div>
1769
+ <hr>
1770
+ <div class="refsect2" title="g_timeout_add ()">
1771
+ <a name="g-timeout-add"></a><h3>g_timeout_add ()</h3>
1772
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_timeout_add (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> interval</code></em>,
1773
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> function</code></em>,
1774
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
1775
+ <p>
1776
+ Sets a function to be called at regular intervals, with the default
1777
+ priority, <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS" title="G_PRIORITY_DEFAULT"><span class="type">G_PRIORITY_DEFAULT</span></a>. The function is called repeatedly
1778
+ until it returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>, at which point the timeout is automatically
1779
+ destroyed and the function will not be called again. The first call
1780
+ to the function will be at the end of the first <em class="parameter"><code>interval</code></em>.
1781
+ </p>
1782
+ <p>
1783
+ Note that timeout functions may be delayed, due to the processing of other
1784
+ event sources. Thus they should not be relied on for precise timing.
1785
+ After each call to the timeout function, the time of the next
1786
+ timeout is recalculated based on the current time and the given interval
1787
+ (it does not try to 'catch up' time lost in delays).
1788
+ </p>
1789
+ <p>
1790
+ If you want to have a timer in the "seconds" range and do not care
1791
+ about the exact time of the first call of the timer, use the
1792
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add-seconds" title="g_timeout_add_seconds ()"><code class="function">g_timeout_add_seconds()</code></a> function; this function allows for more
1793
+ optimizations and more efficient system power usage.
1794
+ </p>
1795
+ <p>
1796
+ This internally creates a main loop source using <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-source-new" title="g_timeout_source_new ()"><code class="function">g_timeout_source_new()</code></a>
1797
+ and attaches it to the main loop context using <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a>. You can
1798
+ do these steps manually if you need greater control.
1799
+ </p>
1800
+ <div class="variablelist"><table border="0">
1801
+ <col align="left" valign="top">
1802
+ <tbody>
1803
+ <tr>
1804
+ <td><p><span class="term"><em class="parameter"><code>interval</code></em> :</span></p></td>
1805
+ <td>the time between calls to the function, in milliseconds
1806
+ (1/1000ths of a second)
1807
+ </td>
1808
+ </tr>
1809
+ <tr>
1810
+ <td><p><span class="term"><em class="parameter"><code>function</code></em> :</span></p></td>
1811
+ <td>function to call
1812
+ </td>
1813
+ </tr>
1814
+ <tr>
1815
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
1816
+ <td>data to pass to <em class="parameter"><code>function</code></em>
1817
+ </td>
1818
+ </tr>
1819
+ <tr>
1820
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1821
+ <td> the ID (greater than 0) of the event source.
1822
+ </td>
1823
+ </tr>
1824
+ </tbody>
1825
+ </table></div>
1826
+ </div>
1827
+ <hr>
1828
+ <div class="refsect2" title="g_timeout_add_full ()">
1829
+ <a name="g-timeout-add-full"></a><h3>g_timeout_add_full ()</h3>
1830
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_timeout_add_full (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> priority</code></em>,
1831
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> interval</code></em>,
1832
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> function</code></em>,
1833
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
1834
+ <em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
1835
+ <p>
1836
+ Sets a function to be called at regular intervals, with the given
1837
+ priority. The function is called repeatedly until it returns
1838
+ <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>, at which point the timeout is automatically destroyed and
1839
+ the function will not be called again. The <em class="parameter"><code>notify</code></em> function is
1840
+ called when the timeout is destroyed. The first call to the
1841
+ function will be at the end of the first <em class="parameter"><code>interval</code></em>.
1842
+ </p>
1843
+ <p>
1844
+ Note that timeout functions may be delayed, due to the processing of other
1845
+ event sources. Thus they should not be relied on for precise timing.
1846
+ After each call to the timeout function, the time of the next
1847
+ timeout is recalculated based on the current time and the given interval
1848
+ (it does not try to 'catch up' time lost in delays).
1849
+ </p>
1850
+ <p>
1851
+ This internally creates a main loop source using <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-source-new" title="g_timeout_source_new ()"><code class="function">g_timeout_source_new()</code></a>
1852
+ and attaches it to the main loop context using <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a>. You can
1853
+ do these steps manually if you need greater control.
1854
+ </p>
1855
+ <div class="variablelist"><table border="0">
1856
+ <col align="left" valign="top">
1857
+ <tbody>
1858
+ <tr>
1859
+ <td><p><span class="term"><em class="parameter"><code>priority</code></em> :</span></p></td>
1860
+ <td>the priority of the timeout source. Typically this will be in
1861
+ the range between <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS" title="G_PRIORITY_DEFAULT"><span class="type">G_PRIORITY_DEFAULT</span></a> and <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-HIGH:CAPS" title="G_PRIORITY_HIGH"><span class="type">G_PRIORITY_HIGH</span></a>.
1862
+ </td>
1863
+ </tr>
1864
+ <tr>
1865
+ <td><p><span class="term"><em class="parameter"><code>interval</code></em> :</span></p></td>
1866
+ <td>the time between calls to the function, in milliseconds
1867
+ (1/1000ths of a second)
1868
+ </td>
1869
+ </tr>
1870
+ <tr>
1871
+ <td><p><span class="term"><em class="parameter"><code>function</code></em> :</span></p></td>
1872
+ <td>function to call
1873
+ </td>
1874
+ </tr>
1875
+ <tr>
1876
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
1877
+ <td>data to pass to <em class="parameter"><code>function</code></em>
1878
+ </td>
1879
+ </tr>
1880
+ <tr>
1881
+ <td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
1882
+ <td>function to call when the timeout is removed, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>
1883
+ </td>
1884
+ </tr>
1885
+ <tr>
1886
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1887
+ <td> the ID (greater than 0) of the event source.
1888
+ </td>
1889
+ </tr>
1890
+ </tbody>
1891
+ </table></div>
1892
+ </div>
1893
+ <hr>
1894
+ <div class="refsect2" title="g_timeout_add_seconds ()">
1895
+ <a name="g-timeout-add-seconds"></a><h3>g_timeout_add_seconds ()</h3>
1896
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_timeout_add_seconds (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> interval</code></em>,
1897
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> function</code></em>,
1898
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
1899
+ <p>
1900
+ Sets a function to be called at regular intervals with the default
1901
+ priority, <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS" title="G_PRIORITY_DEFAULT"><span class="type">G_PRIORITY_DEFAULT</span></a>. The function is called repeatedly until
1902
+ it returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>, at which point the timeout is automatically destroyed
1903
+ and the function will not be called again.
1904
+ </p>
1905
+ <p>
1906
+ This internally creates a main loop source using
1907
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-source-new-seconds" title="g_timeout_source_new_seconds ()"><code class="function">g_timeout_source_new_seconds()</code></a> and attaches it to the main loop context
1908
+ using <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a>. You can do these steps manually if you need
1909
+ greater control. Also see <code class="function">g_timout_add_seconds_full()</code>.
1910
+ </p>
1911
+ <div class="variablelist"><table border="0">
1912
+ <col align="left" valign="top">
1913
+ <tbody>
1914
+ <tr>
1915
+ <td><p><span class="term"><em class="parameter"><code>interval</code></em> :</span></p></td>
1916
+ <td>the time between calls to the function, in seconds
1917
+ </td>
1918
+ </tr>
1919
+ <tr>
1920
+ <td><p><span class="term"><em class="parameter"><code>function</code></em> :</span></p></td>
1921
+ <td>function to call
1922
+ </td>
1923
+ </tr>
1924
+ <tr>
1925
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
1926
+ <td>data to pass to <em class="parameter"><code>function</code></em>
1927
+ </td>
1928
+ </tr>
1929
+ <tr>
1930
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
1931
+ <td> the ID (greater than 0) of the event source.
1932
+
1933
+ </td>
1934
+ </tr>
1935
+ </tbody>
1936
+ </table></div>
1937
+ <p class="since">Since 2.14</p>
1938
+ </div>
1939
+ <hr>
1940
+ <div class="refsect2" title="g_timeout_add_seconds_full ()">
1941
+ <a name="g-timeout-add-seconds-full"></a><h3>g_timeout_add_seconds_full ()</h3>
1942
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_timeout_add_seconds_full (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> priority</code></em>,
1943
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> interval</code></em>,
1944
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> function</code></em>,
1945
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
1946
+ <em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
1947
+ <p>
1948
+ Sets a function to be called at regular intervals, with <em class="parameter"><code>priority</code></em>.
1949
+ The function is called repeatedly until it returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>, at which
1950
+ point the timeout is automatically destroyed and the function will
1951
+ not be called again.
1952
+ </p>
1953
+ <p>
1954
+ Unlike <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add" title="g_timeout_add ()"><code class="function">g_timeout_add()</code></a>, this function operates at whole second granularity.
1955
+ The initial starting point of the timer is determined by the implementation
1956
+ and the implementation is expected to group multiple timers together so that
1957
+ they fire all at the same time.
1958
+ To allow this grouping, the <em class="parameter"><code>interval</code></em> to the first timer is rounded
1959
+ and can deviate up to one second from the specified interval.
1960
+ Subsequent timer iterations will generally run at the specified interval.
1961
+ </p>
1962
+ <p>
1963
+ Note that timeout functions may be delayed, due to the processing of other
1964
+ event sources. Thus they should not be relied on for precise timing.
1965
+ After each call to the timeout function, the time of the next
1966
+ timeout is recalculated based on the current time and the given <em class="parameter"><code>interval</code></em>
1967
+ </p>
1968
+ <p>
1969
+ If you want timing more precise than whole seconds, use <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add" title="g_timeout_add ()"><code class="function">g_timeout_add()</code></a>
1970
+ instead.
1971
+ </p>
1972
+ <p>
1973
+ The grouping of timers to fire at the same time results in a more power
1974
+ and CPU efficient behavior so if your timer is in multiples of seconds
1975
+ and you don't require the first timer exactly one second from now, the
1976
+ use of <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add-seconds" title="g_timeout_add_seconds ()"><code class="function">g_timeout_add_seconds()</code></a> is preferred over <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add" title="g_timeout_add ()"><code class="function">g_timeout_add()</code></a>.
1977
+ </p>
1978
+ <p>
1979
+ This internally creates a main loop source using
1980
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-source-new-seconds" title="g_timeout_source_new_seconds ()"><code class="function">g_timeout_source_new_seconds()</code></a> and attaches it to the main loop context
1981
+ using <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a>. You can do these steps manually if you need
1982
+ greater control.
1983
+ </p>
1984
+ <div class="variablelist"><table border="0">
1985
+ <col align="left" valign="top">
1986
+ <tbody>
1987
+ <tr>
1988
+ <td><p><span class="term"><em class="parameter"><code>priority</code></em> :</span></p></td>
1989
+ <td>the priority of the timeout source. Typically this will be in
1990
+ the range between <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS" title="G_PRIORITY_DEFAULT"><span class="type">G_PRIORITY_DEFAULT</span></a> and <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-HIGH:CAPS" title="G_PRIORITY_HIGH"><span class="type">G_PRIORITY_HIGH</span></a>.
1991
+ </td>
1992
+ </tr>
1993
+ <tr>
1994
+ <td><p><span class="term"><em class="parameter"><code>interval</code></em> :</span></p></td>
1995
+ <td>the time between calls to the function, in seconds
1996
+ </td>
1997
+ </tr>
1998
+ <tr>
1999
+ <td><p><span class="term"><em class="parameter"><code>function</code></em> :</span></p></td>
2000
+ <td>function to call
2001
+ </td>
2002
+ </tr>
2003
+ <tr>
2004
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
2005
+ <td>data to pass to <em class="parameter"><code>function</code></em>
2006
+ </td>
2007
+ </tr>
2008
+ <tr>
2009
+ <td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
2010
+ <td>function to call when the timeout is removed, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>
2011
+ </td>
2012
+ </tr>
2013
+ <tr>
2014
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2015
+ <td> the ID (greater than 0) of the event source.
2016
+
2017
+ </td>
2018
+ </tr>
2019
+ </tbody>
2020
+ </table></div>
2021
+ <p class="since">Since 2.14</p>
2022
+ </div>
2023
+ <hr>
2024
+ <div class="refsect2" title="g_idle_source_new ()">
2025
+ <a name="g-idle-source-new"></a><h3>g_idle_source_new ()</h3>
2026
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * g_idle_source_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
2027
+ <p>
2028
+ Creates a new idle source.
2029
+ </p>
2030
+ <p>
2031
+ The source will not initially be associated with any <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
2032
+ and must be added to one with <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a> before it will be
2033
+ executed. Note that the default priority for idle sources is
2034
+ <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT-IDLE:CAPS" title="G_PRIORITY_DEFAULT_IDLE"><code class="literal">G_PRIORITY_DEFAULT_IDLE</code></a>, as compared to other sources which
2035
+ have a default priority of <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS" title="G_PRIORITY_DEFAULT"><code class="literal">G_PRIORITY_DEFAULT</code></a>.
2036
+ </p>
2037
+ <div class="variablelist"><table border="0">
2038
+ <col align="left" valign="top">
2039
+ <tbody><tr>
2040
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2041
+ <td> the newly-created idle source
2042
+ </td>
2043
+ </tr></tbody>
2044
+ </table></div>
2045
+ </div>
2046
+ <hr>
2047
+ <div class="refsect2" title="g_idle_add ()">
2048
+ <a name="g-idle-add"></a><h3>g_idle_add ()</h3>
2049
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_idle_add (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> function</code></em>,
2050
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
2051
+ <p>
2052
+ Adds a function to be called whenever there are no higher priority
2053
+ events pending to the default main loop. The function is given the
2054
+ default idle priority, <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT-IDLE:CAPS" title="G_PRIORITY_DEFAULT_IDLE"><span class="type">G_PRIORITY_DEFAULT_IDLE</span></a>. If the function
2055
+ returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> it is automatically removed from the list of event
2056
+ sources and will not be called again.
2057
+ </p>
2058
+ <p>
2059
+ This internally creates a main loop source using <a class="link" href="glib-The-Main-Event-Loop.html#g-idle-source-new" title="g_idle_source_new ()"><code class="function">g_idle_source_new()</code></a>
2060
+ and attaches it to the main loop context using <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a>.
2061
+ You can do these steps manually if you need greater control.
2062
+ </p>
2063
+ <div class="variablelist"><table border="0">
2064
+ <col align="left" valign="top">
2065
+ <tbody>
2066
+ <tr>
2067
+ <td><p><span class="term"><em class="parameter"><code>function</code></em> :</span></p></td>
2068
+ <td>function to call
2069
+ </td>
2070
+ </tr>
2071
+ <tr>
2072
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
2073
+ <td>data to pass to <em class="parameter"><code>function</code></em>.
2074
+ </td>
2075
+ </tr>
2076
+ <tr>
2077
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2078
+ <td> the ID (greater than 0) of the event source.
2079
+ </td>
2080
+ </tr>
2081
+ </tbody>
2082
+ </table></div>
2083
+ </div>
2084
+ <hr>
2085
+ <div class="refsect2" title="g_idle_add_full ()">
2086
+ <a name="g-idle-add-full"></a><h3>g_idle_add_full ()</h3>
2087
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_idle_add_full (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> priority</code></em>,
2088
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> function</code></em>,
2089
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
2090
+ <em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
2091
+ <p>
2092
+ Adds a function to be called whenever there are no higher priority
2093
+ events pending. If the function returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> it is automatically
2094
+ removed from the list of event sources and will not be called again.
2095
+ </p>
2096
+ <p>
2097
+ This internally creates a main loop source using <a class="link" href="glib-The-Main-Event-Loop.html#g-idle-source-new" title="g_idle_source_new ()"><code class="function">g_idle_source_new()</code></a>
2098
+ and attaches it to the main loop context using <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a>.
2099
+ You can do these steps manually if you need greater control.
2100
+ </p>
2101
+ <div class="variablelist"><table border="0">
2102
+ <col align="left" valign="top">
2103
+ <tbody>
2104
+ <tr>
2105
+ <td><p><span class="term"><em class="parameter"><code>priority</code></em> :</span></p></td>
2106
+ <td>the priority of the idle source. Typically this will be in the
2107
+ range between <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT-IDLE:CAPS" title="G_PRIORITY_DEFAULT_IDLE"><span class="type">G_PRIORITY_DEFAULT_IDLE</span></a> and <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-HIGH-IDLE:CAPS" title="G_PRIORITY_HIGH_IDLE"><span class="type">G_PRIORITY_HIGH_IDLE</span></a>.
2108
+ </td>
2109
+ </tr>
2110
+ <tr>
2111
+ <td><p><span class="term"><em class="parameter"><code>function</code></em> :</span></p></td>
2112
+ <td>function to call
2113
+ </td>
2114
+ </tr>
2115
+ <tr>
2116
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
2117
+ <td>data to pass to <em class="parameter"><code>function</code></em>
2118
+ </td>
2119
+ </tr>
2120
+ <tr>
2121
+ <td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
2122
+ <td>function to call when the idle is removed, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>
2123
+ </td>
2124
+ </tr>
2125
+ <tr>
2126
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2127
+ <td> the ID (greater than 0) of the event source.
2128
+ </td>
2129
+ </tr>
2130
+ </tbody>
2131
+ </table></div>
2132
+ </div>
2133
+ <hr>
2134
+ <div class="refsect2" title="g_idle_remove_by_data ()">
2135
+ <a name="g-idle-remove-by-data"></a><h3>g_idle_remove_by_data ()</h3>
2136
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_idle_remove_by_data (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
2137
+ <p>
2138
+ Removes the idle function with the given data.
2139
+ </p>
2140
+ <div class="variablelist"><table border="0">
2141
+ <col align="left" valign="top">
2142
+ <tbody>
2143
+ <tr>
2144
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
2145
+ <td>the data for the idle source's callback.
2146
+ </td>
2147
+ </tr>
2148
+ <tr>
2149
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2150
+ <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if an idle source was found and removed.
2151
+ </td>
2152
+ </tr>
2153
+ </tbody>
2154
+ </table></div>
2155
+ </div>
2156
+ <hr>
2157
+ <div class="refsect2" title="GPid">
2158
+ <a name="GPid"></a><h3>GPid</h3>
2159
+ <pre class="programlisting">typedef int GPid;
2160
+ </pre>
2161
+ <p>
2162
+ A type which is used to hold a process identification.
2163
+ On Unix, processes are identified by a process id (an
2164
+ integer), while Windows uses process handles (which are
2165
+ pointers).
2166
+ </p>
2167
+ </div>
2168
+ <hr>
2169
+ <div class="refsect2" title="GChildWatchFunc ()">
2170
+ <a name="GChildWatchFunc"></a><h3>GChildWatchFunc ()</h3>
2171
+ <pre class="programlisting"><span class="returnvalue">void</span> (*GChildWatchFunc) (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPid" title="GPid"><span class="type">GPid</span></a> pid</code></em>,
2172
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> status</code></em>,
2173
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
2174
+ <p>
2175
+ The type of functions to be called when a child exists.
2176
+ </p>
2177
+ <div class="variablelist"><table border="0">
2178
+ <col align="left" valign="top">
2179
+ <tbody>
2180
+ <tr>
2181
+ <td><p><span class="term"><em class="parameter"><code>pid</code></em> :</span></p></td>
2182
+ <td>the process id of the child process
2183
+ </td>
2184
+ </tr>
2185
+ <tr>
2186
+ <td><p><span class="term"><em class="parameter"><code>status</code></em> :</span></p></td>
2187
+ <td>Status information about the child process,
2188
+ see waitpid(2) for more information about this field
2189
+ </td>
2190
+ </tr>
2191
+ <tr>
2192
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
2193
+ <td>user data passed to <a class="link" href="glib-The-Main-Event-Loop.html#g-child-watch-add" title="g_child_watch_add ()"><code class="function">g_child_watch_add()</code></a>
2194
+ </td>
2195
+ </tr>
2196
+ </tbody>
2197
+ </table></div>
2198
+ </div>
2199
+ <hr>
2200
+ <div class="refsect2" title="g_child_watch_source_new ()">
2201
+ <a name="g-child-watch-source-new"></a><h3>g_child_watch_source_new ()</h3>
2202
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * g_child_watch_source_new (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPid" title="GPid"><span class="type">GPid</span></a> pid</code></em>);</pre>
2203
+ <p>
2204
+ Creates a new child_watch source.
2205
+ </p>
2206
+ <p>
2207
+ The source will not initially be associated with any <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
2208
+ and must be added to one with <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a> before it will be
2209
+ executed.
2210
+ </p>
2211
+ <p>
2212
+ Note that child watch sources can only be used in conjunction with
2213
+ <code class="literal">g_spawn...</code> when the <a class="link" href="glib-Spawning-Processes.html#G-SPAWN-DO-NOT-REAP-CHILD:CAPS"><code class="literal">G_SPAWN_DO_NOT_REAP_CHILD</code></a>
2214
+ flag is used.
2215
+ </p>
2216
+ <p>
2217
+ Note that on platforms where <a class="link" href="glib-The-Main-Event-Loop.html#GPid" title="GPid"><span class="type">GPid</span></a> must be explicitly closed
2218
+ (see <a class="link" href="glib-Spawning-Processes.html#g-spawn-close-pid" title="g_spawn_close_pid ()"><code class="function">g_spawn_close_pid()</code></a>) <em class="parameter"><code>pid</code></em> must not be closed while the
2219
+ source is still active. Typically, you will want to call
2220
+ <a class="link" href="glib-Spawning-Processes.html#g-spawn-close-pid" title="g_spawn_close_pid ()"><code class="function">g_spawn_close_pid()</code></a> in the callback function for the source.
2221
+ </p>
2222
+ <p>
2223
+ Note further that using <a class="link" href="glib-The-Main-Event-Loop.html#g-child-watch-source-new" title="g_child_watch_source_new ()"><code class="function">g_child_watch_source_new()</code></a> is not
2224
+ compatible with calling <code class="literal">waitpid(-1)</code> in
2225
+ the application. Calling <code class="function">waitpid()</code> for individual pids will
2226
+ still work fine.
2227
+ </p>
2228
+ <div class="variablelist"><table border="0">
2229
+ <col align="left" valign="top">
2230
+ <tbody>
2231
+ <tr>
2232
+ <td><p><span class="term"><em class="parameter"><code>pid</code></em> :</span></p></td>
2233
+ <td>process to watch. On POSIX the pid of a child process. On
2234
+ Windows a handle for a process (which doesn't have to be a child).
2235
+ </td>
2236
+ </tr>
2237
+ <tr>
2238
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2239
+ <td> the newly-created child watch source
2240
+
2241
+ </td>
2242
+ </tr>
2243
+ </tbody>
2244
+ </table></div>
2245
+ <p class="since">Since 2.4</p>
2246
+ </div>
2247
+ <hr>
2248
+ <div class="refsect2" title="g_child_watch_add ()">
2249
+ <a name="g-child-watch-add"></a><h3>g_child_watch_add ()</h3>
2250
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_child_watch_add (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPid" title="GPid"><span class="type">GPid</span></a> pid</code></em>,
2251
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GChildWatchFunc" title="GChildWatchFunc ()"><span class="type">GChildWatchFunc</span></a> function</code></em>,
2252
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
2253
+ <p>
2254
+ Sets a function to be called when the child indicated by <em class="parameter"><code>pid</code></em>
2255
+ exits, at a default priority, <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT:CAPS" title="G_PRIORITY_DEFAULT"><span class="type">G_PRIORITY_DEFAULT</span></a>.
2256
+ </p>
2257
+ <p>
2258
+ If you obtain <em class="parameter"><code>pid</code></em> from <a class="link" href="glib-Spawning-Processes.html#g-spawn-async" title="g_spawn_async ()"><code class="function">g_spawn_async()</code></a> or <a class="link" href="glib-Spawning-Processes.html#g-spawn-async-with-pipes" title="g_spawn_async_with_pipes ()"><code class="function">g_spawn_async_with_pipes()</code></a>
2259
+ you will need to pass <a class="link" href="glib-Spawning-Processes.html#G-SPAWN-DO-NOT-REAP-CHILD:CAPS"><span class="type">G_SPAWN_DO_NOT_REAP_CHILD</span></a> as flag to
2260
+ the spawn function for the child watching to work.
2261
+ </p>
2262
+ <p>
2263
+ Note that on platforms where <a class="link" href="glib-The-Main-Event-Loop.html#GPid" title="GPid"><span class="type">GPid</span></a> must be explicitly closed
2264
+ (see <a class="link" href="glib-Spawning-Processes.html#g-spawn-close-pid" title="g_spawn_close_pid ()"><code class="function">g_spawn_close_pid()</code></a>) <em class="parameter"><code>pid</code></em> must not be closed while the
2265
+ source is still active. Typically, you will want to call
2266
+ <a class="link" href="glib-Spawning-Processes.html#g-spawn-close-pid" title="g_spawn_close_pid ()"><code class="function">g_spawn_close_pid()</code></a> in the callback function for the source.
2267
+ </p>
2268
+ <p>
2269
+ GLib supports only a single callback per process id.
2270
+ </p>
2271
+ <p>
2272
+ This internally creates a main loop source using
2273
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-child-watch-source-new" title="g_child_watch_source_new ()"><code class="function">g_child_watch_source_new()</code></a> and attaches it to the main loop context
2274
+ using <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a>. You can do these steps manually if you
2275
+ need greater control.
2276
+ </p>
2277
+ <div class="variablelist"><table border="0">
2278
+ <col align="left" valign="top">
2279
+ <tbody>
2280
+ <tr>
2281
+ <td><p><span class="term"><em class="parameter"><code>pid</code></em> :</span></p></td>
2282
+ <td>process id to watch. On POSIX the pid of a child process. On
2283
+ Windows a handle for a process (which doesn't have to be a child).
2284
+ </td>
2285
+ </tr>
2286
+ <tr>
2287
+ <td><p><span class="term"><em class="parameter"><code>function</code></em> :</span></p></td>
2288
+ <td>function to call
2289
+ </td>
2290
+ </tr>
2291
+ <tr>
2292
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
2293
+ <td>data to pass to <em class="parameter"><code>function</code></em>
2294
+ </td>
2295
+ </tr>
2296
+ <tr>
2297
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2298
+ <td> the ID (greater than 0) of the event source.
2299
+
2300
+ </td>
2301
+ </tr>
2302
+ </tbody>
2303
+ </table></div>
2304
+ <p class="since">Since 2.4</p>
2305
+ </div>
2306
+ <hr>
2307
+ <div class="refsect2" title="g_child_watch_add_full ()">
2308
+ <a name="g-child-watch-add-full"></a><h3>g_child_watch_add_full ()</h3>
2309
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_child_watch_add_full (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> priority</code></em>,
2310
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPid" title="GPid"><span class="type">GPid</span></a> pid</code></em>,
2311
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GChildWatchFunc" title="GChildWatchFunc ()"><span class="type">GChildWatchFunc</span></a> function</code></em>,
2312
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
2313
+ <em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
2314
+ <p>
2315
+ Sets a function to be called when the child indicated by <em class="parameter"><code>pid</code></em>
2316
+ exits, at the priority <em class="parameter"><code>priority</code></em>.
2317
+ </p>
2318
+ <p>
2319
+ If you obtain <em class="parameter"><code>pid</code></em> from <a class="link" href="glib-Spawning-Processes.html#g-spawn-async" title="g_spawn_async ()"><code class="function">g_spawn_async()</code></a> or <a class="link" href="glib-Spawning-Processes.html#g-spawn-async-with-pipes" title="g_spawn_async_with_pipes ()"><code class="function">g_spawn_async_with_pipes()</code></a>
2320
+ you will need to pass <a class="link" href="glib-Spawning-Processes.html#G-SPAWN-DO-NOT-REAP-CHILD:CAPS"><span class="type">G_SPAWN_DO_NOT_REAP_CHILD</span></a> as flag to
2321
+ the spawn function for the child watching to work.
2322
+ </p>
2323
+ <p>
2324
+ Note that on platforms where <a class="link" href="glib-The-Main-Event-Loop.html#GPid" title="GPid"><span class="type">GPid</span></a> must be explicitly closed
2325
+ (see <a class="link" href="glib-Spawning-Processes.html#g-spawn-close-pid" title="g_spawn_close_pid ()"><code class="function">g_spawn_close_pid()</code></a>) <em class="parameter"><code>pid</code></em> must not be closed while the
2326
+ source is still active. Typically, you will want to call
2327
+ <a class="link" href="glib-Spawning-Processes.html#g-spawn-close-pid" title="g_spawn_close_pid ()"><code class="function">g_spawn_close_pid()</code></a> in the callback function for the source.
2328
+ </p>
2329
+ <p>
2330
+ GLib supports only a single callback per process id.
2331
+ </p>
2332
+ <p>
2333
+ This internally creates a main loop source using
2334
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-child-watch-source-new" title="g_child_watch_source_new ()"><code class="function">g_child_watch_source_new()</code></a> and attaches it to the main loop context
2335
+ using <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a>. You can do these steps manually if you
2336
+ need greater control.
2337
+ </p>
2338
+ <div class="variablelist"><table border="0">
2339
+ <col align="left" valign="top">
2340
+ <tbody>
2341
+ <tr>
2342
+ <td><p><span class="term"><em class="parameter"><code>priority</code></em> :</span></p></td>
2343
+ <td>the priority of the idle source. Typically this will be in the
2344
+ range between <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-DEFAULT-IDLE:CAPS" title="G_PRIORITY_DEFAULT_IDLE"><span class="type">G_PRIORITY_DEFAULT_IDLE</span></a> and <a class="link" href="glib-The-Main-Event-Loop.html#G-PRIORITY-HIGH-IDLE:CAPS" title="G_PRIORITY_HIGH_IDLE"><span class="type">G_PRIORITY_HIGH_IDLE</span></a>.
2345
+ </td>
2346
+ </tr>
2347
+ <tr>
2348
+ <td><p><span class="term"><em class="parameter"><code>pid</code></em> :</span></p></td>
2349
+ <td>process to watch. On POSIX the pid of a child process. On
2350
+ Windows a handle for a process (which doesn't have to be a child).
2351
+ </td>
2352
+ </tr>
2353
+ <tr>
2354
+ <td><p><span class="term"><em class="parameter"><code>function</code></em> :</span></p></td>
2355
+ <td>function to call
2356
+ </td>
2357
+ </tr>
2358
+ <tr>
2359
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
2360
+ <td>data to pass to <em class="parameter"><code>function</code></em>
2361
+ </td>
2362
+ </tr>
2363
+ <tr>
2364
+ <td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
2365
+ <td>function to call when the idle is removed, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>
2366
+ </td>
2367
+ </tr>
2368
+ <tr>
2369
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2370
+ <td> the ID (greater than 0) of the event source.
2371
+
2372
+ </td>
2373
+ </tr>
2374
+ </tbody>
2375
+ </table></div>
2376
+ <p class="since">Since 2.4</p>
2377
+ </div>
2378
+ <hr>
2379
+ <div class="refsect2" title="GPollFD">
2380
+ <a name="GPollFD"></a><h3>GPollFD</h3>
2381
+ <pre class="programlisting">typedef struct {
2382
+ #if defined (G_OS_WIN32) &amp;&amp; GLIB_SIZEOF_VOID_P == 8
2383
+ gint64 fd;
2384
+ #else
2385
+ gint fd;
2386
+ #endif
2387
+ gushort events;
2388
+ gushort revents;
2389
+ } GPollFD;
2390
+ </pre>
2391
+ <p>
2392
+ </p>
2393
+ <div class="informaltable"><table width="100%" border="0">
2394
+ <colgroup>
2395
+ <col>
2396
+ <col>
2397
+ </colgroup>
2398
+ <tbody>
2399
+ <tr>
2400
+ <td>
2401
+ <a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> fd;</td>
2402
+ <td>the file descriptor to poll (or a <span class="type">HANDLE</span> on Win32 platforms).</td>
2403
+ </tr>
2404
+ <tr>
2405
+ <td>
2406
+ <a class="link" href="glib-Basic-Types.html#gushort" title="gushort"><span class="type">gushort</span></a> events;</td>
2407
+ <td>a bitwise combination of flags from <a class="link" href="glib-IO-Channels.html#GIOCondition" title="enum GIOCondition"><span class="type">GIOCondition</span></a>, specifying which
2408
+ events should be polled for. Typically for reading from a file descriptor
2409
+ you would use <a class="link" href="glib-IO-Channels.html#G-IO-IN:CAPS"><code class="literal">G_IO_IN</code></a> | <a class="link" href="glib-IO-Channels.html#G-IO-HUP:CAPS"><code class="literal">G_IO_HUP</code></a> | <a class="link" href="glib-IO-Channels.html#G-IO-ERR:CAPS"><code class="literal">G_IO_ERR</code></a>, and for writing you would use
2410
+ <a class="link" href="glib-IO-Channels.html#G-IO-OUT:CAPS"><code class="literal">G_IO_OUT</code></a> | <a class="link" href="glib-IO-Channels.html#G-IO-ERR:CAPS"><code class="literal">G_IO_ERR</code></a>.
2411
+ </td>
2412
+ </tr>
2413
+ <tr>
2414
+ <td>
2415
+ <a class="link" href="glib-Basic-Types.html#gushort" title="gushort"><span class="type">gushort</span></a> revents;</td>
2416
+ <td>a bitwise combination of flags from <a class="link" href="glib-IO-Channels.html#GIOCondition" title="enum GIOCondition"><span class="type">GIOCondition</span></a>, returned from the
2417
+ <code class="function"><code class="function">poll()</code></code> function to indicate which events occurred.
2418
+ </td>
2419
+ </tr>
2420
+ </tbody>
2421
+ </table></div>
2422
+ <p>
2423
+ </p>
2424
+ </div>
2425
+ <hr>
2426
+ <div class="refsect2" title="g_poll ()">
2427
+ <a name="g-poll"></a><h3>g_poll ()</h3>
2428
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_poll (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fds</code></em>,
2429
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> nfds</code></em>,
2430
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> timeout</code></em>);</pre>
2431
+ <p>
2432
+ Polls <em class="parameter"><code>fds</code></em>, as with the <code class="function">poll()</code> system call, but portably. (On
2433
+ systems that don't have <code class="function">poll()</code>, it is emulated using <code class="function">select()</code>.)
2434
+ This is used internally by <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>, but it can be called
2435
+ directly if you need to block until a file descriptor is ready, but
2436
+ don't want to run the full main loop.
2437
+ </p>
2438
+ <p>
2439
+ Each element of <em class="parameter"><code>fds</code></em> is a <a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> describing a single file
2440
+ descriptor to poll. The <code class="literal">fd</code> field indicates the file descriptor,
2441
+ and the <code class="literal">events</code> field indicates the events to poll for. On return,
2442
+ the <code class="literal">revents</code> fields will be filled with the events that actually
2443
+ occurred.
2444
+ </p>
2445
+ <p>
2446
+ On POSIX systems, the file descriptors in <em class="parameter"><code>fds</code></em> can be any sort of
2447
+ file descriptor, but the situation is much more complicated on
2448
+ Windows. If you need to use <a class="link" href="glib-The-Main-Event-Loop.html#g-poll" title="g_poll ()"><code class="function">g_poll()</code></a> in code that has to run on
2449
+ Windows, the easiest solution is to construct all of your
2450
+ <a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a>s with <code class="function">g_io_channel_win32_make_pollfd()</code>.
2451
+ </p>
2452
+ <div class="variablelist"><table border="0">
2453
+ <col align="left" valign="top">
2454
+ <tbody>
2455
+ <tr>
2456
+ <td><p><span class="term"><em class="parameter"><code>fds</code></em> :</span></p></td>
2457
+ <td>file descriptors to poll
2458
+ </td>
2459
+ </tr>
2460
+ <tr>
2461
+ <td><p><span class="term"><em class="parameter"><code>nfds</code></em> :</span></p></td>
2462
+ <td>the number of file descriptors in <em class="parameter"><code>fds</code></em>
2463
+ </td>
2464
+ </tr>
2465
+ <tr>
2466
+ <td><p><span class="term"><em class="parameter"><code>timeout</code></em> :</span></p></td>
2467
+ <td>amount of time to wait, in milliseconds, or -1 to wait forever
2468
+ </td>
2469
+ </tr>
2470
+ <tr>
2471
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2472
+ <td> the number of entries in <em class="parameter"><code>fds</code></em> whose <code class="literal">revents</code> fields
2473
+ were filled in, or 0 if the operation timed out, or -1 on error or
2474
+ if the call was interrupted.
2475
+
2476
+ </td>
2477
+ </tr>
2478
+ </tbody>
2479
+ </table></div>
2480
+ <p class="since">Since 2.20</p>
2481
+ </div>
2482
+ <hr>
2483
+ <div class="refsect2" title="G_POLLFD_FORMAT">
2484
+ <a name="G-POLLFD-FORMAT:CAPS"></a><h3>G_POLLFD_FORMAT</h3>
2485
+ <pre class="programlisting">#define G_POLLFD_FORMAT</pre>
2486
+ <p>
2487
+ </p>
2488
+ </div>
2489
+ <hr>
2490
+ <div class="refsect2" title="GSource">
2491
+ <a name="GSource"></a><h3>GSource</h3>
2492
+ <pre class="programlisting">typedef struct {
2493
+ } GSource;
2494
+ </pre>
2495
+ <p>
2496
+ The <span class="structname">GSource</span> struct is an opaque data type representing
2497
+ an event source.
2498
+ </p>
2499
+ </div>
2500
+ <hr>
2501
+ <div class="refsect2" title="GSourceDummyMarshal ()">
2502
+ <a name="GSourceDummyMarshal"></a><h3>GSourceDummyMarshal ()</h3>
2503
+ <pre class="programlisting"><span class="returnvalue">void</span> (*GSourceDummyMarshal) (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
2504
+ <p>
2505
+ This is just a placeholder for <a href="/usr/share/gtk-doc/html/gobject/gobject-Closures.html#GClosureMarshal"><span class="type">GClosureMarshal</span></a>, which cannot be used here
2506
+ for dependency reasons.
2507
+ </p>
2508
+ </div>
2509
+ <hr>
2510
+ <div class="refsect2" title="GSourceFuncs">
2511
+ <a name="GSourceFuncs"></a><h3>GSourceFuncs</h3>
2512
+ <pre class="programlisting">typedef struct {
2513
+ gboolean (*prepare) (GSource *source,
2514
+ gint *timeout_);
2515
+ gboolean (*check) (GSource *source);
2516
+ gboolean (*dispatch) (GSource *source,
2517
+ GSourceFunc callback,
2518
+ gpointer user_data);
2519
+ void (*finalize) (GSource *source); /* Can be NULL */
2520
+
2521
+ /* For use by g_source_set_closure */
2522
+ GSourceFunc closure_callback;
2523
+ GSourceDummyMarshal closure_marshal; /* Really is of type GClosureMarshal */
2524
+ } GSourceFuncs;
2525
+ </pre>
2526
+ <p>
2527
+ The <a class="link" href="glib-The-Main-Event-Loop.html#GSourceFuncs" title="GSourceFuncs"><span class="type">GSourceFuncs</span></a> struct contains a table of functions used to handle
2528
+ event sources in a generic manner.
2529
+ </p>
2530
+ <p>
2531
+ For idle sources, the prepare and check functions always return <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> to
2532
+ indicate that the source is always ready to be processed.
2533
+ The prepare function also returns a timeout value of 0 to ensure that the
2534
+ <code class="function">poll()</code> call doesn't block (since that would be time
2535
+ wasted which could have been spent running the idle function).
2536
+ </p>
2537
+ <p>
2538
+ For timeout sources, the prepare and check functions both return <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the
2539
+ timeout interval has expired. The prepare function also returns a timeout
2540
+ value to ensure that the <code class="function">poll()</code> call doesn't block too
2541
+ long and miss the next timeout.
2542
+ </p>
2543
+ <p>
2544
+ For file descriptor sources, the prepare function typically returns <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a>,
2545
+ since it must wait until <code class="function">poll()</code> has been called before
2546
+ it knows whether any events need to be processed. It sets the returned
2547
+ timeout to -1 to indicate that it doesn't mind how long the
2548
+ <code class="function">poll()</code> call blocks.
2549
+ In the check function, it tests the results of the <code class="function">poll()</code>
2550
+ call to see if the required condition has been met, and returns <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if so.
2551
+ </p>
2552
+ <div class="variablelist"><table border="0">
2553
+ <col align="left" valign="top">
2554
+ <tbody>
2555
+ <tr>
2556
+ <td><p><span class="term"><em class="structfield"><code><a name="GSourceFuncs.prepare"></a>prepare</code></em> ()</span></p></td>
2557
+ <td>Called before all the file descriptors are polled.
2558
+ If the source can determine that it is ready here (without waiting for the
2559
+ results of the <code class="function">poll()</code> call) it should return <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>.
2560
+ It can also return a <em class="parameter"><code>timeout_</code></em> value which should be the maximum timeout
2561
+ (in milliseconds) which should be passed to the <code class="function">poll()</code> call.
2562
+ The actual timeout used will be -1 if all sources returned -1, or it will
2563
+ be the minimum of all the <em class="parameter"><code>timeout_</code></em> values returned which were &gt;= 0.
2564
+ </td>
2565
+ </tr>
2566
+ <tr>
2567
+ <td><p><span class="term"><em class="structfield"><code><a name="GSourceFuncs.check"></a>check</code></em> ()</span></p></td>
2568
+ <td>Called after all the file descriptors are polled.
2569
+ The source should return <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if it is ready to be dispatched.
2570
+ Note that some time may have passed since the previous prepare function was
2571
+ called, so the source should be checked again here.
2572
+ </td>
2573
+ </tr>
2574
+ <tr>
2575
+ <td><p><span class="term"><em class="structfield"><code><a name="GSourceFuncs.dispatch"></a>dispatch</code></em> ()</span></p></td>
2576
+ <td>Called to dispatch the event source, after it has returned <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> in
2577
+ either its <em class="parameter"><code>prepare</code></em> or its <em class="parameter"><code>check</code></em> function. The <em class="parameter"><code>dispatch</code></em> function is
2578
+ passed in a callback function and data. The callback function may be
2579
+ <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the source was never connected to a callback using
2580
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-source-set-callback" title="g_source_set_callback ()"><code class="function">g_source_set_callback()</code></a>. The <em class="parameter"><code>dispatch</code></em> function should call the
2581
+ callback function with <em class="parameter"><code>user_data</code></em> and whatever additional parameters are
2582
+ needed for this type of event source.
2583
+ </td>
2584
+ </tr>
2585
+ <tr>
2586
+ <td><p><span class="term"><em class="structfield"><code><a name="GSourceFuncs.finalize"></a>finalize</code></em> ()</span></p></td>
2587
+ <td>Called when the source is finalized.
2588
+ </td>
2589
+ </tr>
2590
+ <tr>
2591
+ <td><p><span class="term"><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> <em class="structfield"><code><a name="GSourceFuncs.closure-callback"></a>closure_callback</code></em>;</span></p></td>
2592
+ <td>
2593
+ </td>
2594
+ </tr>
2595
+ <tr>
2596
+ <td><p><span class="term"><a class="link" href="glib-The-Main-Event-Loop.html#GSourceDummyMarshal" title="GSourceDummyMarshal ()"><span class="type">GSourceDummyMarshal</span></a> <em class="structfield"><code><a name="GSourceFuncs.closure-marshal"></a>closure_marshal</code></em>;</span></p></td>
2597
+ <td>
2598
+ </td>
2599
+ </tr>
2600
+ </tbody>
2601
+ </table></div>
2602
+ </div>
2603
+ <hr>
2604
+ <div class="refsect2" title="GSourceCallbackFuncs">
2605
+ <a name="GSourceCallbackFuncs"></a><h3>GSourceCallbackFuncs</h3>
2606
+ <pre class="programlisting">typedef struct {
2607
+ void (*ref) (gpointer cb_data);
2608
+ void (*unref) (gpointer cb_data);
2609
+ void (*get) (gpointer cb_data,
2610
+ GSource *source,
2611
+ GSourceFunc *func,
2612
+ gpointer *data);
2613
+ } GSourceCallbackFuncs;
2614
+ </pre>
2615
+ <p>
2616
+ The <span class="structname">GSourceCallbackFuncs</span> struct contains
2617
+ functions for managing callback objects.
2618
+ </p>
2619
+ <div class="variablelist"><table border="0">
2620
+ <col align="left" valign="top">
2621
+ <tbody>
2622
+ <tr>
2623
+ <td><p><span class="term"><em class="structfield"><code><a name="GSourceCallbackFuncs.ref"></a>ref</code></em> ()</span></p></td>
2624
+ <td>Called when a reference is added to the callback object.
2625
+ </td>
2626
+ </tr>
2627
+ <tr>
2628
+ <td><p><span class="term"><em class="structfield"><code><a name="GSourceCallbackFuncs.unref"></a>unref</code></em> ()</span></p></td>
2629
+ <td>Called when a reference to the callback object is dropped.
2630
+ </td>
2631
+ </tr>
2632
+ <tr>
2633
+ <td><p><span class="term"><em class="structfield"><code><a name="GSourceCallbackFuncs.get"></a>get</code></em> ()</span></p></td>
2634
+ <td>Called to extract the callback function and data from the callback object.
2635
+ </td>
2636
+ </tr>
2637
+ </tbody>
2638
+ </table></div>
2639
+ </div>
2640
+ <hr>
2641
+ <div class="refsect2" title="g_source_new ()">
2642
+ <a name="g-source-new"></a><h3>g_source_new ()</h3>
2643
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * g_source_new (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFuncs" title="GSourceFuncs"><span class="type">GSourceFuncs</span></a> *source_funcs</code></em>,
2644
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> struct_size</code></em>);</pre>
2645
+ <p>
2646
+ Creates a new <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> structure. The size is specified to
2647
+ allow creating structures derived from <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> that contain
2648
+ additional data. The size passed in must be at least
2649
+ <code class="literal">sizeof (GSource)</code>.
2650
+ </p>
2651
+ <p>
2652
+ The source will not initially be associated with any <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>
2653
+ and must be added to one with <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a> before it will be
2654
+ executed.
2655
+ </p>
2656
+ <div class="variablelist"><table border="0">
2657
+ <col align="left" valign="top">
2658
+ <tbody>
2659
+ <tr>
2660
+ <td><p><span class="term"><em class="parameter"><code>source_funcs</code></em> :</span></p></td>
2661
+ <td>structure containing functions that implement
2662
+ the sources behavior.
2663
+ </td>
2664
+ </tr>
2665
+ <tr>
2666
+ <td><p><span class="term"><em class="parameter"><code>struct_size</code></em> :</span></p></td>
2667
+ <td>size of the <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> structure to create.
2668
+ </td>
2669
+ </tr>
2670
+ <tr>
2671
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2672
+ <td> the newly-created <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>.
2673
+ </td>
2674
+ </tr>
2675
+ </tbody>
2676
+ </table></div>
2677
+ </div>
2678
+ <hr>
2679
+ <div class="refsect2" title="g_source_ref ()">
2680
+ <a name="g-source-ref"></a><h3>g_source_ref ()</h3>
2681
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="returnvalue">GSource</span></a> * g_source_ref (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);</pre>
2682
+ <p>
2683
+ Increases the reference count on a source by one.
2684
+ </p>
2685
+ <div class="variablelist"><table border="0">
2686
+ <col align="left" valign="top">
2687
+ <tbody>
2688
+ <tr>
2689
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
2690
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
2691
+ </td>
2692
+ </tr>
2693
+ <tr>
2694
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2695
+ <td> <em class="parameter"><code>source</code></em>
2696
+ </td>
2697
+ </tr>
2698
+ </tbody>
2699
+ </table></div>
2700
+ </div>
2701
+ <hr>
2702
+ <div class="refsect2" title="g_source_unref ()">
2703
+ <a name="g-source-unref"></a><h3>g_source_unref ()</h3>
2704
+ <pre class="programlisting"><span class="returnvalue">void</span> g_source_unref (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);</pre>
2705
+ <p>
2706
+ Decreases the reference count of a source by one. If the
2707
+ resulting reference count is zero the source and associated
2708
+ memory will be destroyed.
2709
+ </p>
2710
+ <div class="variablelist"><table border="0">
2711
+ <col align="left" valign="top">
2712
+ <tbody><tr>
2713
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
2714
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
2715
+ </td>
2716
+ </tr></tbody>
2717
+ </table></div>
2718
+ </div>
2719
+ <hr>
2720
+ <div class="refsect2" title="g_source_set_funcs ()">
2721
+ <a name="g-source-set-funcs"></a><h3>g_source_set_funcs ()</h3>
2722
+ <pre class="programlisting"><span class="returnvalue">void</span> g_source_set_funcs (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
2723
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFuncs" title="GSourceFuncs"><span class="type">GSourceFuncs</span></a> *funcs</code></em>);</pre>
2724
+ <p>
2725
+ Sets the source functions (can be used to override
2726
+ default implementations) of an unattached source.
2727
+ </p>
2728
+ <div class="variablelist"><table border="0">
2729
+ <col align="left" valign="top">
2730
+ <tbody>
2731
+ <tr>
2732
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
2733
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
2734
+ </td>
2735
+ </tr>
2736
+ <tr>
2737
+ <td><p><span class="term"><em class="parameter"><code>funcs</code></em> :</span></p></td>
2738
+ <td>the new <a class="link" href="glib-The-Main-Event-Loop.html#GSourceFuncs" title="GSourceFuncs"><span class="type">GSourceFuncs</span></a>
2739
+ </td>
2740
+ </tr>
2741
+ </tbody>
2742
+ </table></div>
2743
+ <p class="since">Since 2.12</p>
2744
+ </div>
2745
+ <hr>
2746
+ <div class="refsect2" title="g_source_attach ()">
2747
+ <a name="g-source-attach"></a><h3>g_source_attach ()</h3>
2748
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_source_attach (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
2749
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
2750
+ <p>
2751
+ Adds a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> to a <em class="parameter"><code>context</code></em> so that it will be executed within
2752
+ that context. Remove it by calling <a class="link" href="glib-The-Main-Event-Loop.html#g-source-destroy" title="g_source_destroy ()"><code class="function">g_source_destroy()</code></a>.
2753
+ </p>
2754
+ <div class="variablelist"><table border="0">
2755
+ <col align="left" valign="top">
2756
+ <tbody>
2757
+ <tr>
2758
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
2759
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
2760
+ </td>
2761
+ </tr>
2762
+ <tr>
2763
+ <td><p><span class="term"><em class="parameter"><code>context</code></em> :</span></p></td>
2764
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> (if <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>, the default context will be used)
2765
+ </td>
2766
+ </tr>
2767
+ <tr>
2768
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2769
+ <td> the ID (greater than 0) for the source within the
2770
+ <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>.
2771
+ </td>
2772
+ </tr>
2773
+ </tbody>
2774
+ </table></div>
2775
+ </div>
2776
+ <hr>
2777
+ <div class="refsect2" title="g_source_destroy ()">
2778
+ <a name="g-source-destroy"></a><h3>g_source_destroy ()</h3>
2779
+ <pre class="programlisting"><span class="returnvalue">void</span> g_source_destroy (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);</pre>
2780
+ <p>
2781
+ Removes a source from its <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a>, if any, and mark it as
2782
+ destroyed. The source cannot be subsequently added to another
2783
+ context.
2784
+ </p>
2785
+ <div class="variablelist"><table border="0">
2786
+ <col align="left" valign="top">
2787
+ <tbody><tr>
2788
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
2789
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
2790
+ </td>
2791
+ </tr></tbody>
2792
+ </table></div>
2793
+ </div>
2794
+ <hr>
2795
+ <div class="refsect2" title="g_source_is_destroyed ()">
2796
+ <a name="g-source-is-destroyed"></a><h3>g_source_is_destroyed ()</h3>
2797
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_source_is_destroyed (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);</pre>
2798
+ <p>
2799
+ Returns whether <em class="parameter"><code>source</code></em> has been destroyed.
2800
+ </p>
2801
+ <p>
2802
+ This is important when you operate upon your objects
2803
+ from within idle handlers, but may have freed the object
2804
+ before the dispatch of your idle handler.
2805
+ </p>
2806
+ <p>
2807
+ </p>
2808
+ <div class="informalexample">
2809
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
2810
+ <tbody>
2811
+ <tr>
2812
+ <td class="listing_lines" align="right"><pre>1
2813
+ 2
2814
+ 3
2815
+ 4
2816
+ 5
2817
+ 6
2818
+ 7
2819
+ 8
2820
+ 9
2821
+ 10
2822
+ 11
2823
+ 12
2824
+ 13
2825
+ 14
2826
+ 15
2827
+ 16
2828
+ 17
2829
+ 18
2830
+ 19
2831
+ 20
2832
+ 21
2833
+ 22
2834
+ 23
2835
+ 24
2836
+ 25
2837
+ 26
2838
+ 27
2839
+ 28
2840
+ 29</pre></td>
2841
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> <a href="glib-Basic-Types.html#gboolean">gboolean</a> </span>
2842
+ <span class="function">idle_callback</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">gpointer</span><span class="normal"> data</span><span class="symbol">)</span>
2843
+ <span class="cbracket">{</span>
2844
+ <span class="normal"> </span><span class="usertype">SomeWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self </span><span class="symbol">=</span><span class="normal"> data</span><span class="symbol">;</span>
2845
+ <span class="normal"> </span>
2846
+ <span class="normal"> </span><span class="function">GDK_THREADS_ENTER</span><span class="normal"> </span><span class="symbol">();</span>
2847
+ <span class="normal"> </span><span class="comment">/* do stuff with self */</span>
2848
+ <span class="normal"> self</span><span class="symbol">-&gt;</span><span class="normal">idle_id </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span>
2849
+ <span class="normal"> </span><span class="function">GDK_THREADS_LEAVE</span><span class="normal"> </span><span class="symbol">();</span>
2850
+ <span class="normal"> </span>
2851
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> <a href="glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">;</span>
2852
+ <span class="cbracket">}</span>
2853
+ <span class="normal"> </span>
2854
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span>
2855
+ <span class="function">some_widget_do_stuff_later</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">SomeWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self</span><span class="symbol">)</span>
2856
+ <span class="cbracket">{</span>
2857
+ <span class="normal"> self</span><span class="symbol">-&gt;</span><span class="normal">idle_id </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="glib-The-Main-Event-Loop.html#g-idle-add">g_idle_add</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">idle_callback</span><span class="symbol">,</span><span class="normal"> self</span><span class="symbol">);</span>
2858
+ <span class="cbracket">}</span>
2859
+ <span class="normal"> </span>
2860
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span><span class="normal"> </span>
2861
+ <span class="function">some_widget_finalize</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GObject</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">object</span><span class="symbol">)</span>
2862
+ <span class="cbracket">{</span>
2863
+ <span class="normal"> </span><span class="usertype">SomeWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self </span><span class="symbol">=</span><span class="normal"> </span><span class="function">SOME_WIDGET</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object</span><span class="symbol">);</span>
2864
+ <span class="normal"> </span>
2865
+ <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">self</span><span class="symbol">-&gt;</span><span class="normal">idle_id</span><span class="symbol">)</span>
2866
+ <span class="normal"> </span><span class="function"><a href="glib-The-Main-Event-Loop.html#g-source-remove">g_source_remove</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">self</span><span class="symbol">-&gt;</span><span class="normal">idle_id</span><span class="symbol">);</span>
2867
+ <span class="normal"> </span>
2868
+ <span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#G-OBJECT-CLASS:CAPS">G_OBJECT_CLASS</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">parent_class</span><span class="symbol">)-&gt;</span><span class="function">finalize</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object</span><span class="symbol">);</span>
2869
+ <span class="cbracket">}</span></pre></td>
2870
+ </tr>
2871
+ </tbody>
2872
+ </table>
2873
+ </div>
2874
+
2875
+ <p>
2876
+ </p>
2877
+ <p>
2878
+ This will fail in a multi-threaded application if the
2879
+ widget is destroyed before the idle handler fires due
2880
+ to the use after free in the callback. A solution, to
2881
+ this particular problem, is to check to if the source
2882
+ has already been destroy within the callback.
2883
+ </p>
2884
+ <p>
2885
+ </p>
2886
+ <div class="informalexample">
2887
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
2888
+ <tbody>
2889
+ <tr>
2890
+ <td class="listing_lines" align="right"><pre>1
2891
+ 2
2892
+ 3
2893
+ 4
2894
+ 5
2895
+ 6
2896
+ 7
2897
+ 8
2898
+ 9
2899
+ 10
2900
+ 11
2901
+ 12
2902
+ 13
2903
+ 14</pre></td>
2904
+ <td class="listing_code"><pre class="programlisting"><span class="keyword">static</span><span class="normal"> <a href="glib-Basic-Types.html#gboolean">gboolean</a> </span>
2905
+ <span class="function">idle_callback</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">gpointer</span><span class="normal"> data</span><span class="symbol">)</span>
2906
+ <span class="cbracket">{</span>
2907
+ <span class="normal"> </span><span class="usertype">SomeWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">self </span><span class="symbol">=</span><span class="normal"> data</span><span class="symbol">;</span>
2908
+ <span class="normal"> </span>
2909
+ <span class="normal"> </span><span class="function">GDK_THREADS_ENTER</span><span class="normal"> </span><span class="symbol">();</span>
2910
+ <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(!</span><span class="function"><a href="glib-The-Main-Event-Loop.html#g-source-is-destroyed">g_source_is_destroyed</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="glib-The-Main-Event-Loop.html#g-main-current-source">g_main_current_source</a></span><span class="normal"> </span><span class="symbol">()))</span>
2911
+ <span class="normal"> </span><span class="cbracket">{</span>
2912
+ <span class="normal"> </span><span class="comment">/* do stuff with self */</span>
2913
+ <span class="normal"> </span><span class="cbracket">}</span>
2914
+ <span class="normal"> </span><span class="function">GDK_THREADS_LEAVE</span><span class="normal"> </span><span class="symbol">();</span>
2915
+ <span class="normal"> </span>
2916
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> <a href="glib-Standard-Macros.html#FALSE:CAPS">FALSE</a></span><span class="symbol">;</span>
2917
+ <span class="cbracket">}</span></pre></td>
2918
+ </tr>
2919
+ </tbody>
2920
+ </table>
2921
+ </div>
2922
+
2923
+ <p>
2924
+ </p>
2925
+ <div class="variablelist"><table border="0">
2926
+ <col align="left" valign="top">
2927
+ <tbody>
2928
+ <tr>
2929
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
2930
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
2931
+ </td>
2932
+ </tr>
2933
+ <tr>
2934
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2935
+ <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the source has been destroyed
2936
+
2937
+ </td>
2938
+ </tr>
2939
+ </tbody>
2940
+ </table></div>
2941
+ <p class="since">Since 2.12</p>
2942
+ </div>
2943
+ <hr>
2944
+ <div class="refsect2" title="g_source_set_priority ()">
2945
+ <a name="g-source-set-priority"></a><h3>g_source_set_priority ()</h3>
2946
+ <pre class="programlisting"><span class="returnvalue">void</span> g_source_set_priority (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
2947
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="type">gint</span></a> priority</code></em>);</pre>
2948
+ <p>
2949
+ Sets the priority of a source. While the main loop is being
2950
+ run, a source will be dispatched if it is ready to be dispatched and no sources
2951
+ at a higher (numerically smaller) priority are ready to be dispatched.
2952
+ </p>
2953
+ <div class="variablelist"><table border="0">
2954
+ <col align="left" valign="top">
2955
+ <tbody>
2956
+ <tr>
2957
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
2958
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
2959
+ </td>
2960
+ </tr>
2961
+ <tr>
2962
+ <td><p><span class="term"><em class="parameter"><code>priority</code></em> :</span></p></td>
2963
+ <td>the new priority.
2964
+ </td>
2965
+ </tr>
2966
+ </tbody>
2967
+ </table></div>
2968
+ </div>
2969
+ <hr>
2970
+ <div class="refsect2" title="g_source_get_priority ()">
2971
+ <a name="g-source-get-priority"></a><h3>g_source_get_priority ()</h3>
2972
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gint" title="gint"><span class="returnvalue">gint</span></a> g_source_get_priority (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);</pre>
2973
+ <p>
2974
+ Gets the priority of a source.
2975
+ </p>
2976
+ <div class="variablelist"><table border="0">
2977
+ <col align="left" valign="top">
2978
+ <tbody>
2979
+ <tr>
2980
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
2981
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
2982
+ </td>
2983
+ </tr>
2984
+ <tr>
2985
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
2986
+ <td> the priority of the source
2987
+ </td>
2988
+ </tr>
2989
+ </tbody>
2990
+ </table></div>
2991
+ </div>
2992
+ <hr>
2993
+ <div class="refsect2" title="g_source_set_can_recurse ()">
2994
+ <a name="g-source-set-can-recurse"></a><h3>g_source_set_can_recurse ()</h3>
2995
+ <pre class="programlisting"><span class="returnvalue">void</span> g_source_set_can_recurse (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
2996
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="type">gboolean</span></a> can_recurse</code></em>);</pre>
2997
+ <p>
2998
+ Sets whether a source can be called recursively. If <em class="parameter"><code>can_recurse</code></em> is
2999
+ <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a>, then while the source is being dispatched then this source
3000
+ will be processed normally. Otherwise, all processing of this
3001
+ source is blocked until the dispatch function returns.
3002
+ </p>
3003
+ <div class="variablelist"><table border="0">
3004
+ <col align="left" valign="top">
3005
+ <tbody>
3006
+ <tr>
3007
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
3008
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
3009
+ </td>
3010
+ </tr>
3011
+ <tr>
3012
+ <td><p><span class="term"><em class="parameter"><code>can_recurse</code></em> :</span></p></td>
3013
+ <td>whether recursion is allowed for this source
3014
+ </td>
3015
+ </tr>
3016
+ </tbody>
3017
+ </table></div>
3018
+ </div>
3019
+ <hr>
3020
+ <div class="refsect2" title="g_source_get_can_recurse ()">
3021
+ <a name="g-source-get-can-recurse"></a><h3>g_source_get_can_recurse ()</h3>
3022
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_source_get_can_recurse (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);</pre>
3023
+ <p>
3024
+ Checks whether a source is allowed to be called recursively.
3025
+ see <a class="link" href="glib-The-Main-Event-Loop.html#g-source-set-can-recurse" title="g_source_set_can_recurse ()"><code class="function">g_source_set_can_recurse()</code></a>.
3026
+ </p>
3027
+ <div class="variablelist"><table border="0">
3028
+ <col align="left" valign="top">
3029
+ <tbody>
3030
+ <tr>
3031
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
3032
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
3033
+ </td>
3034
+ </tr>
3035
+ <tr>
3036
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3037
+ <td> whether recursion is allowed.
3038
+ </td>
3039
+ </tr>
3040
+ </tbody>
3041
+ </table></div>
3042
+ </div>
3043
+ <hr>
3044
+ <div class="refsect2" title="g_source_get_id ()">
3045
+ <a name="g-source-get-id"></a><h3>g_source_get_id ()</h3>
3046
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="returnvalue">guint</span></a> g_source_get_id (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);</pre>
3047
+ <p>
3048
+ Returns the numeric ID for a particular source. The ID of a source
3049
+ is a positive integer which is unique within a particular main loop
3050
+ context. The reverse
3051
+ mapping from ID to source is done by <a class="link" href="glib-The-Main-Event-Loop.html#g-main-context-find-source-by-id" title="g_main_context_find_source_by_id ()"><code class="function">g_main_context_find_source_by_id()</code></a>.
3052
+ </p>
3053
+ <div class="variablelist"><table border="0">
3054
+ <col align="left" valign="top">
3055
+ <tbody>
3056
+ <tr>
3057
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
3058
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
3059
+ </td>
3060
+ </tr>
3061
+ <tr>
3062
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3063
+ <td> the ID (greater than 0) for the source
3064
+ </td>
3065
+ </tr>
3066
+ </tbody>
3067
+ </table></div>
3068
+ </div>
3069
+ <hr>
3070
+ <div class="refsect2" title="g_source_get_context ()">
3071
+ <a name="g-source-get-context"></a><h3>g_source_get_context ()</h3>
3072
+ <pre class="programlisting"><a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="returnvalue">GMainContext</span></a> * g_source_get_context (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>);</pre>
3073
+ <p>
3074
+ Gets the <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> with which the source is associated.
3075
+ Calling this function on a destroyed source is an error.
3076
+ </p>
3077
+ <div class="variablelist"><table border="0">
3078
+ <col align="left" valign="top">
3079
+ <tbody>
3080
+ <tr>
3081
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
3082
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
3083
+ </td>
3084
+ </tr>
3085
+ <tr>
3086
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3087
+ <td> the <a class="link" href="glib-The-Main-Event-Loop.html#GMainContext" title="GMainContext"><span class="type">GMainContext</span></a> with which the source is associated,
3088
+ or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a> if the context has not yet been added
3089
+ to a source.
3090
+ </td>
3091
+ </tr>
3092
+ </tbody>
3093
+ </table></div>
3094
+ </div>
3095
+ <hr>
3096
+ <div class="refsect2" title="g_source_set_callback ()">
3097
+ <a name="g-source-set-callback"></a><h3>g_source_set_callback ()</h3>
3098
+ <pre class="programlisting"><span class="returnvalue">void</span> g_source_set_callback (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
3099
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFunc" title="GSourceFunc ()"><span class="type">GSourceFunc</span></a> func</code></em>,
3100
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>,
3101
+ <em class="parameter"><code><a class="link" href="glib-Datasets.html#GDestroyNotify" title="GDestroyNotify ()"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
3102
+ <p>
3103
+ Sets the callback function for a source. The callback for a source is
3104
+ called from the source's dispatch function.
3105
+ </p>
3106
+ <p>
3107
+ The exact type of <em class="parameter"><code>func</code></em> depends on the type of source; ie. you
3108
+ should not count on <em class="parameter"><code>func</code></em> being called with <em class="parameter"><code>data</code></em> as its first
3109
+ parameter.
3110
+ </p>
3111
+ <p>
3112
+ Typically, you won't use this function. Instead use functions specific
3113
+ to the type of source you are using.
3114
+ </p>
3115
+ <div class="variablelist"><table border="0">
3116
+ <col align="left" valign="top">
3117
+ <tbody>
3118
+ <tr>
3119
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
3120
+ <td>the source
3121
+ </td>
3122
+ </tr>
3123
+ <tr>
3124
+ <td><p><span class="term"><em class="parameter"><code>func</code></em> :</span></p></td>
3125
+ <td>a callback function
3126
+ </td>
3127
+ </tr>
3128
+ <tr>
3129
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
3130
+ <td>the data to pass to callback function
3131
+ </td>
3132
+ </tr>
3133
+ <tr>
3134
+ <td><p><span class="term"><em class="parameter"><code>notify</code></em> :</span></p></td>
3135
+ <td>a function to call when <em class="parameter"><code>data</code></em> is no longer in use, or <a class="link" href="glib-Standard-Macros.html#NULL:CAPS" title="NULL"><code class="literal">NULL</code></a>.
3136
+ </td>
3137
+ </tr>
3138
+ </tbody>
3139
+ </table></div>
3140
+ </div>
3141
+ <hr>
3142
+ <div class="refsect2" title="GSourceFunc ()">
3143
+ <a name="GSourceFunc"></a><h3>GSourceFunc ()</h3>
3144
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> (*GSourceFunc) (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> data</code></em>);</pre>
3145
+ <p>
3146
+ Specifies the type of function passed to <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add" title="g_timeout_add ()"><code class="function">g_timeout_add()</code></a>, <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add-full" title="g_timeout_add_full ()"><code class="function">g_timeout_add_full()</code></a>,
3147
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-idle-add" title="g_idle_add ()"><code class="function">g_idle_add()</code></a>, and <a class="link" href="glib-The-Main-Event-Loop.html#g-idle-add-full" title="g_idle_add_full ()"><code class="function">g_idle_add_full()</code></a>.
3148
+ </p>
3149
+ <div class="variablelist"><table border="0">
3150
+ <col align="left" valign="top">
3151
+ <tbody>
3152
+ <tr>
3153
+ <td><p><span class="term"><em class="parameter"><code>data</code></em> :</span></p></td>
3154
+ <td>data passed to the function, set when the source was created with one
3155
+ of the above functions.
3156
+ </td>
3157
+ </tr>
3158
+ <tr>
3159
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3160
+ <td>it should return <a class="link" href="glib-Standard-Macros.html#FALSE:CAPS" title="FALSE"><code class="literal">FALSE</code></a> if the source should be removed.
3161
+ </td>
3162
+ </tr>
3163
+ </tbody>
3164
+ </table></div>
3165
+ </div>
3166
+ <hr>
3167
+ <div class="refsect2" title="g_source_set_callback_indirect ()">
3168
+ <a name="g-source-set-callback-indirect"></a><h3>g_source_set_callback_indirect ()</h3>
3169
+ <pre class="programlisting"><span class="returnvalue">void</span> g_source_set_callback_indirect (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
3170
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> callback_data</code></em>,
3171
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceCallbackFuncs" title="GSourceCallbackFuncs"><span class="type">GSourceCallbackFuncs</span></a> *callback_funcs</code></em>);</pre>
3172
+ <p>
3173
+ Sets the callback function storing the data as a refcounted callback
3174
+ "object". This is used internally. Note that calling
3175
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-source-set-callback-indirect" title="g_source_set_callback_indirect ()"><code class="function">g_source_set_callback_indirect()</code></a> assumes
3176
+ an initial reference count on <em class="parameter"><code>callback_data</code></em>, and thus
3177
+ <em class="parameter"><code>callback_funcs-&gt;unref</code></em> will eventually be called once more
3178
+ than <em class="parameter"><code>callback_funcs-&gt;ref</code></em>.
3179
+ </p>
3180
+ <div class="variablelist"><table border="0">
3181
+ <col align="left" valign="top">
3182
+ <tbody>
3183
+ <tr>
3184
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
3185
+ <td>the source
3186
+ </td>
3187
+ </tr>
3188
+ <tr>
3189
+ <td><p><span class="term"><em class="parameter"><code>callback_data</code></em> :</span></p></td>
3190
+ <td>pointer to callback data "object"
3191
+ </td>
3192
+ </tr>
3193
+ <tr>
3194
+ <td><p><span class="term"><em class="parameter"><code>callback_funcs</code></em> :</span></p></td>
3195
+ <td>functions for reference counting <em class="parameter"><code>callback_data</code></em>
3196
+ and getting the callback and data
3197
+ </td>
3198
+ </tr>
3199
+ </tbody>
3200
+ </table></div>
3201
+ </div>
3202
+ <hr>
3203
+ <div class="refsect2" title="g_source_add_poll ()">
3204
+ <a name="g-source-add-poll"></a><h3>g_source_add_poll ()</h3>
3205
+ <pre class="programlisting"><span class="returnvalue">void</span> g_source_add_poll (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
3206
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fd</code></em>);</pre>
3207
+ <p>
3208
+ Adds a file descriptor to the set of file descriptors polled for
3209
+ this source. This is usually combined with <a class="link" href="glib-The-Main-Event-Loop.html#g-source-new" title="g_source_new ()"><code class="function">g_source_new()</code></a> to add an
3210
+ event source. The event source's check function will typically test
3211
+ the <em class="parameter"><code>revents</code></em> field in the <a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> struct and return <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if events need
3212
+ to be processed.
3213
+ </p>
3214
+ <div class="variablelist"><table border="0">
3215
+ <col align="left" valign="top">
3216
+ <tbody>
3217
+ <tr>
3218
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
3219
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
3220
+ </td>
3221
+ </tr>
3222
+ <tr>
3223
+ <td><p><span class="term"><em class="parameter"><code>fd</code></em> :</span></p></td>
3224
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> structure holding information about a file
3225
+ descriptor to watch.
3226
+ </td>
3227
+ </tr>
3228
+ </tbody>
3229
+ </table></div>
3230
+ </div>
3231
+ <hr>
3232
+ <div class="refsect2" title="g_source_remove_poll ()">
3233
+ <a name="g-source-remove-poll"></a><h3>g_source_remove_poll ()</h3>
3234
+ <pre class="programlisting"><span class="returnvalue">void</span> g_source_remove_poll (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
3235
+ <em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> *fd</code></em>);</pre>
3236
+ <p>
3237
+ Removes a file descriptor from the set of file descriptors polled for
3238
+ this source.
3239
+ </p>
3240
+ <div class="variablelist"><table border="0">
3241
+ <col align="left" valign="top">
3242
+ <tbody>
3243
+ <tr>
3244
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
3245
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
3246
+ </td>
3247
+ </tr>
3248
+ <tr>
3249
+ <td><p><span class="term"><em class="parameter"><code>fd</code></em> :</span></p></td>
3250
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GPollFD" title="GPollFD"><span class="type">GPollFD</span></a> structure previously passed to <a class="link" href="glib-The-Main-Event-Loop.html#g-source-add-poll" title="g_source_add_poll ()"><code class="function">g_source_add_poll()</code></a>.
3251
+ </td>
3252
+ </tr>
3253
+ </tbody>
3254
+ </table></div>
3255
+ </div>
3256
+ <hr>
3257
+ <div class="refsect2" title="g_source_get_current_time ()">
3258
+ <a name="g-source-get-current-time"></a><h3>g_source_get_current_time ()</h3>
3259
+ <pre class="programlisting"><span class="returnvalue">void</span> g_source_get_current_time (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> *source</code></em>,
3260
+ <em class="parameter"><code><a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="GTimeVal"><span class="type">GTimeVal</span></a> *timeval</code></em>);</pre>
3261
+ <p>
3262
+ Gets the "current time" to be used when checking
3263
+ this source. The advantage of calling this function over
3264
+ calling <a class="link" href="glib-Date-and-Time-Functions.html#g-get-current-time" title="g_get_current_time ()"><code class="function">g_get_current_time()</code></a> directly is that when
3265
+ checking multiple sources, GLib can cache a single value
3266
+ instead of having to repeatedly get the system time.
3267
+ </p>
3268
+ <div class="variablelist"><table border="0">
3269
+ <col align="left" valign="top">
3270
+ <tbody>
3271
+ <tr>
3272
+ <td><p><span class="term"><em class="parameter"><code>source</code></em> :</span></p></td>
3273
+ <td>a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a>
3274
+ </td>
3275
+ </tr>
3276
+ <tr>
3277
+ <td><p><span class="term"><em class="parameter"><code>timeval</code></em> :</span></p></td>
3278
+ <td>
3279
+ <a class="link" href="glib-Date-and-Time-Functions.html#GTimeVal" title="GTimeVal"><span class="type">GTimeVal</span></a> structure in which to store current time.
3280
+ </td>
3281
+ </tr>
3282
+ </tbody>
3283
+ </table></div>
3284
+ </div>
3285
+ <hr>
3286
+ <div class="refsect2" title="g_source_remove ()">
3287
+ <a name="g-source-remove"></a><h3>g_source_remove ()</h3>
3288
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_source_remove (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#guint" title="guint"><span class="type">guint</span></a> tag</code></em>);</pre>
3289
+ <p>
3290
+ Removes the source with the given id from the default main context.
3291
+ The id of
3292
+ a <a class="link" href="glib-The-Main-Event-Loop.html#GSource" title="GSource"><span class="type">GSource</span></a> is given by <a class="link" href="glib-The-Main-Event-Loop.html#g-source-get-id" title="g_source_get_id ()"><code class="function">g_source_get_id()</code></a>, or will be returned by the
3293
+ functions <a class="link" href="glib-The-Main-Event-Loop.html#g-source-attach" title="g_source_attach ()"><code class="function">g_source_attach()</code></a>, <a class="link" href="glib-The-Main-Event-Loop.html#g-idle-add" title="g_idle_add ()"><code class="function">g_idle_add()</code></a>, <a class="link" href="glib-The-Main-Event-Loop.html#g-idle-add-full" title="g_idle_add_full ()"><code class="function">g_idle_add_full()</code></a>,
3294
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add" title="g_timeout_add ()"><code class="function">g_timeout_add()</code></a>, <a class="link" href="glib-The-Main-Event-Loop.html#g-timeout-add-full" title="g_timeout_add_full ()"><code class="function">g_timeout_add_full()</code></a>, <a class="link" href="glib-The-Main-Event-Loop.html#g-child-watch-add" title="g_child_watch_add ()"><code class="function">g_child_watch_add()</code></a>,
3295
+ <a class="link" href="glib-The-Main-Event-Loop.html#g-child-watch-add-full" title="g_child_watch_add_full ()"><code class="function">g_child_watch_add_full()</code></a>, <a class="link" href="glib-IO-Channels.html#g-io-add-watch" title="g_io_add_watch ()"><code class="function">g_io_add_watch()</code></a>, and <a class="link" href="glib-IO-Channels.html#g-io-add-watch-full" title="g_io_add_watch_full ()"><code class="function">g_io_add_watch_full()</code></a>.
3296
+ </p>
3297
+ <p>
3298
+ See also <a class="link" href="glib-The-Main-Event-Loop.html#g-source-destroy" title="g_source_destroy ()"><code class="function">g_source_destroy()</code></a>. You must use <a class="link" href="glib-The-Main-Event-Loop.html#g-source-destroy" title="g_source_destroy ()"><code class="function">g_source_destroy()</code></a> for sources
3299
+ added to a non-default main context.
3300
+ </p>
3301
+ <div class="variablelist"><table border="0">
3302
+ <col align="left" valign="top">
3303
+ <tbody>
3304
+ <tr>
3305
+ <td><p><span class="term"><em class="parameter"><code>tag</code></em> :</span></p></td>
3306
+ <td>the ID of the source to remove.
3307
+ </td>
3308
+ </tr>
3309
+ <tr>
3310
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3311
+ <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if the source was found and removed.
3312
+ </td>
3313
+ </tr>
3314
+ </tbody>
3315
+ </table></div>
3316
+ </div>
3317
+ <hr>
3318
+ <div class="refsect2" title="g_source_remove_by_funcs_user_data ()">
3319
+ <a name="g-source-remove-by-funcs-user-data"></a><h3>g_source_remove_by_funcs_user_data ()</h3>
3320
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_source_remove_by_funcs_user_data (<em class="parameter"><code><a class="link" href="glib-The-Main-Event-Loop.html#GSourceFuncs" title="GSourceFuncs"><span class="type">GSourceFuncs</span></a> *funcs</code></em>,
3321
+ <em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
3322
+ <p>
3323
+ Removes a source from the default main loop context given the
3324
+ source functions and user data. If multiple sources exist with the
3325
+ same source functions and user data, only one will be destroyed.
3326
+ </p>
3327
+ <div class="variablelist"><table border="0">
3328
+ <col align="left" valign="top">
3329
+ <tbody>
3330
+ <tr>
3331
+ <td><p><span class="term"><em class="parameter"><code>funcs</code></em> :</span></p></td>
3332
+ <td>The <em class="parameter"><code>source_funcs</code></em> passed to <a class="link" href="glib-The-Main-Event-Loop.html#g-source-new" title="g_source_new ()"><code class="function">g_source_new()</code></a>
3333
+ </td>
3334
+ </tr>
3335
+ <tr>
3336
+ <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
3337
+ <td>the user data for the callback
3338
+ </td>
3339
+ </tr>
3340
+ <tr>
3341
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3342
+ <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if a source was found and removed.
3343
+ </td>
3344
+ </tr>
3345
+ </tbody>
3346
+ </table></div>
3347
+ </div>
3348
+ <hr>
3349
+ <div class="refsect2" title="g_source_remove_by_user_data ()">
3350
+ <a name="g-source-remove-by-user-data"></a><h3>g_source_remove_by_user_data ()</h3>
3351
+ <pre class="programlisting"><a class="link" href="glib-Basic-Types.html#gboolean" title="gboolean"><span class="returnvalue">gboolean</span></a> g_source_remove_by_user_data (<em class="parameter"><code><a class="link" href="glib-Basic-Types.html#gpointer" title="gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
3352
+ <p>
3353
+ Removes a source from the default main loop context given the user
3354
+ data for the callback. If multiple sources exist with the same user
3355
+ data, only one will be destroyed.
3356
+ </p>
3357
+ <div class="variablelist"><table border="0">
3358
+ <col align="left" valign="top">
3359
+ <tbody>
3360
+ <tr>
3361
+ <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
3362
+ <td>the user_data for the callback.
3363
+ </td>
3364
+ </tr>
3365
+ <tr>
3366
+ <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
3367
+ <td> <a class="link" href="glib-Standard-Macros.html#TRUE:CAPS" title="TRUE"><code class="literal">TRUE</code></a> if a source was found and removed.
3368
+ </td>
3369
+ </tr>
3370
+ </tbody>
3371
+ </table></div>
3372
+ </div>
3373
+ </div>
3374
+ </div>
3375
+ <div class="footer">
3376
+ <hr>
3377
+ Generated by GTK-Doc V1.14</div>
3378
+ </body>
3379
+ </html>