gparamspecs.h 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164
  1. /* GObject - GLib Type, Object, Parameter and Signal Library
  2. * Copyright (C) 1997-1999, 2000-2001 Tim Janik and Red Hat, Inc.
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2 of the License, or (at your option) any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General
  15. * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
  16. *
  17. * gparamspecs.h: GLib default param specs
  18. */
  19. #ifndef __G_PARAMSPECS_H__
  20. #define __G_PARAMSPECS_H__
  21. #if !defined (__GLIB_GOBJECT_H_INSIDE__) && !defined (GOBJECT_COMPILATION)
  22. #error "Only <glib-object.h> can be included directly."
  23. #endif
  24. #include <gobject/gvalue.h>
  25. #include <gobject/genums.h>
  26. #include <gobject/gboxed.h>
  27. #include <gobject/gobject.h>
  28. G_BEGIN_DECLS
  29. /* --- type macros --- */
  30. /**
  31. * G_TYPE_PARAM_CHAR:
  32. *
  33. * The #GType of #GParamSpecChar.
  34. */
  35. #define G_TYPE_PARAM_CHAR (g_param_spec_types[0])
  36. /**
  37. * G_IS_PARAM_SPEC_CHAR:
  38. * @pspec: a valid #GParamSpec instance
  39. *
  40. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_CHAR.
  41. *
  42. * Returns: %TRUE on success.
  43. */
  44. #define G_IS_PARAM_SPEC_CHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_CHAR))
  45. /**
  46. * G_PARAM_SPEC_CHAR:
  47. * @pspec: a valid #GParamSpec instance
  48. *
  49. * Cast a #GParamSpec instance into a #GParamSpecChar.
  50. */
  51. #define G_PARAM_SPEC_CHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_CHAR, GParamSpecChar))
  52. /**
  53. * G_TYPE_PARAM_UCHAR:
  54. *
  55. * The #GType of #GParamSpecUChar.
  56. */
  57. #define G_TYPE_PARAM_UCHAR (g_param_spec_types[1])
  58. /**
  59. * G_IS_PARAM_SPEC_UCHAR:
  60. * @pspec: a valid #GParamSpec instance
  61. *
  62. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UCHAR.
  63. *
  64. * Returns: %TRUE on success.
  65. */
  66. #define G_IS_PARAM_SPEC_UCHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UCHAR))
  67. /**
  68. * G_PARAM_SPEC_UCHAR:
  69. * @pspec: a valid #GParamSpec instance
  70. *
  71. * Cast a #GParamSpec instance into a #GParamSpecUChar.
  72. */
  73. #define G_PARAM_SPEC_UCHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UCHAR, GParamSpecUChar))
  74. /**
  75. * G_TYPE_PARAM_BOOLEAN:
  76. *
  77. * The #GType of #GParamSpecBoolean.
  78. */
  79. #define G_TYPE_PARAM_BOOLEAN (g_param_spec_types[2])
  80. /**
  81. * G_IS_PARAM_SPEC_BOOLEAN:
  82. * @pspec: a valid #GParamSpec instance
  83. *
  84. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_BOOLEAN.
  85. *
  86. * Returns: %TRUE on success.
  87. */
  88. #define G_IS_PARAM_SPEC_BOOLEAN(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOOLEAN))
  89. /**
  90. * G_PARAM_SPEC_BOOLEAN:
  91. * @pspec: a valid #GParamSpec instance
  92. *
  93. * Cast a #GParamSpec instance into a #GParamSpecBoolean.
  94. */
  95. #define G_PARAM_SPEC_BOOLEAN(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOOLEAN, GParamSpecBoolean))
  96. /**
  97. * G_TYPE_PARAM_INT:
  98. *
  99. * The #GType of #GParamSpecInt.
  100. */
  101. #define G_TYPE_PARAM_INT (g_param_spec_types[3])
  102. /**
  103. * G_IS_PARAM_SPEC_INT:
  104. * @pspec: a valid #GParamSpec instance
  105. *
  106. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_INT.
  107. *
  108. * Returns: %TRUE on success.
  109. */
  110. #define G_IS_PARAM_SPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT))
  111. /**
  112. * G_PARAM_SPEC_INT:
  113. * @pspec: a valid #GParamSpec instance
  114. *
  115. * Cast a #GParamSpec instance into a #GParamSpecInt.
  116. */
  117. #define G_PARAM_SPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT, GParamSpecInt))
  118. /**
  119. * G_TYPE_PARAM_UINT:
  120. *
  121. * The #GType of #GParamSpecUInt.
  122. */
  123. #define G_TYPE_PARAM_UINT (g_param_spec_types[4])
  124. /**
  125. * G_IS_PARAM_SPEC_UINT:
  126. * @pspec: a valid #GParamSpec instance
  127. *
  128. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UINT.
  129. *
  130. * Returns: %TRUE on success.
  131. */
  132. #define G_IS_PARAM_SPEC_UINT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT))
  133. /**
  134. * G_PARAM_SPEC_UINT:
  135. * @pspec: a valid #GParamSpec instance
  136. *
  137. * Cast a #GParamSpec instance into a #GParamSpecUInt.
  138. */
  139. #define G_PARAM_SPEC_UINT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT, GParamSpecUInt))
  140. /**
  141. * G_TYPE_PARAM_LONG:
  142. *
  143. * The #GType of #GParamSpecLong.
  144. */
  145. #define G_TYPE_PARAM_LONG (g_param_spec_types[5])
  146. /**
  147. * G_IS_PARAM_SPEC_LONG:
  148. * @pspec: a valid #GParamSpec instance
  149. *
  150. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_LONG.
  151. *
  152. * Returns: %TRUE on success.
  153. */
  154. #define G_IS_PARAM_SPEC_LONG(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_LONG))
  155. /**
  156. * G_PARAM_SPEC_LONG:
  157. * @pspec: a valid #GParamSpec instance
  158. *
  159. * Cast a #GParamSpec instance into a #GParamSpecLong.
  160. */
  161. #define G_PARAM_SPEC_LONG(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_LONG, GParamSpecLong))
  162. /**
  163. * G_TYPE_PARAM_ULONG:
  164. *
  165. * The #GType of #GParamSpecULong.
  166. */
  167. #define G_TYPE_PARAM_ULONG (g_param_spec_types[6])
  168. /**
  169. * G_IS_PARAM_SPEC_ULONG:
  170. * @pspec: a valid #GParamSpec instance
  171. *
  172. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_ULONG.
  173. *
  174. * Returns: %TRUE on success.
  175. */
  176. #define G_IS_PARAM_SPEC_ULONG(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ULONG))
  177. /**
  178. * G_PARAM_SPEC_ULONG:
  179. * @pspec: a valid #GParamSpec instance
  180. *
  181. * Cast a #GParamSpec instance into a #GParamSpecULong.
  182. */
  183. #define G_PARAM_SPEC_ULONG(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ULONG, GParamSpecULong))
  184. /**
  185. * G_TYPE_PARAM_INT64:
  186. *
  187. * The #GType of #GParamSpecInt64.
  188. */
  189. #define G_TYPE_PARAM_INT64 (g_param_spec_types[7])
  190. /**
  191. * G_IS_PARAM_SPEC_INT64:
  192. * @pspec: a valid #GParamSpec instance
  193. *
  194. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_INT64.
  195. *
  196. * Returns: %TRUE on success.
  197. */
  198. #define G_IS_PARAM_SPEC_INT64(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT64))
  199. /**
  200. * G_PARAM_SPEC_INT64:
  201. * @pspec: a valid #GParamSpec instance
  202. *
  203. * Cast a #GParamSpec instance into a #GParamSpecInt64.
  204. */
  205. #define G_PARAM_SPEC_INT64(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT64, GParamSpecInt64))
  206. /**
  207. * G_TYPE_PARAM_UINT64:
  208. *
  209. * The #GType of #GParamSpecUInt64.
  210. */
  211. #define G_TYPE_PARAM_UINT64 (g_param_spec_types[8])
  212. /**
  213. * G_IS_PARAM_SPEC_UINT64:
  214. * @pspec: a valid #GParamSpec instance
  215. *
  216. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UINT64.
  217. *
  218. * Returns: %TRUE on success.
  219. */
  220. #define G_IS_PARAM_SPEC_UINT64(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT64))
  221. /**
  222. * G_PARAM_SPEC_UINT64:
  223. * @pspec: a valid #GParamSpec instance
  224. *
  225. * Cast a #GParamSpec instance into a #GParamSpecUInt64.
  226. */
  227. #define G_PARAM_SPEC_UINT64(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT64, GParamSpecUInt64))
  228. /**
  229. * G_TYPE_PARAM_UNICHAR:
  230. *
  231. * The #GType of #GParamSpecUnichar.
  232. */
  233. #define G_TYPE_PARAM_UNICHAR (g_param_spec_types[9])
  234. /**
  235. * G_PARAM_SPEC_UNICHAR:
  236. * @pspec: a valid #GParamSpec instance
  237. *
  238. * Cast a #GParamSpec instance into a #GParamSpecUnichar.
  239. */
  240. #define G_PARAM_SPEC_UNICHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UNICHAR, GParamSpecUnichar))
  241. /**
  242. * G_IS_PARAM_SPEC_UNICHAR:
  243. * @pspec: a valid #GParamSpec instance
  244. *
  245. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_UNICHAR.
  246. *
  247. * Returns: %TRUE on success.
  248. */
  249. #define G_IS_PARAM_SPEC_UNICHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UNICHAR))
  250. /**
  251. * G_TYPE_PARAM_ENUM:
  252. *
  253. * The #GType of #GParamSpecEnum.
  254. */
  255. #define G_TYPE_PARAM_ENUM (g_param_spec_types[10])
  256. /**
  257. * G_IS_PARAM_SPEC_ENUM:
  258. * @pspec: a valid #GParamSpec instance
  259. *
  260. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_ENUM.
  261. *
  262. * Returns: %TRUE on success.
  263. */
  264. #define G_IS_PARAM_SPEC_ENUM(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ENUM))
  265. /**
  266. * G_PARAM_SPEC_ENUM:
  267. * @pspec: a valid #GParamSpec instance
  268. *
  269. * Cast a #GParamSpec instance into a #GParamSpecEnum.
  270. */
  271. #define G_PARAM_SPEC_ENUM(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ENUM, GParamSpecEnum))
  272. /**
  273. * G_TYPE_PARAM_FLAGS:
  274. *
  275. * The #GType of #GParamSpecFlags.
  276. */
  277. #define G_TYPE_PARAM_FLAGS (g_param_spec_types[11])
  278. /**
  279. * G_IS_PARAM_SPEC_FLAGS:
  280. * @pspec: a valid #GParamSpec instance
  281. *
  282. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_FLAGS.
  283. *
  284. * Returns: %TRUE on success.
  285. */
  286. #define G_IS_PARAM_SPEC_FLAGS(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLAGS))
  287. /**
  288. * G_PARAM_SPEC_FLAGS:
  289. * @pspec: a valid #GParamSpec instance
  290. *
  291. * Cast a #GParamSpec instance into a #GParamSpecFlags.
  292. */
  293. #define G_PARAM_SPEC_FLAGS(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLAGS, GParamSpecFlags))
  294. /**
  295. * G_TYPE_PARAM_FLOAT:
  296. *
  297. * The #GType of #GParamSpecFloat.
  298. */
  299. #define G_TYPE_PARAM_FLOAT (g_param_spec_types[12])
  300. /**
  301. * G_IS_PARAM_SPEC_FLOAT:
  302. * @pspec: a valid #GParamSpec instance
  303. *
  304. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_FLOAT.
  305. *
  306. * Returns: %TRUE on success.
  307. */
  308. #define G_IS_PARAM_SPEC_FLOAT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLOAT))
  309. /**
  310. * G_PARAM_SPEC_FLOAT:
  311. * @pspec: a valid #GParamSpec instance
  312. *
  313. * Cast a #GParamSpec instance into a #GParamSpecFloat.
  314. */
  315. #define G_PARAM_SPEC_FLOAT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLOAT, GParamSpecFloat))
  316. /**
  317. * G_TYPE_PARAM_DOUBLE:
  318. *
  319. * The #GType of #GParamSpecDouble.
  320. */
  321. #define G_TYPE_PARAM_DOUBLE (g_param_spec_types[13])
  322. /**
  323. * G_IS_PARAM_SPEC_DOUBLE:
  324. * @pspec: a valid #GParamSpec instance
  325. *
  326. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_DOUBLE.
  327. *
  328. * Returns: %TRUE on success.
  329. */
  330. #define G_IS_PARAM_SPEC_DOUBLE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_DOUBLE))
  331. /**
  332. * G_PARAM_SPEC_DOUBLE:
  333. * @pspec: a valid #GParamSpec instance
  334. *
  335. * Cast a #GParamSpec instance into a #GParamSpecDouble.
  336. */
  337. #define G_PARAM_SPEC_DOUBLE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_DOUBLE, GParamSpecDouble))
  338. /**
  339. * G_TYPE_PARAM_STRING:
  340. *
  341. * The #GType of #GParamSpecString.
  342. */
  343. #define G_TYPE_PARAM_STRING (g_param_spec_types[14])
  344. /**
  345. * G_IS_PARAM_SPEC_STRING:
  346. * @pspec: a valid #GParamSpec instance
  347. *
  348. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_STRING.
  349. *
  350. * Returns: %TRUE on success.
  351. */
  352. #define G_IS_PARAM_SPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_STRING))
  353. /**
  354. * G_PARAM_SPEC_STRING:
  355. * @pspec: a valid #GParamSpec instance
  356. *
  357. * Casts a #GParamSpec instance into a #GParamSpecString.
  358. */
  359. #define G_PARAM_SPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_STRING, GParamSpecString))
  360. /**
  361. * G_TYPE_PARAM_PARAM:
  362. *
  363. * The #GType of #GParamSpecParam.
  364. */
  365. #define G_TYPE_PARAM_PARAM (g_param_spec_types[15])
  366. /**
  367. * G_IS_PARAM_SPEC_PARAM:
  368. * @pspec: a valid #GParamSpec instance
  369. *
  370. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_PARAM.
  371. *
  372. * Returns: %TRUE on success.
  373. */
  374. #define G_IS_PARAM_SPEC_PARAM(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_PARAM))
  375. /**
  376. * G_PARAM_SPEC_PARAM:
  377. * @pspec: a valid #GParamSpec instance
  378. *
  379. * Casts a #GParamSpec instance into a #GParamSpecParam.
  380. */
  381. #define G_PARAM_SPEC_PARAM(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_PARAM, GParamSpecParam))
  382. /**
  383. * G_TYPE_PARAM_BOXED:
  384. *
  385. * The #GType of #GParamSpecBoxed.
  386. */
  387. #define G_TYPE_PARAM_BOXED (g_param_spec_types[16])
  388. /**
  389. * G_IS_PARAM_SPEC_BOXED:
  390. * @pspec: a valid #GParamSpec instance
  391. *
  392. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_BOXED.
  393. *
  394. * Returns: %TRUE on success.
  395. */
  396. #define G_IS_PARAM_SPEC_BOXED(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOXED))
  397. /**
  398. * G_PARAM_SPEC_BOXED:
  399. * @pspec: a valid #GParamSpec instance
  400. *
  401. * Cast a #GParamSpec instance into a #GParamSpecBoxed.
  402. */
  403. #define G_PARAM_SPEC_BOXED(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOXED, GParamSpecBoxed))
  404. /**
  405. * G_TYPE_PARAM_POINTER:
  406. *
  407. * The #GType of #GParamSpecPointer.
  408. */
  409. #define G_TYPE_PARAM_POINTER (g_param_spec_types[17])
  410. /**
  411. * G_IS_PARAM_SPEC_POINTER:
  412. * @pspec: a valid #GParamSpec instance
  413. *
  414. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_POINTER.
  415. *
  416. * Returns: %TRUE on success.
  417. */
  418. #define G_IS_PARAM_SPEC_POINTER(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_POINTER))
  419. /**
  420. * G_PARAM_SPEC_POINTER:
  421. * @pspec: a valid #GParamSpec instance
  422. *
  423. * Casts a #GParamSpec instance into a #GParamSpecPointer.
  424. */
  425. #define G_PARAM_SPEC_POINTER(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_POINTER, GParamSpecPointer))
  426. /**
  427. * G_TYPE_PARAM_VALUE_ARRAY:
  428. *
  429. * The #GType of #GParamSpecValueArray.
  430. *
  431. * Deprecated: 2.32: Use #GArray instead of #GValueArray
  432. */
  433. #define G_TYPE_PARAM_VALUE_ARRAY (g_param_spec_types[18])
  434. /**
  435. * G_IS_PARAM_SPEC_VALUE_ARRAY:
  436. * @pspec: a valid #GParamSpec instance
  437. *
  438. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VALUE_ARRAY.
  439. *
  440. * Returns: %TRUE on success.
  441. *
  442. * Deprecated: 2.32: Use #GArray instead of #GValueArray
  443. */
  444. #define G_IS_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VALUE_ARRAY))
  445. /**
  446. * G_PARAM_SPEC_VALUE_ARRAY:
  447. * @pspec: a valid #GParamSpec instance
  448. *
  449. * Cast a #GParamSpec instance into a #GParamSpecValueArray.
  450. *
  451. * Deprecated: 2.32: Use #GArray instead of #GValueArray
  452. */
  453. #define G_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VALUE_ARRAY, GParamSpecValueArray))
  454. /**
  455. * G_TYPE_PARAM_OBJECT:
  456. *
  457. * The #GType of #GParamSpecObject.
  458. */
  459. #define G_TYPE_PARAM_OBJECT (g_param_spec_types[19])
  460. /**
  461. * G_IS_PARAM_SPEC_OBJECT:
  462. * @pspec: a valid #GParamSpec instance
  463. *
  464. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_OBJECT.
  465. *
  466. * Returns: %TRUE on success.
  467. */
  468. #define G_IS_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OBJECT))
  469. /**
  470. * G_PARAM_SPEC_OBJECT:
  471. * @pspec: a valid #GParamSpec instance
  472. *
  473. * Casts a #GParamSpec instance into a #GParamSpecObject.
  474. */
  475. #define G_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject))
  476. /**
  477. * G_TYPE_PARAM_OVERRIDE:
  478. *
  479. * The #GType of #GParamSpecOverride.
  480. *
  481. * Since: 2.4
  482. */
  483. #define G_TYPE_PARAM_OVERRIDE (g_param_spec_types[20])
  484. /**
  485. * G_IS_PARAM_SPEC_OVERRIDE:
  486. * @pspec: a #GParamSpec
  487. *
  488. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_OVERRIDE.
  489. *
  490. * Since: 2.4
  491. * Returns: %TRUE on success.
  492. */
  493. #define G_IS_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OVERRIDE))
  494. /**
  495. * G_PARAM_SPEC_OVERRIDE:
  496. * @pspec: a #GParamSpec
  497. *
  498. * Casts a #GParamSpec into a #GParamSpecOverride.
  499. *
  500. * Since: 2.4
  501. */
  502. #define G_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OVERRIDE, GParamSpecOverride))
  503. /**
  504. * G_TYPE_PARAM_GTYPE:
  505. *
  506. * The #GType of #GParamSpecGType.
  507. *
  508. * Since: 2.10
  509. */
  510. #define G_TYPE_PARAM_GTYPE (g_param_spec_types[21])
  511. /**
  512. * G_IS_PARAM_SPEC_GTYPE:
  513. * @pspec: a #GParamSpec
  514. *
  515. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_GTYPE.
  516. *
  517. * Since: 2.10
  518. * Returns: %TRUE on success.
  519. */
  520. #define G_IS_PARAM_SPEC_GTYPE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_GTYPE))
  521. /**
  522. * G_PARAM_SPEC_GTYPE:
  523. * @pspec: a #GParamSpec
  524. *
  525. * Casts a #GParamSpec into a #GParamSpecGType.
  526. *
  527. * Since: 2.10
  528. */
  529. #define G_PARAM_SPEC_GTYPE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_GTYPE, GParamSpecGType))
  530. /**
  531. * G_TYPE_PARAM_VARIANT:
  532. *
  533. * The #GType of #GParamSpecVariant.
  534. *
  535. * Since: 2.26
  536. */
  537. #define G_TYPE_PARAM_VARIANT (g_param_spec_types[22])
  538. /**
  539. * G_IS_PARAM_SPEC_VARIANT:
  540. * @pspec: a #GParamSpec
  541. *
  542. * Checks whether the given #GParamSpec is of type %G_TYPE_PARAM_VARIANT.
  543. *
  544. * Returns: %TRUE on success
  545. *
  546. * Since: 2.26
  547. */
  548. #define G_IS_PARAM_SPEC_VARIANT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VARIANT))
  549. /**
  550. * G_PARAM_SPEC_VARIANT:
  551. * @pspec: a #GParamSpec
  552. *
  553. * Casts a #GParamSpec into a #GParamSpecVariant.
  554. *
  555. * Since: 2.26
  556. */
  557. #define G_PARAM_SPEC_VARIANT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VARIANT, GParamSpecVariant))
  558. /* --- typedefs & structures --- */
  559. typedef struct _GParamSpecChar GParamSpecChar;
  560. typedef struct _GParamSpecUChar GParamSpecUChar;
  561. typedef struct _GParamSpecBoolean GParamSpecBoolean;
  562. typedef struct _GParamSpecInt GParamSpecInt;
  563. typedef struct _GParamSpecUInt GParamSpecUInt;
  564. typedef struct _GParamSpecLong GParamSpecLong;
  565. typedef struct _GParamSpecULong GParamSpecULong;
  566. typedef struct _GParamSpecInt64 GParamSpecInt64;
  567. typedef struct _GParamSpecUInt64 GParamSpecUInt64;
  568. typedef struct _GParamSpecUnichar GParamSpecUnichar;
  569. typedef struct _GParamSpecEnum GParamSpecEnum;
  570. typedef struct _GParamSpecFlags GParamSpecFlags;
  571. typedef struct _GParamSpecFloat GParamSpecFloat;
  572. typedef struct _GParamSpecDouble GParamSpecDouble;
  573. typedef struct _GParamSpecString GParamSpecString;
  574. typedef struct _GParamSpecParam GParamSpecParam;
  575. typedef struct _GParamSpecBoxed GParamSpecBoxed;
  576. typedef struct _GParamSpecPointer GParamSpecPointer;
  577. typedef struct _GParamSpecValueArray GParamSpecValueArray;
  578. typedef struct _GParamSpecObject GParamSpecObject;
  579. typedef struct _GParamSpecOverride GParamSpecOverride;
  580. typedef struct _GParamSpecGType GParamSpecGType;
  581. typedef struct _GParamSpecVariant GParamSpecVariant;
  582. /**
  583. * GParamSpecChar:
  584. * @parent_instance: private #GParamSpec portion
  585. * @minimum: minimum value for the property specified
  586. * @maximum: maximum value for the property specified
  587. * @default_value: default value for the property specified
  588. *
  589. * A #GParamSpec derived structure that contains the meta data for character properties.
  590. */
  591. struct _GParamSpecChar
  592. {
  593. GParamSpec parent_instance;
  594. gint8 minimum;
  595. gint8 maximum;
  596. gint8 default_value;
  597. };
  598. /**
  599. * GParamSpecUChar:
  600. * @parent_instance: private #GParamSpec portion
  601. * @minimum: minimum value for the property specified
  602. * @maximum: maximum value for the property specified
  603. * @default_value: default value for the property specified
  604. *
  605. * A #GParamSpec derived structure that contains the meta data for unsigned character properties.
  606. */
  607. struct _GParamSpecUChar
  608. {
  609. GParamSpec parent_instance;
  610. guint8 minimum;
  611. guint8 maximum;
  612. guint8 default_value;
  613. };
  614. /**
  615. * GParamSpecBoolean:
  616. * @parent_instance: private #GParamSpec portion
  617. * @default_value: default value for the property specified
  618. *
  619. * A #GParamSpec derived structure that contains the meta data for boolean properties.
  620. */
  621. struct _GParamSpecBoolean
  622. {
  623. GParamSpec parent_instance;
  624. gboolean default_value;
  625. };
  626. /**
  627. * GParamSpecInt:
  628. * @parent_instance: private #GParamSpec portion
  629. * @minimum: minimum value for the property specified
  630. * @maximum: maximum value for the property specified
  631. * @default_value: default value for the property specified
  632. *
  633. * A #GParamSpec derived structure that contains the meta data for integer properties.
  634. */
  635. struct _GParamSpecInt
  636. {
  637. GParamSpec parent_instance;
  638. gint minimum;
  639. gint maximum;
  640. gint default_value;
  641. };
  642. /**
  643. * GParamSpecUInt:
  644. * @parent_instance: private #GParamSpec portion
  645. * @minimum: minimum value for the property specified
  646. * @maximum: maximum value for the property specified
  647. * @default_value: default value for the property specified
  648. *
  649. * A #GParamSpec derived structure that contains the meta data for unsigned integer properties.
  650. */
  651. struct _GParamSpecUInt
  652. {
  653. GParamSpec parent_instance;
  654. guint minimum;
  655. guint maximum;
  656. guint default_value;
  657. };
  658. /**
  659. * GParamSpecLong:
  660. * @parent_instance: private #GParamSpec portion
  661. * @minimum: minimum value for the property specified
  662. * @maximum: maximum value for the property specified
  663. * @default_value: default value for the property specified
  664. *
  665. * A #GParamSpec derived structure that contains the meta data for long integer properties.
  666. */
  667. struct _GParamSpecLong
  668. {
  669. GParamSpec parent_instance;
  670. glong minimum;
  671. glong maximum;
  672. glong default_value;
  673. };
  674. /**
  675. * GParamSpecULong:
  676. * @parent_instance: private #GParamSpec portion
  677. * @minimum: minimum value for the property specified
  678. * @maximum: maximum value for the property specified
  679. * @default_value: default value for the property specified
  680. *
  681. * A #GParamSpec derived structure that contains the meta data for unsigned long integer properties.
  682. */
  683. struct _GParamSpecULong
  684. {
  685. GParamSpec parent_instance;
  686. gulong minimum;
  687. gulong maximum;
  688. gulong default_value;
  689. };
  690. /**
  691. * GParamSpecInt64:
  692. * @parent_instance: private #GParamSpec portion
  693. * @minimum: minimum value for the property specified
  694. * @maximum: maximum value for the property specified
  695. * @default_value: default value for the property specified
  696. *
  697. * A #GParamSpec derived structure that contains the meta data for 64bit integer properties.
  698. */
  699. struct _GParamSpecInt64
  700. {
  701. GParamSpec parent_instance;
  702. gint64 minimum;
  703. gint64 maximum;
  704. gint64 default_value;
  705. };
  706. /**
  707. * GParamSpecUInt64:
  708. * @parent_instance: private #GParamSpec portion
  709. * @minimum: minimum value for the property specified
  710. * @maximum: maximum value for the property specified
  711. * @default_value: default value for the property specified
  712. *
  713. * A #GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties.
  714. */
  715. struct _GParamSpecUInt64
  716. {
  717. GParamSpec parent_instance;
  718. guint64 minimum;
  719. guint64 maximum;
  720. guint64 default_value;
  721. };
  722. /**
  723. * GParamSpecUnichar:
  724. * @parent_instance: private #GParamSpec portion
  725. * @default_value: default value for the property specified
  726. *
  727. * A #GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties.
  728. */
  729. struct _GParamSpecUnichar
  730. {
  731. GParamSpec parent_instance;
  732. gunichar default_value;
  733. };
  734. /**
  735. * GParamSpecEnum:
  736. * @parent_instance: private #GParamSpec portion
  737. * @enum_class: the #GEnumClass for the enum
  738. * @default_value: default value for the property specified
  739. *
  740. * A #GParamSpec derived structure that contains the meta data for enum
  741. * properties.
  742. */
  743. struct _GParamSpecEnum
  744. {
  745. GParamSpec parent_instance;
  746. GEnumClass *enum_class;
  747. gint default_value;
  748. };
  749. /**
  750. * GParamSpecFlags:
  751. * @parent_instance: private #GParamSpec portion
  752. * @flags_class: the #GFlagsClass for the flags
  753. * @default_value: default value for the property specified
  754. *
  755. * A #GParamSpec derived structure that contains the meta data for flags
  756. * properties.
  757. */
  758. struct _GParamSpecFlags
  759. {
  760. GParamSpec parent_instance;
  761. GFlagsClass *flags_class;
  762. guint default_value;
  763. };
  764. /**
  765. * GParamSpecFloat:
  766. * @parent_instance: private #GParamSpec portion
  767. * @minimum: minimum value for the property specified
  768. * @maximum: maximum value for the property specified
  769. * @default_value: default value for the property specified
  770. * @epsilon: values closer than @epsilon will be considered identical
  771. * by g_param_values_cmp(); the default value is 1e-30.
  772. *
  773. * A #GParamSpec derived structure that contains the meta data for float properties.
  774. */
  775. struct _GParamSpecFloat
  776. {
  777. GParamSpec parent_instance;
  778. gfloat minimum;
  779. gfloat maximum;
  780. gfloat default_value;
  781. gfloat epsilon;
  782. };
  783. /**
  784. * GParamSpecDouble:
  785. * @parent_instance: private #GParamSpec portion
  786. * @minimum: minimum value for the property specified
  787. * @maximum: maximum value for the property specified
  788. * @default_value: default value for the property specified
  789. * @epsilon: values closer than @epsilon will be considered identical
  790. * by g_param_values_cmp(); the default value is 1e-90.
  791. *
  792. * A #GParamSpec derived structure that contains the meta data for double properties.
  793. */
  794. struct _GParamSpecDouble
  795. {
  796. GParamSpec parent_instance;
  797. gdouble minimum;
  798. gdouble maximum;
  799. gdouble default_value;
  800. gdouble epsilon;
  801. };
  802. /**
  803. * GParamSpecString:
  804. * @parent_instance: private #GParamSpec portion
  805. * @default_value: default value for the property specified
  806. * @cset_first: a string containing the allowed values for the first byte
  807. * @cset_nth: a string containing the allowed values for the subsequent bytes
  808. * @substitutor: the replacement byte for bytes which don't match @cset_first or @cset_nth.
  809. * @null_fold_if_empty: replace empty string by %NULL
  810. * @ensure_non_null: replace %NULL strings by an empty string
  811. *
  812. * A #GParamSpec derived structure that contains the meta data for string
  813. * properties.
  814. */
  815. struct _GParamSpecString
  816. {
  817. GParamSpec parent_instance;
  818. gchar *default_value;
  819. gchar *cset_first;
  820. gchar *cset_nth;
  821. gchar substitutor;
  822. guint null_fold_if_empty : 1;
  823. guint ensure_non_null : 1;
  824. };
  825. /**
  826. * GParamSpecParam:
  827. * @parent_instance: private #GParamSpec portion
  828. *
  829. * A #GParamSpec derived structure that contains the meta data for %G_TYPE_PARAM
  830. * properties.
  831. */
  832. struct _GParamSpecParam
  833. {
  834. GParamSpec parent_instance;
  835. };
  836. /**
  837. * GParamSpecBoxed:
  838. * @parent_instance: private #GParamSpec portion
  839. *
  840. * A #GParamSpec derived structure that contains the meta data for boxed properties.
  841. */
  842. struct _GParamSpecBoxed
  843. {
  844. GParamSpec parent_instance;
  845. };
  846. /**
  847. * GParamSpecPointer:
  848. * @parent_instance: private #GParamSpec portion
  849. *
  850. * A #GParamSpec derived structure that contains the meta data for pointer properties.
  851. */
  852. struct _GParamSpecPointer
  853. {
  854. GParamSpec parent_instance;
  855. };
  856. /**
  857. * GParamSpecValueArray:
  858. * @parent_instance: private #GParamSpec portion
  859. * @element_spec: a #GParamSpec describing the elements contained in arrays of this property, may be %NULL
  860. * @fixed_n_elements: if greater than 0, arrays of this property will always have this many elements
  861. *
  862. * A #GParamSpec derived structure that contains the meta data for #GValueArray properties.
  863. */
  864. struct _GParamSpecValueArray
  865. {
  866. GParamSpec parent_instance;
  867. GParamSpec *element_spec;
  868. guint fixed_n_elements;
  869. };
  870. /**
  871. * GParamSpecObject:
  872. * @parent_instance: private #GParamSpec portion
  873. *
  874. * A #GParamSpec derived structure that contains the meta data for object properties.
  875. */
  876. struct _GParamSpecObject
  877. {
  878. GParamSpec parent_instance;
  879. };
  880. /**
  881. * GParamSpecOverride:
  882. *
  883. * This is a type of #GParamSpec type that simply redirects operations to
  884. * another paramspec. All operations other than getting or
  885. * setting the value are redirected, including accessing the nick and
  886. * blurb, validating a value, and so forth. See
  887. * g_param_spec_get_redirect_target() for retrieving the overidden
  888. * property. #GParamSpecOverride is used in implementing
  889. * g_object_class_override_property(), and will not be directly useful
  890. * unless you are implementing a new base type similar to GObject.
  891. *
  892. * Since: 2.4
  893. */
  894. struct _GParamSpecOverride
  895. {
  896. /*< private >*/
  897. GParamSpec parent_instance;
  898. GParamSpec *overridden;
  899. };
  900. /**
  901. * GParamSpecGType:
  902. * @parent_instance: private #GParamSpec portion
  903. * @is_a_type: a #GType whose subtypes can occur as values
  904. *
  905. * A #GParamSpec derived structure that contains the meta data for #GType properties.
  906. *
  907. * Since: 2.10
  908. */
  909. struct _GParamSpecGType
  910. {
  911. GParamSpec parent_instance;
  912. GType is_a_type;
  913. };
  914. /**
  915. * GParamSpecVariant:
  916. * @parent_instance: private #GParamSpec portion
  917. * @type: a #GVariantType, or %NULL
  918. * @default_value: a #GVariant, or %NULL
  919. *
  920. * A #GParamSpec derived structure that contains the meta data for #GVariant properties.
  921. *
  922. * Since: 2.26
  923. */
  924. struct _GParamSpecVariant
  925. {
  926. GParamSpec parent_instance;
  927. GVariantType *type;
  928. GVariant *default_value;
  929. /*< private >*/
  930. gpointer padding[4];
  931. };
  932. /* --- GParamSpec prototypes --- */
  933. GLIB_AVAILABLE_IN_ALL
  934. GParamSpec* g_param_spec_char (const gchar *name,
  935. const gchar *nick,
  936. const gchar *blurb,
  937. gint8 minimum,
  938. gint8 maximum,
  939. gint8 default_value,
  940. GParamFlags flags);
  941. GLIB_AVAILABLE_IN_ALL
  942. GParamSpec* g_param_spec_uchar (const gchar *name,
  943. const gchar *nick,
  944. const gchar *blurb,
  945. guint8 minimum,
  946. guint8 maximum,
  947. guint8 default_value,
  948. GParamFlags flags);
  949. GLIB_AVAILABLE_IN_ALL
  950. GParamSpec* g_param_spec_boolean (const gchar *name,
  951. const gchar *nick,
  952. const gchar *blurb,
  953. gboolean default_value,
  954. GParamFlags flags);
  955. GLIB_AVAILABLE_IN_ALL
  956. GParamSpec* g_param_spec_int (const gchar *name,
  957. const gchar *nick,
  958. const gchar *blurb,
  959. gint minimum,
  960. gint maximum,
  961. gint default_value,
  962. GParamFlags flags);
  963. GLIB_AVAILABLE_IN_ALL
  964. GParamSpec* g_param_spec_uint (const gchar *name,
  965. const gchar *nick,
  966. const gchar *blurb,
  967. guint minimum,
  968. guint maximum,
  969. guint default_value,
  970. GParamFlags flags);
  971. GLIB_AVAILABLE_IN_ALL
  972. GParamSpec* g_param_spec_long (const gchar *name,
  973. const gchar *nick,
  974. const gchar *blurb,
  975. glong minimum,
  976. glong maximum,
  977. glong default_value,
  978. GParamFlags flags);
  979. GLIB_AVAILABLE_IN_ALL
  980. GParamSpec* g_param_spec_ulong (const gchar *name,
  981. const gchar *nick,
  982. const gchar *blurb,
  983. gulong minimum,
  984. gulong maximum,
  985. gulong default_value,
  986. GParamFlags flags);
  987. GLIB_AVAILABLE_IN_ALL
  988. GParamSpec* g_param_spec_int64 (const gchar *name,
  989. const gchar *nick,
  990. const gchar *blurb,
  991. gint64 minimum,
  992. gint64 maximum,
  993. gint64 default_value,
  994. GParamFlags flags);
  995. GLIB_AVAILABLE_IN_ALL
  996. GParamSpec* g_param_spec_uint64 (const gchar *name,
  997. const gchar *nick,
  998. const gchar *blurb,
  999. guint64 minimum,
  1000. guint64 maximum,
  1001. guint64 default_value,
  1002. GParamFlags flags);
  1003. GLIB_AVAILABLE_IN_ALL
  1004. GParamSpec* g_param_spec_unichar (const gchar *name,
  1005. const gchar *nick,
  1006. const gchar *blurb,
  1007. gunichar default_value,
  1008. GParamFlags flags);
  1009. GLIB_AVAILABLE_IN_ALL
  1010. GParamSpec* g_param_spec_enum (const gchar *name,
  1011. const gchar *nick,
  1012. const gchar *blurb,
  1013. GType enum_type,
  1014. gint default_value,
  1015. GParamFlags flags);
  1016. GLIB_AVAILABLE_IN_ALL
  1017. GParamSpec* g_param_spec_flags (const gchar *name,
  1018. const gchar *nick,
  1019. const gchar *blurb,
  1020. GType flags_type,
  1021. guint default_value,
  1022. GParamFlags flags);
  1023. GLIB_AVAILABLE_IN_ALL
  1024. GParamSpec* g_param_spec_float (const gchar *name,
  1025. const gchar *nick,
  1026. const gchar *blurb,
  1027. gfloat minimum,
  1028. gfloat maximum,
  1029. gfloat default_value,
  1030. GParamFlags flags);
  1031. GLIB_AVAILABLE_IN_ALL
  1032. GParamSpec* g_param_spec_double (const gchar *name,
  1033. const gchar *nick,
  1034. const gchar *blurb,
  1035. gdouble minimum,
  1036. gdouble maximum,
  1037. gdouble default_value,
  1038. GParamFlags flags);
  1039. GLIB_AVAILABLE_IN_ALL
  1040. GParamSpec* g_param_spec_string (const gchar *name,
  1041. const gchar *nick,
  1042. const gchar *blurb,
  1043. const gchar *default_value,
  1044. GParamFlags flags);
  1045. GLIB_AVAILABLE_IN_ALL
  1046. GParamSpec* g_param_spec_param (const gchar *name,
  1047. const gchar *nick,
  1048. const gchar *blurb,
  1049. GType param_type,
  1050. GParamFlags flags);
  1051. GLIB_AVAILABLE_IN_ALL
  1052. GParamSpec* g_param_spec_boxed (const gchar *name,
  1053. const gchar *nick,
  1054. const gchar *blurb,
  1055. GType boxed_type,
  1056. GParamFlags flags);
  1057. GLIB_AVAILABLE_IN_ALL
  1058. GParamSpec* g_param_spec_pointer (const gchar *name,
  1059. const gchar *nick,
  1060. const gchar *blurb,
  1061. GParamFlags flags);
  1062. GLIB_AVAILABLE_IN_ALL
  1063. GParamSpec* g_param_spec_value_array (const gchar *name,
  1064. const gchar *nick,
  1065. const gchar *blurb,
  1066. GParamSpec *element_spec,
  1067. GParamFlags flags);
  1068. GLIB_AVAILABLE_IN_ALL
  1069. GParamSpec* g_param_spec_object (const gchar *name,
  1070. const gchar *nick,
  1071. const gchar *blurb,
  1072. GType object_type,
  1073. GParamFlags flags);
  1074. GLIB_AVAILABLE_IN_ALL
  1075. GParamSpec* g_param_spec_override (const gchar *name,
  1076. GParamSpec *overridden);
  1077. GLIB_AVAILABLE_IN_ALL
  1078. GParamSpec* g_param_spec_gtype (const gchar *name,
  1079. const gchar *nick,
  1080. const gchar *blurb,
  1081. GType is_a_type,
  1082. GParamFlags flags);
  1083. GLIB_AVAILABLE_IN_ALL
  1084. GParamSpec* g_param_spec_variant (const gchar *name,
  1085. const gchar *nick,
  1086. const gchar *blurb,
  1087. const GVariantType *type,
  1088. GVariant *default_value,
  1089. GParamFlags flags);
  1090. /* --- internal --- */
  1091. /* We prefix variable declarations so they can
  1092. * properly get exported in windows dlls.
  1093. */
  1094. #ifndef GOBJECT_VAR
  1095. # ifdef G_PLATFORM_WIN32
  1096. # ifdef GOBJECT_STATIC_COMPILATION
  1097. # define GOBJECT_VAR extern
  1098. # else /* !GOBJECT_STATIC_COMPILATION */
  1099. # ifdef GOBJECT_COMPILATION
  1100. # ifdef DLL_EXPORT
  1101. # define GOBJECT_VAR __declspec(dllexport)
  1102. # else /* !DLL_EXPORT */
  1103. # define GOBJECT_VAR extern
  1104. # endif /* !DLL_EXPORT */
  1105. # else /* !GOBJECT_COMPILATION */
  1106. # define GOBJECT_VAR extern __declspec(dllimport)
  1107. # endif /* !GOBJECT_COMPILATION */
  1108. # endif /* !GOBJECT_STATIC_COMPILATION */
  1109. # else /* !G_PLATFORM_WIN32 */
  1110. # define GOBJECT_VAR _GLIB_EXTERN
  1111. # endif /* !G_PLATFORM_WIN32 */
  1112. #endif /* GOBJECT_VAR */
  1113. GOBJECT_VAR GType *g_param_spec_types;
  1114. G_END_DECLS
  1115. #endif /* __G_PARAMSPECS_H__ */