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