1 /* 2 * This file is part of gtkD. 3 * 4 * gtkD is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU Lesser General Public License 6 * as published by the Free Software Foundation; either version 3 7 * of the License, or (at your option) any later version, with 8 * some exceptions, please read the COPYING file. 9 * 10 * gtkD is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU Lesser General Public License for more details. 14 * 15 * You should have received a copy of the GNU Lesser General Public License 16 * along with gtkD; if not, write to the Free Software 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA 18 */ 19 20 // generated automatically - do not change 21 // find conversion definition on APILookup.txt 22 // implement new conversion functionalities on the wrap.utils pakage 23 24 module gtkc.gobjecttypes; 25 26 27 public import gtkc.glibtypes; 28 29 alias void GTypeCValue; 30 31 32 33 // G_TYPE_* 34 enum GType : size_t 35 { 36 INVALID = 0<<2, 37 NONE = 1<<2, 38 INTERFACE = 2<<2, 39 CHAR = 3<<2, 40 UCHAR = 4<<2, 41 BOOLEAN = 5<<2, 42 INT = 6<<2, 43 UINT = 7<<2, 44 LONG = 8<<2, 45 ULONG = 9<<2, 46 INT64 = 10<<2, 47 UINT64 = 11<<2, 48 ENUM = 12<<2, 49 FLAGS = 13<<2, 50 FLOAT = 14<<2, 51 DOUBLE = 15<<2, 52 STRING = 16<<2, 53 POINTER = 17<<2, 54 BOXED = 18<<2, 55 PARAM = 19<<2, 56 OBJECT = 20<<2, 57 VARIANT = 21<<2, 58 59 } 60 61 62 /** 63 * typedef gchar** GStrv; 64 * A C representable type name for G_TYPE_STRV. 65 * See Also 66 * GParamSpecBoxed, g_param_spec_boxed() 67 */ 68 public alias char** GStrv; 69 70 /** 71 * typedef gchar* gchararray; 72 * A C representable type name for G_TYPE_STRING. 73 */ 74 public alias char* gchararray; 75 76 /** 77 * typedef GClosureMarshal GSignalCMarshaller; 78 * This is the signature of marshaller functions, required to marshall 79 * arrays of parameter values to signal emissions into C language callback 80 * invocations. It is merely an alias to GClosureMarshal since the GClosure 81 * mechanism takes over responsibility of actual function invocation for the 82 * signal system. 83 */ 84 public alias GClosureMarshal GSignalCMarshaller; 85 86 /** 87 * typedef GVaClosureMarshal GSignalCVaMarshaller; 88 * This is the signature of va_list marshaller functions, an optional 89 * marshaller that can be used in some situations to avoid 90 * marshalling the signal argument into GValues. 91 */ 92 public alias GVaClosureMarshal GSignalCVaMarshaller; 93 /** 94 * Warning 95 * GTypeDebugFlags has been deprecated since version 2.36 and should not be used in newly-written code. g_type_init() is now done automatically 96 * These flags used to be passed to g_type_init_with_debug_flags() which 97 * is now deprecated. 98 * If you need to enable debugging features, use the GOBJECT_DEBUG 99 * environment variable. 100 * G_TYPE_DEBUG_NONE 101 * Print no messages. 102 * G_TYPE_DEBUG_OBJECTS 103 * Print messages about object bookkeeping. 104 * G_TYPE_DEBUG_SIGNALS 105 * Print messages about signal emissions. 106 * G_TYPE_DEBUG_MASK 107 * Mask covering all debug flags. 108 */ 109 public enum GTypeDebugFlags 110 { 111 NONE = 0, 112 OBJECTS = 1 << 0, 113 SIGNALS = 1 << 1, 114 MASK = 0x03 115 } 116 alias GTypeDebugFlags TypeDebugFlags; 117 118 /** 119 * Bit masks used to check or determine characteristics of a type. 120 * G_TYPE_FLAG_ABSTRACT 121 * Indicates an abstract type. No instances can be 122 * created for an abstract type. 123 * G_TYPE_FLAG_VALUE_ABSTRACT 124 * Indicates an abstract value type, i.e. a type 125 * that introduces a value table, but can't be used for 126 * g_value_init(). 127 */ 128 public enum GTypeFlags 129 { 130 ABSTRACT = (1 << 4), 131 VALUE_ABSTRACT = (1 << 5) 132 } 133 alias GTypeFlags TypeFlags; 134 135 /** 136 * Bit masks used to check or determine specific characteristics of a 137 * fundamental type. 138 * G_TYPE_FLAG_CLASSED 139 * Indicates a classed type. 140 * G_TYPE_FLAG_INSTANTIATABLE 141 * Indicates an instantiable type (implies classed). 142 * G_TYPE_FLAG_DERIVABLE 143 * Indicates a flat derivable type. 144 * G_TYPE_FLAG_DEEP_DERIVABLE 145 * Indicates a deep derivable type (implies derivable). 146 */ 147 public enum GTypeFundamentalFlags 148 { 149 FLAG_CLASSED = (1 << 0), 150 FLAG_INSTANTIATABLE = (1 << 1), 151 FLAG_DERIVABLE = (1 << 2), 152 FLAG_DEEP_DERIVABLE = (1 << 3) 153 } 154 alias GTypeFundamentalFlags TypeFundamentalFlags; 155 156 /** 157 * Through the GParamFlags flag values, certain aspects of parameters 158 * can be configured. See also G_PARAM_READWRITE and G_PARAM_STATIC_STRINGS. 159 * G_PARAM_READABLE 160 * the parameter is readable 161 * G_PARAM_WRITABLE 162 * the parameter is writable 163 * G_PARAM_CONSTRUCT 164 * the parameter will be set upon object construction 165 * G_PARAM_CONSTRUCT_ONLY 166 * the parameter will only be set upon object construction 167 * G_PARAM_LAX_VALIDATION 168 * upon parameter conversion (see g_param_value_convert()) 169 * strict validation is not required 170 * G_PARAM_STATIC_NAME 171 * the string used as name when constructing the 172 * parameter is guaranteed to remain valid and 173 * unmodified for the lifetime of the parameter. 174 * Since 2.8 175 * G_PARAM_PRIVATE 176 * internal 177 * G_PARAM_STATIC_NICK 178 * the string used as nick when constructing the 179 * parameter is guaranteed to remain valid and 180 * unmmodified for the lifetime of the parameter. 181 * Since 2.8 182 * G_PARAM_STATIC_BLURB 183 * the string used as blurb when constructing the 184 * parameter is guaranteed to remain valid and 185 * unmodified for the lifetime of the parameter. 186 * Since 2.8 187 * G_PARAM_DEPRECATED 188 * the parameter is deprecated and will be removed 189 * in a future version. A warning will be generated if it is used 190 * while running with G_ENABLE_DIAGNOSTIC=1. 191 * Since 2.26 192 */ 193 public enum GParamFlags 194 { 195 READABLE = 1 << 0, 196 WRITABLE = 1 << 1, 197 CONSTRUCT = 1 << 2, 198 CONSTRUCT_ONLY = 1 << 3, 199 LAX_VALIDATION = 1 << 4, 200 STATIC_NAME = 1 << 5, 201 PRIVATE = STATIC_NAME, 202 STATIC_NICK = 1 << 6, 203 STATIC_BLURB = 1 << 7, 204 /+* User defined flags go up to 30 +/ 205 DEPRECATED = 1 << 31 206 } 207 alias GParamFlags ParamFlags; 208 209 /** 210 * The signal flags are used to specify a signal's behaviour, the overall 211 * signal description outlines how especially the RUN flags control the 212 * stages of a signal emission. 213 * G_SIGNAL_RUN_FIRST 214 * Invoke the object method handler in the first emission stage. 215 * G_SIGNAL_RUN_LAST 216 * Invoke the object method handler in the third emission stage. 217 * G_SIGNAL_RUN_CLEANUP 218 * Invoke the object method handler in the last emission stage. 219 * G_SIGNAL_NO_RECURSE 220 * Signals being emitted for an object while currently being in 221 * emission for this very object will not be emitted recursively, 222 * but instead cause the first emission to be restarted. 223 * G_SIGNAL_DETAILED 224 * This signal supports "::detail" appendices to the signal name 225 * upon handler connections and emissions. 226 * G_SIGNAL_ACTION 227 * Action signals are signals that may freely be emitted on alive 228 * objects from user code via g_signal_emit() and friends, without 229 * the need of being embedded into extra code that performs pre or 230 * post emission adjustments on the object. They can also be thought 231 * of as object methods which can be called generically by 232 * third-party code. 233 * G_SIGNAL_NO_HOOKS 234 * No emissions hooks are supported for this signal. 235 * G_SIGNAL_MUST_COLLECT 236 * Varargs signal emission will always collect the 237 * arguments, even if there are no signal handlers connected. Since 2.30. 238 * G_SIGNAL_DEPRECATED 239 * The signal is deprecated and will be removed 240 * in a future version. A warning will be generated if it is connected while 241 * running with G_ENABLE_DIAGNOSTIC=1. Since 2.32. 242 */ 243 public enum GSignalFlags 244 { 245 RUN_FIRST = 1 << 0, 246 RUN_LAST = 1 << 1, 247 RUN_CLEANUP = 1 << 2, 248 NO_RECURSE = 1 << 3, 249 DETAILED = 1 << 4, 250 ACTION = 1 << 5, 251 NO_HOOKS = 1 << 6, 252 MUST_COLLECT = 1 << 7, 253 DEPRECATED = 1 << 8 254 } 255 alias GSignalFlags SignalFlags; 256 257 /** 258 * The match types specify what g_signal_handlers_block_matched(), 259 * g_signal_handlers_unblock_matched() and g_signal_handlers_disconnect_matched() 260 * match signals by. 261 * G_SIGNAL_MATCH_ID 262 * The signal id must be equal. 263 * G_SIGNAL_MATCH_DETAIL 264 * The signal detail be equal. 265 * G_SIGNAL_MATCH_CLOSURE 266 * The closure must be the same. 267 * G_SIGNAL_MATCH_FUNC 268 * The C closure callback must be the same. 269 * G_SIGNAL_MATCH_DATA 270 * The closure data must be the same. 271 * G_SIGNAL_MATCH_UNBLOCKED 272 * Only unblocked signals may matched. 273 */ 274 public enum GSignalMatchType 275 { 276 ID = 1 << 0, 277 DETAIL = 1 << 1, 278 CLOSURE = 1 << 2, 279 FUNC = 1 << 3, 280 DATA = 1 << 4, 281 UNBLOCKED = 1 << 5 282 } 283 alias GSignalMatchType SignalMatchType; 284 285 /** 286 * The connection flags are used to specify the behaviour of a signal's 287 * connection. 288 * G_CONNECT_AFTER 289 * whether the handler should be called before or after the 290 * default handler of the signal. 291 * G_CONNECT_SWAPPED 292 * whether the instance and data should be swapped when 293 * calling the handler. 294 */ 295 public enum GConnectFlags 296 { 297 AFTER = 1 << 0, 298 SWAPPED = 1 << 1 299 } 300 alias GConnectFlags ConnectFlags; 301 302 /** 303 * Flags to be passed to g_object_bind_property() or 304 * g_object_bind_property_full(). 305 * This enumeration can be extended at later date. 306 * G_BINDING_DEFAULT 307 * The default binding; if the source property 308 * changes, the target property is updated with its value. 309 * G_BINDING_BIDIRECTIONAL 310 * Bidirectional binding; if either the 311 * property of the source or the property of the target changes, 312 * the other is updated. 313 * G_BINDING_SYNC_CREATE 314 * Synchronize the values of the source and 315 * target properties when creating the binding; the direction of 316 * the synchronization is always from the source to the target. 317 * G_BINDING_INVERT_BOOLEAN 318 * If the two properties being bound are 319 * booleans, setting one to TRUE will result in the other being 320 * set to FALSE and vice versa. This flag will only work for 321 * boolean properties, and cannot be used when passing custom 322 * transformation functions to g_object_bind_property_full(). 323 * Since 2.26 324 */ 325 public enum GBindingFlags 326 { 327 DEFAULT = 0, 328 BIDIRECTIONAL = 1 << 0, 329 SYNC_CREATE = 1 << 1, 330 INVERT_BOOLEAN = 1 << 2 331 } 332 alias GBindingFlags BindingFlags; 333 334 335 /** 336 * An opaque structure used as the base of all type instances. 337 */ 338 struct GTypeInstance 339 { 340 /*< private >*/ 341 GTypeClass* gClass; 342 } 343 344 /** 345 * An opaque structure used as the base of all classes. 346 */ 347 struct GTypeClass 348 { 349 /*< private >*/ 350 GType gType; 351 } 352 353 /** 354 * An opaque structure used as the base of all interface types. 355 */ 356 public struct GTypeInterface 357 { 358 GType gType; /* iface type */ 359 GType gInstanceType; 360 } 361 362 /** 363 * The class structure for the GObject type. 364 * Example4.Implementing singletons using a constructor 365 * static MySingleton *the_singleton = NULL; 366 * static GObject* 367 * my_singleton_constructor (GType type, 368 */ 369 public struct GObjectClass 370 { 371 GTypeClass gTypeClass; 372 /*< private >*/ 373 GSList* constructProperties; 374 /* seldomly overidden */ 375 extern(C) GObject* function(GType type,uint nConstructProperties,GObjectConstructParam *constructProperties) constructor; 376 /* overridable methods */ 377 extern(C) void function(GObject *object,uint propertyId,GValue *value,GParamSpec *pspec) setProperty; 378 extern(C) void function(GObject *object,uint propertyId,GValue *value,GParamSpec *pspec) getProperty; 379 extern(C) void function(GObject *object) dispose; 380 extern(C) void function(GObject *object) finalize; 381 /* seldomly overidden */ 382 extern(C) void function(GObject *object,uint nPspecs,GParamSpec **pspecs) dispatchPropertiesChanged; 383 /* signals */ 384 extern(C) void function(GObject *object,GParamSpec *pspec) notify; 385 /* called when done constructing */ 386 extern(C) void function(GObject *object) constructed; 387 /* padding */ 388 gpointer dummy[7]; 389 } 390 391 /** 392 * Main Gtk struct. 393 * All the fields in the GObject structure are private 394 * to the GObject implementation and should never be accessed directly. 395 */ 396 public struct GObject 397 { 398 GTypeInstance gTypeInstance; 399 400 /*< private >*/ 401 uint refCount; 402 GData* qdata; 403 } 404 405 struct GValue 406 { 407 version(Windows) 408 { 409 GType g_type; 410 union Data 411 { 412 gint v_int; 413 guint v_uint; 414 glong v_long; 415 gulong v_ulong; 416 gint64 v_int64; 417 guint64 v_uint64; 418 gfloat v_float; 419 gdouble v_double; 420 gpointer v_pointer; 421 }; 422 } 423 else 424 { 425 align(4) 426 { 427 GType g_type; 428 union Data 429 { 430 gint v_int; 431 guint v_uint; 432 glong v_long; 433 gulong v_ulong; 434 gint64 v_int64; 435 guint64 v_uint64; 436 gfloat v_float; 437 gdouble v_double; 438 gpointer v_pointer; 439 }; 440 } 441 } 442 Data data1; 443 Data data2; 444 } 445 446 /** 447 * This structure is used to provide the type system with the information 448 * required to initialize and destruct (finalize) a type's class and 449 * its instances. 450 * The initialized structure is passed to the g_type_register_static() function 451 * (or is copied into the provided GTypeInfo structure in the 452 * g_type_plugin_complete_type_info()). The type system will perform a deep 453 * copy of this structure, so its memory does not need to be persistent 454 * across invocation of g_type_register_static(). 455 * guint16 class_size; 456 * Size of the class structure (required for interface, classed and instantiatable types). 457 * GBaseInitFunc base_init; 458 * Location of the base initialization function (optional). 459 * GBaseFinalizeFunc base_finalize; 460 * Location of the base finalization function (optional). 461 * GClassInitFunc class_init; 462 * Location of the class initialization function for 463 * classed and instantiatable types. Location of the default vtable 464 * inititalization function for interface types. (optional) This function 465 * is used both to fill in virtual functions in the class or default vtable, 466 * and to do type-specific setup such as registering signals and object 467 * properties. 468 * GClassFinalizeFunc class_finalize; 469 * Location of the class finalization function for 470 * classed and instantiatable types. Location fo the default vtable 471 * finalization function for interface types. (optional) 472 * gconstpointer class_data; 473 * User-supplied data passed to the class init/finalize functions. 474 * guint16 instance_size; 475 * Size of the instance (object) structure (required for instantiatable types only). 476 * guint16 n_preallocs; 477 * Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the slice allocator now. 478 * GInstanceInitFunc instance_init; 479 * Location of the instance initialization function (optional, for instantiatable types only). 480 * const GTypeValueTable *value_table; 481 * A GTypeValueTable function table for generic handling of GValues of this type (usually only 482 * useful for fundamental types). 483 */ 484 public struct GTypeInfo 485 { 486 /+* iface types, classed types, instantiated types +/ 487 ushort classSize; 488 GBaseInitFunc baseInit; 489 GBaseFinalizeFunc baseFinalize; 490 /+* iface types, classed types, instantiated types +/ 491 GClassInitFunc classInit; 492 GClassFinalizeFunc classFinalize; 493 void* classData; 494 /+* instantiated types +/ 495 ushort instanceSize; 496 ushort nPreallocs; 497 GInstanceInitFunc instanceInit; 498 /+* value handling +/ 499 GTypeValueTable *valueTable; 500 } 501 502 503 /** 504 * A structure that provides information to the type system which is 505 * used specifically for managing fundamental types. 506 * GTypeFundamentalFlags type_flags; 507 * GTypeFundamentalFlags describing the characteristics of the fundamental type 508 */ 509 public struct GTypeFundamentalInfo 510 { 511 GTypeFundamentalFlags typeFlags; 512 } 513 514 515 /** 516 * A structure that provides information to the type system which is 517 * used specifically for managing interface types. 518 * GInterfaceInitFunc interface_init; 519 * location of the interface initialization function 520 * GInterfaceFinalizeFunc interface_finalize; 521 * location of the interface finalization function 522 * gpointer interface_data; 523 * user-supplied data passed to the interface init/finalize functions 524 */ 525 public struct GInterfaceInfo 526 { 527 GInterfaceInitFunc interfaceInit; 528 GInterfaceFinalizeFunc interfaceFinalize; 529 void* interfaceData; 530 } 531 532 533 /** 534 * value_init () 535 * Default initialize values contents by poking values 536 * directly into the value->data array. The data array of 537 * the GValue passed into this function was zero-filled 538 * with memset(), so no care has to 539 * be taken to free any 540 * old contents. E.g. for the implementation of a string 541 * value that may never be NULL, the implementation might 542 * look like: 543 * $(DDOC_COMMENT example) 544 * value_free () 545 * Free any old contents that might be left in the 546 * data array of the passed in value. No resources may 547 * remain allocated through the GValue contents after 548 * this function returns. E.g. for our above string type: 549 * $(DDOC_COMMENT example) 550 * value_copy () 551 * dest_value is a GValue with zero-filled data section 552 * and src_value is a properly setup GValue of same or 553 * derived type. 554 * The purpose of this function is to copy the contents of 555 * src_value into dest_value in a way, that even after 556 * src_value has been freed, the contents of dest_value 557 * remain valid. String type example: 558 * $(DDOC_COMMENT example) 559 * value_peek_pointer () 560 * If the value contents fit into a pointer, such as objects 561 * or strings, return this pointer, so the caller can peek at 562 * the current contents. To extend on our above string example: 563 * $(DDOC_COMMENT example) 564 * const gchar *collect_format; 565 * A string format describing how to collect the contents of 566 * this value bit-by-bit. Each character in the format represents 567 * an argument to be collected, and the characters themselves indicate 568 * the type of the argument. Currently supported arguments are: 569 * 'i' - Integers. passed as collect_values[].v_int. 570 * 'l' - Longs. passed as collect_values[].v_long. 571 * 'd' - Doubles. passed as collect_values[].v_double. 572 * 'p' - Pointers. passed as collect_values[].v_pointer. 573 * It should be noted that for variable argument list construction, 574 * ANSI C promotes every type smaller than an integer to an int, and 575 * floats to doubles. So for collection of short int or char, 'i' 576 * needs to be used, and for collection of floats 'd'. 577 * collect_value () 578 * The collect_value() function is responsible for converting the 579 * values collected from a variable argument list into contents 580 * suitable for storage in a GValue. This function should setup 581 * value similar to value_init(); e.g. for a string value that 582 * does not allow NULL pointers, it needs to either spew an error, 583 * or do an implicit conversion by storing an empty string. 584 * The value passed in to this function has a zero-filled data 585 * array, so just like for value_init() it is guaranteed to not 586 * contain any old contents that might need freeing. 587 * n_collect_values is exactly the string length of collect_format, 588 * and collect_values is an array of unions GTypeCValue with 589 * length n_collect_values, containing the collected values 590 * according to collect_format. 591 * collect_flags is an argument provided as a hint by the caller. 592 * It may contain the flag G_VALUE_NOCOPY_CONTENTS indicating, 593 * that the collected value contents may be considered "static" 594 * for the duration of the value lifetime. 595 * Thus an extra copy of the contents stored in collect_values is 596 * not required for assignment to value. 597 * For our above string example, we continue with: 598 * $(DDOC_COMMENT example) 599 * It should be noted, that it is generally a bad idea to follow the 600 * G_VALUE_NOCOPY_CONTENTS hint for reference counted types. Due to 601 * reentrancy requirements and reference count assertions performed 602 * by the signal emission code, reference counts should always be 603 * incremented for reference counted contents stored in the value->data 604 * array. To deviate from our string example for a moment, and taking 605 * a look at an exemplary implementation for collect_value() of 606 * GObject: 607 * $(DDOC_COMMENT example) 608 * The reference count for valid objects is always incremented, 609 * regardless of collect_flags. For invalid objects, the example 610 * const gchar *lcopy_format; 611 * lcopy_value () 612 */ 613 public struct GTypeValueTable 614 { 615 extern(C) void function(GValue* value) valueInit; 616 extern(C) void function(GValue* value) valueFree; 617 extern(C) void function(GValue* srcValue, GValue* destValue) valueCopy; 618 /+* varargs functionality (optional) +/ 619 extern(C) void* function(GValue* value) valuePeekPointer; 620 char *collectFormat; 621 extern(C) char* function(GValue* value, uint nCollectValues, GTypeCValue* collectValues, uint collectFlags) collectValue; 622 char *lcopyFormat; 623 extern(C) char* function(GValue* value, uint nCollectValues, GTypeCValue* collectValues, uint collectFlags) lcopyValue; 624 } 625 626 627 /** 628 * A structure holding information for a specific type. It is 629 * filled in by the g_type_query() function. 630 * GType type; 631 * the GType value of the type. 632 * const gchar *type_name; 633 * the name of the type. 634 * guint class_size; 635 * the size of the class structure. 636 * guint instance_size; 637 * the size of the instance structure. 638 */ 639 public struct GTypeQuery 640 { 641 GType type; 642 char *typeName; 643 uint classSize; 644 uint instanceSize; 645 } 646 647 648 /** 649 * Main Gtk struct. 650 * The GTypePlugin typedef is used as a placeholder 651 * for objects that implement the GTypePlugin 652 * interface. 653 */ 654 public struct GTypePlugin{} 655 656 657 /** 658 * The GTypePlugin interface is used by the type system in order to handle 659 * the lifecycle of dynamically loaded types. 660 * GTypePluginUse use_plugin; 661 * Increases the use count of the plugin. 662 * GTypePluginUnuse unuse_plugin; 663 * Decreases the use count of the plugin. 664 * GTypePluginCompleteTypeInfo complete_type_info; 665 * Fills in the GTypeInfo and 666 * GTypeValueTable structs for the type. The structs are initialized 667 * with memset(s, 0, sizeof (s)) before calling 668 * this function. 669 * GTypePluginCompleteInterfaceInfo complete_interface_info; 670 * Fills in missing parts of the GInterfaceInfo 671 * for the interface. The structs is initialized with 672 * memset(s, 0, sizeof (s)) before calling 673 * this function. 674 */ 675 public struct GTypePluginClass 676 { 677 GTypePluginUse usePlugin; 678 GTypePluginUnuse unusePlugin; 679 GTypePluginCompleteTypeInfo completeTypeInfo; 680 GTypePluginCompleteInterfaceInfo completeInterfaceInfo; 681 } 682 683 684 /** 685 * Main Gtk struct. 686 * The members of the GTypeModule structure should not 687 * be accessed directly, except for the name field. 688 * gchar *name; 689 * the name of the module 690 */ 691 public struct GTypeModule 692 { 693 char *name; 694 } 695 696 697 /** 698 * In order to implement dynamic loading of types based on GTypeModule, 699 * the load and unload functions in GTypeModuleClass must be implemented. 700 * GObjectClass parent_class; 701 * the parent class 702 * load () 703 * loads the module and registers one or more types using 704 * g_type_module_register_type(). 705 * unload () 706 * unloads the module 707 */ 708 public struct GTypeModuleClass 709 { 710 GObjectClass parentClass; 711 extern(C) int function(GTypeModule* modul) load; 712 extern(C) void function(GTypeModule* modul) unload; 713 } 714 715 716 /** 717 * The GObjectConstructParam struct is an auxiliary 718 * structure used to hand GParamSpec/GValue pairs to the constructor of 719 * a GObjectClass. 720 * GParamSpec *pspec; 721 * the GParamSpec of the construct parameter 722 * GValue *value; 723 * the value to set the parameter to 724 */ 725 public struct GObjectConstructParam 726 { 727 GParamSpec *pspec; 728 GValue *value; 729 } 730 731 732 /** 733 * The GParameter struct is an auxiliary structure used 734 * to hand parameter name/value pairs to g_object_newv(). 735 * const gchar *name; 736 * the parameter name 737 * GValue value; 738 * the parameter value 739 */ 740 public struct GParameter 741 { 742 char *name; 743 GValue value; 744 } 745 746 747 /** 748 * All the fields in the GInitiallyUnowned structure 749 * are private to the GInitiallyUnowned implementation and should never be 750 * accessed directly. 751 */ 752 public struct GInitiallyUnowned{} 753 754 755 /** 756 * The class structure for the GInitiallyUnowned type. 757 */ 758 public struct GInitiallyUnownedClass{} 759 760 761 /** 762 * A structure containing a weak reference to a GObject. It can either 763 * be empty (i.e. point to NULL), or point to an object for as long as 764 * at least one "strong" reference to that object exists. Before the 765 * object's GObjectClass.dispose method is called, every GWeakRef 766 * associated with becomes empty (i.e. points to NULL). 767 * Like GValue, GWeakRef can be statically allocated, stack- or 768 * heap-allocated, or embedded in larger structures. 769 * Unlike g_object_weak_ref() and g_object_add_weak_pointer(), this weak 770 * reference is thread-safe: converting a weak pointer to a reference is 771 * atomic with respect to invalidation of weak pointers to destroyed 772 * objects. 773 * If the object's GObjectClass.dispose method results in additional 774 * references to the object being held, any GWeakRefs taken 775 * before it was disposed will continue to point to NULL. If 776 * GWeakRefs are taken after the object is disposed and 777 * re-referenced, they will continue to point to it until its refcount 778 * goes back to zero, at which point they too will be invalidated. 779 */ 780 public struct GWeakRef{} 781 782 783 /** 784 * The class of an enumeration type holds information about its 785 * possible values. 786 * GTypeClass g_type_class; 787 * the parent class 788 * gint minimum; 789 * the smallest possible value. 790 * gint maximum; 791 * the largest possible value. 792 * guint n_values; 793 * the number of possible values. 794 * GEnumValue *values; 795 * an array of GEnumValue structs describing the 796 * individual values. 797 */ 798 public struct GEnumClass 799 { 800 GTypeClass gTypeClass; 801 int minimum; 802 int maximum; 803 uint nValues; 804 GEnumValue *values; 805 } 806 807 808 /** 809 * The class of a flags type holds information about its 810 * possible values. 811 * GTypeClass g_type_class; 812 * the parent class 813 * guint mask; 814 * a mask covering all possible values. 815 * guint n_values; 816 * the number of possible values. 817 * GFlagsValue *values; 818 * an array of GFlagsValue structs describing the 819 * individual values. 820 */ 821 public struct GFlagsClass 822 { 823 GTypeClass gTypeClass; 824 uint mask; 825 uint nValues; 826 GFlagsValue *values; 827 } 828 829 830 /** 831 * Main Gtk struct. 832 * A structure which contains a single enum value, its name, and its 833 * nickname. 834 * gint value; 835 * the enum value 836 * const gchar *value_name; 837 * the name of the value 838 * const gchar *value_nick; 839 * the nickname of the value 840 */ 841 public struct GEnumValue 842 { 843 int value; 844 char *valueName; 845 char *valueNick; 846 } 847 848 849 /** 850 * A structure which contains a single flags value, its name, and its 851 * nickname. 852 * guint value; 853 * the flags value 854 * const gchar *value_name; 855 * the name of the value 856 * const gchar *value_nick; 857 * the nickname of the value 858 */ 859 public struct GFlagsValue 860 { 861 uint value; 862 char *valueName; 863 char *valueNick; 864 } 865 866 867 /** 868 * A GParamSpec derived structure that contains the meta data for boolean properties. 869 * GParamSpec parent_instance; 870 * private GParamSpec portion 871 * gboolean default_value; 872 * default value for the property specified 873 */ 874 public struct GParamSpecBoolean 875 { 876 GParamSpec parentInstance; 877 int defaultValue; 878 } 879 880 881 /** 882 * A GParamSpec derived structure that contains the meta data for character properties. 883 * GParamSpec parent_instance; 884 * private GParamSpec portion 885 * gint8 minimum; 886 * minimum value for the property specified 887 * gint8 maximum; 888 * maximum value for the property specified 889 * gint8 default_value; 890 * default value for the property specified 891 */ 892 public struct GParamSpecChar 893 { 894 GParamSpec parentInstance; 895 byte minimum; 896 byte maximum; 897 byte defaultValue; 898 } 899 900 901 /** 902 * A GParamSpec derived structure that contains the meta data for unsigned character properties. 903 * GParamSpec parent_instance; 904 * private GParamSpec portion 905 * guint8 minimum; 906 * minimum value for the property specified 907 * guint8 maximum; 908 * maximum value for the property specified 909 * guint8 default_value; 910 * default value for the property specified 911 */ 912 public struct GParamSpecUChar 913 { 914 GParamSpec parentInstance; 915 ubyte minimum; 916 ubyte maximum; 917 ubyte defaultValue; 918 } 919 920 921 /** 922 * A GParamSpec derived structure that contains the meta data for integer properties. 923 * GParamSpec parent_instance; 924 * private GParamSpec portion 925 * gint minimum; 926 * minimum value for the property specified 927 * gint maximum; 928 * maximum value for the property specified 929 * gint default_value; 930 * default value for the property specified 931 */ 932 public struct GParamSpecInt 933 { 934 GParamSpec parentInstance; 935 int minimum; 936 int maximum; 937 int defaultValue; 938 } 939 940 941 /** 942 * A GParamSpec derived structure that contains the meta data for unsigned integer properties. 943 * GParamSpec parent_instance; 944 * private GParamSpec portion 945 * guint minimum; 946 * minimum value for the property specified 947 * guint maximum; 948 * maximum value for the property specified 949 * guint default_value; 950 * default value for the property specified 951 */ 952 public struct GParamSpecUInt 953 { 954 GParamSpec parentInstance; 955 uint minimum; 956 uint maximum; 957 uint defaultValue; 958 } 959 960 961 /** 962 * A GParamSpec derived structure that contains the meta data for long integer properties. 963 * GParamSpec parent_instance; 964 * private GParamSpec portion 965 * glong minimum; 966 * minimum value for the property specified 967 * glong maximum; 968 * maximum value for the property specified 969 * glong default_value; 970 * default value for the property specified 971 */ 972 public struct GParamSpecLong 973 { 974 GParamSpec parentInstance; 975 glong minimum; 976 glong maximum; 977 glong defaultValue; 978 } 979 980 981 /** 982 * A GParamSpec derived structure that contains the meta data for unsigned long integer properties. 983 * GParamSpec parent_instance; 984 * private GParamSpec portion 985 * gulong minimum; 986 * minimum value for the property specified 987 * gulong maximum; 988 * maximum value for the property specified 989 * gulong default_value; 990 * default value for the property specified 991 */ 992 public struct GParamSpecULong 993 { 994 GParamSpec parentInstance; 995 gulong minimum; 996 gulong maximum; 997 gulong defaultValue; 998 } 999 1000 1001 /** 1002 * A GParamSpec derived structure that contains the meta data for 64bit integer properties. 1003 * GParamSpec parent_instance; 1004 * private GParamSpec portion 1005 * gint64 minimum; 1006 * minimum value for the property specified 1007 * gint64 maximum; 1008 * maximum value for the property specified 1009 * gint64 default_value; 1010 * default value for the property specified 1011 */ 1012 public struct GParamSpecInt64 1013 { 1014 GParamSpec parentInstance; 1015 long minimum; 1016 long maximum; 1017 long defaultValue; 1018 } 1019 1020 1021 /** 1022 * A GParamSpec derived structure that contains the meta data for unsigned 64bit integer properties. 1023 * GParamSpec parent_instance; 1024 * private GParamSpec portion 1025 * guint64 minimum; 1026 * minimum value for the property specified 1027 * guint64 maximum; 1028 * maximum value for the property specified 1029 * guint64 default_value; 1030 * default value for the property specified 1031 */ 1032 public struct GParamSpecUInt64 1033 { 1034 GParamSpec parentInstance; 1035 ulong minimum; 1036 ulong maximum; 1037 ulong defaultValue; 1038 } 1039 1040 1041 /** 1042 * A GParamSpec derived structure that contains the meta data for float properties. 1043 * GParamSpec parent_instance; 1044 * private GParamSpec portion 1045 * gfloat minimum; 1046 * minimum value for the property specified 1047 * gfloat maximum; 1048 * maximum value for the property specified 1049 * gfloat default_value; 1050 * default value for the property specified 1051 * gfloat epsilon; 1052 * values closer than epsilon will be considered identical 1053 * by g_param_values_cmp(); the default value is 1e-30. 1054 */ 1055 public struct GParamSpecFloat 1056 { 1057 GParamSpec parentInstance; 1058 float minimum; 1059 float maximum; 1060 float defaultValue; 1061 float epsilon; 1062 } 1063 1064 1065 /** 1066 * A GParamSpec derived structure that contains the meta data for double properties. 1067 * GParamSpec parent_instance; 1068 * private GParamSpec portion 1069 * gdouble minimum; 1070 * minimum value for the property specified 1071 * gdouble maximum; 1072 * maximum value for the property specified 1073 * gdouble default_value; 1074 * default value for the property specified 1075 * gdouble epsilon; 1076 * values closer than epsilon will be considered identical 1077 * by g_param_values_cmp(); the default value is 1e-90. 1078 */ 1079 public struct GParamSpecDouble 1080 { 1081 GParamSpec parentInstance; 1082 double minimum; 1083 double maximum; 1084 double defaultValue; 1085 double epsilon; 1086 } 1087 1088 1089 /** 1090 * A GParamSpec derived structure that contains the meta data for enum 1091 * properties. 1092 * GParamSpec parent_instance; 1093 * private GParamSpec portion 1094 * GEnumClass *enum_class; 1095 * the GEnumClass for the enum 1096 * gint default_value; 1097 * default value for the property specified 1098 */ 1099 public struct GParamSpecEnum 1100 { 1101 GParamSpec parentInstance; 1102 GEnumClass *enumClass; 1103 int defaultValue; 1104 } 1105 1106 1107 /** 1108 * A GParamSpec derived structure that contains the meta data for flags 1109 * properties. 1110 * GParamSpec parent_instance; 1111 * private GParamSpec portion 1112 * GFlagsClass *flags_class; 1113 * the GFlagsClass for the flags 1114 * guint default_value; 1115 * default value for the property specified 1116 */ 1117 public struct GParamSpecFlags 1118 { 1119 GParamSpec parentInstance; 1120 GFlagsClass *flagsClass; 1121 uint defaultValue; 1122 } 1123 1124 1125 /** 1126 * A GParamSpec derived structure that contains the meta data for string 1127 * properties. 1128 * GParamSpec parent_instance; 1129 * private GParamSpec portion 1130 * gchar *default_value; 1131 * default value for the property specified 1132 * gchar *cset_first; 1133 * a string containing the allowed values for the first byte 1134 * gchar *cset_nth; 1135 * a string containing the allowed values for the subsequent bytes 1136 * gchar substitutor; 1137 * the replacement byte for bytes which don't match cset_first or cset_nth. 1138 * guint null_fold_if_empty : 1; 1139 * replace empty string by NULL 1140 * guint ensure_non_null : 1; 1141 * replace NULL strings by an empty string 1142 */ 1143 public struct GParamSpecString 1144 { 1145 GParamSpec parentInstance; 1146 char *defaultValue; 1147 char *csetFirst; 1148 char *csetNth; 1149 char substitutor; 1150 uint bitfield0; 1151 //uint nullFoldIfEmpty : 1; 1152 //uint ensureNonNull : 1; 1153 } 1154 1155 1156 /** 1157 * A GParamSpec derived structure that contains the meta data for G_TYPE_PARAM 1158 * properties. 1159 * GParamSpec parent_instance; 1160 * private GParamSpec portion 1161 */ 1162 public struct GParamSpecParam 1163 { 1164 GParamSpec parentInstance; 1165 } 1166 1167 1168 /** 1169 * A GParamSpec derived structure that contains the meta data for boxed properties. 1170 * GParamSpec parent_instance; 1171 * private GParamSpec portion 1172 */ 1173 public struct GParamSpecBoxed 1174 { 1175 GParamSpec parentInstance; 1176 } 1177 1178 1179 /** 1180 * A GParamSpec derived structure that contains the meta data for pointer properties. 1181 * GParamSpec parent_instance; 1182 * private GParamSpec portion 1183 */ 1184 public struct GParamSpecPointer 1185 { 1186 GParamSpec parentInstance; 1187 } 1188 1189 1190 /** 1191 * A GParamSpec derived structure that contains the meta data for object properties. 1192 * GParamSpec parent_instance; 1193 * private GParamSpec portion 1194 */ 1195 public struct GParamSpecObject 1196 { 1197 GParamSpec parentInstance; 1198 } 1199 1200 1201 /** 1202 * A GParamSpec derived structure that contains the meta data for unichar (unsigned integer) properties. 1203 * GParamSpec parent_instance; 1204 * private GParamSpec portion 1205 * gunichar default_value; 1206 * default value for the property specified 1207 */ 1208 public struct GParamSpecUnichar 1209 { 1210 GParamSpec parentInstance; 1211 gunichar defaultValue; 1212 } 1213 1214 1215 /** 1216 * A GParamSpec derived structure that contains the meta data for GValueArray properties. 1217 * GParamSpec parent_instance; 1218 * private GParamSpec portion 1219 * GParamSpec *element_spec; 1220 * a GParamSpec describing the elements contained in arrays of this property, may be NULL 1221 * guint fixed_n_elements; 1222 * if greater than 0, arrays of this property will always have this many elements 1223 */ 1224 public struct GParamSpecValueArray 1225 { 1226 GParamSpec parentInstance; 1227 GParamSpec *elementSpec; 1228 uint fixedNElements; 1229 } 1230 1231 1232 /** 1233 * This is a type of GParamSpec type that simply redirects operations to 1234 * another paramspec. All operations other than getting or 1235 * setting the value are redirected, including accessing the nick and 1236 * blurb, validating a value, and so forth. See 1237 * g_param_spec_get_redirect_target() for retrieving the overidden 1238 * property. GParamSpecOverride is used in implementing 1239 * g_object_class_override_property(), and will not be directly useful 1240 * unless you are implementing a new base type similar to GObject. 1241 * Since 2.4 1242 */ 1243 public struct GParamSpecOverride{} 1244 1245 1246 /** 1247 * A GParamSpec derived structure that contains the meta data for GType properties. 1248 * GParamSpec parent_instance; 1249 * private GParamSpec portion 1250 * GType is_a_type; 1251 * a GType whose subtypes can occur as values 1252 * Since 2.10 1253 */ 1254 public struct GParamSpecGType 1255 { 1256 GParamSpec parentInstance; 1257 GType isAType; 1258 } 1259 1260 1261 /** 1262 * A GParamSpec derived structure that contains the meta data for GVariant properties. 1263 * GParamSpec parent_instance; 1264 * private GParamSpec portion 1265 * GVariantType *type; 1266 * a GVariantType, or NULL 1267 * GVariant *default_value; 1268 * a GVariant, or NULL 1269 * Since 2.26 1270 */ 1271 public struct GParamSpecVariant 1272 { 1273 GParamSpec parentInstance; 1274 GVariantType *type; 1275 GVariant *defaultValue; 1276 } 1277 1278 1279 /** 1280 * Main Gtk struct. 1281 * All other fields of the GParamSpec struct are private and 1282 * should not be used directly. 1283 * GTypeInstance g_type_instance; 1284 * private GTypeInstance portion 1285 * const gchar *name; 1286 * name of this parameter: always an interned string 1287 * GParamFlags flags; 1288 * GParamFlags flags for this parameter 1289 * GType value_type; 1290 * the GValue type for this parameter 1291 * GType owner_type; 1292 * GType type that uses (introduces) this parameter 1293 */ 1294 public struct GParamSpec 1295 { 1296 GTypeInstance gTypeInstance; 1297 char *name; /+* interned string +/ 1298 GParamFlags flags; 1299 GType valueType; 1300 GType ownerType; /+* class or iface using this property +/ 1301 } 1302 1303 1304 /** 1305 * The class structure for the GParamSpec type. 1306 * Normally, GParamSpec classes are filled by 1307 * g_param_type_register_static(). 1308 * GTypeClass g_type_class; 1309 * the parent class 1310 * GType value_type; 1311 * the GValue type for this parameter 1312 * finalize () 1313 * The instance finalization function (optional), should chain 1314 * up to the finalize method of the parent class. 1315 * value_set_default () 1316 * Resets a value to the default value for this type 1317 * (recommended, the default is g_value_reset()), see 1318 * g_param_value_set_default(). 1319 * value_validate () 1320 * Ensures that the contents of value comply with the 1321 * specifications set out by this type (optional), see 1322 * g_param_value_validate(). 1323 * values_cmp () 1324 * Compares value1 with value2 according to this type 1325 * (recommended, the default is memcmp()), see g_param_values_cmp(). 1326 */ 1327 public struct GParamSpecClass 1328 { 1329 GTypeClass gTypeClass; 1330 GType valueType; 1331 extern(C) void function(GParamSpec* pspec) finalize; 1332 /+* GParam methods +/ 1333 extern(C) void function(GParamSpec* pspec, GValue* value) valueSetDefault; 1334 extern(C) int function(GParamSpec* pspec, GValue* value) valueValidate; 1335 extern(C) int function(GParamSpec* pspec, GValue* value1, GValue* value2) valuesCmp; 1336 } 1337 1338 1339 /** 1340 * This structure is used to provide the type system with the information 1341 * required to initialize and destruct (finalize) a parameter's class and 1342 * instances thereof. 1343 * The initialized structure is passed to the g_param_type_register_static() 1344 * The type system will perform a deep copy of this structure, so its memory 1345 * does not need to be persistent across invocation of 1346 * g_param_type_register_static(). 1347 * guint16 instance_size; 1348 * Size of the instance (object) structure. 1349 * guint16 n_preallocs; 1350 * Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the slice allocator now. 1351 * instance_init () 1352 * Location of the instance initialization function (optional). 1353 * GType value_type; 1354 * The GType of values conforming to this GParamSpec 1355 * finalize () 1356 * The instance finalization function (optional). 1357 * value_set_default () 1358 * Resets a value to the default value for pspec 1359 * (recommended, the default is g_value_reset()), see 1360 * g_param_value_set_default(). 1361 * value_validate () 1362 * Ensures that the contents of value comply with the 1363 * specifications set out by pspec (optional), see 1364 * g_param_value_validate(). 1365 * values_cmp () 1366 * Compares value1 with value2 according to pspec 1367 * (recommended, the default is memcmp()), see g_param_values_cmp(). 1368 */ 1369 public struct GParamSpecTypeInfo 1370 { 1371 /+* type system portion +/ 1372 ushort instanceSize; /+* obligatory +/ 1373 ushort nPreallocs; /+* optional +/ 1374 extern(C) void function(GParamSpec* pspec) instanceInit; /+* optional +/ 1375 /+* class portion +/ 1376 GType valueType; /+* obligatory +/ 1377 extern(C) void function(GParamSpec* pspec) finalize; /+* optional +/ 1378 extern(C) void function(GParamSpec* pspec, /+* recommended +/GValue *value) valueSetDefault; 1379 extern(C) int function(GParamSpec* pspec, /+* optional +/GValue *value) valueValidate; 1380 extern(C) int function(GParamSpec* pspec, /+* recommended +/GValue *value1, GValue* value2) valuesCmp; 1381 } 1382 1383 1384 /** 1385 * A GParamSpecPool maintains a collection of GParamSpecs which can be 1386 * quickly accessed by owner and name. The implementation of the GObject property 1387 * system uses such a pool to store the GParamSpecs of the properties all object 1388 * types. 1389 */ 1390 public struct GParamSpecPool{} 1391 1392 1393 /** 1394 * The GSignalInvocationHint structure is used to pass on additional information 1395 * to callbacks during a signal emission. 1396 * guint signal_id; 1397 * The signal id of the signal invoking the callback 1398 * GQuark detail; 1399 * The detail passed on for this emission 1400 * GSignalFlags run_type; 1401 * The stage the signal emission is currently in, this 1402 * field will contain one of G_SIGNAL_RUN_FIRST, 1403 * G_SIGNAL_RUN_LAST or G_SIGNAL_RUN_CLEANUP. 1404 */ 1405 public struct GSignalInvocationHint 1406 { 1407 uint signalId; 1408 GQuark detail; 1409 GSignalFlags runType; 1410 } 1411 1412 1413 /** 1414 * A structure holding in-depth information for a specific signal. It is 1415 * filled in by the g_signal_query() function. 1416 * guint signal_id; 1417 * The signal id of the signal being queried, or 0 if the 1418 * signal to be queried was unknown. 1419 * const gchar *signal_name; 1420 * The signal name. 1421 * GType itype; 1422 * The interface/instance type that this signal can be emitted for. 1423 * GSignalFlags signal_flags; 1424 * The signal flags as passed in to g_signal_new(). 1425 * GType return_type; 1426 * The return type for user callbacks. 1427 * guint n_params; 1428 * The number of parameters that user callbacks take. 1429 * const GType *param_types; 1430 * The individual parameter types for 1431 * user callbacks, note that the effective callback signature is: 1432 * @return_type callback (gpointer data1, 1433 * [param_types param_names,] 1434 * gpointer data2); 1435 * . [array length=n_params] 1436 */ 1437 public struct GSignalQuery 1438 { 1439 uint signalId; 1440 char *signalName; 1441 GType itype; 1442 GSignalFlags signalFlags; 1443 GType returnType; /+* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag +/ 1444 uint nParams; 1445 GType *paramTypes; /+* mangled with G_SIGNAL_TYPE_STATIC_SCOPE flag +/ 1446 } 1447 1448 1449 /** 1450 * Main Gtk struct. 1451 * A GClosure represents a callback supplied by the programmer. 1452 * volatile guint in_marshal : 1; 1453 * Indicates whether the closure is currently being invoked with 1454 * g_closure_invoke() 1455 * volatile guint is_invalid : 1; 1456 * Indicates whether the closure has been invalidated by 1457 * g_closure_invalidate() 1458 */ 1459 public struct GClosure 1460 { 1461 uint bitfield0; 1462 //uint inMarshal : 1; 1463 //uint isInvalid : 1; 1464 } 1465 1466 1467 /** 1468 * A GCClosure is a specialization of GClosure for C function callbacks. 1469 * GClosure closure; 1470 * the GClosure 1471 * gpointer callback; 1472 * the callback function 1473 */ 1474 public struct GCClosure 1475 { 1476 GClosure closure; 1477 void* callback; 1478 } 1479 1480 1481 /** 1482 * Main Gtk struct. 1483 * A GValueArray contains an array of GValue elements. 1484 * guint n_values; 1485 * number of values contained in the array 1486 * GValue *values; 1487 * array of values 1488 */ 1489 public struct GValueArray 1490 { 1491 uint nValues; 1492 GValue *values; 1493 } 1494 1495 1496 /** 1497 * Main Gtk struct. 1498 * GBinding is an opaque structure whose members 1499 * cannot be accessed directly. 1500 * Since 2.26 1501 */ 1502 public struct GBinding{} 1503 1504 1505 /* 1506 * The fundamental type which is the ancestor of type. 1507 * Fundamental types are types that serve as ultimate bases for the derived types, 1508 * thus they are the roots of distinct inheritance hierarchies. 1509 * type : 1510 * A GType value. 1511 */ 1512 // TODO 1513 // #define G_TYPE_FUNDAMENTAL(type) (g_type_fundamental (type)) 1514 1515 /* 1516 * Get the type ID for the fundamental type number x. 1517 * Use g_type_fundamental_next() instead of this macro to create new fundamental 1518 * types. 1519 * x : 1520 * the fundamental type number. 1521 * Returns : 1522 * the GType 1523 */ 1524 // TODO 1525 // #define G_TYPE_MAKE_FUNDAMENTAL(x) ((GType) ((x) << G_TYPE_FUNDAMENTAL_SHIFT)) 1526 1527 /* 1528 * Checks if type is an abstract type. An abstract type cannot be 1529 * instantiated and is normally used as an abstract base class for 1530 * derived classes. 1531 * type : 1532 * A GType value. 1533 * Returns : 1534 * TRUE on success. 1535 */ 1536 // TODO 1537 // #define G_TYPE_IS_ABSTRACT(type) (g_type_test_flags ((type), G_TYPE_FLAG_ABSTRACT)) 1538 1539 /* 1540 * Checks if type is derived (or in object-oriented terminology: 1541 * inherited) from another type (this holds true for all non-fundamental 1542 * types). 1543 * type : 1544 * A GType value. 1545 * Returns : 1546 * TRUE on success. 1547 */ 1548 // TODO 1549 // #define G_TYPE_IS_DERIVED(type) ((type) > G_TYPE_FUNDAMENTAL_MAX) 1550 1551 /* 1552 * Checks if type is a fundamental type. 1553 * type : 1554 * A GType value. 1555 * Returns : 1556 * TRUE on success. 1557 */ 1558 // TODO 1559 // #define G_TYPE_IS_FUNDAMENTAL(type) ((type) <= G_TYPE_FUNDAMENTAL_MAX) 1560 1561 /* 1562 * Checks if type is a value type and can be used with g_value_init(). 1563 * type : 1564 * A GType value. 1565 * Returns : 1566 * TRUE on success. 1567 */ 1568 // TODO 1569 // #define G_TYPE_IS_VALUE_TYPE(type) (g_type_check_is_value_type (type)) 1570 1571 /* 1572 * Checks if type has a GTypeValueTable. 1573 * type : 1574 * A GType value. 1575 * Returns : 1576 * TRUE on success. 1577 */ 1578 // TODO 1579 // #define G_TYPE_HAS_VALUE_TABLE(type) (g_type_value_table_peek (type) != NULL) 1580 1581 /* 1582 * Checks if type is a classed type. 1583 * type : 1584 * A GType value. 1585 * Returns : 1586 * TRUE on success. 1587 */ 1588 // TODO 1589 // #define G_TYPE_IS_CLASSED(type) (g_type_test_flags ((type), G_TYPE_FLAG_CLASSED)) 1590 1591 /* 1592 * Checks if type can be instantiated. Instantiation is the 1593 * process of creating an instance (object) of this type. 1594 * type : 1595 * A GType value. 1596 * Returns : 1597 * TRUE on success. 1598 */ 1599 // TODO 1600 // #define G_TYPE_IS_INSTANTIATABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_INSTANTIATABLE)) 1601 1602 /* 1603 * Checks if type is a derivable type. A derivable type can 1604 * be used as the base class of a flat (single-level) class hierarchy. 1605 * type : 1606 * A GType value. 1607 * Returns : 1608 * TRUE on success. 1609 */ 1610 // TODO 1611 // #define G_TYPE_IS_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DERIVABLE)) 1612 1613 /* 1614 * Checks if type is a deep derivable type. A deep derivable type 1615 * can be used as the base class of a deep (multi-level) class hierarchy. 1616 * type : 1617 * A GType value. 1618 * Returns : 1619 * TRUE on success. 1620 */ 1621 // TODO 1622 // #define G_TYPE_IS_DEEP_DERIVABLE(type) (g_type_test_flags ((type), G_TYPE_FLAG_DEEP_DERIVABLE)) 1623 1624 /* 1625 * Checks if type is an interface type. 1626 * An interface type provides a pure API, the implementation 1627 * of which is provided by another type (which is then said to conform 1628 * to the interface). GLib interfaces are somewhat analogous to Java 1629 * interfaces and C++ classes containing only pure virtual functions, 1630 * with the difference that GType interfaces are not derivable (but see 1631 * g_type_interface_add_prerequisite() for an alternative). 1632 * type : 1633 * A GType value. 1634 * Returns : 1635 * TRUE on success. 1636 */ 1637 // TODO 1638 // #define G_TYPE_IS_INTERFACE(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_INTERFACE) 1639 1640 /* 1641 * Get the type identifier from a given instance structure. 1642 * This macro should only be used in type implementations. 1643 * instance : 1644 * Location of a valid GTypeInstance structure. 1645 * Returns : 1646 * the GType 1647 */ 1648 // TODO 1649 // #define G_TYPE_FROM_INSTANCE(instance) (G_TYPE_FROM_CLASS (((GTypeInstance*) (instance))->g_class)) 1650 1651 /* 1652 * Get the type identifier from a given class structure. 1653 * This macro should only be used in type implementations. 1654 * g_class : 1655 * Location of a valid GTypeClass structure. 1656 * Returns : 1657 * the GType 1658 */ 1659 // TODO 1660 // #define G_TYPE_FROM_CLASS(g_class) (((GTypeClass*) (g_class))->g_type) 1661 1662 /* 1663 * Get the type identifier from a given interface structure. 1664 * This macro should only be used in type implementations. 1665 * g_iface : 1666 * Location of a valid GTypeInterface structure. 1667 * Returns : 1668 * the GType 1669 */ 1670 // TODO 1671 // #define G_TYPE_FROM_INTERFACE(g_iface) (((GTypeInterface*) (g_iface))->g_type) 1672 1673 /* 1674 * Get the class structure of a given instance, casted 1675 * to a specified ancestor type g_type of the instance. 1676 * Note that while calling a GInstanceInitFunc(), the class pointer gets 1677 * modified, so it might not always return the expected pointer. 1678 * This macro should only be used in type implementations. 1679 * instance : 1680 * Location of the GTypeInstance structure. 1681 * g_type : 1682 * The GType of the class to be returned. 1683 * c_type : 1684 * The C type of the class structure. 1685 * Returns : 1686 * a pointer to the class structure 1687 */ 1688 // TODO 1689 // #define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type) (_G_TYPE_IGC ((instance), (g_type), c_type)) 1690 1691 /* 1692 * Get the interface structure for interface g_type of a given instance. 1693 * This macro should only be used in type implementations. 1694 * instance : 1695 * Location of the GTypeInstance structure. 1696 * g_type : 1697 * The GType of the interface to be returned. 1698 * c_type : 1699 * The C type of the interface structure. 1700 * Returns : 1701 * a pointer to the interface structure 1702 */ 1703 // TODO 1704 // #define G_TYPE_INSTANCE_GET_INTERFACE(instance, g_type, c_type) (_G_TYPE_IGI ((instance), (g_type), c_type)) 1705 1706 /* 1707 * Gets the private structure for a particular type. 1708 * The private structure must have been registered in the 1709 * class_init function with g_type_class_add_private(). 1710 * This macro should only be used in type implementations. 1711 * instance : 1712 * the instance of a type deriving from private_type. 1713 * g_type : 1714 * the type identifying which private data to retrieve. 1715 * c_type : 1716 * The C type for the private structure. 1717 * Returns : 1718 * a pointer to the private data structure. 1719 * Since 2.4 1720 */ 1721 // TODO 1722 // #define G_TYPE_INSTANCE_GET_PRIVATE(instance, g_type, c_type) ((c_type*) g_type_instance_get_private ((GTypeInstance*) (instance), (g_type))) 1723 1724 /* 1725 * Gets the private class structure for a particular type. 1726 * The private structure must have been registered in the 1727 * get_type() function with g_type_add_class_private(). 1728 * This macro should only be used in type implementations. 1729 * klass : 1730 * the class of a type deriving from private_type. 1731 * g_type : 1732 * the type identifying which private data to retrieve. 1733 * c_type : 1734 * The C type for the private structure. 1735 * Returns : 1736 * a pointer to the private data structure. 1737 * Since 2.24 1738 */ 1739 // TODO 1740 // #define G_TYPE_CLASS_GET_PRIVATE(klass, g_type, c_type) ((c_type*) g_type_class_get_private ((GTypeClass*) (klass), (g_type))) 1741 1742 /* 1743 * Checks if instance is a valid GTypeInstance structure, 1744 * otherwise issues a warning and returns FALSE. 1745 * This macro should only be used in type implementations. 1746 * instance : 1747 * Location of a GTypeInstance structure. 1748 * Returns : 1749 * TRUE on success. 1750 */ 1751 // TODO 1752 // #define G_TYPE_CHECK_INSTANCE(instance) (_G_TYPE_CHI ((GTypeInstance*) (instance))) 1753 1754 /* 1755 * Checks that instance is an instance of the type identified by g_type 1756 * and issues a warning if this is not the case. Returns instance casted 1757 * to a pointer to c_type. 1758 * This macro should only be used in type implementations. 1759 * instance : 1760 * Location of a GTypeInstance structure. 1761 * g_type : 1762 * The type to be returned. 1763 * c_type : 1764 * The corresponding C type of g_type. 1765 */ 1766 // TODO 1767 // #define G_TYPE_CHECK_INSTANCE_CAST(instance, g_type, c_type) (_G_TYPE_CIC ((instance), (g_type), c_type)) 1768 1769 /* 1770 * Checks if instance is an instance of the type identified by g_type. 1771 * This macro should only be used in type implementations. 1772 * instance : 1773 * Location of a GTypeInstance structure. 1774 * g_type : 1775 * The type to be checked 1776 * Returns : 1777 * TRUE on success. 1778 */ 1779 // TODO 1780 // #define G_TYPE_CHECK_INSTANCE_TYPE(instance, g_type) (_G_TYPE_CIT ((instance), (g_type))) 1781 1782 /* 1783 * Checks that g_class is a class structure of the type identified by g_type 1784 * and issues a warning if this is not the case. Returns g_class casted 1785 * to a pointer to c_type. 1786 * This macro should only be used in type implementations. 1787 * g_class : 1788 * Location of a GTypeClass structure. 1789 * g_type : 1790 * The type to be returned. 1791 * c_type : 1792 * The corresponding C type of class structure of g_type. 1793 */ 1794 // TODO 1795 // #define G_TYPE_CHECK_CLASS_CAST(g_class, g_type, c_type) (_G_TYPE_CCC ((g_class), (g_type), c_type)) 1796 1797 /* 1798 * Checks if g_class is a class structure of the type identified by 1799 * g_type. 1800 * This macro should only be used in type implementations. 1801 * g_class : 1802 * Location of a GTypeClass structure. 1803 * g_type : 1804 * The type to be checked. 1805 * Returns : 1806 * TRUE on success. 1807 */ 1808 // TODO 1809 // #define G_TYPE_CHECK_CLASS_TYPE(g_class, g_type) (_G_TYPE_CCT ((g_class), (g_type))) 1810 1811 /* 1812 * Checks if value has been initialized to hold values 1813 * of a value type. 1814 * This macro should only be used in type implementations. 1815 * value : 1816 * a GValue 1817 * Returns : 1818 * TRUE on success. 1819 */ 1820 // TODO 1821 // #define G_TYPE_CHECK_VALUE(value) (_G_TYPE_CHV ((value))) 1822 1823 /* 1824 * Checks if value has been initialized to hold values 1825 * of type g_type. 1826 * This macro should only be used in type implementations. 1827 * value : 1828 * a GValue 1829 * g_type : 1830 * The type to be checked. 1831 * Returns : 1832 * TRUE on success. 1833 */ 1834 // TODO 1835 // #define G_TYPE_CHECK_VALUE_TYPE(value, g_type) (_G_TYPE_CVH ((value), (g_type))) 1836 1837 /* 1838 * A convenience macro for type implementations, which declares a 1839 * class initialization function, an instance initialization function (see GTypeInfo for information about 1840 * these) and a static variable named t_n_parent_class pointing to the parent class. Furthermore, it defines 1841 * a *_get_type() function. See G_DEFINE_TYPE_EXTENDED() for an example. 1842 * TN : 1843 * The name of the new type, in Camel case. 1844 * t_n : 1845 * The name of the new type, in lowercase, with words 1846 * separated by '_'. 1847 * T_P : 1848 * The GType of the parent type. 1849 * Since 2.4 1850 */ 1851 // TODO 1852 // #define G_DEFINE_TYPE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {}) 1853 1854 /* 1855 * A convenience macro for type implementations, which declares a 1856 * class initialization function, an instance initialization function (see GTypeInfo for information about 1857 * these), a static variable named t_n_parent_class pointing to the parent class, and adds private 1858 * instance data to the type. Furthermore, it defines a *_get_type() function. See G_DEFINE_TYPE_EXTENDED() 1859 * for an example. 1860 * Note that private structs added with this macros must have a struct 1861 * name of the form TNPrivate. 1862 * TN : 1863 * The name of the new type, in Camel case. 1864 * t_n : 1865 * The name of the new type, in lowercase, with words 1866 * separated by '_'. 1867 * T_P : 1868 * The GType of the parent type. 1869 * Since 2.38 1870 */ 1871 // TODO 1872 // #define G_DEFINE_TYPE_WITH_PRIVATE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, G_ADD_PRIVATE (TN)) 1873 1874 /* 1875 * A convenience macro for type implementations. 1876 * Similar to G_DEFINE_TYPE(), but allows you to insert custom code into the 1877 * *_get_type() function, e.g. interface implementations via G_IMPLEMENT_INTERFACE(). 1878 * See G_DEFINE_TYPE_EXTENDED() for an example. 1879 * TN : 1880 * The name of the new type, in Camel case. 1881 * t_n : 1882 * The name of the new type in lowercase, with words separated by '_'. 1883 * T_P : 1884 * The GType of the parent type. 1885 * _C_ : 1886 * Custom code that gets inserted in the *_get_type() function. 1887 * Since 2.4 1888 */ 1889 // TODO 1890 // #define G_DEFINE_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, 0) {_C_;} _G_DEFINE_TYPE_EXTENDED_END() 1891 1892 /* 1893 * A convenience macro for type implementations. 1894 * Similar to G_DEFINE_TYPE(), but defines an abstract type. 1895 * See G_DEFINE_TYPE_EXTENDED() for an example. 1896 * TN : 1897 * The name of the new type, in Camel case. 1898 * t_n : 1899 * The name of the new type, in lowercase, with words 1900 * separated by '_'. 1901 * T_P : 1902 * The GType of the parent type. 1903 * Since 2.4 1904 */ 1905 // TODO 1906 // #define G_DEFINE_ABSTRACT_TYPE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, {}) 1907 1908 /* 1909 * Similar to G_DEFINE_TYPE_WITH_PRIVATE(), but defines an abstract type. 1910 * See G_DEFINE_TYPE_EXTENDED() for an example. 1911 * TN : 1912 * The name of the new type, in Camel case. 1913 * t_n : 1914 * The name of the new type, in lowercase, with words 1915 * separated by '_'. 1916 * T_P : 1917 * The GType of the parent type. 1918 * Since 2.38 1919 */ 1920 // TODO 1921 // #define G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(TN, t_n, T_P) G_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, G_ADD_PRIVATE (TN)) 1922 1923 /* 1924 * A convenience macro for type implementations. 1925 * Similar to G_DEFINE_TYPE_WITH_CODE(), but defines an abstract type and allows you to 1926 * insert custom code into the *_get_type() function, e.g. interface implementations 1927 * via G_IMPLEMENT_INTERFACE(). See G_DEFINE_TYPE_EXTENDED() for an example. 1928 * TN : 1929 * The name of the new type, in Camel case. 1930 * t_n : 1931 * The name of the new type, in lowercase, with words 1932 * separated by '_'. 1933 * T_P : 1934 * The GType of the parent type. 1935 * _C_ : 1936 * Custom code that gets inserted in the type_name_get_type() function. 1937 * Since 2.4 1938 */ 1939 // TODO 1940 // #define G_DEFINE_ABSTRACT_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT) {_C_;} _G_DEFINE_TYPE_EXTENDED_END() 1941 1942 /* 1943 * A convenience macro to ease adding private data to instances of a new type 1944 * in the _C_ section of G_DEFINE_TYPE_WITH_CODE() or 1945 * G_DEFINE_ABSTRACT_TYPE_WITH_CODE(). 1946 * For instance: 1947 * $(DDOC_COMMENT example) 1948 * Will add MyObjectPrivate as the private data to any instance of the MyObject 1949 * type. 1950 * G_DEFINE_TYPE_* macros will automatically create a private function 1951 * based on the arguments to this macro, which can be used to safely 1952 * retrieve the private data from an instance of the type; for instance: 1953 * $(DDOC_COMMENT example) 1954 * Note that this macro can only be used together with the G_DEFINE_TYPE_* 1955 * macros, since it depends on variable names from those macros. 1956 * Also note that private structs added with these macros must have a struct 1957 * name of the form TypeNamePrivate. 1958 * TypeName : 1959 * the name of the type in CamelCase 1960 * Since 2.38 1961 */ 1962 // TODO 1963 // #define G_ADD_PRIVATE(TypeName) 1964 1965 /* 1966 * Evaluates to the offset of the field inside the instance private data 1967 * structure for TypeName. 1968 * Note that this macro can only be used together with the G_DEFINE_TYPE_* 1969 * and G_ADD_PRIVATE() macros, since it depends on variable names from 1970 * those macros. 1971 * TypeName : 1972 * the name of the type in CamelCase 1973 * field : 1974 * the name of the field in the private data structure 1975 * Since 2.38 1976 */ 1977 // TODO 1978 // #define G_PRIVATE_OFFSET(TypeName, field) 1979 1980 /* 1981 * Evaluates to the field_name inside the inst private data 1982 * structure for TypeName. 1983 * Note that this macro can only be used together with the G_DEFINE_TYPE_* 1984 * and G_ADD_PRIVATE() macros, since it depends on variable names from 1985 * those macros. 1986 * TypeName : 1987 * the name of the type in CamelCase 1988 * inst : 1989 * the instance of TypeName you wish to access 1990 * field_type : 1991 * the type of the field in the private data structure 1992 * field_name : 1993 * the name of the field in the private data structure 1994 * Since 2.38 1995 */ 1996 // TODO 1997 // #define G_PRIVATE_FIELD(TypeName, inst, field_type, field_name) 1998 1999 /* 2000 * Evaluates to a pointer to the field_name inside the inst private data 2001 * structure for TypeName. 2002 * Note that this macro can only be used together with the G_DEFINE_TYPE_* 2003 * and G_ADD_PRIVATE() macros, since it depends on variable names from 2004 * those macros. 2005 * TypeName : 2006 * the name of the type in CamelCase 2007 * inst : 2008 * the instance of TypeName you wish to access 2009 * field_name : 2010 * the name of the field in the private data structure 2011 * Since 2.38 2012 */ 2013 // TODO 2014 // #define G_PRIVATE_FIELD_P(TypeName, inst, field_name) 2015 2016 /* 2017 * A convenience macro for GTypeInterface definitions, which declares 2018 * a default vtable initialization function and defines a *_get_type() 2019 * function. 2020 * The macro expects the interface initialization function to have the 2021 * name t_n ## _default_init, and the interface 2022 * structure to have the name TN ## Interface. 2023 * TN : 2024 * The name of the new type, in Camel case. 2025 * t_n : 2026 * The name of the new type, in lowercase, with words separated by '_'. 2027 * T_P : 2028 * The GType of the prerequisite type for the interface, or 0 2029 * (G_TYPE_INVALID) for no prerequisite type. 2030 * Since 2.24 2031 */ 2032 // TODO 2033 // #define G_DEFINE_INTERFACE(TN, t_n, T_P) G_DEFINE_INTERFACE_WITH_CODE(TN, t_n, T_P, ;) 2034 2035 /* 2036 * A convenience macro for GTypeInterface definitions. Similar to 2037 * G_DEFINE_INTERFACE(), but allows you to insert custom code into the 2038 * *_get_type() function, e.g. additional interface implementations 2039 * via G_IMPLEMENT_INTERFACE(), or additional prerequisite types. See 2040 * G_DEFINE_TYPE_EXTENDED() for a similar example using 2041 * G_DEFINE_TYPE_WITH_CODE(). 2042 * TN : 2043 * The name of the new type, in Camel case. 2044 * t_n : 2045 * The name of the new type, in lowercase, with words separated by '_'. 2046 * T_P : 2047 * The GType of the prerequisite type for the interface, or 0 2048 * (G_TYPE_INVALID) for no prerequisite type. 2049 * _C_ : 2050 * Custom code that gets inserted in the *_get_type() function. 2051 * Since 2.24 2052 */ 2053 // TODO 2054 // #define G_DEFINE_INTERFACE_WITH_CODE(TN, t_n, T_P, _C_) _G_DEFINE_INTERFACE_EXTENDED_BEGIN(TN, t_n, T_P) {_C_;} _G_DEFINE_INTERFACE_EXTENDED_END() 2055 2056 /* 2057 * A convenience macro to ease interface addition in the _C_ section 2058 * of G_DEFINE_TYPE_WITH_CODE() or G_DEFINE_ABSTRACT_TYPE_WITH_CODE(). 2059 * See G_DEFINE_TYPE_EXTENDED() for an example. 2060 * Note that this macro can only be used together with the G_DEFINE_TYPE_* 2061 * macros, since it depends on variable names from those macros. 2062 * TYPE_IFACE : 2063 * The GType of the interface to add 2064 * iface_init : 2065 * The interface init function 2066 * Since 2.4 2067 */ 2068 // TODO 2069 // #define G_IMPLEMENT_INTERFACE(TYPE_IFACE, iface_init) 2070 2071 /* 2072 * The most general convenience macro for type implementations, on which 2073 * G_DEFINE_TYPE(), etc are based. 2074 * $(DDOC_COMMENT example) 2075 * expands to 2076 * $(DDOC_COMMENT example) 2077 * The only pieces which have to be manually provided are the definitions of 2078 * the instance and class structure and the definitions of the instance and 2079 * class init functions. 2080 * TN : 2081 * The name of the new type, in Camel case. 2082 * t_n : 2083 * The name of the new type, in lowercase, with words 2084 * separated by '_'. 2085 * T_P : 2086 * The GType of the parent type. 2087 * _f_ : 2088 * GTypeFlags to pass to g_type_register_static() 2089 * _C_ : 2090 * Custom code that gets inserted in the *_get_type() function. 2091 * Since 2.4 2092 */ 2093 // TODO 2094 // #define G_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_) _G_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _G_DEFINE_TYPE_EXTENDED_END() 2095 2096 /* 2097 * A convenience macro for boxed type implementations, which defines a 2098 * type_name_get_type() function registering the boxed type. 2099 * TypeName : 2100 * The name of the new type, in Camel case. 2101 * type_name : 2102 * The name of the new type, in lowercase, with words 2103 * separated by '_'. 2104 * copy_func : 2105 * the GBoxedCopyFunc for the new type 2106 * free_func : 2107 * the GBoxedFreeFunc for the new type 2108 * Since 2.26 2109 */ 2110 // TODO 2111 // #define G_DEFINE_BOXED_TYPE(TypeName, type_name, copy_func, free_func) G_DEFINE_BOXED_TYPE_WITH_CODE (TypeName, type_name, copy_func, free_func, {}) 2112 2113 /* 2114 * A convenience macro for boxed type implementations. 2115 * Similar to G_DEFINE_BOXED_TYPE(), but allows to insert custom code into the 2116 * type_name_get_type() function, e.g. to register value transformations with 2117 * g_value_register_transform_func(). 2118 * TypeName : 2119 * The name of the new type, in Camel case. 2120 * type_name : 2121 * The name of the new type, in lowercase, with words 2122 * separated by '_'. 2123 * copy_func : 2124 * the GBoxedCopyFunc for the new type 2125 * free_func : 2126 * the GBoxedFreeFunc for the new type 2127 * _C_ : 2128 * Custom code that gets inserted in the *_get_type() function. 2129 * Since 2.26 2130 */ 2131 // TODO 2132 // #define G_DEFINE_BOXED_TYPE_WITH_CODE(TypeName, type_name, copy_func, free_func, _C_) _G_DEFINE_BOXED_TYPE_BEGIN (TypeName, type_name, copy_func, free_func) {_C_;} _G_DEFINE_TYPE_EXTENDED_END() 2133 2134 /* 2135 * A convenience macro for pointer type implementations, which defines a 2136 * type_name_get_type() function registering the pointer type. 2137 * TypeName : 2138 * The name of the new type, in Camel case. 2139 * type_name : 2140 * The name of the new type, in lowercase, with words 2141 * separated by '_'. 2142 * Since 2.26 2143 */ 2144 // TODO 2145 // #define G_DEFINE_POINTER_TYPE(TypeName, type_name) G_DEFINE_POINTER_TYPE_WITH_CODE (TypeName, type_name, {}) 2146 2147 /* 2148 * A convenience macro for pointer type implementations. 2149 * Similar to G_DEFINE_POINTER_TYPE(), but allows to insert custom code into the 2150 * type_name_get_type() function. 2151 * TypeName : 2152 * The name of the new type, in Camel case. 2153 * type_name : 2154 * The name of the new type, in lowercase, with words 2155 * separated by '_'. 2156 * _C_ : 2157 * Custom code that gets inserted in the *_get_type() function. 2158 * Since 2.26 2159 */ 2160 // TODO 2161 // #define G_DEFINE_POINTER_TYPE_WITH_CODE(TypeName, type_name, _C_) _G_DEFINE_POINTER_TYPE_BEGIN (TypeName, type_name) {_C_;} _G_DEFINE_TYPE_EXTENDED_END() 2162 2163 /* 2164 * A convenience macro for dynamic type implementations, which declares a 2165 * class initialization function, an instance initialization function (see 2166 * GTypeInfo for information about these) and a static variable named 2167 * t_n_parent_class pointing to the parent class. Furthermore, 2168 * it defines a *_get_type() and a static 2169 * *_register_type() function for use in your 2170 * module_init(). 2171 * See G_DEFINE_DYNAMIC_TYPE_EXTENDED() for an example. 2172 * TN : 2173 * The name of the new type, in Camel case. 2174 * t_n : 2175 * The name of the new type, in lowercase, with words 2176 * separated by '_'. 2177 * T_P : 2178 * The GType of the parent type. 2179 * Since 2.14 2180 */ 2181 // TODO 2182 // #define G_DEFINE_DYNAMIC_TYPE(TN, t_n, T_P) G_DEFINE_DYNAMIC_TYPE_EXTENDED (TN, t_n, T_P, 0, {}) 2183 2184 /* 2185 * A more general version of G_DEFINE_DYNAMIC_TYPE() which 2186 * allows to specify GTypeFlags and custom code. 2187 * $(DDOC_COMMENT example) 2188 * expands to 2189 * $(DDOC_COMMENT example) 2190 * TypeName : 2191 * The name of the new type, in Camel case. 2192 * type_name : 2193 * The name of the new type, in lowercase, with words 2194 * separated by '_'. 2195 * TYPE_PARENT : 2196 * The GType of the parent type. 2197 * flags : 2198 * GTypeFlags to pass to g_type_module_register_type() 2199 * CODE : 2200 * Custom code that gets inserted in the *_get_type() function. 2201 * Since 2.14 2202 */ 2203 // TODO 2204 // #define G_DEFINE_DYNAMIC_TYPE_EXTENDED(TypeName, type_name, TYPE_PARENT, flags, CODE) 2205 2206 /* 2207 * A convenience macro to ease interface addition in the _C_ section 2208 * of G_DEFINE_DYNAMIC_TYPE_EXTENDED(). See G_DEFINE_DYNAMIC_TYPE_EXTENDED() 2209 * for an example. 2210 * Note that this macro can only be used together with the 2211 * G_DEFINE_DYNAMIC_TYPE_EXTENDED macros, since it depends on variable 2212 * names from that macro. 2213 * TYPE_IFACE : 2214 * The GType of the interface to add 2215 * iface_init : 2216 * The interface init function 2217 * Since 2.24 2218 * See Also 2219 * GTypePlugin 2220 * The abstract type loader interface. 2221 * GModule 2222 * Portable mechanism for dynamically loaded modules. 2223 */ 2224 // TODO 2225 // #define G_IMPLEMENT_INTERFACE_DYNAMIC(TYPE_IFACE, iface_init) 2226 2227 /* 2228 * Check if the passed in type id is a G_TYPE_OBJECT or derived from it. 2229 * type : 2230 * Type id to check 2231 * Returns : 2232 * FALSE or TRUE, indicating whether type is a G_TYPE_OBJECT. 2233 */ 2234 // TODO 2235 // #define G_TYPE_IS_OBJECT(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_OBJECT) 2236 2237 /* 2238 * Casts a GObject or derived pointer into a (GObject*) pointer. 2239 * Depending on the current debugging level, this function may invoke 2240 * certain runtime checks to identify invalid casts. 2241 * object : 2242 * Object which is subject to casting. 2243 */ 2244 // TODO 2245 // #define G_OBJECT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), G_TYPE_OBJECT, GObject)) 2246 2247 /* 2248 * Checks whether a valid GTypeInstance pointer is of type G_TYPE_OBJECT. 2249 * object : 2250 * Instance to check for being a G_TYPE_OBJECT. 2251 */ 2252 // TODO 2253 // #define G_IS_OBJECT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), G_TYPE_OBJECT)) 2254 2255 /* 2256 * Casts a derived GObjectClass structure into a GObjectClass structure. 2257 * class : 2258 * a valid GObjectClass 2259 */ 2260 // TODO 2261 // #define G_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_OBJECT, GObjectClass)) 2262 2263 /* 2264 * Checks whether class "is a" valid GObjectClass structure of type 2265 * G_TYPE_OBJECT or derived. 2266 * class : 2267 * a GObjectClass 2268 */ 2269 // TODO 2270 // #define G_IS_OBJECT_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_OBJECT)) 2271 2272 /* 2273 * Get the class structure associated to a GObject instance. 2274 * object : 2275 * a GObject instance. 2276 * Returns : 2277 * pointer to object class structure. 2278 */ 2279 // TODO 2280 // #define G_OBJECT_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS ((object), G_TYPE_OBJECT, GObjectClass)) 2281 2282 /* 2283 * Get the type id of an object. 2284 * object : 2285 * Object to return the type id for. 2286 * Returns : 2287 * Type id of object. 2288 */ 2289 // TODO 2290 // #define G_OBJECT_TYPE(object) (G_TYPE_FROM_INSTANCE (object)) 2291 2292 /* 2293 * Get the name of an object's type. 2294 * object : 2295 * Object to return the type name for. 2296 * Returns : 2297 * Type name of object. The string is owned by the type system and 2298 * should not be freed. 2299 */ 2300 // TODO 2301 // #define G_OBJECT_TYPE_NAME(object) (g_type_name (G_OBJECT_TYPE (object))) 2302 2303 /* 2304 * Get the type id of a class structure. 2305 * class : 2306 * a valid GObjectClass 2307 * Returns : 2308 * Type id of class. 2309 */ 2310 // TODO 2311 // #define G_OBJECT_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class)) 2312 2313 /* 2314 * Return the name of a class structure's type. 2315 * class : 2316 * a valid GObjectClass 2317 * Returns : 2318 * Type name of class. The string is owned by the type system and 2319 * should not be freed. 2320 */ 2321 // TODO 2322 // #define G_OBJECT_CLASS_NAME(class) (g_type_name (G_OBJECT_CLASS_TYPE (class))) 2323 2324 /* 2325 * This macro should be used to emit a standard warning about unexpected 2326 * properties in set_property() and get_property() implementations. 2327 * object : 2328 * the GObject on which set_property() or get_property() was called 2329 * property_id : 2330 * the numeric id of the property 2331 * pspec : 2332 * the GParamSpec of the property 2333 */ 2334 // TODO 2335 // #define G_OBJECT_WARN_INVALID_PROPERTY_ID(object, property_id, pspec) 2336 2337 /* 2338 * Get the type identifier from a given GEnumClass structure. 2339 * class : 2340 * a GEnumClass 2341 * Returns : 2342 * the GType 2343 */ 2344 // TODO 2345 // #define G_ENUM_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class)) 2346 2347 /* 2348 * Get the static type name from a given GEnumClass structure. 2349 * class : 2350 * a GEnumClass 2351 * Returns : 2352 * the type name. 2353 */ 2354 // TODO 2355 // #define G_ENUM_CLASS_TYPE_NAME(class) (g_type_name (G_ENUM_CLASS_TYPE (class))) 2356 2357 /* 2358 * Checks whether type "is a" G_TYPE_ENUM. 2359 * type : 2360 * a GType ID. 2361 * Returns : 2362 * TRUE if type "is a" G_TYPE_ENUM. 2363 */ 2364 // TODO 2365 // #define G_TYPE_IS_ENUM(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_ENUM) 2366 2367 /* 2368 * Casts a derived GEnumClass structure into a GEnumClass structure. 2369 * class : 2370 * a valid GEnumClass 2371 */ 2372 // TODO 2373 // #define G_ENUM_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_ENUM, GEnumClass)) 2374 2375 /* 2376 * Checks whether class "is a" valid GEnumClass structure of type G_TYPE_ENUM 2377 * or derived. 2378 * class : 2379 * a GEnumClass 2380 */ 2381 // TODO 2382 // #define G_IS_ENUM_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_ENUM)) 2383 2384 /* 2385 * Checks whether type "is a" G_TYPE_FLAGS. 2386 * type : 2387 * a GType ID. 2388 * Returns : 2389 * TRUE if type "is a" G_TYPE_FLAGS. 2390 */ 2391 // TODO 2392 // #define G_TYPE_IS_FLAGS(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_FLAGS) 2393 2394 /* 2395 * Casts a derived GFlagsClass structure into a GFlagsClass structure. 2396 * class : 2397 * a valid GFlagsClass 2398 */ 2399 // TODO 2400 // #define G_FLAGS_CLASS(class) (G_TYPE_CHECK_CLASS_CAST ((class), G_TYPE_FLAGS, GFlagsClass)) 2401 2402 /* 2403 * Checks whether class "is a" valid GFlagsClass structure of type G_TYPE_FLAGS 2404 * or derived. 2405 * class : 2406 * a GFlagsClass 2407 */ 2408 // TODO 2409 // #define G_IS_FLAGS_CLASS(class) (G_TYPE_CHECK_CLASS_TYPE ((class), G_TYPE_FLAGS)) 2410 2411 /* 2412 * Get the type identifier from a given GFlagsClass structure. 2413 * class : 2414 * a GFlagsClass 2415 * Returns : 2416 * the GType 2417 */ 2418 // TODO 2419 // #define G_FLAGS_CLASS_TYPE(class) (G_TYPE_FROM_CLASS (class)) 2420 2421 /* 2422 * Get the static type name from a given GFlagsClass structure. 2423 * class : 2424 * a GFlagsClass 2425 * Returns : 2426 * the type name. 2427 */ 2428 // TODO 2429 // #define G_FLAGS_CLASS_TYPE_NAME(class) (g_type_name (G_FLAGS_CLASS_TYPE (class))) 2430 2431 /* 2432 * Checks if value holds (or contains) a value of type. 2433 * This macro will also check for value != NULL and issue a 2434 * warning if the check fails. 2435 * value : 2436 * A GValue structure. 2437 * type : 2438 * A GType value. 2439 * Returns : 2440 * TRUE if value holds the type. 2441 */ 2442 // TODO 2443 // #define G_VALUE_HOLDS(value,type) (G_TYPE_CHECK_VALUE_TYPE ((value), (type))) 2444 2445 /* 2446 * Get the type identifier of value. 2447 * value : 2448 * A GValue structure. 2449 * Returns : 2450 * the GType. 2451 */ 2452 // TODO 2453 // #define G_VALUE_TYPE(value) (((GValue*) (value))->g_type) 2454 2455 /* 2456 * Gets the type name of value. 2457 * value : 2458 * A GValue structure. 2459 * Returns : 2460 * the type name. 2461 */ 2462 // TODO 2463 // #define G_VALUE_TYPE_NAME(value) (g_type_name (G_VALUE_TYPE (value))) 2464 2465 /* 2466 * Checks whether the passed in type ID can be used for g_value_init(). 2467 * That is, this macro checks whether this type provides an implementation 2468 * of the GTypeValueTable functions required for a type to create a GValue of. 2469 * type : 2470 * A GType value. 2471 * Returns : 2472 * Whether type is suitable as a GValue type. 2473 */ 2474 // TODO 2475 // #define G_TYPE_IS_VALUE(type) (g_type_check_is_value_type (type)) 2476 2477 /* 2478 * Checks if type is an abstract value type. An abstract value type introduces 2479 * a value table, but can't be used for g_value_init() and is normally used as 2480 * an abstract base type for derived value types. 2481 * type : 2482 * A GType value. 2483 * Returns : 2484 * TRUE on success. 2485 */ 2486 // TODO 2487 // #define G_TYPE_IS_VALUE_ABSTRACT(type) (g_type_test_flags ((type), G_TYPE_FLAG_VALUE_ABSTRACT)) 2488 2489 /* 2490 * Checks if value is a valid and initialized GValue structure. 2491 * value : 2492 * A GValue structure. 2493 * Returns : 2494 * TRUE on success. 2495 */ 2496 // TODO 2497 // #define G_IS_VALUE(value) (G_TYPE_CHECK_VALUE (value)) 2498 2499 /* 2500 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_BOOLEAN. 2501 * pspec : 2502 * a valid GParamSpec instance 2503 * Returns : 2504 * TRUE on success. 2505 */ 2506 // TODO 2507 // #define G_IS_PARAM_SPEC_BOOLEAN(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOOLEAN)) 2508 2509 /* 2510 * Cast a GParamSpec instance into a GParamSpecBoolean. 2511 * pspec : 2512 * a valid GParamSpec instance 2513 */ 2514 // TODO 2515 // #define G_PARAM_SPEC_BOOLEAN(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOOLEAN, GParamSpecBoolean)) 2516 2517 /* 2518 * Checks whether the given GValue can hold values of type G_TYPE_BOOLEAN. 2519 * value : 2520 * a valid GValue structure 2521 * Returns : 2522 * TRUE on success. 2523 */ 2524 // TODO 2525 // #define G_VALUE_HOLDS_BOOLEAN(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_BOOLEAN)) 2526 2527 /* 2528 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_CHAR. 2529 * pspec : 2530 * a valid GParamSpec instance 2531 * Returns : 2532 * TRUE on success. 2533 */ 2534 // TODO 2535 // #define G_IS_PARAM_SPEC_CHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_CHAR)) 2536 2537 /* 2538 * Cast a GParamSpec instance into a GParamSpecChar. 2539 * pspec : 2540 * a valid GParamSpec instance 2541 */ 2542 // TODO 2543 // #define G_PARAM_SPEC_CHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_CHAR, GParamSpecChar)) 2544 2545 /* 2546 * Checks whether the given GValue can hold values of type G_TYPE_CHAR. 2547 * value : 2548 * a valid GValue structure 2549 * Returns : 2550 * TRUE on success. 2551 */ 2552 // TODO 2553 // #define G_VALUE_HOLDS_CHAR(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_CHAR)) 2554 2555 /* 2556 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_UCHAR. 2557 * pspec : 2558 * a valid GParamSpec instance 2559 * Returns : 2560 * TRUE on success. 2561 */ 2562 // TODO 2563 // #define G_IS_PARAM_SPEC_UCHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UCHAR)) 2564 2565 /* 2566 * Cast a GParamSpec instance into a GParamSpecUChar. 2567 * pspec : 2568 * a valid GParamSpec instance 2569 */ 2570 // TODO 2571 // #define G_PARAM_SPEC_UCHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UCHAR, GParamSpecUChar)) 2572 2573 /* 2574 * Checks whether the given GValue can hold values of type G_TYPE_UCHAR. 2575 * value : 2576 * a valid GValue structure 2577 * Returns : 2578 * TRUE on success. 2579 */ 2580 // TODO 2581 // #define G_VALUE_HOLDS_UCHAR(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UCHAR)) 2582 2583 /* 2584 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_INT. 2585 * pspec : 2586 * a valid GParamSpec instance 2587 * Returns : 2588 * TRUE on success. 2589 */ 2590 // TODO 2591 // #define G_IS_PARAM_SPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT)) 2592 2593 /* 2594 * Cast a GParamSpec instance into a GParamSpecInt. 2595 * pspec : 2596 * a valid GParamSpec instance 2597 */ 2598 // TODO 2599 // #define G_PARAM_SPEC_INT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT, GParamSpecInt)) 2600 2601 /* 2602 * Checks whether the given GValue can hold values of type G_TYPE_INT. 2603 * value : 2604 * a valid GValue structure 2605 * Returns : 2606 * TRUE on success. 2607 */ 2608 // TODO 2609 // #define G_VALUE_HOLDS_INT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT)) 2610 2611 /* 2612 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_UINT. 2613 * pspec : 2614 * a valid GParamSpec instance 2615 * Returns : 2616 * TRUE on success. 2617 */ 2618 // TODO 2619 // #define G_IS_PARAM_SPEC_UINT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT)) 2620 2621 /* 2622 * Cast a GParamSpec instance into a GParamSpecUInt. 2623 * pspec : 2624 * a valid GParamSpec instance 2625 */ 2626 // TODO 2627 // #define G_PARAM_SPEC_UINT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT, GParamSpecUInt)) 2628 2629 /* 2630 * Checks whether the given GValue can hold values of type G_TYPE_UINT. 2631 * value : 2632 * a valid GValue structure 2633 * Returns : 2634 * TRUE on success. 2635 */ 2636 // TODO 2637 // #define G_VALUE_HOLDS_UINT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT)) 2638 2639 /* 2640 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_LONG. 2641 * pspec : 2642 * a valid GParamSpec instance 2643 * Returns : 2644 * TRUE on success. 2645 */ 2646 // TODO 2647 // #define G_IS_PARAM_SPEC_LONG(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_LONG)) 2648 2649 /* 2650 * Cast a GParamSpec instance into a GParamSpecLong. 2651 * pspec : 2652 * a valid GParamSpec instance 2653 */ 2654 // TODO 2655 // #define G_PARAM_SPEC_LONG(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_LONG, GParamSpecLong)) 2656 2657 /* 2658 * Checks whether the given GValue can hold values of type G_TYPE_LONG. 2659 * value : 2660 * a valid GValue structure 2661 * Returns : 2662 * TRUE on success. 2663 */ 2664 // TODO 2665 // #define G_VALUE_HOLDS_LONG(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_LONG)) 2666 2667 /* 2668 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_ULONG. 2669 * pspec : 2670 * a valid GParamSpec instance 2671 * Returns : 2672 * TRUE on success. 2673 */ 2674 // TODO 2675 // #define G_IS_PARAM_SPEC_ULONG(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ULONG)) 2676 2677 /* 2678 * Cast a GParamSpec instance into a GParamSpecULong. 2679 * pspec : 2680 * a valid GParamSpec instance 2681 */ 2682 // TODO 2683 // #define G_PARAM_SPEC_ULONG(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ULONG, GParamSpecULong)) 2684 2685 /* 2686 * Checks whether the given GValue can hold values of type G_TYPE_ULONG. 2687 * value : 2688 * a valid GValue structure 2689 * Returns : 2690 * TRUE on success. 2691 */ 2692 // TODO 2693 // #define G_VALUE_HOLDS_ULONG(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_ULONG)) 2694 2695 /* 2696 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_INT64. 2697 * pspec : 2698 * a valid GParamSpec instance 2699 * Returns : 2700 * TRUE on success. 2701 */ 2702 // TODO 2703 // #define G_IS_PARAM_SPEC_INT64(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_INT64)) 2704 2705 /* 2706 * Cast a GParamSpec instance into a GParamSpecInt64. 2707 * pspec : 2708 * a valid GParamSpec instance 2709 */ 2710 // TODO 2711 // #define G_PARAM_SPEC_INT64(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_INT64, GParamSpecInt64)) 2712 2713 /* 2714 * Checks whether the given GValue can hold values of type G_TYPE_INT64. 2715 * value : 2716 * a valid GValue structure 2717 * Returns : 2718 * TRUE on success. 2719 */ 2720 // TODO 2721 // #define G_VALUE_HOLDS_INT64(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_INT64)) 2722 2723 /* 2724 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_UINT64. 2725 * pspec : 2726 * a valid GParamSpec instance 2727 * Returns : 2728 * TRUE on success. 2729 */ 2730 // TODO 2731 // #define G_IS_PARAM_SPEC_UINT64(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UINT64)) 2732 2733 /* 2734 * Cast a GParamSpec instance into a GParamSpecUInt64. 2735 * pspec : 2736 * a valid GParamSpec instance 2737 */ 2738 // TODO 2739 // #define G_PARAM_SPEC_UINT64(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UINT64, GParamSpecUInt64)) 2740 2741 /* 2742 * Checks whether the given GValue can hold values of type G_TYPE_UINT64. 2743 * value : 2744 * a valid GValue structure 2745 * Returns : 2746 * TRUE on success. 2747 */ 2748 // TODO 2749 // #define G_VALUE_HOLDS_UINT64(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_UINT64)) 2750 2751 /* 2752 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_FLOAT. 2753 * pspec : 2754 * a valid GParamSpec instance 2755 * Returns : 2756 * TRUE on success. 2757 */ 2758 // TODO 2759 // #define G_IS_PARAM_SPEC_FLOAT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLOAT)) 2760 2761 /* 2762 * Cast a GParamSpec instance into a GParamSpecFloat. 2763 * pspec : 2764 * a valid GParamSpec instance 2765 */ 2766 // TODO 2767 // #define G_PARAM_SPEC_FLOAT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLOAT, GParamSpecFloat)) 2768 2769 /* 2770 * Checks whether the given GValue can hold values of type G_TYPE_FLOAT. 2771 * value : 2772 * a valid GValue structure 2773 * Returns : 2774 * TRUE on success. 2775 */ 2776 // TODO 2777 // #define G_VALUE_HOLDS_FLOAT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_FLOAT)) 2778 2779 /* 2780 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_DOUBLE. 2781 * pspec : 2782 * a valid GParamSpec instance 2783 * Returns : 2784 * TRUE on success. 2785 */ 2786 // TODO 2787 // #define G_IS_PARAM_SPEC_DOUBLE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_DOUBLE)) 2788 2789 /* 2790 * Cast a GParamSpec instance into a GParamSpecDouble. 2791 * pspec : 2792 * a valid GParamSpec instance 2793 */ 2794 // TODO 2795 // #define G_PARAM_SPEC_DOUBLE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_DOUBLE, GParamSpecDouble)) 2796 2797 /* 2798 * Checks whether the given GValue can hold values of type G_TYPE_DOUBLE. 2799 * value : 2800 * a valid GValue structure 2801 * Returns : 2802 * TRUE on success. 2803 */ 2804 // TODO 2805 // #define G_VALUE_HOLDS_DOUBLE(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_DOUBLE)) 2806 2807 /* 2808 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_ENUM. 2809 * pspec : 2810 * a valid GParamSpec instance 2811 * Returns : 2812 * TRUE on success. 2813 */ 2814 // TODO 2815 // #define G_IS_PARAM_SPEC_ENUM(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_ENUM)) 2816 2817 /* 2818 * Cast a GParamSpec instance into a GParamSpecEnum. 2819 * pspec : 2820 * a valid GParamSpec instance 2821 */ 2822 // TODO 2823 // #define G_PARAM_SPEC_ENUM(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_ENUM, GParamSpecEnum)) 2824 2825 /* 2826 * Checks whether the given GValue can hold values derived from type G_TYPE_ENUM. 2827 * value : 2828 * a valid GValue structure 2829 * Returns : 2830 * TRUE on success. 2831 */ 2832 // TODO 2833 // #define G_VALUE_HOLDS_ENUM(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_ENUM)) 2834 2835 /* 2836 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_FLAGS. 2837 * pspec : 2838 * a valid GParamSpec instance 2839 * Returns : 2840 * TRUE on success. 2841 */ 2842 // TODO 2843 // #define G_IS_PARAM_SPEC_FLAGS(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_FLAGS)) 2844 2845 /* 2846 * Cast a GParamSpec instance into a GParamSpecFlags. 2847 * pspec : 2848 * a valid GParamSpec instance 2849 */ 2850 // TODO 2851 // #define G_PARAM_SPEC_FLAGS(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_FLAGS, GParamSpecFlags)) 2852 2853 /* 2854 * Checks whether the given GValue can hold values derived from type G_TYPE_FLAGS. 2855 * value : 2856 * a valid GValue structure 2857 * Returns : 2858 * TRUE on success. 2859 */ 2860 // TODO 2861 // #define G_VALUE_HOLDS_FLAGS(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_FLAGS)) 2862 2863 /* 2864 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_STRING. 2865 * pspec : 2866 * a valid GParamSpec instance 2867 * Returns : 2868 * TRUE on success. 2869 */ 2870 // TODO 2871 // #define G_IS_PARAM_SPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_STRING)) 2872 2873 /* 2874 * Casts a GParamSpec instance into a GParamSpecString. 2875 * pspec : 2876 * a valid GParamSpec instance 2877 */ 2878 // TODO 2879 // #define G_PARAM_SPEC_STRING(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_STRING, GParamSpecString)) 2880 2881 /* 2882 * Checks whether the given GValue can hold values of type G_TYPE_STRING. 2883 * value : 2884 * a valid GValue structure 2885 * Returns : 2886 * TRUE on success. 2887 */ 2888 // TODO 2889 // #define G_VALUE_HOLDS_STRING(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_STRING)) 2890 2891 /* 2892 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_PARAM. 2893 * pspec : 2894 * a valid GParamSpec instance 2895 * Returns : 2896 * TRUE on success. 2897 */ 2898 // TODO 2899 // #define G_IS_PARAM_SPEC_PARAM(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_PARAM)) 2900 2901 /* 2902 * Casts a GParamSpec instance into a GParamSpecParam. 2903 * pspec : 2904 * a valid GParamSpec instance 2905 */ 2906 // TODO 2907 // #define G_PARAM_SPEC_PARAM(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_PARAM, GParamSpecParam)) 2908 2909 /* 2910 * Checks whether the given GValue can hold values derived from type G_TYPE_PARAM. 2911 * value : 2912 * a valid GValue structure 2913 * Returns : 2914 * TRUE on success. 2915 */ 2916 // TODO 2917 // #define G_VALUE_HOLDS_PARAM(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_PARAM)) 2918 2919 /* 2920 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_BOXED. 2921 * pspec : 2922 * a valid GParamSpec instance 2923 * Returns : 2924 * TRUE on success. 2925 */ 2926 // TODO 2927 // #define G_IS_PARAM_SPEC_BOXED(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_BOXED)) 2928 2929 /* 2930 * Cast a GParamSpec instance into a GParamSpecBoxed. 2931 * pspec : 2932 * a valid GParamSpec instance 2933 */ 2934 // TODO 2935 // #define G_PARAM_SPEC_BOXED(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_BOXED, GParamSpecBoxed)) 2936 2937 /* 2938 * Checks whether the given GValue can hold values derived 2939 * from type G_TYPE_BOXED. 2940 * value : 2941 * a valid GValue structure 2942 * Returns : 2943 * TRUE on success. 2944 */ 2945 // TODO 2946 // #define G_VALUE_HOLDS_BOXED(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_BOXED)) 2947 2948 /* 2949 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_POINTER. 2950 * pspec : 2951 * a valid GParamSpec instance 2952 * Returns : 2953 * TRUE on success. 2954 */ 2955 // TODO 2956 // #define G_IS_PARAM_SPEC_POINTER(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_POINTER)) 2957 2958 /* 2959 * Casts a GParamSpec instance into a GParamSpecPointer. 2960 * pspec : 2961 * a valid GParamSpec instance 2962 */ 2963 // TODO 2964 // #define G_PARAM_SPEC_POINTER(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_POINTER, GParamSpecPointer)) 2965 2966 /* 2967 * Checks whether the given GValue can hold values of type G_TYPE_POINTER. 2968 * value : 2969 * a valid GValue structure 2970 * Returns : 2971 * TRUE on success. 2972 */ 2973 // TODO 2974 // #define G_VALUE_HOLDS_POINTER(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_POINTER)) 2975 2976 /* 2977 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_OBJECT. 2978 * pspec : 2979 * a valid GParamSpec instance 2980 * Returns : 2981 * TRUE on success. 2982 */ 2983 // TODO 2984 // #define G_IS_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OBJECT)) 2985 2986 /* 2987 * Casts a GParamSpec instance into a GParamSpecObject. 2988 * pspec : 2989 * a valid GParamSpec instance 2990 */ 2991 // TODO 2992 // #define G_PARAM_SPEC_OBJECT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OBJECT, GParamSpecObject)) 2993 2994 /* 2995 * Checks whether the given GValue can hold values derived from type G_TYPE_OBJECT. 2996 * value : 2997 * a valid GValue structure 2998 * Returns : 2999 * TRUE on success. 3000 */ 3001 // TODO 3002 // #define G_VALUE_HOLDS_OBJECT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_OBJECT)) 3003 3004 /* 3005 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_UNICHAR. 3006 * pspec : 3007 * a valid GParamSpec instance 3008 * Returns : 3009 * TRUE on success. 3010 */ 3011 // TODO 3012 // #define G_IS_PARAM_SPEC_UNICHAR(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_UNICHAR)) 3013 3014 /* 3015 * Cast a GParamSpec instance into a GParamSpecUnichar. 3016 * pspec : 3017 * a valid GParamSpec instance 3018 */ 3019 // TODO 3020 // #define G_PARAM_SPEC_UNICHAR(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_UNICHAR, GParamSpecUnichar)) 3021 3022 /* 3023 * Warning 3024 * G_IS_PARAM_SPEC_VALUE_ARRAY has been deprecated since version 2.32 and should not be used in newly-written code. Use GArray instead of GValueArray 3025 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_VALUE_ARRAY. 3026 * pspec : 3027 * a valid GParamSpec instance 3028 * Returns : 3029 * TRUE on success. 3030 */ 3031 // TODO 3032 // #define G_IS_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VALUE_ARRAY)) 3033 3034 /* 3035 * Warning 3036 * G_PARAM_SPEC_VALUE_ARRAY has been deprecated since version 2.32 and should not be used in newly-written code. Use GArray instead of GValueArray 3037 * Cast a GParamSpec instance into a GParamSpecValueArray. 3038 * pspec : 3039 * a valid GParamSpec instance 3040 */ 3041 // TODO 3042 // #define G_PARAM_SPEC_VALUE_ARRAY(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VALUE_ARRAY, GParamSpecValueArray)) 3043 3044 /* 3045 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_OVERRIDE. 3046 * pspec : 3047 * a GParamSpec 3048 * Returns : 3049 * TRUE on success. 3050 * Since 2.4 3051 */ 3052 // TODO 3053 // #define G_IS_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_OVERRIDE)) 3054 3055 /* 3056 * Casts a GParamSpec into a GParamSpecOverride. 3057 * pspec : 3058 * a GParamSpec 3059 * Since 2.4 3060 */ 3061 // TODO 3062 // #define G_PARAM_SPEC_OVERRIDE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_OVERRIDE, GParamSpecOverride)) 3063 3064 /* 3065 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_GTYPE. 3066 * pspec : 3067 * a GParamSpec 3068 * Returns : 3069 * TRUE on success. 3070 * Since 2.10 3071 */ 3072 // TODO 3073 // #define G_IS_PARAM_SPEC_GTYPE(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_GTYPE)) 3074 3075 /* 3076 * Casts a GParamSpec into a GParamSpecGType. 3077 * pspec : 3078 * a GParamSpec 3079 * Since 2.10 3080 */ 3081 // TODO 3082 // #define G_PARAM_SPEC_GTYPE(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_GTYPE, GParamSpecGType)) 3083 3084 /* 3085 * Checks whether the given GValue can hold values of type G_TYPE_GTYPE. 3086 * value : 3087 * a valid GValue structure 3088 * Returns : 3089 * TRUE on success. 3090 * Since 2.12 3091 */ 3092 // TODO 3093 // #define G_VALUE_HOLDS_GTYPE(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_GTYPE)) 3094 3095 /* 3096 * Checks whether the given GParamSpec is of type G_TYPE_PARAM_VARIANT. 3097 * pspec : 3098 * a GParamSpec 3099 * Returns : 3100 * TRUE on success 3101 * Since 2.26 3102 */ 3103 // TODO 3104 // #define G_IS_PARAM_SPEC_VARIANT(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM_VARIANT)) 3105 3106 /* 3107 * Casts a GParamSpec into a GParamSpecVariant. 3108 * pspec : 3109 * a GParamSpec 3110 * Since 2.26 3111 */ 3112 // TODO 3113 // #define G_PARAM_SPEC_VARIANT(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM_VARIANT, GParamSpecVariant)) 3114 3115 /* 3116 * Checks whether the given GValue can hold values of type G_TYPE_VARIANT. 3117 * value : 3118 * a valid GValue structure 3119 * Returns : 3120 * TRUE on success. 3121 * Since 2.26 3122 */ 3123 // TODO 3124 // #define G_VALUE_HOLDS_VARIANT(value) (G_TYPE_CHECK_VALUE_TYPE ((value), G_TYPE_VARIANT)) 3125 3126 /* 3127 * Checks whether type "is a" G_TYPE_PARAM. 3128 * type : 3129 * a GType ID 3130 */ 3131 // TODO 3132 // #define G_TYPE_IS_PARAM(type) (G_TYPE_FUNDAMENTAL (type) == G_TYPE_PARAM) 3133 3134 /* 3135 * Casts a derived GParamSpec object (e.g. of type GParamSpecInt) into 3136 * a GParamSpec object. 3137 * pspec : 3138 * a valid GParamSpec 3139 */ 3140 // TODO 3141 // #define G_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_CAST ((pspec), G_TYPE_PARAM, GParamSpec)) 3142 3143 /* 3144 * Checks whether pspec "is a" valid GParamSpec structure of type G_TYPE_PARAM 3145 * or derived. 3146 * pspec : 3147 * a GParamSpec 3148 */ 3149 // TODO 3150 // #define G_IS_PARAM_SPEC(pspec) (G_TYPE_CHECK_INSTANCE_TYPE ((pspec), G_TYPE_PARAM)) 3151 3152 /* 3153 * Casts a derived GParamSpecClass structure into a GParamSpecClass structure. 3154 * pclass : 3155 * a valid GParamSpecClass 3156 */ 3157 // TODO 3158 // #define G_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_CAST ((pclass), G_TYPE_PARAM, GParamSpecClass)) 3159 3160 /* 3161 * Checks whether pclass "is a" valid GParamSpecClass structure of type 3162 * G_TYPE_PARAM or derived. 3163 * pclass : 3164 * a GParamSpecClass 3165 */ 3166 // TODO 3167 // #define G_IS_PARAM_SPEC_CLASS(pclass) (G_TYPE_CHECK_CLASS_TYPE ((pclass), G_TYPE_PARAM)) 3168 3169 /* 3170 * Retrieves the GParamSpecClass of a GParamSpec. 3171 * pspec : 3172 * a valid GParamSpec 3173 */ 3174 // TODO 3175 // #define G_PARAM_SPEC_GET_CLASS(pspec) (G_TYPE_INSTANCE_GET_CLASS ((pspec), G_TYPE_PARAM, GParamSpecClass)) 3176 3177 /* 3178 * Retrieves the GType of this pspec. 3179 * pspec : 3180 * a valid GParamSpec 3181 */ 3182 // TODO 3183 // #define G_PARAM_SPEC_TYPE(pspec) (G_TYPE_FROM_INSTANCE (pspec)) 3184 3185 /* 3186 * Retrieves the GType name of this pspec. 3187 * pspec : 3188 * a valid GParamSpec 3189 */ 3190 // TODO 3191 // #define G_PARAM_SPEC_TYPE_NAME(pspec) (g_type_name (G_PARAM_SPEC_TYPE (pspec))) 3192 3193 /* 3194 * Retrieves the GType to initialize a GValue for this parameter. 3195 * pspec : 3196 * a valid GParamSpec 3197 */ 3198 // TODO 3199 // #define G_PARAM_SPEC_VALUE_TYPE(pspec) (G_PARAM_SPEC (pspec)->value_type) 3200 3201 /* 3202 * Connects a GCallback function to a signal for a particular object. 3203 * The handler will be called before the default handler of the signal. 3204 * instance : 3205 * the instance to connect to. 3206 * detailed_signal : 3207 * a string of the form "signal-name::detail". 3208 * c_handler : 3209 * the GCallback to connect. 3210 * data : 3211 * data to pass to c_handler calls. 3212 * Returns : 3213 * the handler id 3214 */ 3215 // TODO 3216 // #define g_signal_connect(instance, detailed_signal, c_handler, data) 3217 3218 /* 3219 * Connects a GCallback function to a signal for a particular object. 3220 * The handler will be called after the default handler of the signal. 3221 * instance : 3222 * the instance to connect to. 3223 * detailed_signal : 3224 * a string of the form "signal-name::detail". 3225 * c_handler : 3226 * the GCallback to connect. 3227 * data : 3228 * data to pass to c_handler calls. 3229 * Returns : 3230 * the handler id 3231 */ 3232 // TODO 3233 // #define g_signal_connect_after(instance, detailed_signal, c_handler, data) 3234 3235 /* 3236 * Connects a GCallback function to a signal for a particular object. 3237 * The instance on which the signal is emitted and data will be swapped when 3238 * calling the handler. 3239 * instance : 3240 * the instance to connect to. 3241 * detailed_signal : 3242 * a string of the form "signal-name::detail". 3243 * c_handler : 3244 * the GCallback to connect. 3245 * data : 3246 * data to pass to c_handler calls. 3247 * Returns : 3248 * the handler id 3249 */ 3250 // TODO 3251 // #define g_signal_connect_swapped(instance, detailed_signal, c_handler, data) 3252 3253 /* 3254 * Blocks all handlers on an instance that match func and data. 3255 * instance : 3256 * The instance to block handlers from. 3257 * func : 3258 * The C closure callback of the handlers (useless for non-C closures). 3259 * data : 3260 * The closure data of the handlers' closures. 3261 * Returns : 3262 * The number of handlers that matched. 3263 */ 3264 // TODO 3265 // #define g_signal_handlers_block_by_func(instance, func, data) 3266 3267 /* 3268 * Unblocks all handlers on an instance that match func and data. 3269 * instance : 3270 * The instance to unblock handlers from. 3271 * func : 3272 * The C closure callback of the handlers (useless for non-C closures). 3273 * data : 3274 * The closure data of the handlers' closures. 3275 * Returns : 3276 * The number of handlers that matched. 3277 */ 3278 // TODO 3279 // #define g_signal_handlers_unblock_by_func(instance, func, data) 3280 3281 /* 3282 * Disconnects all handlers on an instance that match func and data. 3283 * instance : 3284 * The instance to remove handlers from. 3285 * func : 3286 * The C closure callback of the handlers (useless for non-C closures). 3287 * data : 3288 * The closure data of the handlers' closures. 3289 * Returns : 3290 * The number of handlers that matched. 3291 */ 3292 // TODO 3293 // #define g_signal_handlers_disconnect_by_func(instance, func, data) 3294 3295 /* 3296 * Disconnects all handlers on an instance that match data. 3297 * instance : 3298 * The instance to remove handlers from 3299 * data : 3300 * the closure data of the handlers' closures 3301 * Returns : 3302 * The number of handlers that matched. 3303 * Since 2.32 3304 */ 3305 // TODO 3306 // #define g_signal_handlers_disconnect_by_data(instance, data) 3307 3308 /* 3309 * Check if the closure still needs a marshaller. See g_closure_set_marshal(). 3310 * closure : 3311 * a GClosure 3312 * Returns : 3313 * TRUE if a GClosureMarshal marshaller has not yet been set on 3314 * closure. 3315 */ 3316 // TODO 3317 // #define G_CLOSURE_NEEDS_MARSHAL(closure) (((GClosure*) (closure))->marshal == NULL) 3318 3319 /* 3320 * Get the total number of notifiers connected with the closure cl. 3321 * The count includes the meta marshaller, the finalize and invalidate notifiers 3322 * and the marshal guards. Note that each guard counts as two notifiers. 3323 * See g_closure_set_meta_marshal(), g_closure_add_finalize_notifier(), 3324 * g_closure_add_invalidate_notifier() and g_closure_add_marshal_guards(). 3325 * cl : 3326 * a GClosure 3327 * Returns : 3328 * number of notifiers 3329 */ 3330 // TODO 3331 // #define G_CLOSURE_N_NOTIFIERS(cl) 3332 3333 /* 3334 * Checks whether the user data of the GCClosure should be passed as the 3335 * first parameter to the callback. See g_cclosure_new_swap(). 3336 * cclosure : 3337 * a GCClosure 3338 * Returns : 3339 * TRUE if data has to be swapped. 3340 */ 3341 // TODO 3342 // #define G_CCLOSURE_SWAP_DATA(cclosure) (((GClosure*) (cclosure))->derivative_flag) 3343 3344 /* 3345 * Cast a function pointer to a GCallback. 3346 * f : 3347 * a function pointer. 3348 */ 3349 // TODO 3350 // #define G_CALLBACK(f) ((GCallback) (f)) 3351 3352 /* 3353 * A callback function used by the type system to do base initialization 3354 * of the class structures of derived types. It is called as part of the 3355 * initialization process of all derived classes and should reallocate 3356 * or reset all dynamic class members copied over from the parent class. 3357 * For example, class members (such as strings) that are not sufficiently 3358 * handled by a plain memory copy of the parent class into the derived class 3359 * have to be altered. See GClassInitFunc() for a discussion of the class 3360 * intialization process. 3361 * g_class : 3362 * The GTypeClass structure to initialize. 3363 */ 3364 // void (*GBaseInitFunc) (gpointer g_class); 3365 public alias extern(C) void function(void* gClass) GBaseInitFunc; 3366 3367 /* 3368 * A callback function used by the type system to finalize those portions 3369 * of a derived types class structure that were setup from the corresponding 3370 * GBaseInitFunc() function. Class finalization basically works the inverse 3371 * way in which class intialization is performed. 3372 * See GClassInitFunc() for a discussion of the class intialization process. 3373 * g_class : 3374 * The GTypeClass structure to finalize. 3375 */ 3376 // void (*GBaseFinalizeFunc) (gpointer g_class); 3377 public alias extern(C) void function(void* gClass) GBaseFinalizeFunc; 3378 3379 /* 3380 * A callback function used by the type system to initialize the class 3381 * of a specific type. This function should initialize all static class 3382 * members. 3383 * The initialization process of a class involves: 3384 * 1 - Copying common members from the parent class over to the 3385 * derived class structure. 3386 * 2 - Zero initialization of the remaining members not copied 3387 * over from the parent class. 3388 * 3 - Invocation of the GBaseInitFunc() initializers of all parent 3389 * types and the class' type. 3390 * 4 - Invocation of the class' GClassInitFunc() initializer. 3391 * Since derived classes are partially initialized through a memory copy 3392 * of the parent class, the general rule is that GBaseInitFunc() and 3393 * GBaseFinalizeFunc() should take care of necessary reinitialization 3394 * and release of those class members that were introduced by the type 3395 * that specified these GBaseInitFunc()/GBaseFinalizeFunc(). 3396 * GClassInitFunc() should only care about initializing static 3397 * class members, while dynamic class members (such as allocated strings 3398 * or reference counted resources) are better handled by a GBaseInitFunc() 3399 * for this type, so proper initialization of the dynamic class members 3400 * is performed for class initialization of derived types as well. 3401 * An example may help to correspond the intend of the different class 3402 * initializers: 3403 * $(DDOC_COMMENT example) 3404 * Initialization of TypeBClass will first cause initialization of 3405 * TypeAClass (derived classes reference their parent classes, see 3406 * g_type_class_ref() on this). 3407 * Initialization of TypeAClass roughly involves zero-initializing its fields, 3408 * then calling its GBaseInitFunc() type_a_base_class_init() to allocate 3409 * its dynamic members (dynamic_string), and finally calling its GClassInitFunc() 3410 * type_a_class_init() to initialize its static members (static_integer). 3411 * The first step in the initialization process of TypeBClass is then 3412 * a plain memory copy of the contents of TypeAClass into TypeBClass and 3413 * zero-initialization of the remaining fields in TypeBClass. 3414 * The dynamic members of TypeAClass within TypeBClass now need 3415 * reinitialization which is performed by calling type_a_base_class_init() 3416 * with an argument of TypeBClass. 3417 * After that, the GBaseInitFunc() of TypeBClass, type_b_base_class_init() 3418 * is called to allocate the dynamic members of TypeBClass (dynamic_gstring), 3419 * and finally the GClassInitFunc() of TypeBClass, type_b_class_init(), 3420 * is called to complete the initialization process with the static members 3421 * (static_float). 3422 * Corresponding finalization counter parts to the GBaseInitFunc() functions 3423 * have to be provided to release allocated resources at class finalization 3424 * time. 3425 * g_class : 3426 * The GTypeClass structure to initialize. 3427 * class_data : 3428 * The class_data member supplied via the GTypeInfo structure. 3429 */ 3430 // void (*GClassInitFunc) (gpointer g_class, gpointer class_data); 3431 public alias extern(C) void function(void* gClass, void* classData) GClassInitFunc; 3432 3433 /* 3434 * A callback function used by the type system to finalize a class. 3435 * This function is rarely needed, as dynamically allocated class resources 3436 * should be handled by GBaseInitFunc() and GBaseFinalizeFunc(). 3437 * Also, specification of a GClassFinalizeFunc() in the GTypeInfo 3438 * structure of a static type is invalid, because classes of static types 3439 * will never be finalized (they are artificially kept alive when their 3440 * reference count drops to zero). 3441 * g_class : 3442 * The GTypeClass structure to finalize. 3443 * class_data : 3444 * The class_data member supplied via the GTypeInfo structure. 3445 */ 3446 // void (*GClassFinalizeFunc) (gpointer g_class, gpointer class_data); 3447 public alias extern(C) void function(void* gClass, void* classData) GClassFinalizeFunc; 3448 3449 /* 3450 * A callback function used by the type system to initialize a new 3451 * instance of a type. This function initializes all instance members and 3452 * allocates any resources required by it. 3453 * Initialization of a derived instance involves calling all its parent 3454 * types instance initializers, so the class member of the instance 3455 * is altered during its initialization to always point to the class that 3456 * belongs to the type the current initializer was introduced for. 3457 * instance : 3458 * The instance to initialize. 3459 * g_class : 3460 * The class of the type the instance is created for. 3461 */ 3462 // void (*GInstanceInitFunc) (GTypeInstance *instance, gpointer g_class); 3463 public alias extern(C) void function(GTypeInstance* instanc, void* gClass) GInstanceInitFunc; 3464 3465 /* 3466 * A callback function used by the type system to initialize a new 3467 * interface. This function should initialize all internal data and 3468 * allocate any resources required by the interface. 3469 * g_iface : 3470 * The interface structure to initialize. 3471 * iface_data : 3472 * The interface_data supplied via the GInterfaceInfo structure. 3473 */ 3474 // void (*GInterfaceInitFunc) (gpointer g_iface, gpointer iface_data); 3475 public alias extern(C) void function(void* gIface, void* ifaceData) GInterfaceInitFunc; 3476 3477 /* 3478 * A callback function used by the type system to finalize an interface. 3479 * This function should destroy any internal data and release any resources 3480 * allocated by the corresponding GInterfaceInitFunc() function. 3481 * g_iface : 3482 * The interface structure to finalize. 3483 * iface_data : 3484 * The interface_data supplied via the GInterfaceInfo structure. 3485 */ 3486 // void (*GInterfaceFinalizeFunc) (gpointer g_iface, gpointer iface_data); 3487 public alias extern(C) void function(void* gIface, void* ifaceData) GInterfaceFinalizeFunc; 3488 3489 /* 3490 * A callback function which is called when the reference count of a class 3491 * drops to zero. It may use g_type_class_ref() to prevent the class from 3492 * being freed. You should not call g_type_class_unref() from a 3493 * GTypeClassCacheFunc function to prevent infinite recursion, use 3494 * g_type_class_unref_uncached() instead. 3495 * The functions have to check the class id passed in to figure 3496 * whether they actually want to cache the class of this type, since all 3497 * classes are routed through the same GTypeClassCacheFunc chain. 3498 * cache_data : 3499 * data that was given to the g_type_add_class_cache_func() call 3500 * g_class : 3501 * The GTypeClass structure which is unreferenced 3502 * Returns : 3503 * TRUE to stop further GTypeClassCacheFuncs from being 3504 * called, FALSE to continue. 3505 */ 3506 // gboolean (*GTypeClassCacheFunc) (gpointer cache_data, GTypeClass *g_class); 3507 public alias extern(C) int function(void* cacheData, GTypeClass* gClass) GTypeClassCacheFunc; 3508 3509 /* 3510 * A callback called after an interface vtable is initialized. 3511 * See g_type_add_interface_check(). 3512 * check_data : 3513 * data passed to g_type_add_interface_check(). 3514 * g_iface : 3515 * the interface that has been initialized 3516 * Since 2.4 3517 */ 3518 // void (*GTypeInterfaceCheckFunc) (gpointer check_data, gpointer g_iface); 3519 public alias extern(C) void function(void* checkData, void* gIface) GTypeInterfaceCheckFunc; 3520 3521 /* 3522 * The type of the use_plugin function of GTypePluginClass, which gets called 3523 * to increase the use count of plugin. 3524 * plugin : 3525 * the GTypePlugin whose use count should be increased 3526 */ 3527 // void (*GTypePluginUse) (GTypePlugin *plugin); 3528 public alias extern(C) void function(GTypePlugin* plugin) GTypePluginUse; 3529 3530 /* 3531 * The type of the unuse_plugin function of GTypePluginClass. 3532 * plugin : 3533 * the GTypePlugin whose use count should be decreased 3534 */ 3535 // void (*GTypePluginUnuse) (GTypePlugin *plugin); 3536 public alias extern(C) void function(GTypePlugin* plugin) GTypePluginUnuse; 3537 3538 /* 3539 * The type of the complete_type_info function of GTypePluginClass. 3540 * plugin : 3541 * the GTypePlugin 3542 * g_type : 3543 * the GType whose info is completed 3544 * info : 3545 * the GTypeInfo struct to fill in 3546 * value_table : 3547 * the GTypeValueTable to fill in 3548 */ 3549 // void (*GTypePluginCompleteTypeInfo) (GTypePlugin *plugin, GType g_type, GTypeInfo *info, GTypeValueTable *value_table); 3550 public alias extern(C) void function(GTypePlugin* plugin, GType gType, GTypeInfo* info, GTypeValueTable* valueTable) GTypePluginCompleteTypeInfo; 3551 3552 /* 3553 * The type of the complete_interface_info function of GTypePluginClass. 3554 * plugin : 3555 * the GTypePlugin 3556 * instance_type : 3557 * the GType of an instantiable type to which the interface 3558 * is added 3559 * interface_type : 3560 * the GType of the interface whose info is completed 3561 * info : 3562 * the GInterfaceInfo to fill in 3563 */ 3564 // void (*GTypePluginCompleteInterfaceInfo) (GTypePlugin *plugin, GType instance_type, GType interface_type, GInterfaceInfo *info); 3565 public alias extern(C) void function(GTypePlugin* plugin, GType instanceType, GType interfaceType, GInterfaceInfo* info) GTypePluginCompleteInterfaceInfo; 3566 3567 /* 3568 * The type of the get_property function of GObjectClass. 3569 * object : 3570 * a GObject 3571 * property_id : 3572 * the numeric id under which the property was registered with 3573 * g_object_class_install_property(). 3574 * value : 3575 * a GValue to return the property value in 3576 * pspec : 3577 * the GParamSpec describing the property 3578 */ 3579 // void (*GObjectGetPropertyFunc) (GObject *object, guint property_id, GValue *value, GParamSpec *pspec); 3580 public alias extern(C) void function(GObject* object, uint propertyId, GValue* value, GParamSpec* pspec) GObjectGetPropertyFunc; 3581 3582 /* 3583 * The type of the set_property function of GObjectClass. 3584 * object : 3585 * a GObject 3586 * property_id : 3587 * the numeric id under which the property was registered with 3588 * g_object_class_install_property(). 3589 * value : 3590 * the new value for the property 3591 * pspec : 3592 * the GParamSpec describing the property 3593 */ 3594 // void (*GObjectSetPropertyFunc) (GObject *object, guint property_id, const GValue *value, GParamSpec *pspec); 3595 public alias extern(C) void function(GObject* object, uint propertyId, GValue* value, GParamSpec* pspec) GObjectSetPropertyFunc; 3596 3597 /* 3598 * The type of the finalize function of GObjectClass. 3599 * object : 3600 * the GObject being finalized 3601 */ 3602 // void (*GObjectFinalizeFunc) (GObject *object); 3603 public alias extern(C) void function(GObject* object) GObjectFinalizeFunc; 3604 3605 /* 3606 * A GWeakNotify function can be added to an object as a callback that gets 3607 * triggered when the object is finalized. Since the object is already being 3608 * finalized when the GWeakNotify is called, there's not much you could do 3609 * with the object, apart from e.g. using its address as hash-index or the like. 3610 * data : 3611 * data that was provided when the weak reference was established 3612 * where_the_object_was : 3613 * the object being finalized 3614 */ 3615 // void (*GWeakNotify) (gpointer data, GObject *where_the_object_was); 3616 public alias extern(C) void function(void* data, GObject* whereTheObjectWas) GWeakNotify; 3617 3618 /* 3619 * A callback function used for notification when the state 3620 * of a toggle reference changes. See g_object_add_toggle_ref(). 3621 * data : 3622 * Callback data passed to g_object_add_toggle_ref() 3623 * object : 3624 * The object on which g_object_add_toggle_ref() was called. 3625 * is_last_ref : 3626 * TRUE if the toggle reference is now the 3627 * last reference to the object. FALSE if the toggle 3628 * reference was the last reference and there are now other 3629 * references. 3630 */ 3631 // void (*GToggleNotify) (gpointer data, GObject *object, gboolean is_last_ref); 3632 public alias extern(C) void function(void* data, GObject* object, int isLastRef) GToggleNotify; 3633 3634 /* 3635 * This function is provided by the user and should produce a copy 3636 * of the passed in boxed structure. 3637 * boxed : 3638 * The boxed structure to be copied. 3639 * Returns : 3640 * The newly created copy of the boxed structure. 3641 */ 3642 // gpointer (*GBoxedCopyFunc) (gpointer boxed); 3643 public alias extern(C) void* function(void* boxed) GBoxedCopyFunc; 3644 3645 /* 3646 * This function is provided by the user and should free the boxed 3647 * structure passed. 3648 * boxed : 3649 * The boxed structure to be freed. 3650 */ 3651 // void (*GBoxedFreeFunc) (gpointer boxed); 3652 public alias extern(C) void function(void* boxed) GBoxedFreeFunc; 3653 3654 /* 3655 * The type of value transformation functions which can be registered with 3656 * g_value_register_transform_func(). 3657 * src_value : 3658 * Source value. 3659 * dest_value : 3660 * Target value. 3661 */ 3662 // void (*GValueTransform) (const GValue *src_value, GValue *dest_value); 3663 public alias extern(C) void function(GValue* srcValue, GValue* destValue) GValueTransform; 3664 3665 /* 3666 * The signal accumulator is a special callback function that can be used 3667 * to collect return values of the various callbacks that are called 3668 * during a signal emission. The signal accumulator is specified at signal 3669 * creation time, if it is left NULL, no accumulation of callback return 3670 * values is performed. The return value of signal emissions is then the 3671 * value returned by the last callback. 3672 * ihint : 3673 * Signal invocation hint, see GSignalInvocationHint. 3674 * return_accu : 3675 * Accumulator to collect callback return values in, this 3676 * is the return value of the current signal emission. 3677 * handler_return : 3678 * A GValue holding the return value of the signal handler. 3679 * data : 3680 * Callback data that was specified when creating the signal. 3681 * Returns : 3682 * The accumulator function returns whether the signal emission 3683 * should be aborted. Returning FALSE means to abort the 3684 * current emission and TRUE is returned for continuation. 3685 */ 3686 // gboolean (*GSignalAccumulator) (GSignalInvocationHint *ihint, GValue *return_accu, const GValue *handler_return, gpointer data); 3687 public alias extern(C) int function(GSignalInvocationHint* ihint, GValue* returnAccu, GValue* handlerReturn, void* data) GSignalAccumulator; 3688 3689 /* 3690 * A simple function pointer to get invoked when the signal is emitted. This 3691 * allows you to tie a hook to the signal type, so that it will trap all 3692 * emissions of that signal, from any object. 3693 * You may not attach these to signals created with the G_SIGNAL_NO_HOOKS flag. 3694 * ihint : 3695 * Signal invocation hint, see GSignalInvocationHint. 3696 * n_param_values : 3697 * the number of parameters to the function, including 3698 * the instance on which the signal was emitted. 3699 * param_values : 3700 * the instance on which 3701 * the signal was emitted, followed by the parameters of the emission. [array length=n_param_values] 3702 * data : 3703 * user data associated with the hook. 3704 * Returns : 3705 * whether it wants to stay connected. If it returns FALSE, the signal 3706 * hook is disconnected (and destroyed). 3707 */ 3708 // gboolean (*GSignalEmissionHook) (GSignalInvocationHint *ihint, guint n_param_values, const GValue *param_values, gpointer data); 3709 public alias extern(C) int function(GSignalInvocationHint* ihint, uint nParamValues, GValue* paramValues, void* data) GSignalEmissionHook; 3710 3711 /* 3712 * The type used for callback functions in structure definitions and function 3713 * signatures. This doesn't mean that all callback functions must take no 3714 * parameters and return void. The required signature of a callback function 3715 * is determined by the context in which is used (e.g. the signal to which it 3716 * is connected). Use G_CALLBACK() to cast the callback function to a GCallback. 3717 */ 3718 // void (*GCallback) (void); 3719 public alias extern(C) void function() GCallback; 3720 3721 /* 3722 * The type used for marshaller functions. 3723 * closure : 3724 * the GClosure to which the marshaller belongs 3725 * return_value : 3726 * a GValue to store the return 3727 * value. May be NULL if the callback of closure doesn't return a 3728 * value. [allow-none] 3729 * n_param_values : 3730 * the length of the param_values array 3731 * param_values : 3732 * an array of 3733 * GValues holding the arguments on which to invoke the 3734 * callback of closure. [array length=n_param_values] 3735 * invocation_hint : 3736 * the invocation hint given as the 3737 * last argument to g_closure_invoke(). [allow-none] 3738 * marshal_data : 3739 * additional data specified when 3740 * registering the marshaller, see g_closure_set_marshal() and 3741 * g_closure_set_meta_marshal(). [allow-none] 3742 */ 3743 // void (*GClosureMarshal) (GClosure *closure, GValue *return_value, guint n_param_values, const GValue *param_values, gpointer invocation_hint, gpointer marshal_data); 3744 public alias extern(C) void function(GClosure* closure, GValue* returnValue, uint nParamValues, GValue* paramValues, void* invocationHint, void* marshalData) GClosureMarshal; 3745 3746 /* 3747 */ 3748 // void (*GVaClosureMarshal) (GClosure *closure, GValue *return_value, gpointer instance, va_list args, gpointer marshal_data, int n_params, GType *param_types); 3749 public alias extern(C) void function(GClosure* closure, GValue* returnValue, void* instanc, void* args, void* marshalData, int nParams, GType* paramTypes) GVaClosureMarshal; 3750 3751 /* 3752 * The type used for the various notification callbacks which can be registered 3753 * on closures. 3754 * data : 3755 * data specified when registering the notification callback 3756 * closure : 3757 * the GClosure on which the notification is emitted 3758 */ 3759 // void (*GClosureNotify) (gpointer data, GClosure *closure); 3760 public alias extern(C) void function(void* data, GClosure* closure) GClosureNotify; 3761 3762 /* 3763 * A function to be called to transform the source property of source 3764 * from source_value into the target property of target 3765 * using target_value. 3766 * binding : 3767 * a GBinding 3768 * source_value : 3769 * the value of the source property 3770 * target_value : 3771 * the value of the target property 3772 * user_data : 3773 * data passed to the transform function 3774 * Returns : 3775 * TRUE if the transformation was successful, and FALSE 3776 * otherwise 3777 * Since 2.26 3778 */ 3779 // gboolean (*GBindingTransformFunc) (GBinding *binding, const GValue *source_value, GValue *target_value, gpointer user_data); 3780 public alias extern(C) int function(GBinding* binding, GValue* sourceValue, GValue* targetValue, void* userData) GBindingTransformFunc;