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 glib.c.types; 26 27 public alias uint uid_t; 28 public alias int pid_t; 29 30 version( Windows ) 31 { 32 alias int glong; 33 alias uint gulong; 34 } 35 else version( X86_64 ) 36 { 37 alias long glong; 38 alias ulong gulong; 39 } 40 else 41 { 42 alias int glong; 43 alias uint gulong; 44 } 45 46 version (Windows) 47 { 48 private import core.stdc.stdio; 49 50 static if( !is(typeof(fdopen(0, null))) ) 51 { 52 extern (C) FILE* fdopen(int, char*); 53 } 54 } 55 56 struct Scoped(T) 57 { 58 T payload; 59 60 alias payload this; 61 62 @disable this(); 63 @disable this(this); 64 65 ~this() 66 { 67 .destroy(payload); 68 } 69 } 70 71 auto getScopedGobject(T, Args...)(auto ref Args args) if (is(T == class)) 72 { 73 Scoped!(T) result = void; 74 result.payload = new T(args); 75 76 return result; 77 } 78 79 /** 80 * Get the length of a zero terminated array. 81 */ 82 size_t getArrayLength(T)(T* arr) 83 { 84 size_t len; 85 86 for ( ; arr[len]; len++ ){} 87 88 return len; 89 } 90 91 unittest 92 { 93 assert(getArrayLength("aaaaaaaaa\0".ptr) == 9); 94 } 95 96 Type* gMalloc(Type)() 97 { 98 import glib.c.functions; 99 return cast(Type*)g_malloc0(Type.sizeof); 100 } 101 102 alias void* GIConv; 103 104 /** 105 * Integer representing a day of the month; between 1 and 31. 106 * #G_DATE_BAD_DAY represents an invalid day of the month. 107 */ 108 public alias ubyte GDateDay; 109 110 /** 111 * Integer representing a year; #G_DATE_BAD_YEAR is the invalid 112 * value. The year must be 1 or higher; negative (BC) years are not 113 * allowed. The year is represented with four digits. 114 */ 115 public alias ushort GDateYear; 116 117 /** 118 * Opaque type. See g_main_context_pusher_new() for details. 119 */ 120 public alias void GMainContextPusher; 121 122 /** 123 * Opaque type. See g_mutex_locker_new() for details. 124 */ 125 public alias void GMutexLocker; 126 127 /** 128 * A type which is used to hold a process identification. 129 * 130 * On UNIX, processes are identified by a process id (an integer), 131 * while Windows uses process handles (which are pointers). 132 * 133 * GPid is used in GLib only for descendant processes spawned with 134 * the g_spawn functions. 135 */ 136 public alias int GPid; 137 138 /** 139 * A GQuark is a non-zero integer which uniquely identifies a 140 * particular string. A GQuark value of zero is associated to %NULL. 141 */ 142 public alias uint GQuark; 143 144 /** 145 * Opaque type. See g_rw_lock_reader_locker_new() for details. 146 */ 147 public alias void GRWLockReaderLocker; 148 149 /** 150 * Opaque type. See g_rw_lock_writer_locker_new() for details. 151 */ 152 public alias void GRWLockWriterLocker; 153 154 /** 155 * Opaque type. See g_rec_mutex_locker_new() for details. 156 */ 157 public alias void GRecMutexLocker; 158 159 /** 160 * A typedef for a reference-counted string. A pointer to a #GRefString can be 161 * treated like a standard `char*` array by all code, but can additionally have 162 * `g_ref_string_*()` methods called on it. `g_ref_string_*()` methods cannot be 163 * called on `char*` arrays not allocated using g_ref_string_new(). 164 * 165 * If using #GRefString with autocleanups, g_autoptr() must be used rather than 166 * g_autofree(), so that the reference counting metadata is also freed. 167 */ 168 public alias char GRefString; 169 170 /** 171 * A typedef alias for gchar**. This is mostly useful when used together with 172 * g_auto(). 173 */ 174 public alias char** GStrv; 175 176 /** 177 * Simply a replacement for `time_t`. It has been deprecated 178 * since it is not equivalent to `time_t` on 64-bit platforms 179 * with a 64-bit `time_t`. Unrelated to #GTimer. 180 * 181 * Note that #GTime is defined to always be a 32-bit integer, 182 * unlike `time_t` which may be 64-bit on some systems. Therefore, 183 * #GTime will overflow in the year 2038, and you cannot use the 184 * address of a #GTime variable as argument to the UNIX time() 185 * function. 186 * 187 * Instead, do the following: 188 * |[<!-- language="C" --> 189 * time_t ttime; 190 * GTime gtime; 191 * 192 * time (&ttime); 193 * gtime = (GTime)ttime; 194 * ]| 195 * 196 * Deprecated: This is not [Y2038-safe](https://en.wikipedia.org/wiki/Year_2038_problem). 197 * Use #GDateTime or #time_t instead. 198 */ 199 public alias int GTime; 200 201 /** 202 * A value representing an interval of time, in microseconds. 203 */ 204 public alias long GTimeSpan; 205 206 enum GPriority 207 { 208 HIGH = -100, 209 DEFAULT = 0, 210 HIGH_IDLE = 100, 211 DEFAULT_IDLE = 200, 212 LOW = 300 213 } 214 215 216 public enum GAsciiType 217 { 218 ALNUM = 1, 219 ALPHA = 2, 220 CNTRL = 4, 221 DIGIT = 8, 222 GRAPH = 16, 223 LOWER = 32, 224 PRINT = 64, 225 PUNCT = 128, 226 SPACE = 256, 227 UPPER = 512, 228 XDIGIT = 1024, 229 } 230 alias GAsciiType AsciiType; 231 232 /** 233 * Error codes returned by bookmark file parsing. 234 */ 235 public enum GBookmarkFileError 236 { 237 /** 238 * URI was ill-formed 239 */ 240 INVALID_URI = 0, 241 /** 242 * a requested field was not found 243 */ 244 INVALID_VALUE = 1, 245 /** 246 * a requested application did 247 * not register a bookmark 248 */ 249 APP_NOT_REGISTERED = 2, 250 /** 251 * a requested URI was not found 252 */ 253 URI_NOT_FOUND = 3, 254 /** 255 * document was ill formed 256 */ 257 READ = 4, 258 /** 259 * the text being parsed was 260 * in an unknown encoding 261 */ 262 UNKNOWN_ENCODING = 5, 263 /** 264 * an error occurred while writing 265 */ 266 WRITE = 6, 267 /** 268 * requested file was not found 269 */ 270 FILE_NOT_FOUND = 7, 271 } 272 alias GBookmarkFileError BookmarkFileError; 273 274 /** 275 * The hashing algorithm to be used by #GChecksum when performing the 276 * digest of some data. 277 * 278 * Note that the #GChecksumType enumeration may be extended at a later 279 * date to include new hashing algorithm types. 280 * 281 * Since: 2.16 282 */ 283 public enum GChecksumType 284 { 285 /** 286 * Use the MD5 hashing algorithm 287 */ 288 MD5 = 0, 289 /** 290 * Use the SHA-1 hashing algorithm 291 */ 292 SHA1 = 1, 293 /** 294 * Use the SHA-256 hashing algorithm 295 */ 296 SHA256 = 2, 297 /** 298 * Use the SHA-512 hashing algorithm (Since: 2.36) 299 */ 300 SHA512 = 3, 301 /** 302 * Use the SHA-384 hashing algorithm (Since: 2.51) 303 */ 304 SHA384 = 4, 305 } 306 alias GChecksumType ChecksumType; 307 308 /** 309 * Error codes returned by character set conversion routines. 310 */ 311 public enum GConvertError 312 { 313 /** 314 * Conversion between the requested character 315 * sets is not supported. 316 */ 317 NO_CONVERSION = 0, 318 /** 319 * Invalid byte sequence in conversion input; 320 * or the character sequence could not be represented in the target 321 * character set. 322 */ 323 ILLEGAL_SEQUENCE = 1, 324 /** 325 * Conversion failed for some reason. 326 */ 327 FAILED = 2, 328 /** 329 * Partial character sequence at end of input. 330 */ 331 PARTIAL_INPUT = 3, 332 /** 333 * URI is invalid. 334 */ 335 BAD_URI = 4, 336 /** 337 * Pathname is not an absolute path. 338 */ 339 NOT_ABSOLUTE_PATH = 5, 340 /** 341 * No memory available. Since: 2.40 342 */ 343 NO_MEMORY = 6, 344 /** 345 * An embedded NUL character is present in 346 * conversion output where a NUL-terminated string is expected. 347 * Since: 2.56 348 */ 349 EMBEDDED_NUL = 7, 350 } 351 alias GConvertError ConvertError; 352 353 /** 354 * This enumeration isn't used in the API, but may be useful if you need 355 * to mark a number as a day, month, or year. 356 */ 357 public enum GDateDMY 358 { 359 /** 360 * a day 361 */ 362 DAY = 0, 363 /** 364 * a month 365 */ 366 MONTH = 1, 367 /** 368 * a year 369 */ 370 YEAR = 2, 371 } 372 alias GDateDMY DateDMY; 373 374 /** 375 * Enumeration representing a month; values are #G_DATE_JANUARY, 376 * #G_DATE_FEBRUARY, etc. #G_DATE_BAD_MONTH is the invalid value. 377 */ 378 public enum GDateMonth 379 { 380 /** 381 * invalid value 382 */ 383 BAD_MONTH = 0, 384 /** 385 * January 386 */ 387 JANUARY = 1, 388 /** 389 * February 390 */ 391 FEBRUARY = 2, 392 /** 393 * March 394 */ 395 MARCH = 3, 396 /** 397 * April 398 */ 399 APRIL = 4, 400 /** 401 * May 402 */ 403 MAY = 5, 404 /** 405 * June 406 */ 407 JUNE = 6, 408 /** 409 * July 410 */ 411 JULY = 7, 412 /** 413 * August 414 */ 415 AUGUST = 8, 416 /** 417 * September 418 */ 419 SEPTEMBER = 9, 420 /** 421 * October 422 */ 423 OCTOBER = 10, 424 /** 425 * November 426 */ 427 NOVEMBER = 11, 428 /** 429 * December 430 */ 431 DECEMBER = 12, 432 } 433 alias GDateMonth DateMonth; 434 435 /** 436 * Enumeration representing a day of the week; #G_DATE_MONDAY, 437 * #G_DATE_TUESDAY, etc. #G_DATE_BAD_WEEKDAY is an invalid weekday. 438 */ 439 public enum GDateWeekday 440 { 441 /** 442 * invalid value 443 */ 444 BAD_WEEKDAY = 0, 445 /** 446 * Monday 447 */ 448 MONDAY = 1, 449 /** 450 * Tuesday 451 */ 452 TUESDAY = 2, 453 /** 454 * Wednesday 455 */ 456 WEDNESDAY = 3, 457 /** 458 * Thursday 459 */ 460 THURSDAY = 4, 461 /** 462 * Friday 463 */ 464 FRIDAY = 5, 465 /** 466 * Saturday 467 */ 468 SATURDAY = 6, 469 /** 470 * Sunday 471 */ 472 SUNDAY = 7, 473 } 474 alias GDateWeekday DateWeekday; 475 476 /** 477 * The possible errors, used in the @v_error field 478 * of #GTokenValue, when the token is a %G_TOKEN_ERROR. 479 */ 480 public enum GErrorType 481 { 482 /** 483 * unknown error 484 */ 485 UNKNOWN = 0, 486 /** 487 * unexpected end of file 488 */ 489 UNEXP_EOF = 1, 490 /** 491 * unterminated string constant 492 */ 493 UNEXP_EOF_IN_STRING = 2, 494 /** 495 * unterminated comment 496 */ 497 UNEXP_EOF_IN_COMMENT = 3, 498 /** 499 * non-digit character in a number 500 */ 501 NON_DIGIT_IN_CONST = 4, 502 /** 503 * digit beyond radix in a number 504 */ 505 DIGIT_RADIX = 5, 506 /** 507 * non-decimal floating point number 508 */ 509 FLOAT_RADIX = 6, 510 /** 511 * malformed floating point number 512 */ 513 FLOAT_MALFORMED = 7, 514 } 515 alias GErrorType ErrorType; 516 517 /** 518 * Values corresponding to @errno codes returned from file operations 519 * on UNIX. Unlike @errno codes, GFileError values are available on 520 * all systems, even Windows. The exact meaning of each code depends 521 * on what sort of file operation you were performing; the UNIX 522 * documentation gives more details. The following error code descriptions 523 * come from the GNU C Library manual, and are under the copyright 524 * of that manual. 525 * 526 * It's not very portable to make detailed assumptions about exactly 527 * which errors will be returned from a given operation. Some errors 528 * don't occur on some systems, etc., sometimes there are subtle 529 * differences in when a system will report a given error, etc. 530 */ 531 public enum GFileError 532 { 533 /** 534 * Operation not permitted; only the owner of 535 * the file (or other resource) or processes with special privileges 536 * can perform the operation. 537 */ 538 EXIST = 0, 539 /** 540 * File is a directory; you cannot open a directory 541 * for writing, or create or remove hard links to it. 542 */ 543 ISDIR = 1, 544 /** 545 * Permission denied; the file permissions do not 546 * allow the attempted operation. 547 */ 548 ACCES = 2, 549 /** 550 * Filename too long. 551 */ 552 NAMETOOLONG = 3, 553 /** 554 * No such file or directory. This is a "file 555 * doesn't exist" error for ordinary files that are referenced in 556 * contexts where they are expected to already exist. 557 */ 558 NOENT = 4, 559 /** 560 * A file that isn't a directory was specified when 561 * a directory is required. 562 */ 563 NOTDIR = 5, 564 /** 565 * No such device or address. The system tried to 566 * use the device represented by a file you specified, and it 567 * couldn't find the device. This can mean that the device file was 568 * installed incorrectly, or that the physical device is missing or 569 * not correctly attached to the computer. 570 */ 571 NXIO = 6, 572 /** 573 * The underlying file system of the specified file 574 * does not support memory mapping. 575 */ 576 NODEV = 7, 577 /** 578 * The directory containing the new link can't be 579 * modified because it's on a read-only file system. 580 */ 581 ROFS = 8, 582 /** 583 * Text file busy. 584 */ 585 TXTBSY = 9, 586 /** 587 * You passed in a pointer to bad memory. 588 * (GLib won't reliably return this, don't pass in pointers to bad 589 * memory.) 590 */ 591 FAULT = 10, 592 /** 593 * Too many levels of symbolic links were encountered 594 * in looking up a file name. This often indicates a cycle of symbolic 595 * links. 596 */ 597 LOOP = 11, 598 /** 599 * No space left on device; write operation on a 600 * file failed because the disk is full. 601 */ 602 NOSPC = 12, 603 /** 604 * No memory available. The system cannot allocate 605 * more virtual memory because its capacity is full. 606 */ 607 NOMEM = 13, 608 /** 609 * The current process has too many files open and 610 * can't open any more. Duplicate descriptors do count toward this 611 * limit. 612 */ 613 MFILE = 14, 614 /** 615 * There are too many distinct file openings in the 616 * entire system. 617 */ 618 NFILE = 15, 619 /** 620 * Bad file descriptor; for example, I/O on a 621 * descriptor that has been closed or reading from a descriptor open 622 * only for writing (or vice versa). 623 */ 624 BADF = 16, 625 /** 626 * Invalid argument. This is used to indicate 627 * various kinds of problems with passing the wrong argument to a 628 * library function. 629 */ 630 INVAL = 17, 631 /** 632 * Broken pipe; there is no process reading from the 633 * other end of a pipe. Every library function that returns this 634 * error code also generates a 'SIGPIPE' signal; this signal 635 * terminates the program if not handled or blocked. Thus, your 636 * program will never actually see this code unless it has handled 637 * or blocked 'SIGPIPE'. 638 */ 639 PIPE = 18, 640 /** 641 * Resource temporarily unavailable; the call might 642 * work if you try again later. 643 */ 644 AGAIN = 19, 645 /** 646 * Interrupted function call; an asynchronous signal 647 * occurred and prevented completion of the call. When this 648 * happens, you should try the call again. 649 */ 650 INTR = 20, 651 /** 652 * Input/output error; usually used for physical read 653 * or write errors. i.e. the disk or other physical device hardware 654 * is returning errors. 655 */ 656 IO = 21, 657 /** 658 * Operation not permitted; only the owner of the 659 * file (or other resource) or processes with special privileges can 660 * perform the operation. 661 */ 662 PERM = 22, 663 /** 664 * Function not implemented; this indicates that 665 * the system is missing some functionality. 666 */ 667 NOSYS = 23, 668 /** 669 * Does not correspond to a UNIX error code; this 670 * is the standard "failed for unspecified reason" error code present 671 * in all #GError error code enumerations. Returned if no specific 672 * code applies. 673 */ 674 FAILED = 24, 675 } 676 alias GFileError FileError; 677 678 /** 679 * A test to perform on a file using g_file_test(). 680 */ 681 public enum GFileTest 682 { 683 /** 684 * %TRUE if the file is a regular file 685 * (not a directory). Note that this test will also return %TRUE 686 * if the tested file is a symlink to a regular file. 687 */ 688 IS_REGULAR = 1, 689 /** 690 * %TRUE if the file is a symlink. 691 */ 692 IS_SYMLINK = 2, 693 /** 694 * %TRUE if the file is a directory. 695 */ 696 IS_DIR = 4, 697 /** 698 * %TRUE if the file is executable. 699 */ 700 IS_EXECUTABLE = 8, 701 /** 702 * %TRUE if the file exists. It may or may not 703 * be a regular file. 704 */ 705 EXISTS = 16, 706 } 707 alias GFileTest FileTest; 708 709 /** 710 * Flags to modify the format of the string returned by g_format_size_full(). 711 */ 712 public enum GFormatSizeFlags 713 { 714 /** 715 * behave the same as g_format_size() 716 */ 717 DEFAULT = 0, 718 /** 719 * include the exact number of bytes as part 720 * of the returned string. For example, "45.6 kB (45,612 bytes)". 721 */ 722 LONG_FORMAT = 1, 723 /** 724 * use IEC (base 1024) units with "KiB"-style 725 * suffixes. IEC units should only be used for reporting things with 726 * a strong "power of 2" basis, like RAM sizes or RAID stripe sizes. 727 * Network and storage sizes should be reported in the normal SI units. 728 */ 729 IEC_UNITS = 2, 730 /** 731 * set the size as a quantity in bits, rather than 732 * bytes, and return units in bits. For example, ‘Mb’ rather than ‘MB’. 733 */ 734 BITS = 4, 735 } 736 alias GFormatSizeFlags FormatSizeFlags; 737 738 /** 739 * Flags used internally in the #GHook implementation. 740 */ 741 public enum GHookFlagMask 742 { 743 /** 744 * set if the hook has not been destroyed 745 */ 746 ACTIVE = 1, 747 /** 748 * set if the hook is currently being run 749 */ 750 IN_CALL = 2, 751 /** 752 * A mask covering all bits reserved for 753 * hook flags; see %G_HOOK_FLAG_USER_SHIFT 754 */ 755 MASK = 15, 756 } 757 alias GHookFlagMask HookFlagMask; 758 759 /** 760 * Error codes returned by #GIOChannel operations. 761 */ 762 public enum GIOChannelError 763 { 764 /** 765 * File too large. 766 */ 767 FBIG = 0, 768 /** 769 * Invalid argument. 770 */ 771 INVAL = 1, 772 /** 773 * IO error. 774 */ 775 IO = 2, 776 /** 777 * File is a directory. 778 */ 779 ISDIR = 3, 780 /** 781 * No space left on device. 782 */ 783 NOSPC = 4, 784 /** 785 * No such device or address. 786 */ 787 NXIO = 5, 788 /** 789 * Value too large for defined datatype. 790 */ 791 OVERFLOW = 6, 792 /** 793 * Broken pipe. 794 */ 795 PIPE = 7, 796 /** 797 * Some other error. 798 */ 799 FAILED = 8, 800 } 801 alias GIOChannelError IOChannelError; 802 803 /** 804 * A bitwise combination representing a condition to watch for on an 805 * event source. 806 */ 807 public enum GIOCondition 808 { 809 /** 810 * There is data to read. 811 */ 812 IN = 1, 813 /** 814 * Data can be written (without blocking). 815 */ 816 OUT = 4, 817 /** 818 * There is urgent data to read. 819 */ 820 PRI = 2, 821 /** 822 * Error condition. 823 */ 824 ERR = 8, 825 /** 826 * Hung up (the connection has been broken, usually for 827 * pipes and sockets). 828 */ 829 HUP = 16, 830 /** 831 * Invalid request. The file descriptor is not open. 832 */ 833 NVAL = 32, 834 } 835 alias GIOCondition IOCondition; 836 837 /** 838 * #GIOError is only used by the deprecated functions 839 * g_io_channel_read(), g_io_channel_write(), and g_io_channel_seek(). 840 */ 841 public enum GIOError 842 { 843 /** 844 * no error 845 */ 846 NONE = 0, 847 /** 848 * an EAGAIN error occurred 849 */ 850 AGAIN = 1, 851 /** 852 * an EINVAL error occurred 853 */ 854 INVAL = 2, 855 /** 856 * another error occurred 857 */ 858 UNKNOWN = 3, 859 } 860 alias GIOError IOError; 861 862 /** 863 * Specifies properties of a #GIOChannel. Some of the flags can only be 864 * read with g_io_channel_get_flags(), but not changed with 865 * g_io_channel_set_flags(). 866 */ 867 public enum GIOFlags 868 { 869 /** 870 * turns on append mode, corresponds to %O_APPEND 871 * (see the documentation of the UNIX open() syscall) 872 */ 873 APPEND = 1, 874 /** 875 * turns on nonblocking mode, corresponds to 876 * %O_NONBLOCK/%O_NDELAY (see the documentation of the UNIX open() 877 * syscall) 878 */ 879 NONBLOCK = 2, 880 /** 881 * indicates that the io channel is readable. 882 * This flag cannot be changed. 883 */ 884 IS_READABLE = 4, 885 /** 886 * indicates that the io channel is writable. 887 * This flag cannot be changed. 888 */ 889 IS_WRITABLE = 8, 890 /** 891 * a misspelled version of @G_IO_FLAG_IS_WRITABLE 892 * that existed before the spelling was fixed in GLib 2.30. It is kept 893 * here for compatibility reasons. Deprecated since 2.30 894 */ 895 IS_WRITEABLE = 8, 896 /** 897 * indicates that the io channel is seekable, 898 * i.e. that g_io_channel_seek_position() can be used on it. 899 * This flag cannot be changed. 900 */ 901 IS_SEEKABLE = 16, 902 /** 903 * the mask that specifies all the valid flags. 904 */ 905 MASK = 31, 906 /** 907 * the mask of the flags that are returned from 908 * g_io_channel_get_flags() 909 */ 910 GET_MASK = 31, 911 /** 912 * the mask of the flags that the user can modify 913 * with g_io_channel_set_flags() 914 */ 915 SET_MASK = 3, 916 } 917 alias GIOFlags IOFlags; 918 919 /** 920 * Stati returned by most of the #GIOFuncs functions. 921 */ 922 public enum GIOStatus 923 { 924 /** 925 * An error occurred. 926 */ 927 ERROR = 0, 928 /** 929 * Success. 930 */ 931 NORMAL = 1, 932 /** 933 * End of file. 934 */ 935 EOF = 2, 936 /** 937 * Resource temporarily unavailable. 938 */ 939 AGAIN = 3, 940 } 941 alias GIOStatus IOStatus; 942 943 /** 944 * Error codes returned by key file parsing. 945 */ 946 public enum GKeyFileError 947 { 948 /** 949 * the text being parsed was in 950 * an unknown encoding 951 */ 952 UNKNOWN_ENCODING = 0, 953 /** 954 * document was ill-formed 955 */ 956 PARSE = 1, 957 /** 958 * the file was not found 959 */ 960 NOT_FOUND = 2, 961 /** 962 * a requested key was not found 963 */ 964 KEY_NOT_FOUND = 3, 965 /** 966 * a requested group was not found 967 */ 968 GROUP_NOT_FOUND = 4, 969 /** 970 * a value could not be parsed 971 */ 972 INVALID_VALUE = 5, 973 } 974 alias GKeyFileError KeyFileError; 975 976 /** 977 * Flags which influence the parsing. 978 */ 979 public enum GKeyFileFlags 980 { 981 /** 982 * No flags, default behaviour 983 */ 984 NONE = 0, 985 /** 986 * Use this flag if you plan to write the 987 * (possibly modified) contents of the key file back to a file; 988 * otherwise all comments will be lost when the key file is 989 * written back. 990 */ 991 KEEP_COMMENTS = 1, 992 /** 993 * Use this flag if you plan to write the 994 * (possibly modified) contents of the key file back to a file; 995 * otherwise only the translations for the current language will be 996 * written back. 997 */ 998 KEEP_TRANSLATIONS = 2, 999 } 1000 alias GKeyFileFlags KeyFileFlags; 1001 1002 /** 1003 * Flags specifying the level of log messages. 1004 * 1005 * It is possible to change how GLib treats messages of the various 1006 * levels using g_log_set_handler() and g_log_set_fatal_mask(). 1007 */ 1008 public enum GLogLevelFlags 1009 { 1010 /** 1011 * internal flag 1012 */ 1013 FLAG_RECURSION = 1, 1014 /** 1015 * internal flag 1016 */ 1017 FLAG_FATAL = 2, 1018 /** 1019 * log level for errors, see g_error(). 1020 * This level is also used for messages produced by g_assert(). 1021 */ 1022 LEVEL_ERROR = 4, 1023 /** 1024 * log level for critical warning messages, see 1025 * g_critical(). 1026 * This level is also used for messages produced by g_return_if_fail() 1027 * and g_return_val_if_fail(). 1028 */ 1029 LEVEL_CRITICAL = 8, 1030 /** 1031 * log level for warnings, see g_warning() 1032 */ 1033 LEVEL_WARNING = 16, 1034 /** 1035 * log level for messages, see g_message() 1036 */ 1037 LEVEL_MESSAGE = 32, 1038 /** 1039 * log level for informational messages, see g_info() 1040 */ 1041 LEVEL_INFO = 64, 1042 /** 1043 * log level for debug messages, see g_debug() 1044 */ 1045 LEVEL_DEBUG = 128, 1046 /** 1047 * a mask including all log levels 1048 */ 1049 LEVEL_MASK = -4, 1050 } 1051 alias GLogLevelFlags LogLevelFlags; 1052 1053 /** 1054 * Return values from #GLogWriterFuncs to indicate whether the given log entry 1055 * was successfully handled by the writer, or whether there was an error in 1056 * handling it (and hence a fallback writer should be used). 1057 * 1058 * If a #GLogWriterFunc ignores a log entry, it should return 1059 * %G_LOG_WRITER_HANDLED. 1060 * 1061 * Since: 2.50 1062 */ 1063 public enum GLogWriterOutput 1064 { 1065 /** 1066 * Log writer has handled the log entry. 1067 */ 1068 HANDLED = 1, 1069 /** 1070 * Log writer could not handle the log entry. 1071 */ 1072 UNHANDLED = 0, 1073 } 1074 alias GLogWriterOutput LogWriterOutput; 1075 1076 /** 1077 * A mixed enumerated type and flags field. You must specify one type 1078 * (string, strdup, boolean, tristate). Additionally, you may optionally 1079 * bitwise OR the type with the flag %G_MARKUP_COLLECT_OPTIONAL. 1080 * 1081 * It is likely that this enum will be extended in the future to 1082 * support other types. 1083 */ 1084 public enum GMarkupCollectType 1085 { 1086 /** 1087 * used to terminate the list of attributes 1088 * to collect 1089 */ 1090 INVALID = 0, 1091 /** 1092 * collect the string pointer directly from 1093 * the attribute_values[] array. Expects a parameter of type (const 1094 * char **). If %G_MARKUP_COLLECT_OPTIONAL is specified and the 1095 * attribute isn't present then the pointer will be set to %NULL 1096 */ 1097 STRING = 1, 1098 /** 1099 * as with %G_MARKUP_COLLECT_STRING, but 1100 * expects a parameter of type (char **) and g_strdup()s the 1101 * returned pointer. The pointer must be freed with g_free() 1102 */ 1103 STRDUP = 2, 1104 /** 1105 * expects a parameter of type (gboolean *) 1106 * and parses the attribute value as a boolean. Sets %FALSE if the 1107 * attribute isn't present. Valid boolean values consist of 1108 * (case-insensitive) "false", "f", "no", "n", "0" and "true", "t", 1109 * "yes", "y", "1" 1110 */ 1111 BOOLEAN = 3, 1112 /** 1113 * as with %G_MARKUP_COLLECT_BOOLEAN, but 1114 * in the case of a missing attribute a value is set that compares 1115 * equal to neither %FALSE nor %TRUE G_MARKUP_COLLECT_OPTIONAL is 1116 * implied 1117 */ 1118 TRISTATE = 4, 1119 /** 1120 * can be bitwise ORed with the other fields. 1121 * If present, allows the attribute not to appear. A default value 1122 * is set depending on what value type is used 1123 */ 1124 OPTIONAL = 65536, 1125 } 1126 alias GMarkupCollectType MarkupCollectType; 1127 1128 /** 1129 * Error codes returned by markup parsing. 1130 */ 1131 public enum GMarkupError 1132 { 1133 /** 1134 * text being parsed was not valid UTF-8 1135 */ 1136 BAD_UTF8 = 0, 1137 /** 1138 * document contained nothing, or only whitespace 1139 */ 1140 EMPTY = 1, 1141 /** 1142 * document was ill-formed 1143 */ 1144 PARSE = 2, 1145 /** 1146 * error should be set by #GMarkupParser 1147 * functions; element wasn't known 1148 */ 1149 UNKNOWN_ELEMENT = 3, 1150 /** 1151 * error should be set by #GMarkupParser 1152 * functions; attribute wasn't known 1153 */ 1154 UNKNOWN_ATTRIBUTE = 4, 1155 /** 1156 * error should be set by #GMarkupParser 1157 * functions; content was invalid 1158 */ 1159 INVALID_CONTENT = 5, 1160 /** 1161 * error should be set by #GMarkupParser 1162 * functions; a required attribute was missing 1163 */ 1164 MISSING_ATTRIBUTE = 6, 1165 } 1166 alias GMarkupError MarkupError; 1167 1168 /** 1169 * Flags that affect the behaviour of the parser. 1170 */ 1171 public enum GMarkupParseFlags 1172 { 1173 /** 1174 * flag you should not use 1175 */ 1176 DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1, 1177 /** 1178 * When this flag is set, CDATA marked 1179 * sections are not passed literally to the @passthrough function of 1180 * the parser. Instead, the content of the section (without the 1181 * `<![CDATA[` and `]]>`) is 1182 * passed to the @text function. This flag was added in GLib 2.12 1183 */ 1184 TREAT_CDATA_AS_TEXT = 2, 1185 /** 1186 * Normally errors caught by GMarkup 1187 * itself have line/column information prefixed to them to let the 1188 * caller know the location of the error. When this flag is set the 1189 * location information is also prefixed to errors generated by the 1190 * #GMarkupParser implementation functions 1191 */ 1192 PREFIX_ERROR_POSITION = 4, 1193 /** 1194 * Ignore (don't report) qualified 1195 * attributes and tags, along with their contents. A qualified 1196 * attribute or tag is one that contains ':' in its name (ie: is in 1197 * another namespace). Since: 2.40. 1198 */ 1199 IGNORE_QUALIFIED = 8, 1200 } 1201 alias GMarkupParseFlags MarkupParseFlags; 1202 1203 /** 1204 * Defines how a Unicode string is transformed in a canonical 1205 * form, standardizing such issues as whether a character with 1206 * an accent is represented as a base character and combining 1207 * accent or as a single precomposed character. Unicode strings 1208 * should generally be normalized before comparing them. 1209 */ 1210 public enum GNormalizeMode 1211 { 1212 /** 1213 * standardize differences that do not affect the 1214 * text content, such as the above-mentioned accent representation 1215 */ 1216 DEFAULT = 0, 1217 /** 1218 * another name for %G_NORMALIZE_DEFAULT 1219 */ 1220 NFD = 0, 1221 /** 1222 * like %G_NORMALIZE_DEFAULT, but with 1223 * composed forms rather than a maximally decomposed form 1224 */ 1225 DEFAULT_COMPOSE = 1, 1226 /** 1227 * another name for %G_NORMALIZE_DEFAULT_COMPOSE 1228 */ 1229 NFC = 1, 1230 /** 1231 * beyond %G_NORMALIZE_DEFAULT also standardize the 1232 * "compatibility" characters in Unicode, such as SUPERSCRIPT THREE 1233 * to the standard forms (in this case DIGIT THREE). Formatting 1234 * information may be lost but for most text operations such 1235 * characters should be considered the same 1236 */ 1237 ALL = 2, 1238 /** 1239 * another name for %G_NORMALIZE_ALL 1240 */ 1241 NFKD = 2, 1242 /** 1243 * like %G_NORMALIZE_ALL, but with composed 1244 * forms rather than a maximally decomposed form 1245 */ 1246 ALL_COMPOSE = 3, 1247 /** 1248 * another name for %G_NORMALIZE_ALL_COMPOSE 1249 */ 1250 NFKC = 3, 1251 } 1252 alias GNormalizeMode NormalizeMode; 1253 1254 /** 1255 * Error codes returned by functions converting a string to a number. 1256 * 1257 * Since: 2.54 1258 */ 1259 public enum GNumberParserError 1260 { 1261 /** 1262 * String was not a valid number. 1263 */ 1264 INVALID = 0, 1265 /** 1266 * String was a number, but out of bounds. 1267 */ 1268 OUT_OF_BOUNDS = 1, 1269 } 1270 alias GNumberParserError NumberParserError; 1271 1272 /** 1273 * The possible statuses of a one-time initialization function 1274 * controlled by a #GOnce struct. 1275 * 1276 * Since: 2.4 1277 */ 1278 public enum GOnceStatus 1279 { 1280 /** 1281 * the function has not been called yet. 1282 */ 1283 NOTCALLED = 0, 1284 /** 1285 * the function call is currently in progress. 1286 */ 1287 PROGRESS = 1, 1288 /** 1289 * the function has been called. 1290 */ 1291 READY = 2, 1292 } 1293 alias GOnceStatus OnceStatus; 1294 1295 /** 1296 * The #GOptionArg enum values determine which type of extra argument the 1297 * options expect to find. If an option expects an extra argument, it can 1298 * be specified in several ways; with a short option: `-x arg`, with a long 1299 * option: `--name arg` or combined in a single argument: `--name=arg`. 1300 */ 1301 public enum GOptionArg 1302 { 1303 /** 1304 * No extra argument. This is useful for simple flags. 1305 */ 1306 NONE = 0, 1307 /** 1308 * The option takes a UTF-8 string argument. 1309 */ 1310 STRING = 1, 1311 /** 1312 * The option takes an integer argument. 1313 */ 1314 INT = 2, 1315 /** 1316 * The option provides a callback (of type 1317 * #GOptionArgFunc) to parse the extra argument. 1318 */ 1319 CALLBACK = 3, 1320 /** 1321 * The option takes a filename as argument, which will 1322 * be in the GLib filename encoding rather than UTF-8. 1323 */ 1324 FILENAME = 4, 1325 /** 1326 * The option takes a string argument, multiple 1327 * uses of the option are collected into an array of strings. 1328 */ 1329 STRING_ARRAY = 5, 1330 /** 1331 * The option takes a filename as argument, 1332 * multiple uses of the option are collected into an array of strings. 1333 */ 1334 FILENAME_ARRAY = 6, 1335 /** 1336 * The option takes a double argument. The argument 1337 * can be formatted either for the user's locale or for the "C" locale. 1338 * Since 2.12 1339 */ 1340 DOUBLE = 7, 1341 /** 1342 * The option takes a 64-bit integer. Like 1343 * %G_OPTION_ARG_INT but for larger numbers. The number can be in 1344 * decimal base, or in hexadecimal (when prefixed with `0x`, for 1345 * example, `0xffffffff`). Since 2.12 1346 */ 1347 INT64 = 8, 1348 } 1349 alias GOptionArg OptionArg; 1350 1351 /** 1352 * Error codes returned by option parsing. 1353 */ 1354 public enum GOptionError 1355 { 1356 /** 1357 * An option was not known to the parser. 1358 * This error will only be reported, if the parser hasn't been instructed 1359 * to ignore unknown options, see g_option_context_set_ignore_unknown_options(). 1360 */ 1361 UNKNOWN_OPTION = 0, 1362 /** 1363 * A value couldn't be parsed. 1364 */ 1365 BAD_VALUE = 1, 1366 /** 1367 * A #GOptionArgFunc callback failed. 1368 */ 1369 FAILED = 2, 1370 } 1371 alias GOptionError OptionError; 1372 1373 /** 1374 * Flags which modify individual options. 1375 */ 1376 public enum GOptionFlags 1377 { 1378 /** 1379 * No flags. Since: 2.42. 1380 */ 1381 NONE = 0, 1382 /** 1383 * The option doesn't appear in `--help` output. 1384 */ 1385 HIDDEN = 1, 1386 /** 1387 * The option appears in the main section of the 1388 * `--help` output, even if it is defined in a group. 1389 */ 1390 IN_MAIN = 2, 1391 /** 1392 * For options of the %G_OPTION_ARG_NONE kind, this 1393 * flag indicates that the sense of the option is reversed. 1394 */ 1395 REVERSE = 4, 1396 /** 1397 * For options of the %G_OPTION_ARG_CALLBACK kind, 1398 * this flag indicates that the callback does not take any argument 1399 * (like a %G_OPTION_ARG_NONE option). Since 2.8 1400 */ 1401 NO_ARG = 8, 1402 /** 1403 * For options of the %G_OPTION_ARG_CALLBACK 1404 * kind, this flag indicates that the argument should be passed to the 1405 * callback in the GLib filename encoding rather than UTF-8. Since 2.8 1406 */ 1407 FILENAME = 16, 1408 /** 1409 * For options of the %G_OPTION_ARG_CALLBACK 1410 * kind, this flag indicates that the argument supply is optional. 1411 * If no argument is given then data of %GOptionParseFunc will be 1412 * set to NULL. Since 2.8 1413 */ 1414 OPTIONAL_ARG = 32, 1415 /** 1416 * This flag turns off the automatic conflict 1417 * resolution which prefixes long option names with `groupname-` if 1418 * there is a conflict. This option should only be used in situations 1419 * where aliasing is necessary to model some legacy commandline interface. 1420 * It is not safe to use this option, unless all option groups are under 1421 * your direct control. Since 2.8. 1422 */ 1423 NOALIAS = 64, 1424 } 1425 alias GOptionFlags OptionFlags; 1426 1427 /** 1428 * Flags specifying compile-time options. 1429 * 1430 * Since: 2.14 1431 */ 1432 public enum GRegexCompileFlags 1433 { 1434 /** 1435 * Letters in the pattern match both upper- and 1436 * lowercase letters. This option can be changed within a pattern 1437 * by a "(?i)" option setting. 1438 */ 1439 CASELESS = 1, 1440 /** 1441 * By default, GRegex treats the strings as consisting 1442 * of a single line of characters (even if it actually contains 1443 * newlines). The "start of line" metacharacter ("^") matches only 1444 * at the start of the string, while the "end of line" metacharacter 1445 * ("$") matches only at the end of the string, or before a terminating 1446 * newline (unless #G_REGEX_DOLLAR_ENDONLY is set). When 1447 * #G_REGEX_MULTILINE is set, the "start of line" and "end of line" 1448 * constructs match immediately following or immediately before any 1449 * newline in the string, respectively, as well as at the very start 1450 * and end. This can be changed within a pattern by a "(?m)" option 1451 * setting. 1452 */ 1453 MULTILINE = 2, 1454 /** 1455 * A dot metacharacter (".") in the pattern matches all 1456 * characters, including newlines. Without it, newlines are excluded. 1457 * This option can be changed within a pattern by a ("?s") option setting. 1458 */ 1459 DOTALL = 4, 1460 /** 1461 * Whitespace data characters in the pattern are 1462 * totally ignored except when escaped or inside a character class. 1463 * Whitespace does not include the VT character (code 11). In addition, 1464 * characters between an unescaped "#" outside a character class and 1465 * the next newline character, inclusive, are also ignored. This can 1466 * be changed within a pattern by a "(?x)" option setting. 1467 */ 1468 EXTENDED = 8, 1469 /** 1470 * The pattern is forced to be "anchored", that is, 1471 * it is constrained to match only at the first matching point in the 1472 * string that is being searched. This effect can also be achieved by 1473 * appropriate constructs in the pattern itself such as the "^" 1474 * metacharacter. 1475 */ 1476 ANCHORED = 16, 1477 /** 1478 * A dollar metacharacter ("$") in the pattern 1479 * matches only at the end of the string. Without this option, a 1480 * dollar also matches immediately before the final character if 1481 * it is a newline (but not before any other newlines). This option 1482 * is ignored if #G_REGEX_MULTILINE is set. 1483 */ 1484 DOLLAR_ENDONLY = 32, 1485 /** 1486 * Inverts the "greediness" of the quantifiers so that 1487 * they are not greedy by default, but become greedy if followed by "?". 1488 * It can also be set by a "(?U)" option setting within the pattern. 1489 */ 1490 UNGREEDY = 512, 1491 /** 1492 * Usually strings must be valid UTF-8 strings, using this 1493 * flag they are considered as a raw sequence of bytes. 1494 */ 1495 RAW = 2048, 1496 /** 1497 * Disables the use of numbered capturing 1498 * parentheses in the pattern. Any opening parenthesis that is not 1499 * followed by "?" behaves as if it were followed by "?:" but named 1500 * parentheses can still be used for capturing (and they acquire numbers 1501 * in the usual way). 1502 */ 1503 NO_AUTO_CAPTURE = 4096, 1504 /** 1505 * Optimize the regular expression. If the pattern will 1506 * be used many times, then it may be worth the effort to optimize it 1507 * to improve the speed of matches. 1508 */ 1509 OPTIMIZE = 8192, 1510 /** 1511 * Limits an unanchored pattern to match before (or at) the 1512 * first newline. Since: 2.34 1513 */ 1514 FIRSTLINE = 262144, 1515 /** 1516 * Names used to identify capturing subpatterns need not 1517 * be unique. This can be helpful for certain types of pattern when it 1518 * is known that only one instance of the named subpattern can ever be 1519 * matched. 1520 */ 1521 DUPNAMES = 524288, 1522 /** 1523 * Usually any newline character or character sequence is 1524 * recognized. If this option is set, the only recognized newline character 1525 * is '\r'. 1526 */ 1527 NEWLINE_CR = 1048576, 1528 /** 1529 * Usually any newline character or character sequence is 1530 * recognized. If this option is set, the only recognized newline character 1531 * is '\n'. 1532 */ 1533 NEWLINE_LF = 2097152, 1534 /** 1535 * Usually any newline character or character sequence is 1536 * recognized. If this option is set, the only recognized newline character 1537 * sequence is '\r\n'. 1538 */ 1539 NEWLINE_CRLF = 3145728, 1540 /** 1541 * Usually any newline character or character sequence 1542 * is recognized. If this option is set, the only recognized newline character 1543 * sequences are '\r', '\n', and '\r\n'. Since: 2.34 1544 */ 1545 NEWLINE_ANYCRLF = 5242880, 1546 /** 1547 * Usually any newline character or character sequence 1548 * is recognised. If this option is set, then "\R" only recognizes the newline 1549 * characters '\r', '\n' and '\r\n'. Since: 2.34 1550 */ 1551 BSR_ANYCRLF = 8388608, 1552 /** 1553 * Changes behaviour so that it is compatible with 1554 * JavaScript rather than PCRE. Since: 2.34 1555 */ 1556 JAVASCRIPT_COMPAT = 33554432, 1557 } 1558 alias GRegexCompileFlags RegexCompileFlags; 1559 1560 /** 1561 * Error codes returned by regular expressions functions. 1562 * 1563 * Since: 2.14 1564 */ 1565 public enum GRegexError 1566 { 1567 /** 1568 * Compilation of the regular expression failed. 1569 */ 1570 COMPILE = 0, 1571 /** 1572 * Optimization of the regular expression failed. 1573 */ 1574 OPTIMIZE = 1, 1575 /** 1576 * Replacement failed due to an ill-formed replacement 1577 * string. 1578 */ 1579 REPLACE = 2, 1580 /** 1581 * The match process failed. 1582 */ 1583 MATCH = 3, 1584 /** 1585 * Internal error of the regular expression engine. 1586 * Since 2.16 1587 */ 1588 INTERNAL = 4, 1589 /** 1590 * "\\" at end of pattern. Since 2.16 1591 */ 1592 STRAY_BACKSLASH = 101, 1593 /** 1594 * "\\c" at end of pattern. Since 2.16 1595 */ 1596 MISSING_CONTROL_CHAR = 102, 1597 /** 1598 * Unrecognized character follows "\\". 1599 * Since 2.16 1600 */ 1601 UNRECOGNIZED_ESCAPE = 103, 1602 /** 1603 * Numbers out of order in "{}" 1604 * quantifier. Since 2.16 1605 */ 1606 QUANTIFIERS_OUT_OF_ORDER = 104, 1607 /** 1608 * Number too big in "{}" quantifier. 1609 * Since 2.16 1610 */ 1611 QUANTIFIER_TOO_BIG = 105, 1612 /** 1613 * Missing terminating "]" for 1614 * character class. Since 2.16 1615 */ 1616 UNTERMINATED_CHARACTER_CLASS = 106, 1617 /** 1618 * Invalid escape sequence 1619 * in character class. Since 2.16 1620 */ 1621 INVALID_ESCAPE_IN_CHARACTER_CLASS = 107, 1622 /** 1623 * Range out of order in character class. 1624 * Since 2.16 1625 */ 1626 RANGE_OUT_OF_ORDER = 108, 1627 /** 1628 * Nothing to repeat. Since 2.16 1629 */ 1630 NOTHING_TO_REPEAT = 109, 1631 /** 1632 * Unrecognized character after "(?", 1633 * "(?<" or "(?P". Since 2.16 1634 */ 1635 UNRECOGNIZED_CHARACTER = 112, 1636 /** 1637 * POSIX named classes are 1638 * supported only within a class. Since 2.16 1639 */ 1640 POSIX_NAMED_CLASS_OUTSIDE_CLASS = 113, 1641 /** 1642 * Missing terminating ")" or ")" 1643 * without opening "(". Since 2.16 1644 */ 1645 UNMATCHED_PARENTHESIS = 114, 1646 /** 1647 * Reference to non-existent 1648 * subpattern. Since 2.16 1649 */ 1650 INEXISTENT_SUBPATTERN_REFERENCE = 115, 1651 /** 1652 * Missing terminating ")" after comment. 1653 * Since 2.16 1654 */ 1655 UNTERMINATED_COMMENT = 118, 1656 /** 1657 * Regular expression too large. 1658 * Since 2.16 1659 */ 1660 EXPRESSION_TOO_LARGE = 120, 1661 /** 1662 * Failed to get memory. Since 2.16 1663 */ 1664 MEMORY_ERROR = 121, 1665 /** 1666 * Lookbehind assertion is not 1667 * fixed length. Since 2.16 1668 */ 1669 VARIABLE_LENGTH_LOOKBEHIND = 125, 1670 /** 1671 * Malformed number or name after "(?(". 1672 * Since 2.16 1673 */ 1674 MALFORMED_CONDITION = 126, 1675 /** 1676 * Conditional group contains 1677 * more than two branches. Since 2.16 1678 */ 1679 TOO_MANY_CONDITIONAL_BRANCHES = 127, 1680 /** 1681 * Assertion expected after "(?(". 1682 * Since 2.16 1683 */ 1684 ASSERTION_EXPECTED = 128, 1685 /** 1686 * Unknown POSIX class name. 1687 * Since 2.16 1688 */ 1689 UNKNOWN_POSIX_CLASS_NAME = 130, 1690 /** 1691 * POSIX collating 1692 * elements are not supported. Since 2.16 1693 */ 1694 POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED = 131, 1695 /** 1696 * Character value in "\\x{...}" sequence 1697 * is too large. Since 2.16 1698 */ 1699 HEX_CODE_TOO_LARGE = 134, 1700 /** 1701 * Invalid condition "(?(0)". Since 2.16 1702 */ 1703 INVALID_CONDITION = 135, 1704 /** 1705 * \\C not allowed in 1706 * lookbehind assertion. Since 2.16 1707 */ 1708 SINGLE_BYTE_MATCH_IN_LOOKBEHIND = 136, 1709 /** 1710 * Recursive call could loop indefinitely. 1711 * Since 2.16 1712 */ 1713 INFINITE_LOOP = 140, 1714 /** 1715 * Missing terminator 1716 * in subpattern name. Since 2.16 1717 */ 1718 MISSING_SUBPATTERN_NAME_TERMINATOR = 142, 1719 /** 1720 * Two named subpatterns have 1721 * the same name. Since 2.16 1722 */ 1723 DUPLICATE_SUBPATTERN_NAME = 143, 1724 /** 1725 * Malformed "\\P" or "\\p" sequence. 1726 * Since 2.16 1727 */ 1728 MALFORMED_PROPERTY = 146, 1729 /** 1730 * Unknown property name after "\\P" or 1731 * "\\p". Since 2.16 1732 */ 1733 UNKNOWN_PROPERTY = 147, 1734 /** 1735 * Subpattern name is too long 1736 * (maximum 32 characters). Since 2.16 1737 */ 1738 SUBPATTERN_NAME_TOO_LONG = 148, 1739 /** 1740 * Too many named subpatterns (maximum 1741 * 10,000). Since 2.16 1742 */ 1743 TOO_MANY_SUBPATTERNS = 149, 1744 /** 1745 * Octal value is greater than "\\377". 1746 * Since 2.16 1747 */ 1748 INVALID_OCTAL_VALUE = 151, 1749 /** 1750 * "DEFINE" group contains more 1751 * than one branch. Since 2.16 1752 */ 1753 TOO_MANY_BRANCHES_IN_DEFINE = 154, 1754 /** 1755 * Repeating a "DEFINE" group is not allowed. 1756 * This error is never raised. Since: 2.16 Deprecated: 2.34 1757 */ 1758 DEFINE_REPETION = 155, 1759 /** 1760 * Inconsistent newline options. 1761 * Since 2.16 1762 */ 1763 INCONSISTENT_NEWLINE_OPTIONS = 156, 1764 /** 1765 * "\\g" is not followed by a braced, 1766 * angle-bracketed, or quoted name or number, or by a plain number. Since: 2.16 1767 */ 1768 MISSING_BACK_REFERENCE = 157, 1769 /** 1770 * relative reference must not be zero. Since: 2.34 1771 */ 1772 INVALID_RELATIVE_REFERENCE = 158, 1773 /** 1774 * the backtracing 1775 * control verb used does not allow an argument. Since: 2.34 1776 */ 1777 BACKTRACKING_CONTROL_VERB_ARGUMENT_FORBIDDEN = 159, 1778 /** 1779 * unknown backtracing 1780 * control verb. Since: 2.34 1781 */ 1782 UNKNOWN_BACKTRACKING_CONTROL_VERB = 160, 1783 /** 1784 * number is too big in escape sequence. Since: 2.34 1785 */ 1786 NUMBER_TOO_BIG = 161, 1787 /** 1788 * Missing subpattern name. Since: 2.34 1789 */ 1790 MISSING_SUBPATTERN_NAME = 162, 1791 /** 1792 * Missing digit. Since 2.34 1793 */ 1794 MISSING_DIGIT = 163, 1795 /** 1796 * In JavaScript compatibility mode, 1797 * "[" is an invalid data character. Since: 2.34 1798 */ 1799 INVALID_DATA_CHARACTER = 164, 1800 /** 1801 * different names for subpatterns of the 1802 * same number are not allowed. Since: 2.34 1803 */ 1804 EXTRA_SUBPATTERN_NAME = 165, 1805 /** 1806 * the backtracing control 1807 * verb requires an argument. Since: 2.34 1808 */ 1809 BACKTRACKING_CONTROL_VERB_ARGUMENT_REQUIRED = 166, 1810 /** 1811 * "\\c" must be followed by an ASCII 1812 * character. Since: 2.34 1813 */ 1814 INVALID_CONTROL_CHAR = 168, 1815 /** 1816 * "\\k" is not followed by a braced, angle-bracketed, or 1817 * quoted name. Since: 2.34 1818 */ 1819 MISSING_NAME = 169, 1820 /** 1821 * "\\N" is not supported in a class. Since: 2.34 1822 */ 1823 NOT_SUPPORTED_IN_CLASS = 171, 1824 /** 1825 * too many forward references. Since: 2.34 1826 */ 1827 TOO_MANY_FORWARD_REFERENCES = 172, 1828 /** 1829 * the name is too long in "(*MARK)", "(*PRUNE)", 1830 * "(*SKIP)", or "(*THEN)". Since: 2.34 1831 */ 1832 NAME_TOO_LONG = 175, 1833 /** 1834 * the character value in the \\u sequence is 1835 * too large. Since: 2.34 1836 */ 1837 CHARACTER_VALUE_TOO_LARGE = 176, 1838 } 1839 alias GRegexError RegexError; 1840 1841 /** 1842 * Flags specifying match-time options. 1843 * 1844 * Since: 2.14 1845 */ 1846 public enum GRegexMatchFlags 1847 { 1848 /** 1849 * The pattern is forced to be "anchored", that is, 1850 * it is constrained to match only at the first matching point in the 1851 * string that is being searched. This effect can also be achieved by 1852 * appropriate constructs in the pattern itself such as the "^" 1853 * metacharacter. 1854 */ 1855 ANCHORED = 16, 1856 /** 1857 * Specifies that first character of the string is 1858 * not the beginning of a line, so the circumflex metacharacter should 1859 * not match before it. Setting this without #G_REGEX_MULTILINE (at 1860 * compile time) causes circumflex never to match. This option affects 1861 * only the behaviour of the circumflex metacharacter, it does not 1862 * affect "\A". 1863 */ 1864 NOTBOL = 128, 1865 /** 1866 * Specifies that the end of the subject string is 1867 * not the end of a line, so the dollar metacharacter should not match 1868 * it nor (except in multiline mode) a newline immediately before it. 1869 * Setting this without #G_REGEX_MULTILINE (at compile time) causes 1870 * dollar never to match. This option affects only the behaviour of 1871 * the dollar metacharacter, it does not affect "\Z" or "\z". 1872 */ 1873 NOTEOL = 256, 1874 /** 1875 * An empty string is not considered to be a valid 1876 * match if this option is set. If there are alternatives in the pattern, 1877 * they are tried. If all the alternatives match the empty string, the 1878 * entire match fails. For example, if the pattern "a?b?" is applied to 1879 * a string not beginning with "a" or "b", it matches the empty string 1880 * at the start of the string. With this flag set, this match is not 1881 * valid, so GRegex searches further into the string for occurrences 1882 * of "a" or "b". 1883 */ 1884 NOTEMPTY = 1024, 1885 /** 1886 * Turns on the partial matching feature, for more 1887 * documentation on partial matching see g_match_info_is_partial_match(). 1888 */ 1889 PARTIAL = 32768, 1890 /** 1891 * Overrides the newline definition set when 1892 * creating a new #GRegex, setting the '\r' character as line terminator. 1893 */ 1894 NEWLINE_CR = 1048576, 1895 /** 1896 * Overrides the newline definition set when 1897 * creating a new #GRegex, setting the '\n' character as line terminator. 1898 */ 1899 NEWLINE_LF = 2097152, 1900 /** 1901 * Overrides the newline definition set when 1902 * creating a new #GRegex, setting the '\r\n' characters sequence as line terminator. 1903 */ 1904 NEWLINE_CRLF = 3145728, 1905 /** 1906 * Overrides the newline definition set when 1907 * creating a new #GRegex, any Unicode newline sequence 1908 * is recognised as a newline. These are '\r', '\n' and '\rn', and the 1909 * single characters U+000B LINE TABULATION, U+000C FORM FEED (FF), 1910 * U+0085 NEXT LINE (NEL), U+2028 LINE SEPARATOR and 1911 * U+2029 PARAGRAPH SEPARATOR. 1912 */ 1913 NEWLINE_ANY = 4194304, 1914 /** 1915 * Overrides the newline definition set when 1916 * creating a new #GRegex; any '\r', '\n', or '\r\n' character sequence 1917 * is recognized as a newline. Since: 2.34 1918 */ 1919 NEWLINE_ANYCRLF = 5242880, 1920 /** 1921 * Overrides the newline definition for "\R" set when 1922 * creating a new #GRegex; only '\r', '\n', or '\r\n' character sequences 1923 * are recognized as a newline by "\R". Since: 2.34 1924 */ 1925 BSR_ANYCRLF = 8388608, 1926 /** 1927 * Overrides the newline definition for "\R" set when 1928 * creating a new #GRegex; any Unicode newline character or character sequence 1929 * are recognized as a newline by "\R". These are '\r', '\n' and '\rn', and the 1930 * single characters U+000B LINE TABULATION, U+000C FORM FEED (FF), 1931 * U+0085 NEXT LINE (NEL), U+2028 LINE SEPARATOR and 1932 * U+2029 PARAGRAPH SEPARATOR. Since: 2.34 1933 */ 1934 BSR_ANY = 16777216, 1935 /** 1936 * An alias for #G_REGEX_MATCH_PARTIAL. Since: 2.34 1937 */ 1938 PARTIAL_SOFT = 32768, 1939 /** 1940 * Turns on the partial matching feature. In contrast to 1941 * to #G_REGEX_MATCH_PARTIAL_SOFT, this stops matching as soon as a partial match 1942 * is found, without continuing to search for a possible complete match. See 1943 * g_match_info_is_partial_match() for more information. Since: 2.34 1944 */ 1945 PARTIAL_HARD = 134217728, 1946 /** 1947 * Like #G_REGEX_MATCH_NOTEMPTY, but only applied to 1948 * the start of the matched string. For anchored 1949 * patterns this can only happen for pattern containing "\K". Since: 2.34 1950 */ 1951 NOTEMPTY_ATSTART = 268435456, 1952 } 1953 alias GRegexMatchFlags RegexMatchFlags; 1954 1955 /** 1956 * An enumeration specifying the base position for a 1957 * g_io_channel_seek_position() operation. 1958 */ 1959 public enum GSeekType 1960 { 1961 /** 1962 * the current position in the file. 1963 */ 1964 CUR = 0, 1965 /** 1966 * the start of the file. 1967 */ 1968 SET = 1, 1969 /** 1970 * the end of the file. 1971 */ 1972 END = 2, 1973 } 1974 alias GSeekType SeekType; 1975 1976 /** 1977 * Error codes returned by shell functions. 1978 */ 1979 public enum GShellError 1980 { 1981 /** 1982 * Mismatched or otherwise mangled quoting. 1983 */ 1984 BAD_QUOTING = 0, 1985 /** 1986 * String to be parsed was empty. 1987 */ 1988 EMPTY_STRING = 1, 1989 /** 1990 * Some other error. 1991 */ 1992 FAILED = 2, 1993 } 1994 alias GShellError ShellError; 1995 1996 public enum GSliceConfig 1997 { 1998 ALWAYS_MALLOC = 1, 1999 BYPASS_MAGAZINES = 2, 2000 WORKING_SET_MSECS = 3, 2001 COLOR_INCREMENT = 4, 2002 CHUNK_SIZES = 5, 2003 CONTENTION_COUNTER = 6, 2004 } 2005 alias GSliceConfig SliceConfig; 2006 2007 /** 2008 * Error codes returned by spawning processes. 2009 */ 2010 public enum GSpawnError 2011 { 2012 /** 2013 * Fork failed due to lack of memory. 2014 */ 2015 FORK = 0, 2016 /** 2017 * Read or select on pipes failed. 2018 */ 2019 READ = 1, 2020 /** 2021 * Changing to working directory failed. 2022 */ 2023 CHDIR = 2, 2024 /** 2025 * execv() returned `EACCES` 2026 */ 2027 ACCES = 3, 2028 /** 2029 * execv() returned `EPERM` 2030 */ 2031 PERM = 4, 2032 /** 2033 * execv() returned `E2BIG` 2034 */ 2035 TOO_BIG = 5, 2036 /** 2037 * execv() returned `ENOEXEC` 2038 */ 2039 NOEXEC = 6, 2040 /** 2041 * execv() returned `ENAMETOOLONG` 2042 */ 2043 NAMETOOLONG = 7, 2044 /** 2045 * execv() returned `ENOENT` 2046 */ 2047 NOENT = 8, 2048 /** 2049 * execv() returned `ENOMEM` 2050 */ 2051 NOMEM = 9, 2052 /** 2053 * execv() returned `ENOTDIR` 2054 */ 2055 NOTDIR = 10, 2056 /** 2057 * execv() returned `ELOOP` 2058 */ 2059 LOOP = 11, 2060 /** 2061 * execv() returned `ETXTBUSY` 2062 */ 2063 TXTBUSY = 12, 2064 /** 2065 * execv() returned `EIO` 2066 */ 2067 IO = 13, 2068 /** 2069 * execv() returned `ENFILE` 2070 */ 2071 NFILE = 14, 2072 /** 2073 * execv() returned `EMFILE` 2074 */ 2075 MFILE = 15, 2076 /** 2077 * execv() returned `EINVAL` 2078 */ 2079 INVAL = 16, 2080 /** 2081 * execv() returned `EISDIR` 2082 */ 2083 ISDIR = 17, 2084 /** 2085 * execv() returned `ELIBBAD` 2086 */ 2087 LIBBAD = 18, 2088 /** 2089 * Some other fatal failure, 2090 * `error->message` should explain. 2091 */ 2092 FAILED = 19, 2093 } 2094 alias GSpawnError SpawnError; 2095 2096 /** 2097 * Flags passed to g_spawn_sync(), g_spawn_async() and g_spawn_async_with_pipes(). 2098 */ 2099 public enum GSpawnFlags 2100 { 2101 /** 2102 * no flags, default behaviour 2103 */ 2104 DEFAULT = 0, 2105 /** 2106 * the parent's open file descriptors will 2107 * be inherited by the child; otherwise all descriptors except stdin, 2108 * stdout and stderr will be closed before calling exec() in the child. 2109 */ 2110 LEAVE_DESCRIPTORS_OPEN = 1, 2111 /** 2112 * the child will not be automatically reaped; 2113 * you must use g_child_watch_add() yourself (or call waitpid() or handle 2114 * `SIGCHLD` yourself), or the child will become a zombie. 2115 */ 2116 DO_NOT_REAP_CHILD = 2, 2117 /** 2118 * `argv[0]` need not be an absolute path, it will be 2119 * looked for in the user's `PATH`. 2120 */ 2121 SEARCH_PATH = 4, 2122 /** 2123 * the child's standard output will be discarded, 2124 * instead of going to the same location as the parent's standard output. 2125 */ 2126 STDOUT_TO_DEV_NULL = 8, 2127 /** 2128 * the child's standard error will be discarded. 2129 */ 2130 STDERR_TO_DEV_NULL = 16, 2131 /** 2132 * the child will inherit the parent's standard 2133 * input (by default, the child's standard input is attached to `/dev/null`). 2134 */ 2135 CHILD_INHERITS_STDIN = 32, 2136 /** 2137 * the first element of `argv` is the file to 2138 * execute, while the remaining elements are the actual argument vector 2139 * to pass to the file. Normally g_spawn_async_with_pipes() uses `argv[0]` 2140 * as the file to execute, and passes all of `argv` to the child. 2141 */ 2142 FILE_AND_ARGV_ZERO = 64, 2143 /** 2144 * if `argv[0]` is not an abolute path, 2145 * it will be looked for in the `PATH` from the passed child environment. 2146 * Since: 2.34 2147 */ 2148 SEARCH_PATH_FROM_ENVP = 128, 2149 /** 2150 * create all pipes with the `O_CLOEXEC` flag set. 2151 * Since: 2.40 2152 */ 2153 CLOEXEC_PIPES = 256, 2154 } 2155 alias GSpawnFlags SpawnFlags; 2156 2157 /** 2158 * The type of file to return the filename for, when used with 2159 * g_test_build_filename(). 2160 * 2161 * These two options correspond rather directly to the 'dist' and 2162 * 'built' terminology that automake uses and are explicitly used to 2163 * distinguish between the 'srcdir' and 'builddir' being separate. All 2164 * files in your project should either be dist (in the 2165 * `EXTRA_DIST` or `dist_schema_DATA` 2166 * sense, in which case they will always be in the srcdir) or built (in 2167 * the `BUILT_SOURCES` sense, in which case they will 2168 * always be in the builddir). 2169 * 2170 * Note: as a general rule of automake, files that are generated only as 2171 * part of the build-from-git process (but then are distributed with the 2172 * tarball) always go in srcdir (even if doing a srcdir != builddir 2173 * build from git) and are considered as distributed files. 2174 * 2175 * Since: 2.38 2176 */ 2177 public enum GTestFileType 2178 { 2179 /** 2180 * a file that was included in the distribution tarball 2181 */ 2182 DIST = 0, 2183 /** 2184 * a file that was built on the compiling machine 2185 */ 2186 BUILT = 1, 2187 } 2188 alias GTestFileType TestFileType; 2189 2190 public enum GTestLogType 2191 { 2192 NONE = 0, 2193 ERROR = 1, 2194 START_BINARY = 2, 2195 LIST_CASE = 3, 2196 SKIP_CASE = 4, 2197 START_CASE = 5, 2198 STOP_CASE = 6, 2199 MIN_RESULT = 7, 2200 MAX_RESULT = 8, 2201 MESSAGE = 9, 2202 START_SUITE = 10, 2203 STOP_SUITE = 11, 2204 } 2205 alias GTestLogType TestLogType; 2206 2207 public enum GTestResult 2208 { 2209 SUCCESS = 0, 2210 SKIPPED = 1, 2211 FAILURE = 2, 2212 INCOMPLETE = 3, 2213 } 2214 alias GTestResult TestResult; 2215 2216 /** 2217 * Flags to pass to g_test_trap_subprocess() to control input and output. 2218 * 2219 * Note that in contrast with g_test_trap_fork(), the default is to 2220 * not show stdout and stderr. 2221 */ 2222 public enum GTestSubprocessFlags 2223 { 2224 /** 2225 * If this flag is given, the child 2226 * process will inherit the parent's stdin. Otherwise, the child's 2227 * stdin is redirected to `/dev/null`. 2228 */ 2229 STDIN = 1, 2230 /** 2231 * If this flag is given, the child 2232 * process will inherit the parent's stdout. Otherwise, the child's 2233 * stdout will not be visible, but it will be captured to allow 2234 * later tests with g_test_trap_assert_stdout(). 2235 */ 2236 STDOUT = 2, 2237 /** 2238 * If this flag is given, the child 2239 * process will inherit the parent's stderr. Otherwise, the child's 2240 * stderr will not be visible, but it will be captured to allow 2241 * later tests with g_test_trap_assert_stderr(). 2242 */ 2243 STDERR = 4, 2244 } 2245 alias GTestSubprocessFlags TestSubprocessFlags; 2246 2247 /** 2248 * Test traps are guards around forked tests. 2249 * These flags determine what traps to set. 2250 * 2251 * Deprecated: #GTestTrapFlags is used only with g_test_trap_fork(), 2252 * which is deprecated. g_test_trap_subprocess() uses 2253 * #GTestSubprocessFlags. 2254 */ 2255 public enum GTestTrapFlags 2256 { 2257 /** 2258 * Redirect stdout of the test child to 2259 * `/dev/null` so it cannot be observed on the console during test 2260 * runs. The actual output is still captured though to allow later 2261 * tests with g_test_trap_assert_stdout(). 2262 */ 2263 SILENCE_STDOUT = 128, 2264 /** 2265 * Redirect stderr of the test child to 2266 * `/dev/null` so it cannot be observed on the console during test 2267 * runs. The actual output is still captured though to allow later 2268 * tests with g_test_trap_assert_stderr(). 2269 */ 2270 SILENCE_STDERR = 256, 2271 /** 2272 * If this flag is given, stdin of the 2273 * child process is shared with stdin of its parent process. 2274 * It is redirected to `/dev/null` otherwise. 2275 */ 2276 INHERIT_STDIN = 512, 2277 } 2278 alias GTestTrapFlags TestTrapFlags; 2279 2280 /** 2281 * Possible errors of thread related functions. 2282 */ 2283 public enum GThreadError 2284 { 2285 /** 2286 * a thread couldn't be created due to resource 2287 * shortage. Try again later. 2288 */ 2289 THREAD_ERROR_AGAIN = 0, 2290 } 2291 alias GThreadError ThreadError; 2292 2293 /** 2294 * Disambiguates a given time in two ways. 2295 * 2296 * First, specifies if the given time is in universal or local time. 2297 * 2298 * Second, if the time is in local time, specifies if it is local 2299 * standard time or local daylight time. This is important for the case 2300 * where the same local time occurs twice (during daylight savings time 2301 * transitions, for example). 2302 */ 2303 public enum GTimeType 2304 { 2305 /** 2306 * the time is in local standard time 2307 */ 2308 STANDARD = 0, 2309 /** 2310 * the time is in local daylight time 2311 */ 2312 DAYLIGHT = 1, 2313 /** 2314 * the time is in UTC 2315 */ 2316 UNIVERSAL = 2, 2317 } 2318 alias GTimeType TimeType; 2319 2320 /** 2321 * The possible types of token returned from each 2322 * g_scanner_get_next_token() call. 2323 */ 2324 public enum GTokenType 2325 { 2326 /** 2327 * the end of the file 2328 */ 2329 EOF = 0, 2330 /** 2331 * a '(' character 2332 */ 2333 LEFT_PAREN = 40, 2334 /** 2335 * a ')' character 2336 */ 2337 RIGHT_PAREN = 41, 2338 /** 2339 * a '{' character 2340 */ 2341 LEFT_CURLY = 123, 2342 /** 2343 * a '}' character 2344 */ 2345 RIGHT_CURLY = 125, 2346 /** 2347 * a '[' character 2348 */ 2349 LEFT_BRACE = 91, 2350 /** 2351 * a ']' character 2352 */ 2353 RIGHT_BRACE = 93, 2354 /** 2355 * a '=' character 2356 */ 2357 EQUAL_SIGN = 61, 2358 /** 2359 * a ',' character 2360 */ 2361 COMMA = 44, 2362 /** 2363 * not a token 2364 */ 2365 NONE = 256, 2366 /** 2367 * an error occurred 2368 */ 2369 ERROR = 257, 2370 /** 2371 * a character 2372 */ 2373 CHAR = 258, 2374 /** 2375 * a binary integer 2376 */ 2377 BINARY = 259, 2378 /** 2379 * an octal integer 2380 */ 2381 OCTAL = 260, 2382 /** 2383 * an integer 2384 */ 2385 INT = 261, 2386 /** 2387 * a hex integer 2388 */ 2389 HEX = 262, 2390 /** 2391 * a floating point number 2392 */ 2393 FLOAT = 263, 2394 /** 2395 * a string 2396 */ 2397 STRING = 264, 2398 /** 2399 * a symbol 2400 */ 2401 SYMBOL = 265, 2402 /** 2403 * an identifier 2404 */ 2405 IDENTIFIER = 266, 2406 /** 2407 * a null identifier 2408 */ 2409 IDENTIFIER_NULL = 267, 2410 /** 2411 * one line comment 2412 */ 2413 COMMENT_SINGLE = 268, 2414 /** 2415 * multi line comment 2416 */ 2417 COMMENT_MULTI = 269, 2418 } 2419 alias GTokenType TokenType; 2420 2421 /** 2422 * Specifies which nodes are visited during several of the tree 2423 * functions, including g_node_traverse() and g_node_find(). 2424 */ 2425 public enum GTraverseFlags 2426 { 2427 /** 2428 * only leaf nodes should be visited. This name has 2429 * been introduced in 2.6, for older version use 2430 * %G_TRAVERSE_LEAFS. 2431 */ 2432 LEAVES = 1, 2433 /** 2434 * only non-leaf nodes should be visited. This 2435 * name has been introduced in 2.6, for older 2436 * version use %G_TRAVERSE_NON_LEAFS. 2437 */ 2438 NON_LEAVES = 2, 2439 /** 2440 * all nodes should be visited. 2441 */ 2442 ALL = 3, 2443 /** 2444 * a mask of all traverse flags. 2445 */ 2446 MASK = 3, 2447 /** 2448 * identical to %G_TRAVERSE_LEAVES. 2449 */ 2450 LEAFS = 1, 2451 /** 2452 * identical to %G_TRAVERSE_NON_LEAVES. 2453 */ 2454 NON_LEAFS = 2, 2455 } 2456 alias GTraverseFlags TraverseFlags; 2457 2458 /** 2459 * Specifies the type of traveral performed by g_tree_traverse(), 2460 * g_node_traverse() and g_node_find(). The different orders are 2461 * illustrated here: 2462 * - In order: A, B, C, D, E, F, G, H, I 2463 * ![](Sorted_binary_tree_inorder.svg) 2464 * - Pre order: F, B, A, D, C, E, G, I, H 2465 * ![](Sorted_binary_tree_preorder.svg) 2466 * - Post order: A, C, E, D, B, H, I, G, F 2467 * ![](Sorted_binary_tree_postorder.svg) 2468 * - Level order: F, B, G, A, D, I, C, E, H 2469 * ![](Sorted_binary_tree_breadth-first_traversal.svg) 2470 */ 2471 public enum GTraverseType 2472 { 2473 /** 2474 * vists a node's left child first, then the node itself, 2475 * then its right child. This is the one to use if you 2476 * want the output sorted according to the compare 2477 * function. 2478 */ 2479 IN_ORDER = 0, 2480 /** 2481 * visits a node, then its children. 2482 */ 2483 PRE_ORDER = 1, 2484 /** 2485 * visits the node's children, then the node itself. 2486 */ 2487 POST_ORDER = 2, 2488 /** 2489 * is not implemented for 2490 * [balanced binary trees][glib-Balanced-Binary-Trees]. 2491 * For [n-ary trees][glib-N-ary-Trees], it 2492 * vists the root node first, then its children, then 2493 * its grandchildren, and so on. Note that this is less 2494 * efficient than the other orders. 2495 */ 2496 LEVEL_ORDER = 3, 2497 } 2498 alias GTraverseType TraverseType; 2499 2500 /** 2501 * These are the possible line break classifications. 2502 * 2503 * Since new unicode versions may add new types here, applications should be ready 2504 * to handle unknown values. They may be regarded as %G_UNICODE_BREAK_UNKNOWN. 2505 * 2506 * See [Unicode Line Breaking Algorithm](http://www.unicode.org/unicode/reports/tr14/). 2507 */ 2508 public enum GUnicodeBreakType 2509 { 2510 /** 2511 * Mandatory Break (BK) 2512 */ 2513 MANDATORY = 0, 2514 /** 2515 * Carriage Return (CR) 2516 */ 2517 CARRIAGE_RETURN = 1, 2518 /** 2519 * Line Feed (LF) 2520 */ 2521 LINE_FEED = 2, 2522 /** 2523 * Attached Characters and Combining Marks (CM) 2524 */ 2525 COMBINING_MARK = 3, 2526 /** 2527 * Surrogates (SG) 2528 */ 2529 SURROGATE = 4, 2530 /** 2531 * Zero Width Space (ZW) 2532 */ 2533 ZERO_WIDTH_SPACE = 5, 2534 /** 2535 * Inseparable (IN) 2536 */ 2537 INSEPARABLE = 6, 2538 /** 2539 * Non-breaking ("Glue") (GL) 2540 */ 2541 NON_BREAKING_GLUE = 7, 2542 /** 2543 * Contingent Break Opportunity (CB) 2544 */ 2545 CONTINGENT = 8, 2546 /** 2547 * Space (SP) 2548 */ 2549 SPACE = 9, 2550 /** 2551 * Break Opportunity After (BA) 2552 */ 2553 AFTER = 10, 2554 /** 2555 * Break Opportunity Before (BB) 2556 */ 2557 BEFORE = 11, 2558 /** 2559 * Break Opportunity Before and After (B2) 2560 */ 2561 BEFORE_AND_AFTER = 12, 2562 /** 2563 * Hyphen (HY) 2564 */ 2565 HYPHEN = 13, 2566 /** 2567 * Nonstarter (NS) 2568 */ 2569 NON_STARTER = 14, 2570 /** 2571 * Opening Punctuation (OP) 2572 */ 2573 OPEN_PUNCTUATION = 15, 2574 /** 2575 * Closing Punctuation (CL) 2576 */ 2577 CLOSE_PUNCTUATION = 16, 2578 /** 2579 * Ambiguous Quotation (QU) 2580 */ 2581 QUOTATION = 17, 2582 /** 2583 * Exclamation/Interrogation (EX) 2584 */ 2585 EXCLAMATION = 18, 2586 /** 2587 * Ideographic (ID) 2588 */ 2589 IDEOGRAPHIC = 19, 2590 /** 2591 * Numeric (NU) 2592 */ 2593 NUMERIC = 20, 2594 /** 2595 * Infix Separator (Numeric) (IS) 2596 */ 2597 INFIX_SEPARATOR = 21, 2598 /** 2599 * Symbols Allowing Break After (SY) 2600 */ 2601 SYMBOL = 22, 2602 /** 2603 * Ordinary Alphabetic and Symbol Characters (AL) 2604 */ 2605 ALPHABETIC = 23, 2606 /** 2607 * Prefix (Numeric) (PR) 2608 */ 2609 PREFIX = 24, 2610 /** 2611 * Postfix (Numeric) (PO) 2612 */ 2613 POSTFIX = 25, 2614 /** 2615 * Complex Content Dependent (South East Asian) (SA) 2616 */ 2617 COMPLEX_CONTEXT = 26, 2618 /** 2619 * Ambiguous (Alphabetic or Ideographic) (AI) 2620 */ 2621 AMBIGUOUS = 27, 2622 /** 2623 * Unknown (XX) 2624 */ 2625 UNKNOWN = 28, 2626 /** 2627 * Next Line (NL) 2628 */ 2629 NEXT_LINE = 29, 2630 /** 2631 * Word Joiner (WJ) 2632 */ 2633 WORD_JOINER = 30, 2634 /** 2635 * Hangul L Jamo (JL) 2636 */ 2637 HANGUL_L_JAMO = 31, 2638 /** 2639 * Hangul V Jamo (JV) 2640 */ 2641 HANGUL_V_JAMO = 32, 2642 /** 2643 * Hangul T Jamo (JT) 2644 */ 2645 HANGUL_T_JAMO = 33, 2646 /** 2647 * Hangul LV Syllable (H2) 2648 */ 2649 HANGUL_LV_SYLLABLE = 34, 2650 /** 2651 * Hangul LVT Syllable (H3) 2652 */ 2653 HANGUL_LVT_SYLLABLE = 35, 2654 /** 2655 * Closing Parenthesis (CP). Since 2.28 2656 */ 2657 CLOSE_PARANTHESIS = 36, 2658 /** 2659 * Conditional Japanese Starter (CJ). Since: 2.32 2660 */ 2661 CONDITIONAL_JAPANESE_STARTER = 37, 2662 /** 2663 * Hebrew Letter (HL). Since: 2.32 2664 */ 2665 HEBREW_LETTER = 38, 2666 /** 2667 * Regional Indicator (RI). Since: 2.36 2668 */ 2669 REGIONAL_INDICATOR = 39, 2670 /** 2671 * Emoji Base (EB). Since: 2.50 2672 */ 2673 EMOJI_BASE = 40, 2674 /** 2675 * Emoji Modifier (EM). Since: 2.50 2676 */ 2677 EMOJI_MODIFIER = 41, 2678 /** 2679 * Zero Width Joiner (ZWJ). Since: 2.50 2680 */ 2681 ZERO_WIDTH_JOINER = 42, 2682 } 2683 alias GUnicodeBreakType UnicodeBreakType; 2684 2685 /** 2686 * The #GUnicodeScript enumeration identifies different writing 2687 * systems. The values correspond to the names as defined in the 2688 * Unicode standard. The enumeration has been added in GLib 2.14, 2689 * and is interchangeable with #PangoScript. 2690 * 2691 * Note that new types may be added in the future. Applications 2692 * should be ready to handle unknown values. 2693 * See [Unicode Standard Annex #24: Script names](http://www.unicode.org/reports/tr24/). 2694 */ 2695 public enum GUnicodeScript 2696 { 2697 /** 2698 * a value never returned from g_unichar_get_script() 2699 */ 2700 INVALID_CODE = -1, 2701 /** 2702 * a character used by multiple different scripts 2703 */ 2704 COMMON = 0, 2705 /** 2706 * a mark glyph that takes its script from the 2707 * base glyph to which it is attached 2708 */ 2709 INHERITED = 1, 2710 /** 2711 * Arabic 2712 */ 2713 ARABIC = 2, 2714 /** 2715 * Armenian 2716 */ 2717 ARMENIAN = 3, 2718 /** 2719 * Bengali 2720 */ 2721 BENGALI = 4, 2722 /** 2723 * Bopomofo 2724 */ 2725 BOPOMOFO = 5, 2726 /** 2727 * Cherokee 2728 */ 2729 CHEROKEE = 6, 2730 /** 2731 * Coptic 2732 */ 2733 COPTIC = 7, 2734 /** 2735 * Cyrillic 2736 */ 2737 CYRILLIC = 8, 2738 /** 2739 * Deseret 2740 */ 2741 DESERET = 9, 2742 /** 2743 * Devanagari 2744 */ 2745 DEVANAGARI = 10, 2746 /** 2747 * Ethiopic 2748 */ 2749 ETHIOPIC = 11, 2750 /** 2751 * Georgian 2752 */ 2753 GEORGIAN = 12, 2754 /** 2755 * Gothic 2756 */ 2757 GOTHIC = 13, 2758 /** 2759 * Greek 2760 */ 2761 GREEK = 14, 2762 /** 2763 * Gujarati 2764 */ 2765 GUJARATI = 15, 2766 /** 2767 * Gurmukhi 2768 */ 2769 GURMUKHI = 16, 2770 /** 2771 * Han 2772 */ 2773 HAN = 17, 2774 /** 2775 * Hangul 2776 */ 2777 HANGUL = 18, 2778 /** 2779 * Hebrew 2780 */ 2781 HEBREW = 19, 2782 /** 2783 * Hiragana 2784 */ 2785 HIRAGANA = 20, 2786 /** 2787 * Kannada 2788 */ 2789 KANNADA = 21, 2790 /** 2791 * Katakana 2792 */ 2793 KATAKANA = 22, 2794 /** 2795 * Khmer 2796 */ 2797 KHMER = 23, 2798 /** 2799 * Lao 2800 */ 2801 LAO = 24, 2802 /** 2803 * Latin 2804 */ 2805 LATIN = 25, 2806 /** 2807 * Malayalam 2808 */ 2809 MALAYALAM = 26, 2810 /** 2811 * Mongolian 2812 */ 2813 MONGOLIAN = 27, 2814 /** 2815 * Myanmar 2816 */ 2817 MYANMAR = 28, 2818 /** 2819 * Ogham 2820 */ 2821 OGHAM = 29, 2822 /** 2823 * Old Italic 2824 */ 2825 OLD_ITALIC = 30, 2826 /** 2827 * Oriya 2828 */ 2829 ORIYA = 31, 2830 /** 2831 * Runic 2832 */ 2833 RUNIC = 32, 2834 /** 2835 * Sinhala 2836 */ 2837 SINHALA = 33, 2838 /** 2839 * Syriac 2840 */ 2841 SYRIAC = 34, 2842 /** 2843 * Tamil 2844 */ 2845 TAMIL = 35, 2846 /** 2847 * Telugu 2848 */ 2849 TELUGU = 36, 2850 /** 2851 * Thaana 2852 */ 2853 THAANA = 37, 2854 /** 2855 * Thai 2856 */ 2857 THAI = 38, 2858 /** 2859 * Tibetan 2860 */ 2861 TIBETAN = 39, 2862 /** 2863 * Canadian Aboriginal 2864 */ 2865 CANADIAN_ABORIGINAL = 40, 2866 /** 2867 * Yi 2868 */ 2869 YI = 41, 2870 /** 2871 * Tagalog 2872 */ 2873 TAGALOG = 42, 2874 /** 2875 * Hanunoo 2876 */ 2877 HANUNOO = 43, 2878 /** 2879 * Buhid 2880 */ 2881 BUHID = 44, 2882 /** 2883 * Tagbanwa 2884 */ 2885 TAGBANWA = 45, 2886 /** 2887 * Braille 2888 */ 2889 BRAILLE = 46, 2890 /** 2891 * Cypriot 2892 */ 2893 CYPRIOT = 47, 2894 /** 2895 * Limbu 2896 */ 2897 LIMBU = 48, 2898 /** 2899 * Osmanya 2900 */ 2901 OSMANYA = 49, 2902 /** 2903 * Shavian 2904 */ 2905 SHAVIAN = 50, 2906 /** 2907 * Linear B 2908 */ 2909 LINEAR_B = 51, 2910 /** 2911 * Tai Le 2912 */ 2913 TAI_LE = 52, 2914 /** 2915 * Ugaritic 2916 */ 2917 UGARITIC = 53, 2918 /** 2919 * New Tai Lue 2920 */ 2921 NEW_TAI_LUE = 54, 2922 /** 2923 * Buginese 2924 */ 2925 BUGINESE = 55, 2926 /** 2927 * Glagolitic 2928 */ 2929 GLAGOLITIC = 56, 2930 /** 2931 * Tifinagh 2932 */ 2933 TIFINAGH = 57, 2934 /** 2935 * Syloti Nagri 2936 */ 2937 SYLOTI_NAGRI = 58, 2938 /** 2939 * Old Persian 2940 */ 2941 OLD_PERSIAN = 59, 2942 /** 2943 * Kharoshthi 2944 */ 2945 KHAROSHTHI = 60, 2946 /** 2947 * an unassigned code point 2948 */ 2949 UNKNOWN = 61, 2950 /** 2951 * Balinese 2952 */ 2953 BALINESE = 62, 2954 /** 2955 * Cuneiform 2956 */ 2957 CUNEIFORM = 63, 2958 /** 2959 * Phoenician 2960 */ 2961 PHOENICIAN = 64, 2962 /** 2963 * Phags-pa 2964 */ 2965 PHAGS_PA = 65, 2966 /** 2967 * N'Ko 2968 */ 2969 NKO = 66, 2970 /** 2971 * Kayah Li. Since 2.16.3 2972 */ 2973 KAYAH_LI = 67, 2974 /** 2975 * Lepcha. Since 2.16.3 2976 */ 2977 LEPCHA = 68, 2978 /** 2979 * Rejang. Since 2.16.3 2980 */ 2981 REJANG = 69, 2982 /** 2983 * Sundanese. Since 2.16.3 2984 */ 2985 SUNDANESE = 70, 2986 /** 2987 * Saurashtra. Since 2.16.3 2988 */ 2989 SAURASHTRA = 71, 2990 /** 2991 * Cham. Since 2.16.3 2992 */ 2993 CHAM = 72, 2994 /** 2995 * Ol Chiki. Since 2.16.3 2996 */ 2997 OL_CHIKI = 73, 2998 /** 2999 * Vai. Since 2.16.3 3000 */ 3001 VAI = 74, 3002 /** 3003 * Carian. Since 2.16.3 3004 */ 3005 CARIAN = 75, 3006 /** 3007 * Lycian. Since 2.16.3 3008 */ 3009 LYCIAN = 76, 3010 /** 3011 * Lydian. Since 2.16.3 3012 */ 3013 LYDIAN = 77, 3014 /** 3015 * Avestan. Since 2.26 3016 */ 3017 AVESTAN = 78, 3018 /** 3019 * Bamum. Since 2.26 3020 */ 3021 BAMUM = 79, 3022 /** 3023 * Egyptian Hieroglpyhs. Since 2.26 3024 */ 3025 EGYPTIAN_HIEROGLYPHS = 80, 3026 /** 3027 * Imperial Aramaic. Since 2.26 3028 */ 3029 IMPERIAL_ARAMAIC = 81, 3030 /** 3031 * Inscriptional Pahlavi. Since 2.26 3032 */ 3033 INSCRIPTIONAL_PAHLAVI = 82, 3034 /** 3035 * Inscriptional Parthian. Since 2.26 3036 */ 3037 INSCRIPTIONAL_PARTHIAN = 83, 3038 /** 3039 * Javanese. Since 2.26 3040 */ 3041 JAVANESE = 84, 3042 /** 3043 * Kaithi. Since 2.26 3044 */ 3045 KAITHI = 85, 3046 /** 3047 * Lisu. Since 2.26 3048 */ 3049 LISU = 86, 3050 /** 3051 * Meetei Mayek. Since 2.26 3052 */ 3053 MEETEI_MAYEK = 87, 3054 /** 3055 * Old South Arabian. Since 2.26 3056 */ 3057 OLD_SOUTH_ARABIAN = 88, 3058 /** 3059 * Old Turkic. Since 2.28 3060 */ 3061 OLD_TURKIC = 89, 3062 /** 3063 * Samaritan. Since 2.26 3064 */ 3065 SAMARITAN = 90, 3066 /** 3067 * Tai Tham. Since 2.26 3068 */ 3069 TAI_THAM = 91, 3070 /** 3071 * Tai Viet. Since 2.26 3072 */ 3073 TAI_VIET = 92, 3074 /** 3075 * Batak. Since 2.28 3076 */ 3077 BATAK = 93, 3078 /** 3079 * Brahmi. Since 2.28 3080 */ 3081 BRAHMI = 94, 3082 /** 3083 * Mandaic. Since 2.28 3084 */ 3085 MANDAIC = 95, 3086 /** 3087 * Chakma. Since: 2.32 3088 */ 3089 CHAKMA = 96, 3090 /** 3091 * Meroitic Cursive. Since: 2.32 3092 */ 3093 MEROITIC_CURSIVE = 97, 3094 /** 3095 * Meroitic Hieroglyphs. Since: 2.32 3096 */ 3097 MEROITIC_HIEROGLYPHS = 98, 3098 /** 3099 * Miao. Since: 2.32 3100 */ 3101 MIAO = 99, 3102 /** 3103 * Sharada. Since: 2.32 3104 */ 3105 SHARADA = 100, 3106 /** 3107 * Sora Sompeng. Since: 2.32 3108 */ 3109 SORA_SOMPENG = 101, 3110 /** 3111 * Takri. Since: 2.32 3112 */ 3113 TAKRI = 102, 3114 /** 3115 * Bassa. Since: 2.42 3116 */ 3117 BASSA_VAH = 103, 3118 /** 3119 * Caucasian Albanian. Since: 2.42 3120 */ 3121 CAUCASIAN_ALBANIAN = 104, 3122 /** 3123 * Duployan. Since: 2.42 3124 */ 3125 DUPLOYAN = 105, 3126 /** 3127 * Elbasan. Since: 2.42 3128 */ 3129 ELBASAN = 106, 3130 /** 3131 * Grantha. Since: 2.42 3132 */ 3133 GRANTHA = 107, 3134 /** 3135 * Kjohki. Since: 2.42 3136 */ 3137 KHOJKI = 108, 3138 /** 3139 * Khudawadi, Sindhi. Since: 2.42 3140 */ 3141 KHUDAWADI = 109, 3142 /** 3143 * Linear A. Since: 2.42 3144 */ 3145 LINEAR_A = 110, 3146 /** 3147 * Mahajani. Since: 2.42 3148 */ 3149 MAHAJANI = 111, 3150 /** 3151 * Manichaean. Since: 2.42 3152 */ 3153 MANICHAEAN = 112, 3154 /** 3155 * Mende Kikakui. Since: 2.42 3156 */ 3157 MENDE_KIKAKUI = 113, 3158 /** 3159 * Modi. Since: 2.42 3160 */ 3161 MODI = 114, 3162 /** 3163 * Mro. Since: 2.42 3164 */ 3165 MRO = 115, 3166 /** 3167 * Nabataean. Since: 2.42 3168 */ 3169 NABATAEAN = 116, 3170 /** 3171 * Old North Arabian. Since: 2.42 3172 */ 3173 OLD_NORTH_ARABIAN = 117, 3174 /** 3175 * Old Permic. Since: 2.42 3176 */ 3177 OLD_PERMIC = 118, 3178 /** 3179 * Pahawh Hmong. Since: 2.42 3180 */ 3181 PAHAWH_HMONG = 119, 3182 /** 3183 * Palmyrene. Since: 2.42 3184 */ 3185 PALMYRENE = 120, 3186 /** 3187 * Pau Cin Hau. Since: 2.42 3188 */ 3189 PAU_CIN_HAU = 121, 3190 /** 3191 * Psalter Pahlavi. Since: 2.42 3192 */ 3193 PSALTER_PAHLAVI = 122, 3194 /** 3195 * Siddham. Since: 2.42 3196 */ 3197 SIDDHAM = 123, 3198 /** 3199 * Tirhuta. Since: 2.42 3200 */ 3201 TIRHUTA = 124, 3202 /** 3203 * Warang Citi. Since: 2.42 3204 */ 3205 WARANG_CITI = 125, 3206 /** 3207 * Ahom. Since: 2.48 3208 */ 3209 AHOM = 126, 3210 /** 3211 * Anatolian Hieroglyphs. Since: 2.48 3212 */ 3213 ANATOLIAN_HIEROGLYPHS = 127, 3214 /** 3215 * Hatran. Since: 2.48 3216 */ 3217 HATRAN = 128, 3218 /** 3219 * Multani. Since: 2.48 3220 */ 3221 MULTANI = 129, 3222 /** 3223 * Old Hungarian. Since: 2.48 3224 */ 3225 OLD_HUNGARIAN = 130, 3226 /** 3227 * Signwriting. Since: 2.48 3228 */ 3229 SIGNWRITING = 131, 3230 /** 3231 * Adlam. Since: 2.50 3232 */ 3233 ADLAM = 132, 3234 /** 3235 * Bhaiksuki. Since: 2.50 3236 */ 3237 BHAIKSUKI = 133, 3238 /** 3239 * Marchen. Since: 2.50 3240 */ 3241 MARCHEN = 134, 3242 /** 3243 * Newa. Since: 2.50 3244 */ 3245 NEWA = 135, 3246 /** 3247 * Osage. Since: 2.50 3248 */ 3249 OSAGE = 136, 3250 /** 3251 * Tangut. Since: 2.50 3252 */ 3253 TANGUT = 137, 3254 /** 3255 * Masaram Gondi. Since: 2.54 3256 */ 3257 MASARAM_GONDI = 138, 3258 /** 3259 * Nushu. Since: 2.54 3260 */ 3261 NUSHU = 139, 3262 /** 3263 * Soyombo. Since: 2.54 3264 */ 3265 SOYOMBO = 140, 3266 /** 3267 * Zanabazar Square. Since: 2.54 3268 */ 3269 ZANABAZAR_SQUARE = 141, 3270 /** 3271 * Dogra. Since: 2.58 3272 */ 3273 DOGRA = 142, 3274 /** 3275 * Gunjala Gondi. Since: 2.58 3276 */ 3277 GUNJALA_GONDI = 143, 3278 /** 3279 * Hanifi Rohingya. Since: 2.58 3280 */ 3281 HANIFI_ROHINGYA = 144, 3282 /** 3283 * Makasar. Since: 2.58 3284 */ 3285 MAKASAR = 145, 3286 /** 3287 * Medefaidrin. Since: 2.58 3288 */ 3289 MEDEFAIDRIN = 146, 3290 /** 3291 * Old Sogdian. Since: 2.58 3292 */ 3293 OLD_SOGDIAN = 147, 3294 /** 3295 * Sogdian. Since: 2.58 3296 */ 3297 SOGDIAN = 148, 3298 /** 3299 * Elym. Since: 2.62 3300 */ 3301 ELYMAIC = 149, 3302 /** 3303 * Nand. Since: 2.62 3304 */ 3305 NANDINAGARI = 150, 3306 /** 3307 * Rohg. Since: 2.62 3308 */ 3309 NYIAKENG_PUACHUE_HMONG = 151, 3310 /** 3311 * Wcho. Since: 2.62 3312 */ 3313 WANCHO = 152, 3314 } 3315 alias GUnicodeScript UnicodeScript; 3316 3317 /** 3318 * These are the possible character classifications from the 3319 * Unicode specification. 3320 * See [Unicode Character Database](http://www.unicode.org/reports/tr44/#General_Category_Values). 3321 */ 3322 public enum GUnicodeType 3323 { 3324 /** 3325 * General category "Other, Control" (Cc) 3326 */ 3327 CONTROL = 0, 3328 /** 3329 * General category "Other, Format" (Cf) 3330 */ 3331 FORMAT = 1, 3332 /** 3333 * General category "Other, Not Assigned" (Cn) 3334 */ 3335 UNASSIGNED = 2, 3336 /** 3337 * General category "Other, Private Use" (Co) 3338 */ 3339 PRIVATE_USE = 3, 3340 /** 3341 * General category "Other, Surrogate" (Cs) 3342 */ 3343 SURROGATE = 4, 3344 /** 3345 * General category "Letter, Lowercase" (Ll) 3346 */ 3347 LOWERCASE_LETTER = 5, 3348 /** 3349 * General category "Letter, Modifier" (Lm) 3350 */ 3351 MODIFIER_LETTER = 6, 3352 /** 3353 * General category "Letter, Other" (Lo) 3354 */ 3355 OTHER_LETTER = 7, 3356 /** 3357 * General category "Letter, Titlecase" (Lt) 3358 */ 3359 TITLECASE_LETTER = 8, 3360 /** 3361 * General category "Letter, Uppercase" (Lu) 3362 */ 3363 UPPERCASE_LETTER = 9, 3364 /** 3365 * General category "Mark, Spacing" (Mc) 3366 */ 3367 SPACING_MARK = 10, 3368 /** 3369 * General category "Mark, Enclosing" (Me) 3370 */ 3371 ENCLOSING_MARK = 11, 3372 /** 3373 * General category "Mark, Nonspacing" (Mn) 3374 */ 3375 NON_SPACING_MARK = 12, 3376 /** 3377 * General category "Number, Decimal Digit" (Nd) 3378 */ 3379 DECIMAL_NUMBER = 13, 3380 /** 3381 * General category "Number, Letter" (Nl) 3382 */ 3383 LETTER_NUMBER = 14, 3384 /** 3385 * General category "Number, Other" (No) 3386 */ 3387 OTHER_NUMBER = 15, 3388 /** 3389 * General category "Punctuation, Connector" (Pc) 3390 */ 3391 CONNECT_PUNCTUATION = 16, 3392 /** 3393 * General category "Punctuation, Dash" (Pd) 3394 */ 3395 DASH_PUNCTUATION = 17, 3396 /** 3397 * General category "Punctuation, Close" (Pe) 3398 */ 3399 CLOSE_PUNCTUATION = 18, 3400 /** 3401 * General category "Punctuation, Final quote" (Pf) 3402 */ 3403 FINAL_PUNCTUATION = 19, 3404 /** 3405 * General category "Punctuation, Initial quote" (Pi) 3406 */ 3407 INITIAL_PUNCTUATION = 20, 3408 /** 3409 * General category "Punctuation, Other" (Po) 3410 */ 3411 OTHER_PUNCTUATION = 21, 3412 /** 3413 * General category "Punctuation, Open" (Ps) 3414 */ 3415 OPEN_PUNCTUATION = 22, 3416 /** 3417 * General category "Symbol, Currency" (Sc) 3418 */ 3419 CURRENCY_SYMBOL = 23, 3420 /** 3421 * General category "Symbol, Modifier" (Sk) 3422 */ 3423 MODIFIER_SYMBOL = 24, 3424 /** 3425 * General category "Symbol, Math" (Sm) 3426 */ 3427 MATH_SYMBOL = 25, 3428 /** 3429 * General category "Symbol, Other" (So) 3430 */ 3431 OTHER_SYMBOL = 26, 3432 /** 3433 * General category "Separator, Line" (Zl) 3434 */ 3435 LINE_SEPARATOR = 27, 3436 /** 3437 * General category "Separator, Paragraph" (Zp) 3438 */ 3439 PARAGRAPH_SEPARATOR = 28, 3440 /** 3441 * General category "Separator, Space" (Zs) 3442 */ 3443 SPACE_SEPARATOR = 29, 3444 } 3445 alias GUnicodeType UnicodeType; 3446 3447 /** 3448 * These are logical ids for special directories which are defined 3449 * depending on the platform used. You should use g_get_user_special_dir() 3450 * to retrieve the full path associated to the logical id. 3451 * 3452 * The #GUserDirectory enumeration can be extended at later date. Not 3453 * every platform has a directory for every logical id in this 3454 * enumeration. 3455 * 3456 * Since: 2.14 3457 */ 3458 public enum GUserDirectory 3459 { 3460 /** 3461 * the user's Desktop directory 3462 */ 3463 DIRECTORY_DESKTOP = 0, 3464 /** 3465 * the user's Documents directory 3466 */ 3467 DIRECTORY_DOCUMENTS = 1, 3468 /** 3469 * the user's Downloads directory 3470 */ 3471 DIRECTORY_DOWNLOAD = 2, 3472 /** 3473 * the user's Music directory 3474 */ 3475 DIRECTORY_MUSIC = 3, 3476 /** 3477 * the user's Pictures directory 3478 */ 3479 DIRECTORY_PICTURES = 4, 3480 /** 3481 * the user's shared directory 3482 */ 3483 DIRECTORY_PUBLIC_SHARE = 5, 3484 /** 3485 * the user's Templates directory 3486 */ 3487 DIRECTORY_TEMPLATES = 6, 3488 /** 3489 * the user's Movies directory 3490 */ 3491 DIRECTORY_VIDEOS = 7, 3492 /** 3493 * the number of enum values 3494 */ 3495 N_DIRECTORIES = 8, 3496 } 3497 alias GUserDirectory UserDirectory; 3498 3499 /** 3500 * The range of possible top-level types of #GVariant instances. 3501 * 3502 * Since: 2.24 3503 */ 3504 public enum GVariantClass 3505 { 3506 /** 3507 * The #GVariant is a boolean. 3508 */ 3509 BOOLEAN = 98, 3510 /** 3511 * The #GVariant is a byte. 3512 */ 3513 BYTE = 121, 3514 /** 3515 * The #GVariant is a signed 16 bit integer. 3516 */ 3517 INT16 = 110, 3518 /** 3519 * The #GVariant is an unsigned 16 bit integer. 3520 */ 3521 UINT16 = 113, 3522 /** 3523 * The #GVariant is a signed 32 bit integer. 3524 */ 3525 INT32 = 105, 3526 /** 3527 * The #GVariant is an unsigned 32 bit integer. 3528 */ 3529 UINT32 = 117, 3530 /** 3531 * The #GVariant is a signed 64 bit integer. 3532 */ 3533 INT64 = 120, 3534 /** 3535 * The #GVariant is an unsigned 64 bit integer. 3536 */ 3537 UINT64 = 116, 3538 /** 3539 * The #GVariant is a file handle index. 3540 */ 3541 HANDLE = 104, 3542 /** 3543 * The #GVariant is a double precision floating 3544 * point value. 3545 */ 3546 DOUBLE = 100, 3547 /** 3548 * The #GVariant is a normal string. 3549 */ 3550 STRING = 115, 3551 /** 3552 * The #GVariant is a D-Bus object path 3553 * string. 3554 */ 3555 OBJECT_PATH = 111, 3556 /** 3557 * The #GVariant is a D-Bus signature string. 3558 */ 3559 SIGNATURE = 103, 3560 /** 3561 * The #GVariant is a variant. 3562 */ 3563 VARIANT = 118, 3564 /** 3565 * The #GVariant is a maybe-typed value. 3566 */ 3567 MAYBE = 109, 3568 /** 3569 * The #GVariant is an array. 3570 */ 3571 ARRAY = 97, 3572 /** 3573 * The #GVariant is a tuple. 3574 */ 3575 TUPLE = 40, 3576 /** 3577 * The #GVariant is a dictionary entry. 3578 */ 3579 DICT_ENTRY = 123, 3580 } 3581 alias GVariantClass VariantClass; 3582 3583 /** 3584 * Error codes returned by parsing text-format GVariants. 3585 */ 3586 public enum GVariantParseError 3587 { 3588 /** 3589 * generic error (unused) 3590 */ 3591 FAILED = 0, 3592 /** 3593 * a non-basic #GVariantType was given where a basic type was expected 3594 */ 3595 BASIC_TYPE_EXPECTED = 1, 3596 /** 3597 * cannot infer the #GVariantType 3598 */ 3599 CANNOT_INFER_TYPE = 2, 3600 /** 3601 * an indefinite #GVariantType was given where a definite type was expected 3602 */ 3603 DEFINITE_TYPE_EXPECTED = 3, 3604 /** 3605 * extra data after parsing finished 3606 */ 3607 INPUT_NOT_AT_END = 4, 3608 /** 3609 * invalid character in number or unicode escape 3610 */ 3611 INVALID_CHARACTER = 5, 3612 /** 3613 * not a valid #GVariant format string 3614 */ 3615 INVALID_FORMAT_STRING = 6, 3616 /** 3617 * not a valid object path 3618 */ 3619 INVALID_OBJECT_PATH = 7, 3620 /** 3621 * not a valid type signature 3622 */ 3623 INVALID_SIGNATURE = 8, 3624 /** 3625 * not a valid #GVariant type string 3626 */ 3627 INVALID_TYPE_STRING = 9, 3628 /** 3629 * could not find a common type for array entries 3630 */ 3631 NO_COMMON_TYPE = 10, 3632 /** 3633 * the numerical value is out of range of the given type 3634 */ 3635 NUMBER_OUT_OF_RANGE = 11, 3636 /** 3637 * the numerical value is out of range for any type 3638 */ 3639 NUMBER_TOO_BIG = 12, 3640 /** 3641 * cannot parse as variant of the specified type 3642 */ 3643 TYPE_ERROR = 13, 3644 /** 3645 * an unexpected token was encountered 3646 */ 3647 UNEXPECTED_TOKEN = 14, 3648 /** 3649 * an unknown keyword was encountered 3650 */ 3651 UNKNOWN_KEYWORD = 15, 3652 /** 3653 * unterminated string constant 3654 */ 3655 UNTERMINATED_STRING_CONSTANT = 16, 3656 /** 3657 * no value given 3658 */ 3659 VALUE_EXPECTED = 17, 3660 /** 3661 * variant was too deeply nested; #GVariant is only guaranteed to handle nesting up to 64 levels (Since: 2.64) 3662 */ 3663 RECURSION = 18, 3664 } 3665 alias GVariantParseError VariantParseError; 3666 3667 /** 3668 * Flags passed to g_module_open(). 3669 * Note that these flags are not supported on all platforms. 3670 */ 3671 public enum GModuleFlags 3672 { 3673 /** 3674 * specifies that symbols are only resolved when 3675 * needed. The default action is to bind all symbols when the module 3676 * is loaded. 3677 */ 3678 LAZY = 1, 3679 /** 3680 * specifies that symbols in the module should 3681 * not be added to the global name space. The default action on most 3682 * platforms is to place symbols in the module in the global name space, 3683 * which may cause conflicts with existing symbols. 3684 */ 3685 LOCAL = 2, 3686 /** 3687 * mask for all flags. 3688 */ 3689 MASK = 3, 3690 } 3691 alias GModuleFlags ModuleFlags; 3692 3693 /** 3694 * Contains the public fields of a GArray. 3695 */ 3696 struct GArray 3697 { 3698 /** 3699 * a pointer to the element data. The data may be moved as 3700 * elements are added to the #GArray. 3701 */ 3702 char* data; 3703 /** 3704 * the number of elements in the #GArray not including the 3705 * possible terminating zero element. 3706 */ 3707 uint len; 3708 } 3709 3710 struct GAsyncQueue; 3711 3712 struct GBookmarkFile; 3713 3714 /** 3715 * Contains the public fields of a GByteArray. 3716 */ 3717 struct GByteArray 3718 { 3719 /** 3720 * a pointer to the element data. The data may be moved as 3721 * elements are added to the #GByteArray 3722 */ 3723 ubyte* data; 3724 /** 3725 * the number of elements in the #GByteArray 3726 */ 3727 uint len; 3728 } 3729 3730 struct GBytes; 3731 3732 struct GChecksum; 3733 3734 struct GCond 3735 { 3736 void* p; 3737 uint[2] i; 3738 } 3739 3740 /** 3741 * The #GData struct is an opaque data structure to represent a 3742 * [Keyed Data List][glib-Keyed-Data-Lists]. It should only be 3743 * accessed via the following functions. 3744 */ 3745 struct GData; 3746 3747 struct GDate 3748 { 3749 import std.bitmanip: bitfields; 3750 mixin(bitfields!( 3751 uint, "julianDays", 32, 3752 uint, "julian", 1, 3753 uint, "dmy", 1, 3754 uint, "day", 6, 3755 uint, "month", 4, 3756 uint, "year", 16, 3757 uint, "", 4 3758 )); 3759 } 3760 3761 struct GDateTime; 3762 3763 /** 3764 * Associates a string with a bit flag. 3765 * Used in g_parse_debug_string(). 3766 */ 3767 struct GDebugKey 3768 { 3769 /** 3770 * the string 3771 */ 3772 const(char)* key; 3773 /** 3774 * the flag 3775 */ 3776 uint value; 3777 } 3778 3779 struct GDir; 3780 3781 /** 3782 * The #GFloatIEEE754 and #GDoubleIEEE754 unions are used to access the sign, 3783 * mantissa and exponent of IEEE floats and doubles. These unions are defined 3784 * as appropriate for a given platform. IEEE floats and doubles are supported 3785 * (used for storage) by at least Intel, PPC and Sparc. 3786 */ 3787 struct GDoubleIEEE754 3788 { 3789 union 3790 { 3791 /** 3792 * the double value 3793 */ 3794 double vDouble; 3795 struct Mpn 3796 { 3797 import std.bitmanip: bitfields; 3798 mixin(bitfields!( 3799 uint, "mantissaLow", 32, 3800 uint, "mantissaHigh", 20, 3801 uint, "biasedExponent", 11, 3802 uint, "sign", 1 3803 )); 3804 } 3805 Mpn mpn; 3806 } 3807 } 3808 3809 struct GError 3810 { 3811 /** 3812 * error domain, e.g. #G_FILE_ERROR 3813 */ 3814 GQuark domain; 3815 /** 3816 * error code, e.g. %G_FILE_ERROR_NOENT 3817 */ 3818 int code; 3819 /** 3820 * human-readable informative error message 3821 */ 3822 char* message; 3823 } 3824 3825 /** 3826 * The #GFloatIEEE754 and #GDoubleIEEE754 unions are used to access the sign, 3827 * mantissa and exponent of IEEE floats and doubles. These unions are defined 3828 * as appropriate for a given platform. IEEE floats and doubles are supported 3829 * (used for storage) by at least Intel, PPC and Sparc. 3830 */ 3831 struct GFloatIEEE754 3832 { 3833 union 3834 { 3835 /** 3836 * the double value 3837 */ 3838 float vFloat; 3839 struct Mpn 3840 { 3841 import std.bitmanip: bitfields; 3842 mixin(bitfields!( 3843 uint, "mantissa", 23, 3844 uint, "biasedExponent", 8, 3845 uint, "sign", 1 3846 )); 3847 } 3848 Mpn mpn; 3849 } 3850 } 3851 3852 /** 3853 * The #GHashTable struct is an opaque data structure to represent a 3854 * [Hash Table][glib-Hash-Tables]. It should only be accessed via the 3855 * following functions. 3856 */ 3857 struct GHashTable; 3858 3859 struct GHashTableIter 3860 { 3861 void* dummy1; 3862 void* dummy2; 3863 void* dummy3; 3864 int dummy4; 3865 bool dummy5; 3866 void* dummy6; 3867 } 3868 3869 struct GHmac; 3870 3871 struct GHook 3872 { 3873 /** 3874 * data which is passed to func when this hook is invoked 3875 */ 3876 void* data; 3877 /** 3878 * pointer to the next hook in the list 3879 */ 3880 GHook* next; 3881 /** 3882 * pointer to the previous hook in the list 3883 */ 3884 GHook* prev; 3885 /** 3886 * the reference count of this hook 3887 */ 3888 uint refCount; 3889 /** 3890 * the id of this hook, which is unique within its list 3891 */ 3892 gulong hookId; 3893 /** 3894 * flags which are set for this hook. See #GHookFlagMask for 3895 * predefined flags 3896 */ 3897 uint flags; 3898 /** 3899 * the function to call when this hook is invoked. The possible 3900 * signatures for this function are #GHookFunc and #GHookCheckFunc 3901 */ 3902 void* func; 3903 /** 3904 * the default @finalize_hook function of a #GHookList calls 3905 * this member of the hook that is being finalized 3906 */ 3907 GDestroyNotify destroy; 3908 } 3909 3910 struct GHookList 3911 { 3912 /** 3913 * the next free #GHook id 3914 */ 3915 gulong seqId; 3916 import std.bitmanip: bitfields; 3917 mixin(bitfields!( 3918 uint, "hookSize", 16, 3919 uint, "isSetup", 1, 3920 uint, "", 15 3921 )); 3922 /** 3923 * the first #GHook element in the list 3924 */ 3925 GHook* hooks; 3926 /** 3927 * unused 3928 */ 3929 void* dummy3; 3930 /** 3931 * the function to call to finalize a #GHook element. 3932 * The default behaviour is to call the hooks @destroy function 3933 */ 3934 GHookFinalizeFunc finalizeHook; 3935 /** 3936 * unused 3937 */ 3938 void*[2] dummy; 3939 } 3940 3941 struct GIOChannel 3942 { 3943 int refCount; 3944 GIOFuncs* funcs; 3945 char* encoding; 3946 GIConv readCd; 3947 GIConv writeCd; 3948 char* lineTerm; 3949 uint lineTermLen; 3950 size_t bufSize; 3951 GString* readBuf; 3952 GString* encodedReadBuf; 3953 GString* writeBuf; 3954 char[6] partialWriteBuf; 3955 import std.bitmanip: bitfields; 3956 mixin(bitfields!( 3957 uint, "useBuffer", 1, 3958 uint, "doEncode", 1, 3959 uint, "closeOnUnref", 1, 3960 uint, "isReadable", 1, 3961 uint, "isWriteable", 1, 3962 uint, "isSeekable", 1, 3963 uint, "", 26 3964 )); 3965 void* reserved1; 3966 void* reserved2; 3967 } 3968 3969 /** 3970 * A table of functions used to handle different types of #GIOChannel 3971 * in a generic way. 3972 */ 3973 struct GIOFuncs 3974 { 3975 /** */ 3976 extern(C) GIOStatus function(GIOChannel* channel, char* buf, size_t count, size_t* bytesRead, GError** err) ioRead; 3977 /** */ 3978 extern(C) GIOStatus function(GIOChannel* channel, const(char)* buf, size_t count, size_t* bytesWritten, GError** err) ioWrite; 3979 /** */ 3980 extern(C) GIOStatus function(GIOChannel* channel, long offset, GSeekType type, GError** err) ioSeek; 3981 /** */ 3982 extern(C) GIOStatus function(GIOChannel* channel, GError** err) ioClose; 3983 /** */ 3984 extern(C) GSource* function(GIOChannel* channel, GIOCondition condition) ioCreateWatch; 3985 /** */ 3986 extern(C) void function(GIOChannel* channel) ioFree; 3987 /** */ 3988 extern(C) GIOStatus function(GIOChannel* channel, GIOFlags flags, GError** err) ioSetFlags; 3989 /** */ 3990 extern(C) GIOFlags function(GIOChannel* channel) ioGetFlags; 3991 } 3992 3993 struct GKeyFile; 3994 3995 /** 3996 * The #GList struct is used for each element in a doubly-linked list. 3997 */ 3998 struct GList 3999 { 4000 /** 4001 * holds the element's data, which can be a pointer to any kind 4002 * of data, or any integer value using the 4003 * [Type Conversion Macros][glib-Type-Conversion-Macros] 4004 */ 4005 void* data; 4006 /** 4007 * contains the link to the next element in the list 4008 */ 4009 GList* next; 4010 /** 4011 * contains the link to the previous element in the list 4012 */ 4013 GList* prev; 4014 } 4015 4016 /** 4017 * Structure representing a single field in a structured log entry. See 4018 * g_log_structured() for details. 4019 * 4020 * Log fields may contain arbitrary values, including binary with embedded nul 4021 * bytes. If the field contains a string, the string must be UTF-8 encoded and 4022 * have a trailing nul byte. Otherwise, @length must be set to a non-negative 4023 * value. 4024 * 4025 * Since: 2.50 4026 */ 4027 struct GLogField 4028 { 4029 /** 4030 * field name (UTF-8 string) 4031 */ 4032 const(char)* key; 4033 /** 4034 * field value (arbitrary bytes) 4035 */ 4036 void* value; 4037 /** 4038 * length of @value, in bytes, or -1 if it is nul-terminated 4039 */ 4040 ptrdiff_t length; 4041 } 4042 4043 struct GMainContext; 4044 4045 struct GMainLoop; 4046 4047 struct GMappedFile; 4048 4049 struct GMarkupParseContext; 4050 4051 /** 4052 * Any of the fields in #GMarkupParser can be %NULL, in which case they 4053 * will be ignored. Except for the @error function, any of these callbacks 4054 * can set an error; in particular the %G_MARKUP_ERROR_UNKNOWN_ELEMENT, 4055 * %G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, and %G_MARKUP_ERROR_INVALID_CONTENT 4056 * errors are intended to be set from these callbacks. If you set an error 4057 * from a callback, g_markup_parse_context_parse() will report that error 4058 * back to its caller. 4059 */ 4060 struct GMarkupParser 4061 { 4062 /** */ 4063 extern(C) void function(GMarkupParseContext* context, const(char)* elementName, char** attributeNames, char** attributeValues, void* userData, GError** err) startElement; 4064 /** */ 4065 extern(C) void function(GMarkupParseContext* context, const(char)* elementName, void* userData, GError** err) endElement; 4066 /** */ 4067 extern(C) void function(GMarkupParseContext* context, const(char)* text, size_t textLen, void* userData, GError** err) text; 4068 /** */ 4069 extern(C) void function(GMarkupParseContext* context, const(char)* passthroughText, size_t textLen, void* userData, GError** err) passthrough; 4070 /** */ 4071 extern(C) void function(GMarkupParseContext* context, GError* error, void* userData) error; 4072 } 4073 4074 struct GMatchInfo; 4075 4076 /** 4077 * A set of functions used to perform memory allocation. The same #GMemVTable must 4078 * be used for all allocations in the same program; a call to g_mem_set_vtable(), 4079 * if it exists, should be prior to any use of GLib. 4080 * 4081 * This functions related to this has been deprecated in 2.46, and no longer work. 4082 */ 4083 struct GMemVTable 4084 { 4085 /** */ 4086 extern(C) void* function(size_t nBytes) malloc; 4087 /** */ 4088 extern(C) void* function(void* mem, size_t nBytes) realloc; 4089 /** */ 4090 extern(C) void function(void* mem) free; 4091 /** */ 4092 extern(C) void* function(size_t nBlocks, size_t nBlockBytes) calloc; 4093 /** */ 4094 extern(C) void* function(size_t nBytes) tryMalloc; 4095 /** */ 4096 extern(C) void* function(void* mem, size_t nBytes) tryRealloc; 4097 } 4098 4099 struct GMutex 4100 { 4101 union 4102 { 4103 void* p; 4104 uint[2] i; 4105 } 4106 } 4107 4108 struct GNode 4109 { 4110 /** 4111 * contains the actual data of the node. 4112 */ 4113 void* data; 4114 /** 4115 * points to the node's next sibling (a sibling is another 4116 * #GNode with the same parent). 4117 */ 4118 GNode* next; 4119 /** 4120 * points to the node's previous sibling. 4121 */ 4122 GNode* prev; 4123 /** 4124 * points to the parent of the #GNode, or is %NULL if the 4125 * #GNode is the root of the tree. 4126 */ 4127 GNode* parent; 4128 /** 4129 * points to the first child of the #GNode. The other 4130 * children are accessed by using the @next pointer of each 4131 * child. 4132 */ 4133 GNode* children; 4134 } 4135 4136 struct GOnce 4137 { 4138 /** 4139 * the status of the #GOnce 4140 */ 4141 GOnceStatus status; 4142 /** 4143 * the value returned by the call to the function, if @status 4144 * is %G_ONCE_STATUS_READY 4145 */ 4146 void* retval; 4147 } 4148 4149 struct GOptionContext; 4150 4151 /** 4152 * A GOptionEntry struct defines a single option. To have an effect, they 4153 * must be added to a #GOptionGroup with g_option_context_add_main_entries() 4154 * or g_option_group_add_entries(). 4155 */ 4156 struct GOptionEntry 4157 { 4158 /** 4159 * The long name of an option can be used to specify it 4160 * in a commandline as `--long_name`. Every option must have a 4161 * long name. To resolve conflicts if multiple option groups contain 4162 * the same long name, it is also possible to specify the option as 4163 * `--groupname-long_name`. 4164 */ 4165 const(char)* longName; 4166 /** 4167 * If an option has a short name, it can be specified 4168 * `-short_name` in a commandline. @short_name must be a printable 4169 * ASCII character different from '-', or zero if the option has no 4170 * short name. 4171 */ 4172 char shortName; 4173 /** 4174 * Flags from #GOptionFlags 4175 */ 4176 int flags; 4177 /** 4178 * The type of the option, as a #GOptionArg 4179 */ 4180 GOptionArg arg; 4181 /** 4182 * If the @arg type is %G_OPTION_ARG_CALLBACK, then @arg_data 4183 * must point to a #GOptionArgFunc callback function, which will be 4184 * called to handle the extra argument. Otherwise, @arg_data is a 4185 * pointer to a location to store the value, the required type of 4186 * the location depends on the @arg type: 4187 * - %G_OPTION_ARG_NONE: %gboolean 4188 * - %G_OPTION_ARG_STRING: %gchar* 4189 * - %G_OPTION_ARG_INT: %gint 4190 * - %G_OPTION_ARG_FILENAME: %gchar* 4191 * - %G_OPTION_ARG_STRING_ARRAY: %gchar** 4192 * - %G_OPTION_ARG_FILENAME_ARRAY: %gchar** 4193 * - %G_OPTION_ARG_DOUBLE: %gdouble 4194 * If @arg type is %G_OPTION_ARG_STRING or %G_OPTION_ARG_FILENAME, 4195 * the location will contain a newly allocated string if the option 4196 * was given. That string needs to be freed by the callee using g_free(). 4197 * Likewise if @arg type is %G_OPTION_ARG_STRING_ARRAY or 4198 * %G_OPTION_ARG_FILENAME_ARRAY, the data should be freed using g_strfreev(). 4199 */ 4200 void* argData; 4201 /** 4202 * the description for the option in `--help` 4203 * output. The @description is translated using the @translate_func 4204 * of the group, see g_option_group_set_translation_domain(). 4205 */ 4206 const(char)* description; 4207 /** 4208 * The placeholder to use for the extra argument parsed 4209 * by the option in `--help` output. The @arg_description is translated 4210 * using the @translate_func of the group, see 4211 * g_option_group_set_translation_domain(). 4212 */ 4213 const(char)* argDescription; 4214 } 4215 4216 struct GOptionGroup; 4217 4218 struct GPatternSpec; 4219 4220 /** 4221 * Represents a file descriptor, which events to poll for, and which events 4222 * occurred. 4223 */ 4224 struct GPollFD 4225 { 4226 /** 4227 * the file descriptor to poll (or a HANDLE on Win32) 4228 */ 4229 int fd; 4230 /** 4231 * a bitwise combination from #GIOCondition, specifying which 4232 * events should be polled for. Typically for reading from a file 4233 * descriptor you would use %G_IO_IN | %G_IO_HUP | %G_IO_ERR, and 4234 * for writing you would use %G_IO_OUT | %G_IO_ERR. 4235 */ 4236 ushort events; 4237 /** 4238 * a bitwise combination of flags from #GIOCondition, returned 4239 * from the poll() function to indicate which events occurred. 4240 */ 4241 ushort revents; 4242 } 4243 4244 struct GPrivate 4245 { 4246 void* p; 4247 GDestroyNotify notify; 4248 void*[2] future; 4249 } 4250 4251 /** 4252 * Contains the public fields of a pointer array. 4253 */ 4254 struct GPtrArray 4255 { 4256 /** 4257 * points to the array of pointers, which may be moved when the 4258 * array grows 4259 */ 4260 void** pdata; 4261 /** 4262 * number of pointers in the array 4263 */ 4264 uint len; 4265 } 4266 4267 struct GQueue 4268 { 4269 /** 4270 * a pointer to the first element of the queue 4271 */ 4272 GList* head; 4273 /** 4274 * a pointer to the last element of the queue 4275 */ 4276 GList* tail; 4277 /** 4278 * the number of elements in the queue 4279 */ 4280 uint length; 4281 } 4282 4283 struct GRWLock 4284 { 4285 void* p; 4286 uint[2] i; 4287 } 4288 4289 struct GRand; 4290 4291 struct GRecMutex 4292 { 4293 void* p; 4294 uint[2] i; 4295 } 4296 4297 struct GRegex; 4298 4299 /** 4300 * The #GSList struct is used for each element in the singly-linked 4301 * list. 4302 */ 4303 struct GSList 4304 { 4305 /** 4306 * holds the element's data, which can be a pointer to any kind 4307 * of data, or any integer value using the 4308 * [Type Conversion Macros][glib-Type-Conversion-Macros] 4309 */ 4310 void* data; 4311 /** 4312 * contains the link to the next element in the list. 4313 */ 4314 GSList* next; 4315 } 4316 4317 struct GScanner 4318 { 4319 /** 4320 * unused 4321 */ 4322 void* userData; 4323 /** 4324 * unused 4325 */ 4326 uint maxParseErrors; 4327 /** 4328 * g_scanner_error() increments this field 4329 */ 4330 uint parseErrors; 4331 /** 4332 * name of input stream, featured by the default message handler 4333 */ 4334 const(char)* inputName; 4335 /** 4336 * quarked data 4337 */ 4338 GData* qdata; 4339 /** 4340 * link into the scanner configuration 4341 */ 4342 GScannerConfig* config; 4343 /** 4344 * token parsed by the last g_scanner_get_next_token() 4345 */ 4346 GTokenType token; 4347 /** 4348 * value of the last token from g_scanner_get_next_token() 4349 */ 4350 GTokenValue value; 4351 /** 4352 * line number of the last token from g_scanner_get_next_token() 4353 */ 4354 uint line; 4355 /** 4356 * char number of the last token from g_scanner_get_next_token() 4357 */ 4358 uint position; 4359 /** 4360 * token parsed by the last g_scanner_peek_next_token() 4361 */ 4362 GTokenType nextToken; 4363 /** 4364 * value of the last token from g_scanner_peek_next_token() 4365 */ 4366 GTokenValue nextValue; 4367 /** 4368 * line number of the last token from g_scanner_peek_next_token() 4369 */ 4370 uint nextLine; 4371 /** 4372 * char number of the last token from g_scanner_peek_next_token() 4373 */ 4374 uint nextPosition; 4375 GHashTable* symbolTable; 4376 int inputFd; 4377 const(char)* text; 4378 const(char)* textEnd; 4379 char* buffer; 4380 uint scopeId; 4381 /** 4382 * handler function for _warn and _error 4383 */ 4384 GScannerMsgFunc msgHandler; 4385 } 4386 4387 /** 4388 * Specifies the #GScanner parser configuration. Most settings can 4389 * be changed during the parsing phase and will affect the lexical 4390 * parsing of the next unpeeked token. 4391 */ 4392 struct GScannerConfig 4393 { 4394 /** 4395 * specifies which characters should be skipped 4396 * by the scanner (the default is the whitespace characters: space, 4397 * tab, carriage-return and line-feed). 4398 */ 4399 char* csetSkipCharacters; 4400 /** 4401 * specifies the characters which can start 4402 * identifiers (the default is #G_CSET_a_2_z, "_", and #G_CSET_A_2_Z). 4403 */ 4404 char* csetIdentifierFirst; 4405 /** 4406 * specifies the characters which can be used 4407 * in identifiers, after the first character (the default is 4408 * #G_CSET_a_2_z, "_0123456789", #G_CSET_A_2_Z, #G_CSET_LATINS, 4409 * #G_CSET_LATINC). 4410 */ 4411 char* csetIdentifierNth; 4412 /** 4413 * specifies the characters at the start and 4414 * end of single-line comments. The default is "#\n" which means 4415 * that single-line comments start with a '#' and continue until 4416 * a '\n' (end of line). 4417 */ 4418 char* cpairCommentSingle; 4419 import std.bitmanip: bitfields; 4420 mixin(bitfields!( 4421 uint, "caseSensitive", 1, 4422 uint, "skipCommentMulti", 1, 4423 uint, "skipCommentSingle", 1, 4424 uint, "scanCommentMulti", 1, 4425 uint, "scanIdentifier", 1, 4426 uint, "scanIdentifier1char", 1, 4427 uint, "scanIdentifierNULL", 1, 4428 uint, "scanSymbols", 1, 4429 uint, "scanBinary", 1, 4430 uint, "scanOctal", 1, 4431 uint, "scanFloat", 1, 4432 uint, "scanHex", 1, 4433 uint, "scanHexDollar", 1, 4434 uint, "scanStringSq", 1, 4435 uint, "scanStringDq", 1, 4436 uint, "numbers2Int", 1, 4437 uint, "int2Float", 1, 4438 uint, "identifier2String", 1, 4439 uint, "char2Token", 1, 4440 uint, "symbol2Token", 1, 4441 uint, "scope0Fallback", 1, 4442 uint, "storeInt64", 1, 4443 uint, "", 10 4444 )); 4445 uint paddingDummy; 4446 } 4447 4448 struct GSequence; 4449 4450 struct GSequenceIter; 4451 4452 struct GSource 4453 { 4454 void* callbackData; 4455 GSourceCallbackFuncs* callbackFuncs; 4456 GSourceFuncs* sourceFuncs; 4457 uint refCount; 4458 GMainContext* context; 4459 int priority; 4460 uint flags; 4461 uint sourceId; 4462 GSList* pollFds; 4463 GSource* prev; 4464 GSource* next; 4465 char* name; 4466 GSourcePrivate* priv; 4467 } 4468 4469 /** 4470 * The `GSourceCallbackFuncs` struct contains 4471 * functions for managing callback objects. 4472 */ 4473 struct GSourceCallbackFuncs 4474 { 4475 /** */ 4476 extern(C) void function(void* cbData) ref_; 4477 /** */ 4478 extern(C) void function(void* cbData) unref; 4479 /** */ 4480 extern(C) void function(void* cbData, GSource* source, GSourceFunc* func, void** data) get; 4481 } 4482 4483 /** 4484 * The `GSourceFuncs` struct contains a table of 4485 * functions used to handle event sources in a generic manner. 4486 * 4487 * For idle sources, the prepare and check functions always return %TRUE 4488 * to indicate that the source is always ready to be processed. The prepare 4489 * function also returns a timeout value of 0 to ensure that the poll() call 4490 * doesn't block (since that would be time wasted which could have been spent 4491 * running the idle function). 4492 * 4493 * For timeout sources, the prepare and check functions both return %TRUE 4494 * if the timeout interval has expired. The prepare function also returns 4495 * a timeout value to ensure that the poll() call doesn't block too long 4496 * and miss the next timeout. 4497 * 4498 * For file descriptor sources, the prepare function typically returns %FALSE, 4499 * since it must wait until poll() has been called before it knows whether 4500 * any events need to be processed. It sets the returned timeout to -1 to 4501 * indicate that it doesn't mind how long the poll() call blocks. In the 4502 * check function, it tests the results of the poll() call to see if the 4503 * required condition has been met, and returns %TRUE if so. 4504 */ 4505 struct GSourceFuncs 4506 { 4507 /** */ 4508 extern(C) int function(GSource* source, int* timeout) prepare; 4509 /** */ 4510 extern(C) int function(GSource* source) check; 4511 /** */ 4512 extern(C) int function(GSource* source, GSourceFunc callback, void* userData) dispatch; 4513 /** */ 4514 extern(C) void function(GSource* source) finalize; 4515 GSourceFunc closureCallback; 4516 GSourceDummyMarshal closureMarshal; 4517 } 4518 4519 struct GSourcePrivate; 4520 4521 /** 4522 * A type corresponding to the appropriate struct type for the stat() 4523 * system call, depending on the platform and/or compiler being used. 4524 * 4525 * See g_stat() for more information. 4526 */ 4527 struct GStatBuf; 4528 4529 struct GString 4530 { 4531 /** 4532 * points to the character data. It may move as text is added. 4533 * The @str field is null-terminated and so 4534 * can be used as an ordinary C string. 4535 */ 4536 char* str; 4537 /** 4538 * contains the length of the string, not including the 4539 * terminating nul byte. 4540 */ 4541 size_t len; 4542 /** 4543 * the number of bytes that can be stored in the 4544 * string before it needs to be reallocated. May be larger than @len. 4545 */ 4546 size_t allocatedLen; 4547 } 4548 4549 struct GStringChunk; 4550 4551 /** 4552 * An opaque structure representing a test case. 4553 */ 4554 struct GTestCase; 4555 4556 struct GTestConfig 4557 { 4558 bool testInitialized; 4559 bool testQuick; 4560 bool testPerf; 4561 bool testVerbose; 4562 bool testQuiet; 4563 bool testUndefined; 4564 } 4565 4566 struct GTestLogBuffer 4567 { 4568 GString* data; 4569 GSList* msgs; 4570 } 4571 4572 struct GTestLogMsg 4573 { 4574 GTestLogType logType; 4575 uint nStrings; 4576 char** strings; 4577 uint nNums; 4578 real nums; 4579 } 4580 4581 struct GTestSuite; 4582 4583 struct GThread; 4584 4585 struct GThreadPool 4586 { 4587 /** 4588 * the function to execute in the threads of this pool 4589 */ 4590 GFunc func; 4591 /** 4592 * the user data for the threads of this pool 4593 */ 4594 void* userData; 4595 /** 4596 * are all threads exclusive to this pool 4597 */ 4598 bool exclusive; 4599 } 4600 4601 struct GTimeVal 4602 { 4603 /** 4604 * seconds 4605 */ 4606 glong tvSec; 4607 /** 4608 * microseconds 4609 */ 4610 glong tvUsec; 4611 } 4612 4613 struct GTimeZone; 4614 4615 struct GTimer; 4616 4617 /** 4618 * A union holding the value of the token. 4619 */ 4620 struct GTokenValue 4621 { 4622 union 4623 { 4624 /** 4625 * token symbol value 4626 */ 4627 void* vSymbol; 4628 /** 4629 * token identifier value 4630 */ 4631 char* vIdentifier; 4632 /** 4633 * token binary integer value 4634 */ 4635 gulong vBinary; 4636 /** 4637 * octal integer value 4638 */ 4639 gulong vOctal; 4640 /** 4641 * integer value 4642 */ 4643 gulong vInt; 4644 /** 4645 * 64-bit integer value 4646 */ 4647 ulong vInt64; 4648 /** 4649 * floating point value 4650 */ 4651 double vFloat; 4652 /** 4653 * hex integer value 4654 */ 4655 gulong vHex; 4656 /** 4657 * string value 4658 */ 4659 char* vString; 4660 /** 4661 * comment value 4662 */ 4663 char* vComment; 4664 /** 4665 * character value 4666 */ 4667 char vChar; 4668 /** 4669 * error value 4670 */ 4671 uint vError; 4672 } 4673 } 4674 4675 /** 4676 * Each piece of memory that is pushed onto the stack 4677 * is cast to a GTrashStack*. 4678 * 4679 * Deprecated: #GTrashStack is deprecated without replacement 4680 */ 4681 struct GTrashStack 4682 { 4683 /** 4684 * pointer to the previous element of the stack, 4685 * gets stored in the first `sizeof (gpointer)` 4686 * bytes of the element 4687 */ 4688 GTrashStack* next; 4689 } 4690 4691 struct GTree; 4692 4693 struct GVariant; 4694 4695 struct GVariantBuilder 4696 { 4697 union U 4698 { 4699 struct S 4700 { 4701 size_t partialMagic; 4702 GVariantType* type; 4703 size_t[14] y; 4704 } 4705 S s; 4706 size_t[16] x; 4707 } 4708 U u; 4709 } 4710 4711 struct GVariantDict 4712 { 4713 union U 4714 { 4715 struct S 4716 { 4717 GVariant* asv; 4718 size_t partialMagic; 4719 size_t[14] y; 4720 } 4721 S s; 4722 size_t[16] x; 4723 } 4724 U u; 4725 } 4726 4727 struct GVariantIter 4728 { 4729 size_t[16] x; 4730 } 4731 4732 struct GVariantType; 4733 4734 struct GModule; 4735 4736 /** 4737 * Prototype of a #GChildWatchSource callback, called when a child 4738 * process has exited. To interpret @status, see the documentation 4739 * for g_spawn_check_exit_status(). 4740 * 4741 * Params: 4742 * pid = the process id of the child process 4743 * status = Status information about the child process, encoded 4744 * in a platform-specific manner 4745 * userData = user data passed to g_child_watch_add() 4746 */ 4747 public alias extern(C) void function(GPid pid, int status, void* userData) GChildWatchFunc; 4748 4749 /** 4750 * Specifies the type of function passed to g_clear_handle_id(). 4751 * The implementation is expected to free the resource identified 4752 * by @handle_id; for instance, if @handle_id is a #GSource ID, 4753 * g_source_remove() can be used. 4754 * 4755 * Params: 4756 * handleId = the handle ID to clear 4757 * 4758 * Since: 2.56 4759 */ 4760 public alias extern(C) void function(uint handleId) GClearHandleFunc; 4761 4762 /** 4763 * Specifies the type of a comparison function used to compare two 4764 * values. The function should return a negative integer if the first 4765 * value comes before the second, 0 if they are equal, or a positive 4766 * integer if the first value comes after the second. 4767 * 4768 * Params: 4769 * a = a value 4770 * b = a value to compare with 4771 * userData = user data 4772 * 4773 * Returns: negative value if @a < @b; zero if @a = @b; positive 4774 * value if @a > @b 4775 */ 4776 public alias extern(C) int function(void* a, void* b, void* userData) GCompareDataFunc; 4777 4778 /** 4779 * Specifies the type of a comparison function used to compare two 4780 * values. The function should return a negative integer if the first 4781 * value comes before the second, 0 if they are equal, or a positive 4782 * integer if the first value comes after the second. 4783 * 4784 * Params: 4785 * a = a value 4786 * b = a value to compare with 4787 * 4788 * Returns: negative value if @a < @b; zero if @a = @b; positive 4789 * value if @a > @b 4790 */ 4791 public alias extern(C) int function(void* a, void* b) GCompareFunc; 4792 4793 /** 4794 * A function of this signature is used to copy the node data 4795 * when doing a deep-copy of a tree. 4796 * 4797 * Params: 4798 * src = A pointer to the data which should be copied 4799 * data = Additional data 4800 * 4801 * Returns: A pointer to the copy 4802 * 4803 * Since: 2.4 4804 */ 4805 public alias extern(C) void* function(void* src, void* data) GCopyFunc; 4806 4807 /** 4808 * Specifies the type of function passed to g_dataset_foreach(). It is 4809 * called with each #GQuark id and associated data element, together 4810 * with the @user_data parameter supplied to g_dataset_foreach(). 4811 * 4812 * Params: 4813 * keyId = the #GQuark id to identifying the data element. 4814 * data = the data element. 4815 * userData = user data passed to g_dataset_foreach(). 4816 */ 4817 public alias extern(C) void function(GQuark keyId, void* data, void* userData) GDataForeachFunc; 4818 4819 /** 4820 * Specifies the type of function which is called when a data element 4821 * is destroyed. It is passed the pointer to the data element and 4822 * should free any memory and resources allocated for it. 4823 * 4824 * Params: 4825 * data = the data element. 4826 */ 4827 public alias extern(C) void function(void* data) GDestroyNotify; 4828 4829 /** 4830 * The type of functions that are used to 'duplicate' an object. 4831 * What this means depends on the context, it could just be 4832 * incrementing the reference count, if @data is a ref-counted 4833 * object. 4834 * 4835 * Params: 4836 * data = the data to duplicate 4837 * userData = user data that was specified in 4838 * g_datalist_id_dup_data() 4839 * 4840 * Returns: a duplicate of data 4841 */ 4842 public alias extern(C) void* function(void* data, void* userData) GDuplicateFunc; 4843 4844 /** 4845 * Specifies the type of a function used to test two values for 4846 * equality. The function should return %TRUE if both values are equal 4847 * and %FALSE otherwise. 4848 * 4849 * Params: 4850 * a = a value 4851 * b = a value to compare with 4852 * 4853 * Returns: %TRUE if @a = @b; %FALSE otherwise 4854 */ 4855 public alias extern(C) int function(void* a, void* b) GEqualFunc; 4856 4857 /** 4858 * Declares a type of function which takes an arbitrary 4859 * data pointer argument and has no return value. It is 4860 * not currently used in GLib or GTK+. 4861 * 4862 * Params: 4863 * data = a data pointer 4864 */ 4865 public alias extern(C) void function(void* data) GFreeFunc; 4866 4867 /** 4868 * Specifies the type of functions passed to g_list_foreach() and 4869 * g_slist_foreach(). 4870 * 4871 * Params: 4872 * data = the element's data 4873 * userData = user data passed to g_list_foreach() or g_slist_foreach() 4874 */ 4875 public alias extern(C) void function(void* data, void* userData) GFunc; 4876 4877 /** 4878 * Specifies the type of the function passed to g_hash_table_foreach(). 4879 * It is called with each key/value pair, together with the @user_data 4880 * parameter which is passed to g_hash_table_foreach(). 4881 * 4882 * Params: 4883 * key = a key 4884 * value = the value corresponding to the key 4885 * userData = user data passed to g_hash_table_foreach() 4886 */ 4887 public alias extern(C) void function(void* key, void* value, void* userData) GHFunc; 4888 4889 /** 4890 * Specifies the type of the function passed to 4891 * g_hash_table_foreach_remove(). It is called with each key/value 4892 * pair, together with the @user_data parameter passed to 4893 * g_hash_table_foreach_remove(). It should return %TRUE if the 4894 * key/value pair should be removed from the #GHashTable. 4895 * 4896 * Params: 4897 * key = a key 4898 * value = the value associated with the key 4899 * userData = user data passed to g_hash_table_remove() 4900 * 4901 * Returns: %TRUE if the key/value pair should be removed from the 4902 * #GHashTable 4903 */ 4904 public alias extern(C) int function(void* key, void* value, void* userData) GHRFunc; 4905 4906 /** 4907 * Specifies the type of the hash function which is passed to 4908 * g_hash_table_new() when a #GHashTable is created. 4909 * 4910 * The function is passed a key and should return a #guint hash value. 4911 * The functions g_direct_hash(), g_int_hash() and g_str_hash() provide 4912 * hash functions which can be used when the key is a #gpointer, #gint*, 4913 * and #gchar* respectively. 4914 * 4915 * g_direct_hash() is also the appropriate hash function for keys 4916 * of the form `GINT_TO_POINTER (n)` (or similar macros). 4917 * 4918 * A good hash functions should produce 4919 * hash values that are evenly distributed over a fairly large range. 4920 * The modulus is taken with the hash table size (a prime number) to 4921 * find the 'bucket' to place each key into. The function should also 4922 * be very fast, since it is called for each key lookup. 4923 * 4924 * Note that the hash functions provided by GLib have these qualities, 4925 * but are not particularly robust against manufactured keys that 4926 * cause hash collisions. Therefore, you should consider choosing 4927 * a more secure hash function when using a GHashTable with keys 4928 * that originate in untrusted data (such as HTTP requests). 4929 * Using g_str_hash() in that situation might make your application 4930 * vulerable to 4931 * [Algorithmic Complexity Attacks](https://lwn.net/Articles/474912/). 4932 * 4933 * The key to choosing a good hash is unpredictability. Even 4934 * cryptographic hashes are very easy to find collisions for when the 4935 * remainder is taken modulo a somewhat predictable prime number. There 4936 * must be an element of randomness that an attacker is unable to guess. 4937 * 4938 * Params: 4939 * key = a key 4940 * 4941 * Returns: the hash value corresponding to the key 4942 */ 4943 public alias extern(C) uint function(void* key) GHashFunc; 4944 4945 /** 4946 * Defines the type of a hook function that can be invoked 4947 * by g_hook_list_invoke_check(). 4948 * 4949 * Params: 4950 * data = the data field of the #GHook is passed to the hook function here 4951 * 4952 * Returns: %FALSE if the #GHook should be destroyed 4953 */ 4954 public alias extern(C) int function(void* data) GHookCheckFunc; 4955 4956 /** 4957 * Defines the type of function used by g_hook_list_marshal_check(). 4958 * 4959 * Params: 4960 * hook = a #GHook 4961 * marshalData = user data 4962 * 4963 * Returns: %FALSE if @hook should be destroyed 4964 */ 4965 public alias extern(C) int function(GHook* hook, void* marshalData) GHookCheckMarshaller; 4966 4967 /** 4968 * Defines the type of function used to compare #GHook elements in 4969 * g_hook_insert_sorted(). 4970 * 4971 * Params: 4972 * newHook = the #GHook being inserted 4973 * sibling = the #GHook to compare with @new_hook 4974 * 4975 * Returns: a value <= 0 if @new_hook should be before @sibling 4976 */ 4977 public alias extern(C) int function(GHook* newHook, GHook* sibling) GHookCompareFunc; 4978 4979 /** 4980 * Defines the type of function to be called when a hook in a 4981 * list of hooks gets finalized. 4982 * 4983 * Params: 4984 * hookList = a #GHookList 4985 * hook = the hook in @hook_list that gets finalized 4986 */ 4987 public alias extern(C) void function(GHookList* hookList, GHook* hook) GHookFinalizeFunc; 4988 4989 /** 4990 * Defines the type of the function passed to g_hook_find(). 4991 * 4992 * Params: 4993 * hook = a #GHook 4994 * data = user data passed to g_hook_find_func() 4995 * 4996 * Returns: %TRUE if the required #GHook has been found 4997 */ 4998 public alias extern(C) int function(GHook* hook, void* data) GHookFindFunc; 4999 5000 /** 5001 * Defines the type of a hook function that can be invoked 5002 * by g_hook_list_invoke(). 5003 * 5004 * Params: 5005 * data = the data field of the #GHook is passed to the hook function here 5006 */ 5007 public alias extern(C) void function(void* data) GHookFunc; 5008 5009 /** 5010 * Defines the type of function used by g_hook_list_marshal(). 5011 * 5012 * Params: 5013 * hook = a #GHook 5014 * marshalData = user data 5015 */ 5016 public alias extern(C) void function(GHook* hook, void* marshalData) GHookMarshaller; 5017 5018 /** 5019 * Specifies the type of function passed to g_io_add_watch() or 5020 * g_io_add_watch_full(), which is called when the requested condition 5021 * on a #GIOChannel is satisfied. 5022 * 5023 * Params: 5024 * source = the #GIOChannel event source 5025 * condition = the condition which has been satisfied 5026 * data = user data set in g_io_add_watch() or g_io_add_watch_full() 5027 * 5028 * Returns: the function should return %FALSE if the event source 5029 * should be removed 5030 */ 5031 public alias extern(C) int function(GIOChannel* source, GIOCondition condition, void* data) GIOFunc; 5032 5033 /** 5034 * Specifies the prototype of log handler functions. 5035 * 5036 * The default log handler, g_log_default_handler(), automatically appends a 5037 * new-line character to @message when printing it. It is advised that any 5038 * custom log handler functions behave similarly, so that logging calls in user 5039 * code do not need modifying to add a new-line character to the message if the 5040 * log handler is changed. 5041 * 5042 * This is not used if structured logging is enabled; see 5043 * [Using Structured Logging][using-structured-logging]. 5044 * 5045 * Params: 5046 * logDomain = the log domain of the message 5047 * logLevel = the log level of the message (including the 5048 * fatal and recursion flags) 5049 * message = the message to process 5050 * userData = user data, set in g_log_set_handler() 5051 */ 5052 public alias extern(C) void function(const(char)* logDomain, GLogLevelFlags logLevel, const(char)* message, void* userData) GLogFunc; 5053 5054 /** 5055 * Writer function for log entries. A log entry is a collection of one or more 5056 * #GLogFields, using the standard [field names from journal 5057 * specification](https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html). 5058 * See g_log_structured() for more information. 5059 * 5060 * Writer functions must ignore fields which they do not recognise, unless they 5061 * can write arbitrary binary output, as field values may be arbitrary binary. 5062 * 5063 * @log_level is guaranteed to be included in @fields as the `PRIORITY` field, 5064 * but is provided separately for convenience of deciding whether or where to 5065 * output the log entry. 5066 * 5067 * Writer functions should return %G_LOG_WRITER_HANDLED if they handled the log 5068 * message successfully or if they deliberately ignored it. If there was an 5069 * error handling the message (for example, if the writer function is meant to 5070 * send messages to a remote logging server and there is a network error), it 5071 * should return %G_LOG_WRITER_UNHANDLED. This allows writer functions to be 5072 * chained and fall back to simpler handlers in case of failure. 5073 * 5074 * Params: 5075 * logLevel = log level of the message 5076 * fields = fields forming the message 5077 * nFields = number of @fields 5078 * userData = user data passed to g_log_set_writer_func() 5079 * 5080 * Returns: %G_LOG_WRITER_HANDLED if the log entry was handled successfully; 5081 * %G_LOG_WRITER_UNHANDLED otherwise 5082 * 5083 * Since: 2.50 5084 */ 5085 public alias extern(C) GLogWriterOutput function(GLogLevelFlags logLevel, GLogField* fields, size_t nFields, void* userData) GLogWriterFunc; 5086 5087 /** 5088 * Specifies the type of function passed to g_node_children_foreach(). 5089 * The function is called with each child node, together with the user 5090 * data passed to g_node_children_foreach(). 5091 * 5092 * Params: 5093 * node = a #GNode. 5094 * data = user data passed to g_node_children_foreach(). 5095 */ 5096 public alias extern(C) void function(GNode* node, void* data) GNodeForeachFunc; 5097 5098 /** 5099 * Specifies the type of function passed to g_node_traverse(). The 5100 * function is called with each of the nodes visited, together with the 5101 * user data passed to g_node_traverse(). If the function returns 5102 * %TRUE, then the traversal is stopped. 5103 * 5104 * Params: 5105 * node = a #GNode. 5106 * data = user data passed to g_node_traverse(). 5107 * 5108 * Returns: %TRUE to stop the traversal. 5109 */ 5110 public alias extern(C) int function(GNode* node, void* data) GNodeTraverseFunc; 5111 5112 /** 5113 * The type of function to be passed as callback for %G_OPTION_ARG_CALLBACK 5114 * options. 5115 * 5116 * Params: 5117 * optionName = The name of the option being parsed. This will be either a 5118 * single dash followed by a single letter (for a short name) or two dashes 5119 * followed by a long option name. 5120 * value = The value to be parsed. 5121 * data = User data added to the #GOptionGroup containing the option when it 5122 * was created with g_option_group_new() 5123 * 5124 * Returns: %TRUE if the option was successfully parsed, %FALSE if an error 5125 * occurred, in which case @error should be set with g_set_error() 5126 * 5127 * Throws: GException on failure. 5128 */ 5129 public alias extern(C) int function(const(char)* optionName, const(char)* value, void* data, GError** err) GOptionArgFunc; 5130 5131 /** 5132 * The type of function to be used as callback when a parse error occurs. 5133 * 5134 * Params: 5135 * context = The active #GOptionContext 5136 * group = The group to which the function belongs 5137 * data = User data added to the #GOptionGroup containing the option when it 5138 * was created with g_option_group_new() 5139 * 5140 * Throws: GException on failure. 5141 */ 5142 public alias extern(C) void function(GOptionContext* context, GOptionGroup* group, void* data, GError** err) GOptionErrorFunc; 5143 5144 /** 5145 * The type of function that can be called before and after parsing. 5146 * 5147 * Params: 5148 * context = The active #GOptionContext 5149 * group = The group to which the function belongs 5150 * data = User data added to the #GOptionGroup containing the option when it 5151 * was created with g_option_group_new() 5152 * 5153 * Returns: %TRUE if the function completed successfully, %FALSE if an error 5154 * occurred, in which case @error should be set with g_set_error() 5155 * 5156 * Throws: GException on failure. 5157 */ 5158 public alias extern(C) int function(GOptionContext* context, GOptionGroup* group, void* data, GError** err) GOptionParseFunc; 5159 5160 /** 5161 * Specifies the type of function passed to g_main_context_set_poll_func(). 5162 * The semantics of the function should match those of the poll() system call. 5163 * 5164 * Params: 5165 * ufds = an array of #GPollFD elements 5166 * nfsd = the number of elements in @ufds 5167 * timeout = the maximum time to wait for an event of the file descriptors. 5168 * A negative value indicates an infinite timeout. 5169 * 5170 * Returns: the number of #GPollFD elements which have events or errors 5171 * reported, or -1 if an error occurred. 5172 */ 5173 public alias extern(C) int function(GPollFD* ufds, uint nfsd, int timeout) GPollFunc; 5174 5175 /** 5176 * Specifies the type of the print handler functions. 5177 * These are called with the complete formatted string to output. 5178 * 5179 * Params: 5180 * string_ = the message to output 5181 */ 5182 public alias extern(C) void function(const(char)* string_) GPrintFunc; 5183 5184 /** 5185 * Specifies the type of the function passed to g_regex_replace_eval(). 5186 * It is called for each occurrence of the pattern in the string passed 5187 * to g_regex_replace_eval(), and it should append the replacement to 5188 * @result. 5189 * 5190 * Params: 5191 * matchInfo = the #GMatchInfo generated by the match. 5192 * Use g_match_info_get_regex() and g_match_info_get_string() if you 5193 * need the #GRegex or the matched string. 5194 * result = a #GString containing the new string 5195 * userData = user data passed to g_regex_replace_eval() 5196 * 5197 * Returns: %FALSE to continue the replacement process, %TRUE to stop it 5198 * 5199 * Since: 2.14 5200 */ 5201 public alias extern(C) int function(GMatchInfo* matchInfo, GString* result, void* userData) GRegexEvalCallback; 5202 5203 /** 5204 * Specifies the type of the message handler function. 5205 * 5206 * Params: 5207 * scanner = a #GScanner 5208 * message = the message 5209 * error = %TRUE if the message signals an error, 5210 * %FALSE if it signals a warning. 5211 */ 5212 public alias extern(C) void function(GScanner* scanner, char* message, int error) GScannerMsgFunc; 5213 5214 /** 5215 * A #GSequenceIterCompareFunc is a function used to compare iterators. 5216 * It must return zero if the iterators compare equal, a negative value 5217 * if @a comes before @b, and a positive value if @b comes before @a. 5218 * 5219 * Params: 5220 * a = a #GSequenceIter 5221 * b = a #GSequenceIter 5222 * data = user data 5223 * 5224 * Returns: zero if the iterators are equal, a negative value if @a 5225 * comes before @b, and a positive value if @b comes before @a. 5226 */ 5227 public alias extern(C) int function(GSequenceIter* a, GSequenceIter* b, void* data) GSequenceIterCompareFunc; 5228 5229 /** 5230 * Dispose function for @source. See g_source_set_dispose_function() for 5231 * details. 5232 * 5233 * Params: 5234 * source = #GSource that is currently being disposed 5235 * 5236 * Since: 2.64 5237 */ 5238 public alias extern(C) void function(GSource* source) GSourceDisposeFunc; 5239 5240 /** 5241 * This is just a placeholder for #GClosureMarshal, 5242 * which cannot be used here for dependency reasons. 5243 */ 5244 public alias extern(C) void function() GSourceDummyMarshal; 5245 5246 /** 5247 * Specifies the type of function passed to g_timeout_add(), 5248 * g_timeout_add_full(), g_idle_add(), and g_idle_add_full(). 5249 * 5250 * When calling g_source_set_callback(), you may need to cast a function of a 5251 * different type to this type. Use G_SOURCE_FUNC() to avoid warnings about 5252 * incompatible function types. 5253 * 5254 * Params: 5255 * userData = data passed to the function, set when the source was 5256 * created with one of the above functions 5257 * 5258 * Returns: %FALSE if the source should be removed. #G_SOURCE_CONTINUE and 5259 * #G_SOURCE_REMOVE are more memorable names for the return value. 5260 */ 5261 public alias extern(C) int function(void* userData) GSourceFunc; 5262 5263 /** 5264 * Specifies the type of the setup function passed to g_spawn_async(), 5265 * g_spawn_sync() and g_spawn_async_with_pipes(), which can, in very 5266 * limited ways, be used to affect the child's execution. 5267 * 5268 * On POSIX platforms, the function is called in the child after GLib 5269 * has performed all the setup it plans to perform, but before calling 5270 * exec(). Actions taken in this function will only affect the child, 5271 * not the parent. 5272 * 5273 * On Windows, the function is called in the parent. Its usefulness on 5274 * Windows is thus questionable. In many cases executing the child setup 5275 * function in the parent can have ill effects, and you should be very 5276 * careful when porting software to Windows that uses child setup 5277 * functions. 5278 * 5279 * However, even on POSIX, you are extremely limited in what you can 5280 * safely do from a #GSpawnChildSetupFunc, because any mutexes that were 5281 * held by other threads in the parent process at the time of the fork() 5282 * will still be locked in the child process, and they will never be 5283 * unlocked (since the threads that held them don't exist in the child). 5284 * POSIX allows only async-signal-safe functions (see signal(7)) to be 5285 * called in the child between fork() and exec(), which drastically limits 5286 * the usefulness of child setup functions. 5287 * 5288 * In particular, it is not safe to call any function which may 5289 * call malloc(), which includes POSIX functions such as setenv(). 5290 * If you need to set up the child environment differently from 5291 * the parent, you should use g_get_environ(), g_environ_setenv(), 5292 * and g_environ_unsetenv(), and then pass the complete environment 5293 * list to the `g_spawn...` function. 5294 * 5295 * Params: 5296 * userData = user data to pass to the function. 5297 */ 5298 public alias extern(C) void function(void* userData) GSpawnChildSetupFunc; 5299 5300 /** 5301 * The type used for test case functions that take an extra pointer 5302 * argument. 5303 * 5304 * Params: 5305 * userData = the data provided when registering the test 5306 * 5307 * Since: 2.28 5308 */ 5309 public alias extern(C) void function(void* userData) GTestDataFunc; 5310 5311 /** 5312 * The type used for functions that operate on test fixtures. This is 5313 * used for the fixture setup and teardown functions as well as for the 5314 * testcases themselves. 5315 * 5316 * @user_data is a pointer to the data that was given when registering 5317 * the test case. 5318 * 5319 * @fixture will be a pointer to the area of memory allocated by the 5320 * test framework, of the size requested. If the requested size was 5321 * zero then @fixture will be equal to @user_data. 5322 * 5323 * Params: 5324 * fixture = the test fixture 5325 * userData = the data provided when registering the test 5326 * 5327 * Since: 2.28 5328 */ 5329 public alias extern(C) void function(void* fixture, void* userData) GTestFixtureFunc; 5330 5331 /** 5332 * The type used for test case functions. 5333 * 5334 * Since: 2.28 5335 */ 5336 public alias extern(C) void function() GTestFunc; 5337 5338 /** 5339 * Specifies the prototype of fatal log handler functions. 5340 * 5341 * Params: 5342 * logDomain = the log domain of the message 5343 * logLevel = the log level of the message (including the fatal and recursion flags) 5344 * message = the message to process 5345 * userData = user data, set in g_test_log_set_fatal_handler() 5346 * 5347 * Returns: %TRUE if the program should abort, %FALSE otherwise 5348 * 5349 * Since: 2.22 5350 */ 5351 public alias extern(C) int function(const(char)* logDomain, GLogLevelFlags logLevel, const(char)* message, void* userData) GTestLogFatalFunc; 5352 5353 /** 5354 * Specifies the type of the @func functions passed to g_thread_new() 5355 * or g_thread_try_new(). 5356 * 5357 * Params: 5358 * data = data passed to the thread 5359 * 5360 * Returns: the return value of the thread 5361 */ 5362 public alias extern(C) void* function(void* data) GThreadFunc; 5363 5364 /** 5365 * The type of functions which are used to translate user-visible 5366 * strings, for <option>--help</option> output. 5367 * 5368 * Params: 5369 * str = the untranslated string 5370 * data = user data specified when installing the function, e.g. 5371 * in g_option_group_set_translate_func() 5372 * 5373 * Returns: a translation of the string for the current locale. 5374 * The returned string is owned by GLib and must not be freed. 5375 */ 5376 public alias extern(C) const(char)* function(const(char)* str, void* data) GTranslateFunc; 5377 5378 /** 5379 * Specifies the type of function passed to g_tree_traverse(). It is 5380 * passed the key and value of each node, together with the @user_data 5381 * parameter passed to g_tree_traverse(). If the function returns 5382 * %TRUE, the traversal is stopped. 5383 * 5384 * Params: 5385 * key = a key of a #GTree node 5386 * value = the value corresponding to the key 5387 * data = user data passed to g_tree_traverse() 5388 * 5389 * Returns: %TRUE to stop the traversal 5390 */ 5391 public alias extern(C) int function(void* key, void* value, void* data) GTraverseFunc; 5392 5393 /** 5394 * The type of functions to be called when a UNIX fd watch source 5395 * triggers. 5396 * 5397 * Params: 5398 * fd = the fd that triggered the event 5399 * condition = the IO conditions reported on @fd 5400 * userData = user data passed to g_unix_fd_add() 5401 * 5402 * Returns: %FALSE if the source should be removed 5403 */ 5404 public alias extern(C) int function(int fd, GIOCondition condition, void* userData) GUnixFDSourceFunc; 5405 5406 /** 5407 * Declares a type of function which takes no arguments 5408 * and has no return value. It is used to specify the type 5409 * function passed to g_atexit(). 5410 */ 5411 public alias extern(C) void function() GVoidFunc; 5412 5413 /** 5414 * Specifies the type of the module initialization function. 5415 * If a module contains a function named g_module_check_init() it is called 5416 * automatically when the module is loaded. It is passed the #GModule structure 5417 * and should return %NULL on success or a string describing the initialization 5418 * error. 5419 * 5420 * Params: 5421 * module_ = the #GModule corresponding to the module which has just been loaded 5422 * 5423 * Returns: %NULL on success, or a string describing the initialization error 5424 */ 5425 public alias extern(C) const(char)* function(GModule* module_) GModuleCheckInit; 5426 5427 /** 5428 * Specifies the type of the module function called when it is unloaded. 5429 * If a module contains a function named g_module_unload() it is called 5430 * automatically when the module is unloaded. 5431 * It is passed the #GModule structure. 5432 * 5433 * Params: 5434 * module_ = the #GModule about to be unloaded 5435 */ 5436 public alias extern(C) void function(GModule* module_) GModuleUnload; 5437 5438 enum ANALYZER_ANALYZING = 1; 5439 alias G_ANALYZER_ANALYZING = ANALYZER_ANALYZING; 5440 5441 /** 5442 * A good size for a buffer to be passed into g_ascii_dtostr(). 5443 * It is guaranteed to be enough for all output of that function 5444 * on systems with 64bit IEEE-compatible doubles. 5445 * 5446 * The typical usage would be something like: 5447 * |[<!-- language="C" --> 5448 * char buf[G_ASCII_DTOSTR_BUF_SIZE]; 5449 * 5450 * fprintf (out, "value=%s\n", g_ascii_dtostr (buf, sizeof (buf), value)); 5451 * ]| 5452 */ 5453 enum ASCII_DTOSTR_BUF_SIZE = 39; 5454 alias G_ASCII_DTOSTR_BUF_SIZE = ASCII_DTOSTR_BUF_SIZE; 5455 5456 /** 5457 * Specifies one of the possible types of byte order. 5458 * See #G_BYTE_ORDER. 5459 */ 5460 enum BIG_ENDIAN = 4321; 5461 alias G_BIG_ENDIAN = BIG_ENDIAN; 5462 5463 /** 5464 * The set of uppercase ASCII alphabet characters. 5465 * Used for specifying valid identifier characters 5466 * in #GScannerConfig. 5467 */ 5468 enum CSET_A_2_Z = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 5469 alias G_CSET_A_2_Z = CSET_A_2_Z; 5470 5471 /** 5472 * The set of ASCII digits. 5473 * Used for specifying valid identifier characters 5474 * in #GScannerConfig. 5475 */ 5476 enum CSET_DIGITS = "0123456789"; 5477 alias G_CSET_DIGITS = CSET_DIGITS; 5478 5479 /** 5480 * The set of lowercase ASCII alphabet characters. 5481 * Used for specifying valid identifier characters 5482 * in #GScannerConfig. 5483 */ 5484 enum CSET_a_2_z = "abcdefghijklmnopqrstuvwxyz"; 5485 alias G_CSET_a_2_z = CSET_a_2_z; 5486 5487 /** 5488 * A bitmask that restricts the possible flags passed to 5489 * g_datalist_set_flags(). Passing a flags value where 5490 * flags & ~G_DATALIST_FLAGS_MASK != 0 is an error. 5491 */ 5492 enum DATALIST_FLAGS_MASK = 3; 5493 alias G_DATALIST_FLAGS_MASK = DATALIST_FLAGS_MASK; 5494 5495 /** 5496 * Represents an invalid #GDateDay. 5497 */ 5498 enum DATE_BAD_DAY = 0; 5499 alias G_DATE_BAD_DAY = DATE_BAD_DAY; 5500 5501 /** 5502 * Represents an invalid Julian day number. 5503 */ 5504 enum DATE_BAD_JULIAN = 0; 5505 alias G_DATE_BAD_JULIAN = DATE_BAD_JULIAN; 5506 5507 /** 5508 * Represents an invalid year. 5509 */ 5510 enum DATE_BAD_YEAR = 0; 5511 alias G_DATE_BAD_YEAR = DATE_BAD_YEAR; 5512 5513 /** 5514 * This is the platform dependent conversion specifier for scanning and 5515 * printing values of type #gint16. It is a string literal, but doesn't 5516 * include the percent-sign, such that you can add precision and length 5517 * modifiers between percent-sign and conversion specifier. 5518 * 5519 * |[<!-- language="C" --> 5520 * gint16 in; 5521 * gint32 out; 5522 * sscanf ("42", "%" G_GINT16_FORMAT, &in) 5523 * out = in * 1000; 5524 * g_print ("%" G_GINT32_FORMAT, out); 5525 * ]| 5526 */ 5527 enum GINT16_FORMAT = "hi"; 5528 alias G_GINT16_FORMAT = GINT16_FORMAT; 5529 5530 /** 5531 * The platform dependent length modifier for conversion specifiers 5532 * for scanning and printing values of type #gint16 or #guint16. It 5533 * is a string literal, but doesn't include the percent-sign, such 5534 * that you can add precision and length modifiers between percent-sign 5535 * and conversion specifier and append a conversion specifier. 5536 * 5537 * The following example prints "0x7b"; 5538 * |[<!-- language="C" --> 5539 * gint16 value = 123; 5540 * g_print ("%#" G_GINT16_MODIFIER "x", value); 5541 * ]| 5542 */ 5543 enum GINT16_MODIFIER = "h"; 5544 alias G_GINT16_MODIFIER = GINT16_MODIFIER; 5545 5546 /** 5547 * This is the platform dependent conversion specifier for scanning 5548 * and printing values of type #gint32. See also #G_GINT16_FORMAT. 5549 */ 5550 enum GINT32_FORMAT = "i"; 5551 alias G_GINT32_FORMAT = GINT32_FORMAT; 5552 5553 /** 5554 * The platform dependent length modifier for conversion specifiers 5555 * for scanning and printing values of type #gint32 or #guint32. It 5556 * is a string literal. See also #G_GINT16_MODIFIER. 5557 */ 5558 enum GINT32_MODIFIER = ""; 5559 alias G_GINT32_MODIFIER = GINT32_MODIFIER; 5560 5561 /** 5562 * This is the platform dependent conversion specifier for scanning 5563 * and printing values of type #gint64. See also #G_GINT16_FORMAT. 5564 * 5565 * Some platforms do not support scanning and printing 64-bit integers, 5566 * even though the types are supported. On such platforms %G_GINT64_FORMAT 5567 * is not defined. Note that scanf() may not support 64-bit integers, even 5568 * if %G_GINT64_FORMAT is defined. Due to its weak error handling, scanf() 5569 * is not recommended for parsing anyway; consider using g_ascii_strtoull() 5570 * instead. 5571 */ 5572 enum GINT64_FORMAT = "li"; 5573 alias G_GINT64_FORMAT = GINT64_FORMAT; 5574 5575 /** 5576 * The platform dependent length modifier for conversion specifiers 5577 * for scanning and printing values of type #gint64 or #guint64. 5578 * It is a string literal. 5579 * 5580 * Some platforms do not support printing 64-bit integers, even 5581 * though the types are supported. On such platforms %G_GINT64_MODIFIER 5582 * is not defined. 5583 */ 5584 enum GINT64_MODIFIER = "l"; 5585 alias G_GINT64_MODIFIER = GINT64_MODIFIER; 5586 5587 /** 5588 * This is the platform dependent conversion specifier for scanning 5589 * and printing values of type #gintptr. 5590 */ 5591 enum GINTPTR_FORMAT = "li"; 5592 alias G_GINTPTR_FORMAT = GINTPTR_FORMAT; 5593 5594 /** 5595 * The platform dependent length modifier for conversion specifiers 5596 * for scanning and printing values of type #gintptr or #guintptr. 5597 * It is a string literal. 5598 */ 5599 enum GINTPTR_MODIFIER = "l"; 5600 alias G_GINTPTR_MODIFIER = GINTPTR_MODIFIER; 5601 5602 /** 5603 * Expands to "" on all modern compilers, and to __FUNCTION__ on gcc 5604 * version 2.x. Don't use it. 5605 * 5606 * Deprecated: Use G_STRFUNC() instead 5607 */ 5608 enum GNUC_FUNCTION = ""; 5609 alias G_GNUC_FUNCTION = GNUC_FUNCTION; 5610 5611 /** 5612 * Expands to "" on all modern compilers, and to __PRETTY_FUNCTION__ 5613 * on gcc version 2.x. Don't use it. 5614 * 5615 * Deprecated: Use G_STRFUNC() instead 5616 */ 5617 enum GNUC_PRETTY_FUNCTION = ""; 5618 alias G_GNUC_PRETTY_FUNCTION = GNUC_PRETTY_FUNCTION; 5619 5620 /** 5621 * This is the platform dependent conversion specifier for scanning 5622 * and printing values of type #gsize. See also #G_GINT16_FORMAT. 5623 */ 5624 enum GSIZE_FORMAT = "lu"; 5625 alias G_GSIZE_FORMAT = GSIZE_FORMAT; 5626 5627 /** 5628 * The platform dependent length modifier for conversion specifiers 5629 * for scanning and printing values of type #gsize. It 5630 * is a string literal. 5631 */ 5632 enum GSIZE_MODIFIER = "l"; 5633 alias G_GSIZE_MODIFIER = GSIZE_MODIFIER; 5634 5635 /** 5636 * This is the platform dependent conversion specifier for scanning 5637 * and printing values of type #gssize. See also #G_GINT16_FORMAT. 5638 */ 5639 enum GSSIZE_FORMAT = "li"; 5640 alias G_GSSIZE_FORMAT = GSSIZE_FORMAT; 5641 5642 /** 5643 * The platform dependent length modifier for conversion specifiers 5644 * for scanning and printing values of type #gssize. It 5645 * is a string literal. 5646 */ 5647 enum GSSIZE_MODIFIER = "l"; 5648 alias G_GSSIZE_MODIFIER = GSSIZE_MODIFIER; 5649 5650 /** 5651 * This is the platform dependent conversion specifier for scanning 5652 * and printing values of type #guint16. See also #G_GINT16_FORMAT 5653 */ 5654 enum GUINT16_FORMAT = "hu"; 5655 alias G_GUINT16_FORMAT = GUINT16_FORMAT; 5656 5657 /** 5658 * This is the platform dependent conversion specifier for scanning 5659 * and printing values of type #guint32. See also #G_GINT16_FORMAT. 5660 */ 5661 enum GUINT32_FORMAT = "u"; 5662 alias G_GUINT32_FORMAT = GUINT32_FORMAT; 5663 5664 /** 5665 * This is the platform dependent conversion specifier for scanning 5666 * and printing values of type #guint64. See also #G_GINT16_FORMAT. 5667 * 5668 * Some platforms do not support scanning and printing 64-bit integers, 5669 * even though the types are supported. On such platforms %G_GUINT64_FORMAT 5670 * is not defined. Note that scanf() may not support 64-bit integers, even 5671 * if %G_GINT64_FORMAT is defined. Due to its weak error handling, scanf() 5672 * is not recommended for parsing anyway; consider using g_ascii_strtoull() 5673 * instead. 5674 */ 5675 enum GUINT64_FORMAT = "lu"; 5676 alias G_GUINT64_FORMAT = GUINT64_FORMAT; 5677 5678 /** 5679 * This is the platform dependent conversion specifier 5680 * for scanning and printing values of type #guintptr. 5681 */ 5682 enum GUINTPTR_FORMAT = "lu"; 5683 alias G_GUINTPTR_FORMAT = GUINTPTR_FORMAT; 5684 5685 enum HAVE_GINT64 = 1; 5686 alias G_HAVE_GINT64 = HAVE_GINT64; 5687 5688 enum HAVE_GNUC_VARARGS = 1; 5689 alias G_HAVE_GNUC_VARARGS = HAVE_GNUC_VARARGS; 5690 5691 /** 5692 * Defined to 1 if gcc-style visibility handling is supported. 5693 */ 5694 enum HAVE_GNUC_VISIBILITY = 1; 5695 alias G_HAVE_GNUC_VISIBILITY = HAVE_GNUC_VISIBILITY; 5696 5697 enum HAVE_GROWING_STACK = 0; 5698 alias G_HAVE_GROWING_STACK = HAVE_GROWING_STACK; 5699 5700 enum HAVE_ISO_VARARGS = 1; 5701 alias G_HAVE_ISO_VARARGS = HAVE_ISO_VARARGS; 5702 5703 /** 5704 * The position of the first bit which is not reserved for internal 5705 * use be the #GHook implementation, i.e. 5706 * `1 << G_HOOK_FLAG_USER_SHIFT` is the first 5707 * bit which can be used for application-defined flags. 5708 */ 5709 enum HOOK_FLAG_USER_SHIFT = 4; 5710 alias G_HOOK_FLAG_USER_SHIFT = HOOK_FLAG_USER_SHIFT; 5711 5712 /** 5713 * The bias by which exponents in double-precision floats are offset. 5714 */ 5715 enum IEEE754_DOUBLE_BIAS = 1023; 5716 alias G_IEEE754_DOUBLE_BIAS = IEEE754_DOUBLE_BIAS; 5717 5718 /** 5719 * The bias by which exponents in single-precision floats are offset. 5720 */ 5721 enum IEEE754_FLOAT_BIAS = 127; 5722 alias G_IEEE754_FLOAT_BIAS = IEEE754_FLOAT_BIAS; 5723 5724 /** 5725 * The name of the main group of a desktop entry file, as defined in the 5726 * [Desktop Entry Specification](http://freedesktop.org/Standards/desktop-entry-spec). 5727 * Consult the specification for more 5728 * details about the meanings of the keys below. 5729 */ 5730 enum KEY_FILE_DESKTOP_GROUP = "Desktop Entry"; 5731 alias G_KEY_FILE_DESKTOP_GROUP = KEY_FILE_DESKTOP_GROUP; 5732 5733 /** 5734 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a string list 5735 * giving the available application actions. 5736 */ 5737 enum KEY_FILE_DESKTOP_KEY_ACTIONS = "Actions"; 5738 alias G_KEY_FILE_DESKTOP_KEY_ACTIONS = KEY_FILE_DESKTOP_KEY_ACTIONS; 5739 5740 /** 5741 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a list 5742 * of strings giving the categories in which the desktop entry 5743 * should be shown in a menu. 5744 */ 5745 enum KEY_FILE_DESKTOP_KEY_CATEGORIES = "Categories"; 5746 alias G_KEY_FILE_DESKTOP_KEY_CATEGORIES = KEY_FILE_DESKTOP_KEY_CATEGORIES; 5747 5748 /** 5749 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a localized 5750 * string giving the tooltip for the desktop entry. 5751 */ 5752 enum KEY_FILE_DESKTOP_KEY_COMMENT = "Comment"; 5753 alias G_KEY_FILE_DESKTOP_KEY_COMMENT = KEY_FILE_DESKTOP_KEY_COMMENT; 5754 5755 /** 5756 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a boolean set to true 5757 * if the application is D-Bus activatable. 5758 */ 5759 enum KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE = "DBusActivatable"; 5760 alias G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE = KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE; 5761 5762 /** 5763 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a string 5764 * giving the command line to execute. It is only valid for desktop 5765 * entries with the `Application` type. 5766 */ 5767 enum KEY_FILE_DESKTOP_KEY_EXEC = "Exec"; 5768 alias G_KEY_FILE_DESKTOP_KEY_EXEC = KEY_FILE_DESKTOP_KEY_EXEC; 5769 5770 /** 5771 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a localized 5772 * string giving the generic name of the desktop entry. 5773 */ 5774 enum KEY_FILE_DESKTOP_KEY_GENERIC_NAME = "GenericName"; 5775 alias G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME = KEY_FILE_DESKTOP_KEY_GENERIC_NAME; 5776 5777 /** 5778 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a boolean 5779 * stating whether the desktop entry has been deleted by the user. 5780 */ 5781 enum KEY_FILE_DESKTOP_KEY_HIDDEN = "Hidden"; 5782 alias G_KEY_FILE_DESKTOP_KEY_HIDDEN = KEY_FILE_DESKTOP_KEY_HIDDEN; 5783 5784 /** 5785 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a localized 5786 * string giving the name of the icon to be displayed for the desktop 5787 * entry. 5788 */ 5789 enum KEY_FILE_DESKTOP_KEY_ICON = "Icon"; 5790 alias G_KEY_FILE_DESKTOP_KEY_ICON = KEY_FILE_DESKTOP_KEY_ICON; 5791 5792 /** 5793 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a list 5794 * of strings giving the MIME types supported by this desktop entry. 5795 */ 5796 enum KEY_FILE_DESKTOP_KEY_MIME_TYPE = "MimeType"; 5797 alias G_KEY_FILE_DESKTOP_KEY_MIME_TYPE = KEY_FILE_DESKTOP_KEY_MIME_TYPE; 5798 5799 /** 5800 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a localized 5801 * string giving the specific name of the desktop entry. 5802 */ 5803 enum KEY_FILE_DESKTOP_KEY_NAME = "Name"; 5804 alias G_KEY_FILE_DESKTOP_KEY_NAME = KEY_FILE_DESKTOP_KEY_NAME; 5805 5806 /** 5807 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a list of 5808 * strings identifying the environments that should not display the 5809 * desktop entry. 5810 */ 5811 enum KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN = "NotShowIn"; 5812 alias G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN = KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN; 5813 5814 /** 5815 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a boolean 5816 * stating whether the desktop entry should be shown in menus. 5817 */ 5818 enum KEY_FILE_DESKTOP_KEY_NO_DISPLAY = "NoDisplay"; 5819 alias G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY = KEY_FILE_DESKTOP_KEY_NO_DISPLAY; 5820 5821 /** 5822 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a list of 5823 * strings identifying the environments that should display the 5824 * desktop entry. 5825 */ 5826 enum KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN = "OnlyShowIn"; 5827 alias G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN = KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN; 5828 5829 /** 5830 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a string 5831 * containing the working directory to run the program in. It is only 5832 * valid for desktop entries with the `Application` type. 5833 */ 5834 enum KEY_FILE_DESKTOP_KEY_PATH = "Path"; 5835 alias G_KEY_FILE_DESKTOP_KEY_PATH = KEY_FILE_DESKTOP_KEY_PATH; 5836 5837 /** 5838 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a boolean 5839 * stating whether the application supports the 5840 * [Startup Notification Protocol Specification](http://www.freedesktop.org/Standards/startup-notification-spec). 5841 */ 5842 enum KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY = "StartupNotify"; 5843 alias G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY = KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY; 5844 5845 /** 5846 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is string 5847 * identifying the WM class or name hint of a window that the application 5848 * will create, which can be used to emulate Startup Notification with 5849 * older applications. 5850 */ 5851 enum KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS = "StartupWMClass"; 5852 alias G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS = KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS; 5853 5854 /** 5855 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a boolean 5856 * stating whether the program should be run in a terminal window. 5857 * It is only valid for desktop entries with the 5858 * `Application` type. 5859 */ 5860 enum KEY_FILE_DESKTOP_KEY_TERMINAL = "Terminal"; 5861 alias G_KEY_FILE_DESKTOP_KEY_TERMINAL = KEY_FILE_DESKTOP_KEY_TERMINAL; 5862 5863 /** 5864 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a string 5865 * giving the file name of a binary on disk used to determine if the 5866 * program is actually installed. It is only valid for desktop entries 5867 * with the `Application` type. 5868 */ 5869 enum KEY_FILE_DESKTOP_KEY_TRY_EXEC = "TryExec"; 5870 alias G_KEY_FILE_DESKTOP_KEY_TRY_EXEC = KEY_FILE_DESKTOP_KEY_TRY_EXEC; 5871 5872 /** 5873 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a string 5874 * giving the type of the desktop entry. Usually 5875 * #G_KEY_FILE_DESKTOP_TYPE_APPLICATION, 5876 * #G_KEY_FILE_DESKTOP_TYPE_LINK, or 5877 * #G_KEY_FILE_DESKTOP_TYPE_DIRECTORY. 5878 */ 5879 enum KEY_FILE_DESKTOP_KEY_TYPE = "Type"; 5880 alias G_KEY_FILE_DESKTOP_KEY_TYPE = KEY_FILE_DESKTOP_KEY_TYPE; 5881 5882 /** 5883 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a string 5884 * giving the URL to access. It is only valid for desktop entries 5885 * with the `Link` type. 5886 */ 5887 enum KEY_FILE_DESKTOP_KEY_URL = "URL"; 5888 alias G_KEY_FILE_DESKTOP_KEY_URL = KEY_FILE_DESKTOP_KEY_URL; 5889 5890 /** 5891 * A key under #G_KEY_FILE_DESKTOP_GROUP, whose value is a string 5892 * giving the version of the Desktop Entry Specification used for 5893 * the desktop entry file. 5894 */ 5895 enum KEY_FILE_DESKTOP_KEY_VERSION = "Version"; 5896 alias G_KEY_FILE_DESKTOP_KEY_VERSION = KEY_FILE_DESKTOP_KEY_VERSION; 5897 5898 /** 5899 * The value of the #G_KEY_FILE_DESKTOP_KEY_TYPE, key for desktop 5900 * entries representing applications. 5901 */ 5902 enum KEY_FILE_DESKTOP_TYPE_APPLICATION = "Application"; 5903 alias G_KEY_FILE_DESKTOP_TYPE_APPLICATION = KEY_FILE_DESKTOP_TYPE_APPLICATION; 5904 5905 /** 5906 * The value of the #G_KEY_FILE_DESKTOP_KEY_TYPE, key for desktop 5907 * entries representing directories. 5908 */ 5909 enum KEY_FILE_DESKTOP_TYPE_DIRECTORY = "Directory"; 5910 alias G_KEY_FILE_DESKTOP_TYPE_DIRECTORY = KEY_FILE_DESKTOP_TYPE_DIRECTORY; 5911 5912 /** 5913 * The value of the #G_KEY_FILE_DESKTOP_KEY_TYPE, key for desktop 5914 * entries representing links to documents. 5915 */ 5916 enum KEY_FILE_DESKTOP_TYPE_LINK = "Link"; 5917 alias G_KEY_FILE_DESKTOP_TYPE_LINK = KEY_FILE_DESKTOP_TYPE_LINK; 5918 5919 /** 5920 * Specifies one of the possible types of byte order. 5921 * See #G_BYTE_ORDER. 5922 */ 5923 enum LITTLE_ENDIAN = 1234; 5924 alias G_LITTLE_ENDIAN = LITTLE_ENDIAN; 5925 5926 /** 5927 * Defines the log domain. See [Log Domains](#log-domains). 5928 * 5929 * Libraries should define this so that any messages 5930 * which they log can be differentiated from messages from other 5931 * libraries and application code. But be careful not to define 5932 * it in any public header files. 5933 * 5934 * Log domains must be unique, and it is recommended that they are the 5935 * application or library name, optionally followed by a hyphen and a sub-domain 5936 * name. For example, `bloatpad` or `bloatpad-io`. 5937 * 5938 * If undefined, it defaults to the default %NULL (or `""`) log domain; this is 5939 * not advisable, as it cannot be filtered against using the `G_MESSAGES_DEBUG` 5940 * environment variable. 5941 * 5942 * For example, GTK+ uses this in its `Makefile.am`: 5943 * |[ 5944 * AM_CPPFLAGS = -DG_LOG_DOMAIN=\"Gtk\" 5945 * ]| 5946 * 5947 * Applications can choose to leave it as the default %NULL (or `""`) 5948 * domain. However, defining the domain offers the same advantages as 5949 * above. 5950 */ 5951 enum LOG_DOMAIN = 0; 5952 alias G_LOG_DOMAIN = LOG_DOMAIN; 5953 5954 /** 5955 * GLib log levels that are considered fatal by default. 5956 * 5957 * This is not used if structured logging is enabled; see 5958 * [Using Structured Logging][using-structured-logging]. 5959 */ 5960 enum LOG_FATAL_MASK = 5; 5961 alias G_LOG_FATAL_MASK = LOG_FATAL_MASK; 5962 5963 /** 5964 * Log levels below 1<<G_LOG_LEVEL_USER_SHIFT are used by GLib. 5965 * Higher bits can be used for user-defined log levels. 5966 */ 5967 enum LOG_LEVEL_USER_SHIFT = 8; 5968 alias G_LOG_LEVEL_USER_SHIFT = LOG_LEVEL_USER_SHIFT; 5969 5970 /** 5971 * The major version number of the GLib library. 5972 * 5973 * Like #glib_major_version, but from the headers used at 5974 * application compile time, rather than from the library 5975 * linked against at application run time. 5976 */ 5977 enum MAJOR_VERSION = 2; 5978 alias GLIB_MAJOR_VERSION = MAJOR_VERSION; 5979 5980 /** 5981 * The maximum value which can be held in a #gint16. 5982 */ 5983 enum MAXINT16 = 32767; 5984 alias G_MAXINT16 = MAXINT16; 5985 5986 /** 5987 * The maximum value which can be held in a #gint32. 5988 */ 5989 enum MAXINT32 = 2147483647; 5990 alias G_MAXINT32 = MAXINT32; 5991 5992 /** 5993 * The maximum value which can be held in a #gint64. 5994 */ 5995 enum MAXINT64 = 9223372036854775807UL; 5996 alias G_MAXINT64 = MAXINT64; 5997 5998 /** 5999 * The maximum value which can be held in a #gint8. 6000 */ 6001 enum MAXINT8 = 127; 6002 alias G_MAXINT8 = MAXINT8; 6003 6004 /** 6005 * The maximum value which can be held in a #guint16. 6006 */ 6007 enum MAXUINT16 = 65535; 6008 alias G_MAXUINT16 = MAXUINT16; 6009 6010 /** 6011 * The maximum value which can be held in a #guint32. 6012 */ 6013 enum MAXUINT32 = 4294967295; 6014 alias G_MAXUINT32 = MAXUINT32; 6015 6016 /** 6017 * The maximum value which can be held in a #guint64. 6018 */ 6019 enum MAXUINT64 = 18446744073709551615UL; 6020 alias G_MAXUINT64 = MAXUINT64; 6021 6022 /** 6023 * The maximum value which can be held in a #guint8. 6024 */ 6025 enum MAXUINT8 = 255; 6026 alias G_MAXUINT8 = MAXUINT8; 6027 6028 /** 6029 * The micro version number of the GLib library. 6030 * 6031 * Like #gtk_micro_version, but from the headers used at 6032 * application compile time, rather than from the library 6033 * linked against at application run time. 6034 */ 6035 enum MICRO_VERSION = 0; 6036 alias GLIB_MICRO_VERSION = MICRO_VERSION; 6037 6038 /** 6039 * The minimum value which can be held in a #gint16. 6040 */ 6041 enum MININT16 = -32768; 6042 alias G_MININT16 = MININT16; 6043 6044 /** 6045 * The minimum value which can be held in a #gint32. 6046 */ 6047 enum MININT32 = -2147483648; 6048 alias G_MININT32 = MININT32; 6049 6050 /** 6051 * The minimum value which can be held in a #gint64. 6052 */ 6053 enum MININT64 = -9223372036854775808UL; 6054 alias G_MININT64 = MININT64; 6055 6056 /** 6057 * The minimum value which can be held in a #gint8. 6058 */ 6059 enum MININT8 = -128; 6060 alias G_MININT8 = MININT8; 6061 6062 /** 6063 * The minor version number of the GLib library. 6064 * 6065 * Like #gtk_minor_version, but from the headers used at 6066 * application compile time, rather than from the library 6067 * linked against at application run time. 6068 */ 6069 enum MINOR_VERSION = 64; 6070 alias GLIB_MINOR_VERSION = MINOR_VERSION; 6071 6072 enum MODULE_SUFFIX = "so"; 6073 alias G_MODULE_SUFFIX = MODULE_SUFFIX; 6074 6075 /** 6076 * If a long option in the main group has this name, it is not treated as a 6077 * regular option. Instead it collects all non-option arguments which would 6078 * otherwise be left in `argv`. The option must be of type 6079 * %G_OPTION_ARG_CALLBACK, %G_OPTION_ARG_STRING_ARRAY 6080 * or %G_OPTION_ARG_FILENAME_ARRAY. 6081 * 6082 * 6083 * Using #G_OPTION_REMAINING instead of simply scanning `argv` 6084 * for leftover arguments has the advantage that GOption takes care of 6085 * necessary encoding conversions for strings or filenames. 6086 */ 6087 enum OPTION_REMAINING = ""; 6088 alias G_OPTION_REMAINING = OPTION_REMAINING; 6089 6090 /** 6091 * Specifies one of the possible types of byte order 6092 * (currently unused). See #G_BYTE_ORDER. 6093 */ 6094 enum PDP_ENDIAN = 3412; 6095 alias G_PDP_ENDIAN = PDP_ENDIAN; 6096 6097 /** 6098 * A format specifier that can be used in printf()-style format strings 6099 * when printing a #GPid. 6100 */ 6101 enum PID_FORMAT = "i"; 6102 alias G_PID_FORMAT = PID_FORMAT; 6103 6104 /** 6105 * A format specifier that can be used in printf()-style format strings 6106 * when printing the @fd member of a #GPollFD. 6107 */ 6108 enum POLLFD_FORMAT = "%d"; 6109 alias G_POLLFD_FORMAT = POLLFD_FORMAT; 6110 6111 /** 6112 * Use this for default priority event sources. 6113 * 6114 * In GLib this priority is used when adding timeout functions 6115 * with g_timeout_add(). In GDK this priority is used for events 6116 * from the X server. 6117 */ 6118 enum PRIORITY_DEFAULT = 0; 6119 alias G_PRIORITY_DEFAULT = PRIORITY_DEFAULT; 6120 6121 /** 6122 * Use this for default priority idle functions. 6123 * 6124 * In GLib this priority is used when adding idle functions with 6125 * g_idle_add(). 6126 */ 6127 enum PRIORITY_DEFAULT_IDLE = 200; 6128 alias G_PRIORITY_DEFAULT_IDLE = PRIORITY_DEFAULT_IDLE; 6129 6130 /** 6131 * Use this for high priority event sources. 6132 * 6133 * It is not used within GLib or GTK+. 6134 */ 6135 enum PRIORITY_HIGH = -100; 6136 alias G_PRIORITY_HIGH = PRIORITY_HIGH; 6137 6138 /** 6139 * Use this for high priority idle functions. 6140 * 6141 * GTK+ uses #G_PRIORITY_HIGH_IDLE + 10 for resizing operations, 6142 * and #G_PRIORITY_HIGH_IDLE + 20 for redrawing operations. (This is 6143 * done to ensure that any pending resizes are processed before any 6144 * pending redraws, so that widgets are not redrawn twice unnecessarily.) 6145 */ 6146 enum PRIORITY_HIGH_IDLE = 100; 6147 alias G_PRIORITY_HIGH_IDLE = PRIORITY_HIGH_IDLE; 6148 6149 /** 6150 * Use this for very low priority background tasks. 6151 * 6152 * It is not used within GLib or GTK+. 6153 */ 6154 enum PRIORITY_LOW = 300; 6155 alias G_PRIORITY_LOW = PRIORITY_LOW; 6156 6157 enum SIZEOF_LONG = 8; 6158 alias GLIB_SIZEOF_LONG = SIZEOF_LONG; 6159 6160 enum SIZEOF_SIZE_T = 8; 6161 alias GLIB_SIZEOF_SIZE_T = SIZEOF_SIZE_T; 6162 6163 enum SIZEOF_SSIZE_T = 8; 6164 alias GLIB_SIZEOF_SSIZE_T = SIZEOF_SSIZE_T; 6165 6166 enum SIZEOF_VOID_P = 8; 6167 alias GLIB_SIZEOF_VOID_P = SIZEOF_VOID_P; 6168 6169 /** 6170 * Use this macro as the return value of a #GSourceFunc to leave 6171 * the #GSource in the main loop. 6172 */ 6173 enum SOURCE_CONTINUE = true; 6174 alias G_SOURCE_CONTINUE = SOURCE_CONTINUE; 6175 6176 /** 6177 * Use this macro as the return value of a #GSourceFunc to remove 6178 * the #GSource from the main loop. 6179 */ 6180 enum SOURCE_REMOVE = false; 6181 alias G_SOURCE_REMOVE = SOURCE_REMOVE; 6182 6183 /** 6184 * The standard delimiters, used in g_strdelimit(). 6185 */ 6186 enum STR_DELIMITERS = "_-|> <."; 6187 alias G_STR_DELIMITERS = STR_DELIMITERS; 6188 6189 enum SYSDEF_AF_INET = 2; 6190 alias GLIB_SYSDEF_AF_INET = SYSDEF_AF_INET; 6191 6192 enum SYSDEF_AF_INET6 = 10; 6193 alias GLIB_SYSDEF_AF_INET6 = SYSDEF_AF_INET6; 6194 6195 enum SYSDEF_AF_UNIX = 1; 6196 alias GLIB_SYSDEF_AF_UNIX = SYSDEF_AF_UNIX; 6197 6198 enum SYSDEF_MSG_DONTROUTE = 4; 6199 alias GLIB_SYSDEF_MSG_DONTROUTE = SYSDEF_MSG_DONTROUTE; 6200 6201 enum SYSDEF_MSG_OOB = 1; 6202 alias GLIB_SYSDEF_MSG_OOB = SYSDEF_MSG_OOB; 6203 6204 enum SYSDEF_MSG_PEEK = 2; 6205 alias GLIB_SYSDEF_MSG_PEEK = SYSDEF_MSG_PEEK; 6206 6207 /** 6208 * Creates a unique temporary directory for each unit test and uses 6209 * g_set_user_dirs() to set XDG directories to point into subdirectories of it 6210 * for the duration of the unit test. The directory tree is cleaned up after the 6211 * test finishes successfully. Note that this doesn’t take effect until 6212 * g_test_run() is called, so calls to (for example) g_get_user_home_dir() will 6213 * return the system-wide value when made in a test program’s main() function. 6214 * 6215 * The following functions will return subdirectories of the temporary directory 6216 * when this option is used. The specific subdirectory paths in use are not 6217 * guaranteed to be stable API — always use a getter function to retrieve them. 6218 * 6219 * - g_get_home_dir() 6220 * - g_get_user_cache_dir() 6221 * - g_get_system_config_dirs() 6222 * - g_get_user_config_dir() 6223 * - g_get_system_data_dirs() 6224 * - g_get_user_data_dir() 6225 * - g_get_user_runtime_dir() 6226 * 6227 * The subdirectories may not be created by the test harness; as with normal 6228 * calls to functions like g_get_user_cache_dir(), the caller must be prepared 6229 * to create the directory if it doesn’t exist. 6230 */ 6231 enum TEST_OPTION_ISOLATE_DIRS = "isolate_dirs"; 6232 alias G_TEST_OPTION_ISOLATE_DIRS = TEST_OPTION_ISOLATE_DIRS; 6233 6234 /** 6235 * Evaluates to a time span of one day. 6236 */ 6237 enum TIME_SPAN_DAY = 86400000000UL; 6238 alias G_TIME_SPAN_DAY = TIME_SPAN_DAY; 6239 6240 /** 6241 * Evaluates to a time span of one hour. 6242 */ 6243 enum TIME_SPAN_HOUR = 3600000000UL; 6244 alias G_TIME_SPAN_HOUR = TIME_SPAN_HOUR; 6245 6246 /** 6247 * Evaluates to a time span of one millisecond. 6248 */ 6249 enum TIME_SPAN_MILLISECOND = 1000UL; 6250 alias G_TIME_SPAN_MILLISECOND = TIME_SPAN_MILLISECOND; 6251 6252 /** 6253 * Evaluates to a time span of one minute. 6254 */ 6255 enum TIME_SPAN_MINUTE = 60000000UL; 6256 alias G_TIME_SPAN_MINUTE = TIME_SPAN_MINUTE; 6257 6258 /** 6259 * Evaluates to a time span of one second. 6260 */ 6261 enum TIME_SPAN_SECOND = 1000000UL; 6262 alias G_TIME_SPAN_SECOND = TIME_SPAN_SECOND; 6263 6264 /** 6265 * The maximum length (in codepoints) of a compatibility or canonical 6266 * decomposition of a single Unicode character. 6267 * 6268 * This is as defined by Unicode 6.1. 6269 */ 6270 enum UNICHAR_MAX_DECOMPOSITION_LENGTH = 18; 6271 alias G_UNICHAR_MAX_DECOMPOSITION_LENGTH = UNICHAR_MAX_DECOMPOSITION_LENGTH; 6272 6273 /** 6274 * Generic delimiters characters as defined in RFC 3986. Includes ":/?#[]@". 6275 */ 6276 enum URI_RESERVED_CHARS_GENERIC_DELIMITERS = ":/?#[]@"; 6277 alias G_URI_RESERVED_CHARS_GENERIC_DELIMITERS = URI_RESERVED_CHARS_GENERIC_DELIMITERS; 6278 6279 /** 6280 * Subcomponent delimiter characters as defined in RFC 3986. Includes "!$&'()*+,;=". 6281 */ 6282 enum URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS = "!$&'()*+,;="; 6283 alias G_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS = URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS; 6284 6285 /** 6286 * Number of microseconds in one second (1 million). 6287 * This macro is provided for code readability. 6288 */ 6289 enum USEC_PER_SEC = 1000000; 6290 alias G_USEC_PER_SEC = USEC_PER_SEC; 6291 6292 enum VA_COPY_AS_ARRAY = 1; 6293 alias G_VA_COPY_AS_ARRAY = VA_COPY_AS_ARRAY; 6294 6295 enum WIN32_MSG_HANDLE = 19981206; 6296 alias G_WIN32_MSG_HANDLE = WIN32_MSG_HANDLE;