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 25 module gtkc.gobjecttypes; 26 27 public import gtkc.glibtypes; 28 29 /** 30 * This is the signature of marshaller functions, required to marshall 31 * arrays of parameter values to signal emissions into C language callback 32 * invocations. It is merely an alias to #GClosureMarshal since the #GClosure 33 * mechanism takes over responsibility of actual function invocation for the 34 * signal system. 35 */ 36 public alias GClosureMarshal GSignalCMarshaller; 37 38 /** 39 * This is the signature of va_list marshaller functions, an optional 40 * marshaller that can be used in some situations to avoid 41 * marshalling the signal argument into GValues. 42 */ 43 public alias GVaClosureMarshal GSignalCVaMarshaller; 44 45 /** 46 * A value which represents the unique identifier of a registered type. 47 */ 48 enum GType : size_t 49 { 50 INVALID = 0<<2, 51 NONE = 1<<2, 52 INTERFACE = 2<<2, 53 CHAR = 3<<2, 54 UCHAR = 4<<2, 55 BOOLEAN = 5<<2, 56 INT = 6<<2, 57 UINT = 7<<2, 58 LONG = 8<<2, 59 ULONG = 9<<2, 60 INT64 = 10<<2, 61 UINT64 = 11<<2, 62 ENUM = 12<<2, 63 FLAGS = 13<<2, 64 FLOAT = 14<<2, 65 DOUBLE = 15<<2, 66 STRING = 16<<2, 67 POINTER = 17<<2, 68 BOXED = 18<<2, 69 PARAM = 19<<2, 70 OBJECT = 20<<2, 71 VARIANT = 21<<2, 72 } 73 74 /** 75 * Flags to be passed to g_object_bind_property() or 76 * g_object_bind_property_full(). 77 * 78 * This enumeration can be extended at later date. 79 * 80 * Since: 2.26 81 */ 82 public enum GBindingFlags 83 { 84 /** 85 * The default binding; if the source property 86 * changes, the target property is updated with its value. 87 */ 88 DEFAULT = 0, 89 /** 90 * Bidirectional binding; if either the 91 * property of the source or the property of the target changes, 92 * the other is updated. 93 */ 94 BIDIRECTIONAL = 1, 95 /** 96 * Synchronize the values of the source and 97 * target properties when creating the binding; the direction of 98 * the synchronization is always from the source to the target. 99 */ 100 SYNC_CREATE = 2, 101 /** 102 * If the two properties being bound are 103 * booleans, setting one to %TRUE will result in the other being 104 * set to %FALSE and vice versa. This flag will only work for 105 * boolean properties, and cannot be used when passing custom 106 * transformation functions to g_object_bind_property_full(). 107 */ 108 INVERT_BOOLEAN = 4, 109 } 110 alias GBindingFlags BindingFlags; 111 112 /** 113 * The connection flags are used to specify the behaviour of a signal's 114 * connection. 115 */ 116 public enum GConnectFlags 117 { 118 /** 119 * whether the handler should be called before or after the 120 * default handler of the signal. 121 */ 122 AFTER = 1, 123 /** 124 * whether the instance and data should be swapped when 125 * calling the handler; see g_signal_connect_swapped() for an example. 126 */ 127 SWAPPED = 2, 128 } 129 alias GConnectFlags ConnectFlags; 130 131 /** 132 * Through the #GParamFlags flag values, certain aspects of parameters 133 * can be configured. See also #G_PARAM_READWRITE and #G_PARAM_STATIC_STRINGS. 134 */ 135 public enum GParamFlags : uint 136 { 137 /** 138 * the parameter is readable 139 */ 140 READABLE = 1, 141 /** 142 * the parameter is writable 143 */ 144 WRITABLE = 2, 145 /** 146 * alias for %G_PARAM_READABLE | %G_PARAM_WRITABLE 147 */ 148 READWRITE = 3, 149 /** 150 * the parameter will be set upon object construction 151 */ 152 CONSTRUCT = 4, 153 /** 154 * the parameter will only be set upon object construction 155 */ 156 CONSTRUCT_ONLY = 8, 157 /** 158 * upon parameter conversion (see g_param_value_convert()) 159 * strict validation is not required 160 */ 161 LAX_VALIDATION = 16, 162 /** 163 * the string used as name when constructing the 164 * parameter is guaranteed to remain valid and 165 * unmodified for the lifetime of the parameter. 166 * Since 2.8 167 */ 168 STATIC_NAME = 32, 169 /** 170 * internal 171 */ 172 PRIVATE = 32, 173 /** 174 * the string used as nick when constructing the 175 * parameter is guaranteed to remain valid and 176 * unmmodified for the lifetime of the parameter. 177 * Since 2.8 178 */ 179 STATIC_NICK = 64, 180 /** 181 * the string used as blurb when constructing the 182 * parameter is guaranteed to remain valid and 183 * unmodified for the lifetime of the parameter. 184 * Since 2.8 185 */ 186 STATIC_BLURB = 128, 187 /** 188 * calls to g_object_set_property() for this 189 * property will not automatically result in a "notify" signal being 190 * emitted: the implementation must call g_object_notify() themselves 191 * in case the property actually changes. Since: 2.42. 192 */ 193 EXPLICIT_NOTIFY = 1073741824, 194 /** 195 * the parameter is deprecated and will be removed 196 * in a future version. A warning will be generated if it is used 197 * while running with G_ENABLE_DIAGNOSTIC=1. 198 * Since 2.26 199 */ 200 DEPRECATED = 2147483648, 201 } 202 alias GParamFlags ParamFlags; 203 204 /** 205 * The signal flags are used to specify a signal's behaviour, the overall 206 * signal description outlines how especially the RUN flags control the 207 * stages of a signal emission. 208 */ 209 public enum GSignalFlags 210 { 211 /** 212 * Invoke the object method handler in the first emission stage. 213 */ 214 RUN_FIRST = 1, 215 /** 216 * Invoke the object method handler in the third emission stage. 217 */ 218 RUN_LAST = 2, 219 /** 220 * Invoke the object method handler in the last emission stage. 221 */ 222 RUN_CLEANUP = 4, 223 /** 224 * Signals being emitted for an object while currently being in 225 * emission for this very object will not be emitted recursively, 226 * but instead cause the first emission to be restarted. 227 */ 228 NO_RECURSE = 8, 229 /** 230 * This signal supports "::detail" appendices to the signal name 231 * upon handler connections and emissions. 232 */ 233 DETAILED = 16, 234 /** 235 * Action signals are signals that may freely be emitted on alive 236 * objects from user code via g_signal_emit() and friends, without 237 * the need of being embedded into extra code that performs pre or 238 * post emission adjustments on the object. They can also be thought 239 * of as object methods which can be called generically by 240 * third-party code. 241 */ 242 ACTION = 32, 243 /** 244 * No emissions hooks are supported for this signal. 245 */ 246 NO_HOOKS = 64, 247 /** 248 * Varargs signal emission will always collect the 249 * arguments, even if there are no signal handlers connected. Since 2.30. 250 */ 251 MUST_COLLECT = 128, 252 /** 253 * The signal is deprecated and will be removed 254 * in a future version. A warning will be generated if it is connected while 255 * running with G_ENABLE_DIAGNOSTIC=1. Since 2.32. 256 */ 257 DEPRECATED = 256, 258 } 259 alias GSignalFlags SignalFlags; 260 261 /** 262 * The match types specify what g_signal_handlers_block_matched(), 263 * g_signal_handlers_unblock_matched() and g_signal_handlers_disconnect_matched() 264 * match signals by. 265 */ 266 public enum GSignalMatchType 267 { 268 /** 269 * The signal id must be equal. 270 */ 271 ID = 1, 272 /** 273 * The signal detail be equal. 274 */ 275 DETAIL = 2, 276 /** 277 * The closure must be the same. 278 */ 279 CLOSURE = 4, 280 /** 281 * The C closure callback must be the same. 282 */ 283 FUNC = 8, 284 /** 285 * The closure data must be the same. 286 */ 287 DATA = 16, 288 /** 289 * Only unblocked signals may matched. 290 */ 291 UNBLOCKED = 32, 292 } 293 alias GSignalMatchType SignalMatchType; 294 295 /** 296 * These flags used to be passed to g_type_init_with_debug_flags() which 297 * is now deprecated. 298 * 299 * If you need to enable debugging features, use the GOBJECT_DEBUG 300 * environment variable. 301 * 302 * Deprecated: g_type_init() is now done automatically 303 */ 304 public enum GTypeDebugFlags 305 { 306 /** 307 * Print no messages 308 */ 309 NONE = 0, 310 /** 311 * Print messages about object bookkeeping 312 */ 313 OBJECTS = 1, 314 /** 315 * Print messages about signal emissions 316 */ 317 SIGNALS = 2, 318 /** 319 * Mask covering all debug flags 320 */ 321 MASK = 3, 322 } 323 alias GTypeDebugFlags TypeDebugFlags; 324 325 /** 326 * Bit masks used to check or determine characteristics of a type. 327 */ 328 public enum GTypeFlags 329 { 330 /** 331 * Indicates an abstract type. No instances can be 332 * created for an abstract type 333 */ 334 ABSTRACT = 16, 335 /** 336 * Indicates an abstract value type, i.e. a type 337 * that introduces a value table, but can't be used for 338 * g_value_init() 339 */ 340 VALUE_ABSTRACT = 32, 341 } 342 alias GTypeFlags TypeFlags; 343 344 /** 345 * Bit masks used to check or determine specific characteristics of a 346 * fundamental type. 347 */ 348 public enum GTypeFundamentalFlags 349 { 350 /** 351 * Indicates a classed type 352 */ 353 CLASSED = 1, 354 /** 355 * Indicates an instantiable type (implies classed) 356 */ 357 INSTANTIATABLE = 2, 358 /** 359 * Indicates a flat derivable type 360 */ 361 DERIVABLE = 4, 362 /** 363 * Indicates a deep derivable type (implies derivable) 364 */ 365 DEEP_DERIVABLE = 8, 366 } 367 alias GTypeFundamentalFlags TypeFundamentalFlags; 368 369 struct GBinding; 370 371 /** 372 * A #GCClosure is a specialization of #GClosure for C function callbacks. 373 */ 374 struct GCClosure 375 { 376 /** 377 * the #GClosure 378 */ 379 GClosure closure; 380 /** 381 * the callback function 382 */ 383 void* callback; 384 } 385 386 struct GClosure 387 { 388 import std.bitmanip: bitfields; 389 mixin(bitfields!( 390 uint, "refCount", 15, 391 uint, "metaMarshalNouse", 1, 392 uint, "nGuards", 1, 393 uint, "nFnotifiers", 2, 394 uint, "nInotifiers", 8, 395 uint, "inInotify", 1, 396 uint, "floating", 1, 397 uint, "derivativeFlag", 1, 398 uint, "inMarshal", 1, 399 uint, "isInvalid", 1 400 )); 401 extern(C) void function(GClosure* closure, GValue* returnValue, uint nParamValues, GValue* paramValues, void* invocationHint, void* marshalData) marshal; 402 void* data; 403 GClosureNotifyData* notifiers; 404 } 405 406 struct GClosureNotifyData 407 { 408 void* data; 409 GClosureNotify notify; 410 } 411 412 /** 413 * The class of an enumeration type holds information about its 414 * possible values. 415 */ 416 struct GEnumClass 417 { 418 /** 419 * the parent class 420 */ 421 GTypeClass gTypeClass; 422 /** 423 * the smallest possible value. 424 */ 425 int minimum; 426 /** 427 * the largest possible value. 428 */ 429 int maximum; 430 /** 431 * the number of possible values. 432 */ 433 uint nValues; 434 /** 435 * an array of #GEnumValue structs describing the 436 * individual values. 437 */ 438 GEnumValue* values; 439 } 440 441 /** 442 * A structure which contains a single enum value, its name, and its 443 * nickname. 444 */ 445 struct GEnumValue 446 { 447 /** 448 * the enum value 449 */ 450 int value; 451 /** 452 * the name of the value 453 */ 454 const(char)* valueName; 455 /** 456 * the nickname of the value 457 */ 458 const(char)* valueNick; 459 } 460 461 /** 462 * The class of a flags type holds information about its 463 * possible values. 464 */ 465 struct GFlagsClass 466 { 467 /** 468 * the parent class 469 */ 470 GTypeClass gTypeClass; 471 /** 472 * a mask covering all possible values. 473 */ 474 uint mask; 475 /** 476 * the number of possible values. 477 */ 478 uint nValues; 479 /** 480 * an array of #GFlagsValue structs describing the 481 * individual values. 482 */ 483 GFlagsValue* values; 484 } 485 486 /** 487 * A structure which contains a single flags value, its name, and its 488 * nickname. 489 */ 490 struct GFlagsValue 491 { 492 /** 493 * the flags value 494 */ 495 uint value; 496 /** 497 * the name of the value 498 */ 499 const(char)* valueName; 500 /** 501 * the nickname of the value 502 */ 503 const(char)* valueNick; 504 } 505 506 /** 507 * A structure that provides information to the type system which is 508 * used specifically for managing interface types. 509 */ 510 struct GInterfaceInfo 511 { 512 /** 513 * location of the interface initialization function 514 */ 515 GInterfaceInitFunc interfaceInit; 516 /** 517 * location of the interface finalization function 518 */ 519 GInterfaceFinalizeFunc interfaceFinalize; 520 /** 521 * user-supplied data passed to the interface init/finalize functions 522 */ 523 void* interfaceData; 524 } 525 526 struct GObject 527 { 528 GTypeInstance gTypeInstance; 529 uint refCount; 530 GData* qdata; 531 } 532 533 struct GObjectClass 534 { 535 /** 536 * the parent class 537 */ 538 GTypeClass gTypeClass; 539 GSList* constructProperties; 540 extern(C) GObject* function(GType type, uint nConstructProperties, GObjectConstructParam* constructProperties) constructor; 541 extern(C) void function(GObject* object, uint propertyId, GValue* value, GParamSpec* pspec) setProperty; 542 extern(C) void function(GObject* object, uint propertyId, GValue* value, GParamSpec* pspec) getProperty; 543 extern(C) void function(GObject* object) dispose; 544 extern(C) void function(GObject* object) finalize; 545 extern(C) void function(GObject* object, uint nPspecs, GParamSpec** pspecs) dispatchPropertiesChanged; 546 extern(C) void function(GObject* object, GParamSpec* pspec) notify; 547 extern(C) void function(GObject* object) constructed; 548 size_t flags; 549 void*[6] pdummy; 550 } 551 552 /** 553 * The GObjectConstructParam struct is an auxiliary 554 * structure used to hand #GParamSpec/#GValue pairs to the @constructor of 555 * a #GObjectClass. 556 */ 557 struct GObjectConstructParam 558 { 559 /** 560 * the #GParamSpec of the construct parameter 561 */ 562 GParamSpec* pspec; 563 /** 564 * the value to set the parameter to 565 */ 566 GValue* value; 567 } 568 569 struct GParamSpec 570 { 571 /** 572 * private #GTypeInstance portion 573 */ 574 GTypeInstance gTypeInstance; 575 /** 576 * name of this parameter: always an interned string 577 */ 578 const(char)* name; 579 /** 580 * #GParamFlags flags for this parameter 581 */ 582 GParamFlags flags; 583 /** 584 * the #GValue type for this parameter 585 */ 586 GType valueType; 587 /** 588 * #GType type that uses (introduces) this parameter 589 */ 590 GType ownerType; 591 char* Nick; 592 char* Blurb; 593 GData* qdata; 594 uint refCount; 595 uint paramId; 596 } 597 598 struct GParamSpecBoolean 599 { 600 /** 601 * private #GParamSpec portion 602 */ 603 GParamSpec parentInstance; 604 /** 605 * default value for the property specified 606 */ 607 bool defaultValue; 608 } 609 610 struct GParamSpecBoxed 611 { 612 /** 613 * private #GParamSpec portion 614 */ 615 GParamSpec parentInstance; 616 } 617 618 struct GParamSpecChar 619 { 620 /** 621 * private #GParamSpec portion 622 */ 623 GParamSpec parentInstance; 624 /** 625 * minimum value for the property specified 626 */ 627 byte minimum; 628 /** 629 * maximum value for the property specified 630 */ 631 byte maximum; 632 /** 633 * default value for the property specified 634 */ 635 byte defaultValue; 636 } 637 638 /** 639 * The class structure for the GParamSpec type. 640 * Normally, GParamSpec classes are filled by 641 * g_param_type_register_static(). 642 */ 643 struct GParamSpecClass 644 { 645 /** 646 * the parent class 647 */ 648 GTypeClass gTypeClass; 649 /** 650 * the #GValue type for this parameter 651 */ 652 GType valueType; 653 extern(C) void function(GParamSpec* pspec) finalize; 654 extern(C) void function(GParamSpec* pspec, GValue* value) valueSetDefault; 655 extern(C) int function(GParamSpec* pspec, GValue* value) valueValidate; 656 extern(C) int function(GParamSpec* pspec, GValue* value1, GValue* value2) valuesCmp; 657 void*[4] dummy; 658 } 659 660 struct GParamSpecDouble 661 { 662 /** 663 * private #GParamSpec portion 664 */ 665 GParamSpec parentInstance; 666 /** 667 * minimum value for the property specified 668 */ 669 double minimum; 670 /** 671 * maximum value for the property specified 672 */ 673 double maximum; 674 /** 675 * default value for the property specified 676 */ 677 double defaultValue; 678 /** 679 * values closer than @epsilon will be considered identical 680 * by g_param_values_cmp(); the default value is 1e-90. 681 */ 682 double epsilon; 683 } 684 685 struct GParamSpecEnum 686 { 687 /** 688 * private #GParamSpec portion 689 */ 690 GParamSpec parentInstance; 691 /** 692 * the #GEnumClass for the enum 693 */ 694 GEnumClass* enumClass; 695 /** 696 * default value for the property specified 697 */ 698 int defaultValue; 699 } 700 701 struct GParamSpecFlags 702 { 703 /** 704 * private #GParamSpec portion 705 */ 706 GParamSpec parentInstance; 707 /** 708 * the #GFlagsClass for the flags 709 */ 710 GFlagsClass* flagsClass; 711 /** 712 * default value for the property specified 713 */ 714 uint defaultValue; 715 } 716 717 struct GParamSpecFloat 718 { 719 /** 720 * private #GParamSpec portion 721 */ 722 GParamSpec parentInstance; 723 /** 724 * minimum value for the property specified 725 */ 726 float minimum; 727 /** 728 * maximum value for the property specified 729 */ 730 float maximum; 731 /** 732 * default value for the property specified 733 */ 734 float defaultValue; 735 /** 736 * values closer than @epsilon will be considered identical 737 * by g_param_values_cmp(); the default value is 1e-30. 738 */ 739 float epsilon; 740 } 741 742 struct GParamSpecGType 743 { 744 /** 745 * private #GParamSpec portion 746 */ 747 GParamSpec parentInstance; 748 /** 749 * a #GType whose subtypes can occur as values 750 */ 751 GType isAType; 752 } 753 754 struct GParamSpecInt 755 { 756 /** 757 * private #GParamSpec portion 758 */ 759 GParamSpec parentInstance; 760 /** 761 * minimum value for the property specified 762 */ 763 int minimum; 764 /** 765 * maximum value for the property specified 766 */ 767 int maximum; 768 /** 769 * default value for the property specified 770 */ 771 int defaultValue; 772 } 773 774 struct GParamSpecInt64 775 { 776 /** 777 * private #GParamSpec portion 778 */ 779 GParamSpec parentInstance; 780 /** 781 * minimum value for the property specified 782 */ 783 long minimum; 784 /** 785 * maximum value for the property specified 786 */ 787 long maximum; 788 /** 789 * default value for the property specified 790 */ 791 long defaultValue; 792 } 793 794 struct GParamSpecLong 795 { 796 /** 797 * private #GParamSpec portion 798 */ 799 GParamSpec parentInstance; 800 /** 801 * minimum value for the property specified 802 */ 803 glong minimum; 804 /** 805 * maximum value for the property specified 806 */ 807 glong maximum; 808 /** 809 * default value for the property specified 810 */ 811 glong defaultValue; 812 } 813 814 struct GParamSpecObject 815 { 816 /** 817 * private #GParamSpec portion 818 */ 819 GParamSpec parentInstance; 820 } 821 822 struct GParamSpecOverride 823 { 824 GParamSpec parentInstance; 825 GParamSpec* overridden; 826 } 827 828 struct GParamSpecParam 829 { 830 /** 831 * private #GParamSpec portion 832 */ 833 GParamSpec parentInstance; 834 } 835 836 struct GParamSpecPointer 837 { 838 /** 839 * private #GParamSpec portion 840 */ 841 GParamSpec parentInstance; 842 } 843 844 struct GParamSpecPool; 845 846 struct GParamSpecString 847 { 848 /** 849 * private #GParamSpec portion 850 */ 851 GParamSpec parentInstance; 852 /** 853 * default value for the property specified 854 */ 855 char* defaultValue; 856 /** 857 * a string containing the allowed values for the first byte 858 */ 859 char* csetFirst; 860 /** 861 * a string containing the allowed values for the subsequent bytes 862 */ 863 char* csetNth; 864 /** 865 * the replacement byte for bytes which don't match @cset_first or @cset_nth. 866 */ 867 char substitutor; 868 import std.bitmanip: bitfields; 869 mixin(bitfields!( 870 uint, "nullFoldIfEmpty", 1, 871 uint, "ensureNonNull", 1, 872 uint, "", 30 873 )); 874 } 875 876 /** 877 * This structure is used to provide the type system with the information 878 * required to initialize and destruct (finalize) a parameter's class and 879 * instances thereof. 880 * The initialized structure is passed to the g_param_type_register_static() 881 * The type system will perform a deep copy of this structure, so its memory 882 * does not need to be persistent across invocation of 883 * g_param_type_register_static(). 884 */ 885 struct GParamSpecTypeInfo 886 { 887 /** 888 * Size of the instance (object) structure. 889 */ 890 ushort instanceSize; 891 /** 892 * Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the [slice allocator][glib-Memory-Slices] now. 893 */ 894 ushort nPreallocs; 895 extern(C) void function(GParamSpec* pspec) instanceInit; 896 /** 897 * The #GType of values conforming to this #GParamSpec 898 */ 899 GType valueType; 900 extern(C) void function(GParamSpec* pspec) finalize; 901 extern(C) void function(GParamSpec* pspec, GValue* value) valueSetDefault; 902 extern(C) int function(GParamSpec* pspec, GValue* value) valueValidate; 903 extern(C) int function(GParamSpec* pspec, GValue* value1, GValue* value2) valuesCmp; 904 } 905 906 struct GParamSpecUChar 907 { 908 /** 909 * private #GParamSpec portion 910 */ 911 GParamSpec parentInstance; 912 /** 913 * minimum value for the property specified 914 */ 915 ubyte minimum; 916 /** 917 * maximum value for the property specified 918 */ 919 ubyte maximum; 920 /** 921 * default value for the property specified 922 */ 923 ubyte defaultValue; 924 } 925 926 struct GParamSpecUInt 927 { 928 /** 929 * private #GParamSpec portion 930 */ 931 GParamSpec parentInstance; 932 /** 933 * minimum value for the property specified 934 */ 935 uint minimum; 936 /** 937 * maximum value for the property specified 938 */ 939 uint maximum; 940 /** 941 * default value for the property specified 942 */ 943 uint defaultValue; 944 } 945 946 struct GParamSpecUInt64 947 { 948 /** 949 * private #GParamSpec portion 950 */ 951 GParamSpec parentInstance; 952 /** 953 * minimum value for the property specified 954 */ 955 ulong minimum; 956 /** 957 * maximum value for the property specified 958 */ 959 ulong maximum; 960 /** 961 * default value for the property specified 962 */ 963 ulong defaultValue; 964 } 965 966 struct GParamSpecULong 967 { 968 /** 969 * private #GParamSpec portion 970 */ 971 GParamSpec parentInstance; 972 /** 973 * minimum value for the property specified 974 */ 975 gulong minimum; 976 /** 977 * maximum value for the property specified 978 */ 979 gulong maximum; 980 /** 981 * default value for the property specified 982 */ 983 gulong defaultValue; 984 } 985 986 struct GParamSpecUnichar 987 { 988 /** 989 * private #GParamSpec portion 990 */ 991 GParamSpec parentInstance; 992 /** 993 * default value for the property specified 994 */ 995 dchar defaultValue; 996 } 997 998 struct GParamSpecValueArray 999 { 1000 /** 1001 * private #GParamSpec portion 1002 */ 1003 GParamSpec parentInstance; 1004 /** 1005 * a #GParamSpec describing the elements contained in arrays of this property, may be %NULL 1006 */ 1007 GParamSpec* elementSpec; 1008 /** 1009 * if greater than 0, arrays of this property will always have this many elements 1010 */ 1011 uint fixedNElements; 1012 } 1013 1014 struct GParamSpecVariant 1015 { 1016 /** 1017 * private #GParamSpec portion 1018 */ 1019 GParamSpec parentInstance; 1020 /** 1021 * a #GVariantType, or %NULL 1022 */ 1023 GVariantType* type; 1024 /** 1025 * a #GVariant, or %NULL 1026 */ 1027 GVariant* defaultValue; 1028 void*[4] padding; 1029 } 1030 1031 /** 1032 * The GParameter struct is an auxiliary structure used 1033 * to hand parameter name/value pairs to g_object_newv(). 1034 */ 1035 struct GParameter 1036 { 1037 /** 1038 * the parameter name 1039 */ 1040 const(char)* name; 1041 /** 1042 * the parameter value 1043 */ 1044 GValue value; 1045 } 1046 1047 /** 1048 * The #GSignalInvocationHint structure is used to pass on additional information 1049 * to callbacks during a signal emission. 1050 */ 1051 struct GSignalInvocationHint 1052 { 1053 /** 1054 * The signal id of the signal invoking the callback 1055 */ 1056 uint signalId; 1057 /** 1058 * The detail passed on for this emission 1059 */ 1060 GQuark detail; 1061 /** 1062 * The stage the signal emission is currently in, this 1063 * field will contain one of %G_SIGNAL_RUN_FIRST, 1064 * %G_SIGNAL_RUN_LAST or %G_SIGNAL_RUN_CLEANUP. 1065 */ 1066 GSignalFlags runType; 1067 } 1068 1069 /** 1070 * A structure holding in-depth information for a specific signal. It is 1071 * filled in by the g_signal_query() function. 1072 */ 1073 struct GSignalQuery 1074 { 1075 /** 1076 * The signal id of the signal being queried, or 0 if the 1077 * signal to be queried was unknown. 1078 */ 1079 uint signalId; 1080 /** 1081 * The signal name. 1082 */ 1083 const(char)* signalName; 1084 /** 1085 * The interface/instance type that this signal can be emitted for. 1086 */ 1087 GType itype; 1088 /** 1089 * The signal flags as passed in to g_signal_new(). 1090 */ 1091 GSignalFlags signalFlags; 1092 /** 1093 * The return type for user callbacks. 1094 */ 1095 GType returnType; 1096 /** 1097 * The number of parameters that user callbacks take. 1098 */ 1099 uint nParams; 1100 /** 1101 * The individual parameter types for 1102 * user callbacks, note that the effective callback signature is: 1103 * |[<!-- language="C" --> 1104 * @return_type callback (#gpointer data1, 1105 * [param_types param_names,] 1106 * gpointer data2); 1107 * ]| 1108 */ 1109 GType* paramTypes; 1110 } 1111 1112 /** 1113 * A union holding one collected value. 1114 */ 1115 struct GTypeCValue 1116 { 1117 union 1118 { 1119 /** 1120 * the field for holding integer values 1121 */ 1122 int vInt; 1123 /** 1124 * the field for holding long integer values 1125 */ 1126 glong vLong; 1127 /** 1128 * the field for holding 64 bit integer values 1129 */ 1130 long vInt64; 1131 /** 1132 * the field for holding floating point values 1133 */ 1134 double vDouble; 1135 /** 1136 * the field for holding pointers 1137 */ 1138 void* vPointer; 1139 } 1140 } 1141 1142 struct GTypeClass 1143 { 1144 GType gType; 1145 } 1146 1147 /** 1148 * A structure that provides information to the type system which is 1149 * used specifically for managing fundamental types. 1150 */ 1151 struct GTypeFundamentalInfo 1152 { 1153 /** 1154 * #GTypeFundamentalFlags describing the characteristics of the fundamental type 1155 */ 1156 GTypeFundamentalFlags typeFlags; 1157 } 1158 1159 /** 1160 * This structure is used to provide the type system with the information 1161 * required to initialize and destruct (finalize) a type's class and 1162 * its instances. 1163 * 1164 * The initialized structure is passed to the g_type_register_static() function 1165 * (or is copied into the provided #GTypeInfo structure in the 1166 * g_type_plugin_complete_type_info()). The type system will perform a deep 1167 * copy of this structure, so its memory does not need to be persistent 1168 * across invocation of g_type_register_static(). 1169 */ 1170 struct GTypeInfo 1171 { 1172 /** 1173 * Size of the class structure (required for interface, classed and instantiatable types) 1174 */ 1175 ushort classSize; 1176 /** 1177 * Location of the base initialization function (optional) 1178 */ 1179 GBaseInitFunc baseInit; 1180 /** 1181 * Location of the base finalization function (optional) 1182 */ 1183 GBaseFinalizeFunc baseFinalize; 1184 /** 1185 * Location of the class initialization function for 1186 * classed and instantiatable types. Location of the default vtable 1187 * inititalization function for interface types. (optional) This function 1188 * is used both to fill in virtual functions in the class or default vtable, 1189 * and to do type-specific setup such as registering signals and object 1190 * properties. 1191 */ 1192 GClassInitFunc classInit; 1193 /** 1194 * Location of the class finalization function for 1195 * classed and instantiatable types. Location of the default vtable 1196 * finalization function for interface types. (optional) 1197 */ 1198 GClassFinalizeFunc classFinalize; 1199 /** 1200 * User-supplied data passed to the class init/finalize functions 1201 */ 1202 void* classData; 1203 /** 1204 * Size of the instance (object) structure (required for instantiatable types only) 1205 */ 1206 ushort instanceSize; 1207 /** 1208 * Prior to GLib 2.10, it specified the number of pre-allocated (cached) instances to reserve memory for (0 indicates no caching). Since GLib 2.10, it is ignored, since instances are allocated with the [slice allocator][glib-Memory-Slices] now. 1209 */ 1210 ushort nPreallocs; 1211 /** 1212 * Location of the instance initialization function (optional, for instantiatable types only) 1213 */ 1214 GInstanceInitFunc instanceInit; 1215 /** 1216 * A #GTypeValueTable function table for generic handling of GValues 1217 * of this type (usually only useful for fundamental types) 1218 */ 1219 GTypeValueTable* valueTable; 1220 } 1221 1222 struct GTypeInstance 1223 { 1224 GTypeClass* gClass; 1225 } 1226 1227 struct GTypeInterface 1228 { 1229 GType gType; 1230 GType gInstanceType; 1231 } 1232 1233 struct GTypeModule 1234 { 1235 GObject parentInstance; 1236 uint useCount; 1237 GSList* typeInfos; 1238 GSList* interfaceInfos; 1239 /** 1240 * the name of the module 1241 */ 1242 char* name; 1243 } 1244 1245 /** 1246 * In order to implement dynamic loading of types based on #GTypeModule, 1247 * the @load and @unload functions in #GTypeModuleClass must be implemented. 1248 */ 1249 struct GTypeModuleClass 1250 { 1251 /** 1252 * the parent class 1253 */ 1254 GObjectClass parentClass; 1255 extern(C) int function(GTypeModule* modul) load; 1256 extern(C) void function(GTypeModule* modul) unload; 1257 extern(C) void function() reserved1; 1258 extern(C) void function() reserved2; 1259 extern(C) void function() reserved3; 1260 extern(C) void function() reserved4; 1261 } 1262 1263 struct GTypePlugin; 1264 1265 /** 1266 * The #GTypePlugin interface is used by the type system in order to handle 1267 * the lifecycle of dynamically loaded types. 1268 */ 1269 struct GTypePluginClass 1270 { 1271 GTypeInterface baseIface; 1272 /** 1273 * Increases the use count of the plugin. 1274 */ 1275 GTypePluginUse usePlugin; 1276 /** 1277 * Decreases the use count of the plugin. 1278 */ 1279 GTypePluginUnuse unusePlugin; 1280 /** 1281 * Fills in the #GTypeInfo and 1282 * #GTypeValueTable structs for the type. The structs are initialized 1283 * with `memset(s, 0, sizeof (s))` before calling this function. 1284 */ 1285 GTypePluginCompleteTypeInfo completeTypeInfo; 1286 /** 1287 * Fills in missing parts of the #GInterfaceInfo 1288 * for the interface. The structs is initialized with 1289 * `memset(s, 0, sizeof (s))` before calling this function. 1290 */ 1291 GTypePluginCompleteInterfaceInfo completeInterfaceInfo; 1292 } 1293 1294 /** 1295 * A structure holding information for a specific type. 1296 * It is filled in by the g_type_query() function. 1297 */ 1298 struct GTypeQuery 1299 { 1300 /** 1301 * the #GType value of the type 1302 */ 1303 GType type; 1304 /** 1305 * the name of the type 1306 */ 1307 const(char)* typeName; 1308 /** 1309 * the size of the class structure 1310 */ 1311 uint classSize; 1312 /** 1313 * the size of the instance structure 1314 */ 1315 uint instanceSize; 1316 } 1317 1318 /** 1319 * - 'i' - Integers. passed as collect_values[].v_int. 1320 * - 'l' - Longs. passed as collect_values[].v_long. 1321 * - 'd' - Doubles. passed as collect_values[].v_double. 1322 * - 'p' - Pointers. passed as collect_values[].v_pointer. 1323 * 1324 * It should be noted that for variable argument list construction, 1325 * ANSI C promotes every type smaller than an integer to an int, and 1326 * floats to doubles. So for collection of short int or char, 'i' 1327 * needs to be used, and for collection of floats 'd'. 1328 * The #GTypeValueTable provides the functions required by the #GValue 1329 * implementation, to serve as a container for values of a type. 1330 */ 1331 struct GTypeValueTable 1332 { 1333 extern(C) void function(GValue* value) valueInit; 1334 extern(C) void function(GValue* value) valueFree; 1335 extern(C) void function(GValue* srcValue, GValue* destValue) valueCopy; 1336 extern(C) void* function(GValue* value) valuePeekPointer; 1337 /** 1338 * A string format describing how to collect the contents of 1339 * this value bit-by-bit. Each character in the format represents 1340 * an argument to be collected, and the characters themselves indicate 1341 * the type of the argument. Currently supported arguments are: 1342 */ 1343 const(char)* collectFormat; 1344 extern(C) char* function(GValue* value, uint nCollectValues, GTypeCValue* collectValues, uint collectFlags) collectValue; 1345 /** 1346 * Format description of the arguments to collect for @lcopy_value, 1347 * analogous to @collect_format. Usually, @lcopy_format string consists 1348 * only of 'p's to provide lcopy_value() with pointers to storage locations. 1349 */ 1350 const(char)* lcopyFormat; 1351 extern(C) char* function(GValue* value, uint nCollectValues, GTypeCValue* collectValues, uint collectFlags) lcopyValue; 1352 } 1353 1354 struct GValue 1355 { 1356 GType gType; 1357 ValueDataUnion[2] data; 1358 } 1359 1360 struct GValueArray 1361 { 1362 /** 1363 * number of values contained in the array 1364 */ 1365 uint nValues; 1366 /** 1367 * array of values 1368 */ 1369 GValue* values; 1370 uint nPrealloced; 1371 } 1372 1373 struct GWeakRef 1374 { 1375 union Priv 1376 { 1377 void* p; 1378 } 1379 Priv priv; 1380 } 1381 1382 struct ValueDataUnion 1383 { 1384 union 1385 { 1386 int vInt; 1387 uint vUint; 1388 glong vLong; 1389 gulong vUlong; 1390 long vInt64; 1391 ulong vUint64; 1392 float vFloat; 1393 double vDouble; 1394 void* vPointer; 1395 } 1396 } 1397 1398 /** 1399 * A callback function used by the type system to finalize those portions 1400 * of a derived types class structure that were setup from the corresponding 1401 * GBaseInitFunc() function. Class finalization basically works the inverse 1402 * way in which class intialization is performed. 1403 * See GClassInitFunc() for a discussion of the class intialization process. 1404 * 1405 * Params: 1406 * gClass = The #GTypeClass structure to finalize 1407 */ 1408 public alias extern(C) void function(void* gClass) GBaseFinalizeFunc; 1409 1410 /** 1411 * A callback function used by the type system to do base initialization 1412 * of the class structures of derived types. It is called as part of the 1413 * initialization process of all derived classes and should reallocate 1414 * or reset all dynamic class members copied over from the parent class. 1415 * For example, class members (such as strings) that are not sufficiently 1416 * handled by a plain memory copy of the parent class into the derived class 1417 * have to be altered. See GClassInitFunc() for a discussion of the class 1418 * intialization process. 1419 * 1420 * Params: 1421 * gClass = The #GTypeClass structure to initialize 1422 */ 1423 public alias extern(C) void function(void* gClass) GBaseInitFunc; 1424 1425 /** 1426 * A function to be called to transform @from_value to @to_value. If 1427 * this is the @transform_to function of a binding, then @from_value 1428 * is the @source_property on the @source object, and @to_value is the 1429 * @target_property on the @target object. If this is the 1430 * @transform_from function of a %G_BINDING_BIDIRECTIONAL binding, 1431 * then those roles are reversed. 1432 * 1433 * Params: 1434 * binding = a #GBinding 1435 * fromValue = the #GValue containing the value to transform 1436 * toValue = the #GValue in which to store the transformed value 1437 * userData = data passed to the transform function 1438 * 1439 * Return: %TRUE if the transformation was successful, and %FALSE 1440 * otherwise 1441 * 1442 * Since: 2.26 1443 */ 1444 public alias extern(C) int function(GBinding* binding, GValue* fromValue, GValue* toValue, void* userData) GBindingTransformFunc; 1445 1446 /** 1447 * This function is provided by the user and should produce a copy 1448 * of the passed in boxed structure. 1449 * 1450 * Params: 1451 * boxed = The boxed structure to be copied. 1452 * 1453 * Return: The newly created copy of the boxed structure. 1454 */ 1455 public alias extern(C) void* function(void* boxed) GBoxedCopyFunc; 1456 1457 /** 1458 * This function is provided by the user and should free the boxed 1459 * structure passed. 1460 * 1461 * Params: 1462 * boxed = The boxed structure to be freed. 1463 */ 1464 public alias extern(C) void function(void* boxed) GBoxedFreeFunc; 1465 1466 /** 1467 * The type used for callback functions in structure definitions and function 1468 * signatures. This doesn't mean that all callback functions must take no 1469 * parameters and return void. The required signature of a callback function 1470 * is determined by the context in which is used (e.g. the signal to which it 1471 * is connected). Use G_CALLBACK() to cast the callback function to a #GCallback. 1472 */ 1473 public alias extern(C) void function() GCallback; 1474 1475 /** 1476 * A callback function used by the type system to finalize a class. 1477 * This function is rarely needed, as dynamically allocated class resources 1478 * should be handled by GBaseInitFunc() and GBaseFinalizeFunc(). 1479 * Also, specification of a GClassFinalizeFunc() in the #GTypeInfo 1480 * structure of a static type is invalid, because classes of static types 1481 * will never be finalized (they are artificially kept alive when their 1482 * reference count drops to zero). 1483 * 1484 * Params: 1485 * gClass = The #GTypeClass structure to finalize 1486 * classData = The @class_data member supplied via the #GTypeInfo structure 1487 */ 1488 public alias extern(C) void function(void* gClass, void* classData) GClassFinalizeFunc; 1489 1490 /** 1491 * A callback function used by the type system to initialize the class 1492 * of a specific type. This function should initialize all static class 1493 * members. 1494 * 1495 * The initialization process of a class involves: 1496 * 1497 * - Copying common members from the parent class over to the 1498 * derived class structure. 1499 * - Zero initialization of the remaining members not copied 1500 * over from the parent class. 1501 * - Invocation of the GBaseInitFunc() initializers of all parent 1502 * types and the class' type. 1503 * - Invocation of the class' GClassInitFunc() initializer. 1504 * 1505 * Since derived classes are partially initialized through a memory copy 1506 * of the parent class, the general rule is that GBaseInitFunc() and 1507 * GBaseFinalizeFunc() should take care of necessary reinitialization 1508 * and release of those class members that were introduced by the type 1509 * that specified these GBaseInitFunc()/GBaseFinalizeFunc(). 1510 * GClassInitFunc() should only care about initializing static 1511 * class members, while dynamic class members (such as allocated strings 1512 * or reference counted resources) are better handled by a GBaseInitFunc() 1513 * for this type, so proper initialization of the dynamic class members 1514 * is performed for class initialization of derived types as well. 1515 * 1516 * An example may help to correspond the intend of the different class 1517 * initializers: 1518 * 1519 * |[<!-- language="C" --> 1520 * typedef struct { 1521 * GObjectClass parent_class; 1522 * gint static_integer; 1523 * gchar *dynamic_string; 1524 * } TypeAClass; 1525 * static void 1526 * type_a_base_class_init (TypeAClass *class) 1527 * { 1528 * class->dynamic_string = g_strdup ("some string"); 1529 * } 1530 * static void 1531 * type_a_base_class_finalize (TypeAClass *class) 1532 * { 1533 * g_free (class->dynamic_string); 1534 * } 1535 * static void 1536 * type_a_class_init (TypeAClass *class) 1537 * { 1538 * class->static_integer = 42; 1539 * } 1540 * 1541 * typedef struct { 1542 * TypeAClass parent_class; 1543 * gfloat static_float; 1544 * GString *dynamic_gstring; 1545 * } TypeBClass; 1546 * static void 1547 * type_b_base_class_init (TypeBClass *class) 1548 * { 1549 * class->dynamic_gstring = g_string_new ("some other string"); 1550 * } 1551 * static void 1552 * type_b_base_class_finalize (TypeBClass *class) 1553 * { 1554 * g_string_free (class->dynamic_gstring); 1555 * } 1556 * static void 1557 * type_b_class_init (TypeBClass *class) 1558 * { 1559 * class->static_float = 3.14159265358979323846; 1560 * } 1561 * ]| 1562 * Initialization of TypeBClass will first cause initialization of 1563 * TypeAClass (derived classes reference their parent classes, see 1564 * g_type_class_ref() on this). 1565 * 1566 * Initialization of TypeAClass roughly involves zero-initializing its fields, 1567 * then calling its GBaseInitFunc() type_a_base_class_init() to allocate 1568 * its dynamic members (dynamic_string), and finally calling its GClassInitFunc() 1569 * type_a_class_init() to initialize its static members (static_integer). 1570 * The first step in the initialization process of TypeBClass is then 1571 * a plain memory copy of the contents of TypeAClass into TypeBClass and 1572 * zero-initialization of the remaining fields in TypeBClass. 1573 * The dynamic members of TypeAClass within TypeBClass now need 1574 * reinitialization which is performed by calling type_a_base_class_init() 1575 * with an argument of TypeBClass. 1576 * 1577 * After that, the GBaseInitFunc() of TypeBClass, type_b_base_class_init() 1578 * is called to allocate the dynamic members of TypeBClass (dynamic_gstring), 1579 * and finally the GClassInitFunc() of TypeBClass, type_b_class_init(), 1580 * is called to complete the initialization process with the static members 1581 * (static_float). 1582 * 1583 * Corresponding finalization counter parts to the GBaseInitFunc() functions 1584 * have to be provided to release allocated resources at class finalization 1585 * time. 1586 * 1587 * Params: 1588 * gClass = The #GTypeClass structure to initialize. 1589 * classData = The @class_data member supplied via the #GTypeInfo structure. 1590 */ 1591 public alias extern(C) void function(void* gClass, void* classData) GClassInitFunc; 1592 1593 /** 1594 * The type used for marshaller functions. 1595 * 1596 * Params: 1597 * closure = the #GClosure to which the marshaller belongs 1598 * returnValue = a #GValue to store the return 1599 * value. May be %NULL if the callback of @closure doesn't return a 1600 * value. 1601 * nParamValues = the length of the @param_values array 1602 * paramValues = an array of 1603 * #GValues holding the arguments on which to invoke the 1604 * callback of @closure 1605 * invocationHint = the invocation hint given as the 1606 * last argument to g_closure_invoke() 1607 * marshalData = additional data specified when 1608 * registering the marshaller, see g_closure_set_marshal() and 1609 * g_closure_set_meta_marshal() 1610 */ 1611 public alias extern(C) void function(GClosure* closure, GValue* returnValue, uint nParamValues, GValue* paramValues, void* invocationHint, void* marshalData) GClosureMarshal; 1612 1613 /** 1614 * The type used for the various notification callbacks which can be registered 1615 * on closures. 1616 * 1617 * Params: 1618 * data = data specified when registering the notification callback 1619 * closure = the #GClosure on which the notification is emitted 1620 */ 1621 public alias extern(C) void function(void* data, GClosure* closure) GClosureNotify; 1622 1623 /** 1624 * A callback function used by the type system to initialize a new 1625 * instance of a type. This function initializes all instance members and 1626 * allocates any resources required by it. 1627 * 1628 * Initialization of a derived instance involves calling all its parent 1629 * types instance initializers, so the class member of the instance 1630 * is altered during its initialization to always point to the class that 1631 * belongs to the type the current initializer was introduced for. 1632 * 1633 * The extended members of @instance are guaranteed to have been filled with 1634 * zeros before this function is called. 1635 * 1636 * Params: 1637 * instanc = The instance to initialize 1638 * gClass = The class of the type the instance is created for 1639 */ 1640 public alias extern(C) void function(GTypeInstance* instanc, void* gClass) GInstanceInitFunc; 1641 1642 /** 1643 * A callback function used by the type system to finalize an interface. 1644 * This function should destroy any internal data and release any resources 1645 * allocated by the corresponding GInterfaceInitFunc() function. 1646 * 1647 * Params: 1648 * gIface = The interface structure to finalize 1649 * ifaceData = The @interface_data supplied via the #GInterfaceInfo structure 1650 */ 1651 public alias extern(C) void function(void* gIface, void* ifaceData) GInterfaceFinalizeFunc; 1652 1653 /** 1654 * A callback function used by the type system to initialize a new 1655 * interface. This function should initialize all internal data and 1656 * allocate any resources required by the interface. 1657 * 1658 * The members of @iface_data are guaranteed to have been filled with 1659 * zeros before this function is called. 1660 * 1661 * Params: 1662 * gIface = The interface structure to initialize 1663 * ifaceData = The @interface_data supplied via the #GInterfaceInfo structure 1664 */ 1665 public alias extern(C) void function(void* gIface, void* ifaceData) GInterfaceInitFunc; 1666 1667 /** 1668 * The type of the @finalize function of #GObjectClass. 1669 * 1670 * Params: 1671 * object = the #GObject being finalized 1672 */ 1673 public alias extern(C) void function(GObject* object) GObjectFinalizeFunc; 1674 1675 /** 1676 * The type of the @get_property function of #GObjectClass. 1677 * 1678 * Params: 1679 * object = a #GObject 1680 * propertyId = the numeric id under which the property was registered with 1681 * g_object_class_install_property(). 1682 * value = a #GValue to return the property value in 1683 * pspec = the #GParamSpec describing the property 1684 */ 1685 public alias extern(C) void function(GObject* object, uint propertyId, GValue* value, GParamSpec* pspec) GObjectGetPropertyFunc; 1686 1687 /** 1688 * The type of the @set_property function of #GObjectClass. 1689 * 1690 * Params: 1691 * object = a #GObject 1692 * propertyId = the numeric id under which the property was registered with 1693 * g_object_class_install_property(). 1694 * value = the new value for the property 1695 * pspec = the #GParamSpec describing the property 1696 */ 1697 public alias extern(C) void function(GObject* object, uint propertyId, GValue* value, GParamSpec* pspec) GObjectSetPropertyFunc; 1698 1699 /** 1700 * The signal accumulator is a special callback function that can be used 1701 * to collect return values of the various callbacks that are called 1702 * during a signal emission. The signal accumulator is specified at signal 1703 * creation time, if it is left %NULL, no accumulation of callback return 1704 * values is performed. The return value of signal emissions is then the 1705 * value returned by the last callback. 1706 * 1707 * Params: 1708 * ihint = Signal invocation hint, see #GSignalInvocationHint. 1709 * returnAccu = Accumulator to collect callback return values in, this 1710 * is the return value of the current signal emission. 1711 * handlerReturn = A #GValue holding the return value of the signal handler. 1712 * data = Callback data that was specified when creating the signal. 1713 * 1714 * Return: The accumulator function returns whether the signal emission 1715 * should be aborted. Returning %FALSE means to abort the 1716 * current emission and %TRUE is returned for continuation. 1717 */ 1718 public alias extern(C) int function(GSignalInvocationHint* ihint, GValue* returnAccu, GValue* handlerReturn, void* data) GSignalAccumulator; 1719 1720 /** 1721 * A simple function pointer to get invoked when the signal is emitted. This 1722 * allows you to tie a hook to the signal type, so that it will trap all 1723 * emissions of that signal, from any object. 1724 * 1725 * You may not attach these to signals created with the #G_SIGNAL_NO_HOOKS flag. 1726 * 1727 * Params: 1728 * ihint = Signal invocation hint, see #GSignalInvocationHint. 1729 * nParamValues = the number of parameters to the function, including 1730 * the instance on which the signal was emitted. 1731 * paramValues = the instance on which 1732 * the signal was emitted, followed by the parameters of the emission. 1733 * data = user data associated with the hook. 1734 * 1735 * Return: whether it wants to stay connected. If it returns %FALSE, the signal 1736 * hook is disconnected (and destroyed). 1737 */ 1738 public alias extern(C) int function(GSignalInvocationHint* ihint, uint nParamValues, GValue* paramValues, void* data) GSignalEmissionHook; 1739 1740 /** 1741 * A callback function used for notification when the state 1742 * of a toggle reference changes. See g_object_add_toggle_ref(). 1743 * 1744 * Params: 1745 * data = Callback data passed to g_object_add_toggle_ref() 1746 * object = The object on which g_object_add_toggle_ref() was called. 1747 * isLastRef = %TRUE if the toggle reference is now the 1748 * last reference to the object. %FALSE if the toggle 1749 * reference was the last reference and there are now other 1750 * references. 1751 */ 1752 public alias extern(C) void function(void* data, GObject* object, int isLastRef) GToggleNotify; 1753 1754 /** 1755 * A callback function which is called when the reference count of a class 1756 * drops to zero. It may use g_type_class_ref() to prevent the class from 1757 * being freed. You should not call g_type_class_unref() from a 1758 * #GTypeClassCacheFunc function to prevent infinite recursion, use 1759 * g_type_class_unref_uncached() instead. 1760 * 1761 * The functions have to check the class id passed in to figure 1762 * whether they actually want to cache the class of this type, since all 1763 * classes are routed through the same #GTypeClassCacheFunc chain. 1764 * 1765 * Params: 1766 * cacheData = data that was given to the g_type_add_class_cache_func() call 1767 * gClass = The #GTypeClass structure which is unreferenced 1768 * 1769 * Return: %TRUE to stop further #GTypeClassCacheFuncs from being 1770 * called, %FALSE to continue 1771 */ 1772 public alias extern(C) int function(void* cacheData, GTypeClass* gClass) GTypeClassCacheFunc; 1773 1774 /** 1775 * A callback called after an interface vtable is initialized. 1776 * See g_type_add_interface_check(). 1777 * 1778 * Params: 1779 * checkData = data passed to g_type_add_interface_check() 1780 * gIface = the interface that has been initialized 1781 * 1782 * Since: 2.4 1783 */ 1784 public alias extern(C) void function(void* checkData, void* gIface) GTypeInterfaceCheckFunc; 1785 1786 /** 1787 * The type of the @complete_interface_info function of #GTypePluginClass. 1788 * 1789 * Params: 1790 * plugin = the #GTypePlugin 1791 * instanceType = the #GType of an instantiable type to which the interface 1792 * is added 1793 * interfaceType = the #GType of the interface whose info is completed 1794 * info = the #GInterfaceInfo to fill in 1795 */ 1796 public alias extern(C) void function(GTypePlugin* plugin, GType instanceType, GType interfaceType, GInterfaceInfo* info) GTypePluginCompleteInterfaceInfo; 1797 1798 /** 1799 * The type of the @complete_type_info function of #GTypePluginClass. 1800 * 1801 * Params: 1802 * plugin = the #GTypePlugin 1803 * gType = the #GType whose info is completed 1804 * info = the #GTypeInfo struct to fill in 1805 * valueTable = the #GTypeValueTable to fill in 1806 */ 1807 public alias extern(C) void function(GTypePlugin* plugin, GType gType, GTypeInfo* info, GTypeValueTable* valueTable) GTypePluginCompleteTypeInfo; 1808 1809 /** 1810 * The type of the @unuse_plugin function of #GTypePluginClass. 1811 * 1812 * Params: 1813 * plugin = the #GTypePlugin whose use count should be decreased 1814 */ 1815 public alias extern(C) void function(GTypePlugin* plugin) GTypePluginUnuse; 1816 1817 /** 1818 * The type of the @use_plugin function of #GTypePluginClass, which gets called 1819 * to increase the use count of @plugin. 1820 * 1821 * Params: 1822 * plugin = the #GTypePlugin whose use count should be increased 1823 */ 1824 public alias extern(C) void function(GTypePlugin* plugin) GTypePluginUse; 1825 1826 public alias extern(C) void function(GClosure* closure, GValue* returnValue, void* instanc, void* args, void* marshalData, int nParams, GType* paramTypes) GVaClosureMarshal; 1827 1828 /** 1829 * The type of value transformation functions which can be registered with 1830 * g_value_register_transform_func(). 1831 * 1832 * Params: 1833 * srcValue = Source value. 1834 * destValue = Target value. 1835 */ 1836 public alias extern(C) void function(GValue* srcValue, GValue* destValue) GValueTransform; 1837 1838 /** 1839 * A #GWeakNotify function can be added to an object as a callback that gets 1840 * triggered when the object is finalized. Since the object is already being 1841 * finalized when the #GWeakNotify is called, there's not much you could do 1842 * with the object, apart from e.g. using its address as hash-index or the like. 1843 * 1844 * Params: 1845 * data = data that was provided when the weak reference was established 1846 * whereTheObjectWas = the object being finalized 1847 */ 1848 public alias extern(C) void function(void* data, GObject* whereTheObjectWas) GWeakNotify;