@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,199 @@
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
+
20
+ /* WARNING:
21
+ *
22
+ * This file is INSTALLED and other projects (outside of glib)
23
+ * #include its contents.
24
+ */
25
+
26
+ #ifndef __G_OBJECT_NOTIFY_QUEUE_H__
27
+ #define __G_OBJECT_NOTIFY_QUEUE_H__
28
+
29
+ #include <string.h> /* memset */
30
+
31
+ #include <glib-object.h>
32
+
33
+ G_BEGIN_DECLS
34
+
35
+
36
+ /* --- typedefs --- */
37
+ typedef struct _GObjectNotifyContext GObjectNotifyContext;
38
+ typedef struct _GObjectNotifyQueue GObjectNotifyQueue;
39
+ typedef void (*GObjectNotifyQueueDispatcher) (GObject *object,
40
+ guint n_pspecs,
41
+ GParamSpec **pspecs);
42
+
43
+
44
+ /* --- structures --- */
45
+ struct _GObjectNotifyContext
46
+ {
47
+ GQuark quark_notify_queue;
48
+ GObjectNotifyQueueDispatcher dispatcher;
49
+ GTrashStack *_nqueue_trash; /* unused */
50
+ };
51
+ struct _GObjectNotifyQueue
52
+ {
53
+ GObjectNotifyContext *context;
54
+ GSList *pspecs;
55
+ guint16 n_pspecs;
56
+ guint16 freeze_count;
57
+ };
58
+
59
+ G_LOCK_DEFINE_STATIC(notify_lock);
60
+
61
+ /* --- functions --- */
62
+ static void
63
+ g_object_notify_queue_free (gpointer data)
64
+ {
65
+ GObjectNotifyQueue *nqueue = data;
66
+
67
+ g_slist_free (nqueue->pspecs);
68
+ g_slice_free (GObjectNotifyQueue, nqueue);
69
+ }
70
+
71
+ static inline GObjectNotifyQueue*
72
+ g_object_notify_queue_freeze (GObject *object,
73
+ GObjectNotifyContext *context)
74
+ {
75
+ GObjectNotifyQueue *nqueue;
76
+
77
+ G_LOCK(notify_lock);
78
+ nqueue = g_datalist_id_get_data (&object->qdata, context->quark_notify_queue);
79
+ if (!nqueue)
80
+ {
81
+ nqueue = g_slice_new0 (GObjectNotifyQueue);
82
+ nqueue->context = context;
83
+ g_datalist_id_set_data_full (&object->qdata, context->quark_notify_queue,
84
+ nqueue, g_object_notify_queue_free);
85
+ }
86
+
87
+ if (nqueue->freeze_count >= 65535)
88
+ g_critical("Free queue for %s (%p) is larger than 65535,"
89
+ " called g_object_freeze_notify() too often."
90
+ " Forgot to call g_object_thaw_notify() or infinite loop",
91
+ G_OBJECT_TYPE_NAME (object), object);
92
+ else
93
+ nqueue->freeze_count++;
94
+ G_UNLOCK(notify_lock);
95
+
96
+ return nqueue;
97
+ }
98
+
99
+ static inline void
100
+ g_object_notify_queue_thaw (GObject *object,
101
+ GObjectNotifyQueue *nqueue)
102
+ {
103
+ GObjectNotifyContext *context = nqueue->context;
104
+ GParamSpec *pspecs_mem[16], **pspecs, **free_me = NULL;
105
+ GSList *slist;
106
+ guint n_pspecs = 0;
107
+
108
+ g_return_if_fail (nqueue->freeze_count > 0);
109
+ g_return_if_fail (g_atomic_int_get(&object->ref_count) > 0);
110
+
111
+ G_LOCK(notify_lock);
112
+
113
+ /* Just make sure we never get into some nasty race condition */
114
+ if (G_UNLIKELY(nqueue->freeze_count == 0)) {
115
+ G_UNLOCK(notify_lock);
116
+ g_critical ("%s: property-changed notification for %s(%p) is not frozen",
117
+ G_STRFUNC, G_OBJECT_TYPE_NAME (object), object);
118
+ return;
119
+ }
120
+
121
+ nqueue->freeze_count--;
122
+ if (nqueue->freeze_count) {
123
+ G_UNLOCK(notify_lock);
124
+ return;
125
+ }
126
+
127
+ pspecs = nqueue->n_pspecs > 16 ? free_me = g_new (GParamSpec*, nqueue->n_pspecs) : pspecs_mem;
128
+
129
+ for (slist = nqueue->pspecs; slist; slist = slist->next)
130
+ {
131
+ pspecs[n_pspecs++] = slist->data;
132
+ }
133
+ g_datalist_id_set_data (&object->qdata, context->quark_notify_queue, NULL);
134
+
135
+ G_UNLOCK(notify_lock);
136
+
137
+ if (n_pspecs)
138
+ context->dispatcher (object, n_pspecs, pspecs);
139
+ g_free (free_me);
140
+ }
141
+
142
+ static inline void
143
+ g_object_notify_queue_clear (GObject *object,
144
+ GObjectNotifyQueue *nqueue)
145
+ {
146
+ g_return_if_fail (nqueue->freeze_count > 0);
147
+
148
+ G_LOCK(notify_lock);
149
+
150
+ g_slist_free (nqueue->pspecs);
151
+ nqueue->pspecs = NULL;
152
+ nqueue->n_pspecs = 0;
153
+
154
+ G_UNLOCK(notify_lock);
155
+ }
156
+
157
+ static inline void
158
+ g_object_notify_queue_add (GObject *object,
159
+ GObjectNotifyQueue *nqueue,
160
+ GParamSpec *pspec)
161
+ {
162
+ if (pspec->flags & G_PARAM_READABLE)
163
+ {
164
+ GParamSpec *redirect;
165
+
166
+ G_LOCK(notify_lock);
167
+
168
+ g_return_if_fail (nqueue->n_pspecs < 65535);
169
+
170
+ redirect = g_param_spec_get_redirect_target (pspec);
171
+ if (redirect)
172
+ pspec = redirect;
173
+
174
+ /* we do the deduping in _thaw */
175
+ if (g_slist_find (nqueue->pspecs, pspec) == NULL)
176
+ {
177
+ nqueue->pspecs = g_slist_prepend (nqueue->pspecs, pspec);
178
+ nqueue->n_pspecs++;
179
+ }
180
+
181
+ G_UNLOCK(notify_lock);
182
+ }
183
+ }
184
+
185
+ /* NB: This function is not threadsafe, do not ever use it if
186
+ * you need a threadsafe notify queue.
187
+ * Use g_object_notify_queue_freeze() to acquire the queue and
188
+ * g_object_notify_queue_thaw() after you are done instead.
189
+ */
190
+ static inline GObjectNotifyQueue*
191
+ g_object_notify_queue_from_object (GObject *object,
192
+ GObjectNotifyContext *context)
193
+ {
194
+ return g_datalist_id_get_data (&object->qdata, context->quark_notify_queue);
195
+ }
196
+
197
+ G_END_DECLS
198
+
199
+ #endif /* __G_OBJECT_NOTIFY_QUEUE_H__ */
@@ -0,0 +1,476 @@
1
+ /* GObject - GLib Type, Object, Parameter and Signal Library
2
+ * Copyright (C) 1997-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
+ * gparam.h: GParamSpec base class implementation
20
+ */
21
+ #ifndef __G_PARAM_H__
22
+ #define __G_PARAM_H__
23
+
24
+ #if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
25
+ #error "Only <glib-object.h> can be included directly."
26
+ #endif
27
+
28
+ #include <gobject/gvalue.h>
29
+
30
+ G_BEGIN_DECLS
31
+
32
+ /* --- standard type macros --- */
33
+ /**
34
+ * G_TYPE_IS_PARAM:
35
+ * @type: a #GType ID
36
+ *
37
+ * Checks whether @type "is a" %G_TYPE_PARAM.
38
+ */
39
+ #define G_TYPE_IS_PARAM(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_PARAM)
40
+ /**
41
+ * G_PARAM_SPEC:
42
+ * @pspec: a valid #GParamSpec
43
+ *
44
+ * Casts a derived #GParamSpec object (e.g. of type #GParamSpecInt) into
45
+ * a #GParamSpec object.
46
+ */
47
+ #define G_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM, GParamSpec))
48
+ /**
49
+ * G_IS_PARAM_SPEC:
50
+ * @pspec: a #GParamSpec
51
+ *
52
+ * Checks whether @pspec "is a" valid #GParamSpec structure of type %G_TYPE_PARAM
53
+ * or derived.
54
+ */
55
+ #if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_42
56
+ #define G_IS_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_FUNDAMENTAL_TYPE ((pspec), G_TYPE_PARAM))
57
+ #else
58
+ #define G_IS_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM))
59
+ #endif
60
+ /**
61
+ * G_PARAM_SPEC_CLASS:
62
+ * @pclass: a valid #GParamSpecClass
63
+ *
64
+ * Casts a derived #GParamSpecClass structure into a #GParamSpecClass structure.
65
+ */
66
+ #define G_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_CAST ((pclass), G_TYPE_PARAM, GParamSpecClass))
67
+ /**
68
+ * G_IS_PARAM_SPEC_CLASS:
69
+ * @pclass: a #GParamSpecClass
70
+ *
71
+ * Checks whether @pclass "is a" valid #GParamSpecClass structure of type
72
+ * %G_TYPE_PARAM or derived.
73
+ */
74
+ #define G_IS_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_TYPE ((pclass), G_TYPE_PARAM))
75
+ /**
76
+ * G_PARAM_SPEC_GET_CLASS:
77
+ * @pspec: a valid #GParamSpec
78
+ *
79
+ * Retrieves the #GParamSpecClass of a #GParamSpec.
80
+ */
81
+ #define G_PARAM_SPEC_GET_CLASS(pspec) (G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass))
82
+
83
+
84
+ /* --- convenience macros --- */
85
+ /**
86
+ * G_PARAM_SPEC_TYPE:
87
+ * @pspec: a valid #GParamSpec
88
+ *
89
+ * Retrieves the #GType of this @pspec.
90
+ */
91
+ #define G_PARAM_SPEC_TYPE(pspec) (G_TYPE_FROM_INSTANCE (pspec))
92
+ /**
93
+ * G_PARAM_SPEC_TYPE_NAME:
94
+ * @pspec: a valid #GParamSpec
95
+ *
96
+ * Retrieves the #GType name of this @pspec.
97
+ */
98
+ #define G_PARAM_SPEC_TYPE_NAME(pspec) (g_type_name (G_PARAM_SPEC_TYPE (pspec)))
99
+ /**
100
+ * G_PARAM_SPEC_VALUE_TYPE:
101
+ * @pspec: a valid #GParamSpec
102
+ *
103
+ * Retrieves the #GType to initialize a #GValue for this parameter.
104
+ */
105
+ #define G_PARAM_SPEC_VALUE_TYPE(pspec) (G_PARAM_SPEC (pspec)->value_type)
106
+ /**
107
+ * G_VALUE_HOLDS_PARAM:
108
+ * @value: a valid #GValue structure
109
+ *
110
+ * Checks whether the given #GValue can hold values derived from type %G_TYPE_PARAM.
111
+ *
112
+ * Returns: %TRUE on success.
113
+ */
114
+ #define G_VALUE_HOLDS_PARAM(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_PARAM))
115
+
116
+
117
+ /* --- flags --- */
118
+ /**
119
+ * GParamFlags:
120
+ * @G_PARAM_READABLE: the parameter is readable
121
+ * @G_PARAM_WRITABLE: the parameter is writable
122
+ * @G_PARAM_READWRITE: alias for %G_PARAM_READABLE | %G_PARAM_WRITABLE
123
+ * @G_PARAM_CONSTRUCT: the parameter will be set upon object construction
124
+ * @G_PARAM_CONSTRUCT_ONLY: the parameter can only be set upon object construction
125
+ * @G_PARAM_LAX_VALIDATION: upon parameter conversion (see g_param_value_convert())
126
+ * strict validation is not required
127
+ * @G_PARAM_STATIC_NAME: the string used as name when constructing the
128
+ * parameter is guaranteed to remain valid and
129
+ * unmodified for the lifetime of the parameter.
130
+ * Since 2.8
131
+ * @G_PARAM_STATIC_NICK: the string used as nick when constructing the
132
+ * parameter is guaranteed to remain valid and
133
+ * unmmodified for the lifetime of the parameter.
134
+ * Since 2.8
135
+ * @G_PARAM_STATIC_BLURB: the string used as blurb when constructing the
136
+ * parameter is guaranteed to remain valid and
137
+ * unmodified for the lifetime of the parameter.
138
+ * Since 2.8
139
+ * @G_PARAM_EXPLICIT_NOTIFY: calls to g_object_set_property() for this
140
+ * property will not automatically result in a "notify" signal being
141
+ * emitted: the implementation must call g_object_notify() themselves
142
+ * in case the property actually changes. Since: 2.42.
143
+ * @G_PARAM_PRIVATE: internal
144
+ * @G_PARAM_DEPRECATED: the parameter is deprecated and will be removed
145
+ * in a future version. A warning will be generated if it is used
146
+ * while running with G_ENABLE_DIAGNOSTIC=1.
147
+ * Since 2.26
148
+ *
149
+ * Through the #GParamFlags flag values, certain aspects of parameters
150
+ * can be configured.
151
+ *
152
+ * See also: %G_PARAM_STATIC_STRINGS
153
+ */
154
+ typedef enum
155
+ {
156
+ G_PARAM_READABLE = 1 << 0,
157
+ G_PARAM_WRITABLE = 1 << 1,
158
+ G_PARAM_READWRITE = (G_PARAM_READABLE | G_PARAM_WRITABLE),
159
+ G_PARAM_CONSTRUCT = 1 << 2,
160
+ G_PARAM_CONSTRUCT_ONLY = 1 << 3,
161
+ G_PARAM_LAX_VALIDATION = 1 << 4,
162
+ G_PARAM_STATIC_NAME = 1 << 5,
163
+ G_PARAM_PRIVATE GOBJECT_DEPRECATED_ENUMERATOR_IN_2_26 = G_PARAM_STATIC_NAME,
164
+ G_PARAM_STATIC_NICK = 1 << 6,
165
+ G_PARAM_STATIC_BLURB = 1 << 7,
166
+ /* User defined flags go here */
167
+ G_PARAM_EXPLICIT_NOTIFY = 1 << 30,
168
+ /* Avoid warning with -Wpedantic for gcc6 */
169
+ G_PARAM_DEPRECATED = (gint)(1u << 31)
170
+ } GParamFlags;
171
+
172
+ /**
173
+ * G_PARAM_STATIC_STRINGS:
174
+ *
175
+ * #GParamFlags value alias for %G_PARAM_STATIC_NAME | %G_PARAM_STATIC_NICK | %G_PARAM_STATIC_BLURB.
176
+ *
177
+ * It is recommended to use this for all properties by default, as it allows for
178
+ * internal performance improvements in GObject.
179
+ *
180
+ * It is very rare that a property would have a dynamically constructed name,
181
+ * nickname or blurb.
182
+ *
183
+ * Since 2.13.0
184
+ */
185
+ #define G_PARAM_STATIC_STRINGS (G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)
186
+ /* bits in the range 0xffffff00 are reserved for 3rd party usage */
187
+ /**
188
+ * G_PARAM_MASK:
189
+ *
190
+ * Mask containing the bits of #GParamSpec.flags which are reserved for GLib.
191
+ */
192
+ #define G_PARAM_MASK (0x000000ff)
193
+ /**
194
+ * G_PARAM_USER_SHIFT:
195
+ *
196
+ * Minimum shift count to be used for user defined flags, to be stored in
197
+ * #GParamSpec.flags. The maximum allowed is 10.
198
+ */
199
+ #define G_PARAM_USER_SHIFT (8)
200
+
201
+ /* --- typedefs & structures --- */
202
+ typedef struct _GParamSpec GParamSpec;
203
+ typedef struct _GParamSpecClass GParamSpecClass;
204
+ typedef struct _GParameter GParameter GOBJECT_DEPRECATED_TYPE_IN_2_54;
205
+ typedef struct _GParamSpecPool GParamSpecPool;
206
+ /**
207
+ * GParamSpec: (ref-func g_param_spec_ref_sink) (unref-func g_param_spec_unref) (set-value-func g_value_set_param) (get-value-func g_value_get_param)
208
+ * @g_type_instance: private #GTypeInstance portion
209
+ * @name: name of this parameter: always an interned string
210
+ * @flags: #GParamFlags flags for this parameter
211
+ * @value_type: the #GValue type for this parameter
212
+ * @owner_type: #GType type that uses (introduces) this parameter
213
+ *
214
+ * All other fields of the GParamSpec struct are private and
215
+ * should not be used directly.
216
+ */
217
+ struct _GParamSpec
218
+ {
219
+ GTypeInstance g_type_instance;
220
+
221
+ const gchar *name; /* interned string */
222
+ GParamFlags flags;
223
+ GType value_type;
224
+ GType owner_type; /* class or interface using this property */
225
+
226
+ /*< private >*/
227
+ gchar *_nick;
228
+ gchar *_blurb;
229
+ GData *qdata;
230
+ guint ref_count;
231
+ guint param_id; /* sort-criteria */
232
+ };
233
+ /**
234
+ * GParamSpecClass:
235
+ * @g_type_class: the parent class
236
+ * @value_type: the #GValue type for this parameter
237
+ * @finalize: The instance finalization function (optional), should chain
238
+ * up to the finalize method of the parent class.
239
+ * @value_set_default: Resets a @value to the default value for this type
240
+ * (recommended, the default is g_value_reset()), see
241
+ * g_param_value_set_default().
242
+ * @value_validate: Ensures that the contents of @value comply with the
243
+ * specifications set out by this type (optional), see
244
+ * g_param_value_validate().
245
+ * @values_cmp: Compares @value1 with @value2 according to this type
246
+ * (recommended, the default is memcmp()), see g_param_values_cmp().
247
+ * @value_is_valid: Checks if contents of @value comply with the specifications
248
+ * set out by this type, without modifying the value. This vfunc is optional.
249
+ * If it isn't set, GObject will use @value_validate. Since 2.74
250
+ *
251
+ * The class structure for the GParamSpec type.
252
+ * Normally, GParamSpec classes are filled by
253
+ * g_param_type_register_static().
254
+ */
255
+ struct _GParamSpecClass
256
+ {
257
+ GTypeClass g_type_class;
258
+
259
+ GType value_type;
260
+
261
+ void (*finalize) (GParamSpec *pspec);
262
+
263
+ /* GParam methods */
264
+ void (*value_set_default) (GParamSpec *pspec,
265
+ GValue *value);
266
+ gboolean (*value_validate) (GParamSpec *pspec,
267
+ GValue *value);
268
+ gint (*values_cmp) (GParamSpec *pspec,
269
+ const GValue *value1,
270
+ const GValue *value2);
271
+
272
+ gboolean (*value_is_valid) (GParamSpec *pspec,
273
+ const GValue *value);
274
+
275
+ /*< private >*/
276
+ gpointer dummy[3];
277
+ };
278
+ /**
279
+ * GParameter:
280
+ * @name: the parameter name
281
+ * @value: the parameter value
282
+ *
283
+ * The GParameter struct is an auxiliary structure used
284
+ * to hand parameter name/value pairs to g_object_newv().
285
+ *
286
+ * Deprecated: 2.54: This type is not introspectable.
287
+ */
288
+ struct _GParameter /* auxiliary structure for _setv() variants */
289
+ {
290
+ const gchar *name;
291
+ GValue value;
292
+ } GOBJECT_DEPRECATED_TYPE_IN_2_54;
293
+
294
+
295
+ /* --- prototypes --- */
296
+ GOBJECT_AVAILABLE_IN_ALL
297
+ GParamSpec* g_param_spec_ref (GParamSpec *pspec);
298
+ GOBJECT_AVAILABLE_IN_ALL
299
+ void g_param_spec_unref (GParamSpec *pspec);
300
+ GOBJECT_AVAILABLE_IN_ALL
301
+ void g_param_spec_sink (GParamSpec *pspec);
302
+ GOBJECT_AVAILABLE_IN_ALL
303
+ GParamSpec* g_param_spec_ref_sink (GParamSpec *pspec);
304
+ GOBJECT_AVAILABLE_IN_ALL
305
+ gpointer g_param_spec_get_qdata (GParamSpec *pspec,
306
+ GQuark quark);
307
+ GOBJECT_AVAILABLE_IN_ALL
308
+ void g_param_spec_set_qdata (GParamSpec *pspec,
309
+ GQuark quark,
310
+ gpointer data);
311
+ GOBJECT_AVAILABLE_IN_ALL
312
+ void g_param_spec_set_qdata_full (GParamSpec *pspec,
313
+ GQuark quark,
314
+ gpointer data,
315
+ GDestroyNotify destroy);
316
+ GOBJECT_AVAILABLE_IN_ALL
317
+ gpointer g_param_spec_steal_qdata (GParamSpec *pspec,
318
+ GQuark quark);
319
+ GOBJECT_AVAILABLE_IN_ALL
320
+ GParamSpec* g_param_spec_get_redirect_target (GParamSpec *pspec);
321
+
322
+ GOBJECT_AVAILABLE_IN_ALL
323
+ void g_param_value_set_default (GParamSpec *pspec,
324
+ GValue *value);
325
+ GOBJECT_AVAILABLE_IN_ALL
326
+ gboolean g_param_value_defaults (GParamSpec *pspec,
327
+ const GValue *value);
328
+ GOBJECT_AVAILABLE_IN_ALL
329
+ gboolean g_param_value_validate (GParamSpec *pspec,
330
+ GValue *value);
331
+ GOBJECT_AVAILABLE_IN_2_74
332
+ gboolean g_param_value_is_valid (GParamSpec *pspec,
333
+ const GValue *value);
334
+ GOBJECT_AVAILABLE_IN_ALL
335
+ gboolean g_param_value_convert (GParamSpec *pspec,
336
+ const GValue *src_value,
337
+ GValue *dest_value,
338
+ gboolean strict_validation);
339
+ GOBJECT_AVAILABLE_IN_ALL
340
+ gint g_param_values_cmp (GParamSpec *pspec,
341
+ const GValue *value1,
342
+ const GValue *value2);
343
+ GOBJECT_AVAILABLE_IN_ALL
344
+ const gchar * g_param_spec_get_name (GParamSpec *pspec);
345
+ GOBJECT_AVAILABLE_IN_ALL
346
+ const gchar * g_param_spec_get_nick (GParamSpec *pspec);
347
+ GOBJECT_AVAILABLE_IN_ALL
348
+ const gchar * g_param_spec_get_blurb (GParamSpec *pspec);
349
+ GOBJECT_AVAILABLE_IN_ALL
350
+ void g_value_set_param (GValue *value,
351
+ GParamSpec *param);
352
+ GOBJECT_AVAILABLE_IN_ALL
353
+ GParamSpec* g_value_get_param (const GValue *value);
354
+ GOBJECT_AVAILABLE_IN_ALL
355
+ GParamSpec* g_value_dup_param (const GValue *value);
356
+
357
+
358
+ GOBJECT_AVAILABLE_IN_ALL
359
+ void g_value_take_param (GValue *value,
360
+ GParamSpec *param);
361
+ GOBJECT_DEPRECATED_FOR(g_value_take_param)
362
+ void g_value_set_param_take_ownership (GValue *value,
363
+ GParamSpec *param);
364
+ GOBJECT_AVAILABLE_IN_2_36
365
+ const GValue * g_param_spec_get_default_value (GParamSpec *pspec);
366
+
367
+ GOBJECT_AVAILABLE_IN_2_46
368
+ GQuark g_param_spec_get_name_quark (GParamSpec *pspec);
369
+
370
+ /* --- convenience functions --- */
371
+ typedef struct _GParamSpecTypeInfo GParamSpecTypeInfo;
372
+ /**
373
+ * GParamSpecTypeInfo:
374
+ * @instance_size: Size of the instance (object) structure.
375
+ * @n_preallocs: Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the [slice allocator][glib-Memory-Slices] now.
376
+ * @instance_init: Location of the instance initialization function (optional).
377
+ * @value_type: The #GType of values conforming to this #GParamSpec
378
+ * @finalize: The instance finalization function (optional).
379
+ * @value_set_default: Resets a @value to the default value for @pspec
380
+ * (recommended, the default is g_value_reset()), see
381
+ * g_param_value_set_default().
382
+ * @value_validate: Ensures that the contents of @value comply with the
383
+ * specifications set out by @pspec (optional), see
384
+ * g_param_value_validate().
385
+ * @values_cmp: Compares @value1 with @value2 according to @pspec
386
+ * (recommended, the default is memcmp()), see g_param_values_cmp().
387
+ *
388
+ * This structure is used to provide the type system with the information
389
+ * required to initialize and destruct (finalize) a parameter's class and
390
+ * instances thereof.
391
+ *
392
+ * The initialized structure is passed to the g_param_type_register_static()
393
+ * The type system will perform a deep copy of this structure, so its memory
394
+ * does not need to be persistent across invocation of
395
+ * g_param_type_register_static().
396
+ */
397
+ struct _GParamSpecTypeInfo
398
+ {
399
+ /* type system portion */
400
+ guint16 instance_size; /* obligatory */
401
+ guint16 n_preallocs; /* optional */
402
+ void (*instance_init) (GParamSpec *pspec); /* optional */
403
+
404
+ /* class portion */
405
+ GType value_type; /* obligatory */
406
+ void (*finalize) (GParamSpec *pspec); /* optional */
407
+ void (*value_set_default) (GParamSpec *pspec, /* recommended */
408
+ GValue *value);
409
+ gboolean (*value_validate) (GParamSpec *pspec, /* optional */
410
+ GValue *value);
411
+ gint (*values_cmp) (GParamSpec *pspec, /* recommended */
412
+ const GValue *value1,
413
+ const GValue *value2);
414
+ };
415
+ GOBJECT_AVAILABLE_IN_ALL
416
+ GType g_param_type_register_static (const gchar *name,
417
+ const GParamSpecTypeInfo *pspec_info);
418
+
419
+ GOBJECT_AVAILABLE_IN_2_66
420
+ gboolean g_param_spec_is_valid_name (const gchar *name);
421
+
422
+ /* For registering builting types */
423
+ GType _g_param_type_register_static_constant (const gchar *name,
424
+ const GParamSpecTypeInfo *pspec_info,
425
+ GType opt_type);
426
+
427
+
428
+ /* --- protected --- */
429
+ GOBJECT_AVAILABLE_IN_ALL
430
+ gpointer g_param_spec_internal (GType param_type,
431
+ const gchar *name,
432
+ const gchar *nick,
433
+ const gchar *blurb,
434
+ GParamFlags flags);
435
+ GOBJECT_AVAILABLE_IN_ALL
436
+ GParamSpecPool* g_param_spec_pool_new (gboolean type_prefixing);
437
+ GOBJECT_AVAILABLE_IN_ALL
438
+ void g_param_spec_pool_insert (GParamSpecPool *pool,
439
+ GParamSpec *pspec,
440
+ GType owner_type);
441
+ GOBJECT_AVAILABLE_IN_ALL
442
+ void g_param_spec_pool_remove (GParamSpecPool *pool,
443
+ GParamSpec *pspec);
444
+ GOBJECT_AVAILABLE_IN_ALL
445
+ GParamSpec* g_param_spec_pool_lookup (GParamSpecPool *pool,
446
+ const gchar *param_name,
447
+ GType owner_type,
448
+ gboolean walk_ancestors);
449
+ GOBJECT_AVAILABLE_IN_ALL
450
+ GList* g_param_spec_pool_list_owned (GParamSpecPool *pool,
451
+ GType owner_type);
452
+ GOBJECT_AVAILABLE_IN_ALL
453
+ GParamSpec** g_param_spec_pool_list (GParamSpecPool *pool,
454
+ GType owner_type,
455
+ guint *n_pspecs_p);
456
+
457
+
458
+ /* contracts:
459
+ *
460
+ * gboolean value_validate (GParamSpec *pspec,
461
+ * GValue *value):
462
+ * modify value contents in the least destructive way, so
463
+ * that it complies with pspec's requirements (i.e.
464
+ * according to minimum/maximum ranges etc...). return
465
+ * whether modification was necessary.
466
+ *
467
+ * gint values_cmp (GParamSpec *pspec,
468
+ * const GValue *value1,
469
+ * const GValue *value2):
470
+ * return value1 - value2, i.e. (-1) if value1 < value2,
471
+ * (+1) if value1 > value2, and (0) otherwise (equality)
472
+ */
473
+
474
+ G_END_DECLS
475
+
476
+ #endif /* __G_PARAM_H__ */