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