@img/sharp-libvips-dev 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (656) hide show
  1. package/README.md +47 -0
  2. package/cplusplus/VConnection.cpp +151 -0
  3. package/cplusplus/VError.cpp +49 -0
  4. package/cplusplus/VImage.cpp +1548 -0
  5. package/cplusplus/VInterpolate.cpp +62 -0
  6. package/cplusplus/VRegion.cpp +27 -0
  7. package/cplusplus/index.js +1 -0
  8. package/cplusplus/vips-operators.cpp +3760 -0
  9. package/include/aom/aom.h +127 -0
  10. package/include/aom/aom_codec.h +573 -0
  11. package/include/aom/aom_decoder.h +257 -0
  12. package/include/aom/aom_encoder.h +1137 -0
  13. package/include/aom/aom_external_partition.h +452 -0
  14. package/include/aom/aom_frame_buffer.h +84 -0
  15. package/include/aom/aom_image.h +448 -0
  16. package/include/aom/aom_integer.h +68 -0
  17. package/include/aom/aomcx.h +2112 -0
  18. package/include/aom/aomdx.h +604 -0
  19. package/include/archive.h +1212 -0
  20. package/include/archive_entry.h +723 -0
  21. package/include/cairo/cairo-deprecated.h +123 -0
  22. package/include/cairo/cairo-features.h +29 -0
  23. package/include/cairo/cairo-ft.h +118 -0
  24. package/include/cairo/cairo-gobject.h +192 -0
  25. package/include/cairo/cairo-svg.h +130 -0
  26. package/include/cairo/cairo-version.h +8 -0
  27. package/include/cairo/cairo.h +3281 -0
  28. package/include/cgif.h +80 -0
  29. package/include/expat.h +1064 -0
  30. package/include/expat_config.h +140 -0
  31. package/include/expat_external.h +165 -0
  32. package/include/ffi.h +531 -0
  33. package/include/ffitarget.h +164 -0
  34. package/include/fontconfig/fcfreetype.h +59 -0
  35. package/include/fontconfig/fcprivate.h +134 -0
  36. package/include/fontconfig/fontconfig.h +1158 -0
  37. package/include/freetype2/freetype/config/ftconfig.h +51 -0
  38. package/include/freetype2/freetype/config/ftheader.h +836 -0
  39. package/include/freetype2/freetype/config/ftmodule.h +21 -0
  40. package/include/freetype2/freetype/config/ftoption.h +1014 -0
  41. package/include/freetype2/freetype/config/ftstdlib.h +185 -0
  42. package/include/freetype2/freetype/config/integer-types.h +250 -0
  43. package/include/freetype2/freetype/config/mac-support.h +49 -0
  44. package/include/freetype2/freetype/config/public-macros.h +138 -0
  45. package/include/freetype2/freetype/freetype.h +5337 -0
  46. package/include/freetype2/freetype/ftadvanc.h +188 -0
  47. package/include/freetype2/freetype/ftbbox.h +101 -0
  48. package/include/freetype2/freetype/ftbdf.h +212 -0
  49. package/include/freetype2/freetype/ftbitmap.h +329 -0
  50. package/include/freetype2/freetype/ftbzip2.h +102 -0
  51. package/include/freetype2/freetype/ftcache.h +1087 -0
  52. package/include/freetype2/freetype/ftchapters.h +168 -0
  53. package/include/freetype2/freetype/ftcid.h +167 -0
  54. package/include/freetype2/freetype/ftcolor.h +1667 -0
  55. package/include/freetype2/freetype/ftdriver.h +1246 -0
  56. package/include/freetype2/freetype/fterrdef.h +283 -0
  57. package/include/freetype2/freetype/fterrors.h +296 -0
  58. package/include/freetype2/freetype/ftfntfmt.h +93 -0
  59. package/include/freetype2/freetype/ftgasp.h +143 -0
  60. package/include/freetype2/freetype/ftglyph.h +750 -0
  61. package/include/freetype2/freetype/ftgxval.h +354 -0
  62. package/include/freetype2/freetype/ftgzip.h +151 -0
  63. package/include/freetype2/freetype/ftimage.h +1284 -0
  64. package/include/freetype2/freetype/ftincrem.h +348 -0
  65. package/include/freetype2/freetype/ftlcdfil.h +323 -0
  66. package/include/freetype2/freetype/ftlist.h +296 -0
  67. package/include/freetype2/freetype/ftlzw.h +100 -0
  68. package/include/freetype2/freetype/ftmac.h +289 -0
  69. package/include/freetype2/freetype/ftmm.h +805 -0
  70. package/include/freetype2/freetype/ftmodapi.h +807 -0
  71. package/include/freetype2/freetype/ftmoderr.h +204 -0
  72. package/include/freetype2/freetype/ftotval.h +206 -0
  73. package/include/freetype2/freetype/ftoutln.h +588 -0
  74. package/include/freetype2/freetype/ftparams.h +218 -0
  75. package/include/freetype2/freetype/ftpfr.h +179 -0
  76. package/include/freetype2/freetype/ftrender.h +244 -0
  77. package/include/freetype2/freetype/ftsizes.h +159 -0
  78. package/include/freetype2/freetype/ftsnames.h +272 -0
  79. package/include/freetype2/freetype/ftstroke.h +773 -0
  80. package/include/freetype2/freetype/ftsynth.h +104 -0
  81. package/include/freetype2/freetype/ftsystem.h +350 -0
  82. package/include/freetype2/freetype/fttrigon.h +350 -0
  83. package/include/freetype2/freetype/fttypes.h +617 -0
  84. package/include/freetype2/freetype/ftwinfnt.h +276 -0
  85. package/include/freetype2/freetype/otsvg.h +336 -0
  86. package/include/freetype2/freetype/t1tables.h +793 -0
  87. package/include/freetype2/freetype/ttnameid.h +1235 -0
  88. package/include/freetype2/freetype/tttables.h +855 -0
  89. package/include/freetype2/freetype/tttags.h +124 -0
  90. package/include/freetype2/ft2build.h +42 -0
  91. package/include/fribidi/fribidi-arabic.h +81 -0
  92. package/include/fribidi/fribidi-begindecls.h +3 -0
  93. package/include/fribidi/fribidi-bidi-types-list.h +96 -0
  94. package/include/fribidi/fribidi-bidi-types.h +405 -0
  95. package/include/fribidi/fribidi-bidi.h +142 -0
  96. package/include/fribidi/fribidi-brackets.h +89 -0
  97. package/include/fribidi/fribidi-char-sets-list.h +54 -0
  98. package/include/fribidi/fribidi-char-sets.h +106 -0
  99. package/include/fribidi/fribidi-common.h +152 -0
  100. package/include/fribidi/fribidi-config.h +23 -0
  101. package/include/fribidi/fribidi-deprecated.h +175 -0
  102. package/include/fribidi/fribidi-enddecls.h +3 -0
  103. package/include/fribidi/fribidi-flags.h +72 -0
  104. package/include/fribidi/fribidi-joining-types-list.h +44 -0
  105. package/include/fribidi/fribidi-joining-types.h +249 -0
  106. package/include/fribidi/fribidi-joining.h +74 -0
  107. package/include/fribidi/fribidi-mirroring.h +86 -0
  108. package/include/fribidi/fribidi-shape.h +71 -0
  109. package/include/fribidi/fribidi-types.h +79 -0
  110. package/include/fribidi/fribidi-unicode-version.h +10 -0
  111. package/include/fribidi/fribidi-unicode.h +105 -0
  112. package/include/fribidi/fribidi.h +129 -0
  113. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-animation.h +221 -0
  114. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-autocleanups.h +37 -0
  115. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h +525 -0
  116. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-enum-types.h +40 -0
  117. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-features.h +115 -0
  118. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-io.h +481 -0
  119. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-loader.h +113 -0
  120. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-macros.h +718 -0
  121. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-marshal.h +33 -0
  122. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-simple-anim.h +70 -0
  123. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-transform.h +168 -0
  124. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h +46 -0
  125. package/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixdata.h +165 -0
  126. package/include/gio-unix-2.0/gio/gdesktopappinfo.h +200 -0
  127. package/include/gio-unix-2.0/gio/gfiledescriptorbased.h +67 -0
  128. package/include/gio-unix-2.0/gio/gunixfdmessage.h +86 -0
  129. package/include/gio-unix-2.0/gio/gunixinputstream.h +85 -0
  130. package/include/gio-unix-2.0/gio/gunixmounts.h +172 -0
  131. package/include/gio-unix-2.0/gio/gunixoutputstream.h +84 -0
  132. package/include/glib-2.0/gio/gaction.h +100 -0
  133. package/include/glib-2.0/gio/gactiongroup.h +163 -0
  134. package/include/glib-2.0/gio/gactiongroupexporter.h +47 -0
  135. package/include/glib-2.0/gio/gactionmap.h +101 -0
  136. package/include/glib-2.0/gio/gappinfo.h +369 -0
  137. package/include/glib-2.0/gio/gapplication.h +257 -0
  138. package/include/glib-2.0/gio/gapplicationcommandline.h +124 -0
  139. package/include/glib-2.0/gio/gasyncinitable.h +132 -0
  140. package/include/glib-2.0/gio/gasyncresult.h +87 -0
  141. package/include/glib-2.0/gio/gbufferedinputstream.h +135 -0
  142. package/include/glib-2.0/gio/gbufferedoutputstream.h +88 -0
  143. package/include/glib-2.0/gio/gbytesicon.h +54 -0
  144. package/include/glib-2.0/gio/gcancellable.h +120 -0
  145. package/include/glib-2.0/gio/gcharsetconverter.h +65 -0
  146. package/include/glib-2.0/gio/gcontenttype.h +84 -0
  147. package/include/glib-2.0/gio/gconverter.h +98 -0
  148. package/include/glib-2.0/gio/gconverterinputstream.h +82 -0
  149. package/include/glib-2.0/gio/gconverteroutputstream.h +82 -0
  150. package/include/glib-2.0/gio/gcredentials.h +87 -0
  151. package/include/glib-2.0/gio/gdatagrambased.h +146 -0
  152. package/include/glib-2.0/gio/gdatainputstream.h +182 -0
  153. package/include/glib-2.0/gio/gdataoutputstream.h +127 -0
  154. package/include/glib-2.0/gio/gdbusactiongroup.h +56 -0
  155. package/include/glib-2.0/gio/gdbusaddress.h +67 -0
  156. package/include/glib-2.0/gio/gdbusauthobserver.h +53 -0
  157. package/include/glib-2.0/gio/gdbusconnection.h +691 -0
  158. package/include/glib-2.0/gio/gdbuserror.h +111 -0
  159. package/include/glib-2.0/gio/gdbusinterface.h +83 -0
  160. package/include/glib-2.0/gio/gdbusinterfaceskeleton.h +129 -0
  161. package/include/glib-2.0/gio/gdbusintrospection.h +327 -0
  162. package/include/glib-2.0/gio/gdbusmenumodel.h +47 -0
  163. package/include/glib-2.0/gio/gdbusmessage.h +204 -0
  164. package/include/glib-2.0/gio/gdbusmethodinvocation.h +136 -0
  165. package/include/glib-2.0/gio/gdbusnameowning.h +117 -0
  166. package/include/glib-2.0/gio/gdbusnamewatching.h +104 -0
  167. package/include/glib-2.0/gio/gdbusobject.h +80 -0
  168. package/include/glib-2.0/gio/gdbusobjectmanager.h +96 -0
  169. package/include/glib-2.0/gio/gdbusobjectmanagerclient.h +148 -0
  170. package/include/glib-2.0/gio/gdbusobjectmanagerserver.h +95 -0
  171. package/include/glib-2.0/gio/gdbusobjectproxy.h +81 -0
  172. package/include/glib-2.0/gio/gdbusobjectskeleton.h +98 -0
  173. package/include/glib-2.0/gio/gdbusproxy.h +220 -0
  174. package/include/glib-2.0/gio/gdbusserver.h +62 -0
  175. package/include/glib-2.0/gio/gdbusutils.h +65 -0
  176. package/include/glib-2.0/gio/gdebugcontroller.h +81 -0
  177. package/include/glib-2.0/gio/gdebugcontrollerdbus.h +71 -0
  178. package/include/glib-2.0/gio/gdrive.h +274 -0
  179. package/include/glib-2.0/gio/gdtlsclientconnection.h +77 -0
  180. package/include/glib-2.0/gio/gdtlsconnection.h +230 -0
  181. package/include/glib-2.0/gio/gdtlsserverconnection.h +71 -0
  182. package/include/glib-2.0/gio/gemblem.h +63 -0
  183. package/include/glib-2.0/gio/gemblemedicon.h +83 -0
  184. package/include/glib-2.0/gio/gfile.h +1359 -0
  185. package/include/glib-2.0/gio/gfileattribute.h +86 -0
  186. package/include/glib-2.0/gio/gfileenumerator.h +154 -0
  187. package/include/glib-2.0/gio/gfileicon.h +59 -0
  188. package/include/glib-2.0/gio/gfileinfo.h +1546 -0
  189. package/include/glib-2.0/gio/gfileinputstream.h +116 -0
  190. package/include/glib-2.0/gio/gfileiostream.h +123 -0
  191. package/include/glib-2.0/gio/gfilemonitor.h +100 -0
  192. package/include/glib-2.0/gio/gfilenamecompleter.h +81 -0
  193. package/include/glib-2.0/gio/gfileoutputstream.h +124 -0
  194. package/include/glib-2.0/gio/gfilterinputstream.h +80 -0
  195. package/include/glib-2.0/gio/gfilteroutputstream.h +80 -0
  196. package/include/glib-2.0/gio/gicon.h +133 -0
  197. package/include/glib-2.0/gio/ginetaddress.h +125 -0
  198. package/include/glib-2.0/gio/ginetaddressmask.h +86 -0
  199. package/include/glib-2.0/gio/ginetsocketaddress.h +80 -0
  200. package/include/glib-2.0/gio/ginitable.h +107 -0
  201. package/include/glib-2.0/gio/ginputstream.h +218 -0
  202. package/include/glib-2.0/gio/gio-autocleanups.h +155 -0
  203. package/include/glib-2.0/gio/gio-visibility.h +952 -0
  204. package/include/glib-2.0/gio/gio.h +186 -0
  205. package/include/glib-2.0/gio/gioenums.h +2149 -0
  206. package/include/glib-2.0/gio/gioenumtypes.h +207 -0
  207. package/include/glib-2.0/gio/gioerror.h +58 -0
  208. package/include/glib-2.0/gio/giomodule.h +199 -0
  209. package/include/glib-2.0/gio/gioscheduler.h +56 -0
  210. package/include/glib-2.0/gio/giostream.h +137 -0
  211. package/include/glib-2.0/gio/giotypes.h +660 -0
  212. package/include/glib-2.0/gio/glistmodel.h +74 -0
  213. package/include/glib-2.0/gio/gliststore.h +97 -0
  214. package/include/glib-2.0/gio/gloadableicon.h +101 -0
  215. package/include/glib-2.0/gio/gmemoryinputstream.h +92 -0
  216. package/include/glib-2.0/gio/gmemorymonitor.h +64 -0
  217. package/include/glib-2.0/gio/gmemoryoutputstream.h +109 -0
  218. package/include/glib-2.0/gio/gmenu.h +184 -0
  219. package/include/glib-2.0/gio/gmenuexporter.h +55 -0
  220. package/include/glib-2.0/gio/gmenumodel.h +307 -0
  221. package/include/glib-2.0/gio/gmount.h +278 -0
  222. package/include/glib-2.0/gio/gmountoperation.h +179 -0
  223. package/include/glib-2.0/gio/gnativesocketaddress.h +67 -0
  224. package/include/glib-2.0/gio/gnativevolumemonitor.h +63 -0
  225. package/include/glib-2.0/gio/gnetworkaddress.h +82 -0
  226. package/include/glib-2.0/gio/gnetworking.h +81 -0
  227. package/include/glib-2.0/gio/gnetworkmonitor.h +101 -0
  228. package/include/glib-2.0/gio/gnetworkservice.h +77 -0
  229. package/include/glib-2.0/gio/gnotification.h +103 -0
  230. package/include/glib-2.0/gio/goutputstream.h +334 -0
  231. package/include/glib-2.0/gio/gpermission.h +129 -0
  232. package/include/glib-2.0/gio/gpollableinputstream.h +106 -0
  233. package/include/glib-2.0/gio/gpollableoutputstream.h +127 -0
  234. package/include/glib-2.0/gio/gpollableutils.h +66 -0
  235. package/include/glib-2.0/gio/gpowerprofilemonitor.h +65 -0
  236. package/include/glib-2.0/gio/gpropertyaction.h +49 -0
  237. package/include/glib-2.0/gio/gproxy.h +130 -0
  238. package/include/glib-2.0/gio/gproxyaddress.h +88 -0
  239. package/include/glib-2.0/gio/gproxyaddressenumerator.h +83 -0
  240. package/include/glib-2.0/gio/gproxyresolver.h +97 -0
  241. package/include/glib-2.0/gio/gremoteactiongroup.h +77 -0
  242. package/include/glib-2.0/gio/gresolver.h +299 -0
  243. package/include/glib-2.0/gio/gresource.h +132 -0
  244. package/include/glib-2.0/gio/gseekable.h +105 -0
  245. package/include/glib-2.0/gio/gsettings.h +347 -0
  246. package/include/glib-2.0/gio/gsettingsbackend.h +176 -0
  247. package/include/glib-2.0/gio/gsettingsschema.h +115 -0
  248. package/include/glib-2.0/gio/gsimpleaction.h +65 -0
  249. package/include/glib-2.0/gio/gsimpleactiongroup.h +99 -0
  250. package/include/glib-2.0/gio/gsimpleasyncresult.h +164 -0
  251. package/include/glib-2.0/gio/gsimpleiostream.h +47 -0
  252. package/include/glib-2.0/gio/gsimplepermission.h +47 -0
  253. package/include/glib-2.0/gio/gsimpleproxyresolver.h +91 -0
  254. package/include/glib-2.0/gio/gsocket.h +330 -0
  255. package/include/glib-2.0/gio/gsocketaddress.h +84 -0
  256. package/include/glib-2.0/gio/gsocketaddressenumerator.h +103 -0
  257. package/include/glib-2.0/gio/gsocketclient.h +199 -0
  258. package/include/glib-2.0/gio/gsocketconnectable.h +83 -0
  259. package/include/glib-2.0/gio/gsocketconnection.h +117 -0
  260. package/include/glib-2.0/gio/gsocketcontrolmessage.h +113 -0
  261. package/include/glib-2.0/gio/gsocketlistener.h +157 -0
  262. package/include/glib-2.0/gio/gsocketservice.h +95 -0
  263. package/include/glib-2.0/gio/gsrvtarget.h +60 -0
  264. package/include/glib-2.0/gio/gsubprocess.h +169 -0
  265. package/include/glib-2.0/gio/gsubprocesslauncher.h +121 -0
  266. package/include/glib-2.0/gio/gtask.h +207 -0
  267. package/include/glib-2.0/gio/gtcpconnection.h +71 -0
  268. package/include/glib-2.0/gio/gtcpwrapperconnection.h +71 -0
  269. package/include/glib-2.0/gio/gtestdbus.h +74 -0
  270. package/include/glib-2.0/gio/gthemedicon.h +70 -0
  271. package/include/glib-2.0/gio/gthreadedsocketservice.h +83 -0
  272. package/include/glib-2.0/gio/gtlsbackend.h +115 -0
  273. package/include/glib-2.0/gio/gtlscertificate.h +125 -0
  274. package/include/glib-2.0/gio/gtlsclientconnection.h +88 -0
  275. package/include/glib-2.0/gio/gtlsconnection.h +214 -0
  276. package/include/glib-2.0/gio/gtlsdatabase.h +249 -0
  277. package/include/glib-2.0/gio/gtlsfiledatabase.h +60 -0
  278. package/include/glib-2.0/gio/gtlsinteraction.h +150 -0
  279. package/include/glib-2.0/gio/gtlspassword.h +121 -0
  280. package/include/glib-2.0/gio/gtlsserverconnection.h +71 -0
  281. package/include/glib-2.0/gio/gunixconnection.h +102 -0
  282. package/include/glib-2.0/gio/gunixcredentialsmessage.h +89 -0
  283. package/include/glib-2.0/gio/gunixfdlist.h +97 -0
  284. package/include/glib-2.0/gio/gunixsocketaddress.h +83 -0
  285. package/include/glib-2.0/gio/gvfs.h +170 -0
  286. package/include/glib-2.0/gio/gvolume.h +255 -0
  287. package/include/glib-2.0/gio/gvolumemonitor.h +156 -0
  288. package/include/glib-2.0/gio/gzlibcompressor.h +64 -0
  289. package/include/glib-2.0/gio/gzlibdecompressor.h +60 -0
  290. package/include/glib-2.0/glib/deprecated/gallocator.h +88 -0
  291. package/include/glib-2.0/glib/deprecated/gcache.h +77 -0
  292. package/include/glib-2.0/glib/deprecated/gcompletion.h +85 -0
  293. package/include/glib-2.0/glib/deprecated/gmain.h +137 -0
  294. package/include/glib-2.0/glib/deprecated/grel.h +107 -0
  295. package/include/glib-2.0/glib/deprecated/gthread.h +295 -0
  296. package/include/glib-2.0/glib/galloca.h +147 -0
  297. package/include/glib-2.0/glib/garray.h +323 -0
  298. package/include/glib-2.0/glib/gasyncqueue.h +126 -0
  299. package/include/glib-2.0/glib/gatomic.h +587 -0
  300. package/include/glib-2.0/glib/gbacktrace.h +74 -0
  301. package/include/glib-2.0/glib/gbase64.h +63 -0
  302. package/include/glib-2.0/glib/gbitlock.h +78 -0
  303. package/include/glib-2.0/glib/gbookmarkfile.h +300 -0
  304. package/include/glib-2.0/glib/gbytes.h +99 -0
  305. package/include/glib-2.0/glib/gcharset.h +49 -0
  306. package/include/glib-2.0/glib/gchecksum.h +106 -0
  307. package/include/glib-2.0/glib/gconvert.h +179 -0
  308. package/include/glib-2.0/glib/gdataset.h +156 -0
  309. package/include/glib-2.0/glib/gdate.h +309 -0
  310. package/include/glib-2.0/glib/gdatetime.h +275 -0
  311. package/include/glib-2.0/glib/gdir.h +54 -0
  312. package/include/glib-2.0/glib/genviron.h +65 -0
  313. package/include/glib-2.0/glib/gerror.h +263 -0
  314. package/include/glib-2.0/glib/gfileutils.h +223 -0
  315. package/include/glib-2.0/glib/ggettext.h +65 -0
  316. package/include/glib-2.0/glib/ghash.h +206 -0
  317. package/include/glib-2.0/glib/ghmac.h +85 -0
  318. package/include/glib-2.0/glib/ghook.h +204 -0
  319. package/include/glib-2.0/glib/ghostutils.h +45 -0
  320. package/include/glib-2.0/glib/gi18n-lib.h +38 -0
  321. package/include/glib-2.0/glib/gi18n.h +34 -0
  322. package/include/glib-2.0/glib/giochannel.h +407 -0
  323. package/include/glib-2.0/glib/gkeyfile.h +332 -0
  324. package/include/glib-2.0/glib/glib-autocleanups.h +105 -0
  325. package/include/glib-2.0/glib/glib-typeof.h +47 -0
  326. package/include/glib-2.0/glib/glib-visibility.h +952 -0
  327. package/include/glib-2.0/glib/glist.h +179 -0
  328. package/include/glib-2.0/glib/gmacros.h +1425 -0
  329. package/include/glib-2.0/glib/gmain.h +862 -0
  330. package/include/glib-2.0/glib/gmappedfile.h +60 -0
  331. package/include/glib-2.0/glib/gmarkup.h +265 -0
  332. package/include/glib-2.0/glib/gmem.h +425 -0
  333. package/include/glib-2.0/glib/gmessages.h +690 -0
  334. package/include/glib-2.0/glib/gnode.h +309 -0
  335. package/include/glib-2.0/glib/goption.h +409 -0
  336. package/include/glib-2.0/glib/gpathbuf.h +90 -0
  337. package/include/glib-2.0/glib/gpattern.h +65 -0
  338. package/include/glib-2.0/glib/gpoll.h +122 -0
  339. package/include/glib-2.0/glib/gprimes.h +52 -0
  340. package/include/glib-2.0/glib/gprintf.h +59 -0
  341. package/include/glib-2.0/glib/gqsort.h +47 -0
  342. package/include/glib-2.0/glib/gquark.h +70 -0
  343. package/include/glib-2.0/glib/gqueue.h +205 -0
  344. package/include/glib-2.0/glib/grand.h +101 -0
  345. package/include/glib-2.0/glib/grcbox.h +91 -0
  346. package/include/glib-2.0/glib/grefcount.h +179 -0
  347. package/include/glib-2.0/glib/grefstring.h +59 -0
  348. package/include/glib-2.0/glib/gscanner.h +301 -0
  349. package/include/glib-2.0/glib/gsequence.h +175 -0
  350. package/include/glib-2.0/glib/gshell.h +59 -0
  351. package/include/glib-2.0/glib/gslice.h +117 -0
  352. package/include/glib-2.0/glib/gslist.h +166 -0
  353. package/include/glib-2.0/glib/gspawn.h +323 -0
  354. package/include/glib-2.0/glib/gstdio.h +231 -0
  355. package/include/glib-2.0/glib/gstrfuncs.h +504 -0
  356. package/include/glib-2.0/glib/gstring.h +296 -0
  357. package/include/glib-2.0/glib/gstringchunk.h +59 -0
  358. package/include/glib-2.0/glib/gstrvbuilder.h +69 -0
  359. package/include/glib-2.0/glib/gtestutils.h +763 -0
  360. package/include/glib-2.0/glib/gthread.h +603 -0
  361. package/include/glib-2.0/glib/gthreadpool.h +105 -0
  362. package/include/glib-2.0/glib/gtimer.h +80 -0
  363. package/include/glib-2.0/glib/gtimezone.h +98 -0
  364. package/include/glib-2.0/glib/gtrashstack.h +60 -0
  365. package/include/glib-2.0/glib/gtree.h +181 -0
  366. package/include/glib-2.0/glib/gtypes.h +591 -0
  367. package/include/glib-2.0/glib/gunicode.h +974 -0
  368. package/include/glib-2.0/glib/guri.h +420 -0
  369. package/include/glib-2.0/glib/gutils.h +479 -0
  370. package/include/glib-2.0/glib/guuid.h +42 -0
  371. package/include/glib-2.0/glib/gvariant.h +541 -0
  372. package/include/glib-2.0/glib/gvarianttype.h +384 -0
  373. package/include/glib-2.0/glib/gversion.h +57 -0
  374. package/include/glib-2.0/glib/gversionmacros.h +490 -0
  375. package/include/glib-2.0/glib/gwin32.h +142 -0
  376. package/include/glib-2.0/glib-object.h +46 -0
  377. package/include/glib-2.0/glib-unix.h +125 -0
  378. package/include/glib-2.0/glib.h +121 -0
  379. package/include/glib-2.0/gmodule/gmodule-visibility.h +952 -0
  380. package/include/glib-2.0/gmodule.h +147 -0
  381. package/include/glib-2.0/gobject/gbinding.h +156 -0
  382. package/include/glib-2.0/gobject/gbindinggroup.h +85 -0
  383. package/include/glib-2.0/gobject/gboxed.h +124 -0
  384. package/include/glib-2.0/gobject/gclosure.h +323 -0
  385. package/include/glib-2.0/gobject/genums.h +381 -0
  386. package/include/glib-2.0/gobject/glib-enumtypes.h +25 -0
  387. package/include/glib-2.0/gobject/glib-types.h +400 -0
  388. package/include/glib-2.0/gobject/gmarshal.h +434 -0
  389. package/include/glib-2.0/gobject/gobject-autocleanups.h +33 -0
  390. package/include/glib-2.0/gobject/gobject-visibility.h +952 -0
  391. package/include/glib-2.0/gobject/gobject.h +953 -0
  392. package/include/glib-2.0/gobject/gobjectnotifyqueue.c +199 -0
  393. package/include/glib-2.0/gobject/gparam.h +476 -0
  394. package/include/glib-2.0/gobject/gparamspecs.h +1151 -0
  395. package/include/glib-2.0/gobject/gsignal.h +647 -0
  396. package/include/glib-2.0/gobject/gsignalgroup.h +98 -0
  397. package/include/glib-2.0/gobject/gsourceclosure.h +40 -0
  398. package/include/glib-2.0/gobject/gtype.h +2703 -0
  399. package/include/glib-2.0/gobject/gtypemodule.h +302 -0
  400. package/include/glib-2.0/gobject/gtypeplugin.h +136 -0
  401. package/include/glib-2.0/gobject/gvalue.h +212 -0
  402. package/include/glib-2.0/gobject/gvaluearray.h +106 -0
  403. package/include/glib-2.0/gobject/gvaluecollector.h +290 -0
  404. package/include/glib-2.0/gobject/gvaluetypes.h +318 -0
  405. package/include/harfbuzz/hb-aat-layout.h +795 -0
  406. package/include/harfbuzz/hb-aat.h +38 -0
  407. package/include/harfbuzz/hb-blob.h +160 -0
  408. package/include/harfbuzz/hb-buffer.h +799 -0
  409. package/include/harfbuzz/hb-common.h +938 -0
  410. package/include/harfbuzz/hb-cplusplus.hh +223 -0
  411. package/include/harfbuzz/hb-deprecated.h +309 -0
  412. package/include/harfbuzz/hb-draw.h +340 -0
  413. package/include/harfbuzz/hb-face.h +187 -0
  414. package/include/harfbuzz/hb-features.h +119 -0
  415. package/include/harfbuzz/hb-font.h +1153 -0
  416. package/include/harfbuzz/hb-ft.h +145 -0
  417. package/include/harfbuzz/hb-glib.h +56 -0
  418. package/include/harfbuzz/hb-map.h +143 -0
  419. package/include/harfbuzz/hb-ot-color.h +155 -0
  420. package/include/harfbuzz/hb-ot-deprecated.h +147 -0
  421. package/include/harfbuzz/hb-ot-font.h +45 -0
  422. package/include/harfbuzz/hb-ot-layout.h +549 -0
  423. package/include/harfbuzz/hb-ot-math.h +333 -0
  424. package/include/harfbuzz/hb-ot-meta.h +72 -0
  425. package/include/harfbuzz/hb-ot-metrics.h +129 -0
  426. package/include/harfbuzz/hb-ot-name.h +164 -0
  427. package/include/harfbuzz/hb-ot-shape.h +53 -0
  428. package/include/harfbuzz/hb-ot-var.h +191 -0
  429. package/include/harfbuzz/hb-ot.h +49 -0
  430. package/include/harfbuzz/hb-paint.h +1029 -0
  431. package/include/harfbuzz/hb-set.h +203 -0
  432. package/include/harfbuzz/hb-shape-plan.h +122 -0
  433. package/include/harfbuzz/hb-shape.h +74 -0
  434. package/include/harfbuzz/hb-style.h +81 -0
  435. package/include/harfbuzz/hb-subset-repacker.h +81 -0
  436. package/include/harfbuzz/hb-subset.h +241 -0
  437. package/include/harfbuzz/hb-unicode.h +643 -0
  438. package/include/harfbuzz/hb-version.h +95 -0
  439. package/include/harfbuzz/hb.h +51 -0
  440. package/include/index.js +1 -0
  441. package/include/jconfig.h +37 -0
  442. package/include/jerror.h +335 -0
  443. package/include/jmorecfg.h +382 -0
  444. package/include/jpeglib.h +1210 -0
  445. package/include/lcms2.h +1958 -0
  446. package/include/lcms2_plugin.h +700 -0
  447. package/include/libexif/_stdint.h +2 -0
  448. package/include/libexif/exif-byte-order.h +48 -0
  449. package/include/libexif/exif-content.h +181 -0
  450. package/include/libexif/exif-data-type.h +46 -0
  451. package/include/libexif/exif-data.h +267 -0
  452. package/include/libexif/exif-entry.h +186 -0
  453. package/include/libexif/exif-format.h +65 -0
  454. package/include/libexif/exif-ifd.h +51 -0
  455. package/include/libexif/exif-loader.h +128 -0
  456. package/include/libexif/exif-log.h +116 -0
  457. package/include/libexif/exif-mem.h +91 -0
  458. package/include/libexif/exif-mnote-data.h +122 -0
  459. package/include/libexif/exif-tag.h +307 -0
  460. package/include/libexif/exif-utils.h +194 -0
  461. package/include/libheif/heif.h +2092 -0
  462. package/include/libheif/heif_cxx.h +1359 -0
  463. package/include/libheif/heif_plugin.h +306 -0
  464. package/include/libheif/heif_version.h +38 -0
  465. package/include/libimagequant.h +111 -0
  466. package/include/libpng16/png.h +3247 -0
  467. package/include/libpng16/pngconf.h +623 -0
  468. package/include/libpng16/pnglibconf.h +219 -0
  469. package/include/librsvg-2.0/librsvg/rsvg-cairo.h +395 -0
  470. package/include/librsvg-2.0/librsvg/rsvg-features.h +184 -0
  471. package/include/librsvg-2.0/librsvg/rsvg-version.h +13 -0
  472. package/include/librsvg-2.0/librsvg/rsvg.h +1456 -0
  473. package/include/libxml2/libxml/HTMLparser.h +320 -0
  474. package/include/libxml2/libxml/HTMLtree.h +147 -0
  475. package/include/libxml2/libxml/SAX.h +204 -0
  476. package/include/libxml2/libxml/SAX2.h +173 -0
  477. package/include/libxml2/libxml/c14n.h +128 -0
  478. package/include/libxml2/libxml/catalog.h +182 -0
  479. package/include/libxml2/libxml/chvalid.h +230 -0
  480. package/include/libxml2/libxml/debugXML.h +217 -0
  481. package/include/libxml2/libxml/dict.h +81 -0
  482. package/include/libxml2/libxml/encoding.h +233 -0
  483. package/include/libxml2/libxml/entities.h +151 -0
  484. package/include/libxml2/libxml/globals.h +529 -0
  485. package/include/libxml2/libxml/hash.h +236 -0
  486. package/include/libxml2/libxml/list.h +137 -0
  487. package/include/libxml2/libxml/nanoftp.h +186 -0
  488. package/include/libxml2/libxml/nanohttp.h +81 -0
  489. package/include/libxml2/libxml/parser.h +1265 -0
  490. package/include/libxml2/libxml/parserInternals.h +662 -0
  491. package/include/libxml2/libxml/pattern.h +100 -0
  492. package/include/libxml2/libxml/relaxng.h +218 -0
  493. package/include/libxml2/libxml/schemasInternals.h +958 -0
  494. package/include/libxml2/libxml/schematron.h +142 -0
  495. package/include/libxml2/libxml/threads.h +94 -0
  496. package/include/libxml2/libxml/tree.h +1314 -0
  497. package/include/libxml2/libxml/uri.h +94 -0
  498. package/include/libxml2/libxml/valid.h +448 -0
  499. package/include/libxml2/libxml/xinclude.h +129 -0
  500. package/include/libxml2/libxml/xlink.h +189 -0
  501. package/include/libxml2/libxml/xmlIO.h +369 -0
  502. package/include/libxml2/libxml/xmlautomata.h +146 -0
  503. package/include/libxml2/libxml/xmlerror.h +919 -0
  504. package/include/libxml2/libxml/xmlexports.h +50 -0
  505. package/include/libxml2/libxml/xmlmemory.h +228 -0
  506. package/include/libxml2/libxml/xmlmodule.h +57 -0
  507. package/include/libxml2/libxml/xmlreader.h +428 -0
  508. package/include/libxml2/libxml/xmlregexp.h +222 -0
  509. package/include/libxml2/libxml/xmlsave.h +88 -0
  510. package/include/libxml2/libxml/xmlschemas.h +246 -0
  511. package/include/libxml2/libxml/xmlschemastypes.h +152 -0
  512. package/include/libxml2/libxml/xmlstring.h +140 -0
  513. package/include/libxml2/libxml/xmlunicode.h +202 -0
  514. package/include/libxml2/libxml/xmlversion.h +526 -0
  515. package/include/libxml2/libxml/xmlwriter.h +488 -0
  516. package/include/libxml2/libxml/xpath.h +575 -0
  517. package/include/libxml2/libxml/xpathInternals.h +632 -0
  518. package/include/libxml2/libxml/xpointer.h +137 -0
  519. package/include/orc-0.4/orc/orc-stdint.h +1 -0
  520. package/include/orc-0.4/orc/orc.h +16 -0
  521. package/include/orc-0.4/orc/orcarm.h +879 -0
  522. package/include/orc-0.4/orc/orcbytecode.h +35 -0
  523. package/include/orc-0.4/orc/orcbytecodes.h +255 -0
  524. package/include/orc-0.4/orc/orccode.h +53 -0
  525. package/include/orc-0.4/orc/orccompiler.h +176 -0
  526. package/include/orc-0.4/orc/orcconstant.h +39 -0
  527. package/include/orc-0.4/orc/orccpu.h +21 -0
  528. package/include/orc-0.4/orc/orccpuinsn.h +40 -0
  529. package/include/orc-0.4/orc/orcdebug.h +158 -0
  530. package/include/orc-0.4/orc/orcemulateopcodes.h +203 -0
  531. package/include/orc-0.4/orc/orcexecutor.h +135 -0
  532. package/include/orc-0.4/orc/orcfunctions.h +93 -0
  533. package/include/orc-0.4/orc/orcinstruction.h +39 -0
  534. package/include/orc-0.4/orc/orcinternal.h +46 -0
  535. package/include/orc-0.4/orc/orclimits.h +94 -0
  536. package/include/orc-0.4/orc/orcmips.h +229 -0
  537. package/include/orc-0.4/orc/orcmmx.h +79 -0
  538. package/include/orc-0.4/orc/orcneon.h +43 -0
  539. package/include/orc-0.4/orc/orconce.h +166 -0
  540. package/include/orc-0.4/orc/orcopcode.h +63 -0
  541. package/include/orc-0.4/orc/orcparse.h +27 -0
  542. package/include/orc-0.4/orc/orcpowerpc.h +209 -0
  543. package/include/orc-0.4/orc/orcprogram.h +192 -0
  544. package/include/orc-0.4/orc/orcrule.h +52 -0
  545. package/include/orc-0.4/orc/orcsse.h +55 -0
  546. package/include/orc-0.4/orc/orctarget.h +115 -0
  547. package/include/orc-0.4/orc/orcutils.h +238 -0
  548. package/include/orc-0.4/orc/orcvariable.h +81 -0
  549. package/include/orc-0.4/orc/orcx86.h +199 -0
  550. package/include/orc-0.4/orc/orcx86insn.h +672 -0
  551. package/include/pango-1.0/pango/pango-attributes.h +748 -0
  552. package/include/pango-1.0/pango/pango-bidi-type.h +117 -0
  553. package/include/pango-1.0/pango/pango-break.h +144 -0
  554. package/include/pango-1.0/pango/pango-color.h +75 -0
  555. package/include/pango-1.0/pango/pango-context.h +116 -0
  556. package/include/pango-1.0/pango/pango-coverage.h +108 -0
  557. package/include/pango-1.0/pango/pango-direction.h +72 -0
  558. package/include/pango-1.0/pango/pango-engine.h +457 -0
  559. package/include/pango-1.0/pango/pango-enum-types.h +120 -0
  560. package/include/pango-1.0/pango/pango-features.h +10 -0
  561. package/include/pango-1.0/pango/pango-font.h +699 -0
  562. package/include/pango-1.0/pango/pango-fontmap.h +132 -0
  563. package/include/pango-1.0/pango/pango-fontset-simple.h +64 -0
  564. package/include/pango-1.0/pango/pango-fontset.h +134 -0
  565. package/include/pango-1.0/pango/pango-glyph-item.h +175 -0
  566. package/include/pango-1.0/pango/pango-glyph.h +270 -0
  567. package/include/pango-1.0/pango/pango-gravity.h +137 -0
  568. package/include/pango-1.0/pango/pango-item.h +165 -0
  569. package/include/pango-1.0/pango/pango-language.h +70 -0
  570. package/include/pango-1.0/pango/pango-layout.h +554 -0
  571. package/include/pango-1.0/pango/pango-markup.h +52 -0
  572. package/include/pango-1.0/pango/pango-matrix.h +130 -0
  573. package/include/pango-1.0/pango/pango-modules.h +84 -0
  574. package/include/pango-1.0/pango/pango-ot.h +427 -0
  575. package/include/pango-1.0/pango/pango-renderer.h +290 -0
  576. package/include/pango-1.0/pango/pango-script.h +335 -0
  577. package/include/pango-1.0/pango/pango-tabs.h +117 -0
  578. package/include/pango-1.0/pango/pango-types.h +244 -0
  579. package/include/pango-1.0/pango/pango-utils.h +187 -0
  580. package/include/pango-1.0/pango/pango-version-macros.h +756 -0
  581. package/include/pango-1.0/pango/pango.h +54 -0
  582. package/include/pango-1.0/pango/pangocairo.h +220 -0
  583. package/include/pango-1.0/pango/pangofc-decoder.h +122 -0
  584. package/include/pango-1.0/pango/pangofc-font.h +120 -0
  585. package/include/pango-1.0/pango/pangofc-fontmap.h +244 -0
  586. package/include/pango-1.0/pango/pangoft2.h +158 -0
  587. package/include/pixman-1/pixman-version.h +54 -0
  588. package/include/pixman-1/pixman.h +1419 -0
  589. package/include/png.h +3247 -0
  590. package/include/pngconf.h +623 -0
  591. package/include/pnglibconf.h +219 -0
  592. package/include/spng.h +537 -0
  593. package/include/tiff.h +899 -0
  594. package/include/tiffconf.h +145 -0
  595. package/include/tiffio.h +653 -0
  596. package/include/tiffvers.h +36 -0
  597. package/include/vips/VConnection8.h +150 -0
  598. package/include/vips/VError8.h +76 -0
  599. package/include/vips/VImage8.h +6065 -0
  600. package/include/vips/VInterpolate8.h +77 -0
  601. package/include/vips/VRegion8.h +155 -0
  602. package/include/vips/arithmetic.h +571 -0
  603. package/include/vips/basic.h +113 -0
  604. package/include/vips/buf.h +118 -0
  605. package/include/vips/colour.h +306 -0
  606. package/include/vips/connection.h +570 -0
  607. package/include/vips/conversion.h +357 -0
  608. package/include/vips/convolution.h +95 -0
  609. package/include/vips/create.h +161 -0
  610. package/include/vips/dbuf.h +103 -0
  611. package/include/vips/debug.h +74 -0
  612. package/include/vips/draw.h +113 -0
  613. package/include/vips/enumtypes.h +181 -0
  614. package/include/vips/error.h +142 -0
  615. package/include/vips/foreign.h +993 -0
  616. package/include/vips/format.h +135 -0
  617. package/include/vips/freqfilt.h +64 -0
  618. package/include/vips/gate.h +82 -0
  619. package/include/vips/generate.h +92 -0
  620. package/include/vips/header.h +312 -0
  621. package/include/vips/histogram.h +85 -0
  622. package/include/vips/image.h +605 -0
  623. package/include/vips/interpolate.h +141 -0
  624. package/include/vips/memory.h +96 -0
  625. package/include/vips/morphology.h +73 -0
  626. package/include/vips/mosaicing.h +80 -0
  627. package/include/vips/object.h +706 -0
  628. package/include/vips/operation.h +182 -0
  629. package/include/vips/private.h +227 -0
  630. package/include/vips/rect.h +80 -0
  631. package/include/vips/region.h +238 -0
  632. package/include/vips/resample.h +123 -0
  633. package/include/vips/sbuf.h +144 -0
  634. package/include/vips/semaphore.h +77 -0
  635. package/include/vips/thread.h +72 -0
  636. package/include/vips/threadpool.h +160 -0
  637. package/include/vips/transform.h +89 -0
  638. package/include/vips/type.h +305 -0
  639. package/include/vips/util.h +406 -0
  640. package/include/vips/vector.h +183 -0
  641. package/include/vips/version.h +26 -0
  642. package/include/vips/vips.h +194 -0
  643. package/include/vips/vips8 +60 -0
  644. package/include/webp/decode.h +504 -0
  645. package/include/webp/demux.h +363 -0
  646. package/include/webp/encode.h +552 -0
  647. package/include/webp/mux.h +530 -0
  648. package/include/webp/mux_types.h +98 -0
  649. package/include/webp/sharpyuv/sharpyuv.h +103 -0
  650. package/include/webp/sharpyuv/sharpyuv_csp.h +60 -0
  651. package/include/webp/types.h +72 -0
  652. package/include/zconf.h +203 -0
  653. package/include/zlib.h +1855 -0
  654. package/include/zlib_name_mangling.h +8 -0
  655. package/package.json +30 -0
  656. package/versions.json +31 -0
@@ -0,0 +1,323 @@
1
+ /* GObject - GLib Type, Object, Parameter and Signal Library
2
+ * Copyright (C) 2000-2001 Red Hat, Inc.
3
+ * Copyright (C) 2005 Imendio AB
4
+ *
5
+ * SPDX-License-Identifier: LGPL-2.1-or-later
6
+ *
7
+ * This library is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * This library is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General
18
+ * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
19
+ */
20
+ #ifndef __G_CLOSURE_H__
21
+ #define __G_CLOSURE_H__
22
+
23
+ #if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
24
+ #error "Only <glib-object.h> can be included directly."
25
+ #endif
26
+
27
+ #include <gobject/gtype.h>
28
+
29
+ G_BEGIN_DECLS
30
+
31
+ /* --- defines --- */
32
+ /**
33
+ * G_CLOSURE_NEEDS_MARSHAL:
34
+ * @closure: a #GClosure
35
+ *
36
+ * Check if the closure still needs a marshaller. See g_closure_set_marshal().
37
+ *
38
+ * Returns: %TRUE if a #GClosureMarshal marshaller has not yet been set on
39
+ * @closure.
40
+ */
41
+ #define G_CLOSURE_NEEDS_MARSHAL(closure) (((GClosure*) (closure))->marshal == NULL)
42
+ /**
43
+ * G_CLOSURE_N_NOTIFIERS:
44
+ * @cl: a #GClosure
45
+ *
46
+ * Get the total number of notifiers connected with the closure @cl.
47
+ *
48
+ * The count includes the meta marshaller, the finalize and invalidate notifiers
49
+ * and the marshal guards. Note that each guard counts as two notifiers.
50
+ * See g_closure_set_meta_marshal(), g_closure_add_finalize_notifier(),
51
+ * g_closure_add_invalidate_notifier() and g_closure_add_marshal_guards().
52
+ *
53
+ * Returns: number of notifiers
54
+ */
55
+ #define G_CLOSURE_N_NOTIFIERS(cl) (((cl)->n_guards << 1L) + \
56
+ (cl)->n_fnotifiers + (cl)->n_inotifiers)
57
+ /**
58
+ * G_CCLOSURE_SWAP_DATA:
59
+ * @cclosure: a #GCClosure
60
+ *
61
+ * Checks whether the user data of the #GCClosure should be passed as the
62
+ * first parameter to the callback. See g_cclosure_new_swap().
63
+ *
64
+ * Returns: %TRUE if data has to be swapped.
65
+ */
66
+ #define G_CCLOSURE_SWAP_DATA(cclosure) (((GClosure*) (cclosure))->derivative_flag)
67
+ /**
68
+ * G_CALLBACK:
69
+ * @f: a function pointer.
70
+ *
71
+ * Cast a function pointer to a #GCallback.
72
+ */
73
+ #define G_CALLBACK(f) ((GCallback) (f))
74
+
75
+
76
+ /* -- typedefs --- */
77
+ typedef struct _GClosure GClosure;
78
+ typedef struct _GClosureNotifyData GClosureNotifyData;
79
+
80
+ /**
81
+ * GCallback:
82
+ *
83
+ * The type used for callback functions in structure definitions and function
84
+ * signatures.
85
+ *
86
+ * This doesn't mean that all callback functions must take no parameters and
87
+ * return void. The required signature of a callback function is determined by
88
+ * the context in which is used (e.g. the signal to which it is connected).
89
+ *
90
+ * Use G_CALLBACK() to cast the callback function to a #GCallback.
91
+ */
92
+ typedef void (*GCallback) (void);
93
+ /**
94
+ * GClosureNotify:
95
+ * @data: data specified when registering the notification callback
96
+ * @closure: the #GClosure on which the notification is emitted
97
+ *
98
+ * The type used for the various notification callbacks which can be registered
99
+ * on closures.
100
+ */
101
+ typedef void (*GClosureNotify) (gpointer data,
102
+ GClosure *closure);
103
+ /**
104
+ * GClosureMarshal:
105
+ * @closure: the #GClosure to which the marshaller belongs
106
+ * @return_value: (nullable): a #GValue to store the return
107
+ * value. May be %NULL if the callback of @closure doesn't return a
108
+ * value.
109
+ * @n_param_values: the length of the @param_values array
110
+ * @param_values: (array length=n_param_values): an array of
111
+ * #GValues holding the arguments on which to invoke the
112
+ * callback of @closure
113
+ * @invocation_hint: (nullable): the invocation hint given as the
114
+ * last argument to g_closure_invoke()
115
+ * @marshal_data: (nullable): additional data specified when
116
+ * registering the marshaller, see g_closure_set_marshal() and
117
+ * g_closure_set_meta_marshal()
118
+ *
119
+ * The type used for marshaller functions.
120
+ */
121
+ typedef void (*GClosureMarshal) (GClosure *closure,
122
+ GValue *return_value,
123
+ guint n_param_values,
124
+ const GValue *param_values,
125
+ gpointer invocation_hint,
126
+ gpointer marshal_data);
127
+
128
+ /**
129
+ * GVaClosureMarshal:
130
+ * @closure: the #GClosure to which the marshaller belongs
131
+ * @return_value: (nullable): a #GValue to store the return
132
+ * value. May be %NULL if the callback of @closure doesn't return a
133
+ * value.
134
+ * @instance: (type GObject.TypeInstance): the instance on which the closure is
135
+ * invoked.
136
+ * @args: va_list of arguments to be passed to the closure.
137
+ * @marshal_data: (nullable): additional data specified when
138
+ * registering the marshaller, see g_closure_set_marshal() and
139
+ * g_closure_set_meta_marshal()
140
+ * @n_params: the length of the @param_types array
141
+ * @param_types: (array length=n_params): the #GType of each argument from
142
+ * @args.
143
+ *
144
+ * This is the signature of va_list marshaller functions, an optional
145
+ * marshaller that can be used in some situations to avoid
146
+ * marshalling the signal argument into GValues.
147
+ */
148
+ typedef void (* GVaClosureMarshal) (GClosure *closure,
149
+ GValue *return_value,
150
+ gpointer instance,
151
+ va_list args,
152
+ gpointer marshal_data,
153
+ int n_params,
154
+ GType *param_types);
155
+
156
+ /**
157
+ * GCClosure:
158
+ * @closure: the #GClosure
159
+ * @callback: the callback function
160
+ *
161
+ * A #GCClosure is a specialization of #GClosure for C function callbacks.
162
+ */
163
+ typedef struct _GCClosure GCClosure;
164
+
165
+
166
+ /* --- structures --- */
167
+ struct _GClosureNotifyData
168
+ {
169
+ gpointer data;
170
+ GClosureNotify notify;
171
+ };
172
+ /**
173
+ * GClosure:
174
+ * @in_marshal: Indicates whether the closure is currently being invoked with
175
+ * g_closure_invoke()
176
+ * @is_invalid: Indicates whether the closure has been invalidated by
177
+ * g_closure_invalidate()
178
+ *
179
+ * A #GClosure represents a callback supplied by the programmer.
180
+ */
181
+ struct _GClosure
182
+ {
183
+ /*< private >*/
184
+ guint ref_count : 15; /* (atomic) */
185
+ /* meta_marshal is not used anymore but must be zero for historical reasons
186
+ as it was exposed in the G_CLOSURE_N_NOTIFIERS macro */
187
+ guint meta_marshal_nouse : 1; /* (atomic) */
188
+ guint n_guards : 1; /* (atomic) */
189
+ guint n_fnotifiers : 2; /* finalization notifiers (atomic) */
190
+ guint n_inotifiers : 8; /* invalidation notifiers (atomic) */
191
+ guint in_inotify : 1; /* (atomic) */
192
+ guint floating : 1; /* (atomic) */
193
+ /*< protected >*/
194
+ guint derivative_flag : 1; /* (atomic) */
195
+ /*< public >*/
196
+ guint in_marshal : 1; /* (atomic) */
197
+ guint is_invalid : 1; /* (atomic) */
198
+
199
+ /*< private >*/ void (*marshal) (GClosure *closure,
200
+ GValue /*out*/ *return_value,
201
+ guint n_param_values,
202
+ const GValue *param_values,
203
+ gpointer invocation_hint,
204
+ gpointer marshal_data);
205
+ /*< protected >*/ gpointer data;
206
+
207
+ /*< private >*/ GClosureNotifyData *notifiers;
208
+
209
+ /* invariants/constraints:
210
+ * - ->marshal and ->data are _invalid_ as soon as ->is_invalid==TRUE
211
+ * - invocation of all inotifiers occurs prior to fnotifiers
212
+ * - order of inotifiers is random
213
+ * inotifiers may _not_ free/invalidate parameter values (e.g. ->data)
214
+ * - order of fnotifiers is random
215
+ * - each notifier may only be removed before or during its invocation
216
+ * - reference counting may only happen prior to fnotify invocation
217
+ * (in that sense, fnotifiers are really finalization handlers)
218
+ */
219
+ };
220
+ /* closure for C function calls, callback() is the user function
221
+ */
222
+ struct _GCClosure
223
+ {
224
+ GClosure closure;
225
+ gpointer callback;
226
+ };
227
+
228
+
229
+ /* --- prototypes --- */
230
+ GOBJECT_AVAILABLE_IN_ALL
231
+ GClosure* g_cclosure_new (GCallback callback_func,
232
+ gpointer user_data,
233
+ GClosureNotify destroy_data);
234
+ GOBJECT_AVAILABLE_IN_ALL
235
+ GClosure* g_cclosure_new_swap (GCallback callback_func,
236
+ gpointer user_data,
237
+ GClosureNotify destroy_data);
238
+ GOBJECT_AVAILABLE_IN_ALL
239
+ GClosure* g_signal_type_cclosure_new (GType itype,
240
+ guint struct_offset);
241
+
242
+
243
+ /* --- prototypes --- */
244
+ GOBJECT_AVAILABLE_IN_ALL
245
+ GClosure* g_closure_ref (GClosure *closure);
246
+ GOBJECT_AVAILABLE_IN_ALL
247
+ void g_closure_sink (GClosure *closure);
248
+ GOBJECT_AVAILABLE_IN_ALL
249
+ void g_closure_unref (GClosure *closure);
250
+ /* intimidating */
251
+ GOBJECT_AVAILABLE_IN_ALL
252
+ GClosure* g_closure_new_simple (guint sizeof_closure,
253
+ gpointer data);
254
+ GOBJECT_AVAILABLE_IN_ALL
255
+ void g_closure_add_finalize_notifier (GClosure *closure,
256
+ gpointer notify_data,
257
+ GClosureNotify notify_func);
258
+ GOBJECT_AVAILABLE_IN_ALL
259
+ void g_closure_remove_finalize_notifier (GClosure *closure,
260
+ gpointer notify_data,
261
+ GClosureNotify notify_func);
262
+ GOBJECT_AVAILABLE_IN_ALL
263
+ void g_closure_add_invalidate_notifier (GClosure *closure,
264
+ gpointer notify_data,
265
+ GClosureNotify notify_func);
266
+ GOBJECT_AVAILABLE_IN_ALL
267
+ void g_closure_remove_invalidate_notifier (GClosure *closure,
268
+ gpointer notify_data,
269
+ GClosureNotify notify_func);
270
+ GOBJECT_AVAILABLE_IN_ALL
271
+ void g_closure_add_marshal_guards (GClosure *closure,
272
+ gpointer pre_marshal_data,
273
+ GClosureNotify pre_marshal_notify,
274
+ gpointer post_marshal_data,
275
+ GClosureNotify post_marshal_notify);
276
+ GOBJECT_AVAILABLE_IN_ALL
277
+ void g_closure_set_marshal (GClosure *closure,
278
+ GClosureMarshal marshal);
279
+ GOBJECT_AVAILABLE_IN_ALL
280
+ void g_closure_set_meta_marshal (GClosure *closure,
281
+ gpointer marshal_data,
282
+ GClosureMarshal meta_marshal);
283
+ GOBJECT_AVAILABLE_IN_ALL
284
+ void g_closure_invalidate (GClosure *closure);
285
+ GOBJECT_AVAILABLE_IN_ALL
286
+ void g_closure_invoke (GClosure *closure,
287
+ GValue /*out*/ *return_value,
288
+ guint n_param_values,
289
+ const GValue *param_values,
290
+ gpointer invocation_hint);
291
+
292
+ /* FIXME:
293
+ OK: data_object::destroy -> closure_invalidate();
294
+ MIS: closure_invalidate() -> disconnect(closure);
295
+ MIS: disconnect(closure) -> (unlink) closure_unref();
296
+ OK: closure_finalize() -> g_free (data_string);
297
+
298
+ random remarks:
299
+ - need marshaller repo with decent aliasing to base types
300
+ - provide marshaller collection, virtually covering anything out there
301
+ */
302
+
303
+ GOBJECT_AVAILABLE_IN_ALL
304
+ void g_cclosure_marshal_generic (GClosure *closure,
305
+ GValue *return_gvalue,
306
+ guint n_param_values,
307
+ const GValue *param_values,
308
+ gpointer invocation_hint,
309
+ gpointer marshal_data);
310
+
311
+ GOBJECT_AVAILABLE_IN_ALL
312
+ void g_cclosure_marshal_generic_va (GClosure *closure,
313
+ GValue *return_value,
314
+ gpointer instance,
315
+ va_list args_list,
316
+ gpointer marshal_data,
317
+ int n_params,
318
+ GType *param_types);
319
+
320
+
321
+ G_END_DECLS
322
+
323
+ #endif /* __G_CLOSURE_H__ */
@@ -0,0 +1,381 @@
1
+ /* GObject - GLib Type, Object, Parameter and Signal Library
2
+ * Copyright (C) 1998-1999, 2000-2001 Tim Janik and Red Hat, Inc.
3
+ *
4
+ * SPDX-License-Identifier: LGPL-2.1-or-later
5
+ *
6
+ * This library is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * This library is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General
17
+ * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
18
+ */
19
+ #ifndef __G_ENUMS_H__
20
+ #define __G_ENUMS_H__
21
+
22
+ #if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
23
+ #error "Only <glib-object.h> can be included directly."
24
+ #endif
25
+
26
+ #include <gobject/gtype.h>
27
+
28
+ G_BEGIN_DECLS
29
+
30
+ /* --- type macros --- */
31
+ /**
32
+ * G_TYPE_IS_ENUM:
33
+ * @type: a #GType ID.
34
+ *
35
+ * Checks whether @type "is a" %G_TYPE_ENUM.
36
+ *
37
+ * Returns: %TRUE if @type "is a" %G_TYPE_ENUM.
38
+ */
39
+ #define G_TYPE_IS_ENUM(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_ENUM)
40
+ /**
41
+ * G_ENUM_CLASS:
42
+ * @class: a valid #GEnumClass
43
+ *
44
+ * Casts a derived #GEnumClass structure into a #GEnumClass structure.
45
+ */
46
+ #define G_ENUM_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_ENUM, GEnumClass))
47
+ /**
48
+ * G_IS_ENUM_CLASS:
49
+ * @class: a #GEnumClass
50
+ *
51
+ * Checks whether @class "is a" valid #GEnumClass structure of type %G_TYPE_ENUM
52
+ * or derived.
53
+ */
54
+ #define G_IS_ENUM_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_ENUM))
55
+ /**
56
+ * G_ENUM_CLASS_TYPE:
57
+ * @class: a #GEnumClass
58
+ *
59
+ * Get the type identifier from a given #GEnumClass structure.
60
+ *
61
+ * Returns: the #GType
62
+ */
63
+ #define G_ENUM_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
64
+ /**
65
+ * G_ENUM_CLASS_TYPE_NAME:
66
+ * @class: a #GEnumClass
67
+ *
68
+ * Get the static type name from a given #GEnumClass structure.
69
+ *
70
+ * Returns: the type name.
71
+ */
72
+ #define G_ENUM_CLASS_TYPE_NAME(class) (g_type_name (G_ENUM_CLASS_TYPE (class)))
73
+
74
+
75
+ /**
76
+ * G_TYPE_IS_FLAGS:
77
+ * @type: a #GType ID.
78
+ *
79
+ * Checks whether @type "is a" %G_TYPE_FLAGS.
80
+ *
81
+ * Returns: %TRUE if @type "is a" %G_TYPE_FLAGS.
82
+ */
83
+ #define G_TYPE_IS_FLAGS(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_FLAGS)
84
+ /**
85
+ * G_FLAGS_CLASS:
86
+ * @class: a valid #GFlagsClass
87
+ *
88
+ * Casts a derived #GFlagsClass structure into a #GFlagsClass structure.
89
+ */
90
+ #define G_FLAGS_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_FLAGS, GFlagsClass))
91
+ /**
92
+ * G_IS_FLAGS_CLASS:
93
+ * @class: a #GFlagsClass
94
+ *
95
+ * Checks whether @class "is a" valid #GFlagsClass structure of type %G_TYPE_FLAGS
96
+ * or derived.
97
+ */
98
+ #define G_IS_FLAGS_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_FLAGS))
99
+ /**
100
+ * G_FLAGS_CLASS_TYPE:
101
+ * @class: a #GFlagsClass
102
+ *
103
+ * Get the type identifier from a given #GFlagsClass structure.
104
+ *
105
+ * Returns: the #GType
106
+ */
107
+ #define G_FLAGS_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class))
108
+ /**
109
+ * G_FLAGS_CLASS_TYPE_NAME:
110
+ * @class: a #GFlagsClass
111
+ *
112
+ * Get the static type name from a given #GFlagsClass structure.
113
+ *
114
+ * Returns: the type name.
115
+ */
116
+ #define G_FLAGS_CLASS_TYPE_NAME(class) (g_type_name (G_FLAGS_CLASS_TYPE (class)))
117
+
118
+
119
+ /**
120
+ * G_VALUE_HOLDS_ENUM:
121
+ * @value: a valid #GValue structure
122
+ *
123
+ * Checks whether the given #GValue can hold values derived from type %G_TYPE_ENUM.
124
+ *
125
+ * Returns: %TRUE on success.
126
+ */
127
+ #define G_VALUE_HOLDS_ENUM(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_ENUM))
128
+ /**
129
+ * G_VALUE_HOLDS_FLAGS:
130
+ * @value: a valid #GValue structure
131
+ *
132
+ * Checks whether the given #GValue can hold values derived from type %G_TYPE_FLAGS.
133
+ *
134
+ * Returns: %TRUE on success.
135
+ */
136
+ #define G_VALUE_HOLDS_FLAGS(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_FLAGS))
137
+
138
+
139
+ /* --- enum/flag values & classes --- */
140
+ typedef struct _GEnumClass GEnumClass;
141
+ typedef struct _GFlagsClass GFlagsClass;
142
+ typedef struct _GEnumValue GEnumValue;
143
+ typedef struct _GFlagsValue GFlagsValue;
144
+
145
+ /**
146
+ * GEnumClass:
147
+ * @g_type_class: the parent class
148
+ * @minimum: the smallest possible value.
149
+ * @maximum: the largest possible value.
150
+ * @n_values: the number of possible values.
151
+ * @values: an array of #GEnumValue structs describing the
152
+ * individual values.
153
+ *
154
+ * The class of an enumeration type holds information about its
155
+ * possible values.
156
+ */
157
+ struct _GEnumClass
158
+ {
159
+ GTypeClass g_type_class;
160
+
161
+ /*< public >*/
162
+ gint minimum;
163
+ gint maximum;
164
+ guint n_values;
165
+ GEnumValue *values;
166
+ };
167
+ /**
168
+ * GFlagsClass:
169
+ * @g_type_class: the parent class
170
+ * @mask: a mask covering all possible values.
171
+ * @n_values: the number of possible values.
172
+ * @values: an array of #GFlagsValue structs describing the
173
+ * individual values.
174
+ *
175
+ * The class of a flags type holds information about its
176
+ * possible values.
177
+ */
178
+ struct _GFlagsClass
179
+ {
180
+ GTypeClass g_type_class;
181
+
182
+ /*< public >*/
183
+ guint mask;
184
+ guint n_values;
185
+ GFlagsValue *values;
186
+ };
187
+ /**
188
+ * GEnumValue:
189
+ * @value: the enum value
190
+ * @value_name: the name of the value
191
+ * @value_nick: the nickname of the value
192
+ *
193
+ * A structure which contains a single enum value, its name, and its
194
+ * nickname.
195
+ */
196
+ struct _GEnumValue
197
+ {
198
+ gint value;
199
+ const gchar *value_name;
200
+ const gchar *value_nick;
201
+ };
202
+ /**
203
+ * GFlagsValue:
204
+ * @value: the flags value
205
+ * @value_name: the name of the value
206
+ * @value_nick: the nickname of the value
207
+ *
208
+ * A structure which contains a single flags value, its name, and its
209
+ * nickname.
210
+ */
211
+ struct _GFlagsValue
212
+ {
213
+ guint value;
214
+ const gchar *value_name;
215
+ const gchar *value_nick;
216
+ };
217
+
218
+
219
+ /* --- prototypes --- */
220
+ GOBJECT_AVAILABLE_IN_ALL
221
+ GEnumValue* g_enum_get_value (GEnumClass *enum_class,
222
+ gint value);
223
+ GOBJECT_AVAILABLE_IN_ALL
224
+ GEnumValue* g_enum_get_value_by_name (GEnumClass *enum_class,
225
+ const gchar *name);
226
+ GOBJECT_AVAILABLE_IN_ALL
227
+ GEnumValue* g_enum_get_value_by_nick (GEnumClass *enum_class,
228
+ const gchar *nick);
229
+ GOBJECT_AVAILABLE_IN_ALL
230
+ GFlagsValue* g_flags_get_first_value (GFlagsClass *flags_class,
231
+ guint value);
232
+ GOBJECT_AVAILABLE_IN_ALL
233
+ GFlagsValue* g_flags_get_value_by_name (GFlagsClass *flags_class,
234
+ const gchar *name);
235
+ GOBJECT_AVAILABLE_IN_ALL
236
+ GFlagsValue* g_flags_get_value_by_nick (GFlagsClass *flags_class,
237
+ const gchar *nick);
238
+ GOBJECT_AVAILABLE_IN_2_54
239
+ gchar *g_enum_to_string (GType g_enum_type,
240
+ gint value);
241
+ GOBJECT_AVAILABLE_IN_2_54
242
+ gchar *g_flags_to_string (GType flags_type,
243
+ guint value);
244
+ GOBJECT_AVAILABLE_IN_ALL
245
+ void g_value_set_enum (GValue *value,
246
+ gint v_enum);
247
+ GOBJECT_AVAILABLE_IN_ALL
248
+ gint g_value_get_enum (const GValue *value);
249
+ GOBJECT_AVAILABLE_IN_ALL
250
+ void g_value_set_flags (GValue *value,
251
+ guint v_flags);
252
+ GOBJECT_AVAILABLE_IN_ALL
253
+ guint g_value_get_flags (const GValue *value);
254
+
255
+
256
+
257
+ /* --- registration functions --- */
258
+ /* const_static_values is a NULL terminated array of enum/flags
259
+ * values that is taken over!
260
+ */
261
+ GOBJECT_AVAILABLE_IN_ALL
262
+ GType g_enum_register_static (const gchar *name,
263
+ const GEnumValue *const_static_values);
264
+ GOBJECT_AVAILABLE_IN_ALL
265
+ GType g_flags_register_static (const gchar *name,
266
+ const GFlagsValue *const_static_values);
267
+ /* functions to complete the type information
268
+ * for enums/flags implemented by plugins
269
+ */
270
+ GOBJECT_AVAILABLE_IN_ALL
271
+ void g_enum_complete_type_info (GType g_enum_type,
272
+ GTypeInfo *info,
273
+ const GEnumValue *const_values);
274
+ GOBJECT_AVAILABLE_IN_ALL
275
+ void g_flags_complete_type_info (GType g_flags_type,
276
+ GTypeInfo *info,
277
+ const GFlagsValue *const_values);
278
+
279
+ /* {{{ Macros */
280
+
281
+ /**
282
+ * G_DEFINE_ENUM_VALUE:
283
+ * @EnumValue: an enumeration value
284
+ * @EnumNick: a short string representing the enumeration value
285
+ *
286
+ * Defines an enumeration value, and maps it to a "nickname".
287
+ *
288
+ * This macro can only be used with G_DEFINE_ENUM_TYPE() and
289
+ * G_DEFINE_FLAGS_TYPE().
290
+ *
291
+ * Since: 2.74
292
+ */
293
+ #define G_DEFINE_ENUM_VALUE(EnumValue, EnumNick) \
294
+ { EnumValue, #EnumValue, EnumNick } \
295
+ GOBJECT_AVAILABLE_MACRO_IN_2_74
296
+
297
+ /**
298
+ * G_DEFINE_ENUM_TYPE:
299
+ * @TypeName: the enumeration type, in `CamelCase`
300
+ * @type_name: the enumeration type prefixed, in `snake_case`
301
+ * @...: a list of enumeration values, defined using G_DEFINE_ENUM_VALUE()
302
+ *
303
+ * A convenience macro for defining enumeration types.
304
+ *
305
+ * This macro will generate a `*_get_type()` function for the
306
+ * given @TypeName, using @type_name as the function prefix.
307
+ *
308
+ * |[<!-- language="C" -->
309
+ * G_DEFINE_ENUM_TYPE (GtkOrientation, gtk_orientation,
310
+ * G_DEFINE_ENUM_VALUE (GTK_ORIENTATION_HORIZONTAL, "horizontal"),
311
+ * G_DEFINE_ENUM_VALUE (GTK_ORIENTATION_VERTICAL, "vertical"))
312
+ * ]|
313
+ *
314
+ * For projects that have multiple enumeration types, or enumeration
315
+ * types with many values, you should consider using glib-mkenums to
316
+ * generate the type function.
317
+ *
318
+ * Since: 2.74
319
+ */
320
+ #define G_DEFINE_ENUM_TYPE(TypeName, type_name, ...) \
321
+ GType \
322
+ type_name ## _get_type (void) { \
323
+ static gsize g_define_type__static = 0; \
324
+ if (g_once_init_enter (&g_define_type__static)) { \
325
+ static const GEnumValue enum_values[] = { \
326
+ __VA_ARGS__ , \
327
+ { 0, NULL, NULL }, \
328
+ }; \
329
+ GType g_define_type = g_enum_register_static (g_intern_static_string (#TypeName), enum_values); \
330
+ g_once_init_leave (&g_define_type__static, g_define_type); \
331
+ } \
332
+ return g_define_type__static; \
333
+ } \
334
+ GOBJECT_AVAILABLE_MACRO_IN_2_74
335
+
336
+ /**
337
+ * G_DEFINE_FLAGS_TYPE:
338
+ * @TypeName: the enumeration type, in `CamelCase`
339
+ * @type_name: the enumeration type prefixed, in `snake_case`
340
+ * @...: a list of enumeration values, defined using G_DEFINE_ENUM_VALUE()
341
+ *
342
+ * A convenience macro for defining flag types.
343
+ *
344
+ * This macro will generate a `*_get_type()` function for the
345
+ * given @TypeName, using @type_name as the function prefix.
346
+ *
347
+ * |[<!-- language="C" -->
348
+ * G_DEFINE_FLAGS_TYPE (GSettingsBindFlags, g_settings_bind_flags,
349
+ * G_DEFINE_ENUM_VALUE (G_SETTINGS_BIND_DEFAULT, "default"),
350
+ * G_DEFINE_ENUM_VALUE (G_SETTINGS_BIND_GET, "get"),
351
+ * G_DEFINE_ENUM_VALUE (G_SETTINGS_BIND_SET, "set"),
352
+ * G_DEFINE_ENUM_VALUE (G_SETTINGS_BIND_NO_SENSITIVITY, "no-sensitivity"),
353
+ * G_DEFINE_ENUM_VALUE (G_SETTINGS_BIND_GET_NO_CHANGES, "get-no-changes"),
354
+ * G_DEFINE_ENUM_VALUE (G_SETTINGS_BIND_INVERT_BOOLEAN, "invert-boolean"))
355
+ * ]|
356
+ *
357
+ * For projects that have multiple enumeration types, or enumeration
358
+ * types with many values, you should consider using glib-mkenums to
359
+ * generate the type function.
360
+ *
361
+ * Since: 2.74
362
+ */
363
+ #define G_DEFINE_FLAGS_TYPE(TypeName, type_name, ...) \
364
+ GType \
365
+ type_name ## _get_type (void) { \
366
+ static gsize g_define_type__static = 0; \
367
+ if (g_once_init_enter (&g_define_type__static)) { \
368
+ static const GFlagsValue flags_values[] = { \
369
+ __VA_ARGS__ , \
370
+ { 0, NULL, NULL }, \
371
+ }; \
372
+ GType g_define_type = g_flags_register_static (g_intern_static_string (#TypeName), flags_values); \
373
+ g_once_init_leave (&g_define_type__static, g_define_type); \
374
+ } \
375
+ return g_define_type__static; \
376
+ } \
377
+ GOBJECT_AVAILABLE_MACRO_IN_2_74
378
+
379
+ G_END_DECLS
380
+
381
+ #endif /* __G_ENUMS_H__ */