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