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 gtk.c.types;
26 
27 public import cairo.c.types;
28 public import gdk.c.types;
29 public import gdkpixbuf.c.types;
30 public import gio.c.types;
31 public import glib.c.types;
32 public import gobject.c.types;
33 public import graphene.c.types;
34 public import gsk.c.types;
35 public import pango.c.types;
36 
37 
38 /**
39  * The rectangle representing the area allocated for a widget by its parent.
40  */
41 public alias GdkRectangle GtkAllocation;
42 
43 /**
44  * The possible values for the %GTK_ACCESSIBLE_PROPERTY_AUTOCOMPLETE
45  * accessible property.
46  */
47 public enum GtkAccessibleAutocomplete
48 {
49 	/**
50 	 * Automatic suggestions are not displayed.
51 	 */
52 	NONE = 0,
53 	/**
54 	 * When a user is providing input, text
55 	 * suggesting one way to complete the provided input may be dynamically
56 	 * inserted after the caret.
57 	 */
58 	INLINE = 1,
59 	/**
60 	 * When a user is providing input, an element
61 	 * containing a collection of values that could complete the provided input
62 	 * may be displayed.
63 	 */
64 	LIST = 2,
65 	/**
66 	 * When a user is providing input, an element
67 	 * containing a collection of values that could complete the provided input
68 	 * may be displayed. If displayed, one value in the collection is automatically
69 	 * selected, and the text needed to complete the automatically selected value
70 	 * appears after the caret in the input.
71 	 */
72 	BOTH = 3,
73 }
74 alias GtkAccessibleAutocomplete AccessibleAutocomplete;
75 
76 /**
77  * The possible values for the %GTK_ACCESSIBLE_STATE_INVALID
78  * accessible state.
79  *
80  * Note that the %GTK_ACCESSIBLE_INVALID_FALSE and
81  * %GTK_ACCESSIBLE_INVALID_TRUE have the same values
82  * as %FALSE and %TRUE.
83  */
84 public enum GtkAccessibleInvalidState
85 {
86 	/**
87 	 * There are no detected errors in the value
88 	 */
89 	FALSE = 0,
90 	/**
91 	 * The value entered by the user has failed validation
92 	 */
93 	TRUE = 1,
94 	/**
95 	 * A grammatical error was detected
96 	 */
97 	GRAMMAR = 2,
98 	/**
99 	 * A spelling error was detected
100 	 */
101 	SPELLING = 3,
102 }
103 alias GtkAccessibleInvalidState AccessibleInvalidState;
104 
105 /**
106  * The possible accessible properties of a `GtkAccessible`.
107  */
108 public enum GtkAccessibleProperty
109 {
110 	/**
111 	 * Indicates whether inputting text
112 	 * could trigger display of one or more predictions of the user's intended
113 	 * value for a combobox, searchbox, or textbox and specifies how predictions
114 	 * would be presented if they were made. Value type: #GtkAccessibleAutocomplete
115 	 */
116 	AUTOCOMPLETE = 0,
117 	/**
118 	 * Defines a string value that describes
119 	 * or annotates the current element. Value type: string
120 	 */
121 	DESCRIPTION = 1,
122 	/**
123 	 * Indicates the availability and type of
124 	 * interactive popup element, such as menu or dialog, that can be triggered
125 	 * by an element.
126 	 */
127 	HAS_POPUP = 2,
128 	/**
129 	 * Indicates keyboard shortcuts that an
130 	 * author has implemented to activate or give focus to an element. Value type:
131 	 * string
132 	 */
133 	KEY_SHORTCUTS = 3,
134 	/**
135 	 * Defines a string value that labels the current
136 	 * element. Value type: string
137 	 */
138 	LABEL = 4,
139 	/**
140 	 * Defines the hierarchical level of an element
141 	 * within a structure. Value type: integer
142 	 */
143 	LEVEL = 5,
144 	/**
145 	 * Indicates whether an element is modal when
146 	 * displayed. Value type: boolean
147 	 */
148 	MODAL = 6,
149 	/**
150 	 * Indicates whether a text box accepts
151 	 * multiple lines of input or only a single line. Value type: boolean
152 	 */
153 	MULTI_LINE = 7,
154 	/**
155 	 * Indicates that the user may select
156 	 * more than one item from the current selectable descendants. Value type:
157 	 * boolean
158 	 */
159 	MULTI_SELECTABLE = 8,
160 	/**
161 	 * Indicates whether the element's
162 	 * orientation is horizontal, vertical, or unknown/ambiguous. Value type:
163 	 * #GtkOrientation
164 	 */
165 	ORIENTATION = 9,
166 	/**
167 	 * Defines a short hint (a word or short
168 	 * phrase) intended to aid the user with data entry when the control has no
169 	 * value. A hint could be a sample value or a brief description of the expected
170 	 * format. Value type: string
171 	 */
172 	PLACEHOLDER = 10,
173 	/**
174 	 * Indicates that the element is not editable,
175 	 * but is otherwise operable. Value type: boolean
176 	 */
177 	READ_ONLY = 11,
178 	/**
179 	 * Indicates that user input is required on
180 	 * the element before a form may be submitted. Value type: boolean
181 	 */
182 	REQUIRED = 12,
183 	/**
184 	 * Defines a human-readable,
185 	 * author-localized description for the role of an element. Value type: string
186 	 */
187 	ROLE_DESCRIPTION = 13,
188 	/**
189 	 * Indicates if items in a table or grid are
190 	 * sorted in ascending or descending order. Possible property values are in
191 	 * the #GtkAccessibleSort enumeration. Value type: #GtkAccessibleSort
192 	 */
193 	SORT = 14,
194 	/**
195 	 * Defines the maximum allowed value for a
196 	 * range widget. Value type: double
197 	 */
198 	VALUE_MAX = 15,
199 	/**
200 	 * Defines the minimum allowed value for a
201 	 * range widget. Value type: double
202 	 */
203 	VALUE_MIN = 16,
204 	/**
205 	 * Defines the current value for a range widget.
206 	 * Value type: double
207 	 */
208 	VALUE_NOW = 17,
209 	/**
210 	 * Defines the human readable text alternative
211 	 * of aria-valuenow for a range widget. Value type: string
212 	 */
213 	VALUE_TEXT = 18,
214 }
215 alias GtkAccessibleProperty AccessibleProperty;
216 
217 /**
218  * The possible accessible relations of a `GtkAccessible`.
219  *
220  * Accessible relations can be references to other widgets,
221  * integers or strings.
222  */
223 public enum GtkAccessibleRelation
224 {
225 	/**
226 	 * Identifies the currently active
227 	 * element when focus is on a composite widget, combobox, textbox, group,
228 	 * or application. Value type: reference
229 	 */
230 	ACTIVE_DESCENDANT = 0,
231 	/**
232 	 * Defines the total number of columns
233 	 * in a table, grid, or treegrid. Value type: integer
234 	 */
235 	COL_COUNT = 1,
236 	/**
237 	 * Defines an element's column index or
238 	 * position with respect to the total number of columns within a table,
239 	 * grid, or treegrid. Value type: integer
240 	 */
241 	COL_INDEX = 2,
242 	/**
243 	 * Defines a human readable text
244 	 * alternative of %GTK_ACCESSIBLE_RELATION_COL_INDEX. Value type: string
245 	 */
246 	COL_INDEX_TEXT = 3,
247 	/**
248 	 * Defines the number of columns spanned
249 	 * by a cell or gridcell within a table, grid, or treegrid. Value type: integer
250 	 */
251 	COL_SPAN = 4,
252 	/**
253 	 * Identifies the element (or elements) whose
254 	 * contents or presence are controlled by the current element. Value type: reference
255 	 */
256 	CONTROLS = 5,
257 	/**
258 	 * Identifies the element (or elements)
259 	 * that describes the object. Value type: reference
260 	 */
261 	DESCRIBED_BY = 6,
262 	/**
263 	 * Identifies the element (or elements) that
264 	 * provide additional information related to the object. Value type: reference
265 	 */
266 	DETAILS = 7,
267 	/**
268 	 * Identifies the element that provides
269 	 * an error message for an object. Value type: reference
270 	 */
271 	ERROR_MESSAGE = 8,
272 	/**
273 	 * Identifies the next element (or elements)
274 	 * in an alternate reading order of content which, at the user's discretion,
275 	 * allows assistive technology to override the general default of reading in
276 	 * document source order. Value type: reference
277 	 */
278 	FLOW_TO = 9,
279 	/**
280 	 * Identifies the element (or elements)
281 	 * that labels the current element. Value type: reference
282 	 */
283 	LABELLED_BY = 10,
284 	/**
285 	 * Identifies an element (or elements) in order
286 	 * to define a visual, functional, or contextual parent/child relationship
287 	 * between elements where the widget hierarchy cannot be used to represent
288 	 * the relationship. Value type: reference
289 	 */
290 	OWNS = 11,
291 	/**
292 	 * Defines an element's number or position
293 	 * in the current set of listitems or treeitems. Value type: integer
294 	 */
295 	POS_IN_SET = 12,
296 	/**
297 	 * Defines the total number of rows in a table,
298 	 * grid, or treegrid. Value type: integer
299 	 */
300 	ROW_COUNT = 13,
301 	/**
302 	 * Defines an element's row index or position
303 	 * with respect to the total number of rows within a table, grid, or treegrid.
304 	 * Value type: integer
305 	 */
306 	ROW_INDEX = 14,
307 	/**
308 	 * Defines a human readable text
309 	 * alternative of aria-rowindex. Value type: string
310 	 */
311 	ROW_INDEX_TEXT = 15,
312 	/**
313 	 * Defines the number of rows spanned by a
314 	 * cell or gridcell within a table, grid, or treegrid. Value type: integer
315 	 */
316 	ROW_SPAN = 16,
317 	/**
318 	 * Defines the number of items in the current
319 	 * set of listitems or treeitems. Value type: integer
320 	 */
321 	SET_SIZE = 17,
322 }
323 alias GtkAccessibleRelation AccessibleRelation;
324 
325 /**
326  * The accessible role for a `GtkAccessible` implementation.
327  *
328  * Abstract roles are only used as part of the ontology; application
329  * developers must not use abstract roles in their code.
330  */
331 public enum GtkAccessibleRole
332 {
333 	/**
334 	 * An element with important, and usually
335 	 * time-sensitive, information
336 	 */
337 	ALERT = 0,
338 	/**
339 	 * A type of dialog that contains an
340 	 * alert message
341 	 */
342 	ALERT_DIALOG = 1,
343 	/**
344 	 * Unused
345 	 */
346 	BANNER = 2,
347 	/**
348 	 * An input element that allows for
349 	 * user-triggered actions when clicked or pressed
350 	 */
351 	BUTTON = 3,
352 	/**
353 	 * Unused
354 	 */
355 	CAPTION = 4,
356 	/**
357 	 * Unused
358 	 */
359 	CELL = 5,
360 	/**
361 	 * A checkable input element that has
362 	 * three possible values: `true`, `false`, or `mixed`
363 	 */
364 	CHECKBOX = 6,
365 	/**
366 	 * A header in a columned list.
367 	 */
368 	COLUMN_HEADER = 7,
369 	/**
370 	 * An input that controls another element,
371 	 * such as a list or a grid, that can dynamically pop up to help the user
372 	 * set the value of the input
373 	 */
374 	COMBO_BOX = 8,
375 	/**
376 	 * Abstract role.
377 	 */
378 	COMMAND = 9,
379 	/**
380 	 * Abstract role.
381 	 */
382 	COMPOSITE = 10,
383 	/**
384 	 * A dialog is a window that is designed to interrupt
385 	 * the current processing of an application in order to prompt the user to enter
386 	 * information or require a response.
387 	 */
388 	DIALOG = 11,
389 	/**
390 	 * Unused
391 	 */
392 	DOCUMENT = 12,
393 	/**
394 	 * Unused
395 	 */
396 	FEED = 13,
397 	/**
398 	 * Unused
399 	 */
400 	FORM = 14,
401 	/**
402 	 * Unused
403 	 */
404 	GENERIC = 15,
405 	/**
406 	 * A grid of items.
407 	 */
408 	GRID = 16,
409 	/**
410 	 * An item in a grid or tree grid.
411 	 */
412 	GRID_CELL = 17,
413 	/**
414 	 * An element that groups multiple widgets. GTK uses
415 	 * this role for various containers, like #GtkBox, #GtkViewport, and #GtkHeaderBar.
416 	 */
417 	GROUP = 18,
418 	/**
419 	 * Unused
420 	 */
421 	HEADING = 19,
422 	/**
423 	 * An image.
424 	 */
425 	IMG = 20,
426 	/**
427 	 * Abstract role.
428 	 */
429 	INPUT = 21,
430 	/**
431 	 * A visible name or caption for a user interface component.
432 	 */
433 	LABEL = 22,
434 	/**
435 	 * Abstract role.
436 	 */
437 	LANDMARK = 23,
438 	/**
439 	 * Unused
440 	 */
441 	LEGEND = 24,
442 	/**
443 	 * A clickable link.
444 	 */
445 	LINK = 25,
446 	/**
447 	 * A list of items.
448 	 */
449 	LIST = 26,
450 	/**
451 	 * Unused.
452 	 */
453 	LIST_BOX = 27,
454 	/**
455 	 * An item in a list.
456 	 */
457 	LIST_ITEM = 28,
458 	/**
459 	 * Unused
460 	 */
461 	LOG = 29,
462 	/**
463 	 * Unused
464 	 */
465 	MAIN = 30,
466 	/**
467 	 * Unused
468 	 */
469 	MARQUEE = 31,
470 	/**
471 	 * Unused
472 	 */
473 	MATH = 32,
474 	/**
475 	 * An element that represents a value within a known range.
476 	 */
477 	METER = 33,
478 	/**
479 	 * A menu.
480 	 */
481 	MENU = 34,
482 	/**
483 	 * A menubar.
484 	 */
485 	MENU_BAR = 35,
486 	/**
487 	 * An item in a menu.
488 	 */
489 	MENU_ITEM = 36,
490 	/**
491 	 * A check item in a menu.
492 	 */
493 	MENU_ITEM_CHECKBOX = 37,
494 	/**
495 	 * A radio item in a menu.
496 	 */
497 	MENU_ITEM_RADIO = 38,
498 	/**
499 	 * Unused
500 	 */
501 	NAVIGATION = 39,
502 	/**
503 	 * An element that is not represented to accessibility technologies.
504 	 */
505 	NONE = 40,
506 	/**
507 	 * Unused
508 	 */
509 	NOTE = 41,
510 	/**
511 	 * Unused
512 	 */
513 	OPTION = 42,
514 	/**
515 	 * An element that is not represented to accessibility technologies.
516 	 */
517 	PRESENTATION = 43,
518 	/**
519 	 * An element that displays the progress
520 	 * status for tasks that take a long time.
521 	 */
522 	PROGRESS_BAR = 44,
523 	/**
524 	 * A checkable input in a group of radio roles,
525 	 * only one of which can be checked at a time.
526 	 */
527 	RADIO = 45,
528 	/**
529 	 * Unused
530 	 */
531 	RADIO_GROUP = 46,
532 	/**
533 	 * Abstract role.
534 	 */
535 	RANGE = 47,
536 	/**
537 	 * Unused
538 	 */
539 	REGION = 48,
540 	/**
541 	 * A row in a columned list.
542 	 */
543 	ROW = 49,
544 	/**
545 	 * Unused
546 	 */
547 	ROW_GROUP = 50,
548 	/**
549 	 * Unused
550 	 */
551 	ROW_HEADER = 51,
552 	/**
553 	 * A graphical object that controls the scrolling
554 	 * of content within a viewing area, regardless of whether the content is fully
555 	 * displayed within the viewing area.
556 	 */
557 	SCROLLBAR = 52,
558 	/**
559 	 * Unused
560 	 */
561 	SEARCH = 53,
562 	/**
563 	 * A type of textbox intended for specifying
564 	 * search criteria.
565 	 */
566 	SEARCH_BOX = 54,
567 	/**
568 	 * Abstract role.
569 	 */
570 	SECTION = 55,
571 	/**
572 	 * Abstract role.
573 	 */
574 	SECTION_HEAD = 56,
575 	/**
576 	 * Abstract role.
577 	 */
578 	SELECT = 57,
579 	/**
580 	 * A divider that separates and distinguishes
581 	 * sections of content or groups of menuitems.
582 	 */
583 	SEPARATOR = 58,
584 	/**
585 	 * A user input where the user selects a value
586 	 * from within a given range.
587 	 */
588 	SLIDER = 59,
589 	/**
590 	 * A form of range that expects the user to
591 	 * select from among discrete choices.
592 	 */
593 	SPIN_BUTTON = 60,
594 	/**
595 	 * Unused
596 	 */
597 	STATUS = 61,
598 	/**
599 	 * Abstract role.
600 	 */
601 	STRUCTURE = 62,
602 	/**
603 	 * A type of checkbox that represents on/off values,
604 	 * as opposed to checked/unchecked values.
605 	 */
606 	SWITCH = 63,
607 	/**
608 	 * An item in a list of tab used for switching pages.
609 	 */
610 	TAB = 64,
611 	/**
612 	 * Unused
613 	 */
614 	TABLE = 65,
615 	/**
616 	 * A list of tabs for switching pages.
617 	 */
618 	TAB_LIST = 66,
619 	/**
620 	 * A page in a notebook or stack.
621 	 */
622 	TAB_PANEL = 67,
623 	/**
624 	 * A type of input that allows free-form text
625 	 * as its value.
626 	 */
627 	TEXT_BOX = 68,
628 	/**
629 	 * Unused
630 	 */
631 	TIME = 69,
632 	/**
633 	 * Unused
634 	 */
635 	TIMER = 70,
636 	/**
637 	 * Unused
638 	 */
639 	TOOLBAR = 71,
640 	/**
641 	 * Unused
642 	 */
643 	TOOLTIP = 72,
644 	/**
645 	 * Unused
646 	 */
647 	TREE = 73,
648 	/**
649 	 * A treeview-like, columned list.
650 	 */
651 	TREE_GRID = 74,
652 	/**
653 	 * Unused
654 	 */
655 	TREE_ITEM = 75,
656 	/**
657 	 * An interactive component of a graphical user
658 	 * interface. This is the role that GTK uses by default for widgets.
659 	 */
660 	WIDGET = 76,
661 	/**
662 	 * An application window.
663 	 */
664 	WINDOW = 77,
665 }
666 alias GtkAccessibleRole AccessibleRole;
667 
668 /**
669  * The possible values for the %GTK_ACCESSIBLE_PROPERTY_SORT
670  * accessible property.
671  */
672 public enum GtkAccessibleSort
673 {
674 	/**
675 	 * There is no defined sort applied to the column.
676 	 */
677 	NONE = 0,
678 	/**
679 	 * Items are sorted in ascending order by this column.
680 	 */
681 	ASCENDING = 1,
682 	/**
683 	 * Items are sorted in descending order by this column.
684 	 */
685 	DESCENDING = 2,
686 	/**
687 	 * A sort algorithm other than ascending or
688 	 * descending has been applied.
689 	 */
690 	OTHER = 3,
691 }
692 alias GtkAccessibleSort AccessibleSort;
693 
694 /**
695  * The possible accessible states of a `GtkAccessible`.
696  */
697 public enum GtkAccessibleState
698 {
699 	/**
700 	 * A “busy” state. This state has boolean values
701 	 */
702 	BUSY = 0,
703 	/**
704 	 * A “checked” state; indicates the current
705 	 * state of a #GtkCheckButton. Value type: #GtkAccessibleTristate
706 	 */
707 	CHECKED = 1,
708 	/**
709 	 * A “disabled” state; corresponds to the
710 	 * #GtkWidget:sensitive property on #GtkWidget. It indicates a UI element
711 	 * that is perceivable, but not editable or operable. Value type: boolean
712 	 */
713 	DISABLED = 2,
714 	/**
715 	 * An “expanded” state; corresponds to the
716 	 * #GtkExpander:expanded property on #GtkExpander. Value type: boolean
717 	 * or undefined
718 	 */
719 	EXPANDED = 3,
720 	/**
721 	 * A “hidden” state; corresponds to the
722 	 * #GtkWidget:visible property on #GtkWidget. You can use this state
723 	 * explicitly on UI elements that should not be exposed to an assistive
724 	 * technology. Value type: boolean
725 	 * See also: %GTK_ACCESSIBLE_STATE_DISABLED
726 	 */
727 	HIDDEN = 4,
728 	/**
729 	 * An “invalid” state; set when a widget
730 	 * is showing an error. Value type: #GtkAccessibleInvalidState
731 	 */
732 	INVALID = 5,
733 	/**
734 	 * A “pressed” state; indicates the current
735 	 * state of a #GtkToggleButton. Value type: #GtkAccessibleTristate
736 	 * enumeration
737 	 */
738 	PRESSED = 6,
739 	/**
740 	 * A “selected” state; set when a widget
741 	 * is selected. Value type: boolean or undefined
742 	 */
743 	SELECTED = 7,
744 }
745 alias GtkAccessibleState AccessibleState;
746 
747 /**
748  * The possible values for the %GTK_ACCESSIBLE_STATE_PRESSED
749  * accessible state.
750  *
751  * Note that the %GTK_ACCESSIBLE_TRISTATE_FALSE and
752  * %GTK_ACCESSIBLE_TRISTATE_TRUE have the same values
753  * as %FALSE and %TRUE.
754  */
755 public enum GtkAccessibleTristate
756 {
757 	/**
758 	 * The state is `false`
759 	 */
760 	FALSE = 0,
761 	/**
762 	 * The state is `true`
763 	 */
764 	TRUE = 1,
765 	/**
766 	 * The state is `mixed`
767 	 */
768 	MIXED = 2,
769 }
770 alias GtkAccessibleTristate AccessibleTristate;
771 
772 /**
773  * Controls how a widget deals with extra space in a single dimension.
774  *
775  * Alignment only matters if the widget receives a “too large” allocation,
776  * for example if you packed the widget with the [property@Gtk.Widget:hexpand]
777  * property inside a `GtkBox`, then the widget might get extra space.
778  * If you have for example a 16x16 icon inside a 32x32 space, the icon
779  * could be scaled and stretched, it could be centered, or it could be
780  * positioned to one side of the space.
781  *
782  * Note that in horizontal context %GTK_ALIGN_START and %GTK_ALIGN_END
783  * are interpreted relative to text direction.
784  *
785  * %GTK_ALIGN_BASELINE support is optional for containers and widgets, and
786  * it is only supported for vertical alignment.  When it's not supported by
787  * a child or a container it is treated as %GTK_ALIGN_FILL.
788  */
789 public enum GtkAlign
790 {
791 	/**
792 	 * stretch to fill all space if possible, center if
793 	 * no meaningful way to stretch
794 	 */
795 	FILL = 0,
796 	/**
797 	 * snap to left or top side, leaving space on right
798 	 * or bottom
799 	 */
800 	START = 1,
801 	/**
802 	 * snap to right or bottom side, leaving space on left
803 	 * or top
804 	 */
805 	END = 2,
806 	/**
807 	 * center natural width of widget inside the
808 	 * allocation
809 	 */
810 	CENTER = 3,
811 	/**
812 	 * align the widget according to the baseline. See
813 	 * #GtkWidget
814 	 */
815 	BASELINE = 4,
816 }
817 alias GtkAlign Align;
818 
819 /**
820  * Types of user actions that may be blocked by `GtkApplication`.
821  *
822  * See [method@Gtk.Application.inhibit].
823  */
824 public enum GtkApplicationInhibitFlags
825 {
826 	/**
827 	 * Inhibit ending the user session
828 	 * by logging out or by shutting down the computer
829 	 */
830 	LOGOUT = 1,
831 	/**
832 	 * Inhibit user switching
833 	 */
834 	SWITCH = 2,
835 	/**
836 	 * Inhibit suspending the
837 	 * session or computer
838 	 */
839 	SUSPEND = 4,
840 	/**
841 	 * Inhibit the session being
842 	 * marked as idle (and possibly locked)
843 	 */
844 	IDLE = 8,
845 }
846 alias GtkApplicationInhibitFlags ApplicationInhibitFlags;
847 
848 /**
849  * Used to indicate the direction in which an arrow should point.
850  */
851 public enum GtkArrowType
852 {
853 	/**
854 	 * Represents an upward pointing arrow.
855 	 */
856 	UP = 0,
857 	/**
858 	 * Represents a downward pointing arrow.
859 	 */
860 	DOWN = 1,
861 	/**
862 	 * Represents a left pointing arrow.
863 	 */
864 	LEFT = 2,
865 	/**
866 	 * Represents a right pointing arrow.
867 	 */
868 	RIGHT = 3,
869 	/**
870 	 * No arrow.
871 	 */
872 	NONE = 4,
873 }
874 alias GtkArrowType ArrowType;
875 
876 /**
877  * Determines the page role inside a `GtkAssistant`.
878  *
879  * The role is used to handle buttons sensitivity and visibility.
880  *
881  * Note that an assistant needs to end its page flow with a page of type
882  * %GTK_ASSISTANT_PAGE_CONFIRM, %GTK_ASSISTANT_PAGE_SUMMARY or
883  * %GTK_ASSISTANT_PAGE_PROGRESS to be correct.
884  *
885  * The Cancel button will only be shown if the page isn’t “committed”.
886  * See gtk_assistant_commit() for details.
887  */
888 public enum GtkAssistantPageType
889 {
890 	/**
891 	 * The page has regular contents. Both the
892 	 * Back and forward buttons will be shown.
893 	 */
894 	CONTENT = 0,
895 	/**
896 	 * The page contains an introduction to the
897 	 * assistant task. Only the Forward button will be shown if there is a
898 	 * next page.
899 	 */
900 	INTRO = 1,
901 	/**
902 	 * The page lets the user confirm or deny the
903 	 * changes. The Back and Apply buttons will be shown.
904 	 */
905 	CONFIRM = 2,
906 	/**
907 	 * The page informs the user of the changes
908 	 * done. Only the Close button will be shown.
909 	 */
910 	SUMMARY = 3,
911 	/**
912 	 * Used for tasks that take a long time to
913 	 * complete, blocks the assistant until the page is marked as complete.
914 	 * Only the back button will be shown.
915 	 */
916 	PROGRESS = 4,
917 	/**
918 	 * Used for when other page types are not
919 	 * appropriate. No buttons will be shown, and the application must
920 	 * add its own buttons through gtk_assistant_add_action_widget().
921 	 */
922 	CUSTOM = 5,
923 }
924 alias GtkAssistantPageType AssistantPageType;
925 
926 /**
927  * Baseline position in a row of widgets.
928  *
929  * Whenever a container has some form of natural row it may align
930  * children in that row along a common typographical baseline. If
931  * the amount of vertical space in the row is taller than the total
932  * requested height of the baseline-aligned children then it can use a
933  * `GtkBaselinePosition` to select where to put the baseline inside the
934  * extra available space.
935  */
936 public enum GtkBaselinePosition
937 {
938 	/**
939 	 * Align the baseline at the top
940 	 */
941 	TOP = 0,
942 	/**
943 	 * Center the baseline
944 	 */
945 	CENTER = 1,
946 	/**
947 	 * Align the baseline at the bottom
948 	 */
949 	BOTTOM = 2,
950 }
951 alias GtkBaselinePosition BaselinePosition;
952 
953 /**
954  * Describes how the border of a UI element should be rendered.
955  */
956 public enum GtkBorderStyle
957 {
958 	/**
959 	 * No visible border
960 	 */
961 	NONE = 0,
962 	/**
963 	 * Same as %GTK_BORDER_STYLE_NONE
964 	 */
965 	HIDDEN = 1,
966 	/**
967 	 * A single line segment
968 	 */
969 	SOLID = 2,
970 	/**
971 	 * Looks as if the content is sunken into the canvas
972 	 */
973 	INSET = 3,
974 	/**
975 	 * Looks as if the content is coming out of the canvas
976 	 */
977 	OUTSET = 4,
978 	/**
979 	 * A series of round dots
980 	 */
981 	DOTTED = 5,
982 	/**
983 	 * A series of square-ended dashes
984 	 */
985 	DASHED = 6,
986 	/**
987 	 * Two parallel lines with some space between them
988 	 */
989 	DOUBLE = 7,
990 	/**
991 	 * Looks as if it were carved in the canvas
992 	 */
993 	GROOVE = 8,
994 	/**
995 	 * Looks as if it were coming out of the canvas
996 	 */
997 	RIDGE = 9,
998 }
999 alias GtkBorderStyle BorderStyle;
1000 
1001 /**
1002  * The list of flags that can be passed to gtk_builder_create_closure().
1003  *
1004  * New values may be added in the future for new features, so external
1005  * implementations of [interface@Gtk.BuilderScope] should test the flags
1006  * for unknown values and raise a %GTK_BUILDER_ERROR_INVALID_ATTRIBUTE error
1007  * when they encounter one.
1008  */
1009 public enum GtkBuilderClosureFlags
1010 {
1011 	/**
1012 	 * The closure should be created swapped. See
1013 	 * g_cclosure_new_swap() for details.
1014 	 */
1015 	SWAPPED = 1,
1016 }
1017 alias GtkBuilderClosureFlags BuilderClosureFlags;
1018 
1019 /**
1020  * Error codes that identify various errors that can occur while using
1021  * #GtkBuilder.
1022  */
1023 public enum GtkBuilderError
1024 {
1025 	/**
1026 	 * A type-func attribute didn’t name
1027 	 * a function that returns a #GType.
1028 	 */
1029 	INVALID_TYPE_FUNCTION = 0,
1030 	/**
1031 	 * The input contained a tag that #GtkBuilder
1032 	 * can’t handle.
1033 	 */
1034 	UNHANDLED_TAG = 1,
1035 	/**
1036 	 * An attribute that is required by
1037 	 * #GtkBuilder was missing.
1038 	 */
1039 	MISSING_ATTRIBUTE = 2,
1040 	/**
1041 	 * #GtkBuilder found an attribute that
1042 	 * it doesn’t understand.
1043 	 */
1044 	INVALID_ATTRIBUTE = 3,
1045 	/**
1046 	 * #GtkBuilder found a tag that
1047 	 * it doesn’t understand.
1048 	 */
1049 	INVALID_TAG = 4,
1050 	/**
1051 	 * A required property value was
1052 	 * missing.
1053 	 */
1054 	MISSING_PROPERTY_VALUE = 5,
1055 	/**
1056 	 * #GtkBuilder couldn’t parse
1057 	 * some attribute value.
1058 	 */
1059 	INVALID_VALUE = 6,
1060 	/**
1061 	 * The input file requires a newer version
1062 	 * of GTK.
1063 	 */
1064 	VERSION_MISMATCH = 7,
1065 	/**
1066 	 * An object id occurred twice.
1067 	 */
1068 	DUPLICATE_ID = 8,
1069 	/**
1070 	 * A specified object type is of the same type or
1071 	 * derived from the type of the composite class being extended with builder XML.
1072 	 */
1073 	OBJECT_TYPE_REFUSED = 9,
1074 	/**
1075 	 * The wrong type was specified in a composite class’s template XML
1076 	 */
1077 	TEMPLATE_MISMATCH = 10,
1078 	/**
1079 	 * The specified property is unknown for the object class.
1080 	 */
1081 	INVALID_PROPERTY = 11,
1082 	/**
1083 	 * The specified signal is unknown for the object class.
1084 	 */
1085 	INVALID_SIGNAL = 12,
1086 	/**
1087 	 * An object id is unknown.
1088 	 */
1089 	INVALID_ID = 13,
1090 	/**
1091 	 * A function could not be found. This often happens
1092 	 * when symbols are set to be kept private. Compiling code with -rdynamic or using the
1093 	 * `gmodule-export-2.0` pkgconfig module can fix this problem.
1094 	 */
1095 	INVALID_FUNCTION = 14,
1096 }
1097 alias GtkBuilderError BuilderError;
1098 
1099 /**
1100  * Prebuilt sets of buttons for `GtkDialog`.
1101  *
1102  * If none of these choices are appropriate, simply use
1103  * %GTK_BUTTONS_NONE and call [method@Gtk.Dialog.add_buttons].
1104  *
1105  * > Please note that %GTK_BUTTONS_OK, %GTK_BUTTONS_YES_NO
1106  * > and %GTK_BUTTONS_OK_CANCEL are discouraged by the
1107  * > [GNOME Human Interface Guidelines](http://library.gnome.org/devel/hig-book/stable/).
1108  */
1109 public enum GtkButtonsType
1110 {
1111 	/**
1112 	 * no buttons at all
1113 	 */
1114 	NONE = 0,
1115 	/**
1116 	 * an OK button
1117 	 */
1118 	OK = 1,
1119 	/**
1120 	 * a Close button
1121 	 */
1122 	CLOSE = 2,
1123 	/**
1124 	 * a Cancel button
1125 	 */
1126 	CANCEL = 3,
1127 	/**
1128 	 * Yes and No buttons
1129 	 */
1130 	YES_NO = 4,
1131 	/**
1132 	 * OK and Cancel buttons
1133 	 */
1134 	OK_CANCEL = 5,
1135 }
1136 alias GtkButtonsType ButtonsType;
1137 
1138 /**
1139  * Determines if the edited accelerators are GTK accelerators. If
1140  * they are, consumed modifiers are suppressed, only accelerators
1141  * accepted by GTK are allowed, and the accelerators are rendered
1142  * in the same way as they are in menus.
1143  */
1144 public enum GtkCellRendererAccelMode
1145 {
1146 	/**
1147 	 * GTK accelerators mode
1148 	 */
1149 	GTK = 0,
1150 	/**
1151 	 * Other accelerator mode
1152 	 */
1153 	OTHER = 1,
1154 }
1155 alias GtkCellRendererAccelMode CellRendererAccelMode;
1156 
1157 /**
1158  * Identifies how the user can interact with a particular cell.
1159  */
1160 public enum GtkCellRendererMode
1161 {
1162 	/**
1163 	 * The cell is just for display
1164 	 * and cannot be interacted with.  Note that this doesn’t mean that eg. the
1165 	 * row being drawn can’t be selected -- just that a particular element of
1166 	 * it cannot be individually modified.
1167 	 */
1168 	INERT = 0,
1169 	/**
1170 	 * The cell can be clicked.
1171 	 */
1172 	ACTIVATABLE = 1,
1173 	/**
1174 	 * The cell can be edited or otherwise modified.
1175 	 */
1176 	EDITABLE = 2,
1177 }
1178 alias GtkCellRendererMode CellRendererMode;
1179 
1180 /**
1181  * Tells how a cell is to be rendered.
1182  */
1183 public enum GtkCellRendererState
1184 {
1185 	/**
1186 	 * The cell is currently selected, and
1187 	 * probably has a selection colored background to render to.
1188 	 */
1189 	SELECTED = 1,
1190 	/**
1191 	 * The mouse is hovering over the cell.
1192 	 */
1193 	PRELIT = 2,
1194 	/**
1195 	 * The cell is drawn in an insensitive manner
1196 	 */
1197 	INSENSITIVE = 4,
1198 	/**
1199 	 * The cell is in a sorted row
1200 	 */
1201 	SORTED = 8,
1202 	/**
1203 	 * The cell is in the focus row.
1204 	 */
1205 	FOCUSED = 16,
1206 	/**
1207 	 * The cell is in a row that can be expanded
1208 	 */
1209 	EXPANDABLE = 32,
1210 	/**
1211 	 * The cell is in a row that is expanded
1212 	 */
1213 	EXPANDED = 64,
1214 }
1215 alias GtkCellRendererState CellRendererState;
1216 
1217 /**
1218  * The widget attributes that can be used when creating a `GtkConstraint`.
1219  */
1220 public enum GtkConstraintAttribute
1221 {
1222 	/**
1223 	 * No attribute, used for constant
1224 	 * relations
1225 	 */
1226 	NONE = 0,
1227 	/**
1228 	 * The left edge of a widget, regardless of
1229 	 * text direction
1230 	 */
1231 	LEFT = 1,
1232 	/**
1233 	 * The right edge of a widget, regardless
1234 	 * of text direction
1235 	 */
1236 	RIGHT = 2,
1237 	/**
1238 	 * The top edge of a widget
1239 	 */
1240 	TOP = 3,
1241 	/**
1242 	 * The bottom edge of a widget
1243 	 */
1244 	BOTTOM = 4,
1245 	/**
1246 	 * The leading edge of a widget, depending
1247 	 * on text direction; equivalent to %GTK_CONSTRAINT_ATTRIBUTE_LEFT for LTR
1248 	 * languages, and %GTK_CONSTRAINT_ATTRIBUTE_RIGHT for RTL ones
1249 	 */
1250 	START = 5,
1251 	/**
1252 	 * The trailing edge of a widget, depending
1253 	 * on text direction; equivalent to %GTK_CONSTRAINT_ATTRIBUTE_RIGHT for LTR
1254 	 * languages, and %GTK_CONSTRAINT_ATTRIBUTE_LEFT for RTL ones
1255 	 */
1256 	END = 6,
1257 	/**
1258 	 * The width of a widget
1259 	 */
1260 	WIDTH = 7,
1261 	/**
1262 	 * The height of a widget
1263 	 */
1264 	HEIGHT = 8,
1265 	/**
1266 	 * The center of a widget, on the
1267 	 * horizontal axis
1268 	 */
1269 	CENTER_X = 9,
1270 	/**
1271 	 * The center of a widget, on the
1272 	 * vertical axis
1273 	 */
1274 	CENTER_Y = 10,
1275 	/**
1276 	 * The baseline of a widget
1277 	 */
1278 	BASELINE = 11,
1279 }
1280 alias GtkConstraintAttribute ConstraintAttribute;
1281 
1282 /**
1283  * The relation between two terms of a constraint.
1284  */
1285 public enum GtkConstraintRelation
1286 {
1287 	/**
1288 	 * Less than, or equal
1289 	 */
1290 	LE = -1,
1291 	/**
1292 	 * Equal
1293 	 */
1294 	EQ = 0,
1295 	/**
1296 	 * Greater than, or equal
1297 	 */
1298 	GE = 1,
1299 }
1300 alias GtkConstraintRelation ConstraintRelation;
1301 
1302 /**
1303  * The strength of a constraint, expressed as a symbolic constant.
1304  *
1305  * The strength of a #GtkConstraint can be expressed with any positive
1306  * integer; the values of this enumeration can be used for readability.
1307  */
1308 public enum GtkConstraintStrength
1309 {
1310 	/**
1311 	 * The constraint is required towards solving the layout
1312 	 */
1313 	REQUIRED = 1001001000,
1314 	/**
1315 	 * A strong constraint
1316 	 */
1317 	STRONG = 1000000000,
1318 	/**
1319 	 * A medium constraint
1320 	 */
1321 	MEDIUM = 1000,
1322 	/**
1323 	 * A weak constraint
1324 	 */
1325 	WEAK = 1,
1326 }
1327 alias GtkConstraintStrength ConstraintStrength;
1328 
1329 /**
1330  * Domain for VFL parsing errors.
1331  */
1332 public enum GtkConstraintVflParserError
1333 {
1334 	/**
1335 	 * Invalid or unknown symbol
1336 	 */
1337 	SYMBOL = 0,
1338 	/**
1339 	 * Invalid or unknown attribute
1340 	 */
1341 	ATTRIBUTE = 1,
1342 	/**
1343 	 * Invalid or unknown view
1344 	 */
1345 	VIEW = 2,
1346 	/**
1347 	 * Invalid or unknown metric
1348 	 */
1349 	METRIC = 3,
1350 	/**
1351 	 * Invalid or unknown priority
1352 	 */
1353 	PRIORITY = 4,
1354 	/**
1355 	 * Invalid or unknown relation
1356 	 */
1357 	RELATION = 5,
1358 }
1359 alias GtkConstraintVflParserError ConstraintVflParserError;
1360 
1361 /**
1362  * Specifies which corner a child widget should be placed in when packed into
1363  * a `GtkScrolledWindow.`
1364  *
1365  * This is effectively the opposite of where the scroll bars are placed.
1366  */
1367 public enum GtkCornerType
1368 {
1369 	/**
1370 	 * Place the scrollbars on the right and bottom of the
1371 	 * widget (default behaviour).
1372 	 */
1373 	TOP_LEFT = 0,
1374 	/**
1375 	 * Place the scrollbars on the top and right of the
1376 	 * widget.
1377 	 */
1378 	BOTTOM_LEFT = 1,
1379 	/**
1380 	 * Place the scrollbars on the left and bottom of the
1381 	 * widget.
1382 	 */
1383 	TOP_RIGHT = 2,
1384 	/**
1385 	 * Place the scrollbars on the top and left of the
1386 	 * widget.
1387 	 */
1388 	BOTTOM_RIGHT = 3,
1389 }
1390 alias GtkCornerType CornerType;
1391 
1392 /**
1393  * Errors that can occur while parsing CSS.
1394  *
1395  * These errors are unexpected and will cause parts of the given CSS
1396  * to be ignored.
1397  */
1398 public enum GtkCssParserError
1399 {
1400 	/**
1401 	 * Unknown failure.
1402 	 */
1403 	FAILED = 0,
1404 	/**
1405 	 * The given text does not form valid
1406 	 * syntax
1407 	 */
1408 	SYNTAX = 1,
1409 	/**
1410 	 * Failed to import a resource
1411 	 */
1412 	IMPORT = 2,
1413 	/**
1414 	 * The given name has not been defined
1415 	 */
1416 	NAME = 3,
1417 	/**
1418 	 * The given value is not
1419 	 * correct
1420 	 */
1421 	UNKNOWN_VALUE = 4,
1422 }
1423 alias GtkCssParserError CssParserError;
1424 
1425 /**
1426  * Warnings that can occur while parsing CSS.
1427  *
1428  * Unlike #GtkCssParserErrors, warnings do not cause the parser to
1429  * skip any input, but they indicate issues that should be fixed.
1430  */
1431 public enum GtkCssParserWarning
1432 {
1433 	/**
1434 	 * The given construct is
1435 	 * deprecated and will be removed in a future version
1436 	 */
1437 	DEPRECATED = 0,
1438 	/**
1439 	 * A syntax construct was used
1440 	 * that should be avoided
1441 	 */
1442 	SYNTAX = 1,
1443 	/**
1444 	 * A feature is not
1445 	 * implemented
1446 	 */
1447 	UNIMPLEMENTED = 2,
1448 }
1449 alias GtkCssParserWarning CssParserWarning;
1450 
1451 public enum GtkDebugFlags
1452 {
1453 	TEXT = 1,
1454 	TREE = 2,
1455 	KEYBINDINGS = 4,
1456 	MODULES = 8,
1457 	GEOMETRY = 16,
1458 	ICONTHEME = 32,
1459 	PRINTING = 64,
1460 	BUILDER = 128,
1461 	SIZE_REQUEST = 256,
1462 	NO_CSS_CACHE = 512,
1463 	INTERACTIVE = 1024,
1464 	TOUCHSCREEN = 2048,
1465 	ACTIONS = 4096,
1466 	LAYOUT = 8192,
1467 	SNAPSHOT = 16384,
1468 	CONSTRAINTS = 32768,
1469 	BUILDER_OBJECTS = 65536,
1470 	A11Y = 131072,
1471 	ICONFALLBACK = 262144,
1472 }
1473 alias GtkDebugFlags DebugFlags;
1474 
1475 /**
1476  * Passed to various keybinding signals for deleting text.
1477  */
1478 public enum GtkDeleteType
1479 {
1480 	/**
1481 	 * Delete characters.
1482 	 */
1483 	CHARS = 0,
1484 	/**
1485 	 * Delete only the portion of the word to the
1486 	 * left/right of cursor if we’re in the middle of a word.
1487 	 */
1488 	WORD_ENDS = 1,
1489 	/**
1490 	 * Delete words.
1491 	 */
1492 	WORDS = 2,
1493 	/**
1494 	 * Delete display-lines. Display-lines
1495 	 * refers to the visible lines, with respect to the current line
1496 	 * breaks. As opposed to paragraphs, which are defined by line
1497 	 * breaks in the input.
1498 	 */
1499 	DISPLAY_LINES = 3,
1500 	/**
1501 	 * Delete only the portion of the
1502 	 * display-line to the left/right of cursor.
1503 	 */
1504 	DISPLAY_LINE_ENDS = 4,
1505 	/**
1506 	 * Delete to the end of the
1507 	 * paragraph. Like C-k in Emacs (or its reverse).
1508 	 */
1509 	PARAGRAPH_ENDS = 5,
1510 	/**
1511 	 * Delete entire line. Like C-k in pico.
1512 	 */
1513 	PARAGRAPHS = 6,
1514 	/**
1515 	 * Delete only whitespace. Like M-\ in Emacs.
1516 	 */
1517 	WHITESPACE = 7,
1518 }
1519 alias GtkDeleteType DeleteType;
1520 
1521 /**
1522  * Flags used to influence dialog construction.
1523  */
1524 public enum GtkDialogFlags
1525 {
1526 	/**
1527 	 * Make the constructed dialog modal
1528 	 */
1529 	MODAL = 1,
1530 	/**
1531 	 * Destroy the dialog when its parent is destroyed
1532 	 */
1533 	DESTROY_WITH_PARENT = 2,
1534 	/**
1535 	 * Create dialog with actions in header
1536 	 * bar instead of action area
1537 	 */
1538 	USE_HEADER_BAR = 4,
1539 }
1540 alias GtkDialogFlags DialogFlags;
1541 
1542 /**
1543  * Focus movement types.
1544  */
1545 public enum GtkDirectionType
1546 {
1547 	/**
1548 	 * Move forward.
1549 	 */
1550 	TAB_FORWARD = 0,
1551 	/**
1552 	 * Move backward.
1553 	 */
1554 	TAB_BACKWARD = 1,
1555 	/**
1556 	 * Move up.
1557 	 */
1558 	UP = 2,
1559 	/**
1560 	 * Move down.
1561 	 */
1562 	DOWN = 3,
1563 	/**
1564 	 * Move left.
1565 	 */
1566 	LEFT = 4,
1567 	/**
1568 	 * Move right.
1569 	 */
1570 	RIGHT = 5,
1571 }
1572 alias GtkDirectionType DirectionType;
1573 
1574 public enum GtkEditableProperties
1575 {
1576 	PROP_TEXT = 0,
1577 	PROP_CURSOR_POSITION = 1,
1578 	PROP_SELECTION_BOUND = 2,
1579 	PROP_EDITABLE = 3,
1580 	PROP_WIDTH_CHARS = 4,
1581 	PROP_MAX_WIDTH_CHARS = 5,
1582 	PROP_XALIGN = 6,
1583 	PROP_ENABLE_UNDO = 7,
1584 	NUM_PROPERTIES = 8,
1585 }
1586 alias GtkEditableProperties EditableProperties;
1587 
1588 /**
1589  * Specifies the side of the entry at which an icon is placed.
1590  */
1591 public enum GtkEntryIconPosition
1592 {
1593 	/**
1594 	 * At the beginning of the entry (depending on the text direction).
1595 	 */
1596 	PRIMARY = 0,
1597 	/**
1598 	 * At the end of the entry (depending on the text direction).
1599 	 */
1600 	SECONDARY = 1,
1601 }
1602 alias GtkEntryIconPosition EntryIconPosition;
1603 
1604 /**
1605  * Describes the behavior of a `GtkEventControllerScroll`.
1606  */
1607 public enum GtkEventControllerScrollFlags
1608 {
1609 	/**
1610 	 * Don't emit scroll.
1611 	 */
1612 	NONE = 0,
1613 	/**
1614 	 * Emit scroll with vertical deltas.
1615 	 */
1616 	VERTICAL = 1,
1617 	/**
1618 	 * Emit scroll with horizontal deltas.
1619 	 */
1620 	HORIZONTAL = 2,
1621 	/**
1622 	 * Only emit deltas that are multiples of 1.
1623 	 */
1624 	DISCRETE = 4,
1625 	/**
1626 	 * Emit ::decelerate after continuous scroll finishes.
1627 	 */
1628 	KINETIC = 8,
1629 	/**
1630 	 * Emit scroll on both axes.
1631 	 */
1632 	BOTH_AXES = 3,
1633 }
1634 alias GtkEventControllerScrollFlags EventControllerScrollFlags;
1635 
1636 /**
1637  * Describes the state of a `GdkEventSequence` in a `GtkGesture`.
1638  */
1639 public enum GtkEventSequenceState
1640 {
1641 	/**
1642 	 * The sequence is handled, but not grabbed.
1643 	 */
1644 	NONE = 0,
1645 	/**
1646 	 * The sequence is handled and grabbed.
1647 	 */
1648 	CLAIMED = 1,
1649 	/**
1650 	 * The sequence is denied.
1651 	 */
1652 	DENIED = 2,
1653 }
1654 alias GtkEventSequenceState EventSequenceState;
1655 
1656 /**
1657  * Describes whether a `GtkFileChooser` is being used to open existing files
1658  * or to save to a possibly new file.
1659  */
1660 public enum GtkFileChooserAction
1661 {
1662 	/**
1663 	 * Indicates open mode.  The file chooser
1664 	 * will only let the user pick an existing file.
1665 	 */
1666 	OPEN = 0,
1667 	/**
1668 	 * Indicates save mode.  The file chooser
1669 	 * will let the user pick an existing file, or type in a new
1670 	 * filename.
1671 	 */
1672 	SAVE = 1,
1673 	/**
1674 	 * Indicates an Open mode for
1675 	 * selecting folders.  The file chooser will let the user pick an
1676 	 * existing folder.
1677 	 */
1678 	SELECT_FOLDER = 2,
1679 }
1680 alias GtkFileChooserAction FileChooserAction;
1681 
1682 /**
1683  * These identify the various errors that can occur while calling
1684  * `GtkFileChooser` functions.
1685  */
1686 public enum GtkFileChooserError
1687 {
1688 	/**
1689 	 * Indicates that a file does not exist.
1690 	 */
1691 	NONEXISTENT = 0,
1692 	/**
1693 	 * Indicates a malformed filename.
1694 	 */
1695 	BAD_FILENAME = 1,
1696 	/**
1697 	 * Indicates a duplicate path (e.g. when
1698 	 * adding a bookmark).
1699 	 */
1700 	ALREADY_EXISTS = 2,
1701 	/**
1702 	 * Indicates an incomplete hostname
1703 	 * (e.g. "http://foo" without a slash after that).
1704 	 */
1705 	INCOMPLETE_HOSTNAME = 3,
1706 }
1707 alias GtkFileChooserError FileChooserError;
1708 
1709 /**
1710  * Describes changes in a filter in more detail and allows objects
1711  * using the filter to optimize refiltering items.
1712  *
1713  * If you are writing an implementation and are not sure which
1714  * value to pass, %GTK_FILTER_CHANGE_DIFFERENT is always a correct
1715  * choice.
1716  */
1717 public enum GtkFilterChange
1718 {
1719 	/**
1720 	 * The filter change cannot be
1721 	 * described with any of the other enumeration values.
1722 	 */
1723 	DIFFERENT = 0,
1724 	/**
1725 	 * The filter is less strict than
1726 	 * it was before: All items that it used to return %TRUE for
1727 	 * still return %TRUE, others now may, too.
1728 	 */
1729 	LESS_STRICT = 1,
1730 	/**
1731 	 * The filter is more strict than
1732 	 * it was before: All items that it used to return %FALSE for
1733 	 * still return %FALSE, others now may, too.
1734 	 */
1735 	MORE_STRICT = 2,
1736 }
1737 alias GtkFilterChange FilterChange;
1738 
1739 /**
1740  * Describes the known strictness of a filter.
1741  *
1742  * Note that for filters where the strictness is not known,
1743  * %GTK_FILTER_MATCH_SOME is always an acceptable value,
1744  * even if a filter does match all or no items.
1745  */
1746 public enum GtkFilterMatch
1747 {
1748 	/**
1749 	 * The filter matches some items,
1750 	 * gtk_filter_match() may return %TRUE or %FALSE
1751 	 */
1752 	SOME = 0,
1753 	/**
1754 	 * The filter does not match any item,
1755 	 * gtk_filter_match() will always return %FALSE.
1756 	 */
1757 	NONE = 1,
1758 	/**
1759 	 * The filter matches all items,
1760 	 * gtk_filter_match() will alays return %TRUE.
1761 	 */
1762 	ALL = 2,
1763 }
1764 alias GtkFilterMatch FilterMatch;
1765 
1766 /**
1767  * Specifies the granularity of font selection
1768  * that is desired in a `GtkFontChooser`.
1769  *
1770  * This enumeration may be extended in the future; applications should
1771  * ignore unknown values.
1772  */
1773 public enum GtkFontChooserLevel
1774 {
1775 	/**
1776 	 * Allow selecting a font family
1777 	 */
1778 	FAMILY = 0,
1779 	/**
1780 	 * Allow selecting a specific font face
1781 	 */
1782 	STYLE = 1,
1783 	/**
1784 	 * Allow selecting a specific font size
1785 	 */
1786 	SIZE = 2,
1787 	/**
1788 	 * Allow changing OpenType font variation axes
1789 	 */
1790 	VARIATIONS = 4,
1791 	/**
1792 	 * Allow selecting specific OpenType font features
1793 	 */
1794 	FEATURES = 8,
1795 }
1796 alias GtkFontChooserLevel FontChooserLevel;
1797 
1798 /**
1799  * Used to specify options for gtk_icon_theme_lookup_icon().
1800  */
1801 public enum GtkIconLookupFlags
1802 {
1803 	/**
1804 	 * Try to always load regular icons, even
1805 	 * when symbolic icon names are given
1806 	 */
1807 	FORCE_REGULAR = 1,
1808 	/**
1809 	 * Try to always load symbolic icons, even
1810 	 * when regular icon names are given
1811 	 */
1812 	FORCE_SYMBOLIC = 2,
1813 	/**
1814 	 * Starts loading the texture in the background
1815 	 * so it is ready when later needed.
1816 	 */
1817 	PRELOAD = 4,
1818 }
1819 alias GtkIconLookupFlags IconLookupFlags;
1820 
1821 /**
1822  * Built-in icon sizes.
1823  *
1824  * Icon sizes default to being inherited. Where they cannot be
1825  * inherited, text size is the default.
1826  *
1827  * All widgets which use `GtkIconSize` set the normal-icons or
1828  * large-icons style classes correspondingly, and let themes
1829  * determine the actual size to be used with the
1830  * `-gtk-icon-size` CSS property.
1831  */
1832 public enum GtkIconSize
1833 {
1834 	/**
1835 	 * Keep the size of the parent element
1836 	 */
1837 	INHERIT = 0,
1838 	/**
1839 	 * Size similar to text size
1840 	 */
1841 	NORMAL = 1,
1842 	/**
1843 	 * Large size, for example in an icon view
1844 	 */
1845 	LARGE = 2,
1846 }
1847 alias GtkIconSize IconSize;
1848 
1849 /**
1850  * Error codes for `GtkIconTheme` operations.
1851  */
1852 public enum GtkIconThemeError
1853 {
1854 	/**
1855 	 * The icon specified does not exist in the theme
1856 	 */
1857 	NOT_FOUND = 0,
1858 	/**
1859 	 * An unspecified error occurred.
1860 	 */
1861 	FAILED = 1,
1862 }
1863 alias GtkIconThemeError IconThemeError;
1864 
1865 /**
1866  * An enum for determining where a dropped item goes.
1867  */
1868 public enum GtkIconViewDropPosition
1869 {
1870 	/**
1871 	 * no drop possible
1872 	 */
1873 	NO_DROP = 0,
1874 	/**
1875 	 * dropped item replaces the item
1876 	 */
1877 	DROP_INTO = 1,
1878 	/**
1879 	 * dropped item is inserted to the left
1880 	 */
1881 	DROP_LEFT = 2,
1882 	/**
1883 	 * dropped item is inserted to the right
1884 	 */
1885 	DROP_RIGHT = 3,
1886 	/**
1887 	 * dropped item is inserted above
1888 	 */
1889 	DROP_ABOVE = 4,
1890 	/**
1891 	 * dropped item is inserted below
1892 	 */
1893 	DROP_BELOW = 5,
1894 }
1895 alias GtkIconViewDropPosition IconViewDropPosition;
1896 
1897 /**
1898  * Describes the image data representation used by a [class@Gtk.Image].
1899  *
1900  * If you want to get the image from the widget, you can only get the
1901  * currently-stored representation; for instance, if the gtk_image_get_storage_type()
1902  * returns %GTK_IMAGE_PAINTABLE, then you can call gtk_image_get_paintable().
1903  *
1904  * For empty images, you can request any storage type (call any of the "get"
1905  * functions), but they will all return %NULL values.
1906  */
1907 public enum GtkImageType
1908 {
1909 	/**
1910 	 * there is no image displayed by the widget
1911 	 */
1912 	EMPTY = 0,
1913 	/**
1914 	 * the widget contains a named icon
1915 	 */
1916 	ICON_NAME = 1,
1917 	/**
1918 	 * the widget contains a #GIcon
1919 	 */
1920 	GICON = 2,
1921 	/**
1922 	 * the widget contains a #GdkPaintable
1923 	 */
1924 	PAINTABLE = 3,
1925 }
1926 alias GtkImageType ImageType;
1927 
1928 /**
1929  * Describes hints that might be taken into account by input methods
1930  * or applications.
1931  *
1932  * Note that input methods may already tailor their behaviour according
1933  * to the `GtkInputPurpose` of the entry.
1934  *
1935  * Some common sense is expected when using these flags - mixing
1936  * %GTK_INPUT_HINT_LOWERCASE with any of the uppercase hints makes no sense.
1937  *
1938  * This enumeration may be extended in the future; input methods should
1939  * ignore unknown values.
1940  */
1941 public enum GtkInputHints
1942 {
1943 	/**
1944 	 * No special behaviour suggested
1945 	 */
1946 	NONE = 0,
1947 	/**
1948 	 * Suggest checking for typos
1949 	 */
1950 	SPELLCHECK = 1,
1951 	/**
1952 	 * Suggest not checking for typos
1953 	 */
1954 	NO_SPELLCHECK = 2,
1955 	/**
1956 	 * Suggest word completion
1957 	 */
1958 	WORD_COMPLETION = 4,
1959 	/**
1960 	 * Suggest to convert all text to lowercase
1961 	 */
1962 	LOWERCASE = 8,
1963 	/**
1964 	 * Suggest to capitalize all text
1965 	 */
1966 	UPPERCASE_CHARS = 16,
1967 	/**
1968 	 * Suggest to capitalize the first
1969 	 * character of each word
1970 	 */
1971 	UPPERCASE_WORDS = 32,
1972 	/**
1973 	 * Suggest to capitalize the
1974 	 * first word of each sentence
1975 	 */
1976 	UPPERCASE_SENTENCES = 64,
1977 	/**
1978 	 * Suggest to not show an onscreen keyboard
1979 	 * (e.g for a calculator that already has all the keys).
1980 	 */
1981 	INHIBIT_OSK = 128,
1982 	/**
1983 	 * The text is vertical
1984 	 */
1985 	VERTICAL_WRITING = 256,
1986 	/**
1987 	 * Suggest offering Emoji support
1988 	 */
1989 	EMOJI = 512,
1990 	/**
1991 	 * Suggest not offering Emoji support
1992 	 */
1993 	NO_EMOJI = 1024,
1994 	/**
1995 	 * Request that the input method should not
1996 	 * update personalized data (like typing history)
1997 	 */
1998 	PRIVATE = 2048,
1999 }
2000 alias GtkInputHints InputHints;
2001 
2002 /**
2003  * Describes primary purpose of the input widget.
2004  *
2005  * This information is useful for on-screen keyboards and similar input
2006  * methods to decide which keys should be presented to the user.
2007  *
2008  * Note that the purpose is not meant to impose a totally strict rule
2009  * about allowed characters, and does not replace input validation.
2010  * It is fine for an on-screen keyboard to let the user override the
2011  * character set restriction that is expressed by the purpose. The
2012  * application is expected to validate the entry contents, even if
2013  * it specified a purpose.
2014  *
2015  * The difference between %GTK_INPUT_PURPOSE_DIGITS and
2016  * %GTK_INPUT_PURPOSE_NUMBER is that the former accepts only digits
2017  * while the latter also some punctuation (like commas or points, plus,
2018  * minus) and “e” or “E” as in 3.14E+000.
2019  *
2020  * This enumeration may be extended in the future; input methods should
2021  * interpret unknown values as “free form”.
2022  */
2023 public enum GtkInputPurpose
2024 {
2025 	/**
2026 	 * Allow any character
2027 	 */
2028 	FREE_FORM = 0,
2029 	/**
2030 	 * Allow only alphabetic characters
2031 	 */
2032 	ALPHA = 1,
2033 	/**
2034 	 * Allow only digits
2035 	 */
2036 	DIGITS = 2,
2037 	/**
2038 	 * Edited field expects numbers
2039 	 */
2040 	NUMBER = 3,
2041 	/**
2042 	 * Edited field expects phone number
2043 	 */
2044 	PHONE = 4,
2045 	/**
2046 	 * Edited field expects URL
2047 	 */
2048 	URL = 5,
2049 	/**
2050 	 * Edited field expects email address
2051 	 */
2052 	EMAIL = 6,
2053 	/**
2054 	 * Edited field expects the name of a person
2055 	 */
2056 	NAME = 7,
2057 	/**
2058 	 * Like %GTK_INPUT_PURPOSE_FREE_FORM, but characters are hidden
2059 	 */
2060 	PASSWORD = 8,
2061 	/**
2062 	 * Like %GTK_INPUT_PURPOSE_DIGITS, but characters are hidden
2063 	 */
2064 	PIN = 9,
2065 	/**
2066 	 * Allow any character, in addition to control codes
2067 	 */
2068 	TERMINAL = 10,
2069 }
2070 alias GtkInputPurpose InputPurpose;
2071 
2072 /**
2073  * Used for justifying the text inside a `GtkLabel` widget.
2074  */
2075 public enum GtkJustification
2076 {
2077 	/**
2078 	 * The text is placed at the left edge of the label.
2079 	 */
2080 	LEFT = 0,
2081 	/**
2082 	 * The text is placed at the right edge of the label.
2083 	 */
2084 	RIGHT = 1,
2085 	/**
2086 	 * The text is placed in the center of the label.
2087 	 */
2088 	CENTER = 2,
2089 	/**
2090 	 * The text is placed is distributed across the label.
2091 	 */
2092 	FILL = 3,
2093 }
2094 alias GtkJustification Justification;
2095 
2096 /**
2097  * Describes how `GtkLevelBar` contents should be rendered.
2098  *
2099  * Note that this enumeration could be extended with additional modes
2100  * in the future.
2101  */
2102 public enum GtkLevelBarMode
2103 {
2104 	/**
2105 	 * the bar has a continuous mode
2106 	 */
2107 	CONTINUOUS = 0,
2108 	/**
2109 	 * the bar has a discrete mode
2110 	 */
2111 	DISCRETE = 1,
2112 }
2113 alias GtkLevelBarMode LevelBarMode;
2114 
2115 /**
2116  * The type of license for an application.
2117  *
2118  * This enumeration can be expanded at later date.
2119  */
2120 public enum GtkLicense
2121 {
2122 	/**
2123 	 * No license specified
2124 	 */
2125 	UNKNOWN = 0,
2126 	/**
2127 	 * A license text is going to be specified by the
2128 	 * developer
2129 	 */
2130 	CUSTOM = 1,
2131 	/**
2132 	 * The GNU General Public License, version 2.0 or later
2133 	 */
2134 	GPL_2_0 = 2,
2135 	/**
2136 	 * The GNU General Public License, version 3.0 or later
2137 	 */
2138 	GPL_3_0 = 3,
2139 	/**
2140 	 * The GNU Lesser General Public License, version 2.1 or later
2141 	 */
2142 	LGPL_2_1 = 4,
2143 	/**
2144 	 * The GNU Lesser General Public License, version 3.0 or later
2145 	 */
2146 	LGPL_3_0 = 5,
2147 	/**
2148 	 * The BSD standard license
2149 	 */
2150 	BSD = 6,
2151 	/**
2152 	 * The MIT/X11 standard license
2153 	 */
2154 	MIT_X11 = 7,
2155 	/**
2156 	 * The Artistic License, version 2.0
2157 	 */
2158 	ARTISTIC = 8,
2159 	/**
2160 	 * The GNU General Public License, version 2.0 only
2161 	 */
2162 	GPL_2_0_ONLY = 9,
2163 	/**
2164 	 * The GNU General Public License, version 3.0 only
2165 	 */
2166 	GPL_3_0_ONLY = 10,
2167 	/**
2168 	 * The GNU Lesser General Public License, version 2.1 only
2169 	 */
2170 	LGPL_2_1_ONLY = 11,
2171 	/**
2172 	 * The GNU Lesser General Public License, version 3.0 only
2173 	 */
2174 	LGPL_3_0_ONLY = 12,
2175 	/**
2176 	 * The GNU Affero General Public License, version 3.0 or later
2177 	 */
2178 	AGPL_3_0 = 13,
2179 	/**
2180 	 * The GNU Affero General Public License, version 3.0 only
2181 	 */
2182 	AGPL_3_0_ONLY = 14,
2183 	/**
2184 	 * The 3-clause BSD licence
2185 	 */
2186 	BSD_3 = 15,
2187 	/**
2188 	 * The Apache License, version 2.0
2189 	 */
2190 	APACHE_2_0 = 16,
2191 	/**
2192 	 * The Mozilla Public License, version 2.0
2193 	 */
2194 	MPL_2_0 = 17,
2195 }
2196 alias GtkLicense License;
2197 
2198 /**
2199  * The type of message being displayed in a `GtkMessageDialog`.
2200  */
2201 public enum GtkMessageType : uint
2202 {
2203 	/**
2204 	 * Informational message
2205 	 */
2206 	INFO = 0,
2207 	/**
2208 	 * Non-fatal warning message
2209 	 */
2210 	WARNING = 1,
2211 	/**
2212 	 * Question requiring a choice
2213 	 */
2214 	QUESTION = 2,
2215 	/**
2216 	 * Fatal error message
2217 	 */
2218 	ERROR = 3,
2219 	/**
2220 	 * None of the above
2221 	 */
2222 	OTHER = 4,
2223 }
2224 alias GtkMessageType MessageType;
2225 
2226 /**
2227  * Passed as argument to various keybinding signals for moving the
2228  * cursor position.
2229  */
2230 public enum GtkMovementStep
2231 {
2232 	/**
2233 	 * Move forward or back by graphemes
2234 	 */
2235 	LOGICAL_POSITIONS = 0,
2236 	/**
2237 	 * Move left or right by graphemes
2238 	 */
2239 	VISUAL_POSITIONS = 1,
2240 	/**
2241 	 * Move forward or back by words
2242 	 */
2243 	WORDS = 2,
2244 	/**
2245 	 * Move up or down lines (wrapped lines)
2246 	 */
2247 	DISPLAY_LINES = 3,
2248 	/**
2249 	 * Move to either end of a line
2250 	 */
2251 	DISPLAY_LINE_ENDS = 4,
2252 	/**
2253 	 * Move up or down paragraphs (newline-ended lines)
2254 	 */
2255 	PARAGRAPHS = 5,
2256 	/**
2257 	 * Move to either end of a paragraph
2258 	 */
2259 	PARAGRAPH_ENDS = 6,
2260 	/**
2261 	 * Move by pages
2262 	 */
2263 	PAGES = 7,
2264 	/**
2265 	 * Move to ends of the buffer
2266 	 */
2267 	BUFFER_ENDS = 8,
2268 	/**
2269 	 * Move horizontally by pages
2270 	 */
2271 	HORIZONTAL_PAGES = 9,
2272 }
2273 alias GtkMovementStep MovementStep;
2274 
2275 /**
2276  * The parameter used in the action signals of `GtkNotebook`.
2277  */
2278 public enum GtkNotebookTab
2279 {
2280 	/**
2281 	 * the first tab in the notebook
2282 	 */
2283 	FIRST = 0,
2284 	/**
2285 	 * the last tab in the notebook
2286 	 */
2287 	LAST = 1,
2288 }
2289 alias GtkNotebookTab NotebookTab;
2290 
2291 /**
2292  * Used to determine the layout of pages on a sheet when printing
2293  * multiple pages per sheet.
2294  */
2295 public enum GtkNumberUpLayout
2296 {
2297 	/**
2298 	 * ![](layout-lrtb.png)
2299 	 */
2300 	LRTB = 0,
2301 	/**
2302 	 * ![](layout-lrbt.png)
2303 	 */
2304 	LRBT = 1,
2305 	/**
2306 	 * ![](layout-rltb.png)
2307 	 */
2308 	RLTB = 2,
2309 	/**
2310 	 * ![](layout-rlbt.png)
2311 	 */
2312 	RLBT = 3,
2313 	/**
2314 	 * ![](layout-tblr.png)
2315 	 */
2316 	TBLR = 4,
2317 	/**
2318 	 * ![](layout-tbrl.png)
2319 	 */
2320 	TBRL = 5,
2321 	/**
2322 	 * ![](layout-btlr.png)
2323 	 */
2324 	BTLR = 6,
2325 	/**
2326 	 * ![](layout-btrl.png)
2327 	 */
2328 	BTRL = 7,
2329 }
2330 alias GtkNumberUpLayout NumberUpLayout;
2331 
2332 /**
2333  * Describes the way two values can be compared.
2334  *
2335  * These values can be used with a `GCompareFunc`. However,
2336  * a `GCompareFunc` is allowed to return any integer values.
2337  * For converting such a value to a `GtkOrdering` value, use
2338  * [func@Gtk.Ordering.from_cmpfunc].
2339  */
2340 public enum GtkOrdering
2341 {
2342 	/**
2343 	 * the first value is smaller than the second
2344 	 */
2345 	SMALLER = -1,
2346 	/**
2347 	 * the two values are equal
2348 	 */
2349 	EQUAL = 0,
2350 	/**
2351 	 * the first value is larger than the second
2352 	 */
2353 	LARGER = 1,
2354 }
2355 alias GtkOrdering Ordering;
2356 
2357 /**
2358  * Represents the orientation of widgets and other objects.
2359  *
2360  * Typical examples are `GtkBox or `GtkGesturePan`.
2361  */
2362 public enum GtkOrientation
2363 {
2364 	/**
2365 	 * The element is in horizontal orientation.
2366 	 */
2367 	HORIZONTAL = 0,
2368 	/**
2369 	 * The element is in vertical orientation.
2370 	 */
2371 	VERTICAL = 1,
2372 }
2373 alias GtkOrientation Orientation;
2374 
2375 /**
2376  * Defines how content overflowing a given area should be handled.
2377  *
2378  * This is used in [method@Gtk.Widget.set_overflow]. The
2379  * [property@Gtk.Widget:overflow] property is modeled after the
2380  * CSS overflow property, but implements it only partially.
2381  */
2382 public enum GtkOverflow
2383 {
2384 	/**
2385 	 * No change is applied. Content is drawn at the specified
2386 	 * position.
2387 	 */
2388 	VISIBLE = 0,
2389 	/**
2390 	 * Content is clipped to the bounds of the area. Content
2391 	 * outside the area is not drawn and cannot be interacted with.
2392 	 */
2393 	HIDDEN = 1,
2394 }
2395 alias GtkOverflow Overflow;
2396 
2397 /**
2398  * Represents the packing location of a children in its parent.
2399  *
2400  * See `GtkWindowControls` for example.
2401  */
2402 public enum GtkPackType
2403 {
2404 	/**
2405 	 * The child is packed into the start of the widget
2406 	 */
2407 	START = 0,
2408 	/**
2409 	 * The child is packed into the end of the widget
2410 	 */
2411 	END = 1,
2412 }
2413 alias GtkPackType PackType;
2414 
2415 /**
2416  * The type of a pad action.
2417  */
2418 public enum GtkPadActionType
2419 {
2420 	/**
2421 	 * Action is triggered by a pad button
2422 	 */
2423 	BUTTON = 0,
2424 	/**
2425 	 * Action is triggered by a pad ring
2426 	 */
2427 	RING = 1,
2428 	/**
2429 	 * Action is triggered by a pad strip
2430 	 */
2431 	STRIP = 2,
2432 }
2433 alias GtkPadActionType PadActionType;
2434 
2435 /**
2436  * See also gtk_print_settings_set_orientation().
2437  */
2438 public enum GtkPageOrientation
2439 {
2440 	/**
2441 	 * Portrait mode.
2442 	 */
2443 	PORTRAIT = 0,
2444 	/**
2445 	 * Landscape mode.
2446 	 */
2447 	LANDSCAPE = 1,
2448 	/**
2449 	 * Reverse portrait mode.
2450 	 */
2451 	REVERSE_PORTRAIT = 2,
2452 	/**
2453 	 * Reverse landscape mode.
2454 	 */
2455 	REVERSE_LANDSCAPE = 3,
2456 }
2457 alias GtkPageOrientation PageOrientation;
2458 
2459 /**
2460  * See also gtk_print_job_set_page_set().
2461  */
2462 public enum GtkPageSet
2463 {
2464 	/**
2465 	 * All pages.
2466 	 */
2467 	ALL = 0,
2468 	/**
2469 	 * Even pages.
2470 	 */
2471 	EVEN = 1,
2472 	/**
2473 	 * Odd pages.
2474 	 */
2475 	ODD = 2,
2476 }
2477 alias GtkPageSet PageSet;
2478 
2479 /**
2480  * Describes the panning direction of a `GtkGesturePan`
2481  */
2482 public enum GtkPanDirection
2483 {
2484 	/**
2485 	 * panned towards the left
2486 	 */
2487 	LEFT = 0,
2488 	/**
2489 	 * panned towards the right
2490 	 */
2491 	RIGHT = 1,
2492 	/**
2493 	 * panned upwards
2494 	 */
2495 	UP = 2,
2496 	/**
2497 	 * panned downwards
2498 	 */
2499 	DOWN = 3,
2500 }
2501 alias GtkPanDirection PanDirection;
2502 
2503 /**
2504  * Flags that influence the behavior of gtk_widget_pick().
2505  */
2506 public enum GtkPickFlags
2507 {
2508 	/**
2509 	 * The default behavior, include widgets that are receiving events
2510 	 */
2511 	DEFAULT = 0,
2512 	/**
2513 	 * Include widgets that are insensitive
2514 	 */
2515 	INSENSITIVE = 1,
2516 	/**
2517 	 * Include widgets that are marked as non-targetable. See #GtkWidget:can-target
2518 	 */
2519 	NON_TARGETABLE = 2,
2520 }
2521 alias GtkPickFlags PickFlags;
2522 
2523 /**
2524  * Determines how the size should be computed to achieve the one of the
2525  * visibility mode for the scrollbars.
2526  */
2527 public enum GtkPolicyType
2528 {
2529 	/**
2530 	 * The scrollbar is always visible. The view size is
2531 	 * independent of the content.
2532 	 */
2533 	ALWAYS = 0,
2534 	/**
2535 	 * The scrollbar will appear and disappear as necessary.
2536 	 * For example, when all of a `GtkTreeView` can not be seen.
2537 	 */
2538 	AUTOMATIC = 1,
2539 	/**
2540 	 * The scrollbar should never appear. In this mode the
2541 	 * content determines the size.
2542 	 */
2543 	NEVER = 2,
2544 	/**
2545 	 * Don't show a scrollbar, but don't force the
2546 	 * size to follow the content. This can be used e.g. to make multiple
2547 	 * scrolled windows share a scrollbar.
2548 	 */
2549 	EXTERNAL = 3,
2550 }
2551 alias GtkPolicyType PolicyType;
2552 
2553 /**
2554  * Flags that affect how popover menus are created from
2555  * a menu model.
2556  */
2557 public enum GtkPopoverMenuFlags
2558 {
2559 	/**
2560 	 * Create submenus as nested
2561 	 * popovers. Without this flag, submenus are created as
2562 	 * sliding pages that replace the main menu.
2563 	 */
2564 	NESTED = 1,
2565 }
2566 alias GtkPopoverMenuFlags PopoverMenuFlags;
2567 
2568 /**
2569  * Describes which edge of a widget a certain feature is positioned at.
2570  *
2571  * For examples, see the tabs of a `GtkNotebook`, or the label
2572  * of a `GtkScale`.
2573  */
2574 public enum GtkPositionType
2575 {
2576 	/**
2577 	 * The feature is at the left edge.
2578 	 */
2579 	LEFT = 0,
2580 	/**
2581 	 * The feature is at the right edge.
2582 	 */
2583 	RIGHT = 1,
2584 	/**
2585 	 * The feature is at the top edge.
2586 	 */
2587 	TOP = 2,
2588 	/**
2589 	 * The feature is at the bottom edge.
2590 	 */
2591 	BOTTOM = 3,
2592 }
2593 alias GtkPositionType PositionType;
2594 
2595 /**
2596  * Specifies which features the print dialog should offer.
2597  *
2598  * If neither %GTK_PRINT_CAPABILITY_GENERATE_PDF nor
2599  * %GTK_PRINT_CAPABILITY_GENERATE_PS is specified, GTK assumes that all
2600  * formats are supported.
2601  */
2602 public enum GtkPrintCapabilities
2603 {
2604 	/**
2605 	 * Print dialog will offer printing even/odd pages.
2606 	 */
2607 	PAGE_SET = 1,
2608 	/**
2609 	 * Print dialog will allow to print multiple copies.
2610 	 */
2611 	COPIES = 2,
2612 	/**
2613 	 * Print dialog will allow to collate multiple copies.
2614 	 */
2615 	COLLATE = 4,
2616 	/**
2617 	 * Print dialog will allow to print pages in reverse order.
2618 	 */
2619 	REVERSE = 8,
2620 	/**
2621 	 * Print dialog will allow to scale the output.
2622 	 */
2623 	SCALE = 16,
2624 	/**
2625 	 * The program will send the document to
2626 	 * the printer in PDF format
2627 	 */
2628 	GENERATE_PDF = 32,
2629 	/**
2630 	 * The program will send the document to
2631 	 * the printer in Postscript format
2632 	 */
2633 	GENERATE_PS = 64,
2634 	/**
2635 	 * Print dialog will offer a preview
2636 	 */
2637 	PREVIEW = 128,
2638 	/**
2639 	 * Print dialog will offer printing multiple
2640 	 * pages per sheet
2641 	 */
2642 	NUMBER_UP = 256,
2643 	/**
2644 	 * Print dialog will allow to rearrange
2645 	 * pages when printing multiple pages per sheet
2646 	 */
2647 	NUMBER_UP_LAYOUT = 512,
2648 }
2649 alias GtkPrintCapabilities PrintCapabilities;
2650 
2651 /**
2652  * See also gtk_print_settings_set_duplex().
2653  */
2654 public enum GtkPrintDuplex
2655 {
2656 	/**
2657 	 * No duplex.
2658 	 */
2659 	SIMPLEX = 0,
2660 	/**
2661 	 * Horizontal duplex.
2662 	 */
2663 	HORIZONTAL = 1,
2664 	/**
2665 	 * Vertical duplex.
2666 	 */
2667 	VERTICAL = 2,
2668 }
2669 alias GtkPrintDuplex PrintDuplex;
2670 
2671 /**
2672  * Error codes that identify various errors that can occur while
2673  * using the GTK printing support.
2674  */
2675 public enum GtkPrintError
2676 {
2677 	/**
2678 	 * An unspecified error occurred.
2679 	 */
2680 	GENERAL = 0,
2681 	/**
2682 	 * An internal error occurred.
2683 	 */
2684 	INTERNAL_ERROR = 1,
2685 	/**
2686 	 * A memory allocation failed.
2687 	 */
2688 	NOMEM = 2,
2689 	/**
2690 	 * An error occurred while loading a page setup
2691 	 * or paper size from a key file.
2692 	 */
2693 	INVALID_FILE = 3,
2694 }
2695 alias GtkPrintError PrintError;
2696 
2697 /**
2698  * Determines what action the print operation should perform.
2699  *
2700  * A parameter of this typs is passed to [method@Gtk.PrintOperation.run].
2701  */
2702 public enum GtkPrintOperationAction
2703 {
2704 	/**
2705 	 * Show the print dialog.
2706 	 */
2707 	PRINT_DIALOG = 0,
2708 	/**
2709 	 * Start to print without showing
2710 	 * the print dialog, based on the current print settings.
2711 	 */
2712 	PRINT = 1,
2713 	/**
2714 	 * Show the print preview.
2715 	 */
2716 	PREVIEW = 2,
2717 	/**
2718 	 * Export to a file. This requires
2719 	 * the export-filename property to be set.
2720 	 */
2721 	EXPORT = 3,
2722 }
2723 alias GtkPrintOperationAction PrintOperationAction;
2724 
2725 /**
2726  * The result of a print operation.
2727  *
2728  * A value of this type is returned by [method@Gtk.PrintOperation.run].
2729  */
2730 public enum GtkPrintOperationResult
2731 {
2732 	/**
2733 	 * An error has occurred.
2734 	 */
2735 	ERROR = 0,
2736 	/**
2737 	 * The print settings should be stored.
2738 	 */
2739 	APPLY = 1,
2740 	/**
2741 	 * The print operation has been canceled,
2742 	 * the print settings should not be stored.
2743 	 */
2744 	CANCEL = 2,
2745 	/**
2746 	 * The print operation is not complete
2747 	 * yet. This value will only be returned when running asynchronously.
2748 	 */
2749 	IN_PROGRESS = 3,
2750 }
2751 alias GtkPrintOperationResult PrintOperationResult;
2752 
2753 /**
2754  * See also gtk_print_job_set_pages()
2755  */
2756 public enum GtkPrintPages
2757 {
2758 	/**
2759 	 * All pages.
2760 	 */
2761 	ALL = 0,
2762 	/**
2763 	 * Current page.
2764 	 */
2765 	CURRENT = 1,
2766 	/**
2767 	 * Range of pages.
2768 	 */
2769 	RANGES = 2,
2770 	/**
2771 	 * Selected pages.
2772 	 */
2773 	SELECTION = 3,
2774 }
2775 alias GtkPrintPages PrintPages;
2776 
2777 /**
2778  * See also gtk_print_settings_set_quality().
2779  */
2780 public enum GtkPrintQuality
2781 {
2782 	/**
2783 	 * Low quality.
2784 	 */
2785 	LOW = 0,
2786 	/**
2787 	 * Normal quality.
2788 	 */
2789 	NORMAL = 1,
2790 	/**
2791 	 * High quality.
2792 	 */
2793 	HIGH = 2,
2794 	/**
2795 	 * Draft quality.
2796 	 */
2797 	DRAFT = 3,
2798 }
2799 alias GtkPrintQuality PrintQuality;
2800 
2801 /**
2802  * The status gives a rough indication of the completion of a running
2803  * print operation.
2804  */
2805 public enum GtkPrintStatus
2806 {
2807 	/**
2808 	 * The printing has not started yet; this
2809 	 * status is set initially, and while the print dialog is shown.
2810 	 */
2811 	INITIAL = 0,
2812 	/**
2813 	 * This status is set while the begin-print
2814 	 * signal is emitted and during pagination.
2815 	 */
2816 	PREPARING = 1,
2817 	/**
2818 	 * This status is set while the
2819 	 * pages are being rendered.
2820 	 */
2821 	GENERATING_DATA = 2,
2822 	/**
2823 	 * The print job is being sent off to the
2824 	 * printer.
2825 	 */
2826 	SENDING_DATA = 3,
2827 	/**
2828 	 * The print job has been sent to the printer,
2829 	 * but is not printed for some reason, e.g. the printer may be stopped.
2830 	 */
2831 	PENDING = 4,
2832 	/**
2833 	 * Some problem has occurred during
2834 	 * printing, e.g. a paper jam.
2835 	 */
2836 	PENDING_ISSUE = 5,
2837 	/**
2838 	 * The printer is processing the print job.
2839 	 */
2840 	PRINTING = 6,
2841 	/**
2842 	 * The printing has been completed successfully.
2843 	 */
2844 	FINISHED = 7,
2845 	/**
2846 	 * The printing has been aborted.
2847 	 */
2848 	FINISHED_ABORTED = 8,
2849 }
2850 alias GtkPrintStatus PrintStatus;
2851 
2852 /**
2853  * Describes limits of a `GtkEventController` for handling events
2854  * targeting other widgets.
2855  */
2856 public enum GtkPropagationLimit
2857 {
2858 	/**
2859 	 * Events are handled regardless of what their
2860 	 * target is.
2861 	 */
2862 	NONE = 0,
2863 	/**
2864 	 * Events are only handled if their target
2865 	 * is in the same #GtkNative as the event controllers widget. Note
2866 	 * that some event types have two targets (origin and destination).
2867 	 */
2868 	SAME_NATIVE = 1,
2869 }
2870 alias GtkPropagationLimit PropagationLimit;
2871 
2872 /**
2873  * Describes the stage at which events are fed into a `GtkEventController`.
2874  */
2875 public enum GtkPropagationPhase
2876 {
2877 	/**
2878 	 * Events are not delivered.
2879 	 */
2880 	NONE = 0,
2881 	/**
2882 	 * Events are delivered in the capture phase. The
2883 	 * capture phase happens before the bubble phase, runs from the toplevel down
2884 	 * to the event widget. This option should only be used on containers that
2885 	 * might possibly handle events before their children do.
2886 	 */
2887 	CAPTURE = 1,
2888 	/**
2889 	 * Events are delivered in the bubble phase. The bubble
2890 	 * phase happens after the capture phase, and before the default handlers
2891 	 * are run. This phase runs from the event widget, up to the toplevel.
2892 	 */
2893 	BUBBLE = 2,
2894 	/**
2895 	 * Events are delivered in the default widget event handlers,
2896 	 * note that widget implementations must chain up on button, motion, touch and
2897 	 * grab broken handlers for controllers in this phase to be run.
2898 	 */
2899 	TARGET = 3,
2900 }
2901 alias GtkPropagationPhase PropagationPhase;
2902 
2903 /**
2904  * Error codes for #GtkRecentManager operations
2905  */
2906 public enum GtkRecentManagerError
2907 {
2908 	/**
2909 	 * the URI specified does not exists in
2910 	 * the recently used resources list.
2911 	 */
2912 	NOT_FOUND = 0,
2913 	/**
2914 	 * the URI specified is not valid.
2915 	 */
2916 	INVALID_URI = 1,
2917 	/**
2918 	 * the supplied string is not
2919 	 * UTF-8 encoded.
2920 	 */
2921 	INVALID_ENCODING = 2,
2922 	/**
2923 	 * no application has registered
2924 	 * the specified item.
2925 	 */
2926 	NOT_REGISTERED = 3,
2927 	/**
2928 	 * failure while reading the recently used
2929 	 * resources file.
2930 	 */
2931 	READ = 4,
2932 	/**
2933 	 * failure while writing the recently used
2934 	 * resources file.
2935 	 */
2936 	WRITE = 5,
2937 	/**
2938 	 * unspecified error.
2939 	 */
2940 	UNKNOWN = 6,
2941 }
2942 alias GtkRecentManagerError RecentManagerError;
2943 
2944 /**
2945  * Predefined values for use as response ids in gtk_dialog_add_button().
2946  *
2947  * All predefined values are negative; GTK leaves values of 0 or greater for
2948  * application-defined response ids.
2949  */
2950 public enum GtkResponseType
2951 {
2952 	/**
2953 	 * Returned if an action widget has no response id,
2954 	 * or if the dialog gets programmatically hidden or destroyed
2955 	 */
2956 	NONE = -1,
2957 	/**
2958 	 * Generic response id, not used by GTK dialogs
2959 	 */
2960 	REJECT = -2,
2961 	/**
2962 	 * Generic response id, not used by GTK dialogs
2963 	 */
2964 	ACCEPT = -3,
2965 	/**
2966 	 * Returned if the dialog is deleted
2967 	 */
2968 	DELETE_EVENT = -4,
2969 	/**
2970 	 * Returned by OK buttons in GTK dialogs
2971 	 */
2972 	OK = -5,
2973 	/**
2974 	 * Returned by Cancel buttons in GTK dialogs
2975 	 */
2976 	CANCEL = -6,
2977 	/**
2978 	 * Returned by Close buttons in GTK dialogs
2979 	 */
2980 	CLOSE = -7,
2981 	/**
2982 	 * Returned by Yes buttons in GTK dialogs
2983 	 */
2984 	YES = -8,
2985 	/**
2986 	 * Returned by No buttons in GTK dialogs
2987 	 */
2988 	NO = -9,
2989 	/**
2990 	 * Returned by Apply buttons in GTK dialogs
2991 	 */
2992 	APPLY = -10,
2993 	/**
2994 	 * Returned by Help buttons in GTK dialogs
2995 	 */
2996 	HELP = -11,
2997 }
2998 alias GtkResponseType ResponseType;
2999 
3000 /**
3001  * These enumeration values describe the possible transitions
3002  * when the child of a `GtkRevealer` widget is shown or hidden.
3003  */
3004 public enum GtkRevealerTransitionType
3005 {
3006 	/**
3007 	 * No transition
3008 	 */
3009 	NONE = 0,
3010 	/**
3011 	 * Fade in
3012 	 */
3013 	CROSSFADE = 1,
3014 	/**
3015 	 * Slide in from the left
3016 	 */
3017 	SLIDE_RIGHT = 2,
3018 	/**
3019 	 * Slide in from the right
3020 	 */
3021 	SLIDE_LEFT = 3,
3022 	/**
3023 	 * Slide in from the bottom
3024 	 */
3025 	SLIDE_UP = 4,
3026 	/**
3027 	 * Slide in from the top
3028 	 */
3029 	SLIDE_DOWN = 5,
3030 	/**
3031 	 * Floop in from the left
3032 	 */
3033 	SWING_RIGHT = 6,
3034 	/**
3035 	 * Floop in from the right
3036 	 */
3037 	SWING_LEFT = 7,
3038 	/**
3039 	 * Floop in from the bottom
3040 	 */
3041 	SWING_UP = 8,
3042 	/**
3043 	 * Floop in from the top
3044 	 */
3045 	SWING_DOWN = 9,
3046 }
3047 alias GtkRevealerTransitionType RevealerTransitionType;
3048 
3049 /**
3050  * Passed as argument to various keybinding signals.
3051  */
3052 public enum GtkScrollStep
3053 {
3054 	/**
3055 	 * Scroll in steps.
3056 	 */
3057 	STEPS = 0,
3058 	/**
3059 	 * Scroll by pages.
3060 	 */
3061 	PAGES = 1,
3062 	/**
3063 	 * Scroll to ends.
3064 	 */
3065 	ENDS = 2,
3066 	/**
3067 	 * Scroll in horizontal steps.
3068 	 */
3069 	HORIZONTAL_STEPS = 3,
3070 	/**
3071 	 * Scroll by horizontal pages.
3072 	 */
3073 	HORIZONTAL_PAGES = 4,
3074 	/**
3075 	 * Scroll to the horizontal ends.
3076 	 */
3077 	HORIZONTAL_ENDS = 5,
3078 }
3079 alias GtkScrollStep ScrollStep;
3080 
3081 /**
3082  * Scrolling types.
3083  */
3084 public enum GtkScrollType
3085 {
3086 	/**
3087 	 * No scrolling.
3088 	 */
3089 	NONE = 0,
3090 	/**
3091 	 * Jump to new location.
3092 	 */
3093 	JUMP = 1,
3094 	/**
3095 	 * Step backward.
3096 	 */
3097 	STEP_BACKWARD = 2,
3098 	/**
3099 	 * Step forward.
3100 	 */
3101 	STEP_FORWARD = 3,
3102 	/**
3103 	 * Page backward.
3104 	 */
3105 	PAGE_BACKWARD = 4,
3106 	/**
3107 	 * Page forward.
3108 	 */
3109 	PAGE_FORWARD = 5,
3110 	/**
3111 	 * Step up.
3112 	 */
3113 	STEP_UP = 6,
3114 	/**
3115 	 * Step down.
3116 	 */
3117 	STEP_DOWN = 7,
3118 	/**
3119 	 * Page up.
3120 	 */
3121 	PAGE_UP = 8,
3122 	/**
3123 	 * Page down.
3124 	 */
3125 	PAGE_DOWN = 9,
3126 	/**
3127 	 * Step to the left.
3128 	 */
3129 	STEP_LEFT = 10,
3130 	/**
3131 	 * Step to the right.
3132 	 */
3133 	STEP_RIGHT = 11,
3134 	/**
3135 	 * Page to the left.
3136 	 */
3137 	PAGE_LEFT = 12,
3138 	/**
3139 	 * Page to the right.
3140 	 */
3141 	PAGE_RIGHT = 13,
3142 	/**
3143 	 * Scroll to start.
3144 	 */
3145 	START = 14,
3146 	/**
3147 	 * Scroll to end.
3148 	 */
3149 	END = 15,
3150 }
3151 alias GtkScrollType ScrollType;
3152 
3153 /**
3154  * Defines the policy to be used in a scrollable widget when updating
3155  * the scrolled window adjustments in a given orientation.
3156  */
3157 public enum GtkScrollablePolicy
3158 {
3159 	/**
3160 	 * Scrollable adjustments are based on the minimum size
3161 	 */
3162 	MINIMUM = 0,
3163 	/**
3164 	 * Scrollable adjustments are based on the natural size
3165 	 */
3166 	NATURAL = 1,
3167 }
3168 alias GtkScrollablePolicy ScrollablePolicy;
3169 
3170 /**
3171  * Used to control what selections users are allowed to make.
3172  */
3173 public enum GtkSelectionMode
3174 {
3175 	/**
3176 	 * No selection is possible.
3177 	 */
3178 	NONE = 0,
3179 	/**
3180 	 * Zero or one element may be selected.
3181 	 */
3182 	SINGLE = 1,
3183 	/**
3184 	 * Exactly one element is selected.
3185 	 * In some circumstances, such as initially or during a search
3186 	 * operation, it’s possible for no element to be selected with
3187 	 * %GTK_SELECTION_BROWSE. What is really enforced is that the user
3188 	 * can’t deselect a currently selected element except by selecting
3189 	 * another element.
3190 	 */
3191 	BROWSE = 2,
3192 	/**
3193 	 * Any number of elements may be selected.
3194 	 * The Ctrl key may be used to enlarge the selection, and Shift
3195 	 * key to select between the focus and the child pointed to.
3196 	 * Some widgets may also allow Click-drag to select a range of elements.
3197 	 */
3198 	MULTIPLE = 3,
3199 }
3200 alias GtkSelectionMode SelectionMode;
3201 
3202 /**
3203  * Determines how GTK handles the sensitivity of various controls,
3204  * such as combo box buttons.
3205  */
3206 public enum GtkSensitivityType
3207 {
3208 	/**
3209 	 * The control is made insensitive if no
3210 	 * action can be triggered
3211 	 */
3212 	AUTO = 0,
3213 	/**
3214 	 * The control is always sensitive
3215 	 */
3216 	ON = 1,
3217 	/**
3218 	 * The control is always insensitive
3219 	 */
3220 	OFF = 2,
3221 }
3222 alias GtkSensitivityType SensitivityType;
3223 
3224 /**
3225  * List of flags that can be passed to action activation.
3226  *
3227  * More flags may be added in the future.
3228  */
3229 public enum GtkShortcutActionFlags
3230 {
3231 	/**
3232 	 * The action is the only
3233 	 * action that can be activated. If this flag is not set,
3234 	 * a future activation may select a different action.
3235 	 */
3236 	EXCLUSIVE = 1,
3237 }
3238 alias GtkShortcutActionFlags ShortcutActionFlags;
3239 
3240 /**
3241  * Describes where `GtkShortcut`s added to a
3242  * `GtkShortcutController` get handled.
3243  */
3244 public enum GtkShortcutScope
3245 {
3246 	/**
3247 	 * Shortcuts are handled inside
3248 	 * the widget the controller belongs to.
3249 	 */
3250 	LOCAL = 0,
3251 	/**
3252 	 * Shortcuts are handled by
3253 	 * the first ancestor that is a #GtkShortcutManager
3254 	 */
3255 	MANAGED = 1,
3256 	/**
3257 	 * Shortcuts are handled by
3258 	 * the root widget.
3259 	 */
3260 	GLOBAL = 2,
3261 }
3262 alias GtkShortcutScope ShortcutScope;
3263 
3264 /**
3265  * GtkShortcutType specifies the kind of shortcut that is being described.
3266  *
3267  * More values may be added to this enumeration over time.
3268  */
3269 public enum GtkShortcutType
3270 {
3271 	/**
3272 	 * The shortcut is a keyboard accelerator. The GtkShortcutsShortcut:accelerator
3273 	 * property will be used.
3274 	 */
3275 	ACCELERATOR = 0,
3276 	/**
3277 	 * The shortcut is a pinch gesture. GTK provides an icon and subtitle.
3278 	 */
3279 	GESTURE_PINCH = 1,
3280 	/**
3281 	 * The shortcut is a stretch gesture. GTK provides an icon and subtitle.
3282 	 */
3283 	GESTURE_STRETCH = 2,
3284 	/**
3285 	 * The shortcut is a clockwise rotation gesture. GTK provides an icon and subtitle.
3286 	 */
3287 	GESTURE_ROTATE_CLOCKWISE = 3,
3288 	/**
3289 	 * The shortcut is a counterclockwise rotation gesture. GTK provides an icon and subtitle.
3290 	 */
3291 	GESTURE_ROTATE_COUNTERCLOCKWISE = 4,
3292 	/**
3293 	 * The shortcut is a two-finger swipe gesture. GTK provides an icon and subtitle.
3294 	 */
3295 	GESTURE_TWO_FINGER_SWIPE_LEFT = 5,
3296 	/**
3297 	 * The shortcut is a two-finger swipe gesture. GTK provides an icon and subtitle.
3298 	 */
3299 	GESTURE_TWO_FINGER_SWIPE_RIGHT = 6,
3300 	/**
3301 	 * The shortcut is a gesture. The GtkShortcutsShortcut:icon property will be
3302 	 * used.
3303 	 */
3304 	GESTURE = 7,
3305 	/**
3306 	 * The shortcut is a swipe gesture. GTK provides an icon and subtitle.
3307 	 */
3308 	GESTURE_SWIPE_LEFT = 8,
3309 	/**
3310 	 * The shortcut is a swipe gesture. GTK provides an icon and subtitle.
3311 	 */
3312 	GESTURE_SWIPE_RIGHT = 9,
3313 }
3314 alias GtkShortcutType ShortcutType;
3315 
3316 /**
3317  * The mode of the size group determines the directions in which the size
3318  * group affects the requested sizes of its component widgets.
3319  */
3320 public enum GtkSizeGroupMode
3321 {
3322 	/**
3323 	 * group has no effect
3324 	 */
3325 	NONE = 0,
3326 	/**
3327 	 * group affects horizontal requisition
3328 	 */
3329 	HORIZONTAL = 1,
3330 	/**
3331 	 * group affects vertical requisition
3332 	 */
3333 	VERTICAL = 2,
3334 	/**
3335 	 * group affects both horizontal and vertical requisition
3336 	 */
3337 	BOTH = 3,
3338 }
3339 alias GtkSizeGroupMode SizeGroupMode;
3340 
3341 /**
3342  * Specifies a preference for height-for-width or
3343  * width-for-height geometry management.
3344  */
3345 public enum GtkSizeRequestMode
3346 {
3347 	/**
3348 	 * Prefer height-for-width geometry management
3349 	 */
3350 	HEIGHT_FOR_WIDTH = 0,
3351 	/**
3352 	 * Prefer width-for-height geometry management
3353 	 */
3354 	WIDTH_FOR_HEIGHT = 1,
3355 	/**
3356 	 * Don’t trade height-for-width or width-for-height
3357 	 */
3358 	CONSTANT_SIZE = 2,
3359 }
3360 alias GtkSizeRequestMode SizeRequestMode;
3361 
3362 /**
3363  * Determines the direction of a sort.
3364  */
3365 public enum GtkSortType
3366 {
3367 	/**
3368 	 * Sorting is in ascending order.
3369 	 */
3370 	ASCENDING = 0,
3371 	/**
3372 	 * Sorting is in descending order.
3373 	 */
3374 	DESCENDING = 1,
3375 }
3376 alias GtkSortType SortType;
3377 
3378 /**
3379  * Describes changes in a sorter in more detail and allows users
3380  * to optimize resorting.
3381  */
3382 public enum GtkSorterChange
3383 {
3384 	/**
3385 	 * The sorter change cannot be described
3386 	 * by any of the other enumeration values
3387 	 */
3388 	DIFFERENT = 0,
3389 	/**
3390 	 * The sort order was inverted. Comparisons
3391 	 * that returned %GTK_ORDERING_SMALLER now return %GTK_ORDERING_LARGER
3392 	 * and vice versa. Other comparisons return the same values as before.
3393 	 */
3394 	INVERTED = 1,
3395 	/**
3396 	 * The sorter is less strict: Comparisons
3397 	 * may now return %GTK_ORDERING_EQUAL that did not do so before.
3398 	 */
3399 	LESS_STRICT = 2,
3400 	/**
3401 	 * The sorter is more strict: Comparisons
3402 	 * that did return %GTK_ORDERING_EQUAL may not do so anymore.
3403 	 */
3404 	MORE_STRICT = 3,
3405 }
3406 alias GtkSorterChange SorterChange;
3407 
3408 /**
3409  * Describes the type of order that a `GtkSorter` may produce.
3410  */
3411 public enum GtkSorterOrder
3412 {
3413 	/**
3414 	 * A partial order. Any #GtkOrdering is possible.
3415 	 */
3416 	PARTIAL = 0,
3417 	/**
3418 	 * No order, all elements are considered equal.
3419 	 * gtk_sorter_compare() will only return %GTK_ORDERING_EQUAL.
3420 	 */
3421 	NONE = 1,
3422 	/**
3423 	 * A total order. gtk_sorter_compare() will only
3424 	 * return %GTK_ORDERING_EQUAL if an item is compared with itself. Two
3425 	 * different items will never cause this value to be returned.
3426 	 */
3427 	TOTAL = 2,
3428 }
3429 alias GtkSorterOrder SorterOrder;
3430 
3431 /**
3432  * Determines whether the spin button displays values outside the adjustment
3433  * bounds.
3434  *
3435  * See [method@Gtk.SpinButton.set_update_policy].
3436  */
3437 public enum GtkSpinButtonUpdatePolicy
3438 {
3439 	/**
3440 	 * When refreshing your #GtkSpinButton, the value is
3441 	 * always displayed
3442 	 */
3443 	ALWAYS = 0,
3444 	/**
3445 	 * When refreshing your #GtkSpinButton, the value is
3446 	 * only displayed if it is valid within the bounds of the spin button's
3447 	 * adjustment
3448 	 */
3449 	IF_VALID = 1,
3450 }
3451 alias GtkSpinButtonUpdatePolicy SpinButtonUpdatePolicy;
3452 
3453 /**
3454  * The values of the GtkSpinType enumeration are used to specify the
3455  * change to make in gtk_spin_button_spin().
3456  */
3457 public enum GtkSpinType
3458 {
3459 	/**
3460 	 * Increment by the adjustments step increment.
3461 	 */
3462 	STEP_FORWARD = 0,
3463 	/**
3464 	 * Decrement by the adjustments step increment.
3465 	 */
3466 	STEP_BACKWARD = 1,
3467 	/**
3468 	 * Increment by the adjustments page increment.
3469 	 */
3470 	PAGE_FORWARD = 2,
3471 	/**
3472 	 * Decrement by the adjustments page increment.
3473 	 */
3474 	PAGE_BACKWARD = 3,
3475 	/**
3476 	 * Go to the adjustments lower bound.
3477 	 */
3478 	HOME = 4,
3479 	/**
3480 	 * Go to the adjustments upper bound.
3481 	 */
3482 	END = 5,
3483 	/**
3484 	 * Change by a specified amount.
3485 	 */
3486 	USER_DEFINED = 6,
3487 }
3488 alias GtkSpinType SpinType;
3489 
3490 /**
3491  * Possible transitions between pages in a `GtkStack` widget.
3492  *
3493  * New values may be added to this enumeration over time.
3494  */
3495 public enum GtkStackTransitionType
3496 {
3497 	/**
3498 	 * No transition
3499 	 */
3500 	NONE = 0,
3501 	/**
3502 	 * A cross-fade
3503 	 */
3504 	CROSSFADE = 1,
3505 	/**
3506 	 * Slide from left to right
3507 	 */
3508 	SLIDE_RIGHT = 2,
3509 	/**
3510 	 * Slide from right to left
3511 	 */
3512 	SLIDE_LEFT = 3,
3513 	/**
3514 	 * Slide from bottom up
3515 	 */
3516 	SLIDE_UP = 4,
3517 	/**
3518 	 * Slide from top down
3519 	 */
3520 	SLIDE_DOWN = 5,
3521 	/**
3522 	 * Slide from left or right according to the children order
3523 	 */
3524 	SLIDE_LEFT_RIGHT = 6,
3525 	/**
3526 	 * Slide from top down or bottom up according to the order
3527 	 */
3528 	SLIDE_UP_DOWN = 7,
3529 	/**
3530 	 * Cover the old page by sliding up
3531 	 */
3532 	OVER_UP = 8,
3533 	/**
3534 	 * Cover the old page by sliding down
3535 	 */
3536 	OVER_DOWN = 9,
3537 	/**
3538 	 * Cover the old page by sliding to the left
3539 	 */
3540 	OVER_LEFT = 10,
3541 	/**
3542 	 * Cover the old page by sliding to the right
3543 	 */
3544 	OVER_RIGHT = 11,
3545 	/**
3546 	 * Uncover the new page by sliding up
3547 	 */
3548 	UNDER_UP = 12,
3549 	/**
3550 	 * Uncover the new page by sliding down
3551 	 */
3552 	UNDER_DOWN = 13,
3553 	/**
3554 	 * Uncover the new page by sliding to the left
3555 	 */
3556 	UNDER_LEFT = 14,
3557 	/**
3558 	 * Uncover the new page by sliding to the right
3559 	 */
3560 	UNDER_RIGHT = 15,
3561 	/**
3562 	 * Cover the old page sliding up or uncover the new page sliding down, according to order
3563 	 */
3564 	OVER_UP_DOWN = 16,
3565 	/**
3566 	 * Cover the old page sliding down or uncover the new page sliding up, according to order
3567 	 */
3568 	OVER_DOWN_UP = 17,
3569 	/**
3570 	 * Cover the old page sliding left or uncover the new page sliding right, according to order
3571 	 */
3572 	OVER_LEFT_RIGHT = 18,
3573 	/**
3574 	 * Cover the old page sliding right or uncover the new page sliding left, according to order
3575 	 */
3576 	OVER_RIGHT_LEFT = 19,
3577 	/**
3578 	 * Pretend the pages are sides of a cube and rotate that cube to the left
3579 	 */
3580 	ROTATE_LEFT = 20,
3581 	/**
3582 	 * Pretend the pages are sides of a cube and rotate that cube to the right
3583 	 */
3584 	ROTATE_RIGHT = 21,
3585 	/**
3586 	 * Pretend the pages are sides of a cube and rotate that cube to the left or right according to the children order
3587 	 */
3588 	ROTATE_LEFT_RIGHT = 22,
3589 }
3590 alias GtkStackTransitionType StackTransitionType;
3591 
3592 /**
3593  * Describes a widget state.
3594  *
3595  * Widget states are used to match the widget against CSS pseudo-classes.
3596  * Note that GTK extends the regular CSS classes and sometimes uses
3597  * different names.
3598  */
3599 public enum GtkStateFlags
3600 {
3601 	/**
3602 	 * State during normal operation
3603 	 */
3604 	NORMAL = 0,
3605 	/**
3606 	 * Widget is active
3607 	 */
3608 	ACTIVE = 1,
3609 	/**
3610 	 * Widget has a mouse pointer over it
3611 	 */
3612 	PRELIGHT = 2,
3613 	/**
3614 	 * Widget is selected
3615 	 */
3616 	SELECTED = 4,
3617 	/**
3618 	 * Widget is insensitive
3619 	 */
3620 	INSENSITIVE = 8,
3621 	/**
3622 	 * Widget is inconsistent
3623 	 */
3624 	INCONSISTENT = 16,
3625 	/**
3626 	 * Widget has the keyboard focus
3627 	 */
3628 	FOCUSED = 32,
3629 	/**
3630 	 * Widget is in a background toplevel window
3631 	 */
3632 	BACKDROP = 64,
3633 	/**
3634 	 * Widget is in left-to-right text direction
3635 	 */
3636 	DIR_LTR = 128,
3637 	/**
3638 	 * Widget is in right-to-left text direction
3639 	 */
3640 	DIR_RTL = 256,
3641 	/**
3642 	 * Widget is a link
3643 	 */
3644 	LINK = 512,
3645 	/**
3646 	 * The location the widget points to has already been visited
3647 	 */
3648 	VISITED = 1024,
3649 	/**
3650 	 * Widget is checked
3651 	 */
3652 	CHECKED = 2048,
3653 	/**
3654 	 * Widget is highlighted as a drop target for DND
3655 	 */
3656 	DROP_ACTIVE = 4096,
3657 	/**
3658 	 * Widget has the visible focus
3659 	 */
3660 	FOCUS_VISIBLE = 8192,
3661 	/**
3662 	 * Widget contains the keyboard focus
3663 	 */
3664 	FOCUS_WITHIN = 16384,
3665 }
3666 alias GtkStateFlags StateFlags;
3667 
3668 /**
3669  * Specifies how search strings are matched inside text.
3670  */
3671 public enum GtkStringFilterMatchMode
3672 {
3673 	/**
3674 	 * The search string and
3675 	 * text must match exactly.
3676 	 */
3677 	EXACT = 0,
3678 	/**
3679 	 * The search string
3680 	 * must be contained as a substring inside the text.
3681 	 */
3682 	SUBSTRING = 1,
3683 	/**
3684 	 * The text must begin
3685 	 * with the search string.
3686 	 */
3687 	PREFIX = 2,
3688 }
3689 alias GtkStringFilterMatchMode StringFilterMatchMode;
3690 
3691 /**
3692  * Flags that modify the behavior of gtk_style_context_to_string().
3693  *
3694  * New values may be added to this enumeration.
3695  */
3696 public enum GtkStyleContextPrintFlags
3697 {
3698 	/**
3699 	 * Default value.
3700 	 */
3701 	NONE = 0,
3702 	/**
3703 	 * Print the entire tree of
3704 	 * CSS nodes starting at the style context's node
3705 	 */
3706 	RECURSE = 1,
3707 	/**
3708 	 * Show the values of the
3709 	 * CSS properties for each node
3710 	 */
3711 	SHOW_STYLE = 2,
3712 	/**
3713 	 * Show information about
3714 	 * what changes affect the styles
3715 	 */
3716 	SHOW_CHANGE = 4,
3717 }
3718 alias GtkStyleContextPrintFlags StyleContextPrintFlags;
3719 
3720 /**
3721  * Values that can be passed to the GtkWidgetClass.system_setting_changed
3722  * vfunc.
3723  *
3724  * The values indicate which system setting has changed.
3725  * Widgets may need to drop caches, or react otherwise.
3726  *
3727  * Most of the values correspond to `GtkSettings` properties.
3728  *
3729  * More values may be added over time.
3730  */
3731 public enum GtkSystemSetting
3732 {
3733 	/**
3734 	 * the #GtkSettings:gtk-xft-dpi setting has changed
3735 	 */
3736 	DPI = 0,
3737 	/**
3738 	 * The #GtkSettings:gtk-font-name setting has changed
3739 	 */
3740 	FONT_NAME = 1,
3741 	/**
3742 	 * The font configuration has changed in a way that
3743 	 * requires text to be redrawn. This can be any of the
3744 	 * #GtkSettings:gtk-xft-antialias, #GtkSettings:gtk-xft-hinting,
3745 	 * #GtkSettings:gtk-xft-hintstyle, #GtkSettings:gtk-xft-rgba or
3746 	 * #GtkSettings:gtk-fontconfig-timestamp settings
3747 	 */
3748 	FONT_CONFIG = 2,
3749 	/**
3750 	 * The display has changed
3751 	 */
3752 	DISPLAY = 3,
3753 	/**
3754 	 * The icon theme has changed in a way that requires
3755 	 * icons to be looked up again
3756 	 */
3757 	ICON_THEME = 4,
3758 }
3759 alias GtkSystemSetting SystemSetting;
3760 
3761 /**
3762  * Reading directions for text.
3763  */
3764 public enum GtkTextDirection
3765 {
3766 	/**
3767 	 * No direction.
3768 	 */
3769 	NONE = 0,
3770 	/**
3771 	 * Left to right text direction.
3772 	 */
3773 	LTR = 1,
3774 	/**
3775 	 * Right to left text direction.
3776 	 */
3777 	RTL = 2,
3778 }
3779 alias GtkTextDirection TextDirection;
3780 
3781 /**
3782  * Granularity types that extend the text selection. Use the
3783  * #GtkTextView::extend-selection signal to customize the selection.
3784  */
3785 public enum GtkTextExtendSelection
3786 {
3787 	/**
3788 	 * Selects the current word. It is triggered by
3789 	 * a double-click for example.
3790 	 */
3791 	WORD = 0,
3792 	/**
3793 	 * Selects the current line. It is triggered by
3794 	 * a triple-click for example.
3795 	 */
3796 	LINE = 1,
3797 }
3798 alias GtkTextExtendSelection TextExtendSelection;
3799 
3800 /**
3801  * Flags affecting how a search is done.
3802  *
3803  * If neither %GTK_TEXT_SEARCH_VISIBLE_ONLY nor %GTK_TEXT_SEARCH_TEXT_ONLY are
3804  * enabled, the match must be exact; the special 0xFFFC character will match
3805  * embedded paintables or child widgets.
3806  */
3807 public enum GtkTextSearchFlags
3808 {
3809 	/**
3810 	 * Search only visible data. A search match may
3811 	 * have invisible text interspersed.
3812 	 */
3813 	VISIBLE_ONLY = 1,
3814 	/**
3815 	 * Search only text. A match may have paintables or
3816 	 * child widgets mixed inside the matched range.
3817 	 */
3818 	TEXT_ONLY = 2,
3819 	/**
3820 	 * The text will be matched regardless of
3821 	 * what case it is in.
3822 	 */
3823 	CASE_INSENSITIVE = 4,
3824 }
3825 alias GtkTextSearchFlags TextSearchFlags;
3826 
3827 /**
3828  * Used to reference the layers of #GtkTextView for the purpose of customized
3829  * drawing with the ::snapshot_layer vfunc.
3830  */
3831 public enum GtkTextViewLayer
3832 {
3833 	/**
3834 	 * The layer rendered below the text (but above the background).
3835 	 */
3836 	BELOW_TEXT = 0,
3837 	/**
3838 	 * The layer rendered above the text.
3839 	 */
3840 	ABOVE_TEXT = 1,
3841 }
3842 alias GtkTextViewLayer TextViewLayer;
3843 
3844 /**
3845  * Used to reference the parts of #GtkTextView.
3846  */
3847 public enum GtkTextWindowType
3848 {
3849 	/**
3850 	 * Window that floats over scrolling areas.
3851 	 */
3852 	WIDGET = 1,
3853 	/**
3854 	 * Scrollable text window.
3855 	 */
3856 	TEXT = 2,
3857 	/**
3858 	 * Left side border window.
3859 	 */
3860 	LEFT = 3,
3861 	/**
3862 	 * Right side border window.
3863 	 */
3864 	RIGHT = 4,
3865 	/**
3866 	 * Top border window.
3867 	 */
3868 	TOP = 5,
3869 	/**
3870 	 * Bottom border window.
3871 	 */
3872 	BOTTOM = 6,
3873 }
3874 alias GtkTextWindowType TextWindowType;
3875 
3876 /**
3877  * These flags indicate various properties of a #GtkTreeModel.
3878  *
3879  * They are returned by gtk_tree_model_get_flags(), and must be
3880  * static for the lifetime of the object. A more complete description
3881  * of #GTK_TREE_MODEL_ITERS_PERSIST can be found in the overview of
3882  * this section.
3883  */
3884 public enum GtkTreeModelFlags
3885 {
3886 	/**
3887 	 * iterators survive all signals
3888 	 * emitted by the tree
3889 	 */
3890 	ITERS_PERSIST = 1,
3891 	/**
3892 	 * the model is a list only, and never
3893 	 * has children
3894 	 */
3895 	LIST_ONLY = 2,
3896 }
3897 alias GtkTreeModelFlags TreeModelFlags;
3898 
3899 /**
3900  * The sizing method the column uses to determine its width.  Please note
3901  * that %GTK_TREE_VIEW_COLUMN_AUTOSIZE are inefficient for large views, and
3902  * can make columns appear choppy.
3903  */
3904 public enum GtkTreeViewColumnSizing
3905 {
3906 	/**
3907 	 * Columns only get bigger in reaction to changes in the model
3908 	 */
3909 	GROW_ONLY = 0,
3910 	/**
3911 	 * Columns resize to be the optimal size every time the model changes.
3912 	 */
3913 	AUTOSIZE = 1,
3914 	/**
3915 	 * Columns are a fixed numbers of pixels wide.
3916 	 */
3917 	FIXED = 2,
3918 }
3919 alias GtkTreeViewColumnSizing TreeViewColumnSizing;
3920 
3921 /**
3922  * An enum for determining where a dropped row goes.
3923  */
3924 public enum GtkTreeViewDropPosition
3925 {
3926 	/**
3927 	 * dropped row is inserted before
3928 	 */
3929 	BEFORE = 0,
3930 	/**
3931 	 * dropped row is inserted after
3932 	 */
3933 	AFTER = 1,
3934 	/**
3935 	 * dropped row becomes a child or is inserted before
3936 	 */
3937 	INTO_OR_BEFORE = 2,
3938 	/**
3939 	 * dropped row becomes a child or is inserted after
3940 	 */
3941 	INTO_OR_AFTER = 3,
3942 }
3943 alias GtkTreeViewDropPosition TreeViewDropPosition;
3944 
3945 /**
3946  * Used to indicate which grid lines to draw in a tree view.
3947  */
3948 public enum GtkTreeViewGridLines
3949 {
3950 	/**
3951 	 * No grid lines.
3952 	 */
3953 	NONE = 0,
3954 	/**
3955 	 * Horizontal grid lines.
3956 	 */
3957 	HORIZONTAL = 1,
3958 	/**
3959 	 * Vertical grid lines.
3960 	 */
3961 	VERTICAL = 2,
3962 	/**
3963 	 * Horizontal and vertical grid lines.
3964 	 */
3965 	BOTH = 3,
3966 }
3967 alias GtkTreeViewGridLines TreeViewGridLines;
3968 
3969 /**
3970  * See also gtk_print_settings_set_paper_width().
3971  */
3972 public enum GtkUnit
3973 {
3974 	/**
3975 	 * No units.
3976 	 */
3977 	NONE = 0,
3978 	/**
3979 	 * Dimensions in points.
3980 	 */
3981 	POINTS = 1,
3982 	/**
3983 	 * Dimensions in inches.
3984 	 */
3985 	INCH = 2,
3986 	/**
3987 	 * Dimensions in millimeters
3988 	 */
3989 	MM = 3,
3990 }
3991 alias GtkUnit Unit;
3992 
3993 /**
3994  * Describes a type of line wrapping.
3995  */
3996 public enum GtkWrapMode
3997 {
3998 	/**
3999 	 * do not wrap lines; just make the text area wider
4000 	 */
4001 	NONE = 0,
4002 	/**
4003 	 * wrap text, breaking lines anywhere the cursor can
4004 	 * appear (between characters, usually - if you want to be technical,
4005 	 * between graphemes, see pango_get_log_attrs())
4006 	 */
4007 	CHAR = 1,
4008 	/**
4009 	 * wrap text, breaking lines in between words
4010 	 */
4011 	WORD = 2,
4012 	/**
4013 	 * wrap text, breaking lines in between words, or if
4014 	 * that is not enough, also between graphemes
4015 	 */
4016 	WORD_CHAR = 3,
4017 }
4018 alias GtkWrapMode WrapMode;
4019 
4020 struct GtkATContext;
4021 
4022 struct GtkATContextClass;
4023 
4024 struct GtkAboutDialog;
4025 
4026 struct GtkAccessible;
4027 
4028 struct GtkAccessibleInterface;
4029 
4030 struct GtkActionBar;
4031 
4032 struct GtkActionable;
4033 
4034 /**
4035  * The interface vtable for `GtkActionable`.
4036  */
4037 struct GtkActionableInterface
4038 {
4039 	GTypeInterface gIface;
4040 	/**
4041 	 *
4042 	 * Params:
4043 	 *     actionable = a `GtkActionable` widget
4044 	 * Returns: the action name, or %NULL if none is set
4045 	 */
4046 	extern(C) const(char)* function(GtkActionable* actionable) getActionName;
4047 	/** */
4048 	extern(C) void function(GtkActionable* actionable, const(char)* actionName) setActionName;
4049 	/**
4050 	 *
4051 	 * Params:
4052 	 *     actionable = a `GtkActionable` widget
4053 	 * Returns: the current target value
4054 	 */
4055 	extern(C) GVariant* function(GtkActionable* actionable) getActionTargetValue;
4056 	/** */
4057 	extern(C) void function(GtkActionable* actionable, GVariant* targetValue) setActionTargetValue;
4058 }
4059 
4060 struct GtkActivateAction;
4061 
4062 struct GtkActivateActionClass;
4063 
4064 struct GtkAdjustment
4065 {
4066 	GObject parentInstance;
4067 }
4068 
4069 struct GtkAdjustmentClass
4070 {
4071 	GObjectClass parentClass;
4072 	/** */
4073 	extern(C) void function(GtkAdjustment* adjustment) changed;
4074 	/** */
4075 	extern(C) void function(GtkAdjustment* adjustment) valueChanged;
4076 	/** */
4077 	extern(C) void function() GtkReserved1;
4078 	/** */
4079 	extern(C) void function() GtkReserved2;
4080 	/** */
4081 	extern(C) void function() GtkReserved3;
4082 	/** */
4083 	extern(C) void function() GtkReserved4;
4084 }
4085 
4086 struct GtkAlternativeTrigger;
4087 
4088 struct GtkAlternativeTriggerClass;
4089 
4090 struct GtkAnyFilter;
4091 
4092 struct GtkAnyFilterClass;
4093 
4094 struct GtkAppChooser;
4095 
4096 struct GtkAppChooserButton;
4097 
4098 struct GtkAppChooserDialog;
4099 
4100 struct GtkAppChooserWidget;
4101 
4102 struct GtkApplication
4103 {
4104 	GApplication parentInstance;
4105 }
4106 
4107 struct GtkApplicationClass
4108 {
4109 	/**
4110 	 * The parent class.
4111 	 */
4112 	GApplicationClass parentClass;
4113 	/** */
4114 	extern(C) void function(GtkApplication* application, GtkWindow* window) windowAdded;
4115 	/** */
4116 	extern(C) void function(GtkApplication* application, GtkWindow* window) windowRemoved;
4117 	void*[8] padding;
4118 }
4119 
4120 struct GtkApplicationWindow
4121 {
4122 	GtkWindow parentInstance;
4123 }
4124 
4125 struct GtkApplicationWindowClass
4126 {
4127 	/**
4128 	 * The parent class.
4129 	 */
4130 	GtkWindowClass parentClass;
4131 	void*[8] padding;
4132 }
4133 
4134 struct GtkAspectFrame;
4135 
4136 struct GtkAssistant;
4137 
4138 struct GtkAssistantPage;
4139 
4140 struct GtkBinLayout;
4141 
4142 struct GtkBinLayoutClass
4143 {
4144 	GtkLayoutManagerClass parentClass;
4145 }
4146 
4147 struct GtkBitset;
4148 
4149 struct GtkBitsetIter
4150 {
4151 	void*[10] privateData;
4152 }
4153 
4154 struct GtkBookmarkList;
4155 
4156 struct GtkBookmarkListClass
4157 {
4158 	GObjectClass parentClass;
4159 }
4160 
4161 struct GtkBoolFilter;
4162 
4163 struct GtkBoolFilterClass
4164 {
4165 	GtkFilterClass parentClass;
4166 }
4167 
4168 struct GtkBorder
4169 {
4170 	/**
4171 	 * The width of the left border
4172 	 */
4173 	short left;
4174 	/**
4175 	 * The width of the right border
4176 	 */
4177 	short right;
4178 	/**
4179 	 * The width of the top border
4180 	 */
4181 	short top;
4182 	/**
4183 	 * The width of the bottom border
4184 	 */
4185 	short bottom;
4186 }
4187 
4188 struct GtkBox
4189 {
4190 	GtkWidget parentInstance;
4191 }
4192 
4193 struct GtkBoxClass
4194 {
4195 	/**
4196 	 * The parent class.
4197 	 */
4198 	GtkWidgetClass parentClass;
4199 	void*[8] padding;
4200 }
4201 
4202 struct GtkBoxLayout;
4203 
4204 struct GtkBoxLayoutClass
4205 {
4206 	GtkLayoutManagerClass parentClass;
4207 }
4208 
4209 struct GtkBuildable;
4210 
4211 /**
4212  * The `GtkBuildableIface` interface contains methods that are
4213  * necessary to allow `GtkBuilder` to construct an object from
4214  * a `GtkBuilder` UI definition.
4215  */
4216 struct GtkBuildableIface
4217 {
4218 	/**
4219 	 * the parent class
4220 	 */
4221 	GTypeInterface gIface;
4222 	/** */
4223 	extern(C) void function(GtkBuildable* buildable, const(char)* id) setId;
4224 	/** */
4225 	extern(C) const(char)* function(GtkBuildable* buildable) getId;
4226 	/** */
4227 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, const(char)* type) addChild;
4228 	/** */
4229 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder, const(char)* name, GValue* value) setBuildableProperty;
4230 	/** */
4231 	extern(C) GObject* function(GtkBuildable* buildable, GtkBuilder* builder, const(char)* name) constructChild;
4232 	/**
4233 	 *
4234 	 * Params:
4235 	 *     buildable = a #GtkBuildable
4236 	 *     builder = a #GtkBuilder used to construct this object
4237 	 *     child = child object or %NULL for non-child tags
4238 	 *     tagname = name of tag
4239 	 *     parser = a #GtkBuildableParser to fill in
4240 	 *     data = return location for user data that will be passed in
4241 	 *         to parser functions
4242 	 * Returns: %TRUE if an object has a custom implementation, %FALSE
4243 	 *     if it doesn't.
4244 	 */
4245 	extern(C) int function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, const(char)* tagname, GtkBuildableParser* parser, void** data) customTagStart;
4246 	/** */
4247 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, const(char)* tagname, void* data) customTagEnd;
4248 	/** */
4249 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, const(char)* tagname, void* data) customFinished;
4250 	/** */
4251 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder) parserFinished;
4252 	/**
4253 	 *
4254 	 * Params:
4255 	 *     buildable = a #GtkBuildable
4256 	 *     builder = a #GtkBuilder
4257 	 *     childname = name of child
4258 	 * Returns: the internal child of the buildable object
4259 	 */
4260 	extern(C) GObject* function(GtkBuildable* buildable, GtkBuilder* builder, const(char)* childname) getInternalChild;
4261 }
4262 
4263 struct GtkBuildableParseContext;
4264 
4265 /**
4266  * A sub-parser for `GtkBuildable` implementations.
4267  */
4268 struct GtkBuildableParser
4269 {
4270 	/** */
4271 	extern(C) void function(GtkBuildableParseContext* context, const(char)* elementName, char** attributeNames, char** attributeValues, void* userData, GError** err) startElement;
4272 	/** */
4273 	extern(C) void function(GtkBuildableParseContext* context, const(char)* elementName, void* userData, GError** err) endElement;
4274 	/** */
4275 	extern(C) void function(GtkBuildableParseContext* context, const(char)* text, size_t textLen, void* userData, GError** err) text;
4276 	/** */
4277 	extern(C) void function(GtkBuildableParseContext* context, GError* error, void* userData) error;
4278 	void*[4] padding;
4279 }
4280 
4281 struct GtkBuilder;
4282 
4283 struct GtkBuilderCScope
4284 {
4285 	GObject parentInstance;
4286 }
4287 
4288 struct GtkBuilderCScopeClass
4289 {
4290 	GObjectClass parentClass;
4291 }
4292 
4293 struct GtkBuilderClass;
4294 
4295 struct GtkBuilderListItemFactory;
4296 
4297 struct GtkBuilderListItemFactoryClass;
4298 
4299 struct GtkBuilderScope;
4300 
4301 /**
4302  * The virtual function table to implement for #GtkBuilderScope implementations.
4303  * Default implementations for each function do exist, but they usually just fail,
4304  * so it is suggested that implementations implement all of them.
4305  */
4306 struct GtkBuilderScopeInterface
4307 {
4308 	GTypeInterface gIface;
4309 	/** */
4310 	extern(C) GType function(GtkBuilderScope* self, GtkBuilder* builder, const(char)* typeName) getTypeFromName;
4311 	/** */
4312 	extern(C) GType function(GtkBuilderScope* self, GtkBuilder* builder, const(char)* functionName) getTypeFromFunction;
4313 	/** */
4314 	extern(C) GClosure* function(GtkBuilderScope* self, GtkBuilder* builder, const(char)* functionName, GtkBuilderClosureFlags flags, GObject* object, GError** err) createClosure;
4315 }
4316 
4317 struct GtkButton
4318 {
4319 	GtkWidget parentInstance;
4320 }
4321 
4322 struct GtkButtonClass
4323 {
4324 	/**
4325 	 * The parent class.
4326 	 */
4327 	GtkWidgetClass parentClass;
4328 	/** */
4329 	extern(C) void function(GtkButton* button) clicked;
4330 	/** */
4331 	extern(C) void function(GtkButton* button) activate;
4332 	void*[8] padding;
4333 }
4334 
4335 struct GtkButtonPrivate;
4336 
4337 struct GtkCClosureExpression;
4338 
4339 struct GtkCalendar;
4340 
4341 struct GtkCallbackAction;
4342 
4343 struct GtkCallbackActionClass;
4344 
4345 struct GtkCellArea
4346 {
4347 	GObject parentInstance;
4348 }
4349 
4350 struct GtkCellAreaBox;
4351 
4352 struct GtkCellAreaClass
4353 {
4354 	GObjectClass parentClass;
4355 	/** */
4356 	extern(C) void function(GtkCellArea* area, GtkCellRenderer* renderer) add;
4357 	/** */
4358 	extern(C) void function(GtkCellArea* area, GtkCellRenderer* renderer) remove;
4359 	/** */
4360 	extern(C) void function(GtkCellArea* area, GtkCellCallback callback, void* callbackData) foreach_;
4361 	/** */
4362 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, GdkRectangle* cellArea, GdkRectangle* backgroundArea, GtkCellAllocCallback callback, void* callbackData) foreachAlloc;
4363 	/**
4364 	 *
4365 	 * Params:
4366 	 *     area = a #GtkCellArea
4367 	 *     context = the #GtkCellAreaContext for this row of data.
4368 	 *     widget = the #GtkWidget that @area is rendering to
4369 	 *     event = the #GdkEvent to handle
4370 	 *     cellArea = the @widget relative coordinates for @area
4371 	 *     flags = the #GtkCellRendererState for @area in this row.
4372 	 * Returns: %TRUE if the event was handled by @area.
4373 	 */
4374 	extern(C) int function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, GdkEvent* event, GdkRectangle* cellArea, GtkCellRendererState flags) event;
4375 	/** */
4376 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, GtkSnapshot* snapshot, GdkRectangle* backgroundArea, GdkRectangle* cellArea, GtkCellRendererState flags, int paintFocus) snapshot;
4377 	/** */
4378 	extern(C) void function(GtkCellArea* area, GtkTreeModel* treeModel, GtkTreeIter* iter, int isExpander, int isExpanded) applyAttributes;
4379 	/**
4380 	 *
4381 	 * Params:
4382 	 *     area = a #GtkCellArea
4383 	 * Returns: a newly created #GtkCellAreaContext which can be used with @area.
4384 	 */
4385 	extern(C) GtkCellAreaContext* function(GtkCellArea* area) createContext;
4386 	/**
4387 	 *
4388 	 * Params:
4389 	 *     area = a #GtkCellArea
4390 	 *     context = the #GtkCellAreaContext to copy
4391 	 * Returns: a newly created #GtkCellAreaContext copy of @context.
4392 	 */
4393 	extern(C) GtkCellAreaContext* function(GtkCellArea* area, GtkCellAreaContext* context) copyContext;
4394 	/**
4395 	 *
4396 	 * Params:
4397 	 *     area = a #GtkCellArea
4398 	 * Returns: The #GtkSizeRequestMode preferred by @area.
4399 	 */
4400 	extern(C) GtkSizeRequestMode function(GtkCellArea* area) getRequestMode;
4401 	/** */
4402 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, int* minimumWidth, int* naturalWidth) getPreferredWidth;
4403 	/** */
4404 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, int width, int* minimumHeight, int* naturalHeight) getPreferredHeightForWidth;
4405 	/** */
4406 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, int* minimumHeight, int* naturalHeight) getPreferredHeight;
4407 	/** */
4408 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, int height, int* minimumWidth, int* naturalWidth) getPreferredWidthForHeight;
4409 	/** */
4410 	extern(C) void function(GtkCellArea* area, GtkCellRenderer* renderer, uint propertyId, GValue* value, GParamSpec* pspec) setCellProperty;
4411 	/** */
4412 	extern(C) void function(GtkCellArea* area, GtkCellRenderer* renderer, uint propertyId, GValue* value, GParamSpec* pspec) getCellProperty;
4413 	/**
4414 	 *
4415 	 * Params:
4416 	 *     area = a #GtkCellArea
4417 	 *     direction = the #GtkDirectionType
4418 	 * Returns: %TRUE if focus remains inside @area as a result of this call.
4419 	 */
4420 	extern(C) int function(GtkCellArea* area, GtkDirectionType direction) focus;
4421 	/**
4422 	 *
4423 	 * Params:
4424 	 *     area = a #GtkCellArea
4425 	 * Returns: whether @area can do anything when activated.
4426 	 */
4427 	extern(C) int function(GtkCellArea* area) isActivatable;
4428 	/**
4429 	 *
4430 	 * Params:
4431 	 *     area = a #GtkCellArea
4432 	 *     context = the #GtkCellAreaContext in context with the current row data
4433 	 *     widget = the #GtkWidget that @area is rendering on
4434 	 *     cellArea = the size and location of @area relative to @widget’s allocation
4435 	 *     flags = the #GtkCellRendererState flags for @area for this row of data.
4436 	 *     editOnly = if %TRUE then only cell renderers that are %GTK_CELL_RENDERER_MODE_EDITABLE
4437 	 *         will be activated.
4438 	 * Returns: Whether @area was successfully activated.
4439 	 */
4440 	extern(C) int function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, GdkRectangle* cellArea, GtkCellRendererState flags, int editOnly) activate;
4441 	void*[8] padding;
4442 }
4443 
4444 struct GtkCellAreaContext
4445 {
4446 	GObject parentInstance;
4447 }
4448 
4449 struct GtkCellAreaContextClass
4450 {
4451 	GObjectClass parentClass;
4452 	/** */
4453 	extern(C) void function(GtkCellAreaContext* context, int width, int height) allocate;
4454 	/** */
4455 	extern(C) void function(GtkCellAreaContext* context) reset;
4456 	/** */
4457 	extern(C) void function(GtkCellAreaContext* context, int width, int* minimumHeight, int* naturalHeight) getPreferredHeightForWidth;
4458 	/** */
4459 	extern(C) void function(GtkCellAreaContext* context, int height, int* minimumWidth, int* naturalWidth) getPreferredWidthForHeight;
4460 	void*[8] padding;
4461 }
4462 
4463 struct GtkCellAreaContextPrivate;
4464 
4465 struct GtkCellEditable;
4466 
4467 struct GtkCellEditableIface
4468 {
4469 	GTypeInterface gIface;
4470 	/** */
4471 	extern(C) void function(GtkCellEditable* cellEditable) editingDone;
4472 	/** */
4473 	extern(C) void function(GtkCellEditable* cellEditable) removeWidget;
4474 	/** */
4475 	extern(C) void function(GtkCellEditable* cellEditable, GdkEvent* event) startEditing;
4476 }
4477 
4478 struct GtkCellLayout;
4479 
4480 struct GtkCellLayoutIface
4481 {
4482 	GTypeInterface gIface;
4483 	/** */
4484 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, int expand) packStart;
4485 	/** */
4486 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, int expand) packEnd;
4487 	/** */
4488 	extern(C) void function(GtkCellLayout* cellLayout) clear;
4489 	/** */
4490 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, const(char)* attribute, int column) addAttribute;
4491 	/** */
4492 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, GtkCellLayoutDataFunc func, void* funcData, GDestroyNotify destroy) setCellDataFunc;
4493 	/** */
4494 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell) clearAttributes;
4495 	/** */
4496 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, int position) reorder;
4497 	/**
4498 	 *
4499 	 * Params:
4500 	 *     cellLayout = a #GtkCellLayout
4501 	 * Returns: a list of cell renderers. The list, but not the renderers has
4502 	 *     been newly allocated and should be freed with g_list_free()
4503 	 *     when no longer needed.
4504 	 */
4505 	extern(C) GList* function(GtkCellLayout* cellLayout) getCells;
4506 	/**
4507 	 *
4508 	 * Params:
4509 	 *     cellLayout = a #GtkCellLayout
4510 	 * Returns: the cell area used by @cell_layout,
4511 	 *     or %NULL in case no cell area is used.
4512 	 */
4513 	extern(C) GtkCellArea* function(GtkCellLayout* cellLayout) getArea;
4514 }
4515 
4516 struct GtkCellRenderer
4517 {
4518 	GObject parentInstance;
4519 	GtkCellRendererPrivate* priv;
4520 }
4521 
4522 struct GtkCellRendererAccel;
4523 
4524 struct GtkCellRendererClass
4525 {
4526 	GObjectClass parentClass;
4527 	/**
4528 	 *
4529 	 * Params:
4530 	 *     cell = a #GtkCellRenderer    instance
4531 	 * Returns: The #GtkSizeRequestMode preferred by this renderer.
4532 	 */
4533 	extern(C) GtkSizeRequestMode function(GtkCellRenderer* cell) getRequestMode;
4534 	/** */
4535 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, int* minimumSize, int* naturalSize) getPreferredWidth;
4536 	/** */
4537 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, int width, int* minimumHeight, int* naturalHeight) getPreferredHeightForWidth;
4538 	/** */
4539 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, int* minimumSize, int* naturalSize) getPreferredHeight;
4540 	/** */
4541 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, int height, int* minimumWidth, int* naturalWidth) getPreferredWidthForHeight;
4542 	/** */
4543 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, GtkCellRendererState flags, GdkRectangle* cellArea, GdkRectangle* alignedArea) getAlignedArea;
4544 	/** */
4545 	extern(C) void function(GtkCellRenderer* cell, GtkSnapshot* snapshot, GtkWidget* widget, GdkRectangle* backgroundArea, GdkRectangle* cellArea, GtkCellRendererState flags) snapshot;
4546 	/**
4547 	 *
4548 	 * Params:
4549 	 *     cell = a #GtkCellRenderer
4550 	 *     event = a #GdkEvent
4551 	 *     widget = widget that received the event
4552 	 *     path = widget-dependent string representation of the event location;
4553 	 *         e.g. for #GtkTreeView, a string representation of #GtkTreePath
4554 	 *     backgroundArea = background area as passed to gtk_cell_renderer_render()
4555 	 *     cellArea = cell area as passed to gtk_cell_renderer_render()
4556 	 *     flags = render flags
4557 	 * Returns: %TRUE if the event was consumed/handled
4558 	 */
4559 	extern(C) int function(GtkCellRenderer* cell, GdkEvent* event, GtkWidget* widget, const(char)* path, GdkRectangle* backgroundArea, GdkRectangle* cellArea, GtkCellRendererState flags) activate;
4560 	/**
4561 	 *
4562 	 * Params:
4563 	 *     cell = a #GtkCellRenderer
4564 	 *     event = a #GdkEvent
4565 	 *     widget = widget that received the event
4566 	 *     path = widget-dependent string representation of the event location;
4567 	 *         e.g. for #GtkTreeView, a string representation of #GtkTreePath
4568 	 *     backgroundArea = background area as passed to gtk_cell_renderer_render()
4569 	 *     cellArea = cell area as passed to gtk_cell_renderer_render()
4570 	 *     flags = render flags
4571 	 * Returns: A new #GtkCellEditable for editing this
4572 	 *     @cell, or %NULL if editing is not possible
4573 	 */
4574 	extern(C) GtkCellEditable* function(GtkCellRenderer* cell, GdkEvent* event, GtkWidget* widget, const(char)* path, GdkRectangle* backgroundArea, GdkRectangle* cellArea, GtkCellRendererState flags) startEditing;
4575 	/** */
4576 	extern(C) void function(GtkCellRenderer* cell) editingCanceled;
4577 	/** */
4578 	extern(C) void function(GtkCellRenderer* cell, GtkCellEditable* editable, const(char)* path) editingStarted;
4579 	void*[8] padding;
4580 }
4581 
4582 struct GtkCellRendererClassPrivate;
4583 
4584 struct GtkCellRendererCombo;
4585 
4586 struct GtkCellRendererPixbuf;
4587 
4588 struct GtkCellRendererPrivate;
4589 
4590 struct GtkCellRendererProgress;
4591 
4592 struct GtkCellRendererSpin;
4593 
4594 struct GtkCellRendererSpinner;
4595 
4596 struct GtkCellRendererText
4597 {
4598 	GtkCellRenderer parent;
4599 }
4600 
4601 struct GtkCellRendererTextClass
4602 {
4603 	GtkCellRendererClass parentClass;
4604 	/** */
4605 	extern(C) void function(GtkCellRendererText* cellRendererText, const(char)* path, const(char)* newText) edited;
4606 	void*[8] padding;
4607 }
4608 
4609 struct GtkCellRendererToggle;
4610 
4611 struct GtkCellView;
4612 
4613 struct GtkCenterBox;
4614 
4615 struct GtkCenterBoxClass;
4616 
4617 struct GtkCenterLayout;
4618 
4619 struct GtkCenterLayoutClass
4620 {
4621 	GtkLayoutManagerClass parentClass;
4622 }
4623 
4624 struct GtkCheckButton
4625 {
4626 	GtkWidget parentInstance;
4627 }
4628 
4629 struct GtkCheckButtonClass
4630 {
4631 	GtkWidgetClass parentClass;
4632 	/** */
4633 	extern(C) void function(GtkCheckButton* checkButton) toggled;
4634 	/** */
4635 	extern(C) void function(GtkCheckButton* checkButton) activate;
4636 	void*[7] padding;
4637 }
4638 
4639 struct GtkClosureExpression;
4640 
4641 struct GtkColorButton;
4642 
4643 struct GtkColorChooser;
4644 
4645 struct GtkColorChooserDialog;
4646 
4647 struct GtkColorChooserInterface
4648 {
4649 	GTypeInterface baseInterface;
4650 	/** */
4651 	extern(C) void function(GtkColorChooser* chooser, GdkRGBA* color) getRgba;
4652 	/** */
4653 	extern(C) void function(GtkColorChooser* chooser, GdkRGBA* color) setRgba;
4654 	/** */
4655 	extern(C) void function(GtkColorChooser* chooser, GtkOrientation orientation, int colorsPerLine, int nColors, GdkRGBA* colors) addPalette;
4656 	/** */
4657 	extern(C) void function(GtkColorChooser* chooser, GdkRGBA* color) colorActivated;
4658 	void*[12] padding;
4659 }
4660 
4661 struct GtkColorChooserWidget;
4662 
4663 struct GtkColumnView;
4664 
4665 struct GtkColumnViewClass;
4666 
4667 struct GtkColumnViewColumn;
4668 
4669 struct GtkColumnViewColumnClass;
4670 
4671 struct GtkComboBox
4672 {
4673 	GtkWidget parentInstance;
4674 }
4675 
4676 struct GtkComboBoxClass
4677 {
4678 	/**
4679 	 * The parent class.
4680 	 */
4681 	GtkWidgetClass parentClass;
4682 	/** */
4683 	extern(C) void function(GtkComboBox* comboBox) changed;
4684 	/** */
4685 	extern(C) char* function(GtkComboBox* comboBox, const(char)* path) formatEntryText;
4686 	void*[8] padding;
4687 }
4688 
4689 struct GtkComboBoxText;
4690 
4691 struct GtkConstantExpression;
4692 
4693 struct GtkConstraint;
4694 
4695 struct GtkConstraintClass
4696 {
4697 	GObjectClass parentClass;
4698 }
4699 
4700 struct GtkConstraintGuide;
4701 
4702 struct GtkConstraintGuideClass
4703 {
4704 	GObjectClass parentClass;
4705 }
4706 
4707 struct GtkConstraintLayout;
4708 
4709 struct GtkConstraintLayoutChild;
4710 
4711 struct GtkConstraintLayoutChildClass
4712 {
4713 	GtkLayoutChildClass parentClass;
4714 }
4715 
4716 struct GtkConstraintLayoutClass
4717 {
4718 	GtkLayoutManagerClass parentClass;
4719 }
4720 
4721 struct GtkConstraintTarget;
4722 
4723 struct GtkConstraintTargetInterface;
4724 
4725 /**
4726  * Represents a location in a file or other source of data parsed
4727  * by the CSS engine.
4728  *
4729  * The @bytes and @line_bytes offsets are meant to be used to
4730  * programmatically match data. The @lines and @line_chars offsets
4731  * can be used for printing the location in a file.
4732  *
4733  * Note that the @lines parameter starts from 0 and is increased
4734  * whenever a CSS line break is encountered. (CSS defines the C character
4735  * sequences "\r\n", "\r", "\n" and "\f" as newlines.)
4736  * If your document uses different rules for line breaking, you might want
4737  * run into problems here.
4738  */
4739 struct GtkCssLocation
4740 {
4741 	/**
4742 	 * number of bytes parsed since the beginning
4743 	 */
4744 	size_t bytes;
4745 	/**
4746 	 * number of characters parsed since the beginning
4747 	 */
4748 	size_t chars;
4749 	/**
4750 	 * number of full lines that have been parsed
4751 	 * If you want to display this as a line number, you
4752 	 * need to add 1 to this.
4753 	 */
4754 	size_t lines;
4755 	/**
4756 	 * Number of bytes parsed since the last line break
4757 	 */
4758 	size_t lineBytes;
4759 	/**
4760 	 * Number of characters parsed since the last line
4761 	 * break
4762 	 */
4763 	size_t lineChars;
4764 }
4765 
4766 struct GtkCssProvider
4767 {
4768 	GObject parentInstance;
4769 }
4770 
4771 struct GtkCssProviderClass;
4772 
4773 struct GtkCssProviderPrivate;
4774 
4775 struct GtkCssSection;
4776 
4777 struct GtkCssStyleChange;
4778 
4779 struct GtkCustomFilter;
4780 
4781 struct GtkCustomFilterClass
4782 {
4783 	GtkFilterClass parentClass;
4784 }
4785 
4786 struct GtkCustomLayout;
4787 
4788 struct GtkCustomLayoutClass
4789 {
4790 	GtkLayoutManagerClass parentClass;
4791 }
4792 
4793 struct GtkCustomSorter;
4794 
4795 struct GtkCustomSorterClass
4796 {
4797 	GtkSorterClass parentClass;
4798 }
4799 
4800 struct GtkDialog
4801 {
4802 	GtkWindow parentInstance;
4803 }
4804 
4805 struct GtkDialogClass
4806 {
4807 	/**
4808 	 * The parent class.
4809 	 */
4810 	GtkWindowClass parentClass;
4811 	/** */
4812 	extern(C) void function(GtkDialog* dialog, int responseId) response;
4813 	/** */
4814 	extern(C) void function(GtkDialog* dialog) close;
4815 	void*[8] padding;
4816 }
4817 
4818 struct GtkDirectoryList;
4819 
4820 struct GtkDirectoryListClass
4821 {
4822 	GObjectClass parentClass;
4823 }
4824 
4825 struct GtkDragIcon;
4826 
4827 struct GtkDragIconClass
4828 {
4829 	GtkWidgetClass parentClass;
4830 }
4831 
4832 struct GtkDragSource;
4833 
4834 struct GtkDragSourceClass;
4835 
4836 struct GtkDrawingArea
4837 {
4838 	GtkWidget widget;
4839 }
4840 
4841 struct GtkDrawingAreaClass
4842 {
4843 	GtkWidgetClass parentClass;
4844 	/** */
4845 	extern(C) void function(GtkDrawingArea* area, int width, int height) resize;
4846 	void*[8] padding;
4847 }
4848 
4849 struct GtkDropControllerMotion;
4850 
4851 struct GtkDropControllerMotionClass;
4852 
4853 struct GtkDropDown;
4854 
4855 struct GtkDropDownClass
4856 {
4857 	GtkWidgetClass parentClass;
4858 }
4859 
4860 struct GtkDropTarget;
4861 
4862 struct GtkDropTargetAsync;
4863 
4864 struct GtkDropTargetAsyncClass;
4865 
4866 struct GtkDropTargetClass;
4867 
4868 struct GtkEditable;
4869 
4870 struct GtkEditableInterface
4871 {
4872 	GTypeInterface baseIface;
4873 	/** */
4874 	extern(C) void function(GtkEditable* editable, const(char)* text, int length, int* position) insertText;
4875 	/** */
4876 	extern(C) void function(GtkEditable* editable, int startPos, int endPos) deleteText;
4877 	/** */
4878 	extern(C) void function(GtkEditable* editable) changed;
4879 	/**
4880 	 *
4881 	 * Params:
4882 	 *     editable = a `GtkEditable`
4883 	 * Returns: a pointer to the contents of the editable
4884 	 */
4885 	extern(C) const(char)* function(GtkEditable* editable) getText;
4886 	/** */
4887 	extern(C) void function(GtkEditable* editable, const(char)* text, int length, int* position) doInsertText;
4888 	/** */
4889 	extern(C) void function(GtkEditable* editable, int startPos, int endPos) doDeleteText;
4890 	/**
4891 	 *
4892 	 * Params:
4893 	 *     editable = a `GtkEditable`
4894 	 *     startPos = location to store the starting position, or %NULL
4895 	 *     endPos = location to store the end position, or %NULL
4896 	 * Returns: %TRUE if there is a non-empty selection, %FALSE otherwise
4897 	 */
4898 	extern(C) int function(GtkEditable* editable, int* startPos, int* endPos) getSelectionBounds;
4899 	/** */
4900 	extern(C) void function(GtkEditable* editable, int startPos, int endPos) setSelectionBounds;
4901 	/**
4902 	 *
4903 	 * Params:
4904 	 *     editable = a `GtkEditable`
4905 	 * Returns: the delegate `GtkEditable`
4906 	 */
4907 	extern(C) GtkEditable* function(GtkEditable* editable) getDelegate;
4908 }
4909 
4910 struct GtkEditableLabel;
4911 
4912 struct GtkEditableLabelClass
4913 {
4914 	GtkWidgetClass parentClass;
4915 }
4916 
4917 struct GtkEmojiChooser;
4918 
4919 struct GtkEmojiChooserClass;
4920 
4921 struct GtkEntry
4922 {
4923 	GtkWidget parentInstance;
4924 }
4925 
4926 struct GtkEntryBuffer
4927 {
4928 	GObject parentInstance;
4929 }
4930 
4931 struct GtkEntryBufferClass
4932 {
4933 	GObjectClass parentClass;
4934 	/** */
4935 	extern(C) void function(GtkEntryBuffer* buffer, uint position, const(char)* chars, uint nChars) insertedText;
4936 	/** */
4937 	extern(C) void function(GtkEntryBuffer* buffer, uint position, uint nChars) deletedText;
4938 	/** */
4939 	extern(C) const(char)* function(GtkEntryBuffer* buffer, size_t* nBytes) getText;
4940 	/**
4941 	 *
4942 	 * Params:
4943 	 *     buffer = a `GtkEntryBuffer`
4944 	 * Returns: The number of characters in the buffer.
4945 	 */
4946 	extern(C) uint function(GtkEntryBuffer* buffer) getLength;
4947 	/**
4948 	 *
4949 	 * Params:
4950 	 *     buffer = a `GtkEntryBuffer`
4951 	 *     position = the position at which to insert text.
4952 	 *     chars = the text to insert into the buffer.
4953 	 *     nChars = the length of the text in characters, or -1
4954 	 * Returns: The number of characters actually inserted.
4955 	 */
4956 	extern(C) uint function(GtkEntryBuffer* buffer, uint position, const(char)* chars, uint nChars) insertText;
4957 	/**
4958 	 *
4959 	 * Params:
4960 	 *     buffer = a `GtkEntryBuffer`
4961 	 *     position = position at which to delete text
4962 	 *     nChars = number of characters to delete
4963 	 * Returns: The number of characters deleted.
4964 	 */
4965 	extern(C) uint function(GtkEntryBuffer* buffer, uint position, uint nChars) deleteText;
4966 	/** */
4967 	extern(C) void function() GtkReserved1;
4968 	/** */
4969 	extern(C) void function() GtkReserved2;
4970 	/** */
4971 	extern(C) void function() GtkReserved3;
4972 	/** */
4973 	extern(C) void function() GtkReserved4;
4974 	/** */
4975 	extern(C) void function() GtkReserved5;
4976 	/** */
4977 	extern(C) void function() GtkReserved6;
4978 	/** */
4979 	extern(C) void function() GtkReserved7;
4980 	/** */
4981 	extern(C) void function() GtkReserved8;
4982 }
4983 
4984 /**
4985  * Class structure for #GtkEntry. All virtual functions have a default
4986  * implementation. Derived classes may set the virtual function pointers for the
4987  * signal handlers to %NULL, but must keep @get_text_area_size and
4988  * @get_frame_size non-%NULL; either use the default implementation, or provide
4989  * a custom one.
4990  */
4991 struct GtkEntryClass
4992 {
4993 	/**
4994 	 * The parent class.
4995 	 */
4996 	GtkWidgetClass parentClass;
4997 	/** */
4998 	extern(C) void function(GtkEntry* entry) activate;
4999 	void*[8] padding;
5000 }
5001 
5002 struct GtkEntryCompletion;
5003 
5004 struct GtkEventController;
5005 
5006 struct GtkEventControllerClass;
5007 
5008 struct GtkEventControllerFocus;
5009 
5010 struct GtkEventControllerFocusClass;
5011 
5012 struct GtkEventControllerKey;
5013 
5014 struct GtkEventControllerKeyClass;
5015 
5016 struct GtkEventControllerLegacy;
5017 
5018 struct GtkEventControllerLegacyClass;
5019 
5020 struct GtkEventControllerMotion;
5021 
5022 struct GtkEventControllerMotionClass;
5023 
5024 struct GtkEventControllerScroll;
5025 
5026 struct GtkEventControllerScrollClass;
5027 
5028 struct GtkEveryFilter;
5029 
5030 struct GtkEveryFilterClass;
5031 
5032 struct GtkExpander;
5033 
5034 struct GtkExpression;
5035 
5036 struct GtkExpressionWatch;
5037 
5038 struct GtkFileChooser;
5039 
5040 struct GtkFileChooserDialog;
5041 
5042 struct GtkFileChooserNative;
5043 
5044 struct GtkFileChooserNativeClass
5045 {
5046 	GtkNativeDialogClass parentClass;
5047 }
5048 
5049 struct GtkFileChooserWidget;
5050 
5051 struct GtkFileFilter;
5052 
5053 struct GtkFilter
5054 {
5055 	GObject parentInstance;
5056 }
5057 
5058 struct GtkFilterClass
5059 {
5060 	GObjectClass parentClass;
5061 	/**
5062 	 *
5063 	 * Params:
5064 	 *     self = a `GtkFilter`
5065 	 *     item = The item to check
5066 	 * Returns: %TRUE if the filter matches the item and a filter model should
5067 	 *     keep it, %FALSE if not.
5068 	 */
5069 	extern(C) int function(GtkFilter* self, void* item) match;
5070 	/**
5071 	 *
5072 	 * Params:
5073 	 *     self = a #GtkFilter
5074 	 * Returns: the strictness of @self
5075 	 */
5076 	extern(C) GtkFilterMatch function(GtkFilter* self) getStrictness;
5077 	/** */
5078 	extern(C) void function() GtkReserved1;
5079 	/** */
5080 	extern(C) void function() GtkReserved2;
5081 	/** */
5082 	extern(C) void function() GtkReserved3;
5083 	/** */
5084 	extern(C) void function() GtkReserved4;
5085 	/** */
5086 	extern(C) void function() GtkReserved5;
5087 	/** */
5088 	extern(C) void function() GtkReserved6;
5089 	/** */
5090 	extern(C) void function() GtkReserved7;
5091 	/** */
5092 	extern(C) void function() GtkReserved8;
5093 }
5094 
5095 struct GtkFilterListModel;
5096 
5097 struct GtkFilterListModelClass
5098 {
5099 	GObjectClass parentClass;
5100 }
5101 
5102 struct GtkFixed
5103 {
5104 	GtkWidget parentInstance;
5105 }
5106 
5107 struct GtkFixedClass
5108 {
5109 	GtkWidgetClass parentClass;
5110 	void*[8] padding;
5111 }
5112 
5113 struct GtkFixedLayout;
5114 
5115 struct GtkFixedLayoutChild;
5116 
5117 struct GtkFixedLayoutChildClass
5118 {
5119 	GtkLayoutChildClass parentClass;
5120 }
5121 
5122 struct GtkFixedLayoutClass
5123 {
5124 	GtkLayoutManagerClass parentClass;
5125 }
5126 
5127 struct GtkFlattenListModel;
5128 
5129 struct GtkFlattenListModelClass
5130 {
5131 	GObjectClass parentClass;
5132 }
5133 
5134 struct GtkFlowBox;
5135 
5136 struct GtkFlowBoxChild
5137 {
5138 	GtkWidget parentInstance;
5139 }
5140 
5141 struct GtkFlowBoxChildClass
5142 {
5143 	GtkWidgetClass parentClass;
5144 	/** */
5145 	extern(C) void function(GtkFlowBoxChild* child) activate;
5146 	void*[8] padding;
5147 }
5148 
5149 struct GtkFontButton;
5150 
5151 struct GtkFontChooser;
5152 
5153 struct GtkFontChooserDialog;
5154 
5155 struct GtkFontChooserIface
5156 {
5157 	GTypeInterface baseIface;
5158 	/**
5159 	 *
5160 	 * Params:
5161 	 *     fontchooser = a `GtkFontChooser`
5162 	 * Returns: A `PangoFontFamily` representing the
5163 	 *     selected font family, or %NULL. The returned object is owned by @fontchooser
5164 	 *     and must not be modified or freed.
5165 	 */
5166 	extern(C) PangoFontFamily* function(GtkFontChooser* fontchooser) getFontFamily;
5167 	/**
5168 	 *
5169 	 * Params:
5170 	 *     fontchooser = a `GtkFontChooser`
5171 	 * Returns: A `PangoFontFace` representing the
5172 	 *     selected font group details, or %NULL. The returned object is owned by
5173 	 *     @fontchooser and must not be modified or freed.
5174 	 */
5175 	extern(C) PangoFontFace* function(GtkFontChooser* fontchooser) getFontFace;
5176 	/**
5177 	 *
5178 	 * Params:
5179 	 *     fontchooser = a `GtkFontChooser`
5180 	 * Returns: A n integer representing the selected font size,
5181 	 *     or -1 if no font size is selected.
5182 	 */
5183 	extern(C) int function(GtkFontChooser* fontchooser) getFontSize;
5184 	/** */
5185 	extern(C) void function(GtkFontChooser* fontchooser, GtkFontFilterFunc filter, void* userData, GDestroyNotify destroy) setFilterFunc;
5186 	/** */
5187 	extern(C) void function(GtkFontChooser* chooser, const(char)* fontname) fontActivated;
5188 	/** */
5189 	extern(C) void function(GtkFontChooser* fontchooser, PangoFontMap* fontmap) setFontMap;
5190 	/**
5191 	 *
5192 	 * Params:
5193 	 *     fontchooser = a `GtkFontChooser`
5194 	 * Returns: a `PangoFontMap`, or %NULL
5195 	 */
5196 	extern(C) PangoFontMap* function(GtkFontChooser* fontchooser) getFontMap;
5197 	void*[10] padding;
5198 }
5199 
5200 struct GtkFontChooserWidget;
5201 
5202 struct GtkFrame
5203 {
5204 	GtkWidget parentInstance;
5205 }
5206 
5207 struct GtkFrameClass
5208 {
5209 	/**
5210 	 * The parent class.
5211 	 */
5212 	GtkWidgetClass parentClass;
5213 	/** */
5214 	extern(C) void function(GtkFrame* frame, GtkAllocation* allocation) computeChildAllocation;
5215 	void*[8] padding;
5216 }
5217 
5218 struct GtkGLArea
5219 {
5220 	GtkWidget parentInstance;
5221 }
5222 
5223 /**
5224  * The `GtkGLAreaClass` structure contains only private data.
5225  */
5226 struct GtkGLAreaClass
5227 {
5228 	GtkWidgetClass parentClass;
5229 	/** */
5230 	extern(C) int function(GtkGLArea* area, GdkGLContext* context) render;
5231 	/** */
5232 	extern(C) void function(GtkGLArea* area, int width, int height) resize;
5233 	/** */
5234 	extern(C) GdkGLContext* function(GtkGLArea* area) createContext;
5235 	void*[8] Padding;
5236 }
5237 
5238 struct GtkGesture;
5239 
5240 struct GtkGestureClass;
5241 
5242 struct GtkGestureClick;
5243 
5244 struct GtkGestureClickClass;
5245 
5246 struct GtkGestureDrag;
5247 
5248 struct GtkGestureDragClass;
5249 
5250 struct GtkGestureLongPress;
5251 
5252 struct GtkGestureLongPressClass;
5253 
5254 struct GtkGesturePan;
5255 
5256 struct GtkGesturePanClass;
5257 
5258 struct GtkGestureRotate;
5259 
5260 struct GtkGestureRotateClass;
5261 
5262 struct GtkGestureSingle;
5263 
5264 struct GtkGestureSingleClass;
5265 
5266 struct GtkGestureStylus;
5267 
5268 struct GtkGestureStylusClass;
5269 
5270 struct GtkGestureSwipe;
5271 
5272 struct GtkGestureSwipeClass;
5273 
5274 struct GtkGestureZoom;
5275 
5276 struct GtkGestureZoomClass;
5277 
5278 struct GtkGrid
5279 {
5280 	GtkWidget parentInstance;
5281 }
5282 
5283 struct GtkGridClass
5284 {
5285 	/**
5286 	 * The parent class.
5287 	 */
5288 	GtkWidgetClass parentClass;
5289 	void*[8] padding;
5290 }
5291 
5292 struct GtkGridLayout;
5293 
5294 struct GtkGridLayoutChild;
5295 
5296 struct GtkGridLayoutChildClass
5297 {
5298 	GtkLayoutChildClass parentClass;
5299 }
5300 
5301 struct GtkGridLayoutClass
5302 {
5303 	GtkLayoutManagerClass parentClass;
5304 }
5305 
5306 struct GtkGridView;
5307 
5308 struct GtkGridViewClass;
5309 
5310 struct GtkHeaderBar;
5311 
5312 struct GtkIMContext
5313 {
5314 	GObject parentInstance;
5315 }
5316 
5317 struct GtkIMContextClass
5318 {
5319 	GObjectClass parentClass;
5320 	/** */
5321 	extern(C) void function(GtkIMContext* context) preeditStart;
5322 	/** */
5323 	extern(C) void function(GtkIMContext* context) preeditEnd;
5324 	/** */
5325 	extern(C) void function(GtkIMContext* context) preeditChanged;
5326 	/** */
5327 	extern(C) void function(GtkIMContext* context, const(char)* str) commit;
5328 	/** */
5329 	extern(C) int function(GtkIMContext* context) retrieveSurrounding;
5330 	/**
5331 	 *
5332 	 * Params:
5333 	 *     context = a `GtkIMContext`
5334 	 *     offset = offset from cursor position in chars;
5335 	 *         a negative value means start before the cursor.
5336 	 *     nChars = number of characters to delete.
5337 	 * Returns: %TRUE if the signal was handled.
5338 	 */
5339 	extern(C) int function(GtkIMContext* context, int offset, int nChars) deleteSurrounding;
5340 	/** */
5341 	extern(C) void function(GtkIMContext* context, GtkWidget* widget) setClientWidget;
5342 	/** */
5343 	extern(C) void function(GtkIMContext* context, char** str, PangoAttrList** attrs, int* cursorPos) getPreeditString;
5344 	/**
5345 	 *
5346 	 * Params:
5347 	 *     context = a `GtkIMContext`
5348 	 *     event = the key event
5349 	 * Returns: %TRUE if the input method handled the key event.
5350 	 */
5351 	extern(C) int function(GtkIMContext* context, GdkEvent* event) filterKeypress;
5352 	/** */
5353 	extern(C) void function(GtkIMContext* context) focusIn;
5354 	/** */
5355 	extern(C) void function(GtkIMContext* context) focusOut;
5356 	/** */
5357 	extern(C) void function(GtkIMContext* context) reset;
5358 	/** */
5359 	extern(C) void function(GtkIMContext* context, GdkRectangle* area) setCursorLocation;
5360 	/** */
5361 	extern(C) void function(GtkIMContext* context, int usePreedit) setUsePreedit;
5362 	/** */
5363 	extern(C) void function(GtkIMContext* context, const(char)* text, int len, int cursorIndex) setSurrounding;
5364 	/**
5365 	 *
5366 	 * Params:
5367 	 *     context = a `GtkIMContext`
5368 	 *     text = location to store a UTF-8 encoded
5369 	 *         string of text holding context around the insertion point.
5370 	 *         If the function returns %TRUE, then you must free the result
5371 	 *         stored in this location with g_free().
5372 	 *     cursorIndex = location to store byte index of the insertion
5373 	 *         cursor within @text.
5374 	 * Returns: `TRUE` if surrounding text was provided; in this case
5375 	 *     you must free the result stored in `text`.
5376 	 */
5377 	extern(C) int function(GtkIMContext* context, char** text, int* cursorIndex) getSurrounding;
5378 	/** */
5379 	extern(C) void function(GtkIMContext* context, const(char)* text, int len, int cursorIndex, int anchorIndex) setSurroundingWithSelection;
5380 	/**
5381 	 *
5382 	 * Params:
5383 	 *     context = a #GtkIMContext
5384 	 *     text = location to store a UTF-8 encoded
5385 	 *         string of text holding context around the insertion point.
5386 	 *         If the function returns %TRUE, then you must free the result
5387 	 *         stored in this location with g_free().
5388 	 *     cursorIndex = location to store byte index of the insertion
5389 	 *         cursor within @text.
5390 	 *     anchorIndex = location to store byte index of the selection
5391 	 *         bound within @text
5392 	 * Returns: `TRUE` if surrounding text was provided; in this case
5393 	 *     you must free the result stored in `text`.
5394 	 */
5395 	extern(C) int function(GtkIMContext* context, char** text, int* cursorIndex, int* anchorIndex) getSurroundingWithSelection;
5396 	/** */
5397 	extern(C) void function() GtkReserved1;
5398 	/** */
5399 	extern(C) void function() GtkReserved2;
5400 	/** */
5401 	extern(C) void function() GtkReserved3;
5402 	/** */
5403 	extern(C) void function() GtkReserved4;
5404 	/** */
5405 	extern(C) void function() GtkReserved5;
5406 }
5407 
5408 struct GtkIMContextSimple
5409 {
5410 	GtkIMContext object;
5411 	GtkIMContextSimplePrivate* priv;
5412 }
5413 
5414 struct GtkIMContextSimpleClass
5415 {
5416 	GtkIMContextClass parentClass;
5417 }
5418 
5419 struct GtkIMContextSimplePrivate;
5420 
5421 struct GtkIMMulticontext
5422 {
5423 	GtkIMContext object;
5424 	GtkIMMulticontextPrivate* priv;
5425 }
5426 
5427 struct GtkIMMulticontextClass
5428 {
5429 	GtkIMContextClass parentClass;
5430 	/** */
5431 	extern(C) void function() GtkReserved1;
5432 	/** */
5433 	extern(C) void function() GtkReserved2;
5434 	/** */
5435 	extern(C) void function() GtkReserved3;
5436 	/** */
5437 	extern(C) void function() GtkReserved4;
5438 }
5439 
5440 struct GtkIMMulticontextPrivate;
5441 
5442 struct GtkIconPaintable;
5443 
5444 struct GtkIconTheme;
5445 
5446 struct GtkIconView;
5447 
5448 struct GtkImage;
5449 
5450 struct GtkInfoBar;
5451 
5452 struct GtkKeyvalTrigger;
5453 
5454 struct GtkKeyvalTriggerClass;
5455 
5456 struct GtkLabel;
5457 
5458 struct GtkLayoutChild
5459 {
5460 	GObject parentInstance;
5461 }
5462 
5463 struct GtkLayoutChildClass
5464 {
5465 	GObjectClass parentClass;
5466 }
5467 
5468 struct GtkLayoutManager
5469 {
5470 	GObject parentInstance;
5471 }
5472 
5473 /**
5474  * The `GtkLayoutManagerClass` structure contains only private data, and
5475  * should only be accessed through the provided API, or when subclassing
5476  * #GtkLayoutManager.
5477  */
5478 struct GtkLayoutManagerClass
5479 {
5480 	GObjectClass parentClass;
5481 	/** */
5482 	extern(C) GtkSizeRequestMode function(GtkLayoutManager* manager, GtkWidget* widget) getRequestMode;
5483 	/** */
5484 	extern(C) void function(GtkLayoutManager* manager, GtkWidget* widget, GtkOrientation orientation, int forSize, int* minimum, int* natural, int* minimumBaseline, int* naturalBaseline) measure;
5485 	/** */
5486 	extern(C) void function(GtkLayoutManager* manager, GtkWidget* widget, int width, int height, int baseline) allocate;
5487 	/**
5488 	 * the type of #GtkLayoutChild used by this layout manager
5489 	 */
5490 	GType layoutChildType;
5491 	/**
5492 	 *
5493 	 * Params:
5494 	 *     manager = the #GtkLayoutManager
5495 	 *     widget = the widget using the @manager
5496 	 *     forChild = the child of @widget
5497 	 * Returns: a #GtkLayoutChild
5498 	 */
5499 	extern(C) GtkLayoutChild* function(GtkLayoutManager* manager, GtkWidget* widget, GtkWidget* forChild) createLayoutChild;
5500 	/** */
5501 	extern(C) void function(GtkLayoutManager* manager) root;
5502 	/** */
5503 	extern(C) void function(GtkLayoutManager* manager) unroot;
5504 	void*[16] Padding;
5505 }
5506 
5507 struct GtkLevelBar;
5508 
5509 struct GtkLinkButton;
5510 
5511 struct GtkListBase;
5512 
5513 struct GtkListBaseClass;
5514 
5515 struct GtkListBox;
5516 
5517 struct GtkListBoxRow
5518 {
5519 	GtkWidget parentInstance;
5520 }
5521 
5522 struct GtkListBoxRowClass
5523 {
5524 	/**
5525 	 * The parent class.
5526 	 */
5527 	GtkWidgetClass parentClass;
5528 	/** */
5529 	extern(C) void function(GtkListBoxRow* row) activate;
5530 	void*[8] padding;
5531 }
5532 
5533 struct GtkListItem;
5534 
5535 struct GtkListItemClass;
5536 
5537 struct GtkListItemFactory;
5538 
5539 struct GtkListItemFactoryClass;
5540 
5541 struct GtkListStore
5542 {
5543 	GObject parent;
5544 	GtkListStorePrivate* priv;
5545 }
5546 
5547 struct GtkListStoreClass
5548 {
5549 	GObjectClass parentClass;
5550 	void*[8] padding;
5551 }
5552 
5553 struct GtkListStorePrivate;
5554 
5555 struct GtkListView;
5556 
5557 struct GtkListViewClass;
5558 
5559 struct GtkLockButton;
5560 
5561 struct GtkMapListModel;
5562 
5563 struct GtkMapListModelClass
5564 {
5565 	GObjectClass parentClass;
5566 }
5567 
5568 struct GtkMediaControls;
5569 
5570 struct GtkMediaControlsClass
5571 {
5572 	GtkWidgetClass parentClass;
5573 }
5574 
5575 struct GtkMediaFile
5576 {
5577 	GtkMediaStream parentInstance;
5578 }
5579 
5580 struct GtkMediaFileClass
5581 {
5582 	GtkMediaStreamClass parentClass;
5583 	/** */
5584 	extern(C) void function(GtkMediaFile* self) open;
5585 	/** */
5586 	extern(C) void function(GtkMediaFile* self) close;
5587 	/** */
5588 	extern(C) void function() GtkReserved1;
5589 	/** */
5590 	extern(C) void function() GtkReserved2;
5591 	/** */
5592 	extern(C) void function() GtkReserved3;
5593 	/** */
5594 	extern(C) void function() GtkReserved4;
5595 }
5596 
5597 struct GtkMediaStream
5598 {
5599 	GObject parentInstance;
5600 }
5601 
5602 struct GtkMediaStreamClass
5603 {
5604 	GObjectClass parentClass;
5605 	/** */
5606 	extern(C) int function(GtkMediaStream* self) play;
5607 	/** */
5608 	extern(C) void function(GtkMediaStream* self) pause;
5609 	/** */
5610 	extern(C) void function(GtkMediaStream* self, long timestamp) seek;
5611 	/** */
5612 	extern(C) void function(GtkMediaStream* self, int muted, double volume) updateAudio;
5613 	/** */
5614 	extern(C) void function(GtkMediaStream* self, GdkSurface* surface) realize;
5615 	/** */
5616 	extern(C) void function(GtkMediaStream* self, GdkSurface* surface) unrealize;
5617 	/** */
5618 	extern(C) void function() GtkReserved1;
5619 	/** */
5620 	extern(C) void function() GtkReserved2;
5621 	/** */
5622 	extern(C) void function() GtkReserved3;
5623 	/** */
5624 	extern(C) void function() GtkReserved4;
5625 	/** */
5626 	extern(C) void function() GtkReserved5;
5627 	/** */
5628 	extern(C) void function() GtkReserved6;
5629 	/** */
5630 	extern(C) void function() GtkReserved7;
5631 	/** */
5632 	extern(C) void function() GtkReserved8;
5633 }
5634 
5635 struct GtkMenuButton;
5636 
5637 struct GtkMessageDialog
5638 {
5639 	GtkDialog parentInstance;
5640 }
5641 
5642 struct GtkMessageDialogClass;
5643 
5644 struct GtkMnemonicAction;
5645 
5646 struct GtkMnemonicActionClass;
5647 
5648 struct GtkMnemonicTrigger;
5649 
5650 struct GtkMnemonicTriggerClass;
5651 
5652 struct GtkMountOperation
5653 {
5654 	GMountOperation parentInstance;
5655 	GtkMountOperationPrivate* priv;
5656 }
5657 
5658 struct GtkMountOperationClass
5659 {
5660 	/**
5661 	 * The parent class.
5662 	 */
5663 	GMountOperationClass parentClass;
5664 	/** */
5665 	extern(C) void function() GtkReserved1;
5666 	/** */
5667 	extern(C) void function() GtkReserved2;
5668 	/** */
5669 	extern(C) void function() GtkReserved3;
5670 	/** */
5671 	extern(C) void function() GtkReserved4;
5672 }
5673 
5674 struct GtkMountOperationPrivate;
5675 
5676 struct GtkMultiFilter;
5677 
5678 struct GtkMultiFilterClass;
5679 
5680 struct GtkMultiSelection;
5681 
5682 struct GtkMultiSelectionClass
5683 {
5684 	GObjectClass parentClass;
5685 }
5686 
5687 struct GtkMultiSorter;
5688 
5689 struct GtkMultiSorterClass
5690 {
5691 	GtkSorterClass parentClass;
5692 }
5693 
5694 struct GtkNamedAction;
5695 
5696 struct GtkNamedActionClass;
5697 
5698 struct GtkNative;
5699 
5700 struct GtkNativeDialog
5701 {
5702 	GObject parentInstance;
5703 }
5704 
5705 /**
5706  * Class structure for #GtkNativeDialog.
5707  */
5708 struct GtkNativeDialogClass
5709 {
5710 	GObjectClass parentClass;
5711 	/** */
5712 	extern(C) void function(GtkNativeDialog* self, int responseId) response;
5713 	/** */
5714 	extern(C) void function(GtkNativeDialog* self) show;
5715 	/** */
5716 	extern(C) void function(GtkNativeDialog* self) hide;
5717 	/** */
5718 	extern(C) void function() GtkReserved1;
5719 	/** */
5720 	extern(C) void function() GtkReserved2;
5721 	/** */
5722 	extern(C) void function() GtkReserved3;
5723 	/** */
5724 	extern(C) void function() GtkReserved4;
5725 }
5726 
5727 struct GtkNativeInterface;
5728 
5729 struct GtkNeverTrigger;
5730 
5731 struct GtkNeverTriggerClass;
5732 
5733 struct GtkNoSelection;
5734 
5735 struct GtkNoSelectionClass
5736 {
5737 	GObjectClass parentClass;
5738 }
5739 
5740 struct GtkNotebook;
5741 
5742 struct GtkNotebookPage;
5743 
5744 struct GtkNothingAction;
5745 
5746 struct GtkNothingActionClass;
5747 
5748 struct GtkNumericSorter;
5749 
5750 struct GtkNumericSorterClass
5751 {
5752 	GtkSorterClass parentClass;
5753 }
5754 
5755 struct GtkObjectExpression;
5756 
5757 struct GtkOrientable;
5758 
5759 struct GtkOrientableIface
5760 {
5761 	GTypeInterface baseIface;
5762 }
5763 
5764 struct GtkOverlay;
5765 
5766 struct GtkOverlayLayout;
5767 
5768 struct GtkOverlayLayoutChild;
5769 
5770 struct GtkOverlayLayoutChildClass
5771 {
5772 	GtkLayoutChildClass parentClass;
5773 }
5774 
5775 struct GtkOverlayLayoutClass
5776 {
5777 	GtkLayoutManagerClass parentClass;
5778 }
5779 
5780 /**
5781  * Struct defining a pad action entry.
5782  */
5783 struct GtkPadActionEntry
5784 {
5785 	/**
5786 	 * the type of pad feature that will trigger this action entry.
5787 	 */
5788 	GtkPadActionType type;
5789 	/**
5790 	 * the 0-indexed button/ring/strip number that will trigger this action
5791 	 * entry.
5792 	 */
5793 	int index;
5794 	/**
5795 	 * the mode that will trigger this action entry, or -1 for all modes.
5796 	 */
5797 	int mode;
5798 	/**
5799 	 * Human readable description of this action entry, this string should
5800 	 * be deemed user-visible.
5801 	 */
5802 	const(char)* label;
5803 	/**
5804 	 * action name that will be activated in the #GActionGroup.
5805 	 */
5806 	const(char)* actionName;
5807 }
5808 
5809 struct GtkPadController;
5810 
5811 struct GtkPadControllerClass;
5812 
5813 /**
5814  * A range of pages to print.
5815  *
5816  * See also [method@Gtk.PrintSettings.set_page_ranges].
5817  */
5818 struct GtkPageRange
5819 {
5820 	/**
5821 	 * start of page range.
5822 	 */
5823 	int start;
5824 	/**
5825 	 * end of page range.
5826 	 */
5827 	int end;
5828 }
5829 
5830 struct GtkPageSetup;
5831 
5832 struct GtkPageSetupUnixDialog;
5833 
5834 struct GtkPaned;
5835 
5836 struct GtkPaperSize;
5837 
5838 struct GtkParamSpecExpression
5839 {
5840 	GParamSpec parentInstance;
5841 }
5842 
5843 struct GtkPasswordEntry;
5844 
5845 struct GtkPasswordEntryClass;
5846 
5847 struct GtkPicture;
5848 
5849 struct GtkPictureClass
5850 {
5851 	GtkWidgetClass parentClass;
5852 }
5853 
5854 struct GtkPopover
5855 {
5856 	GtkWidget parent;
5857 }
5858 
5859 struct GtkPopoverClass
5860 {
5861 	GtkWidgetClass parentClass;
5862 	/** */
5863 	extern(C) void function(GtkPopover* popover) closed;
5864 	/** */
5865 	extern(C) void function(GtkPopover* popover) activateDefault;
5866 	void*[8] reserved;
5867 }
5868 
5869 struct GtkPopoverMenu;
5870 
5871 struct GtkPopoverMenuBar;
5872 
5873 struct GtkPrintBackend;
5874 
5875 struct GtkPrintContext;
5876 
5877 struct GtkPrintJob;
5878 
5879 struct GtkPrintOperation
5880 {
5881 	GObject parentInstance;
5882 	GtkPrintOperationPrivate* priv;
5883 }
5884 
5885 struct GtkPrintOperationClass
5886 {
5887 	/**
5888 	 * The parent class.
5889 	 */
5890 	GObjectClass parentClass;
5891 	/** */
5892 	extern(C) void function(GtkPrintOperation* operation, GtkPrintOperationResult result) done;
5893 	/** */
5894 	extern(C) void function(GtkPrintOperation* operation, GtkPrintContext* context) beginPrint;
5895 	/** */
5896 	extern(C) int function(GtkPrintOperation* operation, GtkPrintContext* context) paginate;
5897 	/** */
5898 	extern(C) void function(GtkPrintOperation* operation, GtkPrintContext* context, int pageNr, GtkPageSetup* setup) requestPageSetup;
5899 	/** */
5900 	extern(C) void function(GtkPrintOperation* operation, GtkPrintContext* context, int pageNr) drawPage;
5901 	/** */
5902 	extern(C) void function(GtkPrintOperation* operation, GtkPrintContext* context) endPrint;
5903 	/** */
5904 	extern(C) void function(GtkPrintOperation* operation) statusChanged;
5905 	/** */
5906 	extern(C) GtkWidget* function(GtkPrintOperation* operation) createCustomWidget;
5907 	/** */
5908 	extern(C) void function(GtkPrintOperation* operation, GtkWidget* widget) customWidgetApply;
5909 	/** */
5910 	extern(C) int function(GtkPrintOperation* operation, GtkPrintOperationPreview* preview, GtkPrintContext* context, GtkWindow* parent) preview;
5911 	/** */
5912 	extern(C) void function(GtkPrintOperation* operation, GtkWidget* widget, GtkPageSetup* setup, GtkPrintSettings* settings) updateCustomWidget;
5913 	void*[8] padding;
5914 }
5915 
5916 struct GtkPrintOperationPreview;
5917 
5918 struct GtkPrintOperationPreviewIface
5919 {
5920 	GTypeInterface gIface;
5921 	/** */
5922 	extern(C) void function(GtkPrintOperationPreview* preview, GtkPrintContext* context) ready;
5923 	/** */
5924 	extern(C) void function(GtkPrintOperationPreview* preview, GtkPrintContext* context, GtkPageSetup* pageSetup) gotPageSize;
5925 	/** */
5926 	extern(C) void function(GtkPrintOperationPreview* preview, int pageNr) renderPage;
5927 	/**
5928 	 *
5929 	 * Params:
5930 	 *     preview = a `GtkPrintOperationPreview`
5931 	 *     pageNr = a page number
5932 	 * Returns: %TRUE if the page has been selected for printing
5933 	 */
5934 	extern(C) int function(GtkPrintOperationPreview* preview, int pageNr) isSelected;
5935 	/** */
5936 	extern(C) void function(GtkPrintOperationPreview* preview) endPreview;
5937 	/** */
5938 	extern(C) void function() GtkReserved1;
5939 	/** */
5940 	extern(C) void function() GtkReserved2;
5941 	/** */
5942 	extern(C) void function() GtkReserved3;
5943 	/** */
5944 	extern(C) void function() GtkReserved4;
5945 	/** */
5946 	extern(C) void function() GtkReserved5;
5947 	/** */
5948 	extern(C) void function() GtkReserved6;
5949 	/** */
5950 	extern(C) void function() GtkReserved7;
5951 	/** */
5952 	extern(C) void function() GtkReserved8;
5953 }
5954 
5955 struct GtkPrintOperationPrivate;
5956 
5957 struct GtkPrintSettings;
5958 
5959 struct GtkPrintUnixDialog;
5960 
5961 struct GtkPrinter;
5962 
5963 struct GtkProgressBar;
5964 
5965 struct GtkPropertyExpression;
5966 
5967 struct GtkRange
5968 {
5969 	GtkWidget parentInstance;
5970 }
5971 
5972 struct GtkRangeClass
5973 {
5974 	GtkWidgetClass parentClass;
5975 	/** */
5976 	extern(C) void function(GtkRange* range) valueChanged;
5977 	/** */
5978 	extern(C) void function(GtkRange* range, double newValue) adjustBounds;
5979 	/** */
5980 	extern(C) void function(GtkRange* range, GtkScrollType scroll) moveSlider;
5981 	/** */
5982 	extern(C) void function(GtkRange* range, GtkBorder* border) getRangeBorder;
5983 	/** */
5984 	extern(C) int function(GtkRange* range, GtkScrollType scroll, double newValue) changeValue;
5985 	void*[8] padding;
5986 }
5987 
5988 /**
5989  * Meta-data to be passed to gtk_recent_manager_add_full() when
5990  * registering a recently used resource.
5991  */
5992 struct GtkRecentData
5993 {
5994 	/**
5995 	 * a UTF-8 encoded string, containing the name of the recently
5996 	 * used resource to be displayed, or %NULL;
5997 	 */
5998 	char* displayName;
5999 	/**
6000 	 * a UTF-8 encoded string, containing a short description of
6001 	 * the resource, or %NULL;
6002 	 */
6003 	char* description;
6004 	/**
6005 	 * the MIME type of the resource;
6006 	 */
6007 	char* mimeType;
6008 	/**
6009 	 * the name of the application that is registering this recently
6010 	 * used resource;
6011 	 */
6012 	char* appName;
6013 	/**
6014 	 * command line used to launch this resource; may contain the
6015 	 * “\%f” and “\%u” escape characters which will be expanded
6016 	 * to the resource file path and URI respectively when the command line
6017 	 * is retrieved;
6018 	 */
6019 	char* appExec;
6020 	/**
6021 	 * a vector of strings containing
6022 	 * groups names;
6023 	 */
6024 	char** groups;
6025 	/**
6026 	 * whether this resource should be displayed only by the
6027 	 * applications that have registered it or not.
6028 	 */
6029 	bool isPrivate;
6030 }
6031 
6032 struct GtkRecentInfo;
6033 
6034 struct GtkRecentManager
6035 {
6036 	GObject parentInstance;
6037 	GtkRecentManagerPrivate* priv;
6038 }
6039 
6040 /**
6041  * #GtkRecentManagerClass contains only private data.
6042  */
6043 struct GtkRecentManagerClass
6044 {
6045 	GObjectClass parentClass;
6046 	/** */
6047 	extern(C) void function(GtkRecentManager* manager) changed;
6048 	/** */
6049 	extern(C) void function() GtkRecent1;
6050 	/** */
6051 	extern(C) void function() GtkRecent2;
6052 	/** */
6053 	extern(C) void function() GtkRecent3;
6054 	/** */
6055 	extern(C) void function() GtkRecent4;
6056 }
6057 
6058 struct GtkRecentManagerPrivate;
6059 
6060 /**
6061  * Represents a request of a screen object in a given orientation. These
6062  * are primarily used in container implementations when allocating a natural
6063  * size for children calling. See gtk_distribute_natural_allocation().
6064  */
6065 struct GtkRequestedSize
6066 {
6067 	/**
6068 	 * A client pointer
6069 	 */
6070 	void* data;
6071 	/**
6072 	 * The minimum size needed for allocation in a given orientation
6073 	 */
6074 	int minimumSize;
6075 	/**
6076 	 * The natural size for allocation in a given orientation
6077 	 */
6078 	int naturalSize;
6079 }
6080 
6081 struct GtkRequisition
6082 {
6083 	/**
6084 	 * the widget’s desired width
6085 	 */
6086 	int width;
6087 	/**
6088 	 * the widget’s desired height
6089 	 */
6090 	int height;
6091 }
6092 
6093 struct GtkRevealer;
6094 
6095 struct GtkRoot;
6096 
6097 struct GtkRootInterface;
6098 
6099 struct GtkScale
6100 {
6101 	GtkRange parentInstance;
6102 }
6103 
6104 struct GtkScaleButton
6105 {
6106 	GtkWidget parentInstance;
6107 }
6108 
6109 struct GtkScaleButtonClass
6110 {
6111 	GtkWidgetClass parentClass;
6112 	/** */
6113 	extern(C) void function(GtkScaleButton* button, double value) valueChanged;
6114 	void*[8] padding;
6115 }
6116 
6117 struct GtkScaleClass
6118 {
6119 	GtkRangeClass parentClass;
6120 	/** */
6121 	extern(C) void function(GtkScale* scale, int* x, int* y) getLayoutOffsets;
6122 	void*[8] padding;
6123 }
6124 
6125 struct GtkScrollable;
6126 
6127 struct GtkScrollableInterface
6128 {
6129 	GTypeInterface baseIface;
6130 	/**
6131 	 *
6132 	 * Params:
6133 	 *     scrollable = a `GtkScrollable`
6134 	 *     border = return location for the results
6135 	 * Returns: %TRUE if @border has been set
6136 	 */
6137 	extern(C) int function(GtkScrollable* scrollable, GtkBorder* border) getBorder;
6138 }
6139 
6140 struct GtkScrollbar;
6141 
6142 struct GtkScrolledWindow;
6143 
6144 struct GtkSearchBar;
6145 
6146 struct GtkSearchEntry;
6147 
6148 struct GtkSelectionFilterModel;
6149 
6150 struct GtkSelectionFilterModelClass
6151 {
6152 	GObjectClass parentClass;
6153 }
6154 
6155 struct GtkSelectionModel;
6156 
6157 /**
6158  * The list of virtual functions for the #GtkSelectionModel interface.
6159  * No function must be implemented, but unless #GtkSelectionModel::is_selected()
6160  * is implemented, it will not be possible to select items in the set.
6161  *
6162  * The model does not need to implement any functions to support either
6163  * selecting or unselecting items. Of course, if the model does not do that,
6164  * it means that users cannot select or unselect items in a list widget
6165  * using the model.
6166  *
6167  * All selection functions fall back to #GtkSelectionModel::set_selection()
6168  * so it is sufficient to implement just that function for full selection
6169  * support.
6170  */
6171 struct GtkSelectionModelInterface
6172 {
6173 	GTypeInterface gIface;
6174 	/**
6175 	 *
6176 	 * Params:
6177 	 *     model = a `GtkSelectionModel`
6178 	 *     position = the position of the item to query
6179 	 * Returns: %TRUE if the item is selected
6180 	 */
6181 	extern(C) int function(GtkSelectionModel* model, uint position) isSelected;
6182 	/**
6183 	 *
6184 	 * Params:
6185 	 *     model = a `GtkSelectionModel`
6186 	 *     position = start of the queired range
6187 	 *     nItems = number of items in the queried range
6188 	 * Returns: A `GtkBitset` that matches the selection state
6189 	 *     for the given range with all other values being undefined.
6190 	 *     The bitset must not be modified.
6191 	 */
6192 	extern(C) GtkBitset* function(GtkSelectionModel* model, uint position, uint nItems) getSelectionInRange;
6193 	/**
6194 	 *
6195 	 * Params:
6196 	 *     model = a `GtkSelectionModel`
6197 	 *     position = the position of the item to select
6198 	 *     unselectRest = whether previously selected items should be unselected
6199 	 * Returns: %TRUE if this action was supported and no fallback should be
6200 	 *     tried. This does not mean the item was selected.
6201 	 */
6202 	extern(C) int function(GtkSelectionModel* model, uint position, int unselectRest) selectItem;
6203 	/**
6204 	 *
6205 	 * Params:
6206 	 *     model = a `GtkSelectionModel`
6207 	 *     position = the position of the item to unselect
6208 	 * Returns: %TRUE if this action was supported and no fallback should be
6209 	 *     tried. This does not mean the item was unselected.
6210 	 */
6211 	extern(C) int function(GtkSelectionModel* model, uint position) unselectItem;
6212 	/**
6213 	 *
6214 	 * Params:
6215 	 *     model = a `GtkSelectionModel`
6216 	 *     position = the first item to select
6217 	 *     nItems = the number of items to select
6218 	 *     unselectRest = whether previously selected items should be unselected
6219 	 * Returns: %TRUE if this action was supported and no fallback should be
6220 	 *     tried. This does not mean the range was selected.
6221 	 */
6222 	extern(C) int function(GtkSelectionModel* model, uint position, uint nItems, int unselectRest) selectRange;
6223 	/**
6224 	 *
6225 	 * Params:
6226 	 *     model = a `GtkSelectionModel`
6227 	 *     position = the first item to unselect
6228 	 *     nItems = the number of items to unselect
6229 	 * Returns: %TRUE if this action was supported and no fallback should be
6230 	 *     tried. This does not mean the range was unselected.
6231 	 */
6232 	extern(C) int function(GtkSelectionModel* model, uint position, uint nItems) unselectRange;
6233 	/**
6234 	 *
6235 	 * Params:
6236 	 *     model = a `GtkSelectionModel`
6237 	 * Returns: %TRUE if this action was supported and no fallback should be
6238 	 *     tried. This does not mean that all items are now selected.
6239 	 */
6240 	extern(C) int function(GtkSelectionModel* model) selectAll;
6241 	/**
6242 	 *
6243 	 * Params:
6244 	 *     model = a `GtkSelectionModel`
6245 	 * Returns: %TRUE if this action was supported and no fallback should be
6246 	 *     tried. This does not mean that all items are now unselected.
6247 	 */
6248 	extern(C) int function(GtkSelectionModel* model) unselectAll;
6249 	/**
6250 	 *
6251 	 * Params:
6252 	 *     model = a `GtkSelectionModel`
6253 	 *     selected = bitmask specifying if items should be selected or
6254 	 *         unselected
6255 	 *     mask = bitmask specifying which items should be updated
6256 	 * Returns: %TRUE if this action was supported and no fallback should be
6257 	 *     tried. This does not mean that all items were updated according
6258 	 *     to the inputs.
6259 	 */
6260 	extern(C) int function(GtkSelectionModel* model, GtkBitset* selected, GtkBitset* mask) setSelection;
6261 }
6262 
6263 struct GtkSeparator;
6264 
6265 struct GtkSettings;
6266 
6267 struct GtkShortcut;
6268 
6269 struct GtkShortcutAction;
6270 
6271 struct GtkShortcutActionClass;
6272 
6273 struct GtkShortcutClass
6274 {
6275 	GObjectClass parentClass;
6276 }
6277 
6278 struct GtkShortcutController;
6279 
6280 struct GtkShortcutControllerClass;
6281 
6282 struct GtkShortcutLabel;
6283 
6284 struct GtkShortcutLabelClass;
6285 
6286 struct GtkShortcutManager;
6287 
6288 /**
6289  * The list of functions that can be implemented for the #GtkShortcutManager interface.
6290  *
6291  * Note that no function is mandatory to implement, the default implementation will work
6292  * fine.
6293  */
6294 struct GtkShortcutManagerInterface
6295 {
6296 	GTypeInterface gIface;
6297 	/** */
6298 	extern(C) void function(GtkShortcutManager* self, GtkShortcutController* controller) addController;
6299 	/** */
6300 	extern(C) void function(GtkShortcutManager* self, GtkShortcutController* controller) removeController;
6301 }
6302 
6303 struct GtkShortcutTrigger;
6304 
6305 struct GtkShortcutTriggerClass;
6306 
6307 struct GtkShortcutsGroup;
6308 
6309 struct GtkShortcutsGroupClass;
6310 
6311 struct GtkShortcutsSection;
6312 
6313 struct GtkShortcutsSectionClass;
6314 
6315 struct GtkShortcutsShortcut;
6316 
6317 struct GtkShortcutsShortcutClass;
6318 
6319 struct GtkShortcutsWindow;
6320 
6321 struct GtkSignalAction;
6322 
6323 struct GtkSignalActionClass;
6324 
6325 struct GtkSignalListItemFactory;
6326 
6327 struct GtkSignalListItemFactoryClass;
6328 
6329 struct GtkSingleSelection;
6330 
6331 struct GtkSingleSelectionClass
6332 {
6333 	GObjectClass parentClass;
6334 }
6335 
6336 struct GtkSizeGroup
6337 {
6338 	GObject parentInstance;
6339 }
6340 
6341 struct GtkSliceListModel;
6342 
6343 struct GtkSliceListModelClass
6344 {
6345 	GObjectClass parentClass;
6346 }
6347 
6348 struct GtkSnapshot;
6349 
6350 struct GtkSnapshotClass;
6351 
6352 struct GtkSortListModel;
6353 
6354 struct GtkSortListModelClass
6355 {
6356 	GObjectClass parentClass;
6357 }
6358 
6359 struct GtkSorter
6360 {
6361 	GObject parentInstance;
6362 }
6363 
6364 /**
6365  * The virtual table for `GtkSorter`.
6366  */
6367 struct GtkSorterClass
6368 {
6369 	GObjectClass parentClass;
6370 	/**
6371 	 *
6372 	 * Params:
6373 	 *     self = a `GtkSorter`
6374 	 *     item1 = first item to compare
6375 	 *     item2 = second item to compare
6376 	 * Returns: %GTK_ORDERING_EQUAL if @item1 == @item2,
6377 	 *     %GTK_ORDERING_SMALLER if @item1 < @item2,
6378 	 *     %GTK_ORDERING_LARGER if @item1 > @item2
6379 	 */
6380 	extern(C) GtkOrdering function(GtkSorter* self, void* item1, void* item2) compare;
6381 	/**
6382 	 *
6383 	 * Params:
6384 	 *     self = a `GtkSorter`
6385 	 * Returns: The order
6386 	 */
6387 	extern(C) GtkSorterOrder function(GtkSorter* self) getOrder;
6388 	/** */
6389 	extern(C) void function() GtkReserved1;
6390 	/** */
6391 	extern(C) void function() GtkReserved2;
6392 	/** */
6393 	extern(C) void function() GtkReserved3;
6394 	/** */
6395 	extern(C) void function() GtkReserved4;
6396 	/** */
6397 	extern(C) void function() GtkReserved5;
6398 	/** */
6399 	extern(C) void function() GtkReserved6;
6400 	/** */
6401 	extern(C) void function() GtkReserved7;
6402 	/** */
6403 	extern(C) void function() GtkReserved8;
6404 }
6405 
6406 struct GtkSpinButton;
6407 
6408 struct GtkSpinner;
6409 
6410 struct GtkStack;
6411 
6412 struct GtkStackPage;
6413 
6414 struct GtkStackSidebar;
6415 
6416 struct GtkStackSwitcher;
6417 
6418 struct GtkStatusbar;
6419 
6420 struct GtkStringFilter;
6421 
6422 struct GtkStringFilterClass
6423 {
6424 	GtkFilterClass parentClass;
6425 }
6426 
6427 struct GtkStringList;
6428 
6429 struct GtkStringListClass
6430 {
6431 	GObjectClass parentClass;
6432 }
6433 
6434 struct GtkStringObject;
6435 
6436 struct GtkStringObjectClass
6437 {
6438 	GObjectClass parentClass;
6439 }
6440 
6441 struct GtkStringSorter;
6442 
6443 struct GtkStringSorterClass
6444 {
6445 	GtkSorterClass parentClass;
6446 }
6447 
6448 struct GtkStyleContext
6449 {
6450 	GObject parentObject;
6451 }
6452 
6453 struct GtkStyleContextClass
6454 {
6455 	GObjectClass parentClass;
6456 	/** */
6457 	extern(C) void function(GtkStyleContext* context) changed;
6458 	/** */
6459 	extern(C) void function() GtkReserved1;
6460 	/** */
6461 	extern(C) void function() GtkReserved2;
6462 	/** */
6463 	extern(C) void function() GtkReserved3;
6464 	/** */
6465 	extern(C) void function() GtkReserved4;
6466 }
6467 
6468 struct GtkStyleProvider;
6469 
6470 struct GtkSwitch;
6471 
6472 struct GtkText
6473 {
6474 	GtkWidget parentInstance;
6475 }
6476 
6477 struct GtkTextBuffer
6478 {
6479 	GObject parentInstance;
6480 	GtkTextBufferPrivate* priv;
6481 }
6482 
6483 /**
6484  * The class structure for #GtkTextBuffer.
6485  */
6486 struct GtkTextBufferClass
6487 {
6488 	/**
6489 	 * The object class structure needs to be the first.
6490 	 */
6491 	GObjectClass parentClass;
6492 	/** */
6493 	extern(C) void function(GtkTextBuffer* buffer, GtkTextIter* pos, const(char)* newText, int newTextLength) insertText;
6494 	/** */
6495 	extern(C) void function(GtkTextBuffer* buffer, GtkTextIter* iter, GdkPaintable* paintable) insertPaintable;
6496 	/** */
6497 	extern(C) void function(GtkTextBuffer* buffer, GtkTextIter* iter, GtkTextChildAnchor* anchor) insertChildAnchor;
6498 	/** */
6499 	extern(C) void function(GtkTextBuffer* buffer, GtkTextIter* start, GtkTextIter* end) deleteRange;
6500 	/** */
6501 	extern(C) void function(GtkTextBuffer* buffer) changed;
6502 	/** */
6503 	extern(C) void function(GtkTextBuffer* buffer) modifiedChanged;
6504 	/** */
6505 	extern(C) void function(GtkTextBuffer* buffer, GtkTextIter* location, GtkTextMark* mark) markSet;
6506 	/** */
6507 	extern(C) void function(GtkTextBuffer* buffer, GtkTextMark* mark) markDeleted;
6508 	/** */
6509 	extern(C) void function(GtkTextBuffer* buffer, GtkTextTag* tag, GtkTextIter* start, GtkTextIter* end) applyTag;
6510 	/** */
6511 	extern(C) void function(GtkTextBuffer* buffer, GtkTextTag* tag, GtkTextIter* start, GtkTextIter* end) removeTag;
6512 	/** */
6513 	extern(C) void function(GtkTextBuffer* buffer) beginUserAction;
6514 	/** */
6515 	extern(C) void function(GtkTextBuffer* buffer) endUserAction;
6516 	/** */
6517 	extern(C) void function(GtkTextBuffer* buffer, GdkClipboard* clipboard) pasteDone;
6518 	/** */
6519 	extern(C) void function(GtkTextBuffer* buffer) undo;
6520 	/** */
6521 	extern(C) void function(GtkTextBuffer* buffer) redo;
6522 	/** */
6523 	extern(C) void function() GtkReserved1;
6524 	/** */
6525 	extern(C) void function() GtkReserved2;
6526 	/** */
6527 	extern(C) void function() GtkReserved3;
6528 	/** */
6529 	extern(C) void function() GtkReserved4;
6530 }
6531 
6532 struct GtkTextBufferPrivate;
6533 
6534 struct GtkTextChildAnchor
6535 {
6536 	GObject parentInstance;
6537 	void* segment;
6538 }
6539 
6540 struct GtkTextChildAnchorClass
6541 {
6542 	GObjectClass parentClass;
6543 	/** */
6544 	extern(C) void function() GtkReserved1;
6545 	/** */
6546 	extern(C) void function() GtkReserved2;
6547 	/** */
6548 	extern(C) void function() GtkReserved3;
6549 	/** */
6550 	extern(C) void function() GtkReserved4;
6551 }
6552 
6553 struct GtkTextIter
6554 {
6555 	void* dummy1;
6556 	void* dummy2;
6557 	int dummy3;
6558 	int dummy4;
6559 	int dummy5;
6560 	int dummy6;
6561 	int dummy7;
6562 	int dummy8;
6563 	void* dummy9;
6564 	void* dummy10;
6565 	int dummy11;
6566 	int dummy12;
6567 	int dummy13;
6568 	void* dummy14;
6569 }
6570 
6571 struct GtkTextMark
6572 {
6573 	GObject parentInstance;
6574 	void* segment;
6575 }
6576 
6577 struct GtkTextMarkClass
6578 {
6579 	GObjectClass parentClass;
6580 	void*[8] padding;
6581 }
6582 
6583 struct GtkTextTag
6584 {
6585 	GObject parentInstance;
6586 	GtkTextTagPrivate* priv;
6587 }
6588 
6589 struct GtkTextTagClass
6590 {
6591 	GObjectClass parentClass;
6592 	void*[8] padding;
6593 }
6594 
6595 struct GtkTextTagPrivate;
6596 
6597 struct GtkTextTagTable;
6598 
6599 struct GtkTextView
6600 {
6601 	GtkWidget parentInstance;
6602 	GtkTextViewPrivate* priv;
6603 }
6604 
6605 struct GtkTextViewClass
6606 {
6607 	/**
6608 	 * The object class structure needs to be the first
6609 	 */
6610 	GtkWidgetClass parentClass;
6611 	/** */
6612 	extern(C) void function(GtkTextView* textView, GtkMovementStep step, int count, int extendSelection) moveCursor;
6613 	/** */
6614 	extern(C) void function(GtkTextView* textView) setAnchor;
6615 	/** */
6616 	extern(C) void function(GtkTextView* textView, const(char)* str) insertAtCursor;
6617 	/** */
6618 	extern(C) void function(GtkTextView* textView, GtkDeleteType type, int count) deleteFromCursor;
6619 	/** */
6620 	extern(C) void function(GtkTextView* textView) backspace;
6621 	/** */
6622 	extern(C) void function(GtkTextView* textView) cutClipboard;
6623 	/** */
6624 	extern(C) void function(GtkTextView* textView) copyClipboard;
6625 	/** */
6626 	extern(C) void function(GtkTextView* textView) pasteClipboard;
6627 	/** */
6628 	extern(C) void function(GtkTextView* textView) toggleOverwrite;
6629 	/** */
6630 	extern(C) GtkTextBuffer* function(GtkTextView* textView) createBuffer;
6631 	/** */
6632 	extern(C) void function(GtkTextView* textView, GtkTextViewLayer layer, GtkSnapshot* snapshot) snapshotLayer;
6633 	/** */
6634 	extern(C) int function(GtkTextView* textView, GtkTextExtendSelection granularity, GtkTextIter* location, GtkTextIter* start, GtkTextIter* end) extendSelection;
6635 	/** */
6636 	extern(C) void function(GtkTextView* textView) insertEmoji;
6637 	void*[8] padding;
6638 }
6639 
6640 struct GtkTextViewPrivate;
6641 
6642 struct GtkToggleButton
6643 {
6644 	GtkButton button;
6645 }
6646 
6647 struct GtkToggleButtonClass
6648 {
6649 	GtkButtonClass parentClass;
6650 	/** */
6651 	extern(C) void function(GtkToggleButton* toggleButton) toggled;
6652 	void*[8] padding;
6653 }
6654 
6655 struct GtkTooltip;
6656 
6657 struct GtkTreeDragDest;
6658 
6659 struct GtkTreeDragDestIface
6660 {
6661 	GTypeInterface gIface;
6662 	/**
6663 	 *
6664 	 * Params:
6665 	 *     dragDest = a #GtkTreeDragDest
6666 	 *     dest = row to drop in front of
6667 	 *     value = data to drop
6668 	 * Returns: whether a new row was created before position @dest
6669 	 */
6670 	extern(C) int function(GtkTreeDragDest* dragDest, GtkTreePath* dest, GValue* value) dragDataReceived;
6671 	/**
6672 	 *
6673 	 * Params:
6674 	 *     dragDest = a #GtkTreeDragDest
6675 	 *     destPath = destination row
6676 	 *     value = the data being dropped
6677 	 * Returns: %TRUE if a drop is possible before @dest_path
6678 	 */
6679 	extern(C) int function(GtkTreeDragDest* dragDest, GtkTreePath* destPath, GValue* value) rowDropPossible;
6680 }
6681 
6682 struct GtkTreeDragSource;
6683 
6684 struct GtkTreeDragSourceIface
6685 {
6686 	GTypeInterface gIface;
6687 	/**
6688 	 *
6689 	 * Params:
6690 	 *     dragSource = a #GtkTreeDragSource
6691 	 *     path = row on which user is initiating a drag
6692 	 * Returns: %TRUE if the row can be dragged
6693 	 */
6694 	extern(C) int function(GtkTreeDragSource* dragSource, GtkTreePath* path) rowDraggable;
6695 	/**
6696 	 *
6697 	 * Params:
6698 	 *     dragSource = a #GtkTreeDragSource
6699 	 *     path = row that was dragged
6700 	 * Returns: a #GdkContentProvider for the
6701 	 *     given @path or %NULL if none exists
6702 	 */
6703 	extern(C) GdkContentProvider* function(GtkTreeDragSource* dragSource, GtkTreePath* path) dragDataGet;
6704 	/**
6705 	 *
6706 	 * Params:
6707 	 *     dragSource = a #GtkTreeDragSource
6708 	 *     path = row that was being dragged
6709 	 * Returns: %TRUE if the row was successfully deleted
6710 	 */
6711 	extern(C) int function(GtkTreeDragSource* dragSource, GtkTreePath* path) dragDataDelete;
6712 }
6713 
6714 struct GtkTreeExpander;
6715 
6716 struct GtkTreeExpanderClass
6717 {
6718 	GtkWidgetClass parentClass;
6719 }
6720 
6721 struct GtkTreeIter
6722 {
6723 	/**
6724 	 * a unique stamp to catch invalid iterators
6725 	 */
6726 	int stamp;
6727 	/**
6728 	 * model-specific data
6729 	 */
6730 	void* userData;
6731 	/**
6732 	 * model-specific data
6733 	 */
6734 	void* userData2;
6735 	/**
6736 	 * model-specific data
6737 	 */
6738 	void* userData3;
6739 }
6740 
6741 struct GtkTreeListModel;
6742 
6743 struct GtkTreeListModelClass
6744 {
6745 	GObjectClass parentClass;
6746 }
6747 
6748 struct GtkTreeListRow;
6749 
6750 struct GtkTreeListRowClass
6751 {
6752 	GObjectClass parentClass;
6753 }
6754 
6755 struct GtkTreeListRowSorter;
6756 
6757 struct GtkTreeListRowSorterClass
6758 {
6759 	GtkSorterClass parentClass;
6760 }
6761 
6762 struct GtkTreeModel;
6763 
6764 struct GtkTreeModelFilter
6765 {
6766 	GObject parent;
6767 	GtkTreeModelFilterPrivate* priv;
6768 }
6769 
6770 struct GtkTreeModelFilterClass
6771 {
6772 	GObjectClass parentClass;
6773 	/** */
6774 	extern(C) int function(GtkTreeModelFilter* self, GtkTreeModel* childModel, GtkTreeIter* iter) visible;
6775 	/** */
6776 	extern(C) void function(GtkTreeModelFilter* self, GtkTreeModel* childModel, GtkTreeIter* iter, GValue* value, int column) modify;
6777 	void*[8] padding;
6778 }
6779 
6780 struct GtkTreeModelFilterPrivate;
6781 
6782 struct GtkTreeModelIface
6783 {
6784 	GTypeInterface gIface;
6785 	/** */
6786 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter) rowChanged;
6787 	/** */
6788 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter) rowInserted;
6789 	/** */
6790 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter) rowHasChildToggled;
6791 	/** */
6792 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path) rowDeleted;
6793 	/** */
6794 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter, int* newOrder) rowsReordered;
6795 	/**
6796 	 *
6797 	 * Params:
6798 	 *     treeModel = a #GtkTreeModel
6799 	 * Returns: the flags supported by this interface
6800 	 */
6801 	extern(C) GtkTreeModelFlags function(GtkTreeModel* treeModel) getFlags;
6802 	/**
6803 	 *
6804 	 * Params:
6805 	 *     treeModel = a #GtkTreeModel
6806 	 * Returns: the number of columns
6807 	 */
6808 	extern(C) int function(GtkTreeModel* treeModel) getNColumns;
6809 	/**
6810 	 *
6811 	 * Params:
6812 	 *     treeModel = a #GtkTreeModel
6813 	 *     index = the column index
6814 	 * Returns: the type of the column
6815 	 */
6816 	extern(C) GType function(GtkTreeModel* treeModel, int index) getColumnType;
6817 	/**
6818 	 *
6819 	 * Params:
6820 	 *     treeModel = a #GtkTreeModel
6821 	 *     iter = the uninitialized #GtkTreeIter-struct
6822 	 *     path = the #GtkTreePath-struct
6823 	 * Returns: %TRUE, if @iter was set
6824 	 */
6825 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreePath* path) getIter;
6826 	/**
6827 	 *
6828 	 * Params:
6829 	 *     treeModel = a #GtkTreeModel
6830 	 *     iter = the #GtkTreeIter-struct
6831 	 * Returns: a newly-created #GtkTreePath-struct
6832 	 */
6833 	extern(C) GtkTreePath* function(GtkTreeModel* treeModel, GtkTreeIter* iter) getPath;
6834 	/** */
6835 	extern(C) void function(GtkTreeModel* treeModel, GtkTreeIter* iter, int column, GValue* value) getValue;
6836 	/**
6837 	 *
6838 	 * Params:
6839 	 *     treeModel = a #GtkTreeModel
6840 	 *     iter = the #GtkTreeIter-struct
6841 	 * Returns: %TRUE if @iter has been changed to the next node
6842 	 */
6843 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter) iterNext;
6844 	/**
6845 	 *
6846 	 * Params:
6847 	 *     treeModel = a #GtkTreeModel
6848 	 *     iter = the #GtkTreeIter-struct
6849 	 * Returns: %TRUE if @iter has been changed to the previous node
6850 	 */
6851 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter) iterPrevious;
6852 	/**
6853 	 *
6854 	 * Params:
6855 	 *     treeModel = a #GtkTreeModel
6856 	 *     iter = the new #GtkTreeIter-struct to be set to the child
6857 	 *     parent = the #GtkTreeIter-struct, or %NULL
6858 	 * Returns: %TRUE, if @iter has been set to the first child
6859 	 */
6860 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreeIter* parent) iterChildren;
6861 	/**
6862 	 *
6863 	 * Params:
6864 	 *     treeModel = a #GtkTreeModel
6865 	 *     iter = the #GtkTreeIter-struct to test for children
6866 	 * Returns: %TRUE if @iter has children
6867 	 */
6868 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter) iterHasChild;
6869 	/**
6870 	 *
6871 	 * Params:
6872 	 *     treeModel = a #GtkTreeModel
6873 	 *     iter = the #GtkTreeIter-struct, or %NULL
6874 	 * Returns: the number of children of @iter
6875 	 */
6876 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter) iterNChildren;
6877 	/**
6878 	 *
6879 	 * Params:
6880 	 *     treeModel = a #GtkTreeModel
6881 	 *     iter = the #GtkTreeIter-struct to set to the nth child
6882 	 *     parent = the #GtkTreeIter-struct to get the child from, or %NULL.
6883 	 *     n = the index of the desired child
6884 	 * Returns: %TRUE, if @parent has an @n-th child
6885 	 */
6886 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreeIter* parent, int n) iterNthChild;
6887 	/**
6888 	 *
6889 	 * Params:
6890 	 *     treeModel = a #GtkTreeModel
6891 	 *     iter = the new #GtkTreeIter-struct to set to the parent
6892 	 *     child = the #GtkTreeIter-struct
6893 	 * Returns: %TRUE, if @iter is set to the parent of @child
6894 	 */
6895 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreeIter* child) iterParent;
6896 	/** */
6897 	extern(C) void function(GtkTreeModel* treeModel, GtkTreeIter* iter) refNode;
6898 	/** */
6899 	extern(C) void function(GtkTreeModel* treeModel, GtkTreeIter* iter) unrefNode;
6900 }
6901 
6902 struct GtkTreeModelSort
6903 {
6904 	GObject parent;
6905 	GtkTreeModelSortPrivate* priv;
6906 }
6907 
6908 struct GtkTreeModelSortClass
6909 {
6910 	GObjectClass parentClass;
6911 	void*[8] padding;
6912 }
6913 
6914 struct GtkTreeModelSortPrivate;
6915 
6916 struct GtkTreePath;
6917 
6918 struct GtkTreeRowReference;
6919 
6920 struct GtkTreeSelection;
6921 
6922 struct GtkTreeSortable;
6923 
6924 struct GtkTreeSortableIface
6925 {
6926 	GTypeInterface gIface;
6927 	/** */
6928 	extern(C) void function(GtkTreeSortable* sortable) sortColumnChanged;
6929 	/**
6930 	 *
6931 	 * Params:
6932 	 *     sortable = A #GtkTreeSortable
6933 	 *     sortColumnId = The sort column id to be filled in
6934 	 *     order = The #GtkSortType to be filled in
6935 	 * Returns: %TRUE if the sort column is not one of the special sort
6936 	 *     column ids.
6937 	 */
6938 	extern(C) int function(GtkTreeSortable* sortable, int* sortColumnId, GtkSortType* order) getSortColumnId;
6939 	/** */
6940 	extern(C) void function(GtkTreeSortable* sortable, int sortColumnId, GtkSortType order) setSortColumnId;
6941 	/** */
6942 	extern(C) void function(GtkTreeSortable* sortable, int sortColumnId, GtkTreeIterCompareFunc sortFunc, void* userData, GDestroyNotify destroy) setSortFunc;
6943 	/** */
6944 	extern(C) void function(GtkTreeSortable* sortable, GtkTreeIterCompareFunc sortFunc, void* userData, GDestroyNotify destroy) setDefaultSortFunc;
6945 	/**
6946 	 *
6947 	 * Params:
6948 	 *     sortable = A #GtkTreeSortable
6949 	 * Returns: %TRUE, if the model has a default sort function
6950 	 */
6951 	extern(C) int function(GtkTreeSortable* sortable) hasDefaultSortFunc;
6952 }
6953 
6954 struct GtkTreeStore
6955 {
6956 	GObject parent;
6957 	GtkTreeStorePrivate* priv;
6958 }
6959 
6960 struct GtkTreeStoreClass
6961 {
6962 	GObjectClass parentClass;
6963 	void*[8] padding;
6964 }
6965 
6966 struct GtkTreeStorePrivate;
6967 
6968 struct GtkTreeView
6969 {
6970 	GtkWidget parentInstance;
6971 }
6972 
6973 struct GtkTreeViewClass
6974 {
6975 	GtkWidgetClass parentClass;
6976 	/** */
6977 	extern(C) void function(GtkTreeView* treeView, GtkTreePath* path, GtkTreeViewColumn* column) rowActivated;
6978 	/** */
6979 	extern(C) int function(GtkTreeView* treeView, GtkTreeIter* iter, GtkTreePath* path) testExpandRow;
6980 	/** */
6981 	extern(C) int function(GtkTreeView* treeView, GtkTreeIter* iter, GtkTreePath* path) testCollapseRow;
6982 	/** */
6983 	extern(C) void function(GtkTreeView* treeView, GtkTreeIter* iter, GtkTreePath* path) rowExpanded;
6984 	/** */
6985 	extern(C) void function(GtkTreeView* treeView, GtkTreeIter* iter, GtkTreePath* path) rowCollapsed;
6986 	/** */
6987 	extern(C) void function(GtkTreeView* treeView) columnsChanged;
6988 	/** */
6989 	extern(C) void function(GtkTreeView* treeView) cursorChanged;
6990 	/** */
6991 	extern(C) int function(GtkTreeView* treeView, GtkMovementStep step, int count, int extend, int modify) moveCursor;
6992 	/** */
6993 	extern(C) int function(GtkTreeView* treeView) selectAll;
6994 	/** */
6995 	extern(C) int function(GtkTreeView* treeView) unselectAll;
6996 	/** */
6997 	extern(C) int function(GtkTreeView* treeView, int startEditing) selectCursorRow;
6998 	/** */
6999 	extern(C) int function(GtkTreeView* treeView) toggleCursorRow;
7000 	/** */
7001 	extern(C) int function(GtkTreeView* treeView, int logical, int expand, int openAll) expandCollapseCursorRow;
7002 	/** */
7003 	extern(C) int function(GtkTreeView* treeView) selectCursorParent;
7004 	/** */
7005 	extern(C) int function(GtkTreeView* treeView) startInteractiveSearch;
7006 	void*[16] Reserved;
7007 }
7008 
7009 struct GtkTreeViewColumn;
7010 
7011 struct GtkVideo;
7012 
7013 struct GtkVideoClass
7014 {
7015 	GtkWidgetClass parentClass;
7016 }
7017 
7018 struct GtkViewport;
7019 
7020 struct GtkVolumeButton
7021 {
7022 	GtkScaleButton parent;
7023 }
7024 
7025 struct GtkWidget
7026 {
7027 	GObject parentInstance;
7028 	GtkWidgetPrivate* priv;
7029 }
7030 
7031 struct GtkWidgetClass
7032 {
7033 	/**
7034 	 * The object class structure needs to be the first
7035 	 * element in the widget class structure in order for the class mechanism
7036 	 * to work correctly. This allows a GtkWidgetClass pointer to be cast to
7037 	 * a GObjectClass pointer.
7038 	 */
7039 	GObjectClass parentClass;
7040 	/** */
7041 	extern(C) void function(GtkWidget* widget) show;
7042 	/** */
7043 	extern(C) void function(GtkWidget* widget) hide;
7044 	/** */
7045 	extern(C) void function(GtkWidget* widget) map;
7046 	/** */
7047 	extern(C) void function(GtkWidget* widget) unmap;
7048 	/** */
7049 	extern(C) void function(GtkWidget* widget) realize;
7050 	/** */
7051 	extern(C) void function(GtkWidget* widget) unrealize;
7052 	/** */
7053 	extern(C) void function(GtkWidget* widget) root;
7054 	/** */
7055 	extern(C) void function(GtkWidget* widget) unroot;
7056 	/** */
7057 	extern(C) void function(GtkWidget* widget, int width, int height, int baseline) sizeAllocate;
7058 	/** */
7059 	extern(C) void function(GtkWidget* widget, GtkStateFlags previousStateFlags) stateFlagsChanged;
7060 	/** */
7061 	extern(C) void function(GtkWidget* widget, GtkTextDirection previousDirection) directionChanged;
7062 	/**
7063 	 *
7064 	 * Params:
7065 	 *     widget = a `GtkWidget` instance
7066 	 * Returns: The `GtkSizeRequestMode` preferred by @widget.
7067 	 */
7068 	extern(C) GtkSizeRequestMode function(GtkWidget* widget) getRequestMode;
7069 	/** */
7070 	extern(C) void function(GtkWidget* widget, GtkOrientation orientation, int forSize, int* minimum, int* natural, int* minimumBaseline, int* naturalBaseline) measure;
7071 	/**
7072 	 *
7073 	 * Params:
7074 	 *     widget = a `GtkWidget`
7075 	 *     groupCycling = %TRUE if there are other widgets with the same mnemonic
7076 	 * Returns: %TRUE if the signal has been handled
7077 	 */
7078 	extern(C) int function(GtkWidget* widget, int groupCycling) mnemonicActivate;
7079 	/**
7080 	 *
7081 	 * Params:
7082 	 *     widget = a `GtkWidget`
7083 	 * Returns: %TRUE if focus is now inside @widget.
7084 	 */
7085 	extern(C) int function(GtkWidget* widget) grabFocus;
7086 	/** */
7087 	extern(C) int function(GtkWidget* widget, GtkDirectionType direction) focus;
7088 	/** */
7089 	extern(C) void function(GtkWidget* widget, GtkWidget* child) setFocusChild;
7090 	/** */
7091 	extern(C) void function(GtkWidget* widget, GtkDirectionType direction) moveFocus;
7092 	/**
7093 	 *
7094 	 * Params:
7095 	 *     widget = a `GtkWidget`
7096 	 *     direction = direction of focus movement
7097 	 * Returns: %TRUE if stopping keyboard navigation is fine, %FALSE
7098 	 *     if the emitting widget should try to handle the keyboard
7099 	 *     navigation attempt in its parent container(s).
7100 	 */
7101 	extern(C) int function(GtkWidget* widget, GtkDirectionType direction) keynavFailed;
7102 	/** */
7103 	extern(C) int function(GtkWidget* widget, int x, int y, int keyboardTooltip, GtkTooltip* tooltip) queryTooltip;
7104 	/** */
7105 	extern(C) void function(GtkWidget* widget, int* hexpandP, int* vexpandP) computeExpand;
7106 	/** */
7107 	extern(C) void function(GtkWidget* widget, GtkCssStyleChange* change) cssChanged;
7108 	/** */
7109 	extern(C) void function(GtkWidget* widget, GtkSystemSetting settings) systemSettingChanged;
7110 	/** */
7111 	extern(C) void function(GtkWidget* widget, GtkSnapshot* snapshot) snapshot;
7112 	/**
7113 	 *
7114 	 * Params:
7115 	 *     widget = the widget to query
7116 	 *     x = X coordinate to test, relative to @widget's origin
7117 	 *     y = Y coordinate to test, relative to @widget's origin
7118 	 * Returns: %TRUE if @widget contains (@x, @y).
7119 	 */
7120 	extern(C) int function(GtkWidget* widget, double x, double y) contains;
7121 	GtkWidgetClassPrivate* priv;
7122 	void*[8] padding;
7123 }
7124 
7125 struct GtkWidgetClassPrivate;
7126 
7127 struct GtkWidgetPaintable;
7128 
7129 struct GtkWidgetPaintableClass
7130 {
7131 	GObjectClass parentClass;
7132 }
7133 
7134 struct GtkWidgetPrivate;
7135 
7136 struct GtkWindow
7137 {
7138 	GtkWidget parentInstance;
7139 }
7140 
7141 struct GtkWindowClass
7142 {
7143 	/**
7144 	 * The parent class.
7145 	 */
7146 	GtkWidgetClass parentClass;
7147 	/** */
7148 	extern(C) void function(GtkWindow* window) activateFocus;
7149 	/** */
7150 	extern(C) void function(GtkWindow* window) activateDefault;
7151 	/** */
7152 	extern(C) void function(GtkWindow* window) keysChanged;
7153 	/** */
7154 	extern(C) int function(GtkWindow* window, int toggle) enableDebugging;
7155 	/** */
7156 	extern(C) int function(GtkWindow* window) closeRequest;
7157 	void*[8] padding;
7158 }
7159 
7160 struct GtkWindowControls;
7161 
7162 struct GtkWindowControlsClass
7163 {
7164 	GtkWidgetClass parentClass;
7165 }
7166 
7167 struct GtkWindowGroup
7168 {
7169 	GObject parentInstance;
7170 	GtkWindowGroupPrivate* priv;
7171 }
7172 
7173 struct GtkWindowGroupClass
7174 {
7175 	GObjectClass parentClass;
7176 	/** */
7177 	extern(C) void function() GtkReserved1;
7178 	/** */
7179 	extern(C) void function() GtkReserved2;
7180 	/** */
7181 	extern(C) void function() GtkReserved3;
7182 	/** */
7183 	extern(C) void function() GtkReserved4;
7184 }
7185 
7186 struct GtkWindowGroupPrivate;
7187 
7188 struct GtkWindowHandle;
7189 
7190 struct GtkWindowHandleClass
7191 {
7192 	GtkWidgetClass parentClass;
7193 }
7194 
7195 /**
7196  * Type of callback used to calculate the next page in a `GtkAssistant`.
7197  *
7198  * It’s called both for computing the next page when the user presses the
7199  * “forward” button and for handling the behavior of the “last” button.
7200  *
7201  * See [method@Gtk.Assistant.set_forward_page_func].
7202  *
7203  * Params:
7204  *     currentPage = The page number used to calculate the next page.
7205  *     data = user data.
7206  *
7207  * Returns: The next page number
7208  */
7209 public alias extern(C) int function(int currentPage, void* data) GtkAssistantPageFunc;
7210 
7211 /**
7212  * The type of the callback functions used for iterating over the
7213  * cell renderers and their allocated areas inside a #GtkCellArea,
7214  * see gtk_cell_area_foreach_alloc().
7215  *
7216  * Params:
7217  *     renderer = the cell renderer to operate on
7218  *     cellArea = the area allocated to @renderer inside the rectangle
7219  *         provided to gtk_cell_area_foreach_alloc().
7220  *     cellBackground = the background area for @renderer inside the
7221  *         background area provided to gtk_cell_area_foreach_alloc().
7222  *     data = user-supplied data
7223  *
7224  * Returns: %TRUE to stop iterating over cells.
7225  */
7226 public alias extern(C) int function(GtkCellRenderer* renderer, GdkRectangle* cellArea, GdkRectangle* cellBackground, void* data) GtkCellAllocCallback;
7227 
7228 /**
7229  * The type of the callback functions used for iterating over
7230  * the cell renderers of a #GtkCellArea, see gtk_cell_area_foreach().
7231  *
7232  * Params:
7233  *     renderer = the cell renderer to operate on
7234  *     data = user-supplied data
7235  *
7236  * Returns: %TRUE to stop iterating over cells.
7237  */
7238 public alias extern(C) int function(GtkCellRenderer* renderer, void* data) GtkCellCallback;
7239 
7240 /**
7241  * A function which should set the value of @cell_layout’s cell renderer(s)
7242  * as appropriate.
7243  *
7244  * Params:
7245  *     cellLayout = a #GtkCellLayout
7246  *     cell = the cell renderer whose value is to be set
7247  *     treeModel = the model
7248  *     iter = a #GtkTreeIter indicating the row to set the value for
7249  *     data = user data passed to gtk_cell_layout_set_cell_data_func()
7250  */
7251 public alias extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, GtkTreeModel* treeModel, GtkTreeIter* iter, void* data) GtkCellLayoutDataFunc;
7252 
7253 /**
7254  * A function to be used by `GtkCustomLayout` to allocate a widget.
7255  *
7256  * Params:
7257  *     widget = the widget to allocate
7258  *     width = the new width of the widget
7259  *     height = the new height of the widget
7260  *     baseline = the new baseline of the widget, or -1
7261  */
7262 public alias extern(C) void function(GtkWidget* widget, int width, int height, int baseline) GtkCustomAllocateFunc;
7263 
7264 /**
7265  * User function that is called to determine if the @item should be matched.
7266  *
7267  * If the filter matches the item, this function must return %TRUE. If the
7268  * item should be filtered out, %FALSE must be returned.
7269  *
7270  * Params:
7271  *     item = The item to be matched
7272  *     userData = user data
7273  *
7274  * Returns: %TRUE to keep the item around
7275  */
7276 public alias extern(C) int function(void* item, void* userData) GtkCustomFilterFunc;
7277 
7278 /**
7279  * A function to be used by #GtkCustomLayout to measure a widget.
7280  *
7281  * Params:
7282  *     widget = the widget to be measured
7283  *     orientation = the direction to be measured
7284  *     forSize = the size to be measured for
7285  *     minimum = the measured minimum size of the widget
7286  *     natural = the measured natural size of the widget
7287  *     minimumBaseline = the measured minimum baseline of the widget
7288  *     naturalBaseline = the measured natural baseline of the widget
7289  */
7290 public alias extern(C) void function(GtkWidget* widget, GtkOrientation orientation, int forSize, int* minimum, int* natural, int* minimumBaseline, int* naturalBaseline) GtkCustomMeasureFunc;
7291 
7292 /**
7293  * Queries a widget for its preferred size request mode.
7294  *
7295  * Params:
7296  *     widget = the widget to be queried
7297  *
7298  * Returns: the size request mode
7299  */
7300 public alias extern(C) GtkSizeRequestMode function(GtkWidget* widget) GtkCustomRequestModeFunc;
7301 
7302 /**
7303  * Whenever @drawing_area needs to redraw, this function will be called.
7304  *
7305  * This function should exclusively redraw the contents of the drawing area
7306  * and must not call any widget functions that cause changes.
7307  *
7308  * Params:
7309  *     drawingArea = the #GtkDrawingArea to redraw
7310  *     cr = the context to draw to
7311  *     width = the actual width of the contents. This value will be at least
7312  *         as wide as GtkDrawingArea:width.
7313  *     height = the actual height of the contents. This value will be at least
7314  *         as wide as GtkDrawingArea:height.
7315  *     userData = user data
7316  */
7317 public alias extern(C) void function(GtkDrawingArea* drawingArea, cairo_t* cr, int width, int height, void* userData) GtkDrawingAreaDrawFunc;
7318 
7319 /**
7320  * A function which decides whether the row indicated by @iter matches
7321  * a given @key, and should be displayed as a possible completion for @key.
7322  *
7323  * Note that @key is normalized and case-folded (see g_utf8_normalize()
7324  * and g_utf8_casefold()). If this is not appropriate, match functions
7325  * have access to the unmodified key via
7326  * `gtk_editable_get_text (GTK_EDITABLE (gtk_entry_completion_get_entry ()))`.
7327  *
7328  * Params:
7329  *     completion = the #GtkEntryCompletion
7330  *     key = the string to match, normalized and case-folded
7331  *     iter = a #GtkTreeIter indicating the row to match
7332  *     userData = user data given to gtk_entry_completion_set_match_func()
7333  *
7334  * Returns: %TRUE if @iter should be displayed as a possible completion
7335  *     for @key
7336  */
7337 public alias extern(C) int function(GtkEntryCompletion* completion, const(char)* key, GtkTreeIter* iter, void* userData) GtkEntryCompletionMatchFunc;
7338 
7339 /**
7340  * Callback called by gtk_expression_watch() when the
7341  * expression value changes.
7342  *
7343  * Params:
7344  *     userData = data passed to gtk_expression_watch()
7345  */
7346 public alias extern(C) void function(void* userData) GtkExpressionNotify;
7347 
7348 /**
7349  * Called for flow boxes that are bound to a `GListModel`.
7350  *
7351  * This function is called for each item that gets added to the model.
7352  *
7353  * Params:
7354  *     item = the item from the model for which to create a widget for
7355  *     userData = user data from gtk_flow_box_bind_model()
7356  *
7357  * Returns: a `GtkWidget` that represents @item
7358  */
7359 public alias extern(C) GtkWidget* function(void* item, void* userData) GtkFlowBoxCreateWidgetFunc;
7360 
7361 /**
7362  * A function that will be called whenever a child changes
7363  * or is added.
7364  *
7365  * It lets you control if the child should be visible or not.
7366  *
7367  * Params:
7368  *     child = a `GtkFlowBoxChild` that may be filtered
7369  *     userData = user data
7370  *
7371  * Returns: %TRUE if the row should be visible, %FALSE otherwise
7372  */
7373 public alias extern(C) int function(GtkFlowBoxChild* child, void* userData) GtkFlowBoxFilterFunc;
7374 
7375 /**
7376  * A function used by gtk_flow_box_selected_foreach().
7377  *
7378  * It will be called on every selected child of the @box.
7379  *
7380  * Params:
7381  *     box = a `GtkFlowBox`
7382  *     child = a `GtkFlowBoxChild`
7383  *     userData = user data
7384  */
7385 public alias extern(C) void function(GtkFlowBox* box, GtkFlowBoxChild* child, void* userData) GtkFlowBoxForeachFunc;
7386 
7387 /**
7388  * A function to compare two children to determine which
7389  * should come first.
7390  *
7391  * Params:
7392  *     child1 = the first child
7393  *     child2 = the second child
7394  *     userData = user data
7395  *
7396  * Returns: < 0 if @child1 should be before @child2, 0 if
7397  *     the are equal, and > 0 otherwise
7398  */
7399 public alias extern(C) int function(GtkFlowBoxChild* child1, GtkFlowBoxChild* child2, void* userData) GtkFlowBoxSortFunc;
7400 
7401 /**
7402  * The type of function that is used for deciding what fonts get
7403  * shown in a `GtkFontChooser`.
7404  *
7405  * See [method@Gtk.FontChooser.set_filter_func].
7406  *
7407  * Params:
7408  *     family = a #PangoFontFamily
7409  *     face = a #PangoFontFace belonging to @family
7410  *     data = user data passed to gtk_font_chooser_set_filter_func()
7411  *
7412  * Returns: %TRUE if the font should be displayed
7413  */
7414 public alias extern(C) int function(PangoFontFamily* family, PangoFontFace* face, void* data) GtkFontFilterFunc;
7415 
7416 /**
7417  * A function used by gtk_icon_view_selected_foreach() to map all
7418  * selected rows.
7419  *
7420  * It will be called on every selected row in the view.
7421  *
7422  * Params:
7423  *     iconView = a #GtkIconView
7424  *     path = The #GtkTreePath of a selected row
7425  *     data = user data
7426  */
7427 public alias extern(C) void function(GtkIconView* iconView, GtkTreePath* path, void* data) GtkIconViewForeachFunc;
7428 
7429 /**
7430  * Called for list boxes that are bound to a `GListModel` with
7431  * gtk_list_box_bind_model() for each item that gets added to the model.
7432  *
7433  * Params:
7434  *     item = the item from the model for which to create a widget for
7435  *     userData = user data
7436  *
7437  * Returns: a `GtkWidget` that represents @item
7438  */
7439 public alias extern(C) GtkWidget* function(void* item, void* userData) GtkListBoxCreateWidgetFunc;
7440 
7441 /**
7442  * Will be called whenever the row changes or is added and lets you control
7443  * if the row should be visible or not.
7444  *
7445  * Params:
7446  *     row = the row that may be filtered
7447  *     userData = user data
7448  *
7449  * Returns: %TRUE if the row should be visible, %FALSE otherwise
7450  */
7451 public alias extern(C) int function(GtkListBoxRow* row, void* userData) GtkListBoxFilterFunc;
7452 
7453 /**
7454  * A function used by gtk_list_box_selected_foreach().
7455  *
7456  * It will be called on every selected child of the @box.
7457  *
7458  * Params:
7459  *     box = a `GtkListBox`
7460  *     row = a `GtkListBoxRow`
7461  *     userData = user data
7462  */
7463 public alias extern(C) void function(GtkListBox* box, GtkListBoxRow* row, void* userData) GtkListBoxForeachFunc;
7464 
7465 /**
7466  * Compare two rows to determine which should be first.
7467  *
7468  * Params:
7469  *     row1 = the first row
7470  *     row2 = the second row
7471  *     userData = user data
7472  *
7473  * Returns: < 0 if @row1 should be before @row2, 0 if they are
7474  *     equal and > 0 otherwise
7475  */
7476 public alias extern(C) int function(GtkListBoxRow* row1, GtkListBoxRow* row2, void* userData) GtkListBoxSortFunc;
7477 
7478 /**
7479  * Whenever @row changes or which row is before @row changes this
7480  * is called, which lets you update the header on @row.
7481  *
7482  * You may remove or set a new one via [method@Gtk.ListBoxRow.set_header]
7483  * or just change the state of the current header widget.
7484  *
7485  * Params:
7486  *     row = the row to update
7487  *     before = the row before @row, or %NULL if it is first
7488  *     userData = user data
7489  */
7490 public alias extern(C) void function(GtkListBoxRow* row, GtkListBoxRow* before, void* userData) GtkListBoxUpdateHeaderFunc;
7491 
7492 /**
7493  * User function that is called to map an @item of the original model to
7494  * an item expected by the map model.
7495  *
7496  * The returned items must conform to the item type of the model they are
7497  * used with.
7498  *
7499  * Params:
7500  *     item = The item to map
7501  *     userData = user data
7502  *
7503  * Returns: The item to map to.
7504  *     This function may not return %NULL
7505  */
7506 public alias extern(C) void* function(void* item, void* userData) GtkMapListModelMapFunc;
7507 
7508 /**
7509  * User-provided callback function to create a popup for a
7510  * `GtkMenuButton` on demand.
7511  *
7512  * This function is called when the popup of @menu_button is shown,
7513  * but none has been provided via [method@Gtk.MenuButton.set_popover]
7514  * or [method@Gtk.MenuButton.set_menu_model].
7515  *
7516  * Params:
7517  *     menuButton = the #GtkMenuButton
7518  *     userData = User data passed to gtk_menu_button_set_create_popup_func()
7519  */
7520 public alias extern(C) void function(GtkMenuButton* menuButton, void* userData) GtkMenuButtonCreatePopupFunc;
7521 
7522 /**
7523  * The type of function that is passed to
7524  * gtk_print_run_page_setup_dialog_async().
7525  *
7526  * This function will be called when the page setup dialog
7527  * is dismissed, and also serves as destroy notify for @data.
7528  *
7529  * Params:
7530  *     pageSetup = the #GtkPageSetup that has been passed to
7531  *         gtk_print_run_page_setup_dialog_async()
7532  *     data = user data that has been passed to
7533  *         gtk_print_run_page_setup_dialog_async()
7534  */
7535 public alias extern(C) void function(GtkPageSetup* pageSetup, void* data) GtkPageSetupDoneFunc;
7536 
7537 /**
7538  * The type of callback that is passed to gtk_print_job_send().
7539  *
7540  * It is called when the print job has been completely sent.
7541  *
7542  * Params:
7543  *     printJob = the #GtkPrintJob
7544  *     userData = user data that has been passed to gtk_print_job_send()
7545  *     error = a #GError that contains error information if the sending
7546  *         of the print job failed, otherwise %NULL
7547  */
7548 public alias extern(C) void function(GtkPrintJob* printJob, void* userData, GError* error) GtkPrintJobCompleteFunc;
7549 
7550 /** */
7551 public alias extern(C) void function(const(char)* key, const(char)* value, void* userData) GtkPrintSettingsFunc;
7552 
7553 /**
7554  * The type of function passed to gtk_enumerate_printers().
7555  *
7556  * Note that you need to ref @printer, if you want to keep
7557  * a reference to it after the function has returned.
7558  *
7559  * Params:
7560  *     printer = a #GtkPrinter
7561  *     data = user data passed to gtk_enumerate_printers()
7562  *
7563  * Returns: %TRUE to stop the enumeration, %FALSE to continue
7564  */
7565 public alias extern(C) int function(GtkPrinter* printer, void* data) GtkPrinterFunc;
7566 
7567 /**
7568  *
7569  * Params:
7570  *     scale = The #GtkScale
7571  *     value = The numeric value to format
7572  *     userData = user data
7573  * Returns: A newly allocated string describing a textual representation
7574  *     of the given numerical value.
7575  */
7576 public alias extern(C) char* function(GtkScale* scale, double value, void* userData) GtkScaleFormatValueFunc;
7577 
7578 /**
7579  * Prototype for shortcuts based on user callbacks.
7580  *
7581  * Params:
7582  *     widget = The widget passed to the activation
7583  *     args = The arguments passed to the activation
7584  *     userData = The user data provided when activating the action
7585  */
7586 public alias extern(C) int function(GtkWidget* widget, GVariant* args, void* userData) GtkShortcutFunc;
7587 
7588 /**
7589  * The predicate function used by gtk_text_iter_forward_find_char() and
7590  * gtk_text_iter_backward_find_char().
7591  *
7592  * Params:
7593  *     ch = a Unicode code point
7594  *     userData = data passed to the callback
7595  *
7596  * Returns: %TRUE if the predicate is satisfied, and the iteration should
7597  *     stop, and %FALSE otherwise
7598  */
7599 public alias extern(C) int function(dchar ch, void* userData) GtkTextCharPredicate;
7600 
7601 /**
7602  * A function used with gtk_text_tag_table_foreach(),
7603  * to iterate over every `GtkTextTag` inside a `GtkTextTagTable`.
7604  *
7605  * Params:
7606  *     tag = the `GtkTextTag`
7607  *     data = data passed to gtk_text_tag_table_foreach()
7608  */
7609 public alias extern(C) void function(GtkTextTag* tag, void* data) GtkTextTagTableForeach;
7610 
7611 /**
7612  * Callback type for adding a function to update animations. See gtk_widget_add_tick_callback().
7613  *
7614  * Params:
7615  *     widget = the widget
7616  *     frameClock = the frame clock for the widget (same as calling gtk_widget_get_frame_clock())
7617  *     userData = user data passed to gtk_widget_add_tick_callback().
7618  *
7619  * Returns: %G_SOURCE_CONTINUE if the tick callback should continue to be called,
7620  *     %G_SOURCE_REMOVE if the tick callback should be removed.
7621  */
7622 public alias extern(C) int function(GtkWidget* widget, GdkFrameClock* frameClock, void* userData) GtkTickCallback;
7623 
7624 /**
7625  * A function to set the properties of a cell instead of just using the
7626  * straight mapping between the cell and the model.
7627  *
7628  * This function is useful for customizing the cell renderer. For example,
7629  * a function might get an* integer from the @tree_model, and render it to
7630  * the “text” attribute of “cell” by converting it to its written equivalent.
7631  *
7632  * See also: gtk_tree_view_column_set_cell_data_func()
7633  *
7634  * Params:
7635  *     treeColumn = A #GtkTreeViewColumn
7636  *     cell = The #GtkCellRenderer that is being rendered by @tree_column
7637  *     treeModel = The #GtkTreeModel being rendered
7638  *     iter = A #GtkTreeIter of the current row rendered
7639  *     data = user data
7640  */
7641 public alias extern(C) void function(GtkTreeViewColumn* treeColumn, GtkCellRenderer* cell, GtkTreeModel* treeModel, GtkTreeIter* iter, void* data) GtkTreeCellDataFunc;
7642 
7643 /**
7644  * A GtkTreeIterCompareFunc should return a negative integer, zero, or a positive
7645  * integer if @a sorts before @b, @a sorts with @b, or @a sorts after @b
7646  * respectively.
7647  *
7648  * If two iters compare as equal, their order in the sorted model
7649  * is undefined. In order to ensure that the #GtkTreeSortable behaves as
7650  * expected, the GtkTreeIterCompareFunc must define a partial order on
7651  * the model, i.e. it must be reflexive, antisymmetric and transitive.
7652  *
7653  * For example, if @model is a product catalogue, then a compare function
7654  * for the “price” column could be one which returns
7655  * `price_of(@a) - price_of(@b)`.
7656  *
7657  * Params:
7658  *     model = The #GtkTreeModel the comparison is within
7659  *     a = A #GtkTreeIter in @model
7660  *     b = Another #GtkTreeIter in @model
7661  *     userData = Data passed when the compare func is assigned e.g. by
7662  *         gtk_tree_sortable_set_sort_func()
7663  *
7664  * Returns: a negative integer, zero or a positive integer depending on whether
7665  *     @a sorts before, with or after @b
7666  */
7667 public alias extern(C) int function(GtkTreeModel* model, GtkTreeIter* a, GtkTreeIter* b, void* userData) GtkTreeIterCompareFunc;
7668 
7669 /**
7670  * Prototype of the function called to create new child models when
7671  * gtk_tree_list_row_set_expanded() is called.
7672  *
7673  * This function can return %NULL to indicate that @item is guaranteed to be
7674  * a leaf node and will never have children.
7675  * If it does not have children but may get children later, it should return
7676  * an empty model that is filled once children arrive.
7677  *
7678  * Params:
7679  *     item = The item that is being expanded
7680  *     userData = User data passed when registering the function
7681  *
7682  * Returns: The model tracking the children of @item or %NULL if
7683  *     @item can never have children
7684  */
7685 public alias extern(C) GListModel* function(void* item, void* userData) GtkTreeListModelCreateModelFunc;
7686 
7687 /**
7688  * A function which calculates display values from raw values in the model.
7689  * It must fill @value with the display value for the column @column in the
7690  * row indicated by @iter.
7691  *
7692  * Since this function is called for each data access, it’s not a
7693  * particularly efficient operation.
7694  *
7695  * Params:
7696  *     model = the #GtkTreeModelFilter
7697  *     iter = a #GtkTreeIter pointing to the row whose display values are determined
7698  *     value = A #GValue which is already initialized for
7699  *         with the correct type for the column @column.
7700  *     column = the column whose display value is determined
7701  *     data = user data given to gtk_tree_model_filter_set_modify_func()
7702  */
7703 public alias extern(C) void function(GtkTreeModel* model, GtkTreeIter* iter, GValue* value, int column, void* data) GtkTreeModelFilterModifyFunc;
7704 
7705 /**
7706  * A function which decides whether the row indicated by @iter is visible.
7707  *
7708  * Params:
7709  *     model = the child model of the #GtkTreeModelFilter
7710  *     iter = a #GtkTreeIter pointing to the row in @model whose visibility
7711  *         is determined
7712  *     data = user data given to gtk_tree_model_filter_set_visible_func()
7713  *
7714  * Returns: Whether the row indicated by @iter is visible.
7715  */
7716 public alias extern(C) int function(GtkTreeModel* model, GtkTreeIter* iter, void* data) GtkTreeModelFilterVisibleFunc;
7717 
7718 /**
7719  * Type of the callback passed to gtk_tree_model_foreach() to
7720  * iterate over the rows in a tree model.
7721  *
7722  * Params:
7723  *     model = the #GtkTreeModel being iterated
7724  *     path = the current #GtkTreePath
7725  *     iter = the current #GtkTreeIter
7726  *     data = The user data passed to gtk_tree_model_foreach()
7727  *
7728  * Returns: %TRUE to stop iterating, %FALSE to continue
7729  */
7730 public alias extern(C) int function(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, void* data) GtkTreeModelForeachFunc;
7731 
7732 /**
7733  * A function used by gtk_tree_selection_selected_foreach() to map all
7734  * selected rows.  It will be called on every selected row in the view.
7735  *
7736  * Params:
7737  *     model = The #GtkTreeModel being viewed
7738  *     path = The #GtkTreePath of a selected row
7739  *     iter = A #GtkTreeIter pointing to a selected row
7740  *     data = user data
7741  */
7742 public alias extern(C) void function(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, void* data) GtkTreeSelectionForeachFunc;
7743 
7744 /**
7745  * A function used by gtk_tree_selection_set_select_function() to filter
7746  * whether or not a row may be selected. It is called whenever a row's
7747  * state might change.
7748  *
7749  * A return value of %TRUE indicates to @selection that it is okay to
7750  * change the selection.
7751  *
7752  * Params:
7753  *     selection = A #GtkTreeSelection
7754  *     model = A #GtkTreeModel being viewed
7755  *     path = The #GtkTreePath of the row in question
7756  *     pathCurrentlySelected = %TRUE, if the path is currently selected
7757  *     data = user data
7758  *
7759  * Returns: %TRUE, if the selection state of the row can be toggled
7760  */
7761 public alias extern(C) int function(GtkTreeSelection* selection, GtkTreeModel* model, GtkTreePath* path, int pathCurrentlySelected, void* data) GtkTreeSelectionFunc;
7762 
7763 /**
7764  * Function type for determining whether @column can be dropped in a
7765  * particular spot (as determined by @prev_column and @next_column).  In
7766  * left to right locales, @prev_column is on the left of the potential drop
7767  * spot, and @next_column is on the right.  In right to left mode, this is
7768  * reversed.  This function should return %TRUE if the spot is a valid drop
7769  * spot.  Please note that returning %TRUE does not actually indicate that
7770  * the column drop was made, but is meant only to indicate a possible drop
7771  * spot to the user.
7772  *
7773  * Params:
7774  *     treeView = A #GtkTreeView
7775  *     column = The #GtkTreeViewColumn being dragged
7776  *     prevColumn = A #GtkTreeViewColumn on one side of @column
7777  *     nextColumn = A #GtkTreeViewColumn on the other side of @column
7778  *     data = user data
7779  *
7780  * Returns: %TRUE, if @column can be dropped in this spot
7781  */
7782 public alias extern(C) int function(GtkTreeView* treeView, GtkTreeViewColumn* column, GtkTreeViewColumn* prevColumn, GtkTreeViewColumn* nextColumn, void* data) GtkTreeViewColumnDropFunc;
7783 
7784 /**
7785  * Function used for gtk_tree_view_map_expanded_rows().
7786  *
7787  * Params:
7788  *     treeView = A #GtkTreeView
7789  *     path = The path that’s expanded
7790  *     userData = user data
7791  */
7792 public alias extern(C) void function(GtkTreeView* treeView, GtkTreePath* path, void* userData) GtkTreeViewMappingFunc;
7793 
7794 /**
7795  * Function type for determining whether the row pointed to by @iter should
7796  * be rendered as a separator. A common way to implement this is to have a
7797  * boolean column in the model, whose values the #GtkTreeViewRowSeparatorFunc
7798  * returns.
7799  *
7800  * Params:
7801  *     model = the #GtkTreeModel
7802  *     iter = a #GtkTreeIter pointing at a row in @model
7803  *     data = user data
7804  *
7805  * Returns: %TRUE if the row is a separator
7806  */
7807 public alias extern(C) int function(GtkTreeModel* model, GtkTreeIter* iter, void* data) GtkTreeViewRowSeparatorFunc;
7808 
7809 /**
7810  * A function used for checking whether a row in @model matches
7811  * a search key string entered by the user. Note the return value
7812  * is reversed from what you would normally expect, though it
7813  * has some similarity to strcmp() returning 0 for equal strings.
7814  *
7815  * Params:
7816  *     model = the #GtkTreeModel being searched
7817  *     column = the search column set by gtk_tree_view_set_search_column()
7818  *     key = the key string to compare with
7819  *     iter = a #GtkTreeIter pointing the row of @model that should be compared
7820  *         with @key.
7821  *     searchData = user data from gtk_tree_view_set_search_equal_func()
7822  *
7823  * Returns: %FALSE if the row matches, %TRUE otherwise.
7824  */
7825 public alias extern(C) int function(GtkTreeModel* model, int column, const(char)* key, GtkTreeIter* iter, void* searchData) GtkTreeViewSearchEqualFunc;
7826 
7827 /**
7828  * The type of the callback functions used for activating
7829  * actions installed with gtk_widget_class_install_action().
7830  *
7831  * The @parameter must match the @parameter_type of the action.
7832  *
7833  * Params:
7834  *     widget = the widget to which the action belongs
7835  *     actionName = the action name
7836  *     parameter = parameter for activation
7837  */
7838 public alias extern(C) void function(GtkWidget* widget, const(char)* actionName, GVariant* parameter) GtkWidgetActionActivateFunc;
7839 
7840 /**
7841  * An undefined value. The accessible attribute is either unset, or its
7842  * value is undefined.
7843  */
7844 enum ACCESSIBLE_VALUE_UNDEFINED = -1;
7845 alias GTK_ACCESSIBLE_VALUE_UNDEFINED = ACCESSIBLE_VALUE_UNDEFINED;
7846 
7847 /**
7848  * Like gtk_get_binary_age(), but from the headers used at
7849  * application compile time, rather than from the library linked
7850  * against at application run time.
7851  */
7852 enum BINARY_AGE = 201;
7853 alias GTK_BINARY_AGE = BINARY_AGE;
7854 
7855 enum IM_MODULE_EXTENSION_POINT_NAME = "gtk-im-module";
7856 alias GTK_IM_MODULE_EXTENSION_POINT_NAME = IM_MODULE_EXTENSION_POINT_NAME;
7857 
7858 /**
7859  * Constant to return from a signal handler for the ::input
7860  * signal in case of conversion failure.
7861  *
7862  * See [signal@Gtk.SpinButton::input].
7863  */
7864 enum INPUT_ERROR = -1;
7865 alias GTK_INPUT_ERROR = INPUT_ERROR;
7866 
7867 /**
7868  * Like gtk_get_interface_age(), but from the headers used at
7869  * application compile time, rather than from the library linked
7870  * against at application run time.
7871  */
7872 enum INTERFACE_AGE = 1;
7873 alias GTK_INTERFACE_AGE = INTERFACE_AGE;
7874 
7875 /**
7876  * The name used for the stock full offset included by #GtkLevelBar.
7877  */
7878 enum LEVEL_BAR_OFFSET_FULL = "full";
7879 alias GTK_LEVEL_BAR_OFFSET_FULL = LEVEL_BAR_OFFSET_FULL;
7880 
7881 /**
7882  * The name used for the stock high offset included by #GtkLevelBar.
7883  */
7884 enum LEVEL_BAR_OFFSET_HIGH = "high";
7885 alias GTK_LEVEL_BAR_OFFSET_HIGH = LEVEL_BAR_OFFSET_HIGH;
7886 
7887 /**
7888  * The name used for the stock low offset included by #GtkLevelBar.
7889  */
7890 enum LEVEL_BAR_OFFSET_LOW = "low";
7891 alias GTK_LEVEL_BAR_OFFSET_LOW = LEVEL_BAR_OFFSET_LOW;
7892 
7893 /**
7894  * Like gtk_get_major_version(), but from the headers used at
7895  * application compile time, rather than from the library linked
7896  * against at application run time.
7897  */
7898 enum MAJOR_VERSION = 4;
7899 alias GTK_MAJOR_VERSION = MAJOR_VERSION;
7900 
7901 enum MAX_COMPOSE_LEN = 7;
7902 alias GTK_MAX_COMPOSE_LEN = MAX_COMPOSE_LEN;
7903 
7904 enum MEDIA_FILE_EXTENSION_POINT_NAME = "gtk-media-file";
7905 alias GTK_MEDIA_FILE_EXTENSION_POINT_NAME = MEDIA_FILE_EXTENSION_POINT_NAME;
7906 
7907 /**
7908  * Like gtk_get_micro_version(), but from the headers used at
7909  * application compile time, rather than from the library linked
7910  * against at application run time.
7911  */
7912 enum MICRO_VERSION = 1;
7913 alias GTK_MICRO_VERSION = MICRO_VERSION;
7914 
7915 /**
7916  * Like gtk_get_minor_version(), but from the headers used at
7917  * application compile time, rather than from the library linked
7918  * against at application run time.
7919  */
7920 enum MINOR_VERSION = 2;
7921 alias GTK_MINOR_VERSION = MINOR_VERSION;
7922 
7923 /**
7924  * Name for the A3 paper size.
7925  */
7926 enum PAPER_NAME_A3 = "iso_a3";
7927 alias GTK_PAPER_NAME_A3 = PAPER_NAME_A3;
7928 
7929 /**
7930  * Name for the A4 paper size.
7931  */
7932 enum PAPER_NAME_A4 = "iso_a4";
7933 alias GTK_PAPER_NAME_A4 = PAPER_NAME_A4;
7934 
7935 /**
7936  * Name for the A5 paper size.
7937  */
7938 enum PAPER_NAME_A5 = "iso_a5";
7939 alias GTK_PAPER_NAME_A5 = PAPER_NAME_A5;
7940 
7941 /**
7942  * Name for the B5 paper size.
7943  */
7944 enum PAPER_NAME_B5 = "iso_b5";
7945 alias GTK_PAPER_NAME_B5 = PAPER_NAME_B5;
7946 
7947 /**
7948  * Name for the Executive paper size.
7949  */
7950 enum PAPER_NAME_EXECUTIVE = "na_executive";
7951 alias GTK_PAPER_NAME_EXECUTIVE = PAPER_NAME_EXECUTIVE;
7952 
7953 /**
7954  * Name for the Legal paper size.
7955  */
7956 enum PAPER_NAME_LEGAL = "na_legal";
7957 alias GTK_PAPER_NAME_LEGAL = PAPER_NAME_LEGAL;
7958 
7959 /**
7960  * Name for the Letter paper size.
7961  */
7962 enum PAPER_NAME_LETTER = "na_letter";
7963 alias GTK_PAPER_NAME_LETTER = PAPER_NAME_LETTER;
7964 
7965 enum PRINT_SETTINGS_COLLATE = "collate";
7966 alias GTK_PRINT_SETTINGS_COLLATE = PRINT_SETTINGS_COLLATE;
7967 
7968 enum PRINT_SETTINGS_DEFAULT_SOURCE = "default-source";
7969 alias GTK_PRINT_SETTINGS_DEFAULT_SOURCE = PRINT_SETTINGS_DEFAULT_SOURCE;
7970 
7971 enum PRINT_SETTINGS_DITHER = "dither";
7972 alias GTK_PRINT_SETTINGS_DITHER = PRINT_SETTINGS_DITHER;
7973 
7974 enum PRINT_SETTINGS_DUPLEX = "duplex";
7975 alias GTK_PRINT_SETTINGS_DUPLEX = PRINT_SETTINGS_DUPLEX;
7976 
7977 enum PRINT_SETTINGS_FINISHINGS = "finishings";
7978 alias GTK_PRINT_SETTINGS_FINISHINGS = PRINT_SETTINGS_FINISHINGS;
7979 
7980 enum PRINT_SETTINGS_MEDIA_TYPE = "media-type";
7981 alias GTK_PRINT_SETTINGS_MEDIA_TYPE = PRINT_SETTINGS_MEDIA_TYPE;
7982 
7983 enum PRINT_SETTINGS_NUMBER_UP = "number-up";
7984 alias GTK_PRINT_SETTINGS_NUMBER_UP = PRINT_SETTINGS_NUMBER_UP;
7985 
7986 enum PRINT_SETTINGS_NUMBER_UP_LAYOUT = "number-up-layout";
7987 alias GTK_PRINT_SETTINGS_NUMBER_UP_LAYOUT = PRINT_SETTINGS_NUMBER_UP_LAYOUT;
7988 
7989 enum PRINT_SETTINGS_N_COPIES = "n-copies";
7990 alias GTK_PRINT_SETTINGS_N_COPIES = PRINT_SETTINGS_N_COPIES;
7991 
7992 enum PRINT_SETTINGS_ORIENTATION = "orientation";
7993 alias GTK_PRINT_SETTINGS_ORIENTATION = PRINT_SETTINGS_ORIENTATION;
7994 
7995 /**
7996  * The key used by the “Print to file” printer to store the file
7997  * name of the output without the path to the directory and the
7998  * file extension.
7999  */
8000 enum PRINT_SETTINGS_OUTPUT_BASENAME = "output-basename";
8001 alias GTK_PRINT_SETTINGS_OUTPUT_BASENAME = PRINT_SETTINGS_OUTPUT_BASENAME;
8002 
8003 enum PRINT_SETTINGS_OUTPUT_BIN = "output-bin";
8004 alias GTK_PRINT_SETTINGS_OUTPUT_BIN = PRINT_SETTINGS_OUTPUT_BIN;
8005 
8006 /**
8007  * The key used by the “Print to file” printer to store the
8008  * directory to which the output should be written.
8009  */
8010 enum PRINT_SETTINGS_OUTPUT_DIR = "output-dir";
8011 alias GTK_PRINT_SETTINGS_OUTPUT_DIR = PRINT_SETTINGS_OUTPUT_DIR;
8012 
8013 /**
8014  * The key used by the “Print to file” printer to store the format
8015  * of the output. The supported values are “PS” and “PDF”.
8016  */
8017 enum PRINT_SETTINGS_OUTPUT_FILE_FORMAT = "output-file-format";
8018 alias GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT = PRINT_SETTINGS_OUTPUT_FILE_FORMAT;
8019 
8020 /**
8021  * The key used by the “Print to file” printer to store the URI
8022  * to which the output should be written. GTK itself supports
8023  * only “file://” URIs.
8024  */
8025 enum PRINT_SETTINGS_OUTPUT_URI = "output-uri";
8026 alias GTK_PRINT_SETTINGS_OUTPUT_URI = PRINT_SETTINGS_OUTPUT_URI;
8027 
8028 enum PRINT_SETTINGS_PAGE_RANGES = "page-ranges";
8029 alias GTK_PRINT_SETTINGS_PAGE_RANGES = PRINT_SETTINGS_PAGE_RANGES;
8030 
8031 enum PRINT_SETTINGS_PAGE_SET = "page-set";
8032 alias GTK_PRINT_SETTINGS_PAGE_SET = PRINT_SETTINGS_PAGE_SET;
8033 
8034 enum PRINT_SETTINGS_PAPER_FORMAT = "paper-format";
8035 alias GTK_PRINT_SETTINGS_PAPER_FORMAT = PRINT_SETTINGS_PAPER_FORMAT;
8036 
8037 enum PRINT_SETTINGS_PAPER_HEIGHT = "paper-height";
8038 alias GTK_PRINT_SETTINGS_PAPER_HEIGHT = PRINT_SETTINGS_PAPER_HEIGHT;
8039 
8040 enum PRINT_SETTINGS_PAPER_WIDTH = "paper-width";
8041 alias GTK_PRINT_SETTINGS_PAPER_WIDTH = PRINT_SETTINGS_PAPER_WIDTH;
8042 
8043 enum PRINT_SETTINGS_PRINTER = "printer";
8044 alias GTK_PRINT_SETTINGS_PRINTER = PRINT_SETTINGS_PRINTER;
8045 
8046 enum PRINT_SETTINGS_PRINTER_LPI = "printer-lpi";
8047 alias GTK_PRINT_SETTINGS_PRINTER_LPI = PRINT_SETTINGS_PRINTER_LPI;
8048 
8049 enum PRINT_SETTINGS_PRINT_PAGES = "print-pages";
8050 alias GTK_PRINT_SETTINGS_PRINT_PAGES = PRINT_SETTINGS_PRINT_PAGES;
8051 
8052 enum PRINT_SETTINGS_QUALITY = "quality";
8053 alias GTK_PRINT_SETTINGS_QUALITY = PRINT_SETTINGS_QUALITY;
8054 
8055 enum PRINT_SETTINGS_RESOLUTION = "resolution";
8056 alias GTK_PRINT_SETTINGS_RESOLUTION = PRINT_SETTINGS_RESOLUTION;
8057 
8058 enum PRINT_SETTINGS_RESOLUTION_X = "resolution-x";
8059 alias GTK_PRINT_SETTINGS_RESOLUTION_X = PRINT_SETTINGS_RESOLUTION_X;
8060 
8061 enum PRINT_SETTINGS_RESOLUTION_Y = "resolution-y";
8062 alias GTK_PRINT_SETTINGS_RESOLUTION_Y = PRINT_SETTINGS_RESOLUTION_Y;
8063 
8064 enum PRINT_SETTINGS_REVERSE = "reverse";
8065 alias GTK_PRINT_SETTINGS_REVERSE = PRINT_SETTINGS_REVERSE;
8066 
8067 enum PRINT_SETTINGS_SCALE = "scale";
8068 alias GTK_PRINT_SETTINGS_SCALE = PRINT_SETTINGS_SCALE;
8069 
8070 enum PRINT_SETTINGS_USE_COLOR = "use-color";
8071 alias GTK_PRINT_SETTINGS_USE_COLOR = PRINT_SETTINGS_USE_COLOR;
8072 
8073 enum PRINT_SETTINGS_WIN32_DRIVER_EXTRA = "win32-driver-extra";
8074 alias GTK_PRINT_SETTINGS_WIN32_DRIVER_EXTRA = PRINT_SETTINGS_WIN32_DRIVER_EXTRA;
8075 
8076 enum PRINT_SETTINGS_WIN32_DRIVER_VERSION = "win32-driver-version";
8077 alias GTK_PRINT_SETTINGS_WIN32_DRIVER_VERSION = PRINT_SETTINGS_WIN32_DRIVER_VERSION;
8078 
8079 /**
8080  * Use this priority for functionality related to size allocation.
8081  *
8082  * It is used internally by GTK+ to compute the sizes of widgets.
8083  * This priority is higher than %GDK_PRIORITY_REDRAW to avoid
8084  * resizing a widget which was just redrawn.
8085  */
8086 enum PRIORITY_RESIZE = 110;
8087 alias GTK_PRIORITY_RESIZE = PRIORITY_RESIZE;
8088 
8089 /**
8090  * A priority that can be used when adding a `GtkStyleProvider`
8091  * for application-specific style information.
8092  */
8093 enum STYLE_PROVIDER_PRIORITY_APPLICATION = 600;
8094 alias GTK_STYLE_PROVIDER_PRIORITY_APPLICATION = STYLE_PROVIDER_PRIORITY_APPLICATION;
8095 
8096 /**
8097  * The priority used for default style information
8098  * that is used in the absence of themes.
8099  *
8100  * Note that this is not very useful for providing default
8101  * styling for custom style classes - themes are likely to
8102  * override styling provided at this priority with
8103  * catch-all `* {...}` rules.
8104  */
8105 enum STYLE_PROVIDER_PRIORITY_FALLBACK = 1;
8106 alias GTK_STYLE_PROVIDER_PRIORITY_FALLBACK = STYLE_PROVIDER_PRIORITY_FALLBACK;
8107 
8108 /**
8109  * The priority used for style information provided
8110  * via `GtkSettings`.
8111  *
8112  * This priority is higher than #GTK_STYLE_PROVIDER_PRIORITY_THEME
8113  * to let settings override themes.
8114  */
8115 enum STYLE_PROVIDER_PRIORITY_SETTINGS = 400;
8116 alias GTK_STYLE_PROVIDER_PRIORITY_SETTINGS = STYLE_PROVIDER_PRIORITY_SETTINGS;
8117 
8118 /**
8119  * The priority used for style information provided
8120  * by themes.
8121  */
8122 enum STYLE_PROVIDER_PRIORITY_THEME = 200;
8123 alias GTK_STYLE_PROVIDER_PRIORITY_THEME = STYLE_PROVIDER_PRIORITY_THEME;
8124 
8125 /**
8126  * The priority used for the style information from
8127  * `$XDG_CONFIG_HOME/gtk-4.0/gtk.css`.
8128  *
8129  * You should not use priorities higher than this, to
8130  * give the user the last word.
8131  */
8132 enum STYLE_PROVIDER_PRIORITY_USER = 800;
8133 alias GTK_STYLE_PROVIDER_PRIORITY_USER = STYLE_PROVIDER_PRIORITY_USER;
8134 
8135 /**
8136  * The priority at which the text view validates onscreen lines
8137  * in an idle job in the background.
8138  */
8139 enum TEXT_VIEW_PRIORITY_VALIDATE = 125;
8140 alias GTK_TEXT_VIEW_PRIORITY_VALIDATE = TEXT_VIEW_PRIORITY_VALIDATE;
8141 
8142 /**
8143  * Uses the default sort function in a [interface@Gtk.TreeSortable].
8144  *
8145  * See also: [method@Gtk.TreeSortable.set_sort_column_id]
8146  */
8147 enum TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID = -1;
8148 alias GTK_TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID = TREE_SORTABLE_DEFAULT_SORT_COLUMN_ID;
8149 
8150 /**
8151  * Disables sorting in a [interface@Gtk.TreeSortable].
8152  *
8153  * See also: [method@Gtk.TreeSortable.set_sort_column_id]
8154  */
8155 enum TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID = -2;
8156 alias GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID = TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID;