1 /*
2  * This file is part of gtkD.
3  *
4  * gtkD is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License
6  * as published by the Free Software Foundation; either version 3
7  * of the License, or (at your option) any later version, with
8  * some exceptions, please read the COPYING file.
9  *
10  * gtkD is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with gtkD; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
18  */
19 
20 // generated automatically - do not change
21 // find conversion definition on APILookup.txt
22 // implement new conversion functionalities on the wrap.utils pakage
23 
24 
25 module gtkc.gtktypes;
26 
27 public import gtkc.cairotypes;
28 public import gtkc.glibtypes;
29 public import gtkc.gobjecttypes;
30 public import gtkc.giotypes;
31 public import gtkc.pangotypes;
32 public import gtkc.atktypes;
33 public import gtkc.gdkpixbuftypes;
34 public import gtkc.gdktypes;
35 
36 extern(C) Object _d_newclass(ClassInfo ci);
37 
38 alias GtkAllocation* Allocation;
39 
40 /**
41  * A #GtkAllocation-struct of a widget represents region
42  * which has been allocated to the widget by its parent. It is a subregion
43  * of its parents allocation. See
44  * [GtkWidget’s geometry management section][geometry-management] for
45  * more information.
46  */
47 public alias GdkRectangle GtkAllocation;
48 
49 public alias void* GtkStock;
50 
51 /**
52  * Accelerator flags used with gtk_accel_group_connect().
53  */
54 public enum GtkAccelFlags
55 {
56 	/**
57 	 * Accelerator is visible
58 	 */
59 	VISIBLE = 1,
60 	/**
61 	 * Accelerator not removable
62 	 */
63 	LOCKED = 2,
64 	/**
65 	 * Mask
66 	 */
67 	MASK = 7,
68 }
69 alias GtkAccelFlags AccelFlags;
70 
71 /**
72  * Controls how a widget deals with extra space in a single (x or y)
73  * dimension.
74  *
75  * Alignment only matters if the widget receives a “too large” allocation,
76  * for example if you packed the widget with the #GtkWidget:expand
77  * flag inside a #GtkBox, then the widget might get extra space.  If
78  * you have for example a 16x16 icon inside a 32x32 space, the icon
79  * could be scaled and stretched, it could be centered, or it could be
80  * positioned to one side of the space.
81  *
82  * Note that in horizontal context @GTK_ALIGN_START and @GTK_ALIGN_END
83  * are interpreted relative to text direction.
84  *
85  * GTK_ALIGN_BASELINE support for it is optional for containers and widgets, and
86  * it is only supported for vertical alignment.  When its not supported by
87  * a child or a container it is treated as @GTK_ALIGN_FILL.
88  */
89 public enum GtkAlign
90 {
91 	/**
92 	 * stretch to fill all space if possible, center if
93 	 * no meaningful way to stretch
94 	 */
95 	FILL = 0,
96 	/**
97 	 * snap to left or top side, leaving space on right
98 	 * or bottom
99 	 */
100 	START = 1,
101 	/**
102 	 * snap to right or bottom side, leaving space on left
103 	 * or top
104 	 */
105 	END = 2,
106 	/**
107 	 * center natural width of widget inside the
108 	 * allocation
109 	 */
110 	CENTER = 3,
111 	/**
112 	 * align the widget according to the baseline. Since 3.10.
113 	 */
114 	BASELINE = 4,
115 }
116 alias GtkAlign Align;
117 
118 /**
119  * Types of user actions that may be blocked by gtk_application_inhibit().
120  *
121  * Since: 3.4
122  */
123 public enum GtkApplicationInhibitFlags
124 {
125 	/**
126 	 * Inhibit ending the user session
127 	 * by logging out or by shutting down the computer
128 	 */
129 	LOGOUT = 1,
130 	/**
131 	 * Inhibit user switching
132 	 */
133 	SWITCH = 2,
134 	/**
135 	 * Inhibit suspending the
136 	 * session or computer
137 	 */
138 	SUSPEND = 4,
139 	/**
140 	 * Inhibit the session being
141 	 * marked as idle (and possibly locked)
142 	 */
143 	IDLE = 8,
144 }
145 alias GtkApplicationInhibitFlags ApplicationInhibitFlags;
146 
147 /**
148  * Used to specify the placement of scroll arrows in scrolling menus.
149  */
150 public enum GtkArrowPlacement
151 {
152 	/**
153 	 * Place one arrow on each end of the menu.
154 	 */
155 	BOTH = 0,
156 	/**
157 	 * Place both arrows at the top of the menu.
158 	 */
159 	START = 1,
160 	/**
161 	 * Place both arrows at the bottom of the menu.
162 	 */
163 	END = 2,
164 }
165 alias GtkArrowPlacement ArrowPlacement;
166 
167 /**
168  * Used to indicate the direction in which an arrow should point.
169  */
170 public enum GtkArrowType
171 {
172 	/**
173 	 * Represents an upward pointing arrow.
174 	 */
175 	UP = 0,
176 	/**
177 	 * Represents a downward pointing arrow.
178 	 */
179 	DOWN = 1,
180 	/**
181 	 * Represents a left pointing arrow.
182 	 */
183 	LEFT = 2,
184 	/**
185 	 * Represents a right pointing arrow.
186 	 */
187 	RIGHT = 3,
188 	/**
189 	 * No arrow. Since 2.10.
190 	 */
191 	NONE = 4,
192 }
193 alias GtkArrowType ArrowType;
194 
195 /**
196  * An enum for determining the page role inside the #GtkAssistant. It's
197  * used to handle buttons sensitivity and visibility.
198  *
199  * Note that an assistant needs to end its page flow with a page of type
200  * %GTK_ASSISTANT_PAGE_CONFIRM, %GTK_ASSISTANT_PAGE_SUMMARY or
201  * %GTK_ASSISTANT_PAGE_PROGRESS to be correct.
202  *
203  * The Cancel button will only be shown if the page isn’t “committed”.
204  * See gtk_assistant_commit() for details.
205  */
206 public enum GtkAssistantPageType
207 {
208 	/**
209 	 * The page has regular contents. Both the
210 	 * Back and forward buttons will be shown.
211 	 */
212 	CONTENT = 0,
213 	/**
214 	 * The page contains an introduction to the
215 	 * assistant task. Only the Forward button will be shown if there is a
216 	 * next page.
217 	 */
218 	INTRO = 1,
219 	/**
220 	 * The page lets the user confirm or deny the
221 	 * changes. The Back and Apply buttons will be shown.
222 	 */
223 	CONFIRM = 2,
224 	/**
225 	 * The page informs the user of the changes
226 	 * done. Only the Close button will be shown.
227 	 */
228 	SUMMARY = 3,
229 	/**
230 	 * Used for tasks that take a long time to
231 	 * complete, blocks the assistant until the page is marked as complete.
232 	 * Only the back button will be shown.
233 	 */
234 	PROGRESS = 4,
235 	/**
236 	 * Used for when other page types are not
237 	 * appropriate. No buttons will be shown, and the application must
238 	 * add its own buttons through gtk_assistant_add_action_widget().
239 	 */
240 	CUSTOM = 5,
241 }
242 alias GtkAssistantPageType AssistantPageType;
243 
244 /**
245  * Denotes the expansion properties that a widget will have when it (or its
246  * parent) is resized.
247  */
248 public enum GtkAttachOptions
249 {
250 	/**
251 	 * the widget should expand to take up any extra space in its
252 	 * container that has been allocated.
253 	 */
254 	EXPAND = 1,
255 	/**
256 	 * the widget should shrink as and when possible.
257 	 */
258 	SHRINK = 2,
259 	/**
260 	 * the widget should fill the space allocated to it.
261 	 */
262 	FILL = 4,
263 }
264 alias GtkAttachOptions AttachOptions;
265 
266 /**
267  * Whenever a container has some form of natural row it may align
268  * children in that row along a common typographical baseline. If
269  * the amount of verical space in the row is taller than the total
270  * requested height of the baseline-aligned children then it can use a
271  * #GtkBaselinePosition to select where to put the baseline inside the
272  * extra availible space.
273  *
274  * Since: 3.10
275  */
276 public enum GtkBaselinePosition
277 {
278 	/**
279 	 * Align the baseline at the top
280 	 */
281 	TOP = 0,
282 	/**
283 	 * Center the baseline
284 	 */
285 	CENTER = 1,
286 	/**
287 	 * Align the baseline at the bottom
288 	 */
289 	BOTTOM = 2,
290 }
291 alias GtkBaselinePosition BaselinePosition;
292 
293 /**
294  * Describes how the border of a UI element should be rendered.
295  */
296 public enum GtkBorderStyle
297 {
298 	/**
299 	 * No visible border
300 	 */
301 	NONE = 0,
302 	/**
303 	 * A single line segment
304 	 */
305 	SOLID = 1,
306 	/**
307 	 * Looks as if the content is sunken into the canvas
308 	 */
309 	INSET = 2,
310 	/**
311 	 * Looks as if the content is coming out of the canvas
312 	 */
313 	OUTSET = 3,
314 	/**
315 	 * Same as @GTK_BORDER_STYLE_NONE
316 	 */
317 	HIDDEN = 4,
318 	/**
319 	 * A series of round dots
320 	 */
321 	DOTTED = 5,
322 	/**
323 	 * A series of square-ended dashes
324 	 */
325 	DASHED = 6,
326 	/**
327 	 * Two parallel lines with some space between them
328 	 */
329 	DOUBLE = 7,
330 	/**
331 	 * Looks as if it were carved in the canvas
332 	 */
333 	GROOVE = 8,
334 	/**
335 	 * Looks as if it were coming out of the canvas
336 	 */
337 	RIDGE = 9,
338 }
339 alias GtkBorderStyle BorderStyle;
340 
341 /**
342  * Error codes that identify various errors that can occur while using
343  * #GtkBuilder.
344  */
345 public enum GtkBuilderError
346 {
347 	/**
348 	 * A type-func attribute didn’t name
349 	 * a function that returns a #GType.
350 	 */
351 	INVALID_TYPE_FUNCTION = 0,
352 	/**
353 	 * The input contained a tag that #GtkBuilder
354 	 * can’t handle.
355 	 */
356 	UNHANDLED_TAG = 1,
357 	/**
358 	 * An attribute that is required by
359 	 * #GtkBuilder was missing.
360 	 */
361 	MISSING_ATTRIBUTE = 2,
362 	/**
363 	 * #GtkBuilder found an attribute that
364 	 * it doesn’t understand.
365 	 */
366 	INVALID_ATTRIBUTE = 3,
367 	/**
368 	 * #GtkBuilder found a tag that
369 	 * it doesn’t understand.
370 	 */
371 	INVALID_TAG = 4,
372 	/**
373 	 * A required property value was
374 	 * missing.
375 	 */
376 	MISSING_PROPERTY_VALUE = 5,
377 	/**
378 	 * #GtkBuilder couldn’t parse
379 	 * some attribute value.
380 	 */
381 	INVALID_VALUE = 6,
382 	/**
383 	 * The input file requires a newer version
384 	 * of GTK+.
385 	 */
386 	VERSION_MISMATCH = 7,
387 	/**
388 	 * An object id occurred twice.
389 	 */
390 	DUPLICATE_ID = 8,
391 	/**
392 	 * A specified object type is of the same type or
393 	 * derived from the type of the composite class being extended with builder XML.
394 	 */
395 	OBJECT_TYPE_REFUSED = 9,
396 	/**
397 	 * The wrong type was specified in a composite class’s template XML
398 	 */
399 	TEMPLATE_MISMATCH = 10,
400 	/**
401 	 * The specified property is unknown for the object class.
402 	 */
403 	INVALID_PROPERTY = 11,
404 	/**
405 	 * The specified signal is unknown for the object class.
406 	 */
407 	INVALID_SIGNAL = 12,
408 	/**
409 	 * An object id is unknown
410 	 */
411 	INVALID_ID = 13,
412 }
413 alias GtkBuilderError BuilderError;
414 
415 /**
416  * Used to dictate the style that a #GtkButtonBox uses to layout the buttons it
417  * contains.
418  */
419 public enum GtkButtonBoxStyle
420 {
421 	/**
422 	 * Buttons are evenly spread across the box.
423 	 */
424 	SPREAD = 1,
425 	/**
426 	 * Buttons are placed at the edges of the box.
427 	 */
428 	EDGE = 2,
429 	/**
430 	 * Buttons are grouped towards the start of the box,
431 	 * (on the left for a HBox, or the top for a VBox).
432 	 */
433 	START = 3,
434 	/**
435 	 * Buttons are grouped towards the end of the box,
436 	 * (on the right for a HBox, or the bottom for a VBox).
437 	 */
438 	END = 4,
439 	/**
440 	 * Buttons are centered in the box. Since 2.12.
441 	 */
442 	CENTER = 5,
443 	/**
444 	 * Buttons expand to fill the box. This entails giving
445 	 * buttons a "linked" appearance, making button sizes homogeneous, and
446 	 * setting spacing to 0 (same as calling gtk_box_set_homogeneous() and
447 	 * gtk_box_set_spacing() manually). Since 3.12.
448 	 */
449 	EXPAND = 6,
450 }
451 alias GtkButtonBoxStyle ButtonBoxStyle;
452 
453 /**
454  * The role specifies the desired appearance of a #GtkModelButton.
455  */
456 public enum GtkButtonRole
457 {
458 	/**
459 	 * A plain button
460 	 */
461 	NORMAL = 0,
462 	/**
463 	 * A check button
464 	 */
465 	CHECK = 1,
466 	/**
467 	 * A radio button
468 	 */
469 	RADIO = 2,
470 }
471 alias GtkButtonRole ButtonRole;
472 
473 /**
474  * Prebuilt sets of buttons for the dialog. If
475  * none of these choices are appropriate, simply use %GTK_BUTTONS_NONE
476  * then call gtk_dialog_add_buttons().
477  *
478  * > Please note that %GTK_BUTTONS_OK, %GTK_BUTTONS_YES_NO
479  * > and %GTK_BUTTONS_OK_CANCEL are discouraged by the
480  * > [GNOME Human Interface Guidelines](http://library.gnome.org/devel/hig-book/stable/).
481  */
482 public enum GtkButtonsType
483 {
484 	/**
485 	 * no buttons at all
486 	 */
487 	NONE = 0,
488 	/**
489 	 * an OK button
490 	 */
491 	OK = 1,
492 	/**
493 	 * a Close button
494 	 */
495 	CLOSE = 2,
496 	/**
497 	 * a Cancel button
498 	 */
499 	CANCEL = 3,
500 	/**
501 	 * Yes and No buttons
502 	 */
503 	YES_NO = 4,
504 	/**
505 	 * OK and Cancel buttons
506 	 */
507 	OK_CANCEL = 5,
508 }
509 alias GtkButtonsType ButtonsType;
510 
511 /**
512  * These options can be used to influence the display and behaviour of a #GtkCalendar.
513  */
514 public enum GtkCalendarDisplayOptions
515 {
516 	/**
517 	 * Specifies that the month and year should be displayed.
518 	 */
519 	SHOW_HEADING = 1,
520 	/**
521 	 * Specifies that three letter day descriptions should be present.
522 	 */
523 	SHOW_DAY_NAMES = 2,
524 	/**
525 	 * Prevents the user from switching months with the calendar.
526 	 */
527 	NO_MONTH_CHANGE = 4,
528 	/**
529 	 * Displays each week numbers of the current year, down the
530 	 * left side of the calendar.
531 	 */
532 	SHOW_WEEK_NUMBERS = 8,
533 	/**
534 	 * Just show an indicator, not the full details
535 	 * text when details are provided. See gtk_calendar_set_detail_func().
536 	 */
537 	SHOW_DETAILS = 32,
538 }
539 alias GtkCalendarDisplayOptions CalendarDisplayOptions;
540 
541 /**
542  * Determines if the edited accelerators are GTK+ accelerators. If
543  * they are, consumed modifiers are suppressed, only accelerators
544  * accepted by GTK+ are allowed, and the accelerators are rendered
545  * in the same way as they are in menus.
546  */
547 public enum GtkCellRendererAccelMode
548 {
549 	/**
550 	 * GTK+ accelerators mode
551 	 */
552 	GTK = 0,
553 	/**
554 	 * Other accelerator mode
555 	 */
556 	OTHER = 1,
557 }
558 alias GtkCellRendererAccelMode CellRendererAccelMode;
559 
560 /**
561  * Identifies how the user can interact with a particular cell.
562  */
563 public enum GtkCellRendererMode
564 {
565 	/**
566 	 * The cell is just for display
567 	 * and cannot be interacted with.  Note that this doesn’t mean that eg. the
568 	 * row being drawn can’t be selected -- just that a particular element of
569 	 * it cannot be individually modified.
570 	 */
571 	INERT = 0,
572 	/**
573 	 * The cell can be clicked.
574 	 */
575 	ACTIVATABLE = 1,
576 	/**
577 	 * The cell can be edited or otherwise modified.
578 	 */
579 	EDITABLE = 2,
580 }
581 alias GtkCellRendererMode CellRendererMode;
582 
583 /**
584  * Tells how a cell is to be rendered.
585  */
586 public enum GtkCellRendererState
587 {
588 	/**
589 	 * The cell is currently selected, and
590 	 * probably has a selection colored background to render to.
591 	 */
592 	SELECTED = 1,
593 	/**
594 	 * The mouse is hovering over the cell.
595 	 */
596 	PRELIT = 2,
597 	/**
598 	 * The cell is drawn in an insensitive manner
599 	 */
600 	INSENSITIVE = 4,
601 	/**
602 	 * The cell is in a sorted row
603 	 */
604 	SORTED = 8,
605 	/**
606 	 * The cell is in the focus row.
607 	 */
608 	FOCUSED = 16,
609 	/**
610 	 * The cell is in a row that can be expanded. Since 3.4
611 	 */
612 	EXPANDABLE = 32,
613 	/**
614 	 * The cell is in a row that is expanded. Since 3.4
615 	 */
616 	EXPANDED = 64,
617 }
618 alias GtkCellRendererState CellRendererState;
619 
620 /**
621  * Specifies which corner a child widget should be placed in when packed into
622  * a #GtkScrolledWindow. This is effectively the opposite of where the scroll
623  * bars are placed.
624  */
625 public enum GtkCornerType
626 {
627 	/**
628 	 * Place the scrollbars on the right and bottom of the
629 	 * widget (default behaviour).
630 	 */
631 	TOP_LEFT = 0,
632 	/**
633 	 * Place the scrollbars on the top and right of the
634 	 * widget.
635 	 */
636 	BOTTOM_LEFT = 1,
637 	/**
638 	 * Place the scrollbars on the left and bottom of the
639 	 * widget.
640 	 */
641 	TOP_RIGHT = 2,
642 	/**
643 	 * Place the scrollbars on the top and left of the
644 	 * widget.
645 	 */
646 	BOTTOM_RIGHT = 3,
647 }
648 alias GtkCornerType CornerType;
649 
650 /**
651  * Error codes for %GTK_CSS_PROVIDER_ERROR.
652  */
653 public enum GtkCssProviderError
654 {
655 	/**
656 	 * Failed.
657 	 */
658 	FAILED = 0,
659 	/**
660 	 * Syntax error.
661 	 */
662 	SYNTAX = 1,
663 	/**
664 	 * Import error.
665 	 */
666 	IMPORT = 2,
667 	/**
668 	 * Name error.
669 	 */
670 	NAME = 3,
671 	/**
672 	 * Deprecation error.
673 	 */
674 	DEPRECATED = 4,
675 	/**
676 	 * Unknown value.
677 	 */
678 	UNKNOWN_VALUE = 5,
679 }
680 alias GtkCssProviderError CssProviderError;
681 
682 /**
683  * The different types of sections indicate parts of a CSS document as
684  * parsed by GTK’s CSS parser. They are oriented towards the
685  * [CSS Grammar](http://www.w3.org/TR/CSS21/grammar.html),
686  * but may contain extensions.
687  *
688  * More types might be added in the future as the parser incorporates
689  * more features.
690  *
691  * Since: 3.2
692  */
693 public enum GtkCssSectionType
694 {
695 	/**
696 	 * The section describes a complete document.
697 	 * This section time is the only one where gtk_css_section_get_parent()
698 	 * might return %NULL.
699 	 */
700 	DOCUMENT = 0,
701 	/**
702 	 * The section defines an import rule.
703 	 */
704 	IMPORT = 1,
705 	/**
706 	 * The section defines a color. This
707 	 * is a GTK extension to CSS.
708 	 */
709 	COLOR_DEFINITION = 2,
710 	/**
711 	 * The section defines a binding set. This
712 	 * is a GTK extension to CSS.
713 	 */
714 	BINDING_SET = 3,
715 	/**
716 	 * The section defines a CSS ruleset.
717 	 */
718 	RULESET = 4,
719 	/**
720 	 * The section defines a CSS selector.
721 	 */
722 	SELECTOR = 5,
723 	/**
724 	 * The section defines the declaration of
725 	 * a CSS variable.
726 	 */
727 	DECLARATION = 6,
728 	/**
729 	 * The section defines the value of a CSS declaration.
730 	 */
731 	VALUE = 7,
732 	/**
733 	 * The section defines keyframes. See [CSS
734 	 * Animations](http://dev.w3.org/csswg/css3-animations/#keyframes) for details. Since 3.6
735 	 */
736 	KEYFRAMES = 8,
737 }
738 alias GtkCssSectionType CssSectionType;
739 
740 public enum GtkDebugFlag
741 {
742 	MISC = 1,
743 	PLUGSOCKET = 2,
744 	TEXT = 4,
745 	TREE = 8,
746 	UPDATES = 16,
747 	KEYBINDINGS = 32,
748 	MULTIHEAD = 64,
749 	MODULES = 128,
750 	GEOMETRY = 256,
751 	ICONTHEME = 512,
752 	PRINTING = 1024,
753 	BUILDER = 2048,
754 	SIZE_REQUEST = 4096,
755 	NO_CSS_CACHE = 8192,
756 	BASELINES = 16384,
757 	PIXEL_CACHE = 32768,
758 	NO_PIXEL_CACHE = 65536,
759 	INTERACTIVE = 131072,
760 	TOUCHSCREEN = 262144,
761 	ACTIONS = 524288,
762 	RESIZE = 1048576,
763 	LAYOUT = 2097152,
764 }
765 alias GtkDebugFlag DebugFlag;
766 
767 /**
768  * See also: #GtkEntry::delete-from-cursor.
769  */
770 public enum GtkDeleteType
771 {
772 	/**
773 	 * Delete characters.
774 	 */
775 	CHARS = 0,
776 	/**
777 	 * Delete only the portion of the word to the
778 	 * left/right of cursor if we’re in the middle of a word.
779 	 */
780 	WORD_ENDS = 1,
781 	/**
782 	 * Delete words.
783 	 */
784 	WORDS = 2,
785 	/**
786 	 * Delete display-lines. Display-lines
787 	 * refers to the visible lines, with respect to to the current line
788 	 * breaks. As opposed to paragraphs, which are defined by line
789 	 * breaks in the input.
790 	 */
791 	DISPLAY_LINES = 3,
792 	/**
793 	 * Delete only the portion of the
794 	 * display-line to the left/right of cursor.
795 	 */
796 	DISPLAY_LINE_ENDS = 4,
797 	/**
798 	 * Delete to the end of the
799 	 * paragraph. Like C-k in Emacs (or its reverse).
800 	 */
801 	PARAGRAPH_ENDS = 5,
802 	/**
803 	 * Delete entire line. Like C-k in pico.
804 	 */
805 	PARAGRAPHS = 6,
806 	/**
807 	 * Delete only whitespace. Like M-\ in Emacs.
808 	 */
809 	WHITESPACE = 7,
810 }
811 alias GtkDeleteType DeleteType;
812 
813 /**
814  * The #GtkDestDefaults enumeration specifies the various
815  * types of action that will be taken on behalf
816  * of the user for a drag destination site.
817  */
818 public enum GtkDestDefaults
819 {
820 	/**
821 	 * If set for a widget, GTK+, during a drag over this
822 	 * widget will check if the drag matches this widget’s list of possible targets
823 	 * and actions.
824 	 * GTK+ will then call gdk_drag_status() as appropriate.
825 	 */
826 	MOTION = 1,
827 	/**
828 	 * If set for a widget, GTK+ will draw a highlight on
829 	 * this widget as long as a drag is over this widget and the widget drag format
830 	 * and action are acceptable.
831 	 */
832 	HIGHLIGHT = 2,
833 	/**
834 	 * If set for a widget, when a drop occurs, GTK+ will
835 	 * will check if the drag matches this widget’s list of possible targets and
836 	 * actions. If so, GTK+ will call gtk_drag_get_data() on behalf of the widget.
837 	 * Whether or not the drop is successful, GTK+ will call gtk_drag_finish(). If
838 	 * the action was a move, then if the drag was successful, then %TRUE will be
839 	 * passed for the @delete parameter to gtk_drag_finish().
840 	 */
841 	DROP = 4,
842 	/**
843 	 * If set, specifies that all default actions should
844 	 * be taken.
845 	 */
846 	ALL = 7,
847 }
848 alias GtkDestDefaults DestDefaults;
849 
850 /**
851  * Flags used to influence dialog construction.
852  */
853 public enum GtkDialogFlags
854 {
855 	/**
856 	 * Make the constructed dialog modal,
857 	 * see gtk_window_set_modal()
858 	 */
859 	MODAL = 1,
860 	/**
861 	 * Destroy the dialog when its
862 	 * parent is destroyed, see gtk_window_set_destroy_with_parent()
863 	 */
864 	DESTROY_WITH_PARENT = 2,
865 	/**
866 	 * Create dialog with actions in header
867 	 * bar instead of action area. Since 3.12.
868 	 */
869 	USE_HEADER_BAR = 4,
870 }
871 alias GtkDialogFlags DialogFlags;
872 
873 /**
874  * Focus movement types.
875  */
876 public enum GtkDirectionType
877 {
878 	/**
879 	 * Move forward.
880 	 */
881 	TAB_FORWARD = 0,
882 	/**
883 	 * Move backward.
884 	 */
885 	TAB_BACKWARD = 1,
886 	/**
887 	 * Move up.
888 	 */
889 	UP = 2,
890 	/**
891 	 * Move down.
892 	 */
893 	DOWN = 3,
894 	/**
895 	 * Move left.
896 	 */
897 	LEFT = 4,
898 	/**
899 	 * Move right.
900 	 */
901 	RIGHT = 5,
902 }
903 alias GtkDirectionType DirectionType;
904 
905 /**
906  * Gives an indication why a drag operation failed.
907  * The value can by obtained by connecting to the
908  * #GtkWidget::drag-failed signal.
909  */
910 public enum GtkDragResult
911 {
912 	/**
913 	 * The drag operation was successful.
914 	 */
915 	SUCCESS = 0,
916 	/**
917 	 * No suitable drag target.
918 	 */
919 	NO_TARGET = 1,
920 	/**
921 	 * The user cancelled the drag operation.
922 	 */
923 	USER_CANCELLED = 2,
924 	/**
925 	 * The drag operation timed out.
926 	 */
927 	TIMEOUT_EXPIRED = 3,
928 	/**
929 	 * The pointer or keyboard grab used
930 	 * for the drag operation was broken.
931 	 */
932 	GRAB_BROKEN = 4,
933 	/**
934 	 * The drag operation failed due to some
935 	 * unspecified error.
936 	 */
937 	ERROR = 5,
938 }
939 alias GtkDragResult DragResult;
940 
941 /**
942  * Specifies the side of the entry at which an icon is placed.
943  *
944  * Since: 2.16
945  */
946 public enum GtkEntryIconPosition
947 {
948 	/**
949 	 * At the beginning of the entry (depending on the text direction).
950 	 */
951 	PRIMARY = 0,
952 	/**
953 	 * At the end of the entry (depending on the text direction).
954 	 */
955 	SECONDARY = 1,
956 }
957 alias GtkEntryIconPosition EntryIconPosition;
958 
959 /**
960  * Describes the state of a #GdkEventSequence in a #GtkGesture.
961  *
962  * Since: 3.14
963  */
964 public enum GtkEventSequenceState
965 {
966 	/**
967 	 * The sequence is handled, but not grabbed.
968 	 */
969 	NONE = 0,
970 	/**
971 	 * The sequence is handled and grabbed.
972 	 */
973 	CLAIMED = 1,
974 	/**
975 	 * The sequence is denied.
976 	 */
977 	DENIED = 2,
978 }
979 alias GtkEventSequenceState EventSequenceState;
980 
981 /**
982  * Used to specify the style of the expanders drawn by a #GtkTreeView.
983  */
984 public enum GtkExpanderStyle
985 {
986 	/**
987 	 * The style used for a collapsed subtree.
988 	 */
989 	COLLAPSED = 0,
990 	/**
991 	 * Intermediate style used during animation.
992 	 */
993 	SEMI_COLLAPSED = 1,
994 	/**
995 	 * Intermediate style used during animation.
996 	 */
997 	SEMI_EXPANDED = 2,
998 	/**
999 	 * The style used for an expanded subtree.
1000 	 */
1001 	EXPANDED = 3,
1002 }
1003 alias GtkExpanderStyle ExpanderStyle;
1004 
1005 /**
1006  * Describes whether a #GtkFileChooser is being used to open existing files
1007  * or to save to a possibly new file.
1008  */
1009 public enum GtkFileChooserAction
1010 {
1011 	/**
1012 	 * Indicates open mode.  The file chooser
1013 	 * will only let the user pick an existing file.
1014 	 */
1015 	OPEN = 0,
1016 	/**
1017 	 * Indicates save mode.  The file chooser
1018 	 * will let the user pick an existing file, or type in a new
1019 	 * filename.
1020 	 */
1021 	SAVE = 1,
1022 	/**
1023 	 * Indicates an Open mode for
1024 	 * selecting folders.  The file chooser will let the user pick an
1025 	 * existing folder.
1026 	 */
1027 	SELECT_FOLDER = 2,
1028 	/**
1029 	 * Indicates a mode for creating a
1030 	 * new folder.  The file chooser will let the user name an existing or
1031 	 * new folder.
1032 	 */
1033 	CREATE_FOLDER = 3,
1034 }
1035 alias GtkFileChooserAction FileChooserAction;
1036 
1037 /**
1038  * Used as a return value of handlers for the
1039  * #GtkFileChooser::confirm-overwrite signal of a #GtkFileChooser. This
1040  * value determines whether the file chooser will present the stock
1041  * confirmation dialog, accept the user’s choice of a filename, or
1042  * let the user choose another filename.
1043  *
1044  * Since: 2.8
1045  */
1046 public enum GtkFileChooserConfirmation
1047 {
1048 	/**
1049 	 * The file chooser will present
1050 	 * its stock dialog to confirm about overwriting an existing file.
1051 	 */
1052 	CONFIRM = 0,
1053 	/**
1054 	 * The file chooser will
1055 	 * terminate and accept the user’s choice of a file name.
1056 	 */
1057 	ACCEPT_FILENAME = 1,
1058 	/**
1059 	 * The file chooser will
1060 	 * continue running, so as to let the user select another file name.
1061 	 */
1062 	SELECT_AGAIN = 2,
1063 }
1064 alias GtkFileChooserConfirmation FileChooserConfirmation;
1065 
1066 /**
1067  * These identify the various errors that can occur while calling
1068  * #GtkFileChooser functions.
1069  */
1070 public enum GtkFileChooserError
1071 {
1072 	/**
1073 	 * Indicates that a file does not exist.
1074 	 */
1075 	NONEXISTENT = 0,
1076 	/**
1077 	 * Indicates a malformed filename.
1078 	 */
1079 	BAD_FILENAME = 1,
1080 	/**
1081 	 * Indicates a duplicate path (e.g. when
1082 	 * adding a bookmark).
1083 	 */
1084 	ALREADY_EXISTS = 2,
1085 	/**
1086 	 * Indicates an incomplete hostname (e.g. "http://foo" without a slash after that).
1087 	 */
1088 	INCOMPLETE_HOSTNAME = 3,
1089 }
1090 alias GtkFileChooserError FileChooserError;
1091 
1092 /**
1093  * These flags indicate what parts of a #GtkFileFilterInfo struct
1094  * are filled or need to be filled.
1095  */
1096 public enum GtkFileFilterFlags
1097 {
1098 	/**
1099 	 * the filename of the file being tested
1100 	 */
1101 	FILENAME = 1,
1102 	/**
1103 	 * the URI for the file being tested
1104 	 */
1105 	URI = 2,
1106 	/**
1107 	 * the string that will be used to
1108 	 * display the file in the file chooser
1109 	 */
1110 	DISPLAY_NAME = 4,
1111 	/**
1112 	 * the mime type of the file
1113 	 */
1114 	MIME_TYPE = 8,
1115 }
1116 alias GtkFileFilterFlags FileFilterFlags;
1117 
1118 /**
1119  * Style for input method preedit. See also
1120  * #GtkSettings:gtk-im-preedit-style
1121  */
1122 public enum GtkIMPreeditStyle
1123 {
1124 	/**
1125 	 * Deprecated
1126 	 */
1127 	NOTHING = 0,
1128 	/**
1129 	 * Deprecated
1130 	 */
1131 	CALLBACK = 1,
1132 	/**
1133 	 * Deprecated
1134 	 */
1135 	NONE = 2,
1136 }
1137 alias GtkIMPreeditStyle IMPreeditStyle;
1138 
1139 /**
1140  * Style for input method status. See also
1141  * #GtkSettings:gtk-im-status-style
1142  */
1143 public enum GtkIMStatusStyle
1144 {
1145 	/**
1146 	 * Deprecated
1147 	 */
1148 	NOTHING = 0,
1149 	/**
1150 	 * Deprecated
1151 	 */
1152 	CALLBACK = 1,
1153 	/**
1154 	 * Deprecated
1155 	 */
1156 	NONE = 2,
1157 }
1158 alias GtkIMStatusStyle IMStatusStyle;
1159 
1160 /**
1161  * Used to specify options for gtk_icon_theme_lookup_icon()
1162  */
1163 public enum GtkIconLookupFlags
1164 {
1165 	/**
1166 	 * Never get SVG icons, even if gdk-pixbuf
1167 	 * supports them. Cannot be used together with %GTK_ICON_LOOKUP_FORCE_SVG.
1168 	 */
1169 	NO_SVG = 1,
1170 	/**
1171 	 * Get SVG icons, even if gdk-pixbuf
1172 	 * doesn’t support them.
1173 	 * Cannot be used together with %GTK_ICON_LOOKUP_NO_SVG.
1174 	 */
1175 	FORCE_SVG = 2,
1176 	/**
1177 	 * When passed to
1178 	 * gtk_icon_theme_lookup_icon() includes builtin icons
1179 	 * as well as files. For a builtin icon, gtk_icon_info_get_filename()
1180 	 * is %NULL and you need to call gtk_icon_info_get_builtin_pixbuf().
1181 	 */
1182 	USE_BUILTIN = 4,
1183 	/**
1184 	 * Try to shorten icon name at '-'
1185 	 * characters before looking at inherited themes. This flag is only
1186 	 * supported in functions that take a single icon name. For more general
1187 	 * fallback, see gtk_icon_theme_choose_icon(). Since 2.12.
1188 	 */
1189 	GENERIC_FALLBACK = 8,
1190 	/**
1191 	 * Always get the icon scaled to the
1192 	 * requested size. Since 2.14.
1193 	 */
1194 	FORCE_SIZE = 16,
1195 	/**
1196 	 * Try to always load regular icons, even
1197 	 * when symbolic icon names are given. Since 3.14.
1198 	 */
1199 	FORCE_REGULAR = 32,
1200 	/**
1201 	 * Try to always load symbolic icons, even
1202 	 * when regular icon names are given. Since 3.14.
1203 	 */
1204 	FORCE_SYMBOLIC = 64,
1205 	/**
1206 	 * Try to load a variant of the icon for left-to-right
1207 	 * text direction. Since 3.14.
1208 	 */
1209 	DIR_LTR = 128,
1210 	/**
1211 	 * Try to load a variant of the icon for right-to-left
1212 	 * text direction. Since 3.14.
1213 	 */
1214 	DIR_RTL = 256,
1215 }
1216 alias GtkIconLookupFlags IconLookupFlags;
1217 
1218 /**
1219  * Built-in stock icon sizes.
1220  */
1221 public enum GtkIconSize
1222 {
1223 	/**
1224 	 * Invalid size.
1225 	 */
1226 	INVALID = 0,
1227 	/**
1228 	 * Size appropriate for menus (16px).
1229 	 */
1230 	MENU = 1,
1231 	/**
1232 	 * Size appropriate for small toolbars (16px).
1233 	 */
1234 	SMALL_TOOLBAR = 2,
1235 	/**
1236 	 * Size appropriate for large toolbars (24px)
1237 	 */
1238 	LARGE_TOOLBAR = 3,
1239 	/**
1240 	 * Size appropriate for buttons (16px)
1241 	 */
1242 	BUTTON = 4,
1243 	/**
1244 	 * Size appropriate for drag and drop (32px)
1245 	 */
1246 	DND = 5,
1247 	/**
1248 	 * Size appropriate for dialogs (48px)
1249 	 */
1250 	DIALOG = 6,
1251 }
1252 alias GtkIconSize IconSize;
1253 
1254 /**
1255  * Error codes for GtkIconTheme operations.
1256  */
1257 public enum GtkIconThemeError
1258 {
1259 	/**
1260 	 * The icon specified does not exist in the theme
1261 	 */
1262 	NOT_FOUND = 0,
1263 	/**
1264 	 * An unspecified error occurred.
1265 	 */
1266 	FAILED = 1,
1267 }
1268 alias GtkIconThemeError IconThemeError;
1269 
1270 /**
1271  * An enum for determining where a dropped item goes.
1272  */
1273 public enum GtkIconViewDropPosition
1274 {
1275 	/**
1276 	 * no drop possible
1277 	 */
1278 	NO_DROP = 0,
1279 	/**
1280 	 * dropped item replaces the item
1281 	 */
1282 	DROP_INTO = 1,
1283 	/**
1284 	 * droppped item is inserted to the left
1285 	 */
1286 	DROP_LEFT = 2,
1287 	/**
1288 	 * dropped item is inserted to the right
1289 	 */
1290 	DROP_RIGHT = 3,
1291 	/**
1292 	 * dropped item is inserted above
1293 	 */
1294 	DROP_ABOVE = 4,
1295 	/**
1296 	 * dropped item is inserted below
1297 	 */
1298 	DROP_BELOW = 5,
1299 }
1300 alias GtkIconViewDropPosition IconViewDropPosition;
1301 
1302 /**
1303  * Describes the image data representation used by a #GtkImage. If you
1304  * want to get the image from the widget, you can only get the
1305  * currently-stored representation. e.g.  if the
1306  * gtk_image_get_storage_type() returns #GTK_IMAGE_PIXBUF, then you can
1307  * call gtk_image_get_pixbuf() but not gtk_image_get_stock().  For empty
1308  * images, you can request any storage type (call any of the "get"
1309  * functions), but they will all return %NULL values.
1310  */
1311 public enum GtkImageType
1312 {
1313 	/**
1314 	 * there is no image displayed by the widget
1315 	 */
1316 	EMPTY = 0,
1317 	/**
1318 	 * the widget contains a #GdkPixbuf
1319 	 */
1320 	PIXBUF = 1,
1321 	/**
1322 	 * the widget contains a [stock item name][gtkstock]
1323 	 */
1324 	STOCK = 2,
1325 	/**
1326 	 * the widget contains a #GtkIconSet
1327 	 */
1328 	ICON_SET = 3,
1329 	/**
1330 	 * the widget contains a #GdkPixbufAnimation
1331 	 */
1332 	ANIMATION = 4,
1333 	/**
1334 	 * the widget contains a named icon.
1335 	 * This image type was added in GTK+ 2.6
1336 	 */
1337 	ICON_NAME = 5,
1338 	/**
1339 	 * the widget contains a #GIcon.
1340 	 * This image type was added in GTK+ 2.14
1341 	 */
1342 	GICON = 6,
1343 	/**
1344 	 * the widget contains a #cairo_surface_t.
1345 	 * This image type was added in GTK+ 3.10
1346 	 */
1347 	SURFACE = 7,
1348 }
1349 alias GtkImageType ImageType;
1350 
1351 /**
1352  * Describes hints that might be taken into account by input methods
1353  * or applications. Note that input methods may already tailor their
1354  * behaviour according to the #GtkInputPurpose of the entry.
1355  *
1356  * Some common sense is expected when using these flags - mixing
1357  * @GTK_INPUT_HINT_LOWERCASE with any of the uppercase hints makes no sense.
1358  *
1359  * This enumeration may be extended in the future; input methods should
1360  * ignore unknown values.
1361  *
1362  * Since: 3.6
1363  */
1364 public enum GtkInputHints
1365 {
1366 	/**
1367 	 * No special behaviour suggested
1368 	 */
1369 	NONE = 0,
1370 	/**
1371 	 * Suggest checking for typos
1372 	 */
1373 	SPELLCHECK = 1,
1374 	/**
1375 	 * Suggest not checking for typos
1376 	 */
1377 	NO_SPELLCHECK = 2,
1378 	/**
1379 	 * Suggest word completion
1380 	 */
1381 	WORD_COMPLETION = 4,
1382 	/**
1383 	 * Suggest to convert all text to lowercase
1384 	 */
1385 	LOWERCASE = 8,
1386 	/**
1387 	 * Suggest to capitalize all text
1388 	 */
1389 	UPPERCASE_CHARS = 16,
1390 	/**
1391 	 * Suggest to capitalize the first
1392 	 * character of each word
1393 	 */
1394 	UPPERCASE_WORDS = 32,
1395 	/**
1396 	 * Suggest to capitalize the
1397 	 * first word of each sentence
1398 	 */
1399 	UPPERCASE_SENTENCES = 64,
1400 	/**
1401 	 * Suggest to not show an onscreen keyboard
1402 	 * (e.g for a calculator that already has all the keys).
1403 	 */
1404 	INHIBIT_OSK = 128,
1405 	/**
1406 	 * The text is vertical. Since 3.18
1407 	 */
1408 	VERTICAL_WRITING = 256,
1409 }
1410 alias GtkInputHints InputHints;
1411 
1412 /**
1413  * Describes primary purpose of the input widget. This information is
1414  * useful for on-screen keyboards and similar input methods to decide
1415  * which keys should be presented to the user.
1416  *
1417  * Note that the purpose is not meant to impose a totally strict rule
1418  * about allowed characters, and does not replace input validation.
1419  * It is fine for an on-screen keyboard to let the user override the
1420  * character set restriction that is expressed by the purpose. The
1421  * application is expected to validate the entry contents, even if
1422  * it specified a purpose.
1423  *
1424  * The difference between @GTK_INPUT_PURPOSE_DIGITS and
1425  * @GTK_INPUT_PURPOSE_NUMBER is that the former accepts only digits
1426  * while the latter also some punctuation (like commas or points, plus,
1427  * minus) and “e” or “E” as in 3.14E+000.
1428  *
1429  * This enumeration may be extended in the future; input methods should
1430  * interpret unknown values as “free form”.
1431  *
1432  * Since: 3.6
1433  */
1434 public enum GtkInputPurpose
1435 {
1436 	/**
1437 	 * Allow any character
1438 	 */
1439 	FREE_FORM = 0,
1440 	/**
1441 	 * Allow only alphabetic characters
1442 	 */
1443 	ALPHA = 1,
1444 	/**
1445 	 * Allow only digits
1446 	 */
1447 	DIGITS = 2,
1448 	/**
1449 	 * Edited field expects numbers
1450 	 */
1451 	NUMBER = 3,
1452 	/**
1453 	 * Edited field expects phone number
1454 	 */
1455 	PHONE = 4,
1456 	/**
1457 	 * Edited field expects URL
1458 	 */
1459 	URL = 5,
1460 	/**
1461 	 * Edited field expects email address
1462 	 */
1463 	EMAIL = 6,
1464 	/**
1465 	 * Edited field expects the name of a person
1466 	 */
1467 	NAME = 7,
1468 	/**
1469 	 * Like @GTK_INPUT_PURPOSE_FREE_FORM, but characters are hidden
1470 	 */
1471 	PASSWORD = 8,
1472 	/**
1473 	 * Like @GTK_INPUT_PURPOSE_DIGITS, but characters are hidden
1474 	 */
1475 	PIN = 9,
1476 }
1477 alias GtkInputPurpose InputPurpose;
1478 
1479 /**
1480  * Describes how a rendered element connects to adjacent elements.
1481  */
1482 public enum GtkJunctionSides
1483 {
1484 	/**
1485 	 * No junctions.
1486 	 */
1487 	NONE = 0,
1488 	/**
1489 	 * Element connects on the top-left corner.
1490 	 */
1491 	CORNER_TOPLEFT = 1,
1492 	/**
1493 	 * Element connects on the top-right corner.
1494 	 */
1495 	CORNER_TOPRIGHT = 2,
1496 	/**
1497 	 * Element connects on the bottom-left corner.
1498 	 */
1499 	CORNER_BOTTOMLEFT = 4,
1500 	/**
1501 	 * Element connects on the bottom-right corner.
1502 	 */
1503 	CORNER_BOTTOMRIGHT = 8,
1504 	/**
1505 	 * Element connects on the top side.
1506 	 */
1507 	TOP = 3,
1508 	/**
1509 	 * Element connects on the bottom side.
1510 	 */
1511 	BOTTOM = 12,
1512 	/**
1513 	 * Element connects on the left side.
1514 	 */
1515 	LEFT = 5,
1516 	/**
1517 	 * Element connects on the right side.
1518 	 */
1519 	RIGHT = 10,
1520 }
1521 alias GtkJunctionSides JunctionSides;
1522 
1523 /**
1524  * Used for justifying the text inside a #GtkLabel widget. (See also
1525  * #GtkAlignment).
1526  */
1527 public enum GtkJustification
1528 {
1529 	/**
1530 	 * The text is placed at the left edge of the label.
1531 	 */
1532 	LEFT = 0,
1533 	/**
1534 	 * The text is placed at the right edge of the label.
1535 	 */
1536 	RIGHT = 1,
1537 	/**
1538 	 * The text is placed in the center of the label.
1539 	 */
1540 	CENTER = 2,
1541 	/**
1542 	 * The text is placed is distributed across the label.
1543 	 */
1544 	FILL = 3,
1545 }
1546 alias GtkJustification Justification;
1547 
1548 /**
1549  * Describes how #GtkLevelBar contents should be rendered.
1550  * Note that this enumeration could be extended with additional modes
1551  * in the future.
1552  *
1553  * Since: 3.6
1554  */
1555 public enum GtkLevelBarMode
1556 {
1557 	/**
1558 	 * the bar has a continuous mode
1559 	 */
1560 	CONTINUOUS = 0,
1561 	/**
1562 	 * the bar has a discrete mode
1563 	 */
1564 	DISCRETE = 1,
1565 }
1566 alias GtkLevelBarMode LevelBarMode;
1567 
1568 /**
1569  * The type of license for an application.
1570  *
1571  * This enumeration can be expanded at later date.
1572  *
1573  * Since: 3.0
1574  */
1575 public enum GtkLicense
1576 {
1577 	/**
1578 	 * No license specified
1579 	 */
1580 	UNKNOWN = 0,
1581 	/**
1582 	 * A license text is going to be specified by the
1583 	 * developer
1584 	 */
1585 	CUSTOM = 1,
1586 	/**
1587 	 * The GNU General Public License, version 2.0 or later
1588 	 */
1589 	GPL_2_0 = 2,
1590 	/**
1591 	 * The GNU General Public License, version 3.0 or later
1592 	 */
1593 	GPL_3_0 = 3,
1594 	/**
1595 	 * The GNU Lesser General Public License, version 2.1 or later
1596 	 */
1597 	LGPL_2_1 = 4,
1598 	/**
1599 	 * The GNU Lesser General Public License, version 3.0 or later
1600 	 */
1601 	LGPL_3_0 = 5,
1602 	/**
1603 	 * The BSD standard license
1604 	 */
1605 	BSD = 6,
1606 	/**
1607 	 * The MIT/X11 standard license
1608 	 */
1609 	MIT_X11 = 7,
1610 	/**
1611 	 * The Artistic License, version 2.0
1612 	 */
1613 	ARTISTIC = 8,
1614 	/**
1615 	 * The GNU General Public License, version 2.0 only. Since 3.12.
1616 	 */
1617 	GPL_2_0_ONLY = 9,
1618 	/**
1619 	 * The GNU General Public License, version 3.0 only. Since 3.12.
1620 	 */
1621 	GPL_3_0_ONLY = 10,
1622 	/**
1623 	 * The GNU Lesser General Public License, version 2.1 only. Since 3.12.
1624 	 */
1625 	LGPL_2_1_ONLY = 11,
1626 	/**
1627 	 * The GNU Lesser General Public License, version 3.0 only. Since 3.12.
1628 	 */
1629 	LGPL_3_0_ONLY = 12,
1630 	/**
1631 	 * The GNU Affero General Public License, version 3.0 or later. Since: 3.22.
1632 	 */
1633 	AGPL_3_0 = 13,
1634 }
1635 alias GtkLicense License;
1636 
1637 /**
1638  * An enumeration representing directional movements within a menu.
1639  */
1640 public enum GtkMenuDirectionType
1641 {
1642 	/**
1643 	 * To the parent menu shell
1644 	 */
1645 	PARENT = 0,
1646 	/**
1647 	 * To the submenu, if any, associated with the item
1648 	 */
1649 	CHILD = 1,
1650 	/**
1651 	 * To the next menu item
1652 	 */
1653 	NEXT = 2,
1654 	/**
1655 	 * To the previous menu item
1656 	 */
1657 	PREV = 3,
1658 }
1659 alias GtkMenuDirectionType MenuDirectionType;
1660 
1661 /**
1662  * The type of message being displayed in the dialog.
1663  */
1664 public enum GtkMessageType : uint
1665 {
1666 	/**
1667 	 * Informational message
1668 	 */
1669 	INFO = 0,
1670 	/**
1671 	 * Non-fatal warning message
1672 	 */
1673 	WARNING = 1,
1674 	/**
1675 	 * Question requiring a choice
1676 	 */
1677 	QUESTION = 2,
1678 	/**
1679 	 * Fatal error message
1680 	 */
1681 	ERROR = 3,
1682 	/**
1683 	 * None of the above
1684 	 */
1685 	OTHER = 4,
1686 }
1687 alias GtkMessageType MessageType;
1688 
1689 public enum GtkMovementStep
1690 {
1691 	/**
1692 	 * Move forward or back by graphemes
1693 	 */
1694 	LOGICAL_POSITIONS = 0,
1695 	/**
1696 	 * Move left or right by graphemes
1697 	 */
1698 	VISUAL_POSITIONS = 1,
1699 	/**
1700 	 * Move forward or back by words
1701 	 */
1702 	WORDS = 2,
1703 	/**
1704 	 * Move up or down lines (wrapped lines)
1705 	 */
1706 	DISPLAY_LINES = 3,
1707 	/**
1708 	 * Move to either end of a line
1709 	 */
1710 	DISPLAY_LINE_ENDS = 4,
1711 	/**
1712 	 * Move up or down paragraphs (newline-ended lines)
1713 	 */
1714 	PARAGRAPHS = 5,
1715 	/**
1716 	 * Move to either end of a paragraph
1717 	 */
1718 	PARAGRAPH_ENDS = 6,
1719 	/**
1720 	 * Move by pages
1721 	 */
1722 	PAGES = 7,
1723 	/**
1724 	 * Move to ends of the buffer
1725 	 */
1726 	BUFFER_ENDS = 8,
1727 	/**
1728 	 * Move horizontally by pages
1729 	 */
1730 	HORIZONTAL_PAGES = 9,
1731 }
1732 alias GtkMovementStep MovementStep;
1733 
1734 public enum GtkNotebookTab
1735 {
1736 	FIRST = 0,
1737 	LAST = 1,
1738 }
1739 alias GtkNotebookTab NotebookTab;
1740 
1741 /**
1742  * Used to determine the layout of pages on a sheet when printing
1743  * multiple pages per sheet.
1744  */
1745 public enum GtkNumberUpLayout
1746 {
1747 	/**
1748 	 * ![](layout-lrtb.png)
1749 	 */
1750 	LRTB = 0,
1751 	/**
1752 	 * ![](layout-lrbt.png)
1753 	 */
1754 	LRBT = 1,
1755 	/**
1756 	 * ![](layout-rltb.png)
1757 	 */
1758 	RLTB = 2,
1759 	/**
1760 	 * ![](layout-rlbt.png)
1761 	 */
1762 	RLBT = 3,
1763 	/**
1764 	 * ![](layout-tblr.png)
1765 	 */
1766 	TBLR = 4,
1767 	/**
1768 	 * ![](layout-tbrl.png)
1769 	 */
1770 	TBRL = 5,
1771 	/**
1772 	 * ![](layout-btlr.png)
1773 	 */
1774 	BTLR = 6,
1775 	/**
1776 	 * ![](layout-btrl.png)
1777 	 */
1778 	BTRL = 7,
1779 }
1780 alias GtkNumberUpLayout NumberUpLayout;
1781 
1782 /**
1783  * Represents the orientation of widgets and other objects which can be switched
1784  * between horizontal and vertical orientation on the fly, like #GtkToolbar or
1785  * #GtkGesturePan.
1786  */
1787 public enum GtkOrientation
1788 {
1789 	/**
1790 	 * The element is in horizontal orientation.
1791 	 */
1792 	HORIZONTAL = 0,
1793 	/**
1794 	 * The element is in vertical orientation.
1795 	 */
1796 	VERTICAL = 1,
1797 }
1798 alias GtkOrientation Orientation;
1799 
1800 /**
1801  * Determines how widgets should be packed inside menubars
1802  * and menuitems contained in menubars.
1803  */
1804 public enum GtkPackDirection
1805 {
1806 	/**
1807 	 * Widgets are packed left-to-right
1808 	 */
1809 	LTR = 0,
1810 	/**
1811 	 * Widgets are packed right-to-left
1812 	 */
1813 	RTL = 1,
1814 	/**
1815 	 * Widgets are packed top-to-bottom
1816 	 */
1817 	TTB = 2,
1818 	/**
1819 	 * Widgets are packed bottom-to-top
1820 	 */
1821 	BTT = 3,
1822 }
1823 alias GtkPackDirection PackDirection;
1824 
1825 /**
1826  * Represents the packing location #GtkBox children. (See: #GtkVBox,
1827  * #GtkHBox, and #GtkButtonBox).
1828  */
1829 public enum GtkPackType
1830 {
1831 	/**
1832 	 * The child is packed into the start of the box
1833 	 */
1834 	START = 0,
1835 	/**
1836 	 * The child is packed into the end of the box
1837 	 */
1838 	END = 1,
1839 }
1840 alias GtkPackType PackType;
1841 
1842 /**
1843  * The type of a pad action.
1844  */
1845 public enum GtkPadActionType
1846 {
1847 	/**
1848 	 * Action is triggered by a pad button
1849 	 */
1850 	BUTTON = 0,
1851 	/**
1852 	 * Action is triggered by a pad ring
1853 	 */
1854 	RING = 1,
1855 	/**
1856 	 * Action is triggered by a pad strip
1857 	 */
1858 	STRIP = 2,
1859 }
1860 alias GtkPadActionType PadActionType;
1861 
1862 /**
1863  * See also gtk_print_settings_set_orientation().
1864  */
1865 public enum GtkPageOrientation
1866 {
1867 	/**
1868 	 * Portrait mode.
1869 	 */
1870 	PORTRAIT = 0,
1871 	/**
1872 	 * Landscape mode.
1873 	 */
1874 	LANDSCAPE = 1,
1875 	/**
1876 	 * Reverse portrait mode.
1877 	 */
1878 	REVERSE_PORTRAIT = 2,
1879 	/**
1880 	 * Reverse landscape mode.
1881 	 */
1882 	REVERSE_LANDSCAPE = 3,
1883 }
1884 alias GtkPageOrientation PageOrientation;
1885 
1886 /**
1887  * See also gtk_print_job_set_page_set().
1888  */
1889 public enum GtkPageSet
1890 {
1891 	/**
1892 	 * All pages.
1893 	 */
1894 	ALL = 0,
1895 	/**
1896 	 * Even pages.
1897 	 */
1898 	EVEN = 1,
1899 	/**
1900 	 * Odd pages.
1901 	 */
1902 	ODD = 2,
1903 }
1904 alias GtkPageSet PageSet;
1905 
1906 /**
1907  * Describes the panning direction of a #GtkGesturePan
1908  *
1909  * Since: 3.14
1910  */
1911 public enum GtkPanDirection
1912 {
1913 	/**
1914 	 * panned towards the left
1915 	 */
1916 	LEFT = 0,
1917 	/**
1918 	 * panned towards the right
1919 	 */
1920 	RIGHT = 1,
1921 	/**
1922 	 * panned upwards
1923 	 */
1924 	UP = 2,
1925 	/**
1926 	 * panned downwards
1927 	 */
1928 	DOWN = 3,
1929 }
1930 alias GtkPanDirection PanDirection;
1931 
1932 /**
1933  * Priorities for path lookups.
1934  * See also gtk_binding_set_add_path().
1935  */
1936 public enum GtkPathPriorityType
1937 {
1938 	/**
1939 	 * Deprecated
1940 	 */
1941 	LOWEST = 0,
1942 	/**
1943 	 * Deprecated
1944 	 */
1945 	GTK = 4,
1946 	/**
1947 	 * Deprecated
1948 	 */
1949 	APPLICATION = 8,
1950 	/**
1951 	 * Deprecated
1952 	 */
1953 	THEME = 10,
1954 	/**
1955 	 * Deprecated
1956 	 */
1957 	RC = 12,
1958 	/**
1959 	 * Deprecated
1960 	 */
1961 	HIGHEST = 15,
1962 }
1963 alias GtkPathPriorityType PathPriorityType;
1964 
1965 /**
1966  * Widget path types.
1967  * See also gtk_binding_set_add_path().
1968  */
1969 public enum GtkPathType
1970 {
1971 	/**
1972 	 * Deprecated
1973 	 */
1974 	WIDGET = 0,
1975 	/**
1976 	 * Deprecated
1977 	 */
1978 	WIDGET_CLASS = 1,
1979 	/**
1980 	 * Deprecated
1981 	 */
1982 	CLASS = 2,
1983 }
1984 alias GtkPathType PathType;
1985 
1986 /**
1987  * These flags serve two purposes.  First, the application can call gtk_places_sidebar_set_open_flags()
1988  * using these flags as a bitmask.  This tells the sidebar that the application is able to open
1989  * folders selected from the sidebar in various ways, for example, in new tabs or in new windows in
1990  * addition to the normal mode.
1991  *
1992  * Second, when one of these values gets passed back to the application in the
1993  * #GtkPlacesSidebar::open-location signal, it means that the application should
1994  * open the selected location in the normal way, in a new tab, or in a new
1995  * window.  The sidebar takes care of determining the desired way to open the location,
1996  * based on the modifier keys that the user is pressing at the time the selection is made.
1997  *
1998  * If the application never calls gtk_places_sidebar_set_open_flags(), then the sidebar will only
1999  * use #GTK_PLACES_OPEN_NORMAL in the #GtkPlacesSidebar::open-location signal.  This is the
2000  * default mode of operation.
2001  */
2002 public enum GtkPlacesOpenFlags
2003 {
2004 	/**
2005 	 * This is the default mode that #GtkPlacesSidebar uses if no other flags
2006 	 * are specified.  It indicates that the calling application should open the selected location
2007 	 * in the normal way, for example, in the folder view beside the sidebar.
2008 	 */
2009 	NORMAL = 1,
2010 	/**
2011 	 * When passed to gtk_places_sidebar_set_open_flags(), this indicates
2012 	 * that the application can open folders selected from the sidebar in new tabs.  This value
2013 	 * will be passed to the #GtkPlacesSidebar::open-location signal when the user selects
2014 	 * that a location be opened in a new tab instead of in the standard fashion.
2015 	 */
2016 	NEW_TAB = 2,
2017 	/**
2018 	 * Similar to @GTK_PLACES_OPEN_NEW_TAB, but indicates that the application
2019 	 * can open folders in new windows.
2020 	 */
2021 	NEW_WINDOW = 4,
2022 }
2023 alias GtkPlacesOpenFlags PlacesOpenFlags;
2024 
2025 /**
2026  * Determines how the size should be computed to achieve the one of the
2027  * visibility mode for the scrollbars.
2028  */
2029 public enum GtkPolicyType
2030 {
2031 	/**
2032 	 * The scrollbar is always visible. The view size is
2033 	 * independent of the content.
2034 	 */
2035 	ALWAYS = 0,
2036 	/**
2037 	 * The scrollbar will appear and disappear as necessary.
2038 	 * For example, when all of a #GtkTreeView can not be seen.
2039 	 */
2040 	AUTOMATIC = 1,
2041 	/**
2042 	 * The scrollbar should never appear. In this mode the
2043 	 * content determines the size.
2044 	 */
2045 	NEVER = 2,
2046 	/**
2047 	 * Don't show a scrollbar, but don't force the
2048 	 * size to follow the content. This can be used e.g. to make multiple
2049 	 * scrolled windows share a scrollbar. Since: 3.16
2050 	 */
2051 	EXTERNAL = 3,
2052 }
2053 alias GtkPolicyType PolicyType;
2054 
2055 /**
2056  * Describes constraints to positioning of popovers. More values
2057  * may be added to this enumeration in the future.
2058  *
2059  * Since: 3.20
2060  */
2061 public enum GtkPopoverConstraint
2062 {
2063 	/**
2064 	 * Don't constrain the popover position
2065 	 * beyond what is imposed by the implementation
2066 	 */
2067 	NONE = 0,
2068 	/**
2069 	 * Constrain the popover to the boundaries
2070 	 * of the window that it is attached to
2071 	 */
2072 	WINDOW = 1,
2073 }
2074 alias GtkPopoverConstraint PopoverConstraint;
2075 
2076 /**
2077  * Describes which edge of a widget a certain feature is positioned at, e.g. the
2078  * tabs of a #GtkNotebook, the handle of a #GtkHandleBox or the label of a
2079  * #GtkScale.
2080  */
2081 public enum GtkPositionType
2082 {
2083 	/**
2084 	 * The feature is at the left edge.
2085 	 */
2086 	LEFT = 0,
2087 	/**
2088 	 * The feature is at the right edge.
2089 	 */
2090 	RIGHT = 1,
2091 	/**
2092 	 * The feature is at the top edge.
2093 	 */
2094 	TOP = 2,
2095 	/**
2096 	 * The feature is at the bottom edge.
2097 	 */
2098 	BOTTOM = 3,
2099 }
2100 alias GtkPositionType PositionType;
2101 
2102 /**
2103  * See also gtk_print_settings_set_duplex().
2104  */
2105 public enum GtkPrintDuplex
2106 {
2107 	/**
2108 	 * No duplex.
2109 	 */
2110 	SIMPLEX = 0,
2111 	/**
2112 	 * Horizontal duplex.
2113 	 */
2114 	HORIZONTAL = 1,
2115 	/**
2116 	 * Vertical duplex.
2117 	 */
2118 	VERTICAL = 2,
2119 }
2120 alias GtkPrintDuplex PrintDuplex;
2121 
2122 /**
2123  * Error codes that identify various errors that can occur while
2124  * using the GTK+ printing support.
2125  */
2126 public enum GtkPrintError
2127 {
2128 	/**
2129 	 * An unspecified error occurred.
2130 	 */
2131 	GENERAL = 0,
2132 	/**
2133 	 * An internal error occurred.
2134 	 */
2135 	INTERNAL_ERROR = 1,
2136 	/**
2137 	 * A memory allocation failed.
2138 	 */
2139 	NOMEM = 2,
2140 	/**
2141 	 * An error occurred while loading a page setup
2142 	 * or paper size from a key file.
2143 	 */
2144 	INVALID_FILE = 3,
2145 }
2146 alias GtkPrintError PrintError;
2147 
2148 /**
2149  * The @action parameter to gtk_print_operation_run()
2150  * determines what action the print operation should perform.
2151  */
2152 public enum GtkPrintOperationAction
2153 {
2154 	/**
2155 	 * Show the print dialog.
2156 	 */
2157 	PRINT_DIALOG = 0,
2158 	/**
2159 	 * Start to print without showing
2160 	 * the print dialog, based on the current print settings.
2161 	 */
2162 	PRINT = 1,
2163 	/**
2164 	 * Show the print preview.
2165 	 */
2166 	PREVIEW = 2,
2167 	/**
2168 	 * Export to a file. This requires
2169 	 * the export-filename property to be set.
2170 	 */
2171 	EXPORT = 3,
2172 }
2173 alias GtkPrintOperationAction PrintOperationAction;
2174 
2175 /**
2176  * A value of this type is returned by gtk_print_operation_run().
2177  */
2178 public enum GtkPrintOperationResult
2179 {
2180 	/**
2181 	 * An error has occurred.
2182 	 */
2183 	ERROR = 0,
2184 	/**
2185 	 * The print settings should be stored.
2186 	 */
2187 	APPLY = 1,
2188 	/**
2189 	 * The print operation has been canceled,
2190 	 * the print settings should not be stored.
2191 	 */
2192 	CANCEL = 2,
2193 	/**
2194 	 * The print operation is not complete
2195 	 * yet. This value will only be returned when running asynchronously.
2196 	 */
2197 	IN_PROGRESS = 3,
2198 }
2199 alias GtkPrintOperationResult PrintOperationResult;
2200 
2201 /**
2202  * See also gtk_print_job_set_pages()
2203  */
2204 public enum GtkPrintPages
2205 {
2206 	/**
2207 	 * All pages.
2208 	 */
2209 	ALL = 0,
2210 	/**
2211 	 * Current page.
2212 	 */
2213 	CURRENT = 1,
2214 	/**
2215 	 * Range of pages.
2216 	 */
2217 	RANGES = 2,
2218 	/**
2219 	 * Selected pages.
2220 	 */
2221 	SELECTION = 3,
2222 }
2223 alias GtkPrintPages PrintPages;
2224 
2225 /**
2226  * See also gtk_print_settings_set_quality().
2227  */
2228 public enum GtkPrintQuality
2229 {
2230 	/**
2231 	 * Low quality.
2232 	 */
2233 	LOW = 0,
2234 	/**
2235 	 * Normal quality.
2236 	 */
2237 	NORMAL = 1,
2238 	/**
2239 	 * High quality.
2240 	 */
2241 	HIGH = 2,
2242 	/**
2243 	 * Draft quality.
2244 	 */
2245 	DRAFT = 3,
2246 }
2247 alias GtkPrintQuality PrintQuality;
2248 
2249 /**
2250  * The status gives a rough indication of the completion of a running
2251  * print operation.
2252  */
2253 public enum GtkPrintStatus
2254 {
2255 	/**
2256 	 * The printing has not started yet; this
2257 	 * status is set initially, and while the print dialog is shown.
2258 	 */
2259 	INITIAL = 0,
2260 	/**
2261 	 * This status is set while the begin-print
2262 	 * signal is emitted and during pagination.
2263 	 */
2264 	PREPARING = 1,
2265 	/**
2266 	 * This status is set while the
2267 	 * pages are being rendered.
2268 	 */
2269 	GENERATING_DATA = 2,
2270 	/**
2271 	 * The print job is being sent off to the
2272 	 * printer.
2273 	 */
2274 	SENDING_DATA = 3,
2275 	/**
2276 	 * The print job has been sent to the printer,
2277 	 * but is not printed for some reason, e.g. the printer may be stopped.
2278 	 */
2279 	PENDING = 4,
2280 	/**
2281 	 * Some problem has occurred during
2282 	 * printing, e.g. a paper jam.
2283 	 */
2284 	PENDING_ISSUE = 5,
2285 	/**
2286 	 * The printer is processing the print job.
2287 	 */
2288 	PRINTING = 6,
2289 	/**
2290 	 * The printing has been completed successfully.
2291 	 */
2292 	FINISHED = 7,
2293 	/**
2294 	 * The printing has been aborted.
2295 	 */
2296 	FINISHED_ABORTED = 8,
2297 }
2298 alias GtkPrintStatus PrintStatus;
2299 
2300 /**
2301  * Describes the stage at which events are fed into a #GtkEventController.
2302  *
2303  * Since: 3.14
2304  */
2305 public enum GtkPropagationPhase
2306 {
2307 	/**
2308 	 * Events are not delivered automatically. Those can be
2309 	 * manually fed through gtk_event_controller_handle_event(). This should
2310 	 * only be used when full control about when, or whether the controller
2311 	 * handles the event is needed.
2312 	 */
2313 	NONE = 0,
2314 	/**
2315 	 * Events are delivered in the capture phase. The
2316 	 * capture phase happens before the bubble phase, runs from the toplevel down
2317 	 * to the event widget. This option should only be used on containers that
2318 	 * might possibly handle events before their children do.
2319 	 */
2320 	CAPTURE = 1,
2321 	/**
2322 	 * Events are delivered in the bubble phase. The bubble
2323 	 * phase happens after the capture phase, and before the default handlers
2324 	 * are run. This phase runs from the event widget, up to the toplevel.
2325 	 */
2326 	BUBBLE = 2,
2327 	/**
2328 	 * Events are delivered in the default widget event handlers,
2329 	 * note that widget implementations must chain up on button, motion, touch and
2330 	 * grab broken handlers for controllers in this phase to be run.
2331 	 */
2332 	TARGET = 3,
2333 }
2334 alias GtkPropagationPhase PropagationPhase;
2335 
2336 /**
2337  * Deprecated
2338  */
2339 public enum GtkRcFlags
2340 {
2341 	/**
2342 	 * Deprecated
2343 	 */
2344 	FG = 1,
2345 	/**
2346 	 * Deprecated
2347 	 */
2348 	BG = 2,
2349 	/**
2350 	 * Deprecated
2351 	 */
2352 	TEXT = 4,
2353 	/**
2354 	 * Deprecated
2355 	 */
2356 	BASE = 8,
2357 }
2358 alias GtkRcFlags RcFlags;
2359 
2360 /**
2361  * The #GtkRcTokenType enumeration represents the tokens
2362  * in the RC file. It is exposed so that theme engines
2363  * can reuse these tokens when parsing the theme-engine
2364  * specific portions of a RC file.
2365  *
2366  * Deprecated: Use #GtkCssProvider instead.
2367  */
2368 public enum GtkRcTokenType
2369 {
2370 	/**
2371 	 * Deprecated
2372 	 */
2373 	INVALID = 270,
2374 	/**
2375 	 * Deprecated
2376 	 */
2377 	INCLUDE = 271,
2378 	/**
2379 	 * Deprecated
2380 	 */
2381 	NORMAL = 272,
2382 	/**
2383 	 * Deprecated
2384 	 */
2385 	ACTIVE = 273,
2386 	/**
2387 	 * Deprecated
2388 	 */
2389 	PRELIGHT = 274,
2390 	/**
2391 	 * Deprecated
2392 	 */
2393 	SELECTED = 275,
2394 	/**
2395 	 * Deprecated
2396 	 */
2397 	INSENSITIVE = 276,
2398 	/**
2399 	 * Deprecated
2400 	 */
2401 	FG = 277,
2402 	/**
2403 	 * Deprecated
2404 	 */
2405 	BG = 278,
2406 	/**
2407 	 * Deprecated
2408 	 */
2409 	TEXT = 279,
2410 	/**
2411 	 * Deprecated
2412 	 */
2413 	BASE = 280,
2414 	/**
2415 	 * Deprecated
2416 	 */
2417 	XTHICKNESS = 281,
2418 	/**
2419 	 * Deprecated
2420 	 */
2421 	YTHICKNESS = 282,
2422 	/**
2423 	 * Deprecated
2424 	 */
2425 	FONT = 283,
2426 	/**
2427 	 * Deprecated
2428 	 */
2429 	FONTSET = 284,
2430 	/**
2431 	 * Deprecated
2432 	 */
2433 	FONT_NAME = 285,
2434 	/**
2435 	 * Deprecated
2436 	 */
2437 	BG_PIXMAP = 286,
2438 	/**
2439 	 * Deprecated
2440 	 */
2441 	PIXMAP_PATH = 287,
2442 	/**
2443 	 * Deprecated
2444 	 */
2445 	STYLE = 288,
2446 	/**
2447 	 * Deprecated
2448 	 */
2449 	BINDING = 289,
2450 	/**
2451 	 * Deprecated
2452 	 */
2453 	BIND = 290,
2454 	/**
2455 	 * Deprecated
2456 	 */
2457 	WIDGET = 291,
2458 	/**
2459 	 * Deprecated
2460 	 */
2461 	WIDGET_CLASS = 292,
2462 	/**
2463 	 * Deprecated
2464 	 */
2465 	CLASS = 293,
2466 	/**
2467 	 * Deprecated
2468 	 */
2469 	LOWEST = 294,
2470 	/**
2471 	 * Deprecated
2472 	 */
2473 	GTK = 295,
2474 	/**
2475 	 * Deprecated
2476 	 */
2477 	APPLICATION = 296,
2478 	/**
2479 	 * Deprecated
2480 	 */
2481 	THEME = 297,
2482 	/**
2483 	 * Deprecated
2484 	 */
2485 	RC = 298,
2486 	/**
2487 	 * Deprecated
2488 	 */
2489 	HIGHEST = 299,
2490 	/**
2491 	 * Deprecated
2492 	 */
2493 	ENGINE = 300,
2494 	/**
2495 	 * Deprecated
2496 	 */
2497 	MODULE_PATH = 301,
2498 	/**
2499 	 * Deprecated
2500 	 */
2501 	IM_MODULE_PATH = 302,
2502 	/**
2503 	 * Deprecated
2504 	 */
2505 	IM_MODULE_FILE = 303,
2506 	/**
2507 	 * Deprecated
2508 	 */
2509 	STOCK = 304,
2510 	/**
2511 	 * Deprecated
2512 	 */
2513 	LTR = 305,
2514 	/**
2515 	 * Deprecated
2516 	 */
2517 	RTL = 306,
2518 	/**
2519 	 * Deprecated
2520 	 */
2521 	COLOR = 307,
2522 	/**
2523 	 * Deprecated
2524 	 */
2525 	UNBIND = 308,
2526 	/**
2527 	 * Deprecated
2528 	 */
2529 	LAST = 309,
2530 }
2531 alias GtkRcTokenType RcTokenType;
2532 
2533 /**
2534  * These identify the various errors that can occur while calling
2535  * #GtkRecentChooser functions.
2536  *
2537  * Since: 2.10
2538  */
2539 public enum GtkRecentChooserError
2540 {
2541 	/**
2542 	 * Indicates that a file does not exist
2543 	 */
2544 	NOT_FOUND = 0,
2545 	/**
2546 	 * Indicates a malformed URI
2547 	 */
2548 	INVALID_URI = 1,
2549 }
2550 alias GtkRecentChooserError RecentChooserError;
2551 
2552 /**
2553  * These flags indicate what parts of a #GtkRecentFilterInfo struct
2554  * are filled or need to be filled.
2555  */
2556 public enum GtkRecentFilterFlags
2557 {
2558 	/**
2559 	 * the URI of the file being tested
2560 	 */
2561 	URI = 1,
2562 	/**
2563 	 * the string that will be used to
2564 	 * display the file in the recent chooser
2565 	 */
2566 	DISPLAY_NAME = 2,
2567 	/**
2568 	 * the mime type of the file
2569 	 */
2570 	MIME_TYPE = 4,
2571 	/**
2572 	 * the list of applications that have
2573 	 * registered the file
2574 	 */
2575 	APPLICATION = 8,
2576 	/**
2577 	 * the groups to which the file belongs to
2578 	 */
2579 	GROUP = 16,
2580 	/**
2581 	 * the number of days elapsed since the file
2582 	 * has been registered
2583 	 */
2584 	AGE = 32,
2585 }
2586 alias GtkRecentFilterFlags RecentFilterFlags;
2587 
2588 /**
2589  * Error codes for #GtkRecentManager operations
2590  *
2591  * Since: 2.10
2592  */
2593 public enum GtkRecentManagerError
2594 {
2595 	/**
2596 	 * the URI specified does not exists in
2597 	 * the recently used resources list.
2598 	 */
2599 	NOT_FOUND = 0,
2600 	/**
2601 	 * the URI specified is not valid.
2602 	 */
2603 	INVALID_URI = 1,
2604 	/**
2605 	 * the supplied string is not
2606 	 * UTF-8 encoded.
2607 	 */
2608 	INVALID_ENCODING = 2,
2609 	/**
2610 	 * no application has registered
2611 	 * the specified item.
2612 	 */
2613 	NOT_REGISTERED = 3,
2614 	/**
2615 	 * failure while reading the recently used
2616 	 * resources file.
2617 	 */
2618 	READ = 4,
2619 	/**
2620 	 * failure while writing the recently used
2621 	 * resources file.
2622 	 */
2623 	WRITE = 5,
2624 	/**
2625 	 * unspecified error.
2626 	 */
2627 	UNKNOWN = 6,
2628 }
2629 alias GtkRecentManagerError RecentManagerError;
2630 
2631 /**
2632  * Used to specify the sorting method to be applyed to the recently
2633  * used resource list.
2634  *
2635  * Since: 2.10
2636  */
2637 public enum GtkRecentSortType
2638 {
2639 	/**
2640 	 * Do not sort the returned list of recently used
2641 	 * resources.
2642 	 */
2643 	NONE = 0,
2644 	/**
2645 	 * Sort the returned list with the most recently used
2646 	 * items first.
2647 	 */
2648 	MRU = 1,
2649 	/**
2650 	 * Sort the returned list with the least recently used
2651 	 * items first.
2652 	 */
2653 	LRU = 2,
2654 	/**
2655 	 * Sort the returned list using a custom sorting
2656 	 * function passed using gtk_recent_chooser_set_sort_func().
2657 	 */
2658 	CUSTOM = 3,
2659 }
2660 alias GtkRecentSortType RecentSortType;
2661 
2662 /**
2663  * Describes a region within a widget.
2664  */
2665 public enum GtkRegionFlags
2666 {
2667 	/**
2668 	 * Region has an even number within a set.
2669 	 */
2670 	EVEN = 1,
2671 	/**
2672 	 * Region has an odd number within a set.
2673 	 */
2674 	ODD = 2,
2675 	/**
2676 	 * Region is the first one within a set.
2677 	 */
2678 	FIRST = 4,
2679 	/**
2680 	 * Region is the last one within a set.
2681 	 */
2682 	LAST = 8,
2683 	/**
2684 	 * Region is the only one within a set.
2685 	 */
2686 	ONLY = 16,
2687 	/**
2688 	 * Region is part of a sorted area.
2689 	 */
2690 	SORTED = 32,
2691 }
2692 alias GtkRegionFlags RegionFlags;
2693 
2694 /**
2695  * Indicated the relief to be drawn around a #GtkButton.
2696  */
2697 public enum GtkReliefStyle
2698 {
2699 	/**
2700 	 * Draw a normal relief.
2701 	 */
2702 	NORMAL = 0,
2703 	/**
2704 	 * A half relief. Deprecated in 3.14, does the same as @GTK_RELIEF_NORMAL
2705 	 */
2706 	HALF = 1,
2707 	/**
2708 	 * No relief.
2709 	 */
2710 	NONE = 2,
2711 }
2712 alias GtkReliefStyle ReliefStyle;
2713 
2714 public enum GtkResizeMode
2715 {
2716 	/**
2717 	 * Pass resize request to the parent
2718 	 */
2719 	PARENT = 0,
2720 	/**
2721 	 * Queue resizes on this widget
2722 	 */
2723 	QUEUE = 1,
2724 	/**
2725 	 * Resize immediately. Deprecated.
2726 	 */
2727 	IMMEDIATE = 2,
2728 }
2729 alias GtkResizeMode ResizeMode;
2730 
2731 /**
2732  * Predefined values for use as response ids in gtk_dialog_add_button().
2733  * All predefined values are negative, GTK+ leaves positive values for
2734  * application-defined response ids.
2735  */
2736 public enum GtkResponseType
2737 {
2738 	/**
2739 	 * Returned if an action widget has no response id,
2740 	 * or if the dialog gets programmatically hidden or destroyed
2741 	 */
2742 	NONE = -1,
2743 	/**
2744 	 * Generic response id, not used by GTK+ dialogs
2745 	 */
2746 	REJECT = -2,
2747 	/**
2748 	 * Generic response id, not used by GTK+ dialogs
2749 	 */
2750 	ACCEPT = -3,
2751 	/**
2752 	 * Returned if the dialog is deleted
2753 	 */
2754 	DELETE_EVENT = -4,
2755 	/**
2756 	 * Returned by OK buttons in GTK+ dialogs
2757 	 */
2758 	OK = -5,
2759 	/**
2760 	 * Returned by Cancel buttons in GTK+ dialogs
2761 	 */
2762 	CANCEL = -6,
2763 	/**
2764 	 * Returned by Close buttons in GTK+ dialogs
2765 	 */
2766 	CLOSE = -7,
2767 	/**
2768 	 * Returned by Yes buttons in GTK+ dialogs
2769 	 */
2770 	YES = -8,
2771 	/**
2772 	 * Returned by No buttons in GTK+ dialogs
2773 	 */
2774 	NO = -9,
2775 	/**
2776 	 * Returned by Apply buttons in GTK+ dialogs
2777 	 */
2778 	APPLY = -10,
2779 	/**
2780 	 * Returned by Help buttons in GTK+ dialogs
2781 	 */
2782 	HELP = -11,
2783 }
2784 alias GtkResponseType ResponseType;
2785 
2786 /**
2787  * These enumeration values describe the possible transitions
2788  * when the child of a #GtkRevealer widget is shown or hidden.
2789  */
2790 public enum GtkRevealerTransitionType
2791 {
2792 	/**
2793 	 * No transition
2794 	 */
2795 	NONE = 0,
2796 	/**
2797 	 * Fade in
2798 	 */
2799 	CROSSFADE = 1,
2800 	/**
2801 	 * Slide in from the left
2802 	 */
2803 	SLIDE_RIGHT = 2,
2804 	/**
2805 	 * Slide in from the right
2806 	 */
2807 	SLIDE_LEFT = 3,
2808 	/**
2809 	 * Slide in from the bottom
2810 	 */
2811 	SLIDE_UP = 4,
2812 	/**
2813 	 * Slide in from the top
2814 	 */
2815 	SLIDE_DOWN = 5,
2816 }
2817 alias GtkRevealerTransitionType RevealerTransitionType;
2818 
2819 public enum GtkScrollStep
2820 {
2821 	/**
2822 	 * Scroll in steps.
2823 	 */
2824 	STEPS = 0,
2825 	/**
2826 	 * Scroll by pages.
2827 	 */
2828 	PAGES = 1,
2829 	/**
2830 	 * Scroll to ends.
2831 	 */
2832 	ENDS = 2,
2833 	/**
2834 	 * Scroll in horizontal steps.
2835 	 */
2836 	HORIZONTAL_STEPS = 3,
2837 	/**
2838 	 * Scroll by horizontal pages.
2839 	 */
2840 	HORIZONTAL_PAGES = 4,
2841 	/**
2842 	 * Scroll to the horizontal ends.
2843 	 */
2844 	HORIZONTAL_ENDS = 5,
2845 }
2846 alias GtkScrollStep ScrollStep;
2847 
2848 /**
2849  * Scrolling types.
2850  */
2851 public enum GtkScrollType
2852 {
2853 	/**
2854 	 * No scrolling.
2855 	 */
2856 	NONE = 0,
2857 	/**
2858 	 * Jump to new location.
2859 	 */
2860 	JUMP = 1,
2861 	/**
2862 	 * Step backward.
2863 	 */
2864 	STEP_BACKWARD = 2,
2865 	/**
2866 	 * Step forward.
2867 	 */
2868 	STEP_FORWARD = 3,
2869 	/**
2870 	 * Page backward.
2871 	 */
2872 	PAGE_BACKWARD = 4,
2873 	/**
2874 	 * Page forward.
2875 	 */
2876 	PAGE_FORWARD = 5,
2877 	/**
2878 	 * Step up.
2879 	 */
2880 	STEP_UP = 6,
2881 	/**
2882 	 * Step down.
2883 	 */
2884 	STEP_DOWN = 7,
2885 	/**
2886 	 * Page up.
2887 	 */
2888 	PAGE_UP = 8,
2889 	/**
2890 	 * Page down.
2891 	 */
2892 	PAGE_DOWN = 9,
2893 	/**
2894 	 * Step to the left.
2895 	 */
2896 	STEP_LEFT = 10,
2897 	/**
2898 	 * Step to the right.
2899 	 */
2900 	STEP_RIGHT = 11,
2901 	/**
2902 	 * Page to the left.
2903 	 */
2904 	PAGE_LEFT = 12,
2905 	/**
2906 	 * Page to the right.
2907 	 */
2908 	PAGE_RIGHT = 13,
2909 	/**
2910 	 * Scroll to start.
2911 	 */
2912 	START = 14,
2913 	/**
2914 	 * Scroll to end.
2915 	 */
2916 	END = 15,
2917 }
2918 alias GtkScrollType ScrollType;
2919 
2920 /**
2921  * Defines the policy to be used in a scrollable widget when updating
2922  * the scrolled window adjustments in a given orientation.
2923  */
2924 public enum GtkScrollablePolicy
2925 {
2926 	/**
2927 	 * Scrollable adjustments are based on the minimum size
2928 	 */
2929 	MINIMUM = 0,
2930 	/**
2931 	 * Scrollable adjustments are based on the natural size
2932 	 */
2933 	NATURAL = 1,
2934 }
2935 alias GtkScrollablePolicy ScrollablePolicy;
2936 
2937 /**
2938  * Used to control what selections users are allowed to make.
2939  */
2940 public enum GtkSelectionMode
2941 {
2942 	/**
2943 	 * No selection is possible.
2944 	 */
2945 	NONE = 0,
2946 	/**
2947 	 * Zero or one element may be selected.
2948 	 */
2949 	SINGLE = 1,
2950 	/**
2951 	 * Exactly one element is selected.
2952 	 * In some circumstances, such as initially or during a search
2953 	 * operation, it’s possible for no element to be selected with
2954 	 * %GTK_SELECTION_BROWSE. What is really enforced is that the user
2955 	 * can’t deselect a currently selected element except by selecting
2956 	 * another element.
2957 	 */
2958 	BROWSE = 2,
2959 	/**
2960 	 * Any number of elements may be selected.
2961 	 * The Ctrl key may be used to enlarge the selection, and Shift
2962 	 * key to select between the focus and the child pointed to.
2963 	 * Some widgets may also allow Click-drag to select a range of elements.
2964 	 */
2965 	MULTIPLE = 3,
2966 }
2967 alias GtkSelectionMode SelectionMode;
2968 
2969 /**
2970  * Determines how GTK+ handles the sensitivity of stepper arrows
2971  * at the end of range widgets.
2972  */
2973 public enum GtkSensitivityType
2974 {
2975 	/**
2976 	 * The arrow is made insensitive if the
2977 	 * thumb is at the end
2978 	 */
2979 	AUTO = 0,
2980 	/**
2981 	 * The arrow is always sensitive
2982 	 */
2983 	ON = 1,
2984 	/**
2985 	 * The arrow is always insensitive
2986 	 */
2987 	OFF = 2,
2988 }
2989 alias GtkSensitivityType SensitivityType;
2990 
2991 /**
2992  * Used to change the appearance of an outline typically provided by a #GtkFrame.
2993  *
2994  * Note that many themes do not differentiate the appearance of the
2995  * various shadow types: Either their is no visible shadow (@GTK_SHADOW_NONE),
2996  * or there is (any other value).
2997  */
2998 public enum GtkShadowType
2999 {
3000 	/**
3001 	 * No outline.
3002 	 */
3003 	NONE = 0,
3004 	/**
3005 	 * The outline is bevelled inwards.
3006 	 */
3007 	IN = 1,
3008 	/**
3009 	 * The outline is bevelled outwards like a button.
3010 	 */
3011 	OUT = 2,
3012 	/**
3013 	 * The outline has a sunken 3d appearance.
3014 	 */
3015 	ETCHED_IN = 3,
3016 	/**
3017 	 * The outline has a raised 3d appearance.
3018 	 */
3019 	ETCHED_OUT = 4,
3020 }
3021 alias GtkShadowType ShadowType;
3022 
3023 /**
3024  * GtkShortcutType specifies the kind of shortcut that is being described.
3025  * More values may be added to this enumeration over time.
3026  *
3027  * Since: 3.20
3028  */
3029 public enum GtkShortcutType
3030 {
3031 	/**
3032 	 * The shortcut is a keyboard accelerator. The #GtkShortcutsShortcut:accelerator
3033 	 * property will be used.
3034 	 */
3035 	ACCELERATOR = 0,
3036 	/**
3037 	 * The shortcut is a pinch gesture. GTK+ provides an icon and subtitle.
3038 	 */
3039 	GESTURE_PINCH = 1,
3040 	/**
3041 	 * The shortcut is a stretch gesture. GTK+ provides an icon and subtitle.
3042 	 */
3043 	GESTURE_STRETCH = 2,
3044 	/**
3045 	 * The shortcut is a clockwise rotation gesture. GTK+ provides an icon and subtitle.
3046 	 */
3047 	GESTURE_ROTATE_CLOCKWISE = 3,
3048 	/**
3049 	 * The shortcut is a counterclockwise rotation gesture. GTK+ provides an icon and subtitle.
3050 	 */
3051 	GESTURE_ROTATE_COUNTERCLOCKWISE = 4,
3052 	/**
3053 	 * The shortcut is a two-finger swipe gesture. GTK+ provides an icon and subtitle.
3054 	 */
3055 	GESTURE_TWO_FINGER_SWIPE_LEFT = 5,
3056 	/**
3057 	 * The shortcut is a two-finger swipe gesture. GTK+ provides an icon and subtitle.
3058 	 */
3059 	GESTURE_TWO_FINGER_SWIPE_RIGHT = 6,
3060 	/**
3061 	 * The shortcut is a gesture. The #GtkShortcutsShortcut:icon property will be
3062 	 * used.
3063 	 */
3064 	GESTURE = 7,
3065 }
3066 alias GtkShortcutType ShortcutType;
3067 
3068 /**
3069  * The mode of the size group determines the directions in which the size
3070  * group affects the requested sizes of its component widgets.
3071  */
3072 public enum GtkSizeGroupMode
3073 {
3074 	/**
3075 	 * group has no effect
3076 	 */
3077 	NONE = 0,
3078 	/**
3079 	 * group affects horizontal requisition
3080 	 */
3081 	HORIZONTAL = 1,
3082 	/**
3083 	 * group affects vertical requisition
3084 	 */
3085 	VERTICAL = 2,
3086 	/**
3087 	 * group affects both horizontal and vertical requisition
3088 	 */
3089 	BOTH = 3,
3090 }
3091 alias GtkSizeGroupMode SizeGroupMode;
3092 
3093 /**
3094  * Specifies a preference for height-for-width or
3095  * width-for-height geometry management.
3096  */
3097 public enum GtkSizeRequestMode
3098 {
3099 	/**
3100 	 * Prefer height-for-width geometry management
3101 	 */
3102 	HEIGHT_FOR_WIDTH = 0,
3103 	/**
3104 	 * Prefer width-for-height geometry management
3105 	 */
3106 	WIDTH_FOR_HEIGHT = 1,
3107 	/**
3108 	 * Don’t trade height-for-width or width-for-height
3109 	 */
3110 	CONSTANT_SIZE = 2,
3111 }
3112 alias GtkSizeRequestMode SizeRequestMode;
3113 
3114 /**
3115  * Determines the direction of a sort.
3116  */
3117 public enum GtkSortType
3118 {
3119 	/**
3120 	 * Sorting is in ascending order.
3121 	 */
3122 	ASCENDING = 0,
3123 	/**
3124 	 * Sorting is in descending order.
3125 	 */
3126 	DESCENDING = 1,
3127 }
3128 alias GtkSortType SortType;
3129 
3130 /**
3131  * The spin button update policy determines whether the spin button displays
3132  * values even if they are outside the bounds of its adjustment.
3133  * See gtk_spin_button_set_update_policy().
3134  */
3135 public enum GtkSpinButtonUpdatePolicy
3136 {
3137 	/**
3138 	 * When refreshing your #GtkSpinButton, the value is
3139 	 * always displayed
3140 	 */
3141 	ALWAYS = 0,
3142 	/**
3143 	 * When refreshing your #GtkSpinButton, the value is
3144 	 * only displayed if it is valid within the bounds of the spin button's
3145 	 * adjustment
3146 	 */
3147 	IF_VALID = 1,
3148 }
3149 alias GtkSpinButtonUpdatePolicy SpinButtonUpdatePolicy;
3150 
3151 /**
3152  * The values of the GtkSpinType enumeration are used to specify the
3153  * change to make in gtk_spin_button_spin().
3154  */
3155 public enum GtkSpinType
3156 {
3157 	/**
3158 	 * Increment by the adjustments step increment.
3159 	 */
3160 	STEP_FORWARD = 0,
3161 	/**
3162 	 * Decrement by the adjustments step increment.
3163 	 */
3164 	STEP_BACKWARD = 1,
3165 	/**
3166 	 * Increment by the adjustments page increment.
3167 	 */
3168 	PAGE_FORWARD = 2,
3169 	/**
3170 	 * Decrement by the adjustments page increment.
3171 	 */
3172 	PAGE_BACKWARD = 3,
3173 	/**
3174 	 * Go to the adjustments lower bound.
3175 	 */
3176 	HOME = 4,
3177 	/**
3178 	 * Go to the adjustments upper bound.
3179 	 */
3180 	END = 5,
3181 	/**
3182 	 * Change by a specified amount.
3183 	 */
3184 	USER_DEFINED = 6,
3185 }
3186 alias GtkSpinType SpinType;
3187 
3188 /**
3189  * These enumeration values describe the possible transitions
3190  * between pages in a #GtkStack widget.
3191  *
3192  * New values may be added to this enumeration over time.
3193  */
3194 public enum GtkStackTransitionType
3195 {
3196 	/**
3197 	 * No transition
3198 	 */
3199 	NONE = 0,
3200 	/**
3201 	 * A cross-fade
3202 	 */
3203 	CROSSFADE = 1,
3204 	/**
3205 	 * Slide from left to right
3206 	 */
3207 	SLIDE_RIGHT = 2,
3208 	/**
3209 	 * Slide from right to left
3210 	 */
3211 	SLIDE_LEFT = 3,
3212 	/**
3213 	 * Slide from bottom up
3214 	 */
3215 	SLIDE_UP = 4,
3216 	/**
3217 	 * Slide from top down
3218 	 */
3219 	SLIDE_DOWN = 5,
3220 	/**
3221 	 * Slide from left or right according to the children order
3222 	 */
3223 	SLIDE_LEFT_RIGHT = 6,
3224 	/**
3225 	 * Slide from top down or bottom up according to the order
3226 	 */
3227 	SLIDE_UP_DOWN = 7,
3228 	/**
3229 	 * Cover the old page by sliding up. Since 3.12
3230 	 */
3231 	OVER_UP = 8,
3232 	/**
3233 	 * Cover the old page by sliding down. Since: 3.12
3234 	 */
3235 	OVER_DOWN = 9,
3236 	/**
3237 	 * Cover the old page by sliding to the left. Since: 3.12
3238 	 */
3239 	OVER_LEFT = 10,
3240 	/**
3241 	 * Cover the old page by sliding to the right. Since: 3.12
3242 	 */
3243 	OVER_RIGHT = 11,
3244 	/**
3245 	 * Uncover the new page by sliding up. Since 3.12
3246 	 */
3247 	UNDER_UP = 12,
3248 	/**
3249 	 * Uncover the new page by sliding down. Since: 3.12
3250 	 */
3251 	UNDER_DOWN = 13,
3252 	/**
3253 	 * Uncover the new page by sliding to the left. Since: 3.12
3254 	 */
3255 	UNDER_LEFT = 14,
3256 	/**
3257 	 * Uncover the new page by sliding to the right. Since: 3.12
3258 	 */
3259 	UNDER_RIGHT = 15,
3260 	/**
3261 	 * Cover the old page sliding up or uncover the new page sliding down, according to order. Since: 3.12
3262 	 */
3263 	OVER_UP_DOWN = 16,
3264 	/**
3265 	 * Cover the old page sliding down or uncover the new page sliding up, according to order. Since: 3.14
3266 	 */
3267 	OVER_DOWN_UP = 17,
3268 	/**
3269 	 * Cover the old page sliding left or uncover the new page sliding right, according to order. Since: 3.14
3270 	 */
3271 	OVER_LEFT_RIGHT = 18,
3272 	/**
3273 	 * Cover the old page sliding right or uncover the new page sliding left, according to order. Since: 3.14
3274 	 */
3275 	OVER_RIGHT_LEFT = 19,
3276 }
3277 alias GtkStackTransitionType StackTransitionType;
3278 
3279 /**
3280  * Describes a widget state. Widget states are used to match the widget
3281  * against CSS pseudo-classes. Note that GTK extends the regular CSS
3282  * classes and sometimes uses different names.
3283  */
3284 public enum GtkStateFlags
3285 {
3286 	/**
3287 	 * State during normal operation.
3288 	 */
3289 	NORMAL = 0,
3290 	/**
3291 	 * Widget is active.
3292 	 */
3293 	ACTIVE = 1,
3294 	/**
3295 	 * Widget has a mouse pointer over it.
3296 	 */
3297 	PRELIGHT = 2,
3298 	/**
3299 	 * Widget is selected.
3300 	 */
3301 	SELECTED = 4,
3302 	/**
3303 	 * Widget is insensitive.
3304 	 */
3305 	INSENSITIVE = 8,
3306 	/**
3307 	 * Widget is inconsistent.
3308 	 */
3309 	INCONSISTENT = 16,
3310 	/**
3311 	 * Widget has the keyboard focus.
3312 	 */
3313 	FOCUSED = 32,
3314 	/**
3315 	 * Widget is in a background toplevel window.
3316 	 */
3317 	BACKDROP = 64,
3318 	/**
3319 	 * Widget is in left-to-right text direction. Since 3.8
3320 	 */
3321 	DIR_LTR = 128,
3322 	/**
3323 	 * Widget is in right-to-left text direction. Since 3.8
3324 	 */
3325 	DIR_RTL = 256,
3326 	/**
3327 	 * Widget is a link. Since 3.12
3328 	 */
3329 	LINK = 512,
3330 	/**
3331 	 * The location the widget points to has already been visited. Since 3.12
3332 	 */
3333 	VISITED = 1024,
3334 	/**
3335 	 * Widget is checked. Since 3.14
3336 	 */
3337 	CHECKED = 2048,
3338 	/**
3339 	 * Widget is highlighted as a drop target for DND. Since 3.20
3340 	 */
3341 	DROP_ACTIVE = 4096,
3342 }
3343 alias GtkStateFlags StateFlags;
3344 
3345 /**
3346  * This type indicates the current state of a widget; the state determines how
3347  * the widget is drawn. The #GtkStateType enumeration is also used to
3348  * identify different colors in a #GtkStyle for drawing, so states can be
3349  * used for subparts of a widget as well as entire widgets.
3350  *
3351  * Deprecated: All APIs that are using this enumeration have been deprecated
3352  * in favor of alternatives using #GtkStateFlags.
3353  */
3354 public enum GtkStateType
3355 {
3356 	/**
3357 	 * State during normal operation.
3358 	 */
3359 	NORMAL = 0,
3360 	/**
3361 	 * State of a currently active widget, such as a depressed button.
3362 	 */
3363 	ACTIVE = 1,
3364 	/**
3365 	 * State indicating that the mouse pointer is over
3366 	 * the widget and the widget will respond to mouse clicks.
3367 	 */
3368 	PRELIGHT = 2,
3369 	/**
3370 	 * State of a selected item, such the selected row in a list.
3371 	 */
3372 	SELECTED = 3,
3373 	/**
3374 	 * State indicating that the widget is
3375 	 * unresponsive to user actions.
3376 	 */
3377 	INSENSITIVE = 4,
3378 	/**
3379 	 * The widget is inconsistent, such as checkbuttons
3380 	 * or radiobuttons that aren’t either set to %TRUE nor %FALSE,
3381 	 * or buttons requiring the user attention.
3382 	 */
3383 	INCONSISTENT = 5,
3384 	/**
3385 	 * The widget has the keyboard focus.
3386 	 */
3387 	FOCUSED = 6,
3388 }
3389 alias GtkStateType StateType;
3390 
3391 /**
3392  * Flags that modify the behavior of gtk_style_context_to_string().
3393  * New values may be added to this enumeration.
3394  */
3395 public enum GtkStyleContextPrintFlags
3396 {
3397 	NONE = 0,
3398 	/**
3399 	 * Print the entire tree of
3400 	 * CSS nodes starting at the style context's node
3401 	 */
3402 	RECURSE = 1,
3403 	/**
3404 	 * Show the values of the
3405 	 * CSS properties for each node
3406 	 */
3407 	SHOW_STYLE = 2,
3408 }
3409 alias GtkStyleContextPrintFlags StyleContextPrintFlags;
3410 
3411 /**
3412  * The #GtkTargetFlags enumeration is used to specify
3413  * constraints on a #GtkTargetEntry.
3414  */
3415 public enum GtkTargetFlags
3416 {
3417 	/**
3418 	 * If this is set, the target will only be selected
3419 	 * for drags within a single application.
3420 	 */
3421 	SAME_APP = 1,
3422 	/**
3423 	 * If this is set, the target will only be selected
3424 	 * for drags within a single widget.
3425 	 */
3426 	SAME_WIDGET = 2,
3427 	/**
3428 	 * If this is set, the target will not be selected
3429 	 * for drags within a single application.
3430 	 */
3431 	OTHER_APP = 4,
3432 	/**
3433 	 * If this is set, the target will not be selected
3434 	 * for drags withing a single widget.
3435 	 */
3436 	OTHER_WIDGET = 8,
3437 }
3438 alias GtkTargetFlags TargetFlags;
3439 
3440 /**
3441  * These values are used as “info” for the targets contained in the
3442  * lists returned by gtk_text_buffer_get_copy_target_list() and
3443  * gtk_text_buffer_get_paste_target_list().
3444  *
3445  * The values counts down from `-1` to avoid clashes
3446  * with application added drag destinations which usually start at 0.
3447  */
3448 public enum GtkTextBufferTargetInfo
3449 {
3450 	/**
3451 	 * Buffer contents
3452 	 */
3453 	BUFFER_CONTENTS = -1,
3454 	/**
3455 	 * Rich text
3456 	 */
3457 	RICH_TEXT = -2,
3458 	/**
3459 	 * Text
3460 	 */
3461 	TEXT = -3,
3462 }
3463 alias GtkTextBufferTargetInfo TextBufferTargetInfo;
3464 
3465 /**
3466  * Reading directions for text.
3467  */
3468 public enum GtkTextDirection
3469 {
3470 	/**
3471 	 * No direction.
3472 	 */
3473 	NONE = 0,
3474 	/**
3475 	 * Left to right text direction.
3476 	 */
3477 	LTR = 1,
3478 	/**
3479 	 * Right to left text direction.
3480 	 */
3481 	RTL = 2,
3482 }
3483 alias GtkTextDirection TextDirection;
3484 
3485 /**
3486  * Granularity types that extend the text selection. Use the
3487  * #GtkTextView::extend-selection signal to customize the selection.
3488  *
3489  * Since: 3.16
3490  */
3491 public enum GtkTextExtendSelection
3492 {
3493 	/**
3494 	 * Selects the current word. It is triggered by
3495 	 * a double-click for example.
3496 	 */
3497 	WORD = 0,
3498 	/**
3499 	 * Selects the current line. It is triggered by
3500 	 * a triple-click for example.
3501 	 */
3502 	LINE = 1,
3503 }
3504 alias GtkTextExtendSelection TextExtendSelection;
3505 
3506 /**
3507  * Flags affecting how a search is done.
3508  *
3509  * If neither #GTK_TEXT_SEARCH_VISIBLE_ONLY nor #GTK_TEXT_SEARCH_TEXT_ONLY are
3510  * enabled, the match must be exact; the special 0xFFFC character will match
3511  * embedded pixbufs or child widgets.
3512  */
3513 public enum GtkTextSearchFlags
3514 {
3515 	/**
3516 	 * Search only visible data. A search match may
3517 	 * have invisible text interspersed.
3518 	 */
3519 	VISIBLE_ONLY = 1,
3520 	/**
3521 	 * Search only text. A match may have pixbufs or
3522 	 * child widgets mixed inside the matched range.
3523 	 */
3524 	TEXT_ONLY = 2,
3525 	/**
3526 	 * The text will be matched regardless of
3527 	 * what case it is in.
3528 	 */
3529 	CASE_INSENSITIVE = 4,
3530 }
3531 alias GtkTextSearchFlags TextSearchFlags;
3532 
3533 /**
3534  * Used to reference the layers of #GtkTextView for the purpose of customized
3535  * drawing with the ::draw_layer vfunc.
3536  */
3537 public enum GtkTextViewLayer
3538 {
3539 	/**
3540 	 * Old deprecated layer, use %GTK_TEXT_VIEW_LAYER_BELOW_TEXT instead
3541 	 */
3542 	BELOW = 0,
3543 	/**
3544 	 * Old deprecated layer, use %GTK_TEXT_VIEW_LAYER_ABOVE_TEXT instead
3545 	 */
3546 	ABOVE = 1,
3547 	/**
3548 	 * The layer rendered below the text (but above the background).  Since: 3.20
3549 	 */
3550 	BELOW_TEXT = 2,
3551 	/**
3552 	 * The layer rendered above the text.  Since: 3.20
3553 	 */
3554 	ABOVE_TEXT = 3,
3555 }
3556 alias GtkTextViewLayer TextViewLayer;
3557 
3558 /**
3559  * Used to reference the parts of #GtkTextView.
3560  */
3561 public enum GtkTextWindowType
3562 {
3563 	PRIVATE = 0,
3564 	/**
3565 	 * Window that floats over scrolling areas.
3566 	 */
3567 	WIDGET = 1,
3568 	/**
3569 	 * Scrollable text window.
3570 	 */
3571 	TEXT = 2,
3572 	/**
3573 	 * Left side border window.
3574 	 */
3575 	LEFT = 3,
3576 	/**
3577 	 * Right side border window.
3578 	 */
3579 	RIGHT = 4,
3580 	/**
3581 	 * Top border window.
3582 	 */
3583 	TOP = 5,
3584 	/**
3585 	 * Bottom border window.
3586 	 */
3587 	BOTTOM = 6,
3588 }
3589 alias GtkTextWindowType TextWindowType;
3590 
3591 /**
3592  * Flags used to specify the supported drag targets.
3593  */
3594 public enum GtkToolPaletteDragTargets
3595 {
3596 	/**
3597 	 * Support drag of items.
3598 	 */
3599 	ITEMS = 1,
3600 	/**
3601 	 * Support drag of groups.
3602 	 */
3603 	GROUPS = 2,
3604 }
3605 alias GtkToolPaletteDragTargets ToolPaletteDragTargets;
3606 
3607 /**
3608  * Whether spacers are vertical lines or just blank.
3609  */
3610 public enum GtkToolbarSpaceStyle
3611 {
3612 	/**
3613 	 * Use blank spacers.
3614 	 */
3615 	EMPTY = 0,
3616 	/**
3617 	 * Use vertical lines for spacers.
3618 	 */
3619 	LINE = 1,
3620 }
3621 alias GtkToolbarSpaceStyle ToolbarSpaceStyle;
3622 
3623 /**
3624  * Used to customize the appearance of a #GtkToolbar. Note that
3625  * setting the toolbar style overrides the user’s preferences
3626  * for the default toolbar style.  Note that if the button has only
3627  * a label set and GTK_TOOLBAR_ICONS is used, the label will be
3628  * visible, and vice versa.
3629  */
3630 public enum GtkToolbarStyle
3631 {
3632 	/**
3633 	 * Buttons display only icons in the toolbar.
3634 	 */
3635 	ICONS = 0,
3636 	/**
3637 	 * Buttons display only text labels in the toolbar.
3638 	 */
3639 	TEXT = 1,
3640 	/**
3641 	 * Buttons display text and icons in the toolbar.
3642 	 */
3643 	BOTH = 2,
3644 	/**
3645 	 * Buttons display icons and text alongside each
3646 	 * other, rather than vertically stacked
3647 	 */
3648 	BOTH_HORIZ = 3,
3649 }
3650 alias GtkToolbarStyle ToolbarStyle;
3651 
3652 /**
3653  * These flags indicate various properties of a #GtkTreeModel.
3654  *
3655  * They are returned by gtk_tree_model_get_flags(), and must be
3656  * static for the lifetime of the object. A more complete description
3657  * of #GTK_TREE_MODEL_ITERS_PERSIST can be found in the overview of
3658  * this section.
3659  */
3660 public enum GtkTreeModelFlags
3661 {
3662 	/**
3663 	 * iterators survive all signals
3664 	 * emitted by the tree
3665 	 */
3666 	ITERS_PERSIST = 1,
3667 	/**
3668 	 * the model is a list only, and never
3669 	 * has children
3670 	 */
3671 	LIST_ONLY = 2,
3672 }
3673 alias GtkTreeModelFlags TreeModelFlags;
3674 
3675 /**
3676  * The sizing method the column uses to determine its width.  Please note
3677  * that @GTK_TREE_VIEW_COLUMN_AUTOSIZE are inefficient for large views, and
3678  * can make columns appear choppy.
3679  */
3680 public enum GtkTreeViewColumnSizing
3681 {
3682 	/**
3683 	 * Columns only get bigger in reaction to changes in the model
3684 	 */
3685 	GROW_ONLY = 0,
3686 	/**
3687 	 * Columns resize to be the optimal size everytime the model changes.
3688 	 */
3689 	AUTOSIZE = 1,
3690 	/**
3691 	 * Columns are a fixed numbers of pixels wide.
3692 	 */
3693 	FIXED = 2,
3694 }
3695 alias GtkTreeViewColumnSizing TreeViewColumnSizing;
3696 
3697 /**
3698  * An enum for determining where a dropped row goes.
3699  */
3700 public enum GtkTreeViewDropPosition
3701 {
3702 	/**
3703 	 * dropped row is inserted before
3704 	 */
3705 	BEFORE = 0,
3706 	/**
3707 	 * dropped row is inserted after
3708 	 */
3709 	AFTER = 1,
3710 	/**
3711 	 * dropped row becomes a child or is inserted before
3712 	 */
3713 	INTO_OR_BEFORE = 2,
3714 	/**
3715 	 * dropped row becomes a child or is inserted after
3716 	 */
3717 	INTO_OR_AFTER = 3,
3718 }
3719 alias GtkTreeViewDropPosition TreeViewDropPosition;
3720 
3721 /**
3722  * Used to indicate which grid lines to draw in a tree view.
3723  */
3724 public enum GtkTreeViewGridLines
3725 {
3726 	/**
3727 	 * No grid lines.
3728 	 */
3729 	NONE = 0,
3730 	/**
3731 	 * Horizontal grid lines.
3732 	 */
3733 	HORIZONTAL = 1,
3734 	/**
3735 	 * Vertical grid lines.
3736 	 */
3737 	VERTICAL = 2,
3738 	/**
3739 	 * Horizontal and vertical grid lines.
3740 	 */
3741 	BOTH = 3,
3742 }
3743 alias GtkTreeViewGridLines TreeViewGridLines;
3744 
3745 /**
3746  * These enumeration values are used by gtk_ui_manager_add_ui() to determine
3747  * what UI element to create.
3748  */
3749 public enum GtkUIManagerItemType
3750 {
3751 	/**
3752 	 * Pick the type of the UI element according to context.
3753 	 */
3754 	AUTO = 0,
3755 	/**
3756 	 * Create a menubar.
3757 	 */
3758 	MENUBAR = 1,
3759 	/**
3760 	 * Create a menu.
3761 	 */
3762 	MENU = 2,
3763 	/**
3764 	 * Create a toolbar.
3765 	 */
3766 	TOOLBAR = 4,
3767 	/**
3768 	 * Insert a placeholder.
3769 	 */
3770 	PLACEHOLDER = 8,
3771 	/**
3772 	 * Create a popup menu.
3773 	 */
3774 	POPUP = 16,
3775 	/**
3776 	 * Create a menuitem.
3777 	 */
3778 	MENUITEM = 32,
3779 	/**
3780 	 * Create a toolitem.
3781 	 */
3782 	TOOLITEM = 64,
3783 	/**
3784 	 * Create a separator.
3785 	 */
3786 	SEPARATOR = 128,
3787 	/**
3788 	 * Install an accelerator.
3789 	 */
3790 	ACCELERATOR = 256,
3791 	/**
3792 	 * Same as %GTK_UI_MANAGER_POPUP, but the
3793 	 * actions’ accelerators are shown.
3794 	 */
3795 	POPUP_WITH_ACCELS = 512,
3796 }
3797 alias GtkUIManagerItemType UIManagerItemType;
3798 
3799 /**
3800  * See also gtk_print_settings_set_paper_width().
3801  */
3802 public enum GtkUnit
3803 {
3804 	/**
3805 	 * No units.
3806 	 */
3807 	NONE = 0,
3808 	/**
3809 	 * Dimensions in points.
3810 	 */
3811 	POINTS = 1,
3812 	/**
3813 	 * Dimensions in inches.
3814 	 */
3815 	INCH = 2,
3816 	/**
3817 	 * Dimensions in millimeters
3818 	 */
3819 	MM = 3,
3820 }
3821 alias GtkUnit Unit;
3822 
3823 /**
3824  * Kinds of widget-specific help. Used by the ::show-help signal.
3825  */
3826 public enum GtkWidgetHelpType
3827 {
3828 	/**
3829 	 * Tooltip.
3830 	 */
3831 	TOOLTIP = 0,
3832 	/**
3833 	 * What’s this.
3834 	 */
3835 	WHATS_THIS = 1,
3836 }
3837 alias GtkWidgetHelpType WidgetHelpType;
3838 
3839 /**
3840  * Window placement can be influenced using this enumeration. Note that
3841  * using #GTK_WIN_POS_CENTER_ALWAYS is almost always a bad idea.
3842  * It won’t necessarily work well with all window managers or on all windowing systems.
3843  */
3844 public enum GtkWindowPosition
3845 {
3846 	/**
3847 	 * No influence is made on placement.
3848 	 */
3849 	NONE = 0,
3850 	/**
3851 	 * Windows should be placed in the center of the screen.
3852 	 */
3853 	CENTER = 1,
3854 	/**
3855 	 * Windows should be placed at the current mouse position.
3856 	 */
3857 	MOUSE = 2,
3858 	/**
3859 	 * Keep window centered as it changes size, etc.
3860 	 */
3861 	CENTER_ALWAYS = 3,
3862 	/**
3863 	 * Center the window on its transient
3864 	 * parent (see gtk_window_set_transient_for()).
3865 	 */
3866 	CENTER_ON_PARENT = 4,
3867 }
3868 alias GtkWindowPosition WindowPosition;
3869 
3870 /**
3871  * A #GtkWindow can be one of these types. Most things you’d consider a
3872  * “window” should have type #GTK_WINDOW_TOPLEVEL; windows with this type
3873  * are managed by the window manager and have a frame by default (call
3874  * gtk_window_set_decorated() to toggle the frame).  Windows with type
3875  * #GTK_WINDOW_POPUP are ignored by the window manager; window manager
3876  * keybindings won’t work on them, the window manager won’t decorate the
3877  * window with a frame, many GTK+ features that rely on the window
3878  * manager will not work (e.g. resize grips and
3879  * maximization/minimization). #GTK_WINDOW_POPUP is used to implement
3880  * widgets such as #GtkMenu or tooltips that you normally don’t think of
3881  * as windows per se. Nearly all windows should be #GTK_WINDOW_TOPLEVEL.
3882  * In particular, do not use #GTK_WINDOW_POPUP just to turn off
3883  * the window borders; use gtk_window_set_decorated() for that.
3884  */
3885 public enum GtkWindowType
3886 {
3887 	/**
3888 	 * A regular window, such as a dialog.
3889 	 */
3890 	TOPLEVEL = 0,
3891 	/**
3892 	 * A special window such as a tooltip.
3893 	 */
3894 	POPUP = 1,
3895 }
3896 alias GtkWindowType WindowType;
3897 
3898 /**
3899  * Describes a type of line wrapping.
3900  */
3901 public enum GtkWrapMode
3902 {
3903 	/**
3904 	 * do not wrap lines; just make the text area wider
3905 	 */
3906 	NONE = 0,
3907 	/**
3908 	 * wrap text, breaking lines anywhere the cursor can
3909 	 * appear (between characters, usually - if you want to be technical,
3910 	 * between graphemes, see pango_get_log_attrs())
3911 	 */
3912 	CHAR = 1,
3913 	/**
3914 	 * wrap text, breaking lines in between words
3915 	 */
3916 	WORD = 2,
3917 	/**
3918 	 * wrap text, breaking lines in between words, or if
3919 	 * that is not enough, also between graphemes
3920 	 */
3921 	WORD_CHAR = 3,
3922 }
3923 alias GtkWrapMode WrapMode;
3924 
3925 struct GtkAboutDialog
3926 {
3927 	GtkDialog parentInstance;
3928 	GtkAboutDialogPrivate* priv;
3929 }
3930 
3931 struct GtkAboutDialogClass
3932 {
3933 	GtkDialogClass parentClass;
3934 	/** */
3935 	extern(C) int function(GtkAboutDialog* dialog, const(char)* uri) activateLink;
3936 	/** */
3937 	extern(C) void function() GtkReserved1;
3938 	/** */
3939 	extern(C) void function() GtkReserved2;
3940 	/** */
3941 	extern(C) void function() GtkReserved3;
3942 	/** */
3943 	extern(C) void function() GtkReserved4;
3944 }
3945 
3946 struct GtkAboutDialogPrivate;
3947 
3948 struct GtkAccelGroup
3949 {
3950 	GObject parent;
3951 	GtkAccelGroupPrivate* priv;
3952 }
3953 
3954 struct GtkAccelGroupClass
3955 {
3956 	/**
3957 	 * The parent class.
3958 	 */
3959 	GObjectClass parentClass;
3960 	/** */
3961 	extern(C) void function(GtkAccelGroup* accelGroup, uint keyval, GdkModifierType modifier, GClosure* accelClosure) accelChanged;
3962 	/** */
3963 	extern(C) void function() GtkReserved1;
3964 	/** */
3965 	extern(C) void function() GtkReserved2;
3966 	/** */
3967 	extern(C) void function() GtkReserved3;
3968 	/** */
3969 	extern(C) void function() GtkReserved4;
3970 }
3971 
3972 struct GtkAccelGroupEntry
3973 {
3974 	GtkAccelKey key;
3975 	GClosure* closure;
3976 	GQuark accelPathQuark;
3977 }
3978 
3979 struct GtkAccelGroupPrivate;
3980 
3981 struct GtkAccelKey
3982 {
3983 	/**
3984 	 * The accelerator keyval
3985 	 */
3986 	uint accelKey;
3987 	/**
3988 	 * The accelerator modifiers
3989 	 */
3990 	GdkModifierType accelMods;
3991 	import std.bitmanip: bitfields;
3992 	mixin(bitfields!(
3993 		uint, "accelFlags", 16,
3994 		uint, "", 16
3995 	));
3996 }
3997 
3998 struct GtkAccelLabel
3999 {
4000 	GtkLabel label;
4001 	GtkAccelLabelPrivate* priv;
4002 }
4003 
4004 struct GtkAccelLabelClass
4005 {
4006 	GtkLabelClass parentClass;
4007 	char* signalQuote1;
4008 	char* signalQuote2;
4009 	char* modNameShift;
4010 	char* modNameControl;
4011 	char* modNameAlt;
4012 	char* modSeparator;
4013 	/** */
4014 	extern(C) void function() GtkReserved1;
4015 	/** */
4016 	extern(C) void function() GtkReserved2;
4017 	/** */
4018 	extern(C) void function() GtkReserved3;
4019 	/** */
4020 	extern(C) void function() GtkReserved4;
4021 }
4022 
4023 struct GtkAccelLabelPrivate;
4024 
4025 struct GtkAccelMap;
4026 
4027 struct GtkAccelMapClass;
4028 
4029 struct GtkAccessible
4030 {
4031 	AtkObject parent;
4032 	GtkAccessiblePrivate* priv;
4033 }
4034 
4035 struct GtkAccessibleClass
4036 {
4037 	AtkObjectClass parentClass;
4038 	/** */
4039 	extern(C) void function(GtkAccessible* accessible) connectWidgetDestroyed;
4040 	/** */
4041 	extern(C) void function(GtkAccessible* accessible) widgetSet;
4042 	/** */
4043 	extern(C) void function(GtkAccessible* accessible) widgetUnset;
4044 	/** */
4045 	extern(C) void function() GtkReserved3;
4046 	/** */
4047 	extern(C) void function() GtkReserved4;
4048 }
4049 
4050 struct GtkAccessiblePrivate;
4051 
4052 struct GtkAction
4053 {
4054 	GObject object;
4055 	GtkActionPrivate* privateData;
4056 }
4057 
4058 struct GtkActionBar
4059 {
4060 	GtkBin bin;
4061 }
4062 
4063 struct GtkActionBarClass
4064 {
4065 	GtkBinClass parentClass;
4066 	/** */
4067 	extern(C) void function() GtkReserved1;
4068 	/** */
4069 	extern(C) void function() GtkReserved2;
4070 	/** */
4071 	extern(C) void function() GtkReserved3;
4072 	/** */
4073 	extern(C) void function() GtkReserved4;
4074 }
4075 
4076 struct GtkActionBarPrivate;
4077 
4078 struct GtkActionClass
4079 {
4080 	/**
4081 	 * The parent class.
4082 	 */
4083 	GObjectClass parentClass;
4084 	/** */
4085 	extern(C) void function(GtkAction* action) activate;
4086 	GType menuItemType;
4087 	GType toolbarItemType;
4088 	/**
4089 	 *
4090 	 * Params:
4091 	 *     action = the action object
4092 	 * Return: a menu item connected to the action.
4093 	 */
4094 	extern(C) GtkWidget* function(GtkAction* action) createMenuItem;
4095 	/**
4096 	 *
4097 	 * Params:
4098 	 *     action = the action object
4099 	 * Return: a toolbar item connected to the action.
4100 	 */
4101 	extern(C) GtkWidget* function(GtkAction* action) createToolItem;
4102 	/** */
4103 	extern(C) void function(GtkAction* action, GtkWidget* proxy) connectProxy;
4104 	/** */
4105 	extern(C) void function(GtkAction* action, GtkWidget* proxy) disconnectProxy;
4106 	/**
4107 	 *
4108 	 * Params:
4109 	 *     action = a #GtkAction
4110 	 * Return: the menu item provided by the
4111 	 *     action, or %NULL.
4112 	 */
4113 	extern(C) GtkWidget* function(GtkAction* action) createMenu;
4114 	/** */
4115 	extern(C) void function() GtkReserved1;
4116 	/** */
4117 	extern(C) void function() GtkReserved2;
4118 	/** */
4119 	extern(C) void function() GtkReserved3;
4120 	/** */
4121 	extern(C) void function() GtkReserved4;
4122 }
4123 
4124 /**
4125  * #GtkActionEntry structs are used with gtk_action_group_add_actions() to
4126  * construct actions.
4127  */
4128 struct GtkActionEntry
4129 {
4130 	/**
4131 	 * The name of the action.
4132 	 */
4133 	const(char)* name;
4134 	/**
4135 	 * The stock id for the action, or the name of an icon from the
4136 	 * icon theme.
4137 	 */
4138 	const(char)* stockId;
4139 	/**
4140 	 * The label for the action. This field should typically be marked
4141 	 * for translation, see gtk_action_group_set_translation_domain(). If
4142 	 * @label is %NULL, the label of the stock item with id @stock_id is used.
4143 	 */
4144 	const(char)* label;
4145 	/**
4146 	 * The accelerator for the action, in the format understood by
4147 	 * gtk_accelerator_parse().
4148 	 */
4149 	const(char)* accelerator;
4150 	/**
4151 	 * The tooltip for the action. This field should typically be
4152 	 * marked for translation, see gtk_action_group_set_translation_domain().
4153 	 */
4154 	const(char)* tooltip;
4155 	/**
4156 	 * The function to call when the action is activated.
4157 	 */
4158 	GCallback callback;
4159 }
4160 
4161 struct GtkActionGroup
4162 {
4163 	GObject parent;
4164 	GtkActionGroupPrivate* priv;
4165 }
4166 
4167 struct GtkActionGroupClass
4168 {
4169 	/**
4170 	 * The parent class.
4171 	 */
4172 	GObjectClass parentClass;
4173 	/**
4174 	 *
4175 	 * Params:
4176 	 *     actionGroup = the action group
4177 	 *     actionName = the name of the action
4178 	 * Return: the action, or %NULL if no action by that name exists
4179 	 */
4180 	extern(C) GtkAction* function(GtkActionGroup* actionGroup, const(char)* actionName) getAction;
4181 	/** */
4182 	extern(C) void function() GtkReserved1;
4183 	/** */
4184 	extern(C) void function() GtkReserved2;
4185 	/** */
4186 	extern(C) void function() GtkReserved3;
4187 	/** */
4188 	extern(C) void function() GtkReserved4;
4189 }
4190 
4191 struct GtkActionGroupPrivate;
4192 
4193 struct GtkActionPrivate;
4194 
4195 struct GtkActionable;
4196 
4197 /**
4198  * The interface vtable for #GtkActionable.
4199  */
4200 struct GtkActionableInterface
4201 {
4202 	GTypeInterface gIface;
4203 	/**
4204 	 *
4205 	 * Params:
4206 	 *     actionable = a #GtkActionable widget
4207 	 * Return: the action name, or %NULL if none is set
4208 	 */
4209 	extern(C) const(char)* function(GtkActionable* actionable) getActionName;
4210 	/** */
4211 	extern(C) void function(GtkActionable* actionable, const(char)* actionName) setActionName;
4212 	/**
4213 	 *
4214 	 * Params:
4215 	 *     actionable = a #GtkActionable widget
4216 	 * Return: the current target value
4217 	 */
4218 	extern(C) GVariant* function(GtkActionable* actionable) getActionTargetValue;
4219 	/** */
4220 	extern(C) void function(GtkActionable* actionable, GVariant* targetValue) setActionTargetValue;
4221 }
4222 
4223 struct GtkActivatable;
4224 
4225 /**
4226  * > This method can be called with a %NULL action at times.
4227  *
4228  * Since: 2.16
4229  */
4230 struct GtkActivatableIface
4231 {
4232 	GTypeInterface gIface;
4233 	/** */
4234 	extern(C) void function(GtkActivatable* activatable, GtkAction* action, const(char)* propertyName) update;
4235 	/** */
4236 	extern(C) void function(GtkActivatable* activatable, GtkAction* action) syncActionProperties;
4237 }
4238 
4239 struct GtkAdjustment
4240 {
4241 	GObject parentInstance;
4242 	GtkAdjustmentPrivate* priv;
4243 }
4244 
4245 struct GtkAdjustmentClass
4246 {
4247 	GObjectClass parentClass;
4248 	/** */
4249 	extern(C) void function(GtkAdjustment* adjustment) changed;
4250 	/** */
4251 	extern(C) void function(GtkAdjustment* adjustment) valueChanged;
4252 	/** */
4253 	extern(C) void function() GtkReserved1;
4254 	/** */
4255 	extern(C) void function() GtkReserved2;
4256 	/** */
4257 	extern(C) void function() GtkReserved3;
4258 	/** */
4259 	extern(C) void function() GtkReserved4;
4260 }
4261 
4262 struct GtkAdjustmentPrivate;
4263 
4264 struct GtkAlignment
4265 {
4266 	GtkBin bin;
4267 	GtkAlignmentPrivate* priv;
4268 }
4269 
4270 struct GtkAlignmentClass
4271 {
4272 	/**
4273 	 * The parent class.
4274 	 */
4275 	GtkBinClass parentClass;
4276 	/** */
4277 	extern(C) void function() GtkReserved1;
4278 	/** */
4279 	extern(C) void function() GtkReserved2;
4280 	/** */
4281 	extern(C) void function() GtkReserved3;
4282 	/** */
4283 	extern(C) void function() GtkReserved4;
4284 }
4285 
4286 struct GtkAlignmentPrivate;
4287 
4288 struct GtkAppChooser;
4289 
4290 struct GtkAppChooserButton
4291 {
4292 	GtkComboBox parent;
4293 	GtkAppChooserButtonPrivate* priv;
4294 }
4295 
4296 struct GtkAppChooserButtonClass
4297 {
4298 	/**
4299 	 * The parent class.
4300 	 */
4301 	GtkComboBoxClass parentClass;
4302 	/** */
4303 	extern(C) void function(GtkAppChooserButton* self, const(char)* itemName) customItemActivated;
4304 	void*[16] padding;
4305 }
4306 
4307 struct GtkAppChooserButtonPrivate;
4308 
4309 struct GtkAppChooserDialog
4310 {
4311 	GtkDialog parent;
4312 	GtkAppChooserDialogPrivate* priv;
4313 }
4314 
4315 struct GtkAppChooserDialogClass
4316 {
4317 	/**
4318 	 * The parent class.
4319 	 */
4320 	GtkDialogClass parentClass;
4321 	void*[16] padding;
4322 }
4323 
4324 struct GtkAppChooserDialogPrivate;
4325 
4326 struct GtkAppChooserWidget
4327 {
4328 	GtkBox parent;
4329 	GtkAppChooserWidgetPrivate* priv;
4330 }
4331 
4332 struct GtkAppChooserWidgetClass
4333 {
4334 	/**
4335 	 * The parent class.
4336 	 */
4337 	GtkBoxClass parentClass;
4338 	/** */
4339 	extern(C) void function(GtkAppChooserWidget* self, GAppInfo* appInfo) applicationSelected;
4340 	/** */
4341 	extern(C) void function(GtkAppChooserWidget* self, GAppInfo* appInfo) applicationActivated;
4342 	/** */
4343 	extern(C) void function(GtkAppChooserWidget* self, GtkMenu* menu, GAppInfo* appInfo) populatePopup;
4344 	void*[16] padding;
4345 }
4346 
4347 struct GtkAppChooserWidgetPrivate;
4348 
4349 struct GtkApplication
4350 {
4351 	GApplication parent;
4352 	GtkApplicationPrivate* priv;
4353 }
4354 
4355 struct GtkApplicationClass
4356 {
4357 	/**
4358 	 * The parent class.
4359 	 */
4360 	GApplicationClass parentClass;
4361 	/** */
4362 	extern(C) void function(GtkApplication* application, GtkWindow* window) windowAdded;
4363 	/** */
4364 	extern(C) void function(GtkApplication* application, GtkWindow* window) windowRemoved;
4365 	void*[12] padding;
4366 }
4367 
4368 struct GtkApplicationPrivate;
4369 
4370 struct GtkApplicationWindow
4371 {
4372 	GtkWindow parentInstance;
4373 	GtkApplicationWindowPrivate* priv;
4374 }
4375 
4376 struct GtkApplicationWindowClass
4377 {
4378 	/**
4379 	 * The parent class.
4380 	 */
4381 	GtkWindowClass parentClass;
4382 	void*[14] padding;
4383 }
4384 
4385 struct GtkApplicationWindowPrivate;
4386 
4387 struct GtkArrow
4388 {
4389 	GtkMisc misc;
4390 	GtkArrowPrivate* priv;
4391 }
4392 
4393 struct GtkArrowAccessible
4394 {
4395 	GtkWidgetAccessible parent;
4396 	GtkArrowAccessiblePrivate* priv;
4397 }
4398 
4399 struct GtkArrowAccessibleClass
4400 {
4401 	GtkWidgetAccessibleClass parentClass;
4402 }
4403 
4404 struct GtkArrowAccessiblePrivate;
4405 
4406 struct GtkArrowClass
4407 {
4408 	GtkMiscClass parentClass;
4409 	/** */
4410 	extern(C) void function() GtkReserved1;
4411 	/** */
4412 	extern(C) void function() GtkReserved2;
4413 	/** */
4414 	extern(C) void function() GtkReserved3;
4415 	/** */
4416 	extern(C) void function() GtkReserved4;
4417 }
4418 
4419 struct GtkArrowPrivate;
4420 
4421 struct GtkAspectFrame
4422 {
4423 	GtkFrame frame;
4424 	GtkAspectFramePrivate* priv;
4425 }
4426 
4427 struct GtkAspectFrameClass
4428 {
4429 	/**
4430 	 * The parent class.
4431 	 */
4432 	GtkFrameClass parentClass;
4433 	/** */
4434 	extern(C) void function() GtkReserved1;
4435 	/** */
4436 	extern(C) void function() GtkReserved2;
4437 	/** */
4438 	extern(C) void function() GtkReserved3;
4439 	/** */
4440 	extern(C) void function() GtkReserved4;
4441 }
4442 
4443 struct GtkAspectFramePrivate;
4444 
4445 struct GtkAssistant
4446 {
4447 	GtkWindow parent;
4448 	GtkAssistantPrivate* priv;
4449 }
4450 
4451 struct GtkAssistantClass
4452 {
4453 	/**
4454 	 * The parent class.
4455 	 */
4456 	GtkWindowClass parentClass;
4457 	/** */
4458 	extern(C) void function(GtkAssistant* assistant, GtkWidget* page) prepare;
4459 	/** */
4460 	extern(C) void function(GtkAssistant* assistant) apply;
4461 	/** */
4462 	extern(C) void function(GtkAssistant* assistant) close;
4463 	/** */
4464 	extern(C) void function(GtkAssistant* assistant) cancel;
4465 	/** */
4466 	extern(C) void function() GtkReserved1;
4467 	/** */
4468 	extern(C) void function() GtkReserved2;
4469 	/** */
4470 	extern(C) void function() GtkReserved3;
4471 	/** */
4472 	extern(C) void function() GtkReserved4;
4473 	/** */
4474 	extern(C) void function() GtkReserved5;
4475 }
4476 
4477 struct GtkAssistantPrivate;
4478 
4479 struct GtkBin
4480 {
4481 	GtkContainer container;
4482 	GtkBinPrivate* priv;
4483 }
4484 
4485 struct GtkBinClass
4486 {
4487 	/**
4488 	 * The parent class.
4489 	 */
4490 	GtkContainerClass parentClass;
4491 	/** */
4492 	extern(C) void function() GtkReserved1;
4493 	/** */
4494 	extern(C) void function() GtkReserved2;
4495 	/** */
4496 	extern(C) void function() GtkReserved3;
4497 	/** */
4498 	extern(C) void function() GtkReserved4;
4499 }
4500 
4501 struct GtkBinPrivate;
4502 
4503 /**
4504  * A #GtkBindingArg holds the data associated with
4505  * an argument for a key binding signal emission as
4506  * stored in #GtkBindingSignal.
4507  */
4508 struct GtkBindingArg
4509 {
4510 	/**
4511 	 * implementation detail
4512 	 */
4513 	GType argType;
4514 	union D
4515 	{
4516 		glong longData;
4517 		double doubleData;
4518 		char* stringData;
4519 	}
4520 	D d;
4521 }
4522 
4523 /**
4524  * Each key binding element of a binding sets binding list is
4525  * represented by a GtkBindingEntry.
4526  */
4527 struct GtkBindingEntry
4528 {
4529 	/**
4530 	 * key value to match
4531 	 */
4532 	uint keyval;
4533 	/**
4534 	 * key modifiers to match
4535 	 */
4536 	GdkModifierType modifiers;
4537 	/**
4538 	 * binding set this entry belongs to
4539 	 */
4540 	GtkBindingSet* bindingSet;
4541 	import std.bitmanip: bitfields;
4542 	mixin(bitfields!(
4543 		uint, "destroyed", 1,
4544 		uint, "inEmission", 1,
4545 		uint, "marksUnbound", 1,
4546 		uint, "", 29
4547 	));
4548 	/**
4549 	 * linked list of entries maintained by binding set
4550 	 */
4551 	GtkBindingEntry* setNext;
4552 	/**
4553 	 * implementation detail
4554 	 */
4555 	GtkBindingEntry* hashNext;
4556 	/**
4557 	 * action signals of this entry
4558 	 */
4559 	GtkBindingSignal* signals;
4560 }
4561 
4562 struct GtkBindingSet
4563 {
4564 	/**
4565 	 * unique name of this binding set
4566 	 */
4567 	char* setName;
4568 	/**
4569 	 * unused
4570 	 */
4571 	int priority;
4572 	/**
4573 	 * unused
4574 	 */
4575 	GSList* widgetPathPspecs;
4576 	/**
4577 	 * unused
4578 	 */
4579 	GSList* widgetClassPspecs;
4580 	/**
4581 	 * unused
4582 	 */
4583 	GSList* classBranchPspecs;
4584 	/**
4585 	 * the key binding entries in this binding set
4586 	 */
4587 	GtkBindingEntry* entries;
4588 	/**
4589 	 * implementation detail
4590 	 */
4591 	GtkBindingEntry* current;
4592 	import std.bitmanip: bitfields;
4593 	mixin(bitfields!(
4594 		uint, "parsed", 1,
4595 		uint, "", 31
4596 	));
4597 }
4598 
4599 /**
4600  * A GtkBindingSignal stores the necessary information to
4601  * activate a widget in response to a key press via a signal
4602  * emission.
4603  */
4604 struct GtkBindingSignal
4605 {
4606 	/**
4607 	 * implementation detail
4608 	 */
4609 	GtkBindingSignal* next;
4610 	/**
4611 	 * the action signal to be emitted
4612 	 */
4613 	char* signalName;
4614 	/**
4615 	 * number of arguments specified for the signal
4616 	 */
4617 	uint nArgs;
4618 	/**
4619 	 * the arguments specified for the signal
4620 	 */
4621 	GtkBindingArg* args;
4622 }
4623 
4624 struct GtkBooleanCellAccessible
4625 {
4626 	GtkRendererCellAccessible parent;
4627 	GtkBooleanCellAccessiblePrivate* priv;
4628 }
4629 
4630 struct GtkBooleanCellAccessibleClass
4631 {
4632 	GtkRendererCellAccessibleClass parentClass;
4633 }
4634 
4635 struct GtkBooleanCellAccessiblePrivate;
4636 
4637 struct GtkBorder
4638 {
4639 	/**
4640 	 * The width of the left border
4641 	 */
4642 	short left;
4643 	/**
4644 	 * The width of the right border
4645 	 */
4646 	short right;
4647 	/**
4648 	 * The width of the top border
4649 	 */
4650 	short top;
4651 	/**
4652 	 * The width of the bottom border
4653 	 */
4654 	short bottom;
4655 }
4656 
4657 struct GtkBox
4658 {
4659 	GtkContainer container;
4660 	GtkBoxPrivate* priv;
4661 }
4662 
4663 struct GtkBoxClass
4664 {
4665 	/**
4666 	 * The parent class.
4667 	 */
4668 	GtkContainerClass parentClass;
4669 	/** */
4670 	extern(C) void function() GtkReserved1;
4671 	/** */
4672 	extern(C) void function() GtkReserved2;
4673 	/** */
4674 	extern(C) void function() GtkReserved3;
4675 	/** */
4676 	extern(C) void function() GtkReserved4;
4677 }
4678 
4679 struct GtkBoxPrivate;
4680 
4681 struct GtkBuildable;
4682 
4683 /**
4684  * The #GtkBuildableIface interface contains method that are
4685  * necessary to allow #GtkBuilder to construct an object from
4686  * a #GtkBuilder UI definition.
4687  */
4688 struct GtkBuildableIface
4689 {
4690 	/**
4691 	 * the parent class
4692 	 */
4693 	GTypeInterface gIface;
4694 	/** */
4695 	extern(C) void function(GtkBuildable* buildable, const(char)* name) setName;
4696 	/**
4697 	 *
4698 	 * Params:
4699 	 *     buildable = a #GtkBuildable
4700 	 * Return: the name set with gtk_buildable_set_name()
4701 	 */
4702 	extern(C) const(char)* function(GtkBuildable* buildable) getName;
4703 	/** */
4704 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, const(char)* type) addChild;
4705 	/** */
4706 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder, const(char)* name, GValue* value) setBuildableProperty;
4707 	/**
4708 	 *
4709 	 * Params:
4710 	 *     buildable = A #GtkBuildable
4711 	 *     builder = #GtkBuilder used to construct this object
4712 	 *     name = name of child to construct
4713 	 * Return: the constructed child
4714 	 */
4715 	extern(C) GObject* function(GtkBuildable* buildable, GtkBuilder* builder, const(char)* name) constructChild;
4716 	/**
4717 	 *
4718 	 * Params:
4719 	 *     buildable = a #GtkBuildable
4720 	 *     builder = a #GtkBuilder used to construct this object
4721 	 *     child = child object or %NULL for non-child tags
4722 	 *     tagname = name of tag
4723 	 *     parser = a #GMarkupParser to fill in
4724 	 *     data = return location for user data that will be passed in
4725 	 *         to parser functions
4726 	 * Return: %TRUE if a object has a custom implementation, %FALSE
4727 	 *     if it doesn't.
4728 	 */
4729 	extern(C) int function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, const(char)* tagname, GMarkupParser* parser, void** data) customTagStart;
4730 	/** */
4731 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, const(char)* tagname, void** data) customTagEnd;
4732 	/** */
4733 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, const(char)* tagname, void* data) customFinished;
4734 	/** */
4735 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder) parserFinished;
4736 	/**
4737 	 *
4738 	 * Params:
4739 	 *     buildable = a #GtkBuildable
4740 	 *     builder = a #GtkBuilder
4741 	 *     childname = name of child
4742 	 * Return: the internal child of the buildable object
4743 	 */
4744 	extern(C) GObject* function(GtkBuildable* buildable, GtkBuilder* builder, const(char)* childname) getInternalChild;
4745 }
4746 
4747 struct GtkBuilder
4748 {
4749 	GObject parentInstance;
4750 	GtkBuilderPrivate* priv;
4751 }
4752 
4753 struct GtkBuilderClass
4754 {
4755 	GObjectClass parentClass;
4756 	/**
4757 	 *
4758 	 * Params:
4759 	 *     builder = a #GtkBuilder
4760 	 *     typeName = type name to lookup
4761 	 * Return: the #GType found for @type_name or #G_TYPE_INVALID
4762 	 *     if no type was found
4763 	 */
4764 	extern(C) GType function(GtkBuilder* builder, const(char)* typeName) getTypeFromName;
4765 	/** */
4766 	extern(C) void function() GtkReserved1;
4767 	/** */
4768 	extern(C) void function() GtkReserved2;
4769 	/** */
4770 	extern(C) void function() GtkReserved3;
4771 	/** */
4772 	extern(C) void function() GtkReserved4;
4773 	/** */
4774 	extern(C) void function() GtkReserved5;
4775 	/** */
4776 	extern(C) void function() GtkReserved6;
4777 	/** */
4778 	extern(C) void function() GtkReserved7;
4779 	/** */
4780 	extern(C) void function() GtkReserved8;
4781 }
4782 
4783 struct GtkBuilderPrivate;
4784 
4785 struct GtkButton
4786 {
4787 	GtkBin bin;
4788 	GtkButtonPrivate* priv;
4789 }
4790 
4791 struct GtkButtonAccessible
4792 {
4793 	GtkContainerAccessible parent;
4794 	GtkButtonAccessiblePrivate* priv;
4795 }
4796 
4797 struct GtkButtonAccessibleClass
4798 {
4799 	GtkContainerAccessibleClass parentClass;
4800 }
4801 
4802 struct GtkButtonAccessiblePrivate;
4803 
4804 struct GtkButtonBox
4805 {
4806 	GtkBox box;
4807 	GtkButtonBoxPrivate* priv;
4808 }
4809 
4810 struct GtkButtonBoxClass
4811 {
4812 	/**
4813 	 * The parent class.
4814 	 */
4815 	GtkBoxClass parentClass;
4816 	/** */
4817 	extern(C) void function() GtkReserved1;
4818 	/** */
4819 	extern(C) void function() GtkReserved2;
4820 	/** */
4821 	extern(C) void function() GtkReserved3;
4822 	/** */
4823 	extern(C) void function() GtkReserved4;
4824 }
4825 
4826 struct GtkButtonBoxPrivate;
4827 
4828 struct GtkButtonClass
4829 {
4830 	/**
4831 	 * The parent class.
4832 	 */
4833 	GtkBinClass parentClass;
4834 	/** */
4835 	extern(C) void function(GtkButton* button) pressed;
4836 	/** */
4837 	extern(C) void function(GtkButton* button) released;
4838 	/** */
4839 	extern(C) void function(GtkButton* button) clicked;
4840 	/** */
4841 	extern(C) void function(GtkButton* button) enter;
4842 	/** */
4843 	extern(C) void function(GtkButton* button) leave;
4844 	/** */
4845 	extern(C) void function(GtkButton* button) activate;
4846 	/** */
4847 	extern(C) void function() GtkReserved1;
4848 	/** */
4849 	extern(C) void function() GtkReserved2;
4850 	/** */
4851 	extern(C) void function() GtkReserved3;
4852 	/** */
4853 	extern(C) void function() GtkReserved4;
4854 }
4855 
4856 struct GtkButtonPrivate;
4857 
4858 struct GtkCalendar
4859 {
4860 	GtkWidget widget;
4861 	GtkCalendarPrivate* priv;
4862 }
4863 
4864 struct GtkCalendarClass
4865 {
4866 	GtkWidgetClass parentClass;
4867 	/** */
4868 	extern(C) void function(GtkCalendar* calendar) monthChanged;
4869 	/** */
4870 	extern(C) void function(GtkCalendar* calendar) daySelected;
4871 	/** */
4872 	extern(C) void function(GtkCalendar* calendar) daySelectedDoubleClick;
4873 	/** */
4874 	extern(C) void function(GtkCalendar* calendar) prevMonth;
4875 	/** */
4876 	extern(C) void function(GtkCalendar* calendar) nextMonth;
4877 	/** */
4878 	extern(C) void function(GtkCalendar* calendar) prevYear;
4879 	/** */
4880 	extern(C) void function(GtkCalendar* calendar) nextYear;
4881 	/** */
4882 	extern(C) void function() GtkReserved1;
4883 	/** */
4884 	extern(C) void function() GtkReserved2;
4885 	/** */
4886 	extern(C) void function() GtkReserved3;
4887 	/** */
4888 	extern(C) void function() GtkReserved4;
4889 }
4890 
4891 struct GtkCalendarPrivate;
4892 
4893 struct GtkCellAccessible
4894 {
4895 	GtkAccessible parent;
4896 	GtkCellAccessiblePrivate* priv;
4897 }
4898 
4899 struct GtkCellAccessibleClass
4900 {
4901 	GtkAccessibleClass parentClass;
4902 	/** */
4903 	extern(C) void function(GtkCellAccessible* cell, int emitSignal) updateCache;
4904 }
4905 
4906 struct GtkCellAccessibleParent;
4907 
4908 struct GtkCellAccessibleParentIface
4909 {
4910 	GTypeInterface parent;
4911 	/** */
4912 	extern(C) void function(GtkCellAccessibleParent* parent, GtkCellAccessible* cell, int* x, int* y, int* width, int* height, AtkCoordType coordType) getCellExtents;
4913 	/** */
4914 	extern(C) void function(GtkCellAccessibleParent* parent, GtkCellAccessible* cell, GdkRectangle* cellRect) getCellArea;
4915 	/** */
4916 	extern(C) int function(GtkCellAccessibleParent* parent, GtkCellAccessible* cell) grabFocus;
4917 	/** */
4918 	extern(C) int function(GtkCellAccessibleParent* parent, GtkCellAccessible* cell) getChildIndex;
4919 	/** */
4920 	extern(C) GtkCellRendererState function(GtkCellAccessibleParent* parent, GtkCellAccessible* cell) getRendererState;
4921 	/** */
4922 	extern(C) void function(GtkCellAccessibleParent* parent, GtkCellAccessible* cell) expandCollapse;
4923 	/** */
4924 	extern(C) void function(GtkCellAccessibleParent* parent, GtkCellAccessible* cell) activate;
4925 	/** */
4926 	extern(C) void function(GtkCellAccessibleParent* parent, GtkCellAccessible* cell) edit;
4927 	/** */
4928 	extern(C) void function(GtkCellAccessibleParent* parent, GtkCellAccessible* cell, AtkRelationSet* relationset) updateRelationset;
4929 }
4930 
4931 struct GtkCellAccessiblePrivate;
4932 
4933 struct GtkCellArea
4934 {
4935 	GObject parentInstance;
4936 	GtkCellAreaPrivate* priv;
4937 }
4938 
4939 struct GtkCellAreaBox
4940 {
4941 	GtkCellArea parentInstance;
4942 	GtkCellAreaBoxPrivate* priv;
4943 }
4944 
4945 struct GtkCellAreaBoxClass
4946 {
4947 	GtkCellAreaClass parentClass;
4948 	/** */
4949 	extern(C) void function() GtkReserved1;
4950 	/** */
4951 	extern(C) void function() GtkReserved2;
4952 	/** */
4953 	extern(C) void function() GtkReserved3;
4954 	/** */
4955 	extern(C) void function() GtkReserved4;
4956 }
4957 
4958 struct GtkCellAreaBoxPrivate;
4959 
4960 struct GtkCellAreaClass
4961 {
4962 	GObjectClass parentClass;
4963 	/** */
4964 	extern(C) void function(GtkCellArea* area, GtkCellRenderer* renderer) add;
4965 	/** */
4966 	extern(C) void function(GtkCellArea* area, GtkCellRenderer* renderer) remove;
4967 	/** */
4968 	extern(C) void function(GtkCellArea* area, GtkCellCallback callback, void* callbackData) foreac;
4969 	/** */
4970 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, GdkRectangle* cellArea, GdkRectangle* backgroundArea, GtkCellAllocCallback callback, void* callbackData) foreachAlloc;
4971 	/**
4972 	 *
4973 	 * Params:
4974 	 *     area = a #GtkCellArea
4975 	 *     context = the #GtkCellAreaContext for this row of data.
4976 	 *     widget = the #GtkWidget that @area is rendering to
4977 	 *     event = the #GdkEvent to handle
4978 	 *     cellArea = the @widget relative coordinates for @area
4979 	 *     flags = the #GtkCellRendererState for @area in this row.
4980 	 * Return: %TRUE if the event was handled by @area.
4981 	 */
4982 	extern(C) int function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, GdkEvent* event, GdkRectangle* cellArea, GtkCellRendererState flags) event;
4983 	/** */
4984 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, cairo_t* cr, GdkRectangle* backgroundArea, GdkRectangle* cellArea, GtkCellRendererState flags, int paintFocus) render;
4985 	/** */
4986 	extern(C) void function(GtkCellArea* area, GtkTreeModel* treeModel, GtkTreeIter* iter, int isExpander, int isExpanded) applyAttributes;
4987 	/**
4988 	 *
4989 	 * Params:
4990 	 *     area = a #GtkCellArea
4991 	 * Return: a newly created #GtkCellAreaContext which can be used with @area.
4992 	 */
4993 	extern(C) GtkCellAreaContext* function(GtkCellArea* area) createContext;
4994 	/**
4995 	 *
4996 	 * Params:
4997 	 *     area = a #GtkCellArea
4998 	 *     context = the #GtkCellAreaContext to copy
4999 	 * Return: a newly created #GtkCellAreaContext copy of @context.
5000 	 */
5001 	extern(C) GtkCellAreaContext* function(GtkCellArea* area, GtkCellAreaContext* context) copyContext;
5002 	/**
5003 	 *
5004 	 * Params:
5005 	 *     area = a #GtkCellArea
5006 	 * Return: The #GtkSizeRequestMode preferred by @area.
5007 	 */
5008 	extern(C) GtkSizeRequestMode function(GtkCellArea* area) getRequestMode;
5009 	/** */
5010 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, int* minimumWidth, int* naturalWidth) getPreferredWidth;
5011 	/** */
5012 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, int width, int* minimumHeight, int* naturalHeight) getPreferredHeightForWidth;
5013 	/** */
5014 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, int* minimumHeight, int* naturalHeight) getPreferredHeight;
5015 	/** */
5016 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, int height, int* minimumWidth, int* naturalWidth) getPreferredWidthForHeight;
5017 	/** */
5018 	extern(C) void function(GtkCellArea* area, GtkCellRenderer* renderer, uint propertyId, GValue* value, GParamSpec* pspec) setCellProperty;
5019 	/** */
5020 	extern(C) void function(GtkCellArea* area, GtkCellRenderer* renderer, uint propertyId, GValue* value, GParamSpec* pspec) getCellProperty;
5021 	/**
5022 	 *
5023 	 * Params:
5024 	 *     area = a #GtkCellArea
5025 	 *     direction = the #GtkDirectionType
5026 	 * Return: %TRUE if focus remains inside @area as a result of this call.
5027 	 */
5028 	extern(C) int function(GtkCellArea* area, GtkDirectionType direction) focus;
5029 	/**
5030 	 *
5031 	 * Params:
5032 	 *     area = a #GtkCellArea
5033 	 * Return: whether @area can do anything when activated.
5034 	 */
5035 	extern(C) int function(GtkCellArea* area) isActivatable;
5036 	/**
5037 	 *
5038 	 * Params:
5039 	 *     area = a #GtkCellArea
5040 	 *     context = the #GtkCellAreaContext in context with the current row data
5041 	 *     widget = the #GtkWidget that @area is rendering on
5042 	 *     cellArea = the size and location of @area relative to @widget’s allocation
5043 	 *     flags = the #GtkCellRendererState flags for @area for this row of data.
5044 	 *     editOnly = if %TRUE then only cell renderers that are %GTK_CELL_RENDERER_MODE_EDITABLE
5045 	 *         will be activated.
5046 	 * Return: Whether @area was successfully activated.
5047 	 */
5048 	extern(C) int function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, GdkRectangle* cellArea, GtkCellRendererState flags, int editOnly) activate;
5049 	/** */
5050 	extern(C) void function() GtkReserved1;
5051 	/** */
5052 	extern(C) void function() GtkReserved2;
5053 	/** */
5054 	extern(C) void function() GtkReserved3;
5055 	/** */
5056 	extern(C) void function() GtkReserved4;
5057 	/** */
5058 	extern(C) void function() GtkReserved5;
5059 	/** */
5060 	extern(C) void function() GtkReserved6;
5061 	/** */
5062 	extern(C) void function() GtkReserved7;
5063 	/** */
5064 	extern(C) void function() GtkReserved8;
5065 }
5066 
5067 struct GtkCellAreaContext
5068 {
5069 	GObject parentInstance;
5070 	GtkCellAreaContextPrivate* priv;
5071 }
5072 
5073 struct GtkCellAreaContextClass
5074 {
5075 	GObjectClass parentClass;
5076 	/** */
5077 	extern(C) void function(GtkCellAreaContext* context, int width, int height) allocate;
5078 	/** */
5079 	extern(C) void function(GtkCellAreaContext* context) reset;
5080 	/** */
5081 	extern(C) void function(GtkCellAreaContext* context, int width, int* minimumHeight, int* naturalHeight) getPreferredHeightForWidth;
5082 	/** */
5083 	extern(C) void function(GtkCellAreaContext* context, int height, int* minimumWidth, int* naturalWidth) getPreferredWidthForHeight;
5084 	/** */
5085 	extern(C) void function() GtkReserved1;
5086 	/** */
5087 	extern(C) void function() GtkReserved2;
5088 	/** */
5089 	extern(C) void function() GtkReserved3;
5090 	/** */
5091 	extern(C) void function() GtkReserved4;
5092 	/** */
5093 	extern(C) void function() GtkReserved5;
5094 	/** */
5095 	extern(C) void function() GtkReserved6;
5096 }
5097 
5098 struct GtkCellAreaContextPrivate;
5099 
5100 struct GtkCellAreaPrivate;
5101 
5102 struct GtkCellEditable;
5103 
5104 struct GtkCellEditableIface
5105 {
5106 	GTypeInterface gIface;
5107 	/** */
5108 	extern(C) void function(GtkCellEditable* cellEditable) editingDone;
5109 	/** */
5110 	extern(C) void function(GtkCellEditable* cellEditable) removeWidget;
5111 	/** */
5112 	extern(C) void function(GtkCellEditable* cellEditable, GdkEvent* event) startEditing;
5113 }
5114 
5115 struct GtkCellLayout;
5116 
5117 struct GtkCellLayoutIface
5118 {
5119 	GTypeInterface gIface;
5120 	/** */
5121 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, int expand) packStart;
5122 	/** */
5123 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, int expand) packEnd;
5124 	/** */
5125 	extern(C) void function(GtkCellLayout* cellLayout) clear;
5126 	/** */
5127 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, const(char)* attribute, int column) addAttribute;
5128 	/** */
5129 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, GtkCellLayoutDataFunc func, void* funcData, GDestroyNotify destroy) setCellDataFunc;
5130 	/** */
5131 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell) clearAttributes;
5132 	/** */
5133 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, int position) reorder;
5134 	/**
5135 	 *
5136 	 * Params:
5137 	 *     cellLayout = a #GtkCellLayout
5138 	 * Return: a list of cell renderers. The list, but not the renderers has
5139 	 *     been newly allocated and should be freed with g_list_free()
5140 	 *     when no longer needed.
5141 	 */
5142 	extern(C) GList* function(GtkCellLayout* cellLayout) getCells;
5143 	/**
5144 	 *
5145 	 * Params:
5146 	 *     cellLayout = a #GtkCellLayout
5147 	 * Return: the cell area used by @cell_layout,
5148 	 *     or %NULL in case no cell area is used.
5149 	 */
5150 	extern(C) GtkCellArea* function(GtkCellLayout* cellLayout) getArea;
5151 }
5152 
5153 struct GtkCellRenderer
5154 {
5155 	GObject parentInstance;
5156 	GtkCellRendererPrivate* priv;
5157 }
5158 
5159 struct GtkCellRendererAccel
5160 {
5161 	GtkCellRendererText parent;
5162 	GtkCellRendererAccelPrivate* priv;
5163 }
5164 
5165 struct GtkCellRendererAccelClass
5166 {
5167 	GtkCellRendererTextClass parentClass;
5168 	/** */
5169 	extern(C) void function(GtkCellRendererAccel* accel, const(char)* pathString, uint accelKey, GdkModifierType accelMods, uint hardwareKeycode) accelEdited;
5170 	/** */
5171 	extern(C) void function(GtkCellRendererAccel* accel, const(char)* pathString) accelCleared;
5172 	/** */
5173 	extern(C) void function() GtkReserved0;
5174 	/** */
5175 	extern(C) void function() GtkReserved1;
5176 	/** */
5177 	extern(C) void function() GtkReserved2;
5178 	/** */
5179 	extern(C) void function() GtkReserved3;
5180 	/** */
5181 	extern(C) void function() GtkReserved4;
5182 }
5183 
5184 struct GtkCellRendererAccelPrivate;
5185 
5186 struct GtkCellRendererClass
5187 {
5188 	GObjectClass parentClass;
5189 	/**
5190 	 *
5191 	 * Params:
5192 	 *     cell = a #GtkCellRenderer    instance
5193 	 * Return: The #GtkSizeRequestMode preferred by this renderer.
5194 	 */
5195 	extern(C) GtkSizeRequestMode function(GtkCellRenderer* cell) getRequestMode;
5196 	/** */
5197 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, int* minimumSize, int* naturalSize) getPreferredWidth;
5198 	/** */
5199 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, int width, int* minimumHeight, int* naturalHeight) getPreferredHeightForWidth;
5200 	/** */
5201 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, int* minimumSize, int* naturalSize) getPreferredHeight;
5202 	/** */
5203 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, int height, int* minimumWidth, int* naturalWidth) getPreferredWidthForHeight;
5204 	/** */
5205 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, GtkCellRendererState flags, GdkRectangle* cellArea, GdkRectangle* alignedArea) getAlignedArea;
5206 	/** */
5207 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, GdkRectangle* cellArea, int* xOffset, int* yOffset, int* width, int* height) getSize;
5208 	/** */
5209 	extern(C) void function(GtkCellRenderer* cell, cairo_t* cr, GtkWidget* widget, GdkRectangle* backgroundArea, GdkRectangle* cellArea, GtkCellRendererState flags) render;
5210 	/**
5211 	 *
5212 	 * Params:
5213 	 *     cell = a #GtkCellRenderer
5214 	 *     event = a #GdkEvent
5215 	 *     widget = widget that received the event
5216 	 *     path = widget-dependent string representation of the event location;
5217 	 *         e.g. for #GtkTreeView, a string representation of #GtkTreePath
5218 	 *     backgroundArea = background area as passed to gtk_cell_renderer_render()
5219 	 *     cellArea = cell area as passed to gtk_cell_renderer_render()
5220 	 *     flags = render flags
5221 	 * Return: %TRUE if the event was consumed/handled
5222 	 */
5223 	extern(C) int function(GtkCellRenderer* cell, GdkEvent* event, GtkWidget* widget, const(char)* path, GdkRectangle* backgroundArea, GdkRectangle* cellArea, GtkCellRendererState flags) activate;
5224 	/**
5225 	 *
5226 	 * Params:
5227 	 *     cell = a #GtkCellRenderer
5228 	 *     event = a #GdkEvent
5229 	 *     widget = widget that received the event
5230 	 *     path = widget-dependent string representation of the event location;
5231 	 *         e.g. for #GtkTreeView, a string representation of #GtkTreePath
5232 	 *     backgroundArea = background area as passed to gtk_cell_renderer_render()
5233 	 *     cellArea = cell area as passed to gtk_cell_renderer_render()
5234 	 *     flags = render flags
5235 	 * Return: A new #GtkCellEditable, or %NULL
5236 	 */
5237 	extern(C) GtkCellEditable* function(GtkCellRenderer* cell, GdkEvent* event, GtkWidget* widget, const(char)* path, GdkRectangle* backgroundArea, GdkRectangle* cellArea, GtkCellRendererState flags) startEditing;
5238 	/** */
5239 	extern(C) void function(GtkCellRenderer* cell) editingCanceled;
5240 	/** */
5241 	extern(C) void function(GtkCellRenderer* cell, GtkCellEditable* editable, const(char)* path) editingStarted;
5242 	GtkCellRendererClassPrivate* priv;
5243 	/** */
5244 	extern(C) void function() GtkReserved2;
5245 	/** */
5246 	extern(C) void function() GtkReserved3;
5247 	/** */
5248 	extern(C) void function() GtkReserved4;
5249 }
5250 
5251 struct GtkCellRendererClassPrivate;
5252 
5253 struct GtkCellRendererCombo
5254 {
5255 	GtkCellRendererText parent;
5256 	GtkCellRendererComboPrivate* priv;
5257 }
5258 
5259 struct GtkCellRendererComboClass
5260 {
5261 	GtkCellRendererTextClass parent;
5262 	/** */
5263 	extern(C) void function() GtkReserved1;
5264 	/** */
5265 	extern(C) void function() GtkReserved2;
5266 	/** */
5267 	extern(C) void function() GtkReserved3;
5268 	/** */
5269 	extern(C) void function() GtkReserved4;
5270 }
5271 
5272 struct GtkCellRendererComboPrivate;
5273 
5274 struct GtkCellRendererPixbuf
5275 {
5276 	GtkCellRenderer parent;
5277 	GtkCellRendererPixbufPrivate* priv;
5278 }
5279 
5280 struct GtkCellRendererPixbufClass
5281 {
5282 	GtkCellRendererClass parentClass;
5283 	/** */
5284 	extern(C) void function() GtkReserved1;
5285 	/** */
5286 	extern(C) void function() GtkReserved2;
5287 	/** */
5288 	extern(C) void function() GtkReserved3;
5289 	/** */
5290 	extern(C) void function() GtkReserved4;
5291 }
5292 
5293 struct GtkCellRendererPixbufPrivate;
5294 
5295 struct GtkCellRendererPrivate;
5296 
5297 struct GtkCellRendererProgress
5298 {
5299 	GtkCellRenderer parentInstance;
5300 	GtkCellRendererProgressPrivate* priv;
5301 }
5302 
5303 struct GtkCellRendererProgressClass
5304 {
5305 	GtkCellRendererClass parentClass;
5306 	/** */
5307 	extern(C) void function() GtkReserved1;
5308 	/** */
5309 	extern(C) void function() GtkReserved2;
5310 	/** */
5311 	extern(C) void function() GtkReserved3;
5312 	/** */
5313 	extern(C) void function() GtkReserved4;
5314 }
5315 
5316 struct GtkCellRendererProgressPrivate;
5317 
5318 struct GtkCellRendererSpin
5319 {
5320 	GtkCellRendererText parent;
5321 	GtkCellRendererSpinPrivate* priv;
5322 }
5323 
5324 struct GtkCellRendererSpinClass
5325 {
5326 	GtkCellRendererTextClass parent;
5327 	/** */
5328 	extern(C) void function() GtkReserved1;
5329 	/** */
5330 	extern(C) void function() GtkReserved2;
5331 	/** */
5332 	extern(C) void function() GtkReserved3;
5333 	/** */
5334 	extern(C) void function() GtkReserved4;
5335 }
5336 
5337 struct GtkCellRendererSpinPrivate;
5338 
5339 struct GtkCellRendererSpinner
5340 {
5341 	GtkCellRenderer parent;
5342 	GtkCellRendererSpinnerPrivate* priv;
5343 }
5344 
5345 struct GtkCellRendererSpinnerClass
5346 {
5347 	GtkCellRendererClass parentClass;
5348 	/** */
5349 	extern(C) void function() GtkReserved1;
5350 	/** */
5351 	extern(C) void function() GtkReserved2;
5352 	/** */
5353 	extern(C) void function() GtkReserved3;
5354 	/** */
5355 	extern(C) void function() GtkReserved4;
5356 }
5357 
5358 struct GtkCellRendererSpinnerPrivate;
5359 
5360 struct GtkCellRendererText
5361 {
5362 	GtkCellRenderer parent;
5363 	GtkCellRendererTextPrivate* priv;
5364 }
5365 
5366 struct GtkCellRendererTextClass
5367 {
5368 	GtkCellRendererClass parentClass;
5369 	/** */
5370 	extern(C) void function(GtkCellRendererText* cellRendererText, const(char)* path, const(char)* newText) edited;
5371 	/** */
5372 	extern(C) void function() GtkReserved1;
5373 	/** */
5374 	extern(C) void function() GtkReserved2;
5375 	/** */
5376 	extern(C) void function() GtkReserved3;
5377 	/** */
5378 	extern(C) void function() GtkReserved4;
5379 }
5380 
5381 struct GtkCellRendererTextPrivate;
5382 
5383 struct GtkCellRendererToggle
5384 {
5385 	GtkCellRenderer parent;
5386 	GtkCellRendererTogglePrivate* priv;
5387 }
5388 
5389 struct GtkCellRendererToggleClass
5390 {
5391 	GtkCellRendererClass parentClass;
5392 	/** */
5393 	extern(C) void function(GtkCellRendererToggle* cellRendererToggle, const(char)* path) toggled;
5394 	/** */
5395 	extern(C) void function() GtkReserved1;
5396 	/** */
5397 	extern(C) void function() GtkReserved2;
5398 	/** */
5399 	extern(C) void function() GtkReserved3;
5400 	/** */
5401 	extern(C) void function() GtkReserved4;
5402 }
5403 
5404 struct GtkCellRendererTogglePrivate;
5405 
5406 struct GtkCellView
5407 {
5408 	GtkWidget parentInstance;
5409 	GtkCellViewPrivate* priv;
5410 }
5411 
5412 struct GtkCellViewClass
5413 {
5414 	/**
5415 	 * The parent class.
5416 	 */
5417 	GtkWidgetClass parentClass;
5418 	/** */
5419 	extern(C) void function() GtkReserved1;
5420 	/** */
5421 	extern(C) void function() GtkReserved2;
5422 	/** */
5423 	extern(C) void function() GtkReserved3;
5424 	/** */
5425 	extern(C) void function() GtkReserved4;
5426 }
5427 
5428 struct GtkCellViewPrivate;
5429 
5430 struct GtkCheckButton
5431 {
5432 	GtkToggleButton toggleButton;
5433 }
5434 
5435 struct GtkCheckButtonClass
5436 {
5437 	GtkToggleButtonClass parentClass;
5438 	/** */
5439 	extern(C) void function(GtkCheckButton* checkButton, cairo_t* cr) drawIndicator;
5440 	/** */
5441 	extern(C) void function() GtkReserved1;
5442 	/** */
5443 	extern(C) void function() GtkReserved2;
5444 	/** */
5445 	extern(C) void function() GtkReserved3;
5446 	/** */
5447 	extern(C) void function() GtkReserved4;
5448 }
5449 
5450 struct GtkCheckMenuItem
5451 {
5452 	GtkMenuItem menuItem;
5453 	GtkCheckMenuItemPrivate* priv;
5454 }
5455 
5456 struct GtkCheckMenuItemAccessible
5457 {
5458 	GtkMenuItemAccessible parent;
5459 	GtkCheckMenuItemAccessiblePrivate* priv;
5460 }
5461 
5462 struct GtkCheckMenuItemAccessibleClass
5463 {
5464 	GtkMenuItemAccessibleClass parentClass;
5465 }
5466 
5467 struct GtkCheckMenuItemAccessiblePrivate;
5468 
5469 struct GtkCheckMenuItemClass
5470 {
5471 	/**
5472 	 * The parent class.
5473 	 */
5474 	GtkMenuItemClass parentClass;
5475 	/** */
5476 	extern(C) void function(GtkCheckMenuItem* checkMenuItem) toggled;
5477 	/** */
5478 	extern(C) void function(GtkCheckMenuItem* checkMenuItem, cairo_t* cr) drawIndicator;
5479 	/** */
5480 	extern(C) void function() GtkReserved1;
5481 	/** */
5482 	extern(C) void function() GtkReserved2;
5483 	/** */
5484 	extern(C) void function() GtkReserved3;
5485 	/** */
5486 	extern(C) void function() GtkReserved4;
5487 }
5488 
5489 struct GtkCheckMenuItemPrivate;
5490 
5491 struct GtkClipboard;
5492 
5493 struct GtkColorButton
5494 {
5495 	GtkButton button;
5496 	GtkColorButtonPrivate* priv;
5497 }
5498 
5499 struct GtkColorButtonClass
5500 {
5501 	GtkButtonClass parentClass;
5502 	/** */
5503 	extern(C) void function(GtkColorButton* cp) colorSet;
5504 	/** */
5505 	extern(C) void function() GtkReserved1;
5506 	/** */
5507 	extern(C) void function() GtkReserved2;
5508 	/** */
5509 	extern(C) void function() GtkReserved3;
5510 	/** */
5511 	extern(C) void function() GtkReserved4;
5512 }
5513 
5514 struct GtkColorButtonPrivate;
5515 
5516 struct GtkColorChooser;
5517 
5518 struct GtkColorChooserDialog
5519 {
5520 	GtkDialog parentInstance;
5521 	GtkColorChooserDialogPrivate* priv;
5522 }
5523 
5524 struct GtkColorChooserDialogClass
5525 {
5526 	GtkDialogClass parentClass;
5527 	/** */
5528 	extern(C) void function() GtkReserved1;
5529 	/** */
5530 	extern(C) void function() GtkReserved2;
5531 	/** */
5532 	extern(C) void function() GtkReserved3;
5533 	/** */
5534 	extern(C) void function() GtkReserved4;
5535 }
5536 
5537 struct GtkColorChooserDialogPrivate;
5538 
5539 struct GtkColorChooserInterface
5540 {
5541 	GTypeInterface baseInterface;
5542 	/** */
5543 	extern(C) void function(GtkColorChooser* chooser, GdkRGBA* color) getRgba;
5544 	/** */
5545 	extern(C) void function(GtkColorChooser* chooser, GdkRGBA* color) setRgba;
5546 	/** */
5547 	extern(C) void function(GtkColorChooser* chooser, GtkOrientation orientation, int colorsPerLine, int nColors, GdkRGBA* colors) addPalette;
5548 	/** */
5549 	extern(C) void function(GtkColorChooser* chooser, GdkRGBA* color) colorActivated;
5550 	void*[12] padding;
5551 }
5552 
5553 struct GtkColorChooserWidget
5554 {
5555 	GtkBox parentInstance;
5556 	GtkColorChooserWidgetPrivate* priv;
5557 }
5558 
5559 struct GtkColorChooserWidgetClass
5560 {
5561 	/**
5562 	 * The parent class.
5563 	 */
5564 	GtkBoxClass parentClass;
5565 	/** */
5566 	extern(C) void function() GtkReserved1;
5567 	/** */
5568 	extern(C) void function() GtkReserved2;
5569 	/** */
5570 	extern(C) void function() GtkReserved3;
5571 	/** */
5572 	extern(C) void function() GtkReserved4;
5573 	/** */
5574 	extern(C) void function() GtkReserved5;
5575 	/** */
5576 	extern(C) void function() GtkReserved6;
5577 	/** */
5578 	extern(C) void function() GtkReserved7;
5579 	/** */
5580 	extern(C) void function() GtkReserved8;
5581 }
5582 
5583 struct GtkColorChooserWidgetPrivate;
5584 
5585 struct GtkColorSelection
5586 {
5587 	GtkBox parentInstance;
5588 	GtkColorSelectionPrivate* privateData;
5589 }
5590 
5591 struct GtkColorSelectionClass
5592 {
5593 	/**
5594 	 * The parent class.
5595 	 */
5596 	GtkBoxClass parentClass;
5597 	/** */
5598 	extern(C) void function(GtkColorSelection* colorSelection) colorChanged;
5599 	/** */
5600 	extern(C) void function() GtkReserved1;
5601 	/** */
5602 	extern(C) void function() GtkReserved2;
5603 	/** */
5604 	extern(C) void function() GtkReserved3;
5605 	/** */
5606 	extern(C) void function() GtkReserved4;
5607 }
5608 
5609 struct GtkColorSelectionDialog
5610 {
5611 	GtkDialog parentInstance;
5612 	GtkColorSelectionDialogPrivate* priv;
5613 }
5614 
5615 struct GtkColorSelectionDialogClass
5616 {
5617 	GtkDialogClass parentClass;
5618 	/** */
5619 	extern(C) void function() GtkReserved1;
5620 	/** */
5621 	extern(C) void function() GtkReserved2;
5622 	/** */
5623 	extern(C) void function() GtkReserved3;
5624 	/** */
5625 	extern(C) void function() GtkReserved4;
5626 }
5627 
5628 struct GtkColorSelectionDialogPrivate;
5629 
5630 struct GtkColorSelectionPrivate;
5631 
5632 struct GtkComboBox
5633 {
5634 	GtkBin parentInstance;
5635 	GtkComboBoxPrivate* priv;
5636 }
5637 
5638 struct GtkComboBoxAccessible
5639 {
5640 	GtkContainerAccessible parent;
5641 	GtkComboBoxAccessiblePrivate* priv;
5642 }
5643 
5644 struct GtkComboBoxAccessibleClass
5645 {
5646 	GtkContainerAccessibleClass parentClass;
5647 }
5648 
5649 struct GtkComboBoxAccessiblePrivate;
5650 
5651 struct GtkComboBoxClass
5652 {
5653 	/**
5654 	 * The parent class.
5655 	 */
5656 	GtkBinClass parentClass;
5657 	/** */
5658 	extern(C) void function(GtkComboBox* comboBox) changed;
5659 	/** */
5660 	extern(C) char* function(GtkComboBox* comboBox, const(char)* path) formatEntryText;
5661 	/** */
5662 	extern(C) void function() GtkReserved1;
5663 	/** */
5664 	extern(C) void function() GtkReserved2;
5665 	/** */
5666 	extern(C) void function() GtkReserved3;
5667 }
5668 
5669 struct GtkComboBoxPrivate;
5670 
5671 struct GtkComboBoxText
5672 {
5673 	GtkComboBox parentInstance;
5674 	GtkComboBoxTextPrivate* priv;
5675 }
5676 
5677 struct GtkComboBoxTextClass
5678 {
5679 	GtkComboBoxClass parentClass;
5680 	/** */
5681 	extern(C) void function() GtkReserved1;
5682 	/** */
5683 	extern(C) void function() GtkReserved2;
5684 	/** */
5685 	extern(C) void function() GtkReserved3;
5686 	/** */
5687 	extern(C) void function() GtkReserved4;
5688 }
5689 
5690 struct GtkComboBoxTextPrivate;
5691 
5692 struct GtkContainer
5693 {
5694 	GtkWidget widget;
5695 	GtkContainerPrivate* priv;
5696 }
5697 
5698 struct GtkContainerAccessible
5699 {
5700 	GtkWidgetAccessible parent;
5701 	GtkContainerAccessiblePrivate* priv;
5702 }
5703 
5704 struct GtkContainerAccessibleClass
5705 {
5706 	GtkWidgetAccessibleClass parentClass;
5707 	/** */
5708 	extern(C) int function(GtkContainer* container, GtkWidget* widget, void* data) addGtk;
5709 	/** */
5710 	extern(C) int function(GtkContainer* container, GtkWidget* widget, void* data) removeGtk;
5711 }
5712 
5713 struct GtkContainerAccessiblePrivate;
5714 
5715 struct GtkContainerCellAccessible
5716 {
5717 	GtkCellAccessible parent;
5718 	GtkContainerCellAccessiblePrivate* priv;
5719 }
5720 
5721 struct GtkContainerCellAccessibleClass
5722 {
5723 	GtkCellAccessibleClass parentClass;
5724 }
5725 
5726 struct GtkContainerCellAccessiblePrivate;
5727 
5728 struct GtkContainerClass
5729 {
5730 	/**
5731 	 * The parent class.
5732 	 */
5733 	GtkWidgetClass parentClass;
5734 	/** */
5735 	extern(C) void function(GtkContainer* container, GtkWidget* widget) add;
5736 	/** */
5737 	extern(C) void function(GtkContainer* container, GtkWidget* widget) remove;
5738 	/** */
5739 	extern(C) void function(GtkContainer* container) checkResize;
5740 	/** */
5741 	extern(C) void function(GtkContainer* container, int includeInternals, GtkCallback callback, void* callbackData) forall;
5742 	/** */
5743 	extern(C) void function(GtkContainer* container, GtkWidget* child) setFocusChild;
5744 	/**
5745 	 *
5746 	 * Params:
5747 	 *     container = a #GtkContainer
5748 	 * Return: a #GType.
5749 	 */
5750 	extern(C) GType function(GtkContainer* container) childType;
5751 	/** */
5752 	extern(C) char* function(GtkContainer* container, GtkWidget* child) compositeName;
5753 	/** */
5754 	extern(C) void function(GtkContainer* container, GtkWidget* child, uint propertyId, GValue* value, GParamSpec* pspec) setChildProperty;
5755 	/** */
5756 	extern(C) void function(GtkContainer* container, GtkWidget* child, uint propertyId, GValue* value, GParamSpec* pspec) getChildProperty;
5757 	/**
5758 	 *
5759 	 * Params:
5760 	 *     container = a #GtkContainer
5761 	 *     child = a child of @container
5762 	 * Return: A newly created #GtkWidgetPath
5763 	 */
5764 	extern(C) GtkWidgetPath* function(GtkContainer* container, GtkWidget* child) getPathForChild;
5765 	import std.bitmanip: bitfields;
5766 	mixin(bitfields!(
5767 		uint, "HandleBorderWidth", 1,
5768 		uint, "", 31
5769 	));
5770 	/** */
5771 	extern(C) void function() GtkReserved1;
5772 	/** */
5773 	extern(C) void function() GtkReserved2;
5774 	/** */
5775 	extern(C) void function() GtkReserved3;
5776 	/** */
5777 	extern(C) void function() GtkReserved4;
5778 	/** */
5779 	extern(C) void function() GtkReserved5;
5780 	/** */
5781 	extern(C) void function() GtkReserved6;
5782 	/** */
5783 	extern(C) void function() GtkReserved7;
5784 	/** */
5785 	extern(C) void function() GtkReserved8;
5786 }
5787 
5788 struct GtkContainerPrivate;
5789 
5790 struct GtkCssProvider
5791 {
5792 	GObject parentInstance;
5793 	GtkCssProviderPrivate* priv;
5794 }
5795 
5796 struct GtkCssProviderClass
5797 {
5798 	GObjectClass parentClass;
5799 	/** */
5800 	extern(C) void function(GtkCssProvider* provider, GtkCssSection* section, GError* error) parsingError;
5801 	/** */
5802 	extern(C) void function() GtkReserved2;
5803 	/** */
5804 	extern(C) void function() GtkReserved3;
5805 	/** */
5806 	extern(C) void function() GtkReserved4;
5807 }
5808 
5809 struct GtkCssProviderPrivate;
5810 
5811 struct GtkCssSection;
5812 
5813 struct GtkDialog
5814 {
5815 	GtkWindow window;
5816 	GtkDialogPrivate* priv;
5817 }
5818 
5819 struct GtkDialogClass
5820 {
5821 	/**
5822 	 * The parent class.
5823 	 */
5824 	GtkWindowClass parentClass;
5825 	/** */
5826 	extern(C) void function(GtkDialog* dialog, int responseId) response;
5827 	/** */
5828 	extern(C) void function(GtkDialog* dialog) close;
5829 	/** */
5830 	extern(C) void function() GtkReserved1;
5831 	/** */
5832 	extern(C) void function() GtkReserved2;
5833 	/** */
5834 	extern(C) void function() GtkReserved3;
5835 	/** */
5836 	extern(C) void function() GtkReserved4;
5837 }
5838 
5839 struct GtkDialogPrivate;
5840 
5841 struct GtkDrawingArea
5842 {
5843 	GtkWidget widget;
5844 	void* dummy;
5845 }
5846 
5847 struct GtkDrawingAreaClass
5848 {
5849 	GtkWidgetClass parentClass;
5850 	/** */
5851 	extern(C) void function() GtkReserved1;
5852 	/** */
5853 	extern(C) void function() GtkReserved2;
5854 	/** */
5855 	extern(C) void function() GtkReserved3;
5856 	/** */
5857 	extern(C) void function() GtkReserved4;
5858 }
5859 
5860 struct GtkEditable;
5861 
5862 struct GtkEditableInterface
5863 {
5864 	GTypeInterface baseIface;
5865 	/** */
5866 	extern(C) void function(GtkEditable* editable, const(char)* newText, int newTextLength, int* position) insertText;
5867 	/** */
5868 	extern(C) void function(GtkEditable* editable, int startPos, int endPos) deleteText;
5869 	/** */
5870 	extern(C) void function(GtkEditable* editable) changed;
5871 	/** */
5872 	extern(C) void function(GtkEditable* editable, const(char)* newText, int newTextLength, int* position) doInsertText;
5873 	/** */
5874 	extern(C) void function(GtkEditable* editable, int startPos, int endPos) doDeleteText;
5875 	/**
5876 	 *
5877 	 * Params:
5878 	 *     editable = a #GtkEditable
5879 	 *     startPos = start of text
5880 	 *     endPos = end of text
5881 	 * Return: a pointer to the contents of the widget as a
5882 	 *     string. This string is allocated by the #GtkEditable
5883 	 *     implementation and should be freed by the caller.
5884 	 */
5885 	extern(C) char* function(GtkEditable* editable, int startPos, int endPos) getChars;
5886 	/** */
5887 	extern(C) void function(GtkEditable* editable, int startPos, int endPos) setSelectionBounds;
5888 	/**
5889 	 *
5890 	 * Params:
5891 	 *     editable = a #GtkEditable
5892 	 *     startPos = location to store the starting position, or %NULL
5893 	 *     endPos = location to store the end position, or %NULL
5894 	 * Return: %TRUE if an area is selected, %FALSE otherwise
5895 	 */
5896 	extern(C) int function(GtkEditable* editable, int* startPos, int* endPos) getSelectionBounds;
5897 	/** */
5898 	extern(C) void function(GtkEditable* editable, int position) setPosition;
5899 	/**
5900 	 *
5901 	 * Params:
5902 	 *     editable = a #GtkEditable
5903 	 * Return: the cursor position
5904 	 */
5905 	extern(C) int function(GtkEditable* editable) getPosition;
5906 }
5907 
5908 struct GtkEntry
5909 {
5910 	GtkWidget parentInstance;
5911 	GtkEntryPrivate* priv;
5912 }
5913 
5914 struct GtkEntryAccessible
5915 {
5916 	GtkWidgetAccessible parent;
5917 	GtkEntryAccessiblePrivate* priv;
5918 }
5919 
5920 struct GtkEntryAccessibleClass
5921 {
5922 	GtkWidgetAccessibleClass parentClass;
5923 }
5924 
5925 struct GtkEntryAccessiblePrivate;
5926 
5927 struct GtkEntryBuffer
5928 {
5929 	GObject parentInstance;
5930 	GtkEntryBufferPrivate* priv;
5931 }
5932 
5933 struct GtkEntryBufferClass
5934 {
5935 	GObjectClass parentClass;
5936 	/** */
5937 	extern(C) void function(GtkEntryBuffer* buffer, uint position, const(char)* chars, uint nChars) insertedText;
5938 	/** */
5939 	extern(C) void function(GtkEntryBuffer* buffer, uint position, uint nChars) deletedText;
5940 	/** */
5941 	extern(C) const(char)* function(GtkEntryBuffer* buffer, size_t* nBytes) getText;
5942 	/**
5943 	 *
5944 	 * Params:
5945 	 *     buffer = a #GtkEntryBuffer
5946 	 * Return: The number of characters in the buffer.
5947 	 */
5948 	extern(C) uint function(GtkEntryBuffer* buffer) getLength;
5949 	/**
5950 	 *
5951 	 * Params:
5952 	 *     buffer = a #GtkEntryBuffer
5953 	 *     position = the position at which to insert text.
5954 	 *     chars = the text to insert into the buffer.
5955 	 *     nChars = the length of the text in characters, or -1
5956 	 * Return: The number of characters actually inserted.
5957 	 */
5958 	extern(C) uint function(GtkEntryBuffer* buffer, uint position, const(char)* chars, uint nChars) insertText;
5959 	/**
5960 	 *
5961 	 * Params:
5962 	 *     buffer = a #GtkEntryBuffer
5963 	 *     position = position at which to delete text
5964 	 *     nChars = number of characters to delete
5965 	 * Return: The number of characters deleted.
5966 	 */
5967 	extern(C) uint function(GtkEntryBuffer* buffer, uint position, uint nChars) deleteText;
5968 	/** */
5969 	extern(C) void function() GtkReserved1;
5970 	/** */
5971 	extern(C) void function() GtkReserved2;
5972 	/** */
5973 	extern(C) void function() GtkReserved3;
5974 	/** */
5975 	extern(C) void function() GtkReserved4;
5976 	/** */
5977 	extern(C) void function() GtkReserved5;
5978 	/** */
5979 	extern(C) void function() GtkReserved6;
5980 	/** */
5981 	extern(C) void function() GtkReserved7;
5982 	/** */
5983 	extern(C) void function() GtkReserved8;
5984 }
5985 
5986 struct GtkEntryBufferPrivate;
5987 
5988 /**
5989  * Class structure for #GtkEntry. All virtual functions have a default
5990  * implementation. Derived classes may set the virtual function pointers for the
5991  * signal handlers to %NULL, but must keep @get_text_area_size and
5992  * @get_frame_size non-%NULL; either use the default implementation, or provide
5993  * a custom one.
5994  */
5995 struct GtkEntryClass
5996 {
5997 	/**
5998 	 * The parent class.
5999 	 */
6000 	GtkWidgetClass parentClass;
6001 	/** */
6002 	extern(C) void function(GtkEntry* entry, GtkWidget* popup) populatePopup;
6003 	/** */
6004 	extern(C) void function(GtkEntry* entry) activate;
6005 	/** */
6006 	extern(C) void function(GtkEntry* entry, GtkMovementStep step, int count, int extendSelection) moveCursor;
6007 	/** */
6008 	extern(C) void function(GtkEntry* entry, const(char)* str) insertAtCursor;
6009 	/** */
6010 	extern(C) void function(GtkEntry* entry, GtkDeleteType type, int count) deleteFromCursor;
6011 	/** */
6012 	extern(C) void function(GtkEntry* entry) backspace;
6013 	/** */
6014 	extern(C) void function(GtkEntry* entry) cutClipboard;
6015 	/** */
6016 	extern(C) void function(GtkEntry* entry) copyClipboard;
6017 	/** */
6018 	extern(C) void function(GtkEntry* entry) pasteClipboard;
6019 	/** */
6020 	extern(C) void function(GtkEntry* entry) toggleOverwrite;
6021 	/** */
6022 	extern(C) void function(GtkEntry* entry, int* x, int* y, int* width, int* height) getTextAreaSize;
6023 	/** */
6024 	extern(C) void function(GtkEntry* entry, int* x, int* y, int* width, int* height) getFrameSize;
6025 	/** */
6026 	extern(C) void function() GtkReserved1;
6027 	/** */
6028 	extern(C) void function() GtkReserved2;
6029 	/** */
6030 	extern(C) void function() GtkReserved3;
6031 	/** */
6032 	extern(C) void function() GtkReserved4;
6033 	/** */
6034 	extern(C) void function() GtkReserved5;
6035 	/** */
6036 	extern(C) void function() GtkReserved6;
6037 	/** */
6038 	extern(C) void function() GtkReserved7;
6039 }
6040 
6041 struct GtkEntryCompletion
6042 {
6043 	GObject parentInstance;
6044 	GtkEntryCompletionPrivate* priv;
6045 }
6046 
6047 struct GtkEntryCompletionClass
6048 {
6049 	GObjectClass parentClass;
6050 	/** */
6051 	extern(C) int function(GtkEntryCompletion* completion, GtkTreeModel* model, GtkTreeIter* iter) matchSelected;
6052 	/** */
6053 	extern(C) void function(GtkEntryCompletion* completion, int index) actionActivated;
6054 	/** */
6055 	extern(C) int function(GtkEntryCompletion* completion, const(char)* prefix) insertPrefix;
6056 	/** */
6057 	extern(C) int function(GtkEntryCompletion* completion, GtkTreeModel* model, GtkTreeIter* iter) cursorOnMatch;
6058 	/** */
6059 	extern(C) void function(GtkEntryCompletion* completion) noMatches;
6060 	/** */
6061 	extern(C) void function() GtkReserved0;
6062 	/** */
6063 	extern(C) void function() GtkReserved1;
6064 	/** */
6065 	extern(C) void function() GtkReserved2;
6066 }
6067 
6068 struct GtkEntryCompletionPrivate;
6069 
6070 
6071 struct GtkEntryPrivate;
6072 
6073 struct GtkEventBox
6074 {
6075 	GtkBin bin;
6076 	GtkEventBoxPrivate* priv;
6077 }
6078 
6079 struct GtkEventBoxClass
6080 {
6081 	/**
6082 	 * The parent class.
6083 	 */
6084 	GtkBinClass parentClass;
6085 	/** */
6086 	extern(C) void function() GtkReserved1;
6087 	/** */
6088 	extern(C) void function() GtkReserved2;
6089 	/** */
6090 	extern(C) void function() GtkReserved3;
6091 	/** */
6092 	extern(C) void function() GtkReserved4;
6093 }
6094 
6095 struct GtkEventBoxPrivate;
6096 
6097 struct GtkEventController;
6098 
6099 struct GtkEventControllerClass;
6100 
6101 struct GtkExpander
6102 {
6103 	GtkBin bin;
6104 	GtkExpanderPrivate* priv;
6105 }
6106 
6107 struct GtkExpanderAccessible
6108 {
6109 	GtkContainerAccessible parent;
6110 	GtkExpanderAccessiblePrivate* priv;
6111 }
6112 
6113 struct GtkExpanderAccessibleClass
6114 {
6115 	GtkContainerAccessibleClass parentClass;
6116 }
6117 
6118 struct GtkExpanderAccessiblePrivate;
6119 
6120 struct GtkExpanderClass
6121 {
6122 	/**
6123 	 * The parent class.
6124 	 */
6125 	GtkBinClass parentClass;
6126 	/** */
6127 	extern(C) void function(GtkExpander* expander) activate;
6128 	/** */
6129 	extern(C) void function() GtkReserved1;
6130 	/** */
6131 	extern(C) void function() GtkReserved2;
6132 	/** */
6133 	extern(C) void function() GtkReserved3;
6134 	/** */
6135 	extern(C) void function() GtkReserved4;
6136 }
6137 
6138 struct GtkExpanderPrivate;
6139 
6140 struct GtkFileChooser;
6141 
6142 struct GtkFileChooserButton
6143 {
6144 	GtkBox parent;
6145 	GtkFileChooserButtonPrivate* priv;
6146 }
6147 
6148 struct GtkFileChooserButtonClass
6149 {
6150 	/**
6151 	 * The parent class.
6152 	 */
6153 	GtkBoxClass parentClass;
6154 	/** */
6155 	extern(C) void function(GtkFileChooserButton* fc) fileSet;
6156 	void* GtkReserved1;
6157 	void* GtkReserved2;
6158 	void* GtkReserved3;
6159 	void* GtkReserved4;
6160 }
6161 
6162 struct GtkFileChooserButtonPrivate;
6163 
6164 struct GtkFileChooserDialog
6165 {
6166 	GtkDialog parentInstance;
6167 	GtkFileChooserDialogPrivate* priv;
6168 }
6169 
6170 struct GtkFileChooserDialogClass
6171 {
6172 	GtkDialogClass parentClass;
6173 	/** */
6174 	extern(C) void function() GtkReserved1;
6175 	/** */
6176 	extern(C) void function() GtkReserved2;
6177 	/** */
6178 	extern(C) void function() GtkReserved3;
6179 	/** */
6180 	extern(C) void function() GtkReserved4;
6181 }
6182 
6183 struct GtkFileChooserDialogPrivate;
6184 
6185 struct GtkFileChooserNative;
6186 
6187 struct GtkFileChooserNativeClass
6188 {
6189 	GtkNativeDialogClass parentClass;
6190 }
6191 
6192 struct GtkFileChooserWidget
6193 {
6194 	GtkBox parentInstance;
6195 	GtkFileChooserWidgetPrivate* priv;
6196 }
6197 
6198 struct GtkFileChooserWidgetClass
6199 {
6200 	/**
6201 	 * The parent class.
6202 	 */
6203 	GtkBoxClass parentClass;
6204 	/** */
6205 	extern(C) void function() GtkReserved1;
6206 	/** */
6207 	extern(C) void function() GtkReserved2;
6208 	/** */
6209 	extern(C) void function() GtkReserved3;
6210 	/** */
6211 	extern(C) void function() GtkReserved4;
6212 }
6213 
6214 struct GtkFileChooserWidgetPrivate;
6215 
6216 struct GtkFileFilter;
6217 
6218 /**
6219  * A #GtkFileFilterInfo-struct is used to pass information about the
6220  * tested file to gtk_file_filter_filter().
6221  */
6222 struct GtkFileFilterInfo
6223 {
6224 	/**
6225 	 * Flags indicating which of the following fields need
6226 	 * are filled
6227 	 */
6228 	GtkFileFilterFlags contains;
6229 	/**
6230 	 * the filename of the file being tested
6231 	 */
6232 	const(char)* filename;
6233 	/**
6234 	 * the URI for the file being tested
6235 	 */
6236 	const(char)* uri;
6237 	/**
6238 	 * the string that will be used to display the file
6239 	 * in the file chooser
6240 	 */
6241 	const(char)* displayName;
6242 	/**
6243 	 * the mime type of the file
6244 	 */
6245 	const(char)* mimeType;
6246 }
6247 
6248 struct GtkFixed
6249 {
6250 	GtkContainer container;
6251 	GtkFixedPrivate* priv;
6252 }
6253 
6254 struct GtkFixedChild
6255 {
6256 	GtkWidget* widget;
6257 	int x;
6258 	int y;
6259 }
6260 
6261 struct GtkFixedClass
6262 {
6263 	GtkContainerClass parentClass;
6264 	/** */
6265 	extern(C) void function() GtkReserved1;
6266 	/** */
6267 	extern(C) void function() GtkReserved2;
6268 	/** */
6269 	extern(C) void function() GtkReserved3;
6270 	/** */
6271 	extern(C) void function() GtkReserved4;
6272 }
6273 
6274 struct GtkFixedPrivate;
6275 
6276 struct GtkFlowBox
6277 {
6278 	GtkContainer container;
6279 }
6280 
6281 struct GtkFlowBoxAccessible
6282 {
6283 	GtkContainerAccessible parent;
6284 	GtkFlowBoxAccessiblePrivate* priv;
6285 }
6286 
6287 struct GtkFlowBoxAccessibleClass
6288 {
6289 	GtkContainerAccessibleClass parentClass;
6290 }
6291 
6292 struct GtkFlowBoxAccessiblePrivate;
6293 
6294 struct GtkFlowBoxChild
6295 {
6296 	GtkBin parentInstance;
6297 }
6298 
6299 struct GtkFlowBoxChildAccessible
6300 {
6301 	GtkContainerAccessible parent;
6302 }
6303 
6304 struct GtkFlowBoxChildAccessibleClass
6305 {
6306 	GtkContainerAccessibleClass parentClass;
6307 }
6308 
6309 struct GtkFlowBoxChildClass
6310 {
6311 	GtkBinClass parentClass;
6312 	/** */
6313 	extern(C) void function(GtkFlowBoxChild* child) activate;
6314 	/** */
6315 	extern(C) void function() GtkReserved1;
6316 	/** */
6317 	extern(C) void function() GtkReserved2;
6318 }
6319 
6320 struct GtkFlowBoxClass
6321 {
6322 	GtkContainerClass parentClass;
6323 	/** */
6324 	extern(C) void function(GtkFlowBox* box, GtkFlowBoxChild* child) childActivated;
6325 	/** */
6326 	extern(C) void function(GtkFlowBox* box) selectedChildrenChanged;
6327 	/** */
6328 	extern(C) void function(GtkFlowBox* box) activateCursorChild;
6329 	/** */
6330 	extern(C) void function(GtkFlowBox* box) toggleCursorChild;
6331 	/** */
6332 	extern(C) int function(GtkFlowBox* box, GtkMovementStep step, int count) moveCursor;
6333 	/** */
6334 	extern(C) void function(GtkFlowBox* box) selectAll;
6335 	/** */
6336 	extern(C) void function(GtkFlowBox* box) unselectAll;
6337 	/** */
6338 	extern(C) void function() GtkReserved1;
6339 	/** */
6340 	extern(C) void function() GtkReserved2;
6341 	/** */
6342 	extern(C) void function() GtkReserved3;
6343 	/** */
6344 	extern(C) void function() GtkReserved4;
6345 	/** */
6346 	extern(C) void function() GtkReserved5;
6347 	/** */
6348 	extern(C) void function() GtkReserved6;
6349 }
6350 
6351 struct GtkFontButton
6352 {
6353 	GtkButton button;
6354 	GtkFontButtonPrivate* priv;
6355 }
6356 
6357 struct GtkFontButtonClass
6358 {
6359 	GtkButtonClass parentClass;
6360 	/** */
6361 	extern(C) void function(GtkFontButton* gfp) fontSet;
6362 	/** */
6363 	extern(C) void function() GtkReserved1;
6364 	/** */
6365 	extern(C) void function() GtkReserved2;
6366 	/** */
6367 	extern(C) void function() GtkReserved3;
6368 	/** */
6369 	extern(C) void function() GtkReserved4;
6370 }
6371 
6372 struct GtkFontButtonPrivate;
6373 
6374 struct GtkFontChooser;
6375 
6376 struct GtkFontChooserDialog
6377 {
6378 	GtkDialog parentInstance;
6379 	GtkFontChooserDialogPrivate* priv;
6380 }
6381 
6382 struct GtkFontChooserDialogClass
6383 {
6384 	/**
6385 	 * The parent class.
6386 	 */
6387 	GtkDialogClass parentClass;
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 
6398 struct GtkFontChooserDialogPrivate;
6399 
6400 struct GtkFontChooserIface
6401 {
6402 	GTypeInterface baseIface;
6403 	/**
6404 	 *
6405 	 * Params:
6406 	 *     fontchooser = a #GtkFontChooser
6407 	 * Return: A #PangoFontFamily representing the
6408 	 *     selected font family, or %NULL. The returned object is owned by @fontchooser
6409 	 *     and must not be modified or freed.
6410 	 */
6411 	extern(C) PangoFontFamily* function(GtkFontChooser* fontchooser) getFontFamily;
6412 	/**
6413 	 *
6414 	 * Params:
6415 	 *     fontchooser = a #GtkFontChooser
6416 	 * Return: A #PangoFontFace representing the
6417 	 *     selected font group details, or %NULL. The returned object is owned by
6418 	 *     @fontchooser and must not be modified or freed.
6419 	 */
6420 	extern(C) PangoFontFace* function(GtkFontChooser* fontchooser) getFontFace;
6421 	/**
6422 	 *
6423 	 * Params:
6424 	 *     fontchooser = a #GtkFontChooser
6425 	 * Return: A n integer representing the selected font size,
6426 	 *     or -1 if no font size is selected.
6427 	 */
6428 	extern(C) int function(GtkFontChooser* fontchooser) getFontSize;
6429 	/** */
6430 	extern(C) void function(GtkFontChooser* fontchooser, GtkFontFilterFunc filter, void* userData, GDestroyNotify destroy) setFilterFunc;
6431 	/** */
6432 	extern(C) void function(GtkFontChooser* chooser, const(char)* fontname) fontActivated;
6433 	/** */
6434 	extern(C) void function(GtkFontChooser* fontchooser, PangoFontMap* fontmap) setFontMap;
6435 	/**
6436 	 *
6437 	 * Params:
6438 	 *     fontchooser = a #GtkFontChooser
6439 	 * Return: a #PangoFontMap, or %NULL
6440 	 */
6441 	extern(C) PangoFontMap* function(GtkFontChooser* fontchooser) getFontMap;
6442 	void*[10] padding;
6443 }
6444 
6445 struct GtkFontChooserWidget
6446 {
6447 	GtkBox parentInstance;
6448 	GtkFontChooserWidgetPrivate* priv;
6449 }
6450 
6451 struct GtkFontChooserWidgetClass
6452 {
6453 	/**
6454 	 * The parent class.
6455 	 */
6456 	GtkBoxClass parentClass;
6457 	/** */
6458 	extern(C) void function() GtkReserved1;
6459 	/** */
6460 	extern(C) void function() GtkReserved2;
6461 	/** */
6462 	extern(C) void function() GtkReserved3;
6463 	/** */
6464 	extern(C) void function() GtkReserved4;
6465 	/** */
6466 	extern(C) void function() GtkReserved5;
6467 	/** */
6468 	extern(C) void function() GtkReserved6;
6469 	/** */
6470 	extern(C) void function() GtkReserved7;
6471 	/** */
6472 	extern(C) void function() GtkReserved8;
6473 }
6474 
6475 struct GtkFontChooserWidgetPrivate;
6476 
6477 struct GtkFontSelection
6478 {
6479 	GtkBox parentInstance;
6480 	GtkFontSelectionPrivate* priv;
6481 }
6482 
6483 struct GtkFontSelectionClass
6484 {
6485 	GtkBoxClass parentClass;
6486 	/** */
6487 	extern(C) void function() GtkReserved1;
6488 	/** */
6489 	extern(C) void function() GtkReserved2;
6490 	/** */
6491 	extern(C) void function() GtkReserved3;
6492 	/** */
6493 	extern(C) void function() GtkReserved4;
6494 }
6495 
6496 struct GtkFontSelectionDialog
6497 {
6498 	GtkDialog parentInstance;
6499 	GtkFontSelectionDialogPrivate* priv;
6500 }
6501 
6502 struct GtkFontSelectionDialogClass
6503 {
6504 	GtkDialogClass parentClass;
6505 	/** */
6506 	extern(C) void function() GtkReserved1;
6507 	/** */
6508 	extern(C) void function() GtkReserved2;
6509 	/** */
6510 	extern(C) void function() GtkReserved3;
6511 	/** */
6512 	extern(C) void function() GtkReserved4;
6513 }
6514 
6515 struct GtkFontSelectionDialogPrivate;
6516 
6517 struct GtkFontSelectionPrivate;
6518 
6519 struct GtkFrame
6520 {
6521 	GtkBin bin;
6522 	GtkFramePrivate* priv;
6523 }
6524 
6525 struct GtkFrameAccessible
6526 {
6527 	GtkContainerAccessible parent;
6528 	GtkFrameAccessiblePrivate* priv;
6529 }
6530 
6531 struct GtkFrameAccessibleClass
6532 {
6533 	GtkContainerAccessibleClass parentClass;
6534 }
6535 
6536 struct GtkFrameAccessiblePrivate;
6537 
6538 struct GtkFrameClass
6539 {
6540 	/**
6541 	 * The parent class.
6542 	 */
6543 	GtkBinClass parentClass;
6544 	/** */
6545 	extern(C) void function(GtkFrame* frame, GtkAllocation* allocation) computeChildAllocation;
6546 	/** */
6547 	extern(C) void function() GtkReserved1;
6548 	/** */
6549 	extern(C) void function() GtkReserved2;
6550 	/** */
6551 	extern(C) void function() GtkReserved3;
6552 	/** */
6553 	extern(C) void function() GtkReserved4;
6554 }
6555 
6556 struct GtkFramePrivate;
6557 
6558 struct GtkGLArea
6559 {
6560 	GtkWidget parentInstance;
6561 }
6562 
6563 /**
6564  * The `GtkGLAreaClass` structure contains only private data.
6565  *
6566  * Since: 3.16
6567  */
6568 struct GtkGLAreaClass
6569 {
6570 	GtkWidgetClass parentClass;
6571 	/** */
6572 	extern(C) int function(GtkGLArea* area, GdkGLContext* context) render;
6573 	/** */
6574 	extern(C) void function(GtkGLArea* area, int width, int height) resize;
6575 	/** */
6576 	extern(C) GdkGLContext* function(GtkGLArea* area) createContext;
6577 	void*[6] Padding;
6578 }
6579 
6580 struct GtkGesture;
6581 
6582 struct GtkGestureClass;
6583 
6584 struct GtkGestureDrag;
6585 
6586 struct GtkGestureDragClass;
6587 
6588 struct GtkGestureLongPress;
6589 
6590 struct GtkGestureLongPressClass;
6591 
6592 struct GtkGestureMultiPress;
6593 
6594 struct GtkGestureMultiPressClass;
6595 
6596 struct GtkGesturePan;
6597 
6598 struct GtkGesturePanClass;
6599 
6600 struct GtkGestureRotate;
6601 
6602 struct GtkGestureRotateClass;
6603 
6604 struct GtkGestureSingle;
6605 
6606 struct GtkGestureSingleClass;
6607 
6608 struct GtkGestureSwipe;
6609 
6610 struct GtkGestureSwipeClass;
6611 
6612 struct GtkGestureZoom;
6613 
6614 struct GtkGestureZoomClass;
6615 
6616 struct GtkGradient;
6617 
6618 struct GtkGrid
6619 {
6620 	GtkContainer container;
6621 	GtkGridPrivate* priv;
6622 }
6623 
6624 struct GtkGridClass
6625 {
6626 	/**
6627 	 * The parent class.
6628 	 */
6629 	GtkContainerClass parentClass;
6630 	/** */
6631 	extern(C) void function() GtkReserved1;
6632 	/** */
6633 	extern(C) void function() GtkReserved2;
6634 	/** */
6635 	extern(C) void function() GtkReserved3;
6636 	/** */
6637 	extern(C) void function() GtkReserved4;
6638 	/** */
6639 	extern(C) void function() GtkReserved5;
6640 	/** */
6641 	extern(C) void function() GtkReserved6;
6642 	/** */
6643 	extern(C) void function() GtkReserved7;
6644 	/** */
6645 	extern(C) void function() GtkReserved8;
6646 }
6647 
6648 struct GtkGridPrivate;
6649 
6650 struct GtkHBox
6651 {
6652 	GtkBox box;
6653 }
6654 
6655 struct GtkHBoxClass
6656 {
6657 	GtkBoxClass parentClass;
6658 }
6659 
6660 struct GtkHButtonBox
6661 {
6662 	GtkButtonBox buttonBox;
6663 }
6664 
6665 struct GtkHButtonBoxClass
6666 {
6667 	GtkButtonBoxClass parentClass;
6668 }
6669 
6670 struct GtkHPaned
6671 {
6672 	GtkPaned paned;
6673 }
6674 
6675 struct GtkHPanedClass
6676 {
6677 	GtkPanedClass parentClass;
6678 }
6679 
6680 struct GtkHSV
6681 {
6682 	GtkWidget parentInstance;
6683 	GtkHSVPrivate* priv;
6684 }
6685 
6686 struct GtkHSVClass
6687 {
6688 	GtkWidgetClass parentClass;
6689 	/** */
6690 	extern(C) void function(GtkHSV* hsv) changed;
6691 	/** */
6692 	extern(C) void function(GtkHSV* hsv, GtkDirectionType type) move;
6693 	/** */
6694 	extern(C) void function() GtkReserved1;
6695 	/** */
6696 	extern(C) void function() GtkReserved2;
6697 	/** */
6698 	extern(C) void function() GtkReserved3;
6699 	/** */
6700 	extern(C) void function() GtkReserved4;
6701 }
6702 
6703 struct GtkHSVPrivate;
6704 
6705 struct GtkHScale
6706 {
6707 	GtkScale scale;
6708 }
6709 
6710 struct GtkHScaleClass
6711 {
6712 	GtkScaleClass parentClass;
6713 }
6714 
6715 struct GtkHScrollbar
6716 {
6717 	GtkScrollbar scrollbar;
6718 }
6719 
6720 struct GtkHScrollbarClass
6721 {
6722 	GtkScrollbarClass parentClass;
6723 }
6724 
6725 struct GtkHSeparator
6726 {
6727 	GtkSeparator separator;
6728 }
6729 
6730 struct GtkHSeparatorClass
6731 {
6732 	GtkSeparatorClass parentClass;
6733 }
6734 
6735 struct GtkHandleBox
6736 {
6737 	GtkBin bin;
6738 	GtkHandleBoxPrivate* priv;
6739 }
6740 
6741 struct GtkHandleBoxClass
6742 {
6743 	/**
6744 	 * The parent class.
6745 	 */
6746 	GtkBinClass parentClass;
6747 	/** */
6748 	extern(C) void function(GtkHandleBox* handleBox, GtkWidget* child) childAttached;
6749 	/** */
6750 	extern(C) void function(GtkHandleBox* handleBox, GtkWidget* child) childDetached;
6751 	/** */
6752 	extern(C) void function() GtkReserved1;
6753 	/** */
6754 	extern(C) void function() GtkReserved2;
6755 	/** */
6756 	extern(C) void function() GtkReserved3;
6757 	/** */
6758 	extern(C) void function() GtkReserved4;
6759 }
6760 
6761 struct GtkHandleBoxPrivate;
6762 
6763 struct GtkHeaderBar
6764 {
6765 	GtkContainer container;
6766 }
6767 
6768 struct GtkHeaderBarClass
6769 {
6770 	GtkContainerClass parentClass;
6771 	/** */
6772 	extern(C) void function() GtkReserved1;
6773 	/** */
6774 	extern(C) void function() GtkReserved2;
6775 	/** */
6776 	extern(C) void function() GtkReserved3;
6777 	/** */
6778 	extern(C) void function() GtkReserved4;
6779 }
6780 
6781 struct GtkHeaderBarPrivate;
6782 
6783 struct GtkIMContext
6784 {
6785 	GObject parentInstance;
6786 }
6787 
6788 struct GtkIMContextClass
6789 {
6790 	GObjectClass parentClass;
6791 	/** */
6792 	extern(C) void function(GtkIMContext* context) preeditStart;
6793 	/** */
6794 	extern(C) void function(GtkIMContext* context) preeditEnd;
6795 	/** */
6796 	extern(C) void function(GtkIMContext* context) preeditChanged;
6797 	/** */
6798 	extern(C) void function(GtkIMContext* context, const(char)* str) commit;
6799 	/** */
6800 	extern(C) int function(GtkIMContext* context) retrieveSurrounding;
6801 	/**
6802 	 *
6803 	 * Params:
6804 	 *     context = a #GtkIMContext
6805 	 *     offset = offset from cursor position in chars;
6806 	 *         a negative value means start before the cursor.
6807 	 *     nChars = number of characters to delete.
6808 	 * Return: %TRUE if the signal was handled.
6809 	 */
6810 	extern(C) int function(GtkIMContext* context, int offset, int nChars) deleteSurrounding;
6811 	/** */
6812 	extern(C) void function(GtkIMContext* context, GdkWindow* window) setClientWindow;
6813 	/** */
6814 	extern(C) void function(GtkIMContext* context, char** str, PangoAttrList** attrs, int* cursorPos) getPreeditString;
6815 	/**
6816 	 *
6817 	 * Params:
6818 	 *     context = a #GtkIMContext
6819 	 *     event = the key event
6820 	 * Return: %TRUE if the input method handled the key event.
6821 	 */
6822 	extern(C) int function(GtkIMContext* context, GdkEventKey* event) filterKeypress;
6823 	/** */
6824 	extern(C) void function(GtkIMContext* context) focusIn;
6825 	/** */
6826 	extern(C) void function(GtkIMContext* context) focusOut;
6827 	/** */
6828 	extern(C) void function(GtkIMContext* context) reset;
6829 	/** */
6830 	extern(C) void function(GtkIMContext* context, GdkRectangle* area) setCursorLocation;
6831 	/** */
6832 	extern(C) void function(GtkIMContext* context, int usePreedit) setUsePreedit;
6833 	/** */
6834 	extern(C) void function(GtkIMContext* context, const(char)* text, int len, int cursorIndex) setSurrounding;
6835 	/**
6836 	 *
6837 	 * Params:
6838 	 *     context = a #GtkIMContext
6839 	 *     text = location to store a UTF-8 encoded
6840 	 *         string of text holding context around the insertion point.
6841 	 *         If the function returns %TRUE, then you must free the result
6842 	 *         stored in this location with g_free().
6843 	 *     cursorIndex = location to store byte index of the insertion
6844 	 *         cursor within @text.
6845 	 * Return: %TRUE if surrounding text was provided; in this case
6846 	 *     you must free the result stored in *text.
6847 	 */
6848 	extern(C) int function(GtkIMContext* context, char** text, int* cursorIndex) getSurrounding;
6849 	/** */
6850 	extern(C) void function() GtkReserved1;
6851 	/** */
6852 	extern(C) void function() GtkReserved2;
6853 	/** */
6854 	extern(C) void function() GtkReserved3;
6855 	/** */
6856 	extern(C) void function() GtkReserved4;
6857 	/** */
6858 	extern(C) void function() GtkReserved5;
6859 	/** */
6860 	extern(C) void function() GtkReserved6;
6861 }
6862 
6863 /**
6864  * Bookkeeping information about a loadable input method.
6865  */
6866 struct GtkIMContextInfo
6867 {
6868 	/**
6869 	 * The unique identification string of the input method.
6870 	 */
6871 	const(char)* contextId;
6872 	/**
6873 	 * The human-readable name of the input method.
6874 	 */
6875 	const(char)* contextName;
6876 	/**
6877 	 * Translation domain to be used with dgettext()
6878 	 */
6879 	const(char)* domain;
6880 	/**
6881 	 * Name of locale directory for use with bindtextdomain()
6882 	 */
6883 	const(char)* domainDirname;
6884 	/**
6885 	 * A colon-separated list of locales where this input method
6886 	 * should be the default. The asterisk “*” sets the default for all locales.
6887 	 */
6888 	const(char)* defaultLocales;
6889 }
6890 
6891 struct GtkIMContextSimple
6892 {
6893 	GtkIMContext object;
6894 	GtkIMContextSimplePrivate* priv;
6895 }
6896 
6897 struct GtkIMContextSimpleClass
6898 {
6899 	GtkIMContextClass parentClass;
6900 }
6901 
6902 struct GtkIMContextSimplePrivate;
6903 
6904 struct GtkIMMulticontext
6905 {
6906 	GtkIMContext object;
6907 	GtkIMMulticontextPrivate* priv;
6908 }
6909 
6910 struct GtkIMMulticontextClass
6911 {
6912 	GtkIMContextClass parentClass;
6913 	/** */
6914 	extern(C) void function() GtkReserved1;
6915 	/** */
6916 	extern(C) void function() GtkReserved2;
6917 	/** */
6918 	extern(C) void function() GtkReserved3;
6919 	/** */
6920 	extern(C) void function() GtkReserved4;
6921 }
6922 
6923 struct GtkIMMulticontextPrivate;
6924 
6925 struct GtkIconFactory
6926 {
6927 	GObject parentInstance;
6928 	GtkIconFactoryPrivate* priv;
6929 }
6930 
6931 struct GtkIconFactoryClass
6932 {
6933 	/**
6934 	 * The parent class.
6935 	 */
6936 	GObjectClass parentClass;
6937 	/** */
6938 	extern(C) void function() GtkReserved1;
6939 	/** */
6940 	extern(C) void function() GtkReserved2;
6941 	/** */
6942 	extern(C) void function() GtkReserved3;
6943 	/** */
6944 	extern(C) void function() GtkReserved4;
6945 }
6946 
6947 struct GtkIconFactoryPrivate;
6948 
6949 struct GtkIconInfo;
6950 
6951 struct GtkIconInfoClass;
6952 
6953 struct GtkIconSet;
6954 
6955 struct GtkIconSource;
6956 
6957 struct GtkIconTheme
6958 {
6959 	GObject parentInstance;
6960 	GtkIconThemePrivate* priv;
6961 }
6962 
6963 struct GtkIconThemeClass
6964 {
6965 	/**
6966 	 * The parent class.
6967 	 */
6968 	GObjectClass parentClass;
6969 	/** */
6970 	extern(C) void function(GtkIconTheme* iconTheme) changed;
6971 	/** */
6972 	extern(C) void function() GtkReserved1;
6973 	/** */
6974 	extern(C) void function() GtkReserved2;
6975 	/** */
6976 	extern(C) void function() GtkReserved3;
6977 	/** */
6978 	extern(C) void function() GtkReserved4;
6979 }
6980 
6981 struct GtkIconThemePrivate;
6982 
6983 struct GtkIconView
6984 {
6985 	GtkContainer parent;
6986 	GtkIconViewPrivate* priv;
6987 }
6988 
6989 struct GtkIconViewAccessible
6990 {
6991 	GtkContainerAccessible parent;
6992 	GtkIconViewAccessiblePrivate* priv;
6993 }
6994 
6995 struct GtkIconViewAccessibleClass
6996 {
6997 	GtkContainerAccessibleClass parentClass;
6998 }
6999 
7000 struct GtkIconViewAccessiblePrivate;
7001 
7002 struct GtkIconViewClass
7003 {
7004 	GtkContainerClass parentClass;
7005 	/** */
7006 	extern(C) void function(GtkIconView* iconView, GtkTreePath* path) itemActivated;
7007 	/** */
7008 	extern(C) void function(GtkIconView* iconView) selectionChanged;
7009 	/** */
7010 	extern(C) void function(GtkIconView* iconView) selectAll;
7011 	/** */
7012 	extern(C) void function(GtkIconView* iconView) unselectAll;
7013 	/** */
7014 	extern(C) void function(GtkIconView* iconView) selectCursorItem;
7015 	/** */
7016 	extern(C) void function(GtkIconView* iconView) toggleCursorItem;
7017 	/** */
7018 	extern(C) int function(GtkIconView* iconView, GtkMovementStep step, int count) moveCursor;
7019 	/** */
7020 	extern(C) int function(GtkIconView* iconView) activateCursorItem;
7021 	/** */
7022 	extern(C) void function() GtkReserved1;
7023 	/** */
7024 	extern(C) void function() GtkReserved2;
7025 	/** */
7026 	extern(C) void function() GtkReserved3;
7027 	/** */
7028 	extern(C) void function() GtkReserved4;
7029 }
7030 
7031 struct GtkIconViewPrivate;
7032 
7033 struct GtkImage
7034 {
7035 	GtkMisc misc;
7036 	GtkImagePrivate* priv;
7037 }
7038 
7039 struct GtkImageAccessible
7040 {
7041 	GtkWidgetAccessible parent;
7042 	GtkImageAccessiblePrivate* priv;
7043 }
7044 
7045 struct GtkImageAccessibleClass
7046 {
7047 	GtkWidgetAccessibleClass parentClass;
7048 }
7049 
7050 struct GtkImageAccessiblePrivate;
7051 
7052 struct GtkImageCellAccessible
7053 {
7054 	GtkRendererCellAccessible parent;
7055 	GtkImageCellAccessiblePrivate* priv;
7056 }
7057 
7058 struct GtkImageCellAccessibleClass
7059 {
7060 	GtkRendererCellAccessibleClass parentClass;
7061 }
7062 
7063 struct GtkImageCellAccessiblePrivate;
7064 
7065 struct GtkImageClass
7066 {
7067 	GtkMiscClass parentClass;
7068 	/** */
7069 	extern(C) void function() GtkReserved1;
7070 	/** */
7071 	extern(C) void function() GtkReserved2;
7072 	/** */
7073 	extern(C) void function() GtkReserved3;
7074 	/** */
7075 	extern(C) void function() GtkReserved4;
7076 }
7077 
7078 struct GtkImageMenuItem
7079 {
7080 	GtkMenuItem menuItem;
7081 	GtkImageMenuItemPrivate* priv;
7082 }
7083 
7084 struct GtkImageMenuItemClass
7085 {
7086 	/**
7087 	 * The parent class.
7088 	 */
7089 	GtkMenuItemClass parentClass;
7090 	/** */
7091 	extern(C) void function() GtkReserved1;
7092 	/** */
7093 	extern(C) void function() GtkReserved2;
7094 	/** */
7095 	extern(C) void function() GtkReserved3;
7096 	/** */
7097 	extern(C) void function() GtkReserved4;
7098 }
7099 
7100 struct GtkImageMenuItemPrivate;
7101 
7102 struct GtkImagePrivate;
7103 
7104 struct GtkInfoBar
7105 {
7106 	GtkBox parent;
7107 	GtkInfoBarPrivate* priv;
7108 }
7109 
7110 struct GtkInfoBarClass
7111 {
7112 	GtkBoxClass parentClass;
7113 	/** */
7114 	extern(C) void function(GtkInfoBar* infoBar, int responseId) response;
7115 	/** */
7116 	extern(C) void function(GtkInfoBar* infoBar) close;
7117 	/** */
7118 	extern(C) void function() GtkReserved1;
7119 	/** */
7120 	extern(C) void function() GtkReserved2;
7121 	/** */
7122 	extern(C) void function() GtkReserved3;
7123 	/** */
7124 	extern(C) void function() GtkReserved4;
7125 }
7126 
7127 struct GtkInfoBarPrivate;
7128 
7129 struct GtkInvisible
7130 {
7131 	GtkWidget widget;
7132 	GtkInvisiblePrivate* priv;
7133 }
7134 
7135 struct GtkInvisibleClass
7136 {
7137 	GtkWidgetClass parentClass;
7138 	/** */
7139 	extern(C) void function() GtkReserved1;
7140 	/** */
7141 	extern(C) void function() GtkReserved2;
7142 	/** */
7143 	extern(C) void function() GtkReserved3;
7144 	/** */
7145 	extern(C) void function() GtkReserved4;
7146 }
7147 
7148 struct GtkInvisiblePrivate;
7149 
7150 struct GtkLabel
7151 {
7152 	GtkMisc misc;
7153 	GtkLabelPrivate* priv;
7154 }
7155 
7156 struct GtkLabelAccessible
7157 {
7158 	GtkWidgetAccessible parent;
7159 	GtkLabelAccessiblePrivate* priv;
7160 }
7161 
7162 struct GtkLabelAccessibleClass
7163 {
7164 	GtkWidgetAccessibleClass parentClass;
7165 }
7166 
7167 struct GtkLabelAccessiblePrivate;
7168 
7169 struct GtkLabelClass
7170 {
7171 	GtkMiscClass parentClass;
7172 	/** */
7173 	extern(C) void function(GtkLabel* label, GtkMovementStep step, int count, int extendSelection) moveCursor;
7174 	/** */
7175 	extern(C) void function(GtkLabel* label) copyClipboard;
7176 	/** */
7177 	extern(C) void function(GtkLabel* label, GtkMenu* menu) populatePopup;
7178 	/** */
7179 	extern(C) int function(GtkLabel* label, const(char)* uri) activateLink;
7180 	/** */
7181 	extern(C) void function() GtkReserved1;
7182 	/** */
7183 	extern(C) void function() GtkReserved2;
7184 	/** */
7185 	extern(C) void function() GtkReserved3;
7186 	/** */
7187 	extern(C) void function() GtkReserved4;
7188 	/** */
7189 	extern(C) void function() GtkReserved5;
7190 	/** */
7191 	extern(C) void function() GtkReserved6;
7192 	/** */
7193 	extern(C) void function() GtkReserved7;
7194 	/** */
7195 	extern(C) void function() GtkReserved8;
7196 }
7197 
7198 struct GtkLabelPrivate;
7199 
7200 struct GtkLabelSelectionInfo;
7201 
7202 struct GtkLayout
7203 {
7204 	GtkContainer container;
7205 	GtkLayoutPrivate* priv;
7206 }
7207 
7208 struct GtkLayoutClass
7209 {
7210 	GtkContainerClass parentClass;
7211 	/** */
7212 	extern(C) void function() GtkReserved1;
7213 	/** */
7214 	extern(C) void function() GtkReserved2;
7215 	/** */
7216 	extern(C) void function() GtkReserved3;
7217 	/** */
7218 	extern(C) void function() GtkReserved4;
7219 }
7220 
7221 struct GtkLayoutPrivate;
7222 
7223 struct GtkLevelBar
7224 {
7225 	GtkWidget parent;
7226 	GtkLevelBarPrivate* priv;
7227 }
7228 
7229 struct GtkLevelBarAccessible
7230 {
7231 	GtkWidgetAccessible parent;
7232 	GtkLevelBarAccessiblePrivate* priv;
7233 }
7234 
7235 struct GtkLevelBarAccessibleClass
7236 {
7237 	GtkWidgetAccessibleClass parentClass;
7238 }
7239 
7240 struct GtkLevelBarAccessiblePrivate;
7241 
7242 struct GtkLevelBarClass
7243 {
7244 	GtkWidgetClass parentClass;
7245 	/** */
7246 	extern(C) void function(GtkLevelBar* self, const(char)* name) offsetChanged;
7247 	void*[16] padding;
7248 }
7249 
7250 struct GtkLevelBarPrivate;
7251 
7252 struct GtkLinkButton
7253 {
7254 	GtkButton parentInstance;
7255 	GtkLinkButtonPrivate* priv;
7256 }
7257 
7258 struct GtkLinkButtonAccessible
7259 {
7260 	GtkButtonAccessible parent;
7261 	GtkLinkButtonAccessiblePrivate* priv;
7262 }
7263 
7264 struct GtkLinkButtonAccessibleClass
7265 {
7266 	GtkButtonAccessibleClass parentClass;
7267 }
7268 
7269 struct GtkLinkButtonAccessiblePrivate;
7270 
7271 /**
7272  * The #GtkLinkButtonClass contains only
7273  * private data.
7274  */
7275 struct GtkLinkButtonClass
7276 {
7277 	GtkButtonClass parentClass;
7278 	/** */
7279 	extern(C) int function(GtkLinkButton* button) activateLink;
7280 	/** */
7281 	extern(C) void function() GtkPadding1;
7282 	/** */
7283 	extern(C) void function() GtkPadding2;
7284 	/** */
7285 	extern(C) void function() GtkPadding3;
7286 	/** */
7287 	extern(C) void function() GtkPadding4;
7288 }
7289 
7290 struct GtkLinkButtonPrivate;
7291 
7292 struct GtkListBox
7293 {
7294 	GtkContainer parentInstance;
7295 }
7296 
7297 struct GtkListBoxAccessible
7298 {
7299 	GtkContainerAccessible parent;
7300 	GtkListBoxAccessiblePrivate* priv;
7301 }
7302 
7303 struct GtkListBoxAccessibleClass
7304 {
7305 	GtkContainerAccessibleClass parentClass;
7306 }
7307 
7308 struct GtkListBoxAccessiblePrivate;
7309 
7310 struct GtkListBoxClass
7311 {
7312 	/**
7313 	 * The parent class.
7314 	 */
7315 	GtkContainerClass parentClass;
7316 	/** */
7317 	extern(C) void function(GtkListBox* box, GtkListBoxRow* row) rowSelected;
7318 	/** */
7319 	extern(C) void function(GtkListBox* box, GtkListBoxRow* row) rowActivated;
7320 	/** */
7321 	extern(C) void function(GtkListBox* box) activateCursorRow;
7322 	/** */
7323 	extern(C) void function(GtkListBox* box) toggleCursorRow;
7324 	/** */
7325 	extern(C) void function(GtkListBox* box, GtkMovementStep step, int count) moveCursor;
7326 	/** */
7327 	extern(C) void function(GtkListBox* box) selectedRowsChanged;
7328 	/** */
7329 	extern(C) void function(GtkListBox* box) selectAll;
7330 	/** */
7331 	extern(C) void function(GtkListBox* box) unselectAll;
7332 	/** */
7333 	extern(C) void function() GtkReserved1;
7334 	/** */
7335 	extern(C) void function() GtkReserved2;
7336 	/** */
7337 	extern(C) void function() GtkReserved3;
7338 }
7339 
7340 struct GtkListBoxRow
7341 {
7342 	GtkBin parentInstance;
7343 }
7344 
7345 struct GtkListBoxRowAccessible
7346 {
7347 	GtkContainerAccessible parent;
7348 }
7349 
7350 struct GtkListBoxRowAccessibleClass
7351 {
7352 	GtkContainerAccessibleClass parentClass;
7353 }
7354 
7355 struct GtkListBoxRowClass
7356 {
7357 	/**
7358 	 * The parent class.
7359 	 */
7360 	GtkBinClass parentClass;
7361 	/** */
7362 	extern(C) void function(GtkListBoxRow* row) activate;
7363 	/** */
7364 	extern(C) void function() GtkReserved1;
7365 	/** */
7366 	extern(C) void function() GtkReserved2;
7367 }
7368 
7369 struct GtkListStore
7370 {
7371 	GObject parent;
7372 	GtkListStorePrivate* priv;
7373 }
7374 
7375 struct GtkListStoreClass
7376 {
7377 	GObjectClass parentClass;
7378 	/** */
7379 	extern(C) void function() GtkReserved1;
7380 	/** */
7381 	extern(C) void function() GtkReserved2;
7382 	/** */
7383 	extern(C) void function() GtkReserved3;
7384 	/** */
7385 	extern(C) void function() GtkReserved4;
7386 }
7387 
7388 struct GtkListStorePrivate;
7389 
7390 struct GtkLockButton
7391 {
7392 	GtkButton parent;
7393 	GtkLockButtonPrivate* priv;
7394 }
7395 
7396 struct GtkLockButtonAccessible
7397 {
7398 	GtkButtonAccessible parent;
7399 	GtkLockButtonAccessiblePrivate* priv;
7400 }
7401 
7402 struct GtkLockButtonAccessibleClass
7403 {
7404 	GtkButtonAccessibleClass parentClass;
7405 }
7406 
7407 struct GtkLockButtonAccessiblePrivate;
7408 
7409 struct GtkLockButtonClass
7410 {
7411 	/**
7412 	 * The parent class.
7413 	 */
7414 	GtkButtonClass parentClass;
7415 	/** */
7416 	extern(C) void function() reserved0;
7417 	/** */
7418 	extern(C) void function() reserved1;
7419 	/** */
7420 	extern(C) void function() reserved2;
7421 	/** */
7422 	extern(C) void function() reserved3;
7423 	/** */
7424 	extern(C) void function() reserved4;
7425 	/** */
7426 	extern(C) void function() reserved5;
7427 	/** */
7428 	extern(C) void function() reserved6;
7429 	/** */
7430 	extern(C) void function() reserved7;
7431 }
7432 
7433 struct GtkLockButtonPrivate;
7434 
7435 struct GtkMenu
7436 {
7437 	GtkMenuShell menuShell;
7438 	GtkMenuPrivate* priv;
7439 }
7440 
7441 struct GtkMenuAccessible
7442 {
7443 	GtkMenuShellAccessible parent;
7444 	GtkMenuAccessiblePrivate* priv;
7445 }
7446 
7447 struct GtkMenuAccessibleClass
7448 {
7449 	GtkMenuShellAccessibleClass parentClass;
7450 }
7451 
7452 struct GtkMenuAccessiblePrivate;
7453 
7454 struct GtkMenuBar
7455 {
7456 	GtkMenuShell menuShell;
7457 	GtkMenuBarPrivate* priv;
7458 }
7459 
7460 struct GtkMenuBarClass
7461 {
7462 	GtkMenuShellClass parentClass;
7463 	/** */
7464 	extern(C) void function() GtkReserved1;
7465 	/** */
7466 	extern(C) void function() GtkReserved2;
7467 	/** */
7468 	extern(C) void function() GtkReserved3;
7469 	/** */
7470 	extern(C) void function() GtkReserved4;
7471 }
7472 
7473 struct GtkMenuBarPrivate;
7474 
7475 struct GtkMenuButton
7476 {
7477 	GtkToggleButton parent;
7478 	GtkMenuButtonPrivate* priv;
7479 }
7480 
7481 struct GtkMenuButtonAccessible
7482 {
7483 	GtkToggleButtonAccessible parent;
7484 	GtkMenuButtonAccessiblePrivate* priv;
7485 }
7486 
7487 struct GtkMenuButtonAccessibleClass
7488 {
7489 	GtkToggleButtonAccessibleClass parentClass;
7490 }
7491 
7492 struct GtkMenuButtonAccessiblePrivate;
7493 
7494 struct GtkMenuButtonClass
7495 {
7496 	GtkToggleButtonClass parentClass;
7497 	/** */
7498 	extern(C) void function() GtkReserved1;
7499 	/** */
7500 	extern(C) void function() GtkReserved2;
7501 	/** */
7502 	extern(C) void function() GtkReserved3;
7503 	/** */
7504 	extern(C) void function() GtkReserved4;
7505 }
7506 
7507 struct GtkMenuButtonPrivate;
7508 
7509 struct GtkMenuClass
7510 {
7511 	GtkMenuShellClass parentClass;
7512 	/** */
7513 	extern(C) void function() GtkReserved1;
7514 	/** */
7515 	extern(C) void function() GtkReserved2;
7516 	/** */
7517 	extern(C) void function() GtkReserved3;
7518 	/** */
7519 	extern(C) void function() GtkReserved4;
7520 }
7521 
7522 struct GtkMenuItem
7523 {
7524 	GtkBin bin;
7525 	GtkMenuItemPrivate* priv;
7526 }
7527 
7528 struct GtkMenuItemAccessible
7529 {
7530 	GtkContainerAccessible parent;
7531 	GtkMenuItemAccessiblePrivate* priv;
7532 }
7533 
7534 struct GtkMenuItemAccessibleClass
7535 {
7536 	GtkContainerAccessibleClass parentClass;
7537 }
7538 
7539 struct GtkMenuItemAccessiblePrivate;
7540 
7541 struct GtkMenuItemClass
7542 {
7543 	/**
7544 	 * The parent class.
7545 	 */
7546 	GtkBinClass parentClass;
7547 	import std.bitmanip: bitfields;
7548 	mixin(bitfields!(
7549 		uint, "hideOnActivate", 1,
7550 		uint, "", 31
7551 	));
7552 	/** */
7553 	extern(C) void function(GtkMenuItem* menuItem) activate;
7554 	/** */
7555 	extern(C) void function(GtkMenuItem* menuItem) activateItem;
7556 	/** */
7557 	extern(C) void function(GtkMenuItem* menuItem, int* requisition) toggleSizeRequest;
7558 	/** */
7559 	extern(C) void function(GtkMenuItem* menuItem, int allocation) toggleSizeAllocate;
7560 	/** */
7561 	extern(C) void function(GtkMenuItem* menuItem, const(char)* label) setLabel;
7562 	/**
7563 	 *
7564 	 * Params:
7565 	 *     menuItem = a #GtkMenuItem
7566 	 * Return: The text in the @menu_item label. This is the internal
7567 	 *     string used by the label, and must not be modified.
7568 	 */
7569 	extern(C) const(char)* function(GtkMenuItem* menuItem) getLabel;
7570 	/** */
7571 	extern(C) void function(GtkMenuItem* menuItem) select;
7572 	/** */
7573 	extern(C) void function(GtkMenuItem* menuItem) deselect;
7574 	/** */
7575 	extern(C) void function() GtkReserved1;
7576 	/** */
7577 	extern(C) void function() GtkReserved2;
7578 	/** */
7579 	extern(C) void function() GtkReserved3;
7580 	/** */
7581 	extern(C) void function() GtkReserved4;
7582 }
7583 
7584 struct GtkMenuItemPrivate;
7585 
7586 struct GtkMenuPrivate;
7587 
7588 struct GtkMenuShell
7589 {
7590 	GtkContainer container;
7591 	GtkMenuShellPrivate* priv;
7592 }
7593 
7594 struct GtkMenuShellAccessible
7595 {
7596 	GtkContainerAccessible parent;
7597 	GtkMenuShellAccessiblePrivate* priv;
7598 }
7599 
7600 struct GtkMenuShellAccessibleClass
7601 {
7602 	GtkContainerAccessibleClass parentClass;
7603 }
7604 
7605 struct GtkMenuShellAccessiblePrivate;
7606 
7607 struct GtkMenuShellClass
7608 {
7609 	GtkContainerClass parentClass;
7610 	import std.bitmanip: bitfields;
7611 	mixin(bitfields!(
7612 		uint, "submenuPlacement", 1,
7613 		uint, "", 31
7614 	));
7615 	/** */
7616 	extern(C) void function(GtkMenuShell* menuShell) deactivate;
7617 	/** */
7618 	extern(C) void function(GtkMenuShell* menuShell) selectionDone;
7619 	/** */
7620 	extern(C) void function(GtkMenuShell* menuShell, GtkMenuDirectionType direction) moveCurrent;
7621 	/** */
7622 	extern(C) void function(GtkMenuShell* menuShell, int forceHide) activateCurrent;
7623 	/** */
7624 	extern(C) void function(GtkMenuShell* menuShell) cancel;
7625 	/** */
7626 	extern(C) void function(GtkMenuShell* menuShell, GtkWidget* menuItem) selectItem;
7627 	/** */
7628 	extern(C) void function(GtkMenuShell* menuShell, GtkWidget* child, int position) insert;
7629 	/** */
7630 	extern(C) int function(GtkMenuShell* menuShell) getPopupDelay;
7631 	/** */
7632 	extern(C) int function(GtkMenuShell* menuShell, int distance) moveSelected;
7633 	/** */
7634 	extern(C) void function() GtkReserved1;
7635 	/** */
7636 	extern(C) void function() GtkReserved2;
7637 	/** */
7638 	extern(C) void function() GtkReserved3;
7639 	/** */
7640 	extern(C) void function() GtkReserved4;
7641 }
7642 
7643 struct GtkMenuShellPrivate;
7644 
7645 struct GtkMenuToolButton
7646 {
7647 	GtkToolButton parent;
7648 	GtkMenuToolButtonPrivate* priv;
7649 }
7650 
7651 struct GtkMenuToolButtonClass
7652 {
7653 	/**
7654 	 * The parent class.
7655 	 */
7656 	GtkToolButtonClass parentClass;
7657 	/** */
7658 	extern(C) void function(GtkMenuToolButton* button) showMenu;
7659 	/** */
7660 	extern(C) void function() GtkReserved1;
7661 	/** */
7662 	extern(C) void function() GtkReserved2;
7663 	/** */
7664 	extern(C) void function() GtkReserved3;
7665 	/** */
7666 	extern(C) void function() GtkReserved4;
7667 }
7668 
7669 struct GtkMenuToolButtonPrivate;
7670 
7671 struct GtkMessageDialog
7672 {
7673 	GtkDialog parentInstance;
7674 	GtkMessageDialogPrivate* priv;
7675 }
7676 
7677 struct GtkMessageDialogClass
7678 {
7679 	GtkDialogClass parentClass;
7680 	/** */
7681 	extern(C) void function() GtkReserved1;
7682 	/** */
7683 	extern(C) void function() GtkReserved2;
7684 	/** */
7685 	extern(C) void function() GtkReserved3;
7686 	/** */
7687 	extern(C) void function() GtkReserved4;
7688 }
7689 
7690 struct GtkMessageDialogPrivate;
7691 
7692 struct GtkMisc
7693 {
7694 	GtkWidget widget;
7695 	GtkMiscPrivate* priv;
7696 }
7697 
7698 struct GtkMiscClass
7699 {
7700 	GtkWidgetClass parentClass;
7701 	/** */
7702 	extern(C) void function() GtkReserved1;
7703 	/** */
7704 	extern(C) void function() GtkReserved2;
7705 	/** */
7706 	extern(C) void function() GtkReserved3;
7707 	/** */
7708 	extern(C) void function() GtkReserved4;
7709 }
7710 
7711 struct GtkMiscPrivate;
7712 
7713 struct GtkModelButton;
7714 
7715 struct GtkMountOperation
7716 {
7717 	GMountOperation parentInstance;
7718 	GtkMountOperationPrivate* priv;
7719 }
7720 
7721 struct GtkMountOperationClass
7722 {
7723 	/**
7724 	 * The parent class.
7725 	 */
7726 	GMountOperationClass parentClass;
7727 	/** */
7728 	extern(C) void function() GtkReserved1;
7729 	/** */
7730 	extern(C) void function() GtkReserved2;
7731 	/** */
7732 	extern(C) void function() GtkReserved3;
7733 	/** */
7734 	extern(C) void function() GtkReserved4;
7735 }
7736 
7737 struct GtkMountOperationPrivate;
7738 
7739 struct GtkNativeDialog
7740 {
7741 	GObject parentInstance;
7742 }
7743 
7744 struct GtkNativeDialogClass
7745 {
7746 	GObjectClass parentClass;
7747 	/** */
7748 	extern(C) void function(GtkNativeDialog* self, int responseId) response;
7749 	/** */
7750 	extern(C) void function(GtkNativeDialog* self) show;
7751 	/** */
7752 	extern(C) void function(GtkNativeDialog* self) hide;
7753 	/** */
7754 	extern(C) void function() GtkReserved1;
7755 	/** */
7756 	extern(C) void function() GtkReserved2;
7757 	/** */
7758 	extern(C) void function() GtkReserved3;
7759 	/** */
7760 	extern(C) void function() GtkReserved4;
7761 }
7762 
7763 struct GtkNotebook
7764 {
7765 	GtkContainer container;
7766 	GtkNotebookPrivate* priv;
7767 }
7768 
7769 struct GtkNotebookAccessible
7770 {
7771 	GtkContainerAccessible parent;
7772 	GtkNotebookAccessiblePrivate* priv;
7773 }
7774 
7775 struct GtkNotebookAccessibleClass
7776 {
7777 	GtkContainerAccessibleClass parentClass;
7778 }
7779 
7780 struct GtkNotebookAccessiblePrivate;
7781 
7782 struct GtkNotebookClass
7783 {
7784 	GtkContainerClass parentClass;
7785 	/** */
7786 	extern(C) void function(GtkNotebook* notebook, GtkWidget* page, uint pageNum) switchPage;
7787 	/** */
7788 	extern(C) int function(GtkNotebook* notebook, int moveFocus) selectPage;
7789 	/** */
7790 	extern(C) int function(GtkNotebook* notebook, GtkNotebookTab type) focusTab;
7791 	/** */
7792 	extern(C) int function(GtkNotebook* notebook, int offset) changeCurrentPage;
7793 	/** */
7794 	extern(C) void function(GtkNotebook* notebook, GtkDirectionType direction) moveFocusOut;
7795 	/** */
7796 	extern(C) int function(GtkNotebook* notebook, GtkDirectionType direction, int moveToLast) reorderTab;
7797 	/** */
7798 	extern(C) int function(GtkNotebook* notebook, GtkWidget* child, GtkWidget* tabLabel, GtkWidget* menuLabel, int position) insertPage;
7799 	/** */
7800 	extern(C) GtkNotebook* function(GtkNotebook* notebook, GtkWidget* page, int x, int y) createWindow;
7801 	/** */
7802 	extern(C) void function(GtkNotebook* notebook, GtkWidget* child, uint pageNum) pageReordered;
7803 	/** */
7804 	extern(C) void function(GtkNotebook* notebook, GtkWidget* child, uint pageNum) pageRemoved;
7805 	/** */
7806 	extern(C) void function(GtkNotebook* notebook, GtkWidget* child, uint pageNum) pageAdded;
7807 	/** */
7808 	extern(C) void function() GtkReserved1;
7809 	/** */
7810 	extern(C) void function() GtkReserved2;
7811 	/** */
7812 	extern(C) void function() GtkReserved3;
7813 	/** */
7814 	extern(C) void function() GtkReserved4;
7815 	/** */
7816 	extern(C) void function() GtkReserved5;
7817 	/** */
7818 	extern(C) void function() GtkReserved6;
7819 	/** */
7820 	extern(C) void function() GtkReserved7;
7821 	/** */
7822 	extern(C) void function() GtkReserved8;
7823 }
7824 
7825 struct GtkNotebookPageAccessible
7826 {
7827 	AtkObject parent;
7828 	GtkNotebookPageAccessiblePrivate* priv;
7829 }
7830 
7831 struct GtkNotebookPageAccessibleClass
7832 {
7833 	AtkObjectClass parentClass;
7834 }
7835 
7836 struct GtkNotebookPageAccessiblePrivate;
7837 
7838 struct GtkNotebookPrivate;
7839 
7840 struct GtkNumerableIcon
7841 {
7842 	GEmblemedIcon parent;
7843 	GtkNumerableIconPrivate* priv;
7844 }
7845 
7846 struct GtkNumerableIconClass
7847 {
7848 	GEmblemedIconClass parentClass;
7849 	void*[16] padding;
7850 }
7851 
7852 struct GtkNumerableIconPrivate;
7853 
7854 struct GtkOffscreenWindow
7855 {
7856 	GtkWindow parentObject;
7857 }
7858 
7859 struct GtkOffscreenWindowClass
7860 {
7861 	/**
7862 	 * The parent class.
7863 	 */
7864 	GtkWindowClass parentClass;
7865 	/** */
7866 	extern(C) void function() GtkReserved1;
7867 	/** */
7868 	extern(C) void function() GtkReserved2;
7869 	/** */
7870 	extern(C) void function() GtkReserved3;
7871 	/** */
7872 	extern(C) void function() GtkReserved4;
7873 }
7874 
7875 struct GtkOrientable;
7876 
7877 struct GtkOrientableIface
7878 {
7879 	GTypeInterface baseIface;
7880 }
7881 
7882 struct GtkOverlay
7883 {
7884 	GtkBin parent;
7885 	GtkOverlayPrivate* priv;
7886 }
7887 
7888 struct GtkOverlayClass
7889 {
7890 	/**
7891 	 * The parent class.
7892 	 */
7893 	GtkBinClass parentClass;
7894 	/** */
7895 	extern(C) int function(GtkOverlay* overlay, GtkWidget* widget, GtkAllocation* allocation) getChildPosition;
7896 	/** */
7897 	extern(C) void function() GtkReserved1;
7898 	/** */
7899 	extern(C) void function() GtkReserved2;
7900 	/** */
7901 	extern(C) void function() GtkReserved3;
7902 	/** */
7903 	extern(C) void function() GtkReserved4;
7904 	/** */
7905 	extern(C) void function() GtkReserved5;
7906 	/** */
7907 	extern(C) void function() GtkReserved6;
7908 	/** */
7909 	extern(C) void function() GtkReserved7;
7910 	/** */
7911 	extern(C) void function() GtkReserved8;
7912 }
7913 
7914 struct GtkOverlayPrivate;
7915 
7916 /**
7917  * Struct defining a pad action entry.
7918  */
7919 struct GtkPadActionEntry
7920 {
7921 	/**
7922 	 * the type of pad feature that will trigger this action entry.
7923 	 */
7924 	GtkPadActionType type;
7925 	/**
7926 	 * the 0-indexed button/ring/strip number that will trigger this action
7927 	 * entry.
7928 	 */
7929 	int index;
7930 	/**
7931 	 * the mode that will trigger this action entry, or -1 for all modes.
7932 	 */
7933 	int mode;
7934 	/**
7935 	 * Human readable description of this action entry, this string should
7936 	 * be deemed user-visible.
7937 	 */
7938 	char* label;
7939 	/**
7940 	 * action name that will be activated in the #GActionGroup.
7941 	 */
7942 	char* actionName;
7943 }
7944 
7945 struct GtkPadController;
7946 
7947 struct GtkPadControllerClass;
7948 
7949 /**
7950  * See also gtk_print_settings_set_page_ranges().
7951  */
7952 struct GtkPageRange
7953 {
7954 	/**
7955 	 * start of page range.
7956 	 */
7957 	int start;
7958 	/**
7959 	 * end of page range.
7960 	 */
7961 	int end;
7962 }
7963 
7964 struct GtkPageSetup;
7965 
7966 struct GtkPaned
7967 {
7968 	GtkContainer container;
7969 	GtkPanedPrivate* priv;
7970 }
7971 
7972 struct GtkPanedAccessible
7973 {
7974 	GtkContainerAccessible parent;
7975 	GtkPanedAccessiblePrivate* priv;
7976 }
7977 
7978 struct GtkPanedAccessibleClass
7979 {
7980 	GtkContainerAccessibleClass parentClass;
7981 }
7982 
7983 struct GtkPanedAccessiblePrivate;
7984 
7985 struct GtkPanedClass
7986 {
7987 	GtkContainerClass parentClass;
7988 	/** */
7989 	extern(C) int function(GtkPaned* paned, int reverse) cycleChildFocus;
7990 	/** */
7991 	extern(C) int function(GtkPaned* paned) toggleHandleFocus;
7992 	/** */
7993 	extern(C) int function(GtkPaned* paned, GtkScrollType scroll) moveHandle;
7994 	/** */
7995 	extern(C) int function(GtkPaned* paned, int reverse) cycleHandleFocus;
7996 	/** */
7997 	extern(C) int function(GtkPaned* paned) acceptPosition;
7998 	/** */
7999 	extern(C) int function(GtkPaned* paned) cancelPosition;
8000 	/** */
8001 	extern(C) void function() GtkReserved1;
8002 	/** */
8003 	extern(C) void function() GtkReserved2;
8004 	/** */
8005 	extern(C) void function() GtkReserved3;
8006 	/** */
8007 	extern(C) void function() GtkReserved4;
8008 }
8009 
8010 struct GtkPanedPrivate;
8011 
8012 struct GtkPaperSize;
8013 
8014 struct GtkPlacesSidebar;
8015 
8016 struct GtkPlacesSidebarClass;
8017 
8018 struct GtkPlug
8019 {
8020 	GtkWindow window;
8021 	GtkPlugPrivate* priv;
8022 }
8023 
8024 struct GtkPlugClass
8025 {
8026 	GtkWindowClass parentClass;
8027 	/** */
8028 	extern(C) void function(GtkPlug* plug) embedded;
8029 	/** */
8030 	extern(C) void function() GtkReserved1;
8031 	/** */
8032 	extern(C) void function() GtkReserved2;
8033 	/** */
8034 	extern(C) void function() GtkReserved3;
8035 	/** */
8036 	extern(C) void function() GtkReserved4;
8037 }
8038 
8039 struct GtkPlugPrivate;
8040 
8041 struct GtkPopover
8042 {
8043 	GtkBin parentInstance;
8044 	GtkPopoverPrivate* priv;
8045 }
8046 
8047 struct GtkPopoverAccessible
8048 {
8049 	GtkContainerAccessible parent;
8050 }
8051 
8052 struct GtkPopoverAccessibleClass
8053 {
8054 	GtkContainerAccessibleClass parentClass;
8055 }
8056 
8057 struct GtkPopoverClass
8058 {
8059 	GtkBinClass parentClass;
8060 	/** */
8061 	extern(C) void function(GtkPopover* popover) closed;
8062 	void*[10] reserved;
8063 }
8064 
8065 struct GtkPopoverMenu;
8066 
8067 struct GtkPopoverMenuClass
8068 {
8069 	GtkPopoverClass parentClass;
8070 	void*[10] reserved;
8071 }
8072 
8073 struct GtkPopoverPrivate;
8074 
8075 struct GtkPrintContext;
8076 
8077 struct GtkPrintOperation
8078 {
8079 	GObject parentInstance;
8080 	GtkPrintOperationPrivate* priv;
8081 }
8082 
8083 struct GtkPrintOperationClass
8084 {
8085 	/**
8086 	 * The parent class.
8087 	 */
8088 	GObjectClass parentClass;
8089 	/** */
8090 	extern(C) void function(GtkPrintOperation* operation, GtkPrintOperationResult result) done;
8091 	/** */
8092 	extern(C) void function(GtkPrintOperation* operation, GtkPrintContext* context) beginPrint;
8093 	/** */
8094 	extern(C) int function(GtkPrintOperation* operation, GtkPrintContext* context) paginate;
8095 	/** */
8096 	extern(C) void function(GtkPrintOperation* operation, GtkPrintContext* context, int pageNr, GtkPageSetup* setup) requestPageSetup;
8097 	/** */
8098 	extern(C) void function(GtkPrintOperation* operation, GtkPrintContext* context, int pageNr) drawPage;
8099 	/** */
8100 	extern(C) void function(GtkPrintOperation* operation, GtkPrintContext* context) endPrint;
8101 	/** */
8102 	extern(C) void function(GtkPrintOperation* operation) statusChanged;
8103 	/** */
8104 	extern(C) GtkWidget* function(GtkPrintOperation* operation) createCustomWidget;
8105 	/** */
8106 	extern(C) void function(GtkPrintOperation* operation, GtkWidget* widget) customWidgetApply;
8107 	/** */
8108 	extern(C) int function(GtkPrintOperation* operation, GtkPrintOperationPreview* preview, GtkPrintContext* context, GtkWindow* parent) preview;
8109 	/** */
8110 	extern(C) void function(GtkPrintOperation* operation, GtkWidget* widget, GtkPageSetup* setup, GtkPrintSettings* settings) updateCustomWidget;
8111 	/** */
8112 	extern(C) void function() GtkReserved1;
8113 	/** */
8114 	extern(C) void function() GtkReserved2;
8115 	/** */
8116 	extern(C) void function() GtkReserved3;
8117 	/** */
8118 	extern(C) void function() GtkReserved4;
8119 	/** */
8120 	extern(C) void function() GtkReserved5;
8121 	/** */
8122 	extern(C) void function() GtkReserved6;
8123 	/** */
8124 	extern(C) void function() GtkReserved7;
8125 	/** */
8126 	extern(C) void function() GtkReserved8;
8127 }
8128 
8129 struct GtkPrintOperationPreview;
8130 
8131 struct GtkPrintOperationPreviewIface
8132 {
8133 	GTypeInterface gIface;
8134 	/** */
8135 	extern(C) void function(GtkPrintOperationPreview* preview, GtkPrintContext* context) ready;
8136 	/** */
8137 	extern(C) void function(GtkPrintOperationPreview* preview, GtkPrintContext* context, GtkPageSetup* pageSetup) gotPageSize;
8138 	/** */
8139 	extern(C) void function(GtkPrintOperationPreview* preview, int pageNr) renderPage;
8140 	/**
8141 	 *
8142 	 * Params:
8143 	 *     preview = a #GtkPrintOperationPreview
8144 	 *     pageNr = a page number
8145 	 * Return: %TRUE if the page has been selected for printing
8146 	 */
8147 	extern(C) int function(GtkPrintOperationPreview* preview, int pageNr) isSelected;
8148 	/** */
8149 	extern(C) void function(GtkPrintOperationPreview* preview) endPreview;
8150 	/** */
8151 	extern(C) void function() GtkReserved1;
8152 	/** */
8153 	extern(C) void function() GtkReserved2;
8154 	/** */
8155 	extern(C) void function() GtkReserved3;
8156 	/** */
8157 	extern(C) void function() GtkReserved4;
8158 	/** */
8159 	extern(C) void function() GtkReserved5;
8160 	/** */
8161 	extern(C) void function() GtkReserved6;
8162 	/** */
8163 	extern(C) void function() GtkReserved7;
8164 	/** */
8165 	extern(C) void function() GtkReserved8;
8166 }
8167 
8168 struct GtkPrintOperationPrivate;
8169 
8170 struct GtkPrintSettings;
8171 
8172 struct GtkProgressBar
8173 {
8174 	GtkWidget parent;
8175 	GtkProgressBarPrivate* priv;
8176 }
8177 
8178 struct GtkProgressBarAccessible
8179 {
8180 	GtkWidgetAccessible parent;
8181 	GtkProgressBarAccessiblePrivate* priv;
8182 }
8183 
8184 struct GtkProgressBarAccessibleClass
8185 {
8186 	GtkWidgetAccessibleClass parentClass;
8187 }
8188 
8189 struct GtkProgressBarAccessiblePrivate;
8190 
8191 struct GtkProgressBarClass
8192 {
8193 	GtkWidgetClass parentClass;
8194 	/** */
8195 	extern(C) void function() GtkReserved1;
8196 	/** */
8197 	extern(C) void function() GtkReserved2;
8198 	/** */
8199 	extern(C) void function() GtkReserved3;
8200 	/** */
8201 	extern(C) void function() GtkReserved4;
8202 }
8203 
8204 struct GtkProgressBarPrivate;
8205 
8206 struct GtkRadioAction
8207 {
8208 	GtkToggleAction parent;
8209 	GtkRadioActionPrivate* privateData;
8210 }
8211 
8212 struct GtkRadioActionClass
8213 {
8214 	GtkToggleActionClass parentClass;
8215 	/** */
8216 	extern(C) void function(GtkRadioAction* action, GtkRadioAction* current) changed;
8217 	/** */
8218 	extern(C) void function() GtkReserved1;
8219 	/** */
8220 	extern(C) void function() GtkReserved2;
8221 	/** */
8222 	extern(C) void function() GtkReserved3;
8223 	/** */
8224 	extern(C) void function() GtkReserved4;
8225 }
8226 
8227 /**
8228  * #GtkRadioActionEntry structs are used with
8229  * gtk_action_group_add_radio_actions() to construct groups of radio actions.
8230  */
8231 struct GtkRadioActionEntry
8232 {
8233 	/**
8234 	 * The name of the action.
8235 	 */
8236 	const(char)* name;
8237 	/**
8238 	 * The stock id for the action, or the name of an icon from the
8239 	 * icon theme.
8240 	 */
8241 	const(char)* stockId;
8242 	/**
8243 	 * The label for the action. This field should typically be marked
8244 	 * for translation, see gtk_action_group_set_translation_domain().
8245 	 */
8246 	const(char)* label;
8247 	/**
8248 	 * The accelerator for the action, in the format understood by
8249 	 * gtk_accelerator_parse().
8250 	 */
8251 	const(char)* accelerator;
8252 	/**
8253 	 * The tooltip for the action. This field should typically be
8254 	 * marked for translation, see gtk_action_group_set_translation_domain().
8255 	 */
8256 	const(char)* tooltip;
8257 	/**
8258 	 * The value to set on the radio action. See
8259 	 * gtk_radio_action_get_current_value().
8260 	 */
8261 	int value;
8262 }
8263 
8264 struct GtkRadioActionPrivate;
8265 
8266 struct GtkRadioButton
8267 {
8268 	GtkCheckButton checkButton;
8269 	GtkRadioButtonPrivate* priv;
8270 }
8271 
8272 struct GtkRadioButtonAccessible
8273 {
8274 	GtkToggleButtonAccessible parent;
8275 	GtkRadioButtonAccessiblePrivate* priv;
8276 }
8277 
8278 struct GtkRadioButtonAccessibleClass
8279 {
8280 	GtkToggleButtonAccessibleClass parentClass;
8281 }
8282 
8283 struct GtkRadioButtonAccessiblePrivate;
8284 
8285 struct GtkRadioButtonClass
8286 {
8287 	GtkCheckButtonClass parentClass;
8288 	/** */
8289 	extern(C) void function(GtkRadioButton* radioButton) groupChanged;
8290 	/** */
8291 	extern(C) void function() GtkReserved1;
8292 	/** */
8293 	extern(C) void function() GtkReserved2;
8294 	/** */
8295 	extern(C) void function() GtkReserved3;
8296 	/** */
8297 	extern(C) void function() GtkReserved4;
8298 }
8299 
8300 struct GtkRadioButtonPrivate;
8301 
8302 struct GtkRadioMenuItem
8303 {
8304 	GtkCheckMenuItem checkMenuItem;
8305 	GtkRadioMenuItemPrivate* priv;
8306 }
8307 
8308 struct GtkRadioMenuItemAccessible
8309 {
8310 	GtkCheckMenuItemAccessible parent;
8311 	GtkRadioMenuItemAccessiblePrivate* priv;
8312 }
8313 
8314 struct GtkRadioMenuItemAccessibleClass
8315 {
8316 	GtkCheckMenuItemAccessibleClass parentClass;
8317 }
8318 
8319 struct GtkRadioMenuItemAccessiblePrivate;
8320 
8321 struct GtkRadioMenuItemClass
8322 {
8323 	GtkCheckMenuItemClass parentClass;
8324 	/** */
8325 	extern(C) void function(GtkRadioMenuItem* radioMenuItem) groupChanged;
8326 	/** */
8327 	extern(C) void function() GtkReserved1;
8328 	/** */
8329 	extern(C) void function() GtkReserved2;
8330 	/** */
8331 	extern(C) void function() GtkReserved3;
8332 	/** */
8333 	extern(C) void function() GtkReserved4;
8334 }
8335 
8336 struct GtkRadioMenuItemPrivate;
8337 
8338 struct GtkRadioToolButton
8339 {
8340 	GtkToggleToolButton parent;
8341 }
8342 
8343 struct GtkRadioToolButtonClass
8344 {
8345 	GtkToggleToolButtonClass parentClass;
8346 	/** */
8347 	extern(C) void function() GtkReserved1;
8348 	/** */
8349 	extern(C) void function() GtkReserved2;
8350 	/** */
8351 	extern(C) void function() GtkReserved3;
8352 	/** */
8353 	extern(C) void function() GtkReserved4;
8354 }
8355 
8356 struct GtkRange
8357 {
8358 	GtkWidget widget;
8359 	GtkRangePrivate* priv;
8360 }
8361 
8362 struct GtkRangeAccessible
8363 {
8364 	GtkWidgetAccessible parent;
8365 	GtkRangeAccessiblePrivate* priv;
8366 }
8367 
8368 struct GtkRangeAccessibleClass
8369 {
8370 	GtkWidgetAccessibleClass parentClass;
8371 }
8372 
8373 struct GtkRangeAccessiblePrivate;
8374 
8375 struct GtkRangeClass
8376 {
8377 	GtkWidgetClass parentClass;
8378 	char* sliderDetail;
8379 	char* stepperDetail;
8380 	/** */
8381 	extern(C) void function(GtkRange* range) valueChanged;
8382 	/** */
8383 	extern(C) void function(GtkRange* range, double newValue) adjustBounds;
8384 	/** */
8385 	extern(C) void function(GtkRange* range, GtkScrollType scroll) moveSlider;
8386 	/** */
8387 	extern(C) void function(GtkRange* range, GtkBorder* border) getRangeBorder;
8388 	/** */
8389 	extern(C) int function(GtkRange* range, GtkScrollType scroll, double newValue) changeValue;
8390 	/** */
8391 	extern(C) void function(GtkRange* range, GtkOrientation orientation, int* minimum, int* natural) getRangeSizeRequest;
8392 	/** */
8393 	extern(C) void function() GtkReserved1;
8394 	/** */
8395 	extern(C) void function() GtkReserved2;
8396 	/** */
8397 	extern(C) void function() GtkReserved3;
8398 }
8399 
8400 struct GtkRangePrivate;
8401 
8402 struct GtkRcContext;
8403 
8404 /**
8405  * Deprecated
8406  */
8407 struct GtkRcProperty
8408 {
8409 	/**
8410 	 * quark-ified type identifier
8411 	 */
8412 	GQuark typeName;
8413 	/**
8414 	 * quark-ified property identifier like
8415 	 * “GtkScrollbar::spacing”
8416 	 */
8417 	GQuark propertyName;
8418 	/**
8419 	 * field similar to one found in #GtkSettingsValue
8420 	 */
8421 	char* origin;
8422 	/**
8423 	 * field similar to one found in #GtkSettingsValue
8424 	 */
8425 	GValue value;
8426 }
8427 
8428 struct GtkRcStyle
8429 {
8430 	GObject parentInstance;
8431 	/**
8432 	 * Name
8433 	 */
8434 	char* name;
8435 	/**
8436 	 * Pixmap name
8437 	 */
8438 	char*[5] bgPixmapName;
8439 	/**
8440 	 * A #PangoFontDescription
8441 	 */
8442 	PangoFontDescription* fontDesc;
8443 	/**
8444 	 * #GtkRcFlags
8445 	 */
8446 	GtkRcFlags[5] colorFlags;
8447 	/**
8448 	 * Foreground colors
8449 	 */
8450 	GdkColor[5] fg;
8451 	/**
8452 	 * Background colors
8453 	 */
8454 	GdkColor[5] bg;
8455 	/**
8456 	 * Text colors
8457 	 */
8458 	GdkColor[5] text;
8459 	/**
8460 	 * Base colors
8461 	 */
8462 	GdkColor[5] base;
8463 	/**
8464 	 * X thickness
8465 	 */
8466 	int xthickness;
8467 	/**
8468 	 * Y thickness
8469 	 */
8470 	int ythickness;
8471 	GArray* rcProperties;
8472 	GSList* rcStyleLists;
8473 	GSList* iconFactories;
8474 	import std.bitmanip: bitfields;
8475 	mixin(bitfields!(
8476 		uint, "engineSpecified", 1,
8477 		uint, "", 31
8478 	));
8479 }
8480 
8481 struct GtkRcStyleClass
8482 {
8483 	/**
8484 	 * The parent class.
8485 	 */
8486 	GObjectClass parentClass;
8487 	/** */
8488 	extern(C) GtkRcStyle* function(GtkRcStyle* rcStyle) createRcStyle;
8489 	/** */
8490 	extern(C) uint function(GtkRcStyle* rcStyle, GtkSettings* settings, GScanner* scanner) parse;
8491 	/** */
8492 	extern(C) void function(GtkRcStyle* dest, GtkRcStyle* src) merge;
8493 	/** */
8494 	extern(C) GtkStyle* function(GtkRcStyle* rcStyle) createStyle;
8495 	/** */
8496 	extern(C) void function() GtkReserved1;
8497 	/** */
8498 	extern(C) void function() GtkReserved2;
8499 	/** */
8500 	extern(C) void function() GtkReserved3;
8501 	/** */
8502 	extern(C) void function() GtkReserved4;
8503 }
8504 
8505 struct GtkRecentAction
8506 {
8507 	GtkAction parentInstance;
8508 	GtkRecentActionPrivate* priv;
8509 }
8510 
8511 struct GtkRecentActionClass
8512 {
8513 	GtkActionClass parentClass;
8514 	/** */
8515 	extern(C) void function() GtkReserved1;
8516 	/** */
8517 	extern(C) void function() GtkReserved2;
8518 	/** */
8519 	extern(C) void function() GtkReserved3;
8520 	/** */
8521 	extern(C) void function() GtkReserved4;
8522 }
8523 
8524 struct GtkRecentActionPrivate;
8525 
8526 struct GtkRecentChooser;
8527 
8528 struct GtkRecentChooserDialog
8529 {
8530 	GtkDialog parentInstance;
8531 	GtkRecentChooserDialogPrivate* priv;
8532 }
8533 
8534 struct GtkRecentChooserDialogClass
8535 {
8536 	GtkDialogClass parentClass;
8537 	/** */
8538 	extern(C) void function() GtkReserved1;
8539 	/** */
8540 	extern(C) void function() GtkReserved2;
8541 	/** */
8542 	extern(C) void function() GtkReserved3;
8543 	/** */
8544 	extern(C) void function() GtkReserved4;
8545 }
8546 
8547 struct GtkRecentChooserDialogPrivate;
8548 
8549 struct GtkRecentChooserIface
8550 {
8551 	GTypeInterface baseIface;
8552 	/**
8553 	 *
8554 	 * Params:
8555 	 *     chooser = a #GtkRecentChooser
8556 	 *     uri = a URI
8557 	 * Return: %TRUE if the URI was found.
8558 	 *
8559 	 * Throws: GException on failure.
8560 	 */
8561 	extern(C) int function(GtkRecentChooser* chooser, const(char)* uri, GError** err) setCurrentUri;
8562 	/**
8563 	 *
8564 	 * Params:
8565 	 *     chooser = a #GtkRecentChooser
8566 	 * Return: a newly allocated string holding a URI.
8567 	 */
8568 	extern(C) char* function(GtkRecentChooser* chooser) getCurrentUri;
8569 	/**
8570 	 *
8571 	 * Params:
8572 	 *     chooser = a #GtkRecentChooser
8573 	 *     uri = a URI
8574 	 * Return: %TRUE if @uri was found.
8575 	 *
8576 	 * Throws: GException on failure.
8577 	 */
8578 	extern(C) int function(GtkRecentChooser* chooser, const(char)* uri, GError** err) selectUri;
8579 	/** */
8580 	extern(C) void function(GtkRecentChooser* chooser, const(char)* uri) unselectUri;
8581 	/** */
8582 	extern(C) void function(GtkRecentChooser* chooser) selectAll;
8583 	/** */
8584 	extern(C) void function(GtkRecentChooser* chooser) unselectAll;
8585 	/**
8586 	 *
8587 	 * Params:
8588 	 *     chooser = a #GtkRecentChooser
8589 	 * Return: A newly allocated
8590 	 *     list of #GtkRecentInfo objects.  You should
8591 	 *     use gtk_recent_info_unref() on every item of the list, and then free
8592 	 *     the list itself using g_list_free().
8593 	 */
8594 	extern(C) GList* function(GtkRecentChooser* chooser) getItems;
8595 	/** */
8596 	extern(C) GtkRecentManager* function(GtkRecentChooser* chooser) getRecentManager;
8597 	/** */
8598 	extern(C) void function(GtkRecentChooser* chooser, GtkRecentFilter* filter) addFilter;
8599 	/** */
8600 	extern(C) void function(GtkRecentChooser* chooser, GtkRecentFilter* filter) removeFilter;
8601 	/**
8602 	 *
8603 	 * Params:
8604 	 *     chooser = a #GtkRecentChooser
8605 	 * Return: A singly linked list
8606 	 *     of #GtkRecentFilter objects.  You
8607 	 *     should just free the returned list using g_slist_free().
8608 	 */
8609 	extern(C) GSList* function(GtkRecentChooser* chooser) listFilters;
8610 	/** */
8611 	extern(C) void function(GtkRecentChooser* chooser, GtkRecentSortFunc sortFunc, void* sortData, GDestroyNotify dataDestroy) setSortFunc;
8612 	/** */
8613 	extern(C) void function(GtkRecentChooser* chooser) itemActivated;
8614 	/** */
8615 	extern(C) void function(GtkRecentChooser* chooser) selectionChanged;
8616 }
8617 
8618 struct GtkRecentChooserMenu
8619 {
8620 	GtkMenu parentInstance;
8621 	GtkRecentChooserMenuPrivate* priv;
8622 }
8623 
8624 struct GtkRecentChooserMenuClass
8625 {
8626 	GtkMenuClass parentClass;
8627 	/** */
8628 	extern(C) void function() gtkRecent1;
8629 	/** */
8630 	extern(C) void function() gtkRecent2;
8631 	/** */
8632 	extern(C) void function() gtkRecent3;
8633 	/** */
8634 	extern(C) void function() gtkRecent4;
8635 }
8636 
8637 struct GtkRecentChooserMenuPrivate;
8638 
8639 struct GtkRecentChooserWidget
8640 {
8641 	GtkBox parentInstance;
8642 	GtkRecentChooserWidgetPrivate* priv;
8643 }
8644 
8645 struct GtkRecentChooserWidgetClass
8646 {
8647 	GtkBoxClass parentClass;
8648 	/** */
8649 	extern(C) void function() GtkReserved1;
8650 	/** */
8651 	extern(C) void function() GtkReserved2;
8652 	/** */
8653 	extern(C) void function() GtkReserved3;
8654 	/** */
8655 	extern(C) void function() GtkReserved4;
8656 }
8657 
8658 struct GtkRecentChooserWidgetPrivate;
8659 
8660 /**
8661  * Meta-data to be passed to gtk_recent_manager_add_full() when
8662  * registering a recently used resource.
8663  */
8664 struct GtkRecentData
8665 {
8666 	/**
8667 	 * a UTF-8 encoded string, containing the name of the recently
8668 	 * used resource to be displayed, or %NULL;
8669 	 */
8670 	char* displayName;
8671 	/**
8672 	 * a UTF-8 encoded string, containing a short description of
8673 	 * the resource, or %NULL;
8674 	 */
8675 	char* description;
8676 	/**
8677 	 * the MIME type of the resource;
8678 	 */
8679 	char* mimeType;
8680 	/**
8681 	 * the name of the application that is registering this recently
8682 	 * used resource;
8683 	 */
8684 	char* appName;
8685 	/**
8686 	 * command line used to launch this resource; may contain the
8687 	 * “\%f” and “\%u” escape characters which will be expanded
8688 	 * to the resource file path and URI respectively when the command line
8689 	 * is retrieved;
8690 	 */
8691 	char* appExec;
8692 	/**
8693 	 * a vector of strings containing
8694 	 * groups names;
8695 	 */
8696 	char** groups;
8697 	/**
8698 	 * whether this resource should be displayed only by the
8699 	 * applications that have registered it or not.
8700 	 */
8701 	bool isPrivate;
8702 }
8703 
8704 struct GtkRecentFilter;
8705 
8706 /**
8707  * A GtkRecentFilterInfo struct is used
8708  * to pass information about the tested file to gtk_recent_filter_filter().
8709  */
8710 struct GtkRecentFilterInfo
8711 {
8712 	/**
8713 	 * #GtkRecentFilterFlags to indicate which fields are set.
8714 	 */
8715 	GtkRecentFilterFlags contains;
8716 	/**
8717 	 * The URI of the file being tested.
8718 	 */
8719 	const(char)* uri;
8720 	/**
8721 	 * The string that will be used to display
8722 	 * the file in the recent chooser.
8723 	 */
8724 	const(char)* displayName;
8725 	/**
8726 	 * MIME type of the file.
8727 	 */
8728 	const(char)* mimeType;
8729 	/**
8730 	 * The list of
8731 	 * applications that have registered the file.
8732 	 */
8733 	char** applications;
8734 	/**
8735 	 * The groups to which
8736 	 * the file belongs to.
8737 	 */
8738 	char** groups;
8739 	/**
8740 	 * The number of days elapsed since the file has been
8741 	 * registered.
8742 	 */
8743 	int age;
8744 }
8745 
8746 struct GtkRecentInfo;
8747 
8748 struct GtkRecentManager
8749 {
8750 	GObject parentInstance;
8751 	GtkRecentManagerPrivate* priv;
8752 }
8753 
8754 /**
8755  * #GtkRecentManagerClass contains only private data.
8756  *
8757  * Since: 2.10
8758  */
8759 struct GtkRecentManagerClass
8760 {
8761 	GObjectClass parentClass;
8762 	/** */
8763 	extern(C) void function(GtkRecentManager* manager) changed;
8764 	/** */
8765 	extern(C) void function() GtkRecent1;
8766 	/** */
8767 	extern(C) void function() GtkRecent2;
8768 	/** */
8769 	extern(C) void function() GtkRecent3;
8770 	/** */
8771 	extern(C) void function() GtkRecent4;
8772 }
8773 
8774 struct GtkRecentManagerPrivate;
8775 
8776 struct GtkRendererCellAccessible
8777 {
8778 	GtkCellAccessible parent;
8779 	GtkRendererCellAccessiblePrivate* priv;
8780 }
8781 
8782 struct GtkRendererCellAccessibleClass
8783 {
8784 	GtkCellAccessibleClass parentClass;
8785 }
8786 
8787 struct GtkRendererCellAccessiblePrivate;
8788 
8789 /**
8790  * Represents a request of a screen object in a given orientation. These
8791  * are primarily used in container implementations when allocating a natural
8792  * size for children calling. See gtk_distribute_natural_allocation().
8793  */
8794 struct GtkRequestedSize
8795 {
8796 	/**
8797 	 * A client pointer
8798 	 */
8799 	void* data;
8800 	/**
8801 	 * The minimum size needed for allocation in a given orientation
8802 	 */
8803 	int minimumSize;
8804 	/**
8805 	 * The natural size for allocation in a given orientation
8806 	 */
8807 	int naturalSize;
8808 }
8809 
8810 struct GtkRequisition
8811 {
8812 	/**
8813 	 * the widget’s desired width
8814 	 */
8815 	int width;
8816 	/**
8817 	 * the widget’s desired height
8818 	 */
8819 	int height;
8820 }
8821 
8822 struct GtkRevealer
8823 {
8824 	GtkBin parentInstance;
8825 }
8826 
8827 struct GtkRevealerClass
8828 {
8829 	/**
8830 	 * The parent class.
8831 	 */
8832 	GtkBinClass parentClass;
8833 }
8834 
8835 struct GtkScale
8836 {
8837 	GtkRange range;
8838 	GtkScalePrivate* priv;
8839 }
8840 
8841 struct GtkScaleAccessible
8842 {
8843 	GtkRangeAccessible parent;
8844 	GtkScaleAccessiblePrivate* priv;
8845 }
8846 
8847 struct GtkScaleAccessibleClass
8848 {
8849 	GtkRangeAccessibleClass parentClass;
8850 }
8851 
8852 struct GtkScaleAccessiblePrivate;
8853 
8854 struct GtkScaleButton
8855 {
8856 	GtkButton parent;
8857 	GtkScaleButtonPrivate* priv;
8858 }
8859 
8860 struct GtkScaleButtonAccessible
8861 {
8862 	GtkButtonAccessible parent;
8863 	GtkScaleButtonAccessiblePrivate* priv;
8864 }
8865 
8866 struct GtkScaleButtonAccessibleClass
8867 {
8868 	GtkButtonAccessibleClass parentClass;
8869 }
8870 
8871 struct GtkScaleButtonAccessiblePrivate;
8872 
8873 struct GtkScaleButtonClass
8874 {
8875 	GtkButtonClass parentClass;
8876 	/** */
8877 	extern(C) void function(GtkScaleButton* button, double value) valueChanged;
8878 	/** */
8879 	extern(C) void function() GtkReserved1;
8880 	/** */
8881 	extern(C) void function() GtkReserved2;
8882 	/** */
8883 	extern(C) void function() GtkReserved3;
8884 	/** */
8885 	extern(C) void function() GtkReserved4;
8886 }
8887 
8888 struct GtkScaleButtonPrivate;
8889 
8890 struct GtkScaleClass
8891 {
8892 	GtkRangeClass parentClass;
8893 	/** */
8894 	extern(C) char* function(GtkScale* scale, double value) formatValue;
8895 	/** */
8896 	extern(C) void function(GtkScale* scale) drawValue;
8897 	/** */
8898 	extern(C) void function(GtkScale* scale, int* x, int* y) getLayoutOffsets;
8899 	/** */
8900 	extern(C) void function() GtkReserved1;
8901 	/** */
8902 	extern(C) void function() GtkReserved2;
8903 	/** */
8904 	extern(C) void function() GtkReserved3;
8905 	/** */
8906 	extern(C) void function() GtkReserved4;
8907 }
8908 
8909 struct GtkScalePrivate;
8910 
8911 struct GtkScrollable;
8912 
8913 struct GtkScrollableInterface
8914 {
8915 	GTypeInterface baseIface;
8916 	/**
8917 	 *
8918 	 * Params:
8919 	 *     scrollable = a #GtkScrollable
8920 	 *     border = return location for the results
8921 	 * Return: %TRUE if @border has been set
8922 	 */
8923 	extern(C) int function(GtkScrollable* scrollable, GtkBorder* border) getBorder;
8924 }
8925 
8926 struct GtkScrollbar
8927 {
8928 	GtkRange range;
8929 }
8930 
8931 struct GtkScrollbarClass
8932 {
8933 	GtkRangeClass parentClass;
8934 	/** */
8935 	extern(C) void function() GtkReserved1;
8936 	/** */
8937 	extern(C) void function() GtkReserved2;
8938 	/** */
8939 	extern(C) void function() GtkReserved3;
8940 	/** */
8941 	extern(C) void function() GtkReserved4;
8942 }
8943 
8944 struct GtkScrolledWindow
8945 {
8946 	GtkBin container;
8947 	GtkScrolledWindowPrivate* priv;
8948 }
8949 
8950 struct GtkScrolledWindowAccessible
8951 {
8952 	GtkContainerAccessible parent;
8953 	GtkScrolledWindowAccessiblePrivate* priv;
8954 }
8955 
8956 struct GtkScrolledWindowAccessibleClass
8957 {
8958 	GtkContainerAccessibleClass parentClass;
8959 }
8960 
8961 struct GtkScrolledWindowAccessiblePrivate;
8962 
8963 struct GtkScrolledWindowClass
8964 {
8965 	/**
8966 	 * The parent class.
8967 	 */
8968 	GtkBinClass parentClass;
8969 	int scrollbarSpacing;
8970 	/** */
8971 	extern(C) int function(GtkScrolledWindow* scrolledWindow, GtkScrollType scroll, int horizontal) scrollChild;
8972 	/** */
8973 	extern(C) void function(GtkScrolledWindow* scrolledWindow, GtkDirectionType direction) moveFocusOut;
8974 	/** */
8975 	extern(C) void function() GtkReserved1;
8976 	/** */
8977 	extern(C) void function() GtkReserved2;
8978 	/** */
8979 	extern(C) void function() GtkReserved3;
8980 	/** */
8981 	extern(C) void function() GtkReserved4;
8982 }
8983 
8984 struct GtkScrolledWindowPrivate;
8985 
8986 struct GtkSearchBar
8987 {
8988 	GtkBin parent;
8989 }
8990 
8991 struct GtkSearchBarClass
8992 {
8993 	/**
8994 	 * The parent class.
8995 	 */
8996 	GtkBinClass parentClass;
8997 	/** */
8998 	extern(C) void function() GtkReserved1;
8999 	/** */
9000 	extern(C) void function() GtkReserved2;
9001 	/** */
9002 	extern(C) void function() GtkReserved3;
9003 	/** */
9004 	extern(C) void function() GtkReserved4;
9005 }
9006 
9007 struct GtkSearchEntry
9008 {
9009 	GtkEntry parent;
9010 }
9011 
9012 struct GtkSearchEntryClass
9013 {
9014 	GtkEntryClass parentClass;
9015 	/** */
9016 	extern(C) void function(GtkSearchEntry* entry) searchChanged;
9017 	/** */
9018 	extern(C) void function(GtkSearchEntry* entry) nextMatch;
9019 	/** */
9020 	extern(C) void function(GtkSearchEntry* entry) previousMatch;
9021 	/** */
9022 	extern(C) void function(GtkSearchEntry* entry) stopSearch;
9023 }
9024 
9025 struct GtkSelectionData;
9026 
9027 struct GtkSeparator
9028 {
9029 	GtkWidget widget;
9030 	GtkSeparatorPrivate* priv;
9031 }
9032 
9033 struct GtkSeparatorClass
9034 {
9035 	GtkWidgetClass parentClass;
9036 	/** */
9037 	extern(C) void function() GtkReserved1;
9038 	/** */
9039 	extern(C) void function() GtkReserved2;
9040 	/** */
9041 	extern(C) void function() GtkReserved3;
9042 	/** */
9043 	extern(C) void function() GtkReserved4;
9044 }
9045 
9046 struct GtkSeparatorMenuItem
9047 {
9048 	GtkMenuItem menuItem;
9049 }
9050 
9051 struct GtkSeparatorMenuItemClass
9052 {
9053 	/**
9054 	 * The parent class.
9055 	 */
9056 	GtkMenuItemClass parentClass;
9057 	/** */
9058 	extern(C) void function() GtkReserved1;
9059 	/** */
9060 	extern(C) void function() GtkReserved2;
9061 	/** */
9062 	extern(C) void function() GtkReserved3;
9063 	/** */
9064 	extern(C) void function() GtkReserved4;
9065 }
9066 
9067 struct GtkSeparatorPrivate;
9068 
9069 struct GtkSeparatorToolItem
9070 {
9071 	GtkToolItem parent;
9072 	GtkSeparatorToolItemPrivate* priv;
9073 }
9074 
9075 struct GtkSeparatorToolItemClass
9076 {
9077 	/**
9078 	 * The parent class.
9079 	 */
9080 	GtkToolItemClass parentClass;
9081 	/** */
9082 	extern(C) void function() GtkReserved1;
9083 	/** */
9084 	extern(C) void function() GtkReserved2;
9085 	/** */
9086 	extern(C) void function() GtkReserved3;
9087 	/** */
9088 	extern(C) void function() GtkReserved4;
9089 }
9090 
9091 struct GtkSeparatorToolItemPrivate;
9092 
9093 struct GtkSettings
9094 {
9095 	GObject parentInstance;
9096 	GtkSettingsPrivate* priv;
9097 }
9098 
9099 struct GtkSettingsClass
9100 {
9101 	GObjectClass parentClass;
9102 	/** */
9103 	extern(C) void function() GtkReserved1;
9104 	/** */
9105 	extern(C) void function() GtkReserved2;
9106 	/** */
9107 	extern(C) void function() GtkReserved3;
9108 	/** */
9109 	extern(C) void function() GtkReserved4;
9110 }
9111 
9112 struct GtkSettingsPrivate;
9113 
9114 struct GtkSettingsValue
9115 {
9116 	/**
9117 	 * Origin should be something like “filename:linenumber” for
9118 	 * rc files, or e.g. “XProperty” for other sources.
9119 	 */
9120 	char* origin;
9121 	/**
9122 	 * Valid types are LONG, DOUBLE and STRING corresponding to
9123 	 * the token parsed, or a GSTRING holding an unparsed statement
9124 	 */
9125 	GValue value;
9126 }
9127 
9128 struct GtkShortcutLabel;
9129 
9130 struct GtkShortcutLabelClass;
9131 
9132 struct GtkShortcutsGroup;
9133 
9134 struct GtkShortcutsGroupClass;
9135 
9136 struct GtkShortcutsSection;
9137 
9138 struct GtkShortcutsSectionClass;
9139 
9140 struct GtkShortcutsShortcut;
9141 
9142 struct GtkShortcutsShortcutClass;
9143 
9144 struct GtkShortcutsWindow
9145 {
9146 	GtkWindow window;
9147 }
9148 
9149 struct GtkShortcutsWindowClass
9150 {
9151 	GtkWindowClass parentClass;
9152 	/** */
9153 	extern(C) void function(GtkShortcutsWindow* self) close;
9154 	/** */
9155 	extern(C) void function(GtkShortcutsWindow* self) search;
9156 }
9157 
9158 struct GtkSizeGroup
9159 {
9160 	GObject parentInstance;
9161 	GtkSizeGroupPrivate* priv;
9162 }
9163 
9164 struct GtkSizeGroupClass
9165 {
9166 	GObjectClass parentClass;
9167 	/** */
9168 	extern(C) void function() GtkReserved1;
9169 	/** */
9170 	extern(C) void function() GtkReserved2;
9171 	/** */
9172 	extern(C) void function() GtkReserved3;
9173 	/** */
9174 	extern(C) void function() GtkReserved4;
9175 }
9176 
9177 struct GtkSizeGroupPrivate;
9178 
9179 struct GtkSocket
9180 {
9181 	GtkContainer container;
9182 	GtkSocketPrivate* priv;
9183 }
9184 
9185 struct GtkSocketClass
9186 {
9187 	GtkContainerClass parentClass;
9188 	/** */
9189 	extern(C) void function(GtkSocket* socket) plugAdded;
9190 	/** */
9191 	extern(C) int function(GtkSocket* socket) plugRemoved;
9192 	/** */
9193 	extern(C) void function() GtkReserved1;
9194 	/** */
9195 	extern(C) void function() GtkReserved2;
9196 	/** */
9197 	extern(C) void function() GtkReserved3;
9198 	/** */
9199 	extern(C) void function() GtkReserved4;
9200 }
9201 
9202 struct GtkSocketPrivate;
9203 
9204 struct GtkSpinButton
9205 {
9206 	GtkEntry entry;
9207 	GtkSpinButtonPrivate* priv;
9208 }
9209 
9210 struct GtkSpinButtonAccessible
9211 {
9212 	GtkEntryAccessible parent;
9213 	GtkSpinButtonAccessiblePrivate* priv;
9214 }
9215 
9216 struct GtkSpinButtonAccessibleClass
9217 {
9218 	GtkEntryAccessibleClass parentClass;
9219 }
9220 
9221 struct GtkSpinButtonAccessiblePrivate;
9222 
9223 struct GtkSpinButtonClass
9224 {
9225 	GtkEntryClass parentClass;
9226 	/** */
9227 	extern(C) int function(GtkSpinButton* spinButton, double* newValue) input;
9228 	/** */
9229 	extern(C) int function(GtkSpinButton* spinButton) output;
9230 	/** */
9231 	extern(C) void function(GtkSpinButton* spinButton) valueChanged;
9232 	/** */
9233 	extern(C) void function(GtkSpinButton* spinButton, GtkScrollType scroll) changeValue;
9234 	/** */
9235 	extern(C) void function(GtkSpinButton* spinButton) wrapped;
9236 	/** */
9237 	extern(C) void function() GtkReserved1;
9238 	/** */
9239 	extern(C) void function() GtkReserved2;
9240 	/** */
9241 	extern(C) void function() GtkReserved3;
9242 	/** */
9243 	extern(C) void function() GtkReserved4;
9244 }
9245 
9246 struct GtkSpinButtonPrivate;
9247 
9248 struct GtkSpinner
9249 {
9250 	GtkWidget parent;
9251 	GtkSpinnerPrivate* priv;
9252 }
9253 
9254 struct GtkSpinnerAccessible
9255 {
9256 	GtkWidgetAccessible parent;
9257 	GtkSpinnerAccessiblePrivate* priv;
9258 }
9259 
9260 struct GtkSpinnerAccessibleClass
9261 {
9262 	GtkWidgetAccessibleClass parentClass;
9263 }
9264 
9265 struct GtkSpinnerAccessiblePrivate;
9266 
9267 struct GtkSpinnerClass
9268 {
9269 	GtkWidgetClass parentClass;
9270 	/** */
9271 	extern(C) void function() GtkReserved1;
9272 	/** */
9273 	extern(C) void function() GtkReserved2;
9274 	/** */
9275 	extern(C) void function() GtkReserved3;
9276 	/** */
9277 	extern(C) void function() GtkReserved4;
9278 }
9279 
9280 struct GtkSpinnerPrivate;
9281 
9282 struct GtkStack
9283 {
9284 	GtkContainer parentInstance;
9285 }
9286 
9287 struct GtkStackAccessible
9288 {
9289 	GtkContainerAccessible parent;
9290 }
9291 
9292 struct GtkStackAccessibleClass
9293 {
9294 	GtkContainerAccessibleClass parentClass;
9295 }
9296 
9297 struct GtkStackClass
9298 {
9299 	GtkContainerClass parentClass;
9300 }
9301 
9302 struct GtkStackSidebar
9303 {
9304 	GtkBin parent;
9305 }
9306 
9307 struct GtkStackSidebarClass
9308 {
9309 	GtkBinClass parentClass;
9310 	/** */
9311 	extern(C) void function() GtkReserved1;
9312 	/** */
9313 	extern(C) void function() GtkReserved2;
9314 	/** */
9315 	extern(C) void function() GtkReserved3;
9316 	/** */
9317 	extern(C) void function() GtkReserved4;
9318 }
9319 
9320 struct GtkStackSidebarPrivate;
9321 
9322 struct GtkStackSwitcher
9323 {
9324 	GtkBox widget;
9325 }
9326 
9327 struct GtkStackSwitcherClass
9328 {
9329 	GtkBoxClass parentClass;
9330 	/** */
9331 	extern(C) void function() GtkReserved1;
9332 	/** */
9333 	extern(C) void function() GtkReserved2;
9334 	/** */
9335 	extern(C) void function() GtkReserved3;
9336 	/** */
9337 	extern(C) void function() GtkReserved4;
9338 }
9339 
9340 struct GtkStatusIcon
9341 {
9342 	GObject parentInstance;
9343 	GtkStatusIconPrivate* priv;
9344 }
9345 
9346 struct GtkStatusIconClass
9347 {
9348 	GObjectClass parentClass;
9349 	/** */
9350 	extern(C) void function(GtkStatusIcon* statusIcon) activate;
9351 	/** */
9352 	extern(C) void function(GtkStatusIcon* statusIcon, uint button, uint activateTime) popupMenu;
9353 	/** */
9354 	extern(C) int function(GtkStatusIcon* statusIcon, int size) sizeChanged;
9355 	/** */
9356 	extern(C) int function(GtkStatusIcon* statusIcon, GdkEventButton* event) buttonPressEvent;
9357 	/** */
9358 	extern(C) int function(GtkStatusIcon* statusIcon, GdkEventButton* event) buttonReleaseEvent;
9359 	/** */
9360 	extern(C) int function(GtkStatusIcon* statusIcon, GdkEventScroll* event) scrollEvent;
9361 	/** */
9362 	extern(C) int function(GtkStatusIcon* statusIcon, int x, int y, int keyboardMode, GtkTooltip* tooltip) queryTooltip;
9363 	void* GtkReserved1;
9364 	void* GtkReserved2;
9365 	void* GtkReserved3;
9366 	void* GtkReserved4;
9367 }
9368 
9369 struct GtkStatusIconPrivate;
9370 
9371 struct GtkStatusbar
9372 {
9373 	GtkBox parentWidget;
9374 	GtkStatusbarPrivate* priv;
9375 }
9376 
9377 struct GtkStatusbarAccessible
9378 {
9379 	GtkContainerAccessible parent;
9380 	GtkStatusbarAccessiblePrivate* priv;
9381 }
9382 
9383 struct GtkStatusbarAccessibleClass
9384 {
9385 	GtkContainerAccessibleClass parentClass;
9386 }
9387 
9388 struct GtkStatusbarAccessiblePrivate;
9389 
9390 struct GtkStatusbarClass
9391 {
9392 	GtkBoxClass parentClass;
9393 	void* reserved;
9394 	/** */
9395 	extern(C) void function(GtkStatusbar* statusbar, uint contextId, const(char)* text) textPushed;
9396 	/** */
9397 	extern(C) void function(GtkStatusbar* statusbar, uint contextId, const(char)* text) textPopped;
9398 	/** */
9399 	extern(C) void function() GtkReserved1;
9400 	/** */
9401 	extern(C) void function() GtkReserved2;
9402 	/** */
9403 	extern(C) void function() GtkReserved3;
9404 	/** */
9405 	extern(C) void function() GtkReserved4;
9406 }
9407 
9408 struct GtkStatusbarPrivate;
9409 
9410 struct GtkStockItem
9411 {
9412 	/**
9413 	 * Identifier.
9414 	 */
9415 	char* stockId;
9416 	/**
9417 	 * User visible label.
9418 	 */
9419 	char* label;
9420 	/**
9421 	 * Modifier type for keyboard accelerator
9422 	 */
9423 	GdkModifierType modifier;
9424 	/**
9425 	 * Keyboard accelerator
9426 	 */
9427 	uint keyval;
9428 	/**
9429 	 * Translation domain of the menu or toolbar item
9430 	 */
9431 	char* translationDomain;
9432 }
9433 
9434 struct GtkStyle
9435 {
9436 	GObject parentInstance;
9437 	/**
9438 	 * Set of foreground #GdkColor
9439 	 */
9440 	GdkColor[5] fg;
9441 	/**
9442 	 * Set of background #GdkColor
9443 	 */
9444 	GdkColor[5] bg;
9445 	/**
9446 	 * Set of light #GdkColor
9447 	 */
9448 	GdkColor[5] light;
9449 	/**
9450 	 * Set of dark #GdkColor
9451 	 */
9452 	GdkColor[5] dark;
9453 	/**
9454 	 * Set of mid #GdkColor
9455 	 */
9456 	GdkColor[5] mid;
9457 	/**
9458 	 * Set of text #GdkColor
9459 	 */
9460 	GdkColor[5] text;
9461 	/**
9462 	 * Set of base #GdkColor
9463 	 */
9464 	GdkColor[5] base;
9465 	/**
9466 	 * Color halfway between text/base
9467 	 */
9468 	GdkColor[5] textAa;
9469 	/**
9470 	 * #GdkColor to use for black
9471 	 */
9472 	GdkColor black;
9473 	/**
9474 	 * #GdkColor to use for white
9475 	 */
9476 	GdkColor white;
9477 	/**
9478 	 * #PangoFontDescription
9479 	 */
9480 	PangoFontDescription* fontDesc;
9481 	/**
9482 	 * Thickness in X direction
9483 	 */
9484 	int xthickness;
9485 	/**
9486 	 * Thickness in Y direction
9487 	 */
9488 	int ythickness;
9489 	/**
9490 	 * Set of background #cairo_pattern_t
9491 	 */
9492 	cairo_pattern_t*[5] background;
9493 	int attachCount;
9494 	GdkVisual* visual;
9495 	PangoFontDescription* privateFontDesc;
9496 	GtkRcStyle* rcStyle;
9497 	GSList* styles;
9498 	GArray* propertyCache;
9499 	GSList* iconFactories;
9500 }
9501 
9502 struct GtkStyleClass
9503 {
9504 	/**
9505 	 * The parent class.
9506 	 */
9507 	GObjectClass parentClass;
9508 	/** */
9509 	extern(C) void function(GtkStyle* style) realize;
9510 	/** */
9511 	extern(C) void function(GtkStyle* style) unrealize;
9512 	/** */
9513 	extern(C) void function(GtkStyle* style, GtkStyle* src) copy;
9514 	/** */
9515 	extern(C) GtkStyle* function(GtkStyle* style) clone;
9516 	/** */
9517 	extern(C) void function(GtkStyle* style, GtkRcStyle* rcStyle) initFromRc;
9518 	/** */
9519 	extern(C) void function(GtkStyle* style, GdkWindow* window, GtkStateType stateType) setBackground;
9520 	/**
9521 	 *
9522 	 * Params:
9523 	 *     style = a #GtkStyle
9524 	 *     source = the #GtkIconSource specifying the icon to render
9525 	 *     direction = a text direction
9526 	 *     state = a state
9527 	 *     size = the size to render the icon at (#GtkIconSize). A size of
9528 	 *         `(GtkIconSize)-1` means render at the size of the source and
9529 	 *         don’t scale.
9530 	 *     widget = the widget
9531 	 *     detail = a style detail
9532 	 * Return: a newly-created #GdkPixbuf
9533 	 *     containing the rendered icon
9534 	 */
9535 	extern(C) GdkPixbuf* function(GtkStyle* style, GtkIconSource* source, GtkTextDirection direction, GtkStateType state, GtkIconSize size, GtkWidget* widget, const(char)* detail) renderIcon;
9536 	/** */
9537 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkWidget* widget, const(char)* detail, int x1, int x2, int y) drawHline;
9538 	/** */
9539 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkWidget* widget, const(char)* detail, int y1, int y2, int x) drawVline;
9540 	/** */
9541 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkShadowType shadowType, GtkWidget* widget, const(char)* detail, int x, int y, int width, int height) drawShadow;
9542 	/** */
9543 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkShadowType shadowType, GtkWidget* widget, const(char)* detail, GtkArrowType arrowType, int fill, int x, int y, int width, int height) drawArrow;
9544 	/** */
9545 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkShadowType shadowType, GtkWidget* widget, const(char)* detail, int x, int y, int width, int height) drawDiamond;
9546 	/** */
9547 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkShadowType shadowType, GtkWidget* widget, const(char)* detail, int x, int y, int width, int height) drawBox;
9548 	/** */
9549 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkShadowType shadowType, GtkWidget* widget, const(char)* detail, int x, int y, int width, int height) drawFlatBox;
9550 	/** */
9551 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkShadowType shadowType, GtkWidget* widget, const(char)* detail, int x, int y, int width, int height) drawCheck;
9552 	/** */
9553 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkShadowType shadowType, GtkWidget* widget, const(char)* detail, int x, int y, int width, int height) drawOption;
9554 	/** */
9555 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkShadowType shadowType, GtkWidget* widget, const(char)* detail, int x, int y, int width, int height) drawTab;
9556 	/** */
9557 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkShadowType shadowType, GtkWidget* widget, const(char)* detail, int x, int y, int width, int height, GtkPositionType gapSide, int gapX, int gapWidth) drawShadowGap;
9558 	/** */
9559 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkShadowType shadowType, GtkWidget* widget, const(char)* detail, int x, int y, int width, int height, GtkPositionType gapSide, int gapX, int gapWidth) drawBoxGap;
9560 	/** */
9561 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkShadowType shadowType, GtkWidget* widget, const(char)* detail, int x, int y, int width, int height, GtkPositionType gapSide) drawExtension;
9562 	/** */
9563 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkWidget* widget, const(char)* detail, int x, int y, int width, int height) drawFocus;
9564 	/** */
9565 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkShadowType shadowType, GtkWidget* widget, const(char)* detail, int x, int y, int width, int height, GtkOrientation orientation) drawSlider;
9566 	/** */
9567 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkShadowType shadowType, GtkWidget* widget, const(char)* detail, int x, int y, int width, int height, GtkOrientation orientation) drawHandle;
9568 	/** */
9569 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkWidget* widget, const(char)* detail, int x, int y, GtkExpanderStyle expanderStyle) drawExpander;
9570 	/** */
9571 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, int useText, GtkWidget* widget, const(char)* detail, int x, int y, PangoLayout* layout) drawLayout;
9572 	/** */
9573 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkWidget* widget, const(char)* detail, GdkWindowEdge edge, int x, int y, int width, int height) drawResizeGrip;
9574 	/** */
9575 	extern(C) void function(GtkStyle* style, cairo_t* cr, GtkStateType stateType, GtkWidget* widget, const(char)* detail, uint step, int x, int y, int width, int height) drawSpinner;
9576 	/** */
9577 	extern(C) void function() GtkReserved1;
9578 	/** */
9579 	extern(C) void function() GtkReserved2;
9580 	/** */
9581 	extern(C) void function() GtkReserved3;
9582 	/** */
9583 	extern(C) void function() GtkReserved4;
9584 	/** */
9585 	extern(C) void function() GtkReserved5;
9586 	/** */
9587 	extern(C) void function() GtkReserved6;
9588 	/** */
9589 	extern(C) void function() GtkReserved7;
9590 	/** */
9591 	extern(C) void function() GtkReserved8;
9592 	/** */
9593 	extern(C) void function() GtkReserved9;
9594 	/** */
9595 	extern(C) void function() GtkReserved10;
9596 	/** */
9597 	extern(C) void function() GtkReserved11;
9598 }
9599 
9600 struct GtkStyleContext
9601 {
9602 	GObject parentObject;
9603 	GtkStyleContextPrivate* priv;
9604 }
9605 
9606 struct GtkStyleContextClass
9607 {
9608 	GObjectClass parentClass;
9609 	/** */
9610 	extern(C) void function(GtkStyleContext* context) changed;
9611 	/** */
9612 	extern(C) void function() GtkReserved1;
9613 	/** */
9614 	extern(C) void function() GtkReserved2;
9615 	/** */
9616 	extern(C) void function() GtkReserved3;
9617 	/** */
9618 	extern(C) void function() GtkReserved4;
9619 }
9620 
9621 struct GtkStyleContextPrivate;
9622 
9623 struct GtkStyleProperties
9624 {
9625 	GObject parentObject;
9626 	GtkStylePropertiesPrivate* priv;
9627 }
9628 
9629 struct GtkStylePropertiesClass
9630 {
9631 	GObjectClass parentClass;
9632 	/** */
9633 	extern(C) void function() GtkReserved1;
9634 	/** */
9635 	extern(C) void function() GtkReserved2;
9636 	/** */
9637 	extern(C) void function() GtkReserved3;
9638 	/** */
9639 	extern(C) void function() GtkReserved4;
9640 }
9641 
9642 struct GtkStylePropertiesPrivate;
9643 
9644 struct GtkStyleProvider;
9645 
9646 struct GtkStyleProviderIface
9647 {
9648 	GTypeInterface gIface;
9649 	/**
9650 	 *
9651 	 * Params:
9652 	 *     provider = a #GtkStyleProvider
9653 	 *     path = #GtkWidgetPath to query
9654 	 * Return: a #GtkStyleProperties containing the
9655 	 *     style settings affecting @path
9656 	 */
9657 	extern(C) GtkStyleProperties* function(GtkStyleProvider* provider, GtkWidgetPath* path) getStyle;
9658 	/**
9659 	 *
9660 	 * Params:
9661 	 *     provider = a #GtkStyleProvider
9662 	 *     path = #GtkWidgetPath to query
9663 	 *     state = state to query the style property for
9664 	 *     pspec = The #GParamSpec to query
9665 	 *     value = return location for the property value
9666 	 * Return: %TRUE if the property was found and has a value, %FALSE otherwise
9667 	 */
9668 	extern(C) int function(GtkStyleProvider* provider, GtkWidgetPath* path, GtkStateFlags state, GParamSpec* pspec, GValue* value) getStyleProperty;
9669 	/**
9670 	 *
9671 	 * Params:
9672 	 *     provider = a #GtkStyleProvider
9673 	 *     path = #GtkWidgetPath to query
9674 	 * Return: The icon factory to use for @path, or %NULL
9675 	 */
9676 	extern(C) GtkIconFactory* function(GtkStyleProvider* provider, GtkWidgetPath* path) getIconFactory;
9677 }
9678 
9679 struct GtkSwitch
9680 {
9681 	GtkWidget parentInstance;
9682 	GtkSwitchPrivate* priv;
9683 }
9684 
9685 struct GtkSwitchAccessible
9686 {
9687 	GtkWidgetAccessible parent;
9688 	GtkSwitchAccessiblePrivate* priv;
9689 }
9690 
9691 struct GtkSwitchAccessibleClass
9692 {
9693 	GtkWidgetAccessibleClass parentClass;
9694 }
9695 
9696 struct GtkSwitchAccessiblePrivate;
9697 
9698 struct GtkSwitchClass
9699 {
9700 	/**
9701 	 * The parent class.
9702 	 */
9703 	GtkWidgetClass parentClass;
9704 	/** */
9705 	extern(C) void function(GtkSwitch* sw) activate;
9706 	/** */
9707 	extern(C) int function(GtkSwitch* sw, int state) stateSet;
9708 	/** */
9709 	extern(C) void function() SwitchPadding1;
9710 	/** */
9711 	extern(C) void function() SwitchPadding2;
9712 	/** */
9713 	extern(C) void function() SwitchPadding3;
9714 	/** */
9715 	extern(C) void function() SwitchPadding4;
9716 	/** */
9717 	extern(C) void function() SwitchPadding5;
9718 }
9719 
9720 struct GtkSwitchPrivate;
9721 
9722 struct GtkSymbolicColor;
9723 
9724 struct GtkTable
9725 {
9726 	GtkContainer container;
9727 	GtkTablePrivate* priv;
9728 }
9729 
9730 struct GtkTableChild
9731 {
9732 	GtkWidget* widget;
9733 	ushort leftAttach;
9734 	ushort rightAttach;
9735 	ushort topAttach;
9736 	ushort bottomAttach;
9737 	ushort xpadding;
9738 	ushort ypadding;
9739 	import std.bitmanip: bitfields;
9740 	mixin(bitfields!(
9741 		uint, "xexpand", 1,
9742 		uint, "yexpand", 1,
9743 		uint, "xshrink", 1,
9744 		uint, "yshrink", 1,
9745 		uint, "xfill", 1,
9746 		uint, "yfill", 1,
9747 		uint, "", 26
9748 	));
9749 }
9750 
9751 struct GtkTableClass
9752 {
9753 	GtkContainerClass parentClass;
9754 	/** */
9755 	extern(C) void function() GtkReserved1;
9756 	/** */
9757 	extern(C) void function() GtkReserved2;
9758 	/** */
9759 	extern(C) void function() GtkReserved3;
9760 	/** */
9761 	extern(C) void function() GtkReserved4;
9762 }
9763 
9764 struct GtkTablePrivate;
9765 
9766 struct GtkTableRowCol
9767 {
9768 	ushort requisition;
9769 	ushort allocation;
9770 	ushort spacing;
9771 	import std.bitmanip: bitfields;
9772 	mixin(bitfields!(
9773 		uint, "needExpand", 1,
9774 		uint, "needShrink", 1,
9775 		uint, "expand", 1,
9776 		uint, "shrink", 1,
9777 		uint, "empty", 1,
9778 		uint, "", 27
9779 	));
9780 }
9781 
9782 struct GtkTargetEntry
9783 {
9784 	/**
9785 	 * a string representation of the target type
9786 	 */
9787 	char* target;
9788 	/**
9789 	 * #GtkTargetFlags for DND
9790 	 */
9791 	uint flags;
9792 	/**
9793 	 * an application-assigned integer ID which will
9794 	 * get passed as a parameter to e.g the #GtkWidget::selection-get
9795 	 * signal. It allows the application to identify the target
9796 	 * type without extensive string compares.
9797 	 */
9798 	uint info;
9799 }
9800 
9801 struct GtkTargetList;
9802 
9803 /**
9804  * A #GtkTargetPair is used to represent the same
9805  * information as a table of #GtkTargetEntry, but in
9806  * an efficient form.
9807  */
9808 struct GtkTargetPair
9809 {
9810 	/**
9811 	 * #GdkAtom representation of the target type
9812 	 */
9813 	GdkAtom target;
9814 	/**
9815 	 * #GtkTargetFlags for DND
9816 	 */
9817 	uint flags;
9818 	/**
9819 	 * an application-assigned integer ID which will
9820 	 * get passed as a parameter to e.g the #GtkWidget::selection-get
9821 	 * signal. It allows the application to identify the target
9822 	 * type without extensive string compares.
9823 	 */
9824 	uint info;
9825 }
9826 
9827 struct GtkTearoffMenuItem
9828 {
9829 	GtkMenuItem menuItem;
9830 	GtkTearoffMenuItemPrivate* priv;
9831 }
9832 
9833 struct GtkTearoffMenuItemClass
9834 {
9835 	/**
9836 	 * The parent class.
9837 	 */
9838 	GtkMenuItemClass parentClass;
9839 	/** */
9840 	extern(C) void function() GtkReserved1;
9841 	/** */
9842 	extern(C) void function() GtkReserved2;
9843 	/** */
9844 	extern(C) void function() GtkReserved3;
9845 	/** */
9846 	extern(C) void function() GtkReserved4;
9847 }
9848 
9849 struct GtkTearoffMenuItemPrivate;
9850 
9851 struct GtkTextAppearance
9852 {
9853 	/**
9854 	 * Background #GdkColor.
9855 	 */
9856 	GdkColor bgColor;
9857 	/**
9858 	 * Foreground #GdkColor.
9859 	 */
9860 	GdkColor fgColor;
9861 	/**
9862 	 * Super/subscript rise, can be negative.
9863 	 */
9864 	int rise;
9865 	import std.bitmanip: bitfields;
9866 	mixin(bitfields!(
9867 		uint, "underline", 4,
9868 		uint, "strikethrough", 1,
9869 		uint, "drawBg", 1,
9870 		uint, "insideSelection", 1,
9871 		uint, "isText", 1,
9872 		uint, "", 24
9873 	));
9874 	union
9875 	{
9876 		GdkRGBA*[2] rgba;
9877 		uint[4] padding;
9878 	}
9879 }
9880 
9881 struct GtkTextAttributes
9882 {
9883 	uint refcount;
9884 	/**
9885 	 * #GtkTextAppearance for text.
9886 	 */
9887 	GtkTextAppearance appearance;
9888 	/**
9889 	 * #GtkJustification for text.
9890 	 */
9891 	GtkJustification justification;
9892 	/**
9893 	 * #GtkTextDirection for text.
9894 	 */
9895 	GtkTextDirection direction;
9896 	/**
9897 	 * #PangoFontDescription for text.
9898 	 */
9899 	PangoFontDescription* font;
9900 	/**
9901 	 * Font scale factor.
9902 	 */
9903 	double fontScale;
9904 	/**
9905 	 * Width of the left margin in pixels.
9906 	 */
9907 	int leftMargin;
9908 	/**
9909 	 * Width of the right margin in pixels.
9910 	 */
9911 	int rightMargin;
9912 	/**
9913 	 * Amount to indent the paragraph, in pixels.
9914 	 */
9915 	int indent;
9916 	/**
9917 	 * Pixels of blank space above paragraphs.
9918 	 */
9919 	int pixelsAboveLines;
9920 	/**
9921 	 * Pixels of blank space below paragraphs.
9922 	 */
9923 	int pixelsBelowLines;
9924 	/**
9925 	 * Pixels of blank space between wrapped lines in
9926 	 * a paragraph.
9927 	 */
9928 	int pixelsInsideWrap;
9929 	/**
9930 	 * Custom #PangoTabArray for this text.
9931 	 */
9932 	PangoTabArray* tabs;
9933 	/**
9934 	 * #GtkWrapMode for text.
9935 	 */
9936 	GtkWrapMode wrapMode;
9937 	/**
9938 	 * #PangoLanguage for text.
9939 	 */
9940 	PangoLanguage* language;
9941 	GdkColor* pgBgColor;
9942 	import std.bitmanip: bitfields;
9943 	mixin(bitfields!(
9944 		uint, "invisible", 1,
9945 		uint, "bgFullHeight", 1,
9946 		uint, "editable", 1,
9947 		uint, "noFallback", 1,
9948 		uint, "", 28
9949 	));
9950 	GdkRGBA* pgBgRgba;
9951 	/**
9952 	 * Extra space to insert between graphemes, in Pango units
9953 	 */
9954 	int letterSpacing;
9955 	union
9956 	{
9957 		char* fontFeatures;
9958 		uint[2] padding;
9959 	}
9960 }
9961 
9962 struct GtkTextBTree;
9963 
9964 struct GtkTextBuffer
9965 {
9966 	GObject parentInstance;
9967 	GtkTextBufferPrivate* priv;
9968 }
9969 
9970 struct GtkTextBufferClass
9971 {
9972 	/**
9973 	 * The object class structure needs to be the first.
9974 	 */
9975 	GObjectClass parentClass;
9976 	/** */
9977 	extern(C) void function(GtkTextBuffer* buffer, GtkTextIter* pos, const(char)* newText, int newTextLength) insertText;
9978 	/** */
9979 	extern(C) void function(GtkTextBuffer* buffer, GtkTextIter* iter, GdkPixbuf* pixbuf) insertPixbuf;
9980 	/** */
9981 	extern(C) void function(GtkTextBuffer* buffer, GtkTextIter* iter, GtkTextChildAnchor* anchor) insertChildAnchor;
9982 	/** */
9983 	extern(C) void function(GtkTextBuffer* buffer, GtkTextIter* start, GtkTextIter* end) deleteRange;
9984 	/** */
9985 	extern(C) void function(GtkTextBuffer* buffer) changed;
9986 	/** */
9987 	extern(C) void function(GtkTextBuffer* buffer) modifiedChanged;
9988 	/** */
9989 	extern(C) void function(GtkTextBuffer* buffer, GtkTextIter* location, GtkTextMark* mark) markSet;
9990 	/** */
9991 	extern(C) void function(GtkTextBuffer* buffer, GtkTextMark* mark) markDeleted;
9992 	/** */
9993 	extern(C) void function(GtkTextBuffer* buffer, GtkTextTag* tag, GtkTextIter* start, GtkTextIter* end) applyTag;
9994 	/** */
9995 	extern(C) void function(GtkTextBuffer* buffer, GtkTextTag* tag, GtkTextIter* start, GtkTextIter* end) removeTag;
9996 	/** */
9997 	extern(C) void function(GtkTextBuffer* buffer) beginUserAction;
9998 	/** */
9999 	extern(C) void function(GtkTextBuffer* buffer) endUserAction;
10000 	/** */
10001 	extern(C) void function(GtkTextBuffer* buffer, GtkClipboard* clipboard) pasteDone;
10002 	/** */
10003 	extern(C) void function() GtkReserved1;
10004 	/** */
10005 	extern(C) void function() GtkReserved2;
10006 	/** */
10007 	extern(C) void function() GtkReserved3;
10008 	/** */
10009 	extern(C) void function() GtkReserved4;
10010 }
10011 
10012 struct GtkTextBufferPrivate;
10013 
10014 struct GtkTextCellAccessible
10015 {
10016 	GtkRendererCellAccessible parent;
10017 	GtkTextCellAccessiblePrivate* priv;
10018 }
10019 
10020 struct GtkTextCellAccessibleClass
10021 {
10022 	GtkRendererCellAccessibleClass parentClass;
10023 }
10024 
10025 struct GtkTextCellAccessiblePrivate;
10026 
10027 struct GtkTextChildAnchor
10028 {
10029 	GObject parentInstance;
10030 	void* segment;
10031 }
10032 
10033 struct GtkTextChildAnchorClass
10034 {
10035 	GObjectClass parentClass;
10036 	/** */
10037 	extern(C) void function() GtkReserved1;
10038 	/** */
10039 	extern(C) void function() GtkReserved2;
10040 	/** */
10041 	extern(C) void function() GtkReserved3;
10042 	/** */
10043 	extern(C) void function() GtkReserved4;
10044 }
10045 
10046 struct GtkTextIter
10047 {
10048 	void* dummy1;
10049 	void* dummy2;
10050 	int dummy3;
10051 	int dummy4;
10052 	int dummy5;
10053 	int dummy6;
10054 	int dummy7;
10055 	int dummy8;
10056 	void* dummy9;
10057 	void* dummy10;
10058 	int dummy11;
10059 	int dummy12;
10060 	int dummy13;
10061 	void* dummy14;
10062 }
10063 
10064 struct GtkTextMark
10065 {
10066 	GObject parentInstance;
10067 	void* segment;
10068 }
10069 
10070 struct GtkTextMarkClass
10071 {
10072 	GObjectClass parentClass;
10073 	/** */
10074 	extern(C) void function() GtkReserved1;
10075 	/** */
10076 	extern(C) void function() GtkReserved2;
10077 	/** */
10078 	extern(C) void function() GtkReserved3;
10079 	/** */
10080 	extern(C) void function() GtkReserved4;
10081 }
10082 
10083 struct GtkTextTag
10084 {
10085 	GObject parentInstance;
10086 	GtkTextTagPrivate* priv;
10087 }
10088 
10089 struct GtkTextTagClass
10090 {
10091 	GObjectClass parentClass;
10092 	/**
10093 	 *
10094 	 * Params:
10095 	 *     tag = a #GtkTextTag
10096 	 *     eventObject = object that received the event, such as a widget
10097 	 *     event = the event
10098 	 *     iter = location where the event was received
10099 	 * Return: result of signal emission (whether the event was handled)
10100 	 */
10101 	extern(C) int function(GtkTextTag* tag, GObject* eventObject, GdkEvent* event, GtkTextIter* iter) event;
10102 	/** */
10103 	extern(C) void function() GtkReserved1;
10104 	/** */
10105 	extern(C) void function() GtkReserved2;
10106 	/** */
10107 	extern(C) void function() GtkReserved3;
10108 	/** */
10109 	extern(C) void function() GtkReserved4;
10110 }
10111 
10112 struct GtkTextTagPrivate;
10113 
10114 struct GtkTextTagTable
10115 {
10116 	GObject parentInstance;
10117 	GtkTextTagTablePrivate* priv;
10118 }
10119 
10120 struct GtkTextTagTableClass
10121 {
10122 	GObjectClass parentClass;
10123 	/** */
10124 	extern(C) void function(GtkTextTagTable* table, GtkTextTag* tag, int sizeChanged) tagChanged;
10125 	/** */
10126 	extern(C) void function(GtkTextTagTable* table, GtkTextTag* tag) tagAdded;
10127 	/** */
10128 	extern(C) void function(GtkTextTagTable* table, GtkTextTag* tag) tagRemoved;
10129 	/** */
10130 	extern(C) void function() GtkReserved1;
10131 	/** */
10132 	extern(C) void function() GtkReserved2;
10133 	/** */
10134 	extern(C) void function() GtkReserved3;
10135 	/** */
10136 	extern(C) void function() GtkReserved4;
10137 }
10138 
10139 struct GtkTextTagTablePrivate;
10140 
10141 struct GtkTextView
10142 {
10143 	GtkContainer parentInstance;
10144 	GtkTextViewPrivate* priv;
10145 }
10146 
10147 struct GtkTextViewAccessible
10148 {
10149 	GtkContainerAccessible parent;
10150 	GtkTextViewAccessiblePrivate* priv;
10151 }
10152 
10153 struct GtkTextViewAccessibleClass
10154 {
10155 	GtkContainerAccessibleClass parentClass;
10156 }
10157 
10158 struct GtkTextViewAccessiblePrivate;
10159 
10160 struct GtkTextViewClass
10161 {
10162 	/**
10163 	 * The object class structure needs to be the first
10164 	 */
10165 	GtkContainerClass parentClass;
10166 	/** */
10167 	extern(C) void function(GtkTextView* textView, GtkWidget* popup) populatePopup;
10168 	/** */
10169 	extern(C) void function(GtkTextView* textView, GtkMovementStep step, int count, int extendSelection) moveCursor;
10170 	/** */
10171 	extern(C) void function(GtkTextView* textView) setAnchor;
10172 	/** */
10173 	extern(C) void function(GtkTextView* textView, const(char)* str) insertAtCursor;
10174 	/** */
10175 	extern(C) void function(GtkTextView* textView, GtkDeleteType type, int count) deleteFromCursor;
10176 	/** */
10177 	extern(C) void function(GtkTextView* textView) backspace;
10178 	/** */
10179 	extern(C) void function(GtkTextView* textView) cutClipboard;
10180 	/** */
10181 	extern(C) void function(GtkTextView* textView) copyClipboard;
10182 	/** */
10183 	extern(C) void function(GtkTextView* textView) pasteClipboard;
10184 	/** */
10185 	extern(C) void function(GtkTextView* textView) toggleOverwrite;
10186 	/** */
10187 	extern(C) GtkTextBuffer* function(GtkTextView* textView) createBuffer;
10188 	/** */
10189 	extern(C) void function(GtkTextView* textView, GtkTextViewLayer layer, cairo_t* cr) drawLayer;
10190 	/** */
10191 	extern(C) int function(GtkTextView* textView, GtkTextExtendSelection granularity, GtkTextIter* location, GtkTextIter* start, GtkTextIter* end) extendSelection;
10192 	/** */
10193 	extern(C) void function() GtkReserved1;
10194 	/** */
10195 	extern(C) void function() GtkReserved2;
10196 	/** */
10197 	extern(C) void function() GtkReserved3;
10198 	/** */
10199 	extern(C) void function() GtkReserved4;
10200 	/** */
10201 	extern(C) void function() GtkReserved5;
10202 }
10203 
10204 struct GtkTextViewPrivate;
10205 
10206 struct GtkThemeEngine;
10207 
10208 struct GtkThemingEngine
10209 {
10210 	GObject parentObject;
10211 	GtkThemingEnginePrivate* priv;
10212 }
10213 
10214 /**
10215  * Base class for theming engines.
10216  */
10217 struct GtkThemingEngineClass
10218 {
10219 	/**
10220 	 * The parent class.
10221 	 */
10222 	GObjectClass parentClass;
10223 	/** */
10224 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x0, double y0, double x1, double y1) renderLine;
10225 	/** */
10226 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height) renderBackground;
10227 	/** */
10228 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height) renderFrame;
10229 	/** */
10230 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height, GtkPositionType gapSide, double xy0Gap, double xy1Gap) renderFrameGap;
10231 	/** */
10232 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height, GtkPositionType gapSide) renderExtension;
10233 	/** */
10234 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height) renderCheck;
10235 	/** */
10236 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height) renderOption;
10237 	/** */
10238 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double angle, double x, double y, double size) renderArrow;
10239 	/** */
10240 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height) renderExpander;
10241 	/** */
10242 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height) renderFocus;
10243 	/** */
10244 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, PangoLayout* layout) renderLayout;
10245 	/** */
10246 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height, GtkOrientation orientation) renderSlider;
10247 	/** */
10248 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height) renderHandle;
10249 	/** */
10250 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height) renderActivity;
10251 	/** */
10252 	extern(C) GdkPixbuf* function(GtkThemingEngine* engine, GtkIconSource* source, GtkIconSize size) renderIconPixbuf;
10253 	/** */
10254 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, GdkPixbuf* pixbuf, double x, double y) renderIcon;
10255 	/** */
10256 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, cairo_surface_t* surface, double x, double y) renderIconSurface;
10257 	void*[14] padding;
10258 }
10259 
10260 struct GtkThemingEnginePrivate;
10261 
10262 struct GtkToggleAction
10263 {
10264 	GtkAction parent;
10265 	GtkToggleActionPrivate* privateData;
10266 }
10267 
10268 struct GtkToggleActionClass
10269 {
10270 	GtkActionClass parentClass;
10271 	/** */
10272 	extern(C) void function(GtkToggleAction* action) toggled;
10273 	/** */
10274 	extern(C) void function() GtkReserved1;
10275 	/** */
10276 	extern(C) void function() GtkReserved2;
10277 	/** */
10278 	extern(C) void function() GtkReserved3;
10279 	/** */
10280 	extern(C) void function() GtkReserved4;
10281 }
10282 
10283 /**
10284  * #GtkToggleActionEntry structs are used with
10285  * gtk_action_group_add_toggle_actions() to construct toggle actions.
10286  */
10287 struct GtkToggleActionEntry
10288 {
10289 	/**
10290 	 * The name of the action.
10291 	 */
10292 	const(char)* name;
10293 	/**
10294 	 * The stock id for the action, or the name of an icon from the
10295 	 * icon theme.
10296 	 */
10297 	const(char)* stockId;
10298 	/**
10299 	 * The label for the action. This field should typically be marked
10300 	 * for translation, see gtk_action_group_set_translation_domain().
10301 	 */
10302 	const(char)* label;
10303 	/**
10304 	 * The accelerator for the action, in the format understood by
10305 	 * gtk_accelerator_parse().
10306 	 */
10307 	const(char)* accelerator;
10308 	/**
10309 	 * The tooltip for the action. This field should typically be
10310 	 * marked for translation, see gtk_action_group_set_translation_domain().
10311 	 */
10312 	const(char)* tooltip;
10313 	/**
10314 	 * The function to call when the action is activated.
10315 	 */
10316 	GCallback callback;
10317 	/**
10318 	 * The initial state of the toggle action.
10319 	 */
10320 	bool isActive;
10321 }
10322 
10323 struct GtkToggleActionPrivate;
10324 
10325 struct GtkToggleButton
10326 {
10327 	GtkButton button;
10328 	GtkToggleButtonPrivate* priv;
10329 }
10330 
10331 struct GtkToggleButtonAccessible
10332 {
10333 	GtkButtonAccessible parent;
10334 	GtkToggleButtonAccessiblePrivate* priv;
10335 }
10336 
10337 struct GtkToggleButtonAccessibleClass
10338 {
10339 	GtkButtonAccessibleClass parentClass;
10340 }
10341 
10342 struct GtkToggleButtonAccessiblePrivate;
10343 
10344 struct GtkToggleButtonClass
10345 {
10346 	GtkButtonClass parentClass;
10347 	/** */
10348 	extern(C) void function(GtkToggleButton* toggleButton) toggled;
10349 	/** */
10350 	extern(C) void function() GtkReserved1;
10351 	/** */
10352 	extern(C) void function() GtkReserved2;
10353 	/** */
10354 	extern(C) void function() GtkReserved3;
10355 	/** */
10356 	extern(C) void function() GtkReserved4;
10357 }
10358 
10359 struct GtkToggleButtonPrivate;
10360 
10361 struct GtkToggleToolButton
10362 {
10363 	GtkToolButton parent;
10364 	GtkToggleToolButtonPrivate* priv;
10365 }
10366 
10367 struct GtkToggleToolButtonClass
10368 {
10369 	/**
10370 	 * The parent class.
10371 	 */
10372 	GtkToolButtonClass parentClass;
10373 	/** */
10374 	extern(C) void function(GtkToggleToolButton* button) toggled;
10375 	/** */
10376 	extern(C) void function() GtkReserved1;
10377 	/** */
10378 	extern(C) void function() GtkReserved2;
10379 	/** */
10380 	extern(C) void function() GtkReserved3;
10381 	/** */
10382 	extern(C) void function() GtkReserved4;
10383 }
10384 
10385 struct GtkToggleToolButtonPrivate;
10386 
10387 struct GtkToolButton
10388 {
10389 	GtkToolItem parent;
10390 	GtkToolButtonPrivate* priv;
10391 }
10392 
10393 struct GtkToolButtonClass
10394 {
10395 	/**
10396 	 * The parent class.
10397 	 */
10398 	GtkToolItemClass parentClass;
10399 	GType buttonType;
10400 	/** */
10401 	extern(C) void function(GtkToolButton* toolItem) clicked;
10402 	/** */
10403 	extern(C) void function() GtkReserved1;
10404 	/** */
10405 	extern(C) void function() GtkReserved2;
10406 	/** */
10407 	extern(C) void function() GtkReserved3;
10408 	/** */
10409 	extern(C) void function() GtkReserved4;
10410 }
10411 
10412 struct GtkToolButtonPrivate;
10413 
10414 struct GtkToolItem
10415 {
10416 	GtkBin parent;
10417 	GtkToolItemPrivate* priv;
10418 }
10419 
10420 struct GtkToolItemClass
10421 {
10422 	/**
10423 	 * The parent class.
10424 	 */
10425 	GtkBinClass parentClass;
10426 	/** */
10427 	extern(C) int function(GtkToolItem* toolItem) createMenuProxy;
10428 	/** */
10429 	extern(C) void function(GtkToolItem* toolItem) toolbarReconfigured;
10430 	/** */
10431 	extern(C) void function() GtkReserved1;
10432 	/** */
10433 	extern(C) void function() GtkReserved2;
10434 	/** */
10435 	extern(C) void function() GtkReserved3;
10436 	/** */
10437 	extern(C) void function() GtkReserved4;
10438 }
10439 
10440 struct GtkToolItemGroup
10441 {
10442 	GtkContainer parentInstance;
10443 	GtkToolItemGroupPrivate* priv;
10444 }
10445 
10446 struct GtkToolItemGroupClass
10447 {
10448 	/**
10449 	 * The parent class.
10450 	 */
10451 	GtkContainerClass parentClass;
10452 	/** */
10453 	extern(C) void function() GtkReserved1;
10454 	/** */
10455 	extern(C) void function() GtkReserved2;
10456 	/** */
10457 	extern(C) void function() GtkReserved3;
10458 	/** */
10459 	extern(C) void function() GtkReserved4;
10460 }
10461 
10462 struct GtkToolItemGroupPrivate;
10463 
10464 struct GtkToolItemPrivate;
10465 
10466 struct GtkToolPalette
10467 {
10468 	GtkContainer parentInstance;
10469 	GtkToolPalettePrivate* priv;
10470 }
10471 
10472 struct GtkToolPaletteClass
10473 {
10474 	/**
10475 	 * The parent class.
10476 	 */
10477 	GtkContainerClass parentClass;
10478 	/** */
10479 	extern(C) void function() GtkReserved1;
10480 	/** */
10481 	extern(C) void function() GtkReserved2;
10482 	/** */
10483 	extern(C) void function() GtkReserved3;
10484 	/** */
10485 	extern(C) void function() GtkReserved4;
10486 }
10487 
10488 struct GtkToolPalettePrivate;
10489 
10490 struct GtkToolShell;
10491 
10492 /**
10493  * Virtual function table for the #GtkToolShell interface.
10494  */
10495 struct GtkToolShellIface
10496 {
10497 	GTypeInterface gIface;
10498 	/** */
10499 	extern(C) GtkIconSize function(GtkToolShell* shell) getIconSize;
10500 	/**
10501 	 *
10502 	 * Params:
10503 	 *     shell = a #GtkToolShell
10504 	 * Return: the current orientation of @shell
10505 	 */
10506 	extern(C) GtkOrientation function(GtkToolShell* shell) getOrientation;
10507 	/**
10508 	 *
10509 	 * Params:
10510 	 *     shell = a #GtkToolShell
10511 	 * Return: the current style of @shell
10512 	 */
10513 	extern(C) GtkToolbarStyle function(GtkToolShell* shell) getStyle;
10514 	/**
10515 	 *
10516 	 * Params:
10517 	 *     shell = a #GtkToolShell
10518 	 * Return: The relief style of buttons on @shell.
10519 	 */
10520 	extern(C) GtkReliefStyle function(GtkToolShell* shell) getReliefStyle;
10521 	/** */
10522 	extern(C) void function(GtkToolShell* shell) rebuildMenu;
10523 	/**
10524 	 *
10525 	 * Params:
10526 	 *     shell = a #GtkToolShell
10527 	 * Return: the current text orientation of @shell
10528 	 */
10529 	extern(C) GtkOrientation function(GtkToolShell* shell) getTextOrientation;
10530 	/**
10531 	 *
10532 	 * Params:
10533 	 *     shell = a #GtkToolShell
10534 	 * Return: the current text alignment of @shell
10535 	 */
10536 	extern(C) float function(GtkToolShell* shell) getTextAlignment;
10537 	/**
10538 	 *
10539 	 * Params:
10540 	 *     shell = a #GtkToolShell
10541 	 * Return: the current ellipsize mode of @shell
10542 	 */
10543 	extern(C) PangoEllipsizeMode function(GtkToolShell* shell) getEllipsizeMode;
10544 	/**
10545 	 *
10546 	 * Params:
10547 	 *     shell = a #GtkToolShell
10548 	 * Return: the current text size group of @shell
10549 	 */
10550 	extern(C) GtkSizeGroup* function(GtkToolShell* shell) getTextSizeGroup;
10551 }
10552 
10553 struct GtkToolbar
10554 {
10555 	GtkContainer container;
10556 	GtkToolbarPrivate* priv;
10557 }
10558 
10559 struct GtkToolbarClass
10560 {
10561 	GtkContainerClass parentClass;
10562 	/** */
10563 	extern(C) void function(GtkToolbar* toolbar, GtkOrientation orientation) orientationChanged;
10564 	/** */
10565 	extern(C) void function(GtkToolbar* toolbar, GtkToolbarStyle style) styleChanged;
10566 	/** */
10567 	extern(C) int function(GtkToolbar* toolbar, int x, int y, int buttonNumber) popupContextMenu;
10568 	/** */
10569 	extern(C) void function() GtkReserved1;
10570 	/** */
10571 	extern(C) void function() GtkReserved2;
10572 	/** */
10573 	extern(C) void function() GtkReserved3;
10574 	/** */
10575 	extern(C) void function() GtkReserved4;
10576 }
10577 
10578 struct GtkToolbarPrivate;
10579 
10580 struct GtkTooltip;
10581 
10582 struct GtkToplevelAccessible
10583 {
10584 	AtkObject parent;
10585 	GtkToplevelAccessiblePrivate* priv;
10586 }
10587 
10588 struct GtkToplevelAccessibleClass
10589 {
10590 	AtkObjectClass parentClass;
10591 }
10592 
10593 struct GtkToplevelAccessiblePrivate;
10594 
10595 struct GtkTreeDragDest;
10596 
10597 struct GtkTreeDragDestIface
10598 {
10599 	GTypeInterface gIface;
10600 	/**
10601 	 *
10602 	 * Params:
10603 	 *     dragDest = a #GtkTreeDragDest
10604 	 *     dest = row to drop in front of
10605 	 *     selectionData = data to drop
10606 	 * Return: whether a new row was created before position @dest
10607 	 */
10608 	extern(C) int function(GtkTreeDragDest* dragDest, GtkTreePath* dest, GtkSelectionData* selectionData) dragDataReceived;
10609 	/**
10610 	 *
10611 	 * Params:
10612 	 *     dragDest = a #GtkTreeDragDest
10613 	 *     destPath = destination row
10614 	 *     selectionData = the data being dragged
10615 	 * Return: %TRUE if a drop is possible before @dest_path
10616 	 */
10617 	extern(C) int function(GtkTreeDragDest* dragDest, GtkTreePath* destPath, GtkSelectionData* selectionData) rowDropPossible;
10618 }
10619 
10620 struct GtkTreeDragSource;
10621 
10622 struct GtkTreeDragSourceIface
10623 {
10624 	GTypeInterface gIface;
10625 	/**
10626 	 *
10627 	 * Params:
10628 	 *     dragSource = a #GtkTreeDragSource
10629 	 *     path = row on which user is initiating a drag
10630 	 * Return: %TRUE if the row can be dragged
10631 	 */
10632 	extern(C) int function(GtkTreeDragSource* dragSource, GtkTreePath* path) rowDraggable;
10633 	/**
10634 	 *
10635 	 * Params:
10636 	 *     dragSource = a #GtkTreeDragSource
10637 	 *     path = row that was dragged
10638 	 *     selectionData = a #GtkSelectionData to fill with data
10639 	 *         from the dragged row
10640 	 * Return: %TRUE if data of the required type was provided
10641 	 */
10642 	extern(C) int function(GtkTreeDragSource* dragSource, GtkTreePath* path, GtkSelectionData* selectionData) dragDataGet;
10643 	/**
10644 	 *
10645 	 * Params:
10646 	 *     dragSource = a #GtkTreeDragSource
10647 	 *     path = row that was being dragged
10648 	 * Return: %TRUE if the row was successfully deleted
10649 	 */
10650 	extern(C) int function(GtkTreeDragSource* dragSource, GtkTreePath* path) dragDataDelete;
10651 }
10652 
10653 struct GtkTreeIter
10654 {
10655 	/**
10656 	 * a unique stamp to catch invalid iterators
10657 	 */
10658 	int stamp;
10659 	/**
10660 	 * model-specific data
10661 	 */
10662 	void* userData;
10663 	/**
10664 	 * model-specific data
10665 	 */
10666 	void* userData2;
10667 	/**
10668 	 * model-specific data
10669 	 */
10670 	void* userData3;
10671 }
10672 
10673 struct GtkTreeModel;
10674 
10675 struct GtkTreeModelFilter
10676 {
10677 	GObject parent;
10678 	GtkTreeModelFilterPrivate* priv;
10679 }
10680 
10681 struct GtkTreeModelFilterClass
10682 {
10683 	GObjectClass parentClass;
10684 	/** */
10685 	extern(C) int function(GtkTreeModelFilter* self, GtkTreeModel* childModel, GtkTreeIter* iter) visible;
10686 	/** */
10687 	extern(C) void function(GtkTreeModelFilter* self, GtkTreeModel* childModel, GtkTreeIter* iter, GValue* value, int column) modify;
10688 	/** */
10689 	extern(C) void function() GtkReserved1;
10690 	/** */
10691 	extern(C) void function() GtkReserved2;
10692 	/** */
10693 	extern(C) void function() GtkReserved3;
10694 	/** */
10695 	extern(C) void function() GtkReserved4;
10696 }
10697 
10698 struct GtkTreeModelFilterPrivate;
10699 
10700 struct GtkTreeModelIface
10701 {
10702 	GTypeInterface gIface;
10703 	/** */
10704 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter) rowChanged;
10705 	/** */
10706 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter) rowInserted;
10707 	/** */
10708 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter) rowHasChildToggled;
10709 	/** */
10710 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path) rowDeleted;
10711 	/** */
10712 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter, int* newOrder) rowsReordered;
10713 	/**
10714 	 *
10715 	 * Params:
10716 	 *     treeModel = a #GtkTreeModel
10717 	 * Return: the flags supported by this interface
10718 	 */
10719 	extern(C) GtkTreeModelFlags function(GtkTreeModel* treeModel) getFlags;
10720 	/**
10721 	 *
10722 	 * Params:
10723 	 *     treeModel = a #GtkTreeModel
10724 	 * Return: the number of columns
10725 	 */
10726 	extern(C) int function(GtkTreeModel* treeModel) getNColumns;
10727 	/**
10728 	 *
10729 	 * Params:
10730 	 *     treeModel = a #GtkTreeModel
10731 	 *     index = the column index
10732 	 * Return: the type of the column
10733 	 */
10734 	extern(C) GType function(GtkTreeModel* treeModel, int index) getColumnType;
10735 	/**
10736 	 *
10737 	 * Params:
10738 	 *     treeModel = a #GtkTreeModel
10739 	 *     iter = the uninitialized #GtkTreeIter-struct
10740 	 *     path = the #GtkTreePath-struct
10741 	 * Return: %TRUE, if @iter was set
10742 	 */
10743 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreePath* path) getIter;
10744 	/**
10745 	 *
10746 	 * Params:
10747 	 *     treeModel = a #GtkTreeModel
10748 	 *     iter = the #GtkTreeIter-struct
10749 	 * Return: a newly-created #GtkTreePath-struct
10750 	 */
10751 	extern(C) GtkTreePath* function(GtkTreeModel* treeModel, GtkTreeIter* iter) getPath;
10752 	/** */
10753 	extern(C) void function(GtkTreeModel* treeModel, GtkTreeIter* iter, int column, GValue* value) getValue;
10754 	/**
10755 	 *
10756 	 * Params:
10757 	 *     treeModel = a #GtkTreeModel
10758 	 *     iter = the #GtkTreeIter-struct
10759 	 * Return: %TRUE if @iter has been changed to the next node
10760 	 */
10761 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter) iterNext;
10762 	/**
10763 	 *
10764 	 * Params:
10765 	 *     treeModel = a #GtkTreeModel
10766 	 *     iter = the #GtkTreeIter-struct
10767 	 * Return: %TRUE if @iter has been changed to the previous node
10768 	 */
10769 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter) iterPrevious;
10770 	/**
10771 	 *
10772 	 * Params:
10773 	 *     treeModel = a #GtkTreeModel
10774 	 *     iter = the new #GtkTreeIter-struct to be set to the child
10775 	 *     parent = the #GtkTreeIter-struct, or %NULL
10776 	 * Return: %TRUE, if @iter has been set to the first child
10777 	 */
10778 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreeIter* parent) iterChildren;
10779 	/**
10780 	 *
10781 	 * Params:
10782 	 *     treeModel = a #GtkTreeModel
10783 	 *     iter = the #GtkTreeIter-struct to test for children
10784 	 * Return: %TRUE if @iter has children
10785 	 */
10786 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter) iterHasChild;
10787 	/**
10788 	 *
10789 	 * Params:
10790 	 *     treeModel = a #GtkTreeModel
10791 	 *     iter = the #GtkTreeIter-struct, or %NULL
10792 	 * Return: the number of children of @iter
10793 	 */
10794 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter) iterNChildren;
10795 	/**
10796 	 *
10797 	 * Params:
10798 	 *     treeModel = a #GtkTreeModel
10799 	 *     iter = the #GtkTreeIter-struct to set to the nth child
10800 	 *     parent = the #GtkTreeIter-struct to get the child from, or %NULL.
10801 	 *     n = the index of the desired child
10802 	 * Return: %TRUE, if @parent has an @n-th child
10803 	 */
10804 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreeIter* parent, int n) iterNthChild;
10805 	/**
10806 	 *
10807 	 * Params:
10808 	 *     treeModel = a #GtkTreeModel
10809 	 *     iter = the new #GtkTreeIter-struct to set to the parent
10810 	 *     child = the #GtkTreeIter-struct
10811 	 * Return: %TRUE, if @iter is set to the parent of @child
10812 	 */
10813 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreeIter* child) iterParent;
10814 	/** */
10815 	extern(C) void function(GtkTreeModel* treeModel, GtkTreeIter* iter) refNode;
10816 	/** */
10817 	extern(C) void function(GtkTreeModel* treeModel, GtkTreeIter* iter) unrefNode;
10818 }
10819 
10820 struct GtkTreeModelSort
10821 {
10822 	GObject parent;
10823 	GtkTreeModelSortPrivate* priv;
10824 }
10825 
10826 struct GtkTreeModelSortClass
10827 {
10828 	GObjectClass parentClass;
10829 	/** */
10830 	extern(C) void function() GtkReserved1;
10831 	/** */
10832 	extern(C) void function() GtkReserved2;
10833 	/** */
10834 	extern(C) void function() GtkReserved3;
10835 	/** */
10836 	extern(C) void function() GtkReserved4;
10837 }
10838 
10839 struct GtkTreeModelSortPrivate;
10840 
10841 struct GtkTreePath;
10842 
10843 struct GtkTreeRowReference;
10844 
10845 struct GtkTreeSelection
10846 {
10847 	GObject parent;
10848 	GtkTreeSelectionPrivate* priv;
10849 }
10850 
10851 struct GtkTreeSelectionClass
10852 {
10853 	/**
10854 	 * The parent class.
10855 	 */
10856 	GObjectClass parentClass;
10857 	/** */
10858 	extern(C) void function(GtkTreeSelection* selection) changed;
10859 	/** */
10860 	extern(C) void function() GtkReserved1;
10861 	/** */
10862 	extern(C) void function() GtkReserved2;
10863 	/** */
10864 	extern(C) void function() GtkReserved3;
10865 	/** */
10866 	extern(C) void function() GtkReserved4;
10867 }
10868 
10869 struct GtkTreeSelectionPrivate;
10870 
10871 struct GtkTreeSortable;
10872 
10873 struct GtkTreeSortableIface
10874 {
10875 	GTypeInterface gIface;
10876 	/** */
10877 	extern(C) void function(GtkTreeSortable* sortable) sortColumnChanged;
10878 	/**
10879 	 *
10880 	 * Params:
10881 	 *     sortable = A #GtkTreeSortable
10882 	 *     sortColumnId = The sort column id to be filled in
10883 	 *     order = The #GtkSortType to be filled in
10884 	 * Return: %TRUE if the sort column is not one of the special sort
10885 	 *     column ids.
10886 	 */
10887 	extern(C) int function(GtkTreeSortable* sortable, int* sortColumnId, GtkSortType* order) getSortColumnId;
10888 	/** */
10889 	extern(C) void function(GtkTreeSortable* sortable, int sortColumnId, GtkSortType order) setSortColumnId;
10890 	/** */
10891 	extern(C) void function(GtkTreeSortable* sortable, int sortColumnId, GtkTreeIterCompareFunc sortFunc, void* userData, GDestroyNotify destroy) setSortFunc;
10892 	/** */
10893 	extern(C) void function(GtkTreeSortable* sortable, GtkTreeIterCompareFunc sortFunc, void* userData, GDestroyNotify destroy) setDefaultSortFunc;
10894 	/**
10895 	 *
10896 	 * Params:
10897 	 *     sortable = A #GtkTreeSortable
10898 	 * Return: %TRUE, if the model has a default sort function
10899 	 */
10900 	extern(C) int function(GtkTreeSortable* sortable) hasDefaultSortFunc;
10901 }
10902 
10903 struct GtkTreeStore
10904 {
10905 	GObject parent;
10906 	GtkTreeStorePrivate* priv;
10907 }
10908 
10909 struct GtkTreeStoreClass
10910 {
10911 	GObjectClass parentClass;
10912 	/** */
10913 	extern(C) void function() GtkReserved1;
10914 	/** */
10915 	extern(C) void function() GtkReserved2;
10916 	/** */
10917 	extern(C) void function() GtkReserved3;
10918 	/** */
10919 	extern(C) void function() GtkReserved4;
10920 }
10921 
10922 struct GtkTreeStorePrivate;
10923 
10924 struct GtkTreeView
10925 {
10926 	GtkContainer parent;
10927 	GtkTreeViewPrivate* priv;
10928 }
10929 
10930 struct GtkTreeViewAccessible
10931 {
10932 	GtkContainerAccessible parent;
10933 	GtkTreeViewAccessiblePrivate* priv;
10934 }
10935 
10936 struct GtkTreeViewAccessibleClass
10937 {
10938 	GtkContainerAccessibleClass parentClass;
10939 }
10940 
10941 struct GtkTreeViewAccessiblePrivate;
10942 
10943 struct GtkTreeViewClass
10944 {
10945 	GtkContainerClass parentClass;
10946 	/** */
10947 	extern(C) void function(GtkTreeView* treeView, GtkTreePath* path, GtkTreeViewColumn* column) rowActivated;
10948 	/** */
10949 	extern(C) int function(GtkTreeView* treeView, GtkTreeIter* iter, GtkTreePath* path) testExpandRow;
10950 	/** */
10951 	extern(C) int function(GtkTreeView* treeView, GtkTreeIter* iter, GtkTreePath* path) testCollapseRow;
10952 	/** */
10953 	extern(C) void function(GtkTreeView* treeView, GtkTreeIter* iter, GtkTreePath* path) rowExpanded;
10954 	/** */
10955 	extern(C) void function(GtkTreeView* treeView, GtkTreeIter* iter, GtkTreePath* path) rowCollapsed;
10956 	/** */
10957 	extern(C) void function(GtkTreeView* treeView) columnsChanged;
10958 	/** */
10959 	extern(C) void function(GtkTreeView* treeView) cursorChanged;
10960 	/** */
10961 	extern(C) int function(GtkTreeView* treeView, GtkMovementStep step, int count) moveCursor;
10962 	/** */
10963 	extern(C) int function(GtkTreeView* treeView) selectAll;
10964 	/** */
10965 	extern(C) int function(GtkTreeView* treeView) unselectAll;
10966 	/** */
10967 	extern(C) int function(GtkTreeView* treeView, int startEditing) selectCursorRow;
10968 	/** */
10969 	extern(C) int function(GtkTreeView* treeView) toggleCursorRow;
10970 	/** */
10971 	extern(C) int function(GtkTreeView* treeView, int logical, int expand, int openAll) expandCollapseCursorRow;
10972 	/** */
10973 	extern(C) int function(GtkTreeView* treeView) selectCursorParent;
10974 	/** */
10975 	extern(C) int function(GtkTreeView* treeView) startInteractiveSearch;
10976 	/** */
10977 	extern(C) void function() GtkReserved1;
10978 	/** */
10979 	extern(C) void function() GtkReserved2;
10980 	/** */
10981 	extern(C) void function() GtkReserved3;
10982 	/** */
10983 	extern(C) void function() GtkReserved4;
10984 	/** */
10985 	extern(C) void function() GtkReserved5;
10986 	/** */
10987 	extern(C) void function() GtkReserved6;
10988 	/** */
10989 	extern(C) void function() GtkReserved7;
10990 	/** */
10991 	extern(C) void function() GtkReserved8;
10992 }
10993 
10994 struct GtkTreeViewColumn
10995 {
10996 	GObject parentInstance;
10997 	GtkTreeViewColumnPrivate* priv;
10998 }
10999 
11000 struct GtkTreeViewColumnClass
11001 {
11002 	GObjectClass parentClass;
11003 	/** */
11004 	extern(C) void function(GtkTreeViewColumn* treeColumn) clicked;
11005 	/** */
11006 	extern(C) void function() GtkReserved1;
11007 	/** */
11008 	extern(C) void function() GtkReserved2;
11009 	/** */
11010 	extern(C) void function() GtkReserved3;
11011 	/** */
11012 	extern(C) void function() GtkReserved4;
11013 }
11014 
11015 struct GtkTreeViewColumnPrivate;
11016 
11017 struct GtkTreeViewPrivate;
11018 
11019 struct GtkUIManager
11020 {
11021 	GObject parent;
11022 	GtkUIManagerPrivate* privateData;
11023 }
11024 
11025 struct GtkUIManagerClass
11026 {
11027 	GObjectClass parentClass;
11028 	/** */
11029 	extern(C) void function(GtkUIManager* manager, GtkWidget* widget) addWidget;
11030 	/** */
11031 	extern(C) void function(GtkUIManager* manager) actionsChanged;
11032 	/** */
11033 	extern(C) void function(GtkUIManager* manager, GtkAction* action, GtkWidget* proxy) connectProxy;
11034 	/** */
11035 	extern(C) void function(GtkUIManager* manager, GtkAction* action, GtkWidget* proxy) disconnectProxy;
11036 	/** */
11037 	extern(C) void function(GtkUIManager* manager, GtkAction* action) preActivate;
11038 	/** */
11039 	extern(C) void function(GtkUIManager* manager, GtkAction* action) postActivate;
11040 	/**
11041 	 *
11042 	 * Params:
11043 	 *     manager = a #GtkUIManager
11044 	 *     path = a path
11045 	 * Return: the widget found by following the path,
11046 	 *     or %NULL if no widget was found
11047 	 */
11048 	extern(C) GtkWidget* function(GtkUIManager* manager, const(char)* path) getWidget;
11049 	/**
11050 	 *
11051 	 * Params:
11052 	 *     manager = a #GtkUIManager
11053 	 *     path = a path
11054 	 * Return: the action whose proxy widget is found by following the path,
11055 	 *     or %NULL if no widget was found.
11056 	 */
11057 	extern(C) GtkAction* function(GtkUIManager* manager, const(char)* path) getAction;
11058 	/** */
11059 	extern(C) void function() GtkReserved1;
11060 	/** */
11061 	extern(C) void function() GtkReserved2;
11062 	/** */
11063 	extern(C) void function() GtkReserved3;
11064 	/** */
11065 	extern(C) void function() GtkReserved4;
11066 }
11067 
11068 struct GtkUIManagerPrivate;
11069 
11070 struct GtkVBox
11071 {
11072 	GtkBox box;
11073 }
11074 
11075 struct GtkVBoxClass
11076 {
11077 	GtkBoxClass parentClass;
11078 }
11079 
11080 struct GtkVButtonBox
11081 {
11082 	GtkButtonBox buttonBox;
11083 }
11084 
11085 struct GtkVButtonBoxClass
11086 {
11087 	GtkButtonBoxClass parentClass;
11088 }
11089 
11090 struct GtkVPaned
11091 {
11092 	GtkPaned paned;
11093 }
11094 
11095 struct GtkVPanedClass
11096 {
11097 	GtkPanedClass parentClass;
11098 }
11099 
11100 struct GtkVScale
11101 {
11102 	GtkScale scale;
11103 }
11104 
11105 struct GtkVScaleClass
11106 {
11107 	GtkScaleClass parentClass;
11108 }
11109 
11110 struct GtkVScrollbar
11111 {
11112 	GtkScrollbar scrollbar;
11113 }
11114 
11115 struct GtkVScrollbarClass
11116 {
11117 	GtkScrollbarClass parentClass;
11118 }
11119 
11120 struct GtkVSeparator
11121 {
11122 	GtkSeparator separator;
11123 }
11124 
11125 struct GtkVSeparatorClass
11126 {
11127 	GtkSeparatorClass parentClass;
11128 }
11129 
11130 struct GtkViewport
11131 {
11132 	GtkBin bin;
11133 	GtkViewportPrivate* priv;
11134 }
11135 
11136 struct GtkViewportClass
11137 {
11138 	/**
11139 	 * The parent class.
11140 	 */
11141 	GtkBinClass parentClass;
11142 	/** */
11143 	extern(C) void function() GtkReserved1;
11144 	/** */
11145 	extern(C) void function() GtkReserved2;
11146 	/** */
11147 	extern(C) void function() GtkReserved3;
11148 	/** */
11149 	extern(C) void function() GtkReserved4;
11150 }
11151 
11152 struct GtkViewportPrivate;
11153 
11154 struct GtkVolumeButton
11155 {
11156 	GtkScaleButton parent;
11157 }
11158 
11159 struct GtkVolumeButtonClass
11160 {
11161 	GtkScaleButtonClass parentClass;
11162 	/** */
11163 	extern(C) void function() GtkReserved1;
11164 	/** */
11165 	extern(C) void function() GtkReserved2;
11166 	/** */
11167 	extern(C) void function() GtkReserved3;
11168 	/** */
11169 	extern(C) void function() GtkReserved4;
11170 }
11171 
11172 struct GtkWidget
11173 {
11174 	GObject parentInstance;
11175 	GtkWidgetPrivate* priv;
11176 }
11177 
11178 struct GtkWidgetAccessible
11179 {
11180 	GtkAccessible parent;
11181 	GtkWidgetAccessiblePrivate* priv;
11182 }
11183 
11184 struct GtkWidgetAccessibleClass
11185 {
11186 	GtkAccessibleClass parentClass;
11187 	/** */
11188 	extern(C) void function(GObject* object, GParamSpec* pspec) notifyGtk;
11189 }
11190 
11191 struct GtkWidgetAccessiblePrivate;
11192 
11193 struct GtkWidgetClass
11194 {
11195 	/**
11196 	 * The object class structure needs to be the first
11197 	 * element in the widget class structure in order for the class mechanism
11198 	 * to work correctly. This allows a GtkWidgetClass pointer to be cast to
11199 	 * a GObjectClass pointer.
11200 	 */
11201 	GObjectClass parentClass;
11202 	/**
11203 	 * The signal to emit when a widget of this class is
11204 	 * activated, gtk_widget_activate() handles the emission.
11205 	 * Implementation of this signal is optional.
11206 	 */
11207 	uint activateSignal;
11208 	/** */
11209 	extern(C) void function(GtkWidget* widget, uint nPspecs, GParamSpec** pspecs) dispatchChildPropertiesChanged;
11210 	/** */
11211 	extern(C) void function(GtkWidget* widget) destroy;
11212 	/** */
11213 	extern(C) void function(GtkWidget* widget) show;
11214 	/** */
11215 	extern(C) void function(GtkWidget* widget) showAll;
11216 	/** */
11217 	extern(C) void function(GtkWidget* widget) hide;
11218 	/** */
11219 	extern(C) void function(GtkWidget* widget) map;
11220 	/** */
11221 	extern(C) void function(GtkWidget* widget) unmap;
11222 	/** */
11223 	extern(C) void function(GtkWidget* widget) realize;
11224 	/** */
11225 	extern(C) void function(GtkWidget* widget) unrealize;
11226 	/** */
11227 	extern(C) void function(GtkWidget* widget, GtkAllocation* allocation) sizeAllocate;
11228 	/** */
11229 	extern(C) void function(GtkWidget* widget, GtkStateType previousState) stateChanged;
11230 	/** */
11231 	extern(C) void function(GtkWidget* widget, GtkStateFlags previousStateFlags) stateFlagsChanged;
11232 	/** */
11233 	extern(C) void function(GtkWidget* widget, GtkWidget* previousParent) parentSet;
11234 	/** */
11235 	extern(C) void function(GtkWidget* widget, GtkWidget* previousToplevel) hierarchyChanged;
11236 	/** */
11237 	extern(C) void function(GtkWidget* widget, GtkStyle* previousStyle) styleSet;
11238 	/** */
11239 	extern(C) void function(GtkWidget* widget, GtkTextDirection previousDirection) directionChanged;
11240 	/** */
11241 	extern(C) void function(GtkWidget* widget, int wasGrabbed) grabNotify;
11242 	/** */
11243 	extern(C) void function(GtkWidget* widget, GParamSpec* childProperty) childNotify;
11244 	/** */
11245 	extern(C) int function(GtkWidget* widget, cairo_t* cr) draw;
11246 	/**
11247 	 *
11248 	 * Params:
11249 	 *     widget = a #GtkWidget instance
11250 	 * Return: The #GtkSizeRequestMode preferred by @widget.
11251 	 */
11252 	extern(C) GtkSizeRequestMode function(GtkWidget* widget) getRequestMode;
11253 	/** */
11254 	extern(C) void function(GtkWidget* widget, int* minimumHeight, int* naturalHeight) getPreferredHeight;
11255 	/** */
11256 	extern(C) void function(GtkWidget* widget, int height, int* minimumWidth, int* naturalWidth) getPreferredWidthForHeight;
11257 	/** */
11258 	extern(C) void function(GtkWidget* widget, int* minimumWidth, int* naturalWidth) getPreferredWidth;
11259 	/** */
11260 	extern(C) void function(GtkWidget* widget, int width, int* minimumHeight, int* naturalHeight) getPreferredHeightForWidth;
11261 	/**
11262 	 *
11263 	 * Params:
11264 	 *     widget = a #GtkWidget
11265 	 *     groupCycling = %TRUE if there are other widgets with the same mnemonic
11266 	 * Return: %TRUE if the signal has been handled
11267 	 */
11268 	extern(C) int function(GtkWidget* widget, int groupCycling) mnemonicActivate;
11269 	/** */
11270 	extern(C) void function(GtkWidget* widget) grabFocus;
11271 	/** */
11272 	extern(C) int function(GtkWidget* widget, GtkDirectionType direction) focus;
11273 	/** */
11274 	extern(C) void function(GtkWidget* widget, GtkDirectionType direction) moveFocus;
11275 	/**
11276 	 *
11277 	 * Params:
11278 	 *     widget = a #GtkWidget
11279 	 *     direction = direction of focus movement
11280 	 * Return: %TRUE if stopping keyboard navigation is fine, %FALSE
11281 	 *     if the emitting widget should try to handle the keyboard
11282 	 *     navigation attempt in its parent container(s).
11283 	 */
11284 	extern(C) int function(GtkWidget* widget, GtkDirectionType direction) keynavFailed;
11285 	/**
11286 	 *
11287 	 * Params:
11288 	 *     widget = a #GtkWidget
11289 	 *     event = a #GdkEvent
11290 	 * Return: return from the event signal emission (%TRUE if
11291 	 *     the event was handled)
11292 	 */
11293 	extern(C) int function(GtkWidget* widget, GdkEvent* event) event;
11294 	/** */
11295 	extern(C) int function(GtkWidget* widget, GdkEventButton* event) buttonPressEvent;
11296 	/** */
11297 	extern(C) int function(GtkWidget* widget, GdkEventButton* event) buttonReleaseEvent;
11298 	/** */
11299 	extern(C) int function(GtkWidget* widget, GdkEventScroll* event) scrollEvent;
11300 	/** */
11301 	extern(C) int function(GtkWidget* widget, GdkEventMotion* event) motionNotifyEvent;
11302 	/** */
11303 	extern(C) int function(GtkWidget* widget, GdkEventAny* event) deleteEvent;
11304 	/** */
11305 	extern(C) int function(GtkWidget* widget, GdkEventAny* event) destroyEvent;
11306 	/** */
11307 	extern(C) int function(GtkWidget* widget, GdkEventKey* event) keyPressEvent;
11308 	/** */
11309 	extern(C) int function(GtkWidget* widget, GdkEventKey* event) keyReleaseEvent;
11310 	/** */
11311 	extern(C) int function(GtkWidget* widget, GdkEventCrossing* event) enterNotifyEvent;
11312 	/** */
11313 	extern(C) int function(GtkWidget* widget, GdkEventCrossing* event) leaveNotifyEvent;
11314 	/** */
11315 	extern(C) int function(GtkWidget* widget, GdkEventConfigure* event) configureEvent;
11316 	/** */
11317 	extern(C) int function(GtkWidget* widget, GdkEventFocus* event) focusInEvent;
11318 	/** */
11319 	extern(C) int function(GtkWidget* widget, GdkEventFocus* event) focusOutEvent;
11320 	/** */
11321 	extern(C) int function(GtkWidget* widget, GdkEventAny* event) mapEvent;
11322 	/** */
11323 	extern(C) int function(GtkWidget* widget, GdkEventAny* event) unmapEvent;
11324 	/** */
11325 	extern(C) int function(GtkWidget* widget, GdkEventProperty* event) propertyNotifyEvent;
11326 	/** */
11327 	extern(C) int function(GtkWidget* widget, GdkEventSelection* event) selectionClearEvent;
11328 	/** */
11329 	extern(C) int function(GtkWidget* widget, GdkEventSelection* event) selectionRequestEvent;
11330 	/** */
11331 	extern(C) int function(GtkWidget* widget, GdkEventSelection* event) selectionNotifyEvent;
11332 	/** */
11333 	extern(C) int function(GtkWidget* widget, GdkEventProximity* event) proximityInEvent;
11334 	/** */
11335 	extern(C) int function(GtkWidget* widget, GdkEventProximity* event) proximityOutEvent;
11336 	/** */
11337 	extern(C) int function(GtkWidget* widget, GdkEventVisibility* event) visibilityNotifyEvent;
11338 	/** */
11339 	extern(C) int function(GtkWidget* widget, GdkEventWindowState* event) windowStateEvent;
11340 	/** */
11341 	extern(C) int function(GtkWidget* widget, GdkEventExpose* event) damageEvent;
11342 	/** */
11343 	extern(C) int function(GtkWidget* widget, GdkEventGrabBroken* event) grabBrokenEvent;
11344 	/** */
11345 	extern(C) void function(GtkWidget* widget, GtkSelectionData* selectionData, uint info, uint time) selectionGet;
11346 	/** */
11347 	extern(C) void function(GtkWidget* widget, GtkSelectionData* selectionData, uint time) selectionReceived;
11348 	/** */
11349 	extern(C) void function(GtkWidget* widget, GdkDragContext* context) dragBegin;
11350 	/** */
11351 	extern(C) void function(GtkWidget* widget, GdkDragContext* context) dragEnd;
11352 	/** */
11353 	extern(C) void function(GtkWidget* widget, GdkDragContext* context, GtkSelectionData* selectionData, uint info, uint time) dragDataGet;
11354 	/** */
11355 	extern(C) void function(GtkWidget* widget, GdkDragContext* context) dragDataDelete;
11356 	/** */
11357 	extern(C) void function(GtkWidget* widget, GdkDragContext* context, uint time) dragLeave;
11358 	/** */
11359 	extern(C) int function(GtkWidget* widget, GdkDragContext* context, int x, int y, uint time) dragMotion;
11360 	/** */
11361 	extern(C) int function(GtkWidget* widget, GdkDragContext* context, int x, int y, uint time) dragDrop;
11362 	/** */
11363 	extern(C) void function(GtkWidget* widget, GdkDragContext* context, int x, int y, GtkSelectionData* selectionData, uint info, uint time) dragDataReceived;
11364 	/** */
11365 	extern(C) int function(GtkWidget* widget, GdkDragContext* context, GtkDragResult result) dragFailed;
11366 	/** */
11367 	extern(C) int function(GtkWidget* widget) popupMenu;
11368 	/** */
11369 	extern(C) int function(GtkWidget* widget, GtkWidgetHelpType helpType) showHelp;
11370 	/**
11371 	 *
11372 	 * Params:
11373 	 *     widget = a #GtkWidget
11374 	 * Return: the #AtkObject associated with @widget
11375 	 */
11376 	extern(C) AtkObject* function(GtkWidget* widget) getAccessible;
11377 	/** */
11378 	extern(C) void function(GtkWidget* widget, GdkScreen* previousScreen) screenChanged;
11379 	/**
11380 	 *
11381 	 * Params:
11382 	 *     widget = a #GtkWidget
11383 	 *     signalId = the ID of a signal installed on @widget
11384 	 * Return: %TRUE if the accelerator can be activated.
11385 	 */
11386 	extern(C) int function(GtkWidget* widget, uint signalId) canActivateAccel;
11387 	/** */
11388 	extern(C) void function(GtkWidget* widget) compositedChanged;
11389 	/** */
11390 	extern(C) int function(GtkWidget* widget, int x, int y, int keyboardTooltip, GtkTooltip* tooltip) queryTooltip;
11391 	/** */
11392 	extern(C) void function(GtkWidget* widget, int* hexpandP, int* vexpandP) computeExpand;
11393 	/** */
11394 	extern(C) void function(GtkWidget* widget, GtkOrientation orientation, int* minimumSize, int* naturalSize) adjustSizeRequest;
11395 	/** */
11396 	extern(C) void function(GtkWidget* widget, GtkOrientation orientation, int* minimumSize, int* naturalSize, int* allocatedPos, int* allocatedSize) adjustSizeAllocation;
11397 	/** */
11398 	extern(C) void function(GtkWidget* widget) styleUpdated;
11399 	/** */
11400 	extern(C) int function(GtkWidget* widget, GdkEventTouch* event) touchEvent;
11401 	/** */
11402 	extern(C) void function(GtkWidget* widget, int width, int* minimumHeight, int* naturalHeight, int* minimumBaseline, int* naturalBaseline) getPreferredHeightAndBaselineForWidth;
11403 	/** */
11404 	extern(C) void function(GtkWidget* widget, int* minimumBaseline, int* naturalBaseline) adjustBaselineRequest;
11405 	/** */
11406 	extern(C) void function(GtkWidget* widget, int* baseline) adjustBaselineAllocation;
11407 	/** */
11408 	extern(C) void function(GtkWidget* widget, cairo_region_t* region) queueDrawRegion;
11409 	GtkWidgetClassPrivate* priv;
11410 	/** */
11411 	extern(C) void function() GtkReserved6;
11412 	/** */
11413 	extern(C) void function() GtkReserved7;
11414 }
11415 
11416 struct GtkWidgetClassPrivate;
11417 
11418 struct GtkWidgetPath;
11419 
11420 struct GtkWidgetPrivate;
11421 
11422 struct GtkWindow
11423 {
11424 	GtkBin bin;
11425 	GtkWindowPrivate* priv;
11426 }
11427 
11428 struct GtkWindowAccessible
11429 {
11430 	GtkContainerAccessible parent;
11431 	GtkWindowAccessiblePrivate* priv;
11432 }
11433 
11434 struct GtkWindowAccessibleClass
11435 {
11436 	GtkContainerAccessibleClass parentClass;
11437 }
11438 
11439 struct GtkWindowAccessiblePrivate;
11440 
11441 struct GtkWindowClass
11442 {
11443 	/**
11444 	 * The parent class.
11445 	 */
11446 	GtkBinClass parentClass;
11447 	/** */
11448 	extern(C) void function(GtkWindow* window, GtkWidget* focus) setFocus;
11449 	/** */
11450 	extern(C) void function(GtkWindow* window) activateFocus;
11451 	/** */
11452 	extern(C) void function(GtkWindow* window) activateDefault;
11453 	/** */
11454 	extern(C) void function(GtkWindow* window) keysChanged;
11455 	/** */
11456 	extern(C) int function(GtkWindow* window, int toggle) enableDebugging;
11457 	/** */
11458 	extern(C) void function() GtkReserved1;
11459 	/** */
11460 	extern(C) void function() GtkReserved2;
11461 	/** */
11462 	extern(C) void function() GtkReserved3;
11463 }
11464 
11465 struct GtkWindowGeometryInfo;
11466 
11467 struct GtkWindowGroup
11468 {
11469 	GObject parentInstance;
11470 	GtkWindowGroupPrivate* priv;
11471 }
11472 
11473 struct GtkWindowGroupClass
11474 {
11475 	GObjectClass parentClass;
11476 	/** */
11477 	extern(C) void function() GtkReserved1;
11478 	/** */
11479 	extern(C) void function() GtkReserved2;
11480 	/** */
11481 	extern(C) void function() GtkReserved3;
11482 	/** */
11483 	extern(C) void function() GtkReserved4;
11484 }
11485 
11486 struct GtkWindowGroupPrivate;
11487 
11488 struct GtkWindowPrivate;
11489 
11490 /** */
11491 public alias extern(C) int function(GtkAccelGroup* accelGroup, GObject* acceleratable, uint keyval, GdkModifierType modifier) GtkAccelGroupActivate;
11492 
11493 /** */
11494 public alias extern(C) int function(GtkAccelKey* key, GClosure* closure, void* data) GtkAccelGroupFindFunc;
11495 
11496 /** */
11497 public alias extern(C) void function(void* data, const(char)* accelPath, uint accelKey, GdkModifierType accelMods, int changed) GtkAccelMapForeach;
11498 
11499 /**
11500  * A function used by gtk_assistant_set_forward_page_func() to know which
11501  * is the next page given a current one. It’s called both for computing the
11502  * next page when the user presses the “forward” button and for handling
11503  * the behavior of the “last” button.
11504  *
11505  * Params:
11506  *     currentPage = The page number used to calculate the next page.
11507  *     data = user data.
11508  *
11509  * Return: The next page number.
11510  */
11511 public alias extern(C) int function(int currentPage, void* data) GtkAssistantPageFunc;
11512 
11513 /**
11514  * This is the signature of a function used to connect signals.  It is used
11515  * by the gtk_builder_connect_signals() and gtk_builder_connect_signals_full()
11516  * methods.  It is mainly intended for interpreted language bindings, but
11517  * could be useful where the programmer wants more control over the signal
11518  * connection process. Note that this function can only be called once,
11519  * subsequent calls will do nothing.
11520  *
11521  * Params:
11522  *     builder = a #GtkBuilder
11523  *     object = object to connect a signal to
11524  *     signalName = name of the signal
11525  *     handlerName = name of the handler
11526  *     connectObject = a #GObject, if non-%NULL, use g_signal_connect_object()
11527  *     flags = #GConnectFlags to use
11528  *     userData = user data
11529  *
11530  * Since: 2.12
11531  */
11532 public alias extern(C) void function(GtkBuilder* builder, GObject* object, const(char)* signalName, const(char)* handlerName, GObject* connectObject, GConnectFlags flags, void* userData) GtkBuilderConnectFunc;
11533 
11534 /**
11535  * This kind of functions provide Pango markup with detail information for the
11536  * specified day. Examples for such details are holidays or appointments. The
11537  * function returns %NULL when no information is available.
11538  *
11539  * Params:
11540  *     calendar = a #GtkCalendar.
11541  *     year = the year for which details are needed.
11542  *     month = the month for which details are needed.
11543  *     day = the day of @month for which details are needed.
11544  *     userData = the data passed with gtk_calendar_set_detail_func().
11545  *
11546  * Return: Newly allocated string with Pango markup
11547  *     with details for the specified day or %NULL.
11548  *
11549  * Since: 2.14
11550  */
11551 public alias extern(C) char* function(GtkCalendar* calendar, uint year, uint month, uint day, void* userData) GtkCalendarDetailFunc;
11552 
11553 /**
11554  * The type of the callback functions used for e.g. iterating over
11555  * the children of a container, see gtk_container_foreach().
11556  *
11557  * Params:
11558  *     widget = the widget to operate on
11559  *     data = user-supplied data
11560  */
11561 public alias extern(C) void function(GtkWidget* widget, void* data) GtkCallback;
11562 
11563 /**
11564  * The type of the callback functions used for iterating over the
11565  * cell renderers and their allocated areas inside a #GtkCellArea,
11566  * see gtk_cell_area_foreach_alloc().
11567  *
11568  * Params:
11569  *     renderer = the cell renderer to operate on
11570  *     cellArea = the area allocated to @renderer inside the rectangle
11571  *         provided to gtk_cell_area_foreach_alloc().
11572  *     cellBackground = the background area for @renderer inside the
11573  *         background area provided to gtk_cell_area_foreach_alloc().
11574  *     data = user-supplied data
11575  *
11576  * Return: %TRUE to stop iterating over cells.
11577  */
11578 public alias extern(C) int function(GtkCellRenderer* renderer, GdkRectangle* cellArea, GdkRectangle* cellBackground, void* data) GtkCellAllocCallback;
11579 
11580 /**
11581  * The type of the callback functions used for iterating over
11582  * the cell renderers of a #GtkCellArea, see gtk_cell_area_foreach().
11583  *
11584  * Params:
11585  *     renderer = the cell renderer to operate on
11586  *     data = user-supplied data
11587  *
11588  * Return: %TRUE to stop iterating over cells.
11589  */
11590 public alias extern(C) int function(GtkCellRenderer* renderer, void* data) GtkCellCallback;
11591 
11592 /**
11593  * A function which should set the value of @cell_layout’s cell renderer(s)
11594  * as appropriate.
11595  *
11596  * Params:
11597  *     cellLayout = a #GtkCellLayout
11598  *     cell = the cell renderer whose value is to be set
11599  *     treeModel = the model
11600  *     iter = a #GtkTreeIter indicating the row to set the value for
11601  *     data = user data passed to gtk_cell_layout_set_cell_data_func()
11602  */
11603 public alias extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, GtkTreeModel* treeModel, GtkTreeIter* iter, void* data) GtkCellLayoutDataFunc;
11604 
11605 /**
11606  * A function that will be called when the contents of the clipboard are changed
11607  * or cleared. Once this has called, the @user_data_or_owner argument
11608  * will not be used again.
11609  *
11610  * Params:
11611  *     clipboard = the #GtkClipboard
11612  *     userDataOrOwner = the @user_data argument passed to gtk_clipboard_set_with_data(),
11613  *         or the @owner argument passed to gtk_clipboard_set_with_owner()
11614  */
11615 public alias extern(C) void function(GtkClipboard* clipboard, void* userDataOrOwner) GtkClipboardClearFunc;
11616 
11617 /**
11618  * A function that will be called to provide the contents of the selection.
11619  * If multiple types of data were advertised, the requested type can
11620  * be determined from the @info parameter or by checking the target field
11621  * of @selection_data. If the data could successfully be converted into
11622  * then it should be stored into the @selection_data object by
11623  * calling gtk_selection_data_set() (or related functions such
11624  * as gtk_selection_data_set_text()). If no data is set, the requestor
11625  * will be informed that the attempt to get the data failed.
11626  *
11627  * Params:
11628  *     clipboard = the #GtkClipboard
11629  *     selectionData = a #GtkSelectionData argument in which the requested
11630  *         data should be stored.
11631  *     info = the info field corresponding to the requested target from the
11632  *         #GtkTargetEntry array passed to gtk_clipboard_set_with_data() or
11633  *         gtk_clipboard_set_with_owner().
11634  *     userDataOrOwner = the @user_data argument passed to
11635  *         gtk_clipboard_set_with_data(), or the @owner argument passed to
11636  *         gtk_clipboard_set_with_owner()
11637  */
11638 public alias extern(C) void function(GtkClipboard* clipboard, GtkSelectionData* selectionData, uint info, void* userDataOrOwner) GtkClipboardGetFunc;
11639 
11640 /**
11641  * A function to be called when the results of gtk_clipboard_request_image()
11642  * are received, or when the request fails.
11643  *
11644  * Params:
11645  *     clipboard = the #GtkClipboard
11646  *     pixbuf = the received image
11647  *     data = the @user_data supplied to
11648  *         gtk_clipboard_request_image().
11649  *
11650  * Since: 2.6
11651  */
11652 public alias extern(C) void function(GtkClipboard* clipboard, GdkPixbuf* pixbuf, void* data) GtkClipboardImageReceivedFunc;
11653 
11654 /**
11655  * A function to be called when the results of gtk_clipboard_request_contents()
11656  * are received, or when the request fails.
11657  *
11658  * Params:
11659  *     clipboard = the #GtkClipboard
11660  *     selectionData = a #GtkSelectionData containing the data was received.
11661  *         If retrieving the data failed, then then length field
11662  *         of @selection_data will be negative.
11663  *     data = the @user_data supplied to
11664  *         gtk_clipboard_request_contents().
11665  */
11666 public alias extern(C) void function(GtkClipboard* clipboard, GtkSelectionData* selectionData, void* data) GtkClipboardReceivedFunc;
11667 
11668 /**
11669  * A function to be called when the results of
11670  * gtk_clipboard_request_rich_text() are received, or when the request
11671  * fails.
11672  *
11673  * Params:
11674  *     clipboard = the #GtkClipboard
11675  *     format = The format of the rich text
11676  *     text = the rich text received, as
11677  *         a UTF-8 encoded string, or %NULL if retrieving the data failed.
11678  *     length = Length of the text.
11679  *     data = the @user_data supplied to
11680  *         gtk_clipboard_request_rich_text().
11681  *
11682  * Since: 2.10
11683  */
11684 public alias extern(C) void function(GtkClipboard* clipboard, GdkAtom format, ubyte* text, size_t length, void* data) GtkClipboardRichTextReceivedFunc;
11685 
11686 /**
11687  * A function to be called when the results of gtk_clipboard_request_targets()
11688  * are received, or when the request fails.
11689  *
11690  * Params:
11691  *     clipboard = the #GtkClipboard
11692  *     atoms = the supported targets,
11693  *         as array of #GdkAtom, or %NULL if retrieving the data failed.
11694  *     nAtoms = the length of the @atoms array.
11695  *     data = the @user_data supplied to
11696  *         gtk_clipboard_request_targets().
11697  *
11698  * Since: 2.4
11699  */
11700 public alias extern(C) void function(GtkClipboard* clipboard, GdkAtom* atoms, int nAtoms, void* data) GtkClipboardTargetsReceivedFunc;
11701 
11702 /**
11703  * A function to be called when the results of gtk_clipboard_request_text()
11704  * are received, or when the request fails.
11705  *
11706  * Params:
11707  *     clipboard = the #GtkClipboard
11708  *     text = the text received, as a UTF-8 encoded string, or
11709  *         %NULL if retrieving the data failed.
11710  *     data = the @user_data supplied to
11711  *         gtk_clipboard_request_text().
11712  */
11713 public alias extern(C) void function(GtkClipboard* clipboard, const(char)* text, void* data) GtkClipboardTextReceivedFunc;
11714 
11715 /**
11716  * A function to be called when the results of
11717  * gtk_clipboard_request_uris() are received, or when the request
11718  * fails.
11719  *
11720  * Params:
11721  *     clipboard = the #GtkClipboard
11722  *     uris = the received URIs
11723  *     data = the @user_data supplied to
11724  *         gtk_clipboard_request_uris().
11725  *
11726  * Since: 2.14
11727  */
11728 public alias extern(C) void function(GtkClipboard* clipboard, char** uris, void* data) GtkClipboardURIReceivedFunc;
11729 
11730 /** */
11731 public alias extern(C) void function(GdkColor* colors, int nColors) GtkColorSelectionChangePaletteFunc;
11732 
11733 /** */
11734 public alias extern(C) void function(GdkScreen* screen, GdkColor* colors, int nColors) GtkColorSelectionChangePaletteWithScreenFunc;
11735 
11736 /**
11737  * A function which decides whether the row indicated by @iter matches
11738  * a given @key, and should be displayed as a possible completion for @key.
11739  * Note that @key is normalized and case-folded (see g_utf8_normalize()
11740  * and g_utf8_casefold()). If this is not appropriate, match functions
11741  * have access to the unmodified key via
11742  * `gtk_entry_get_text (GTK_ENTRY (gtk_entry_completion_get_entry ()))`.
11743  *
11744  * Params:
11745  *     completion = the #GtkEntryCompletion
11746  *     key = the string to match, normalized and case-folded
11747  *     iter = a #GtkTreeIter indicating the row to match
11748  *     userData = user data given to gtk_entry_completion_set_match_func()
11749  *
11750  * Return: %TRUE if @iter should be displayed as a possible completion
11751  *     for @key
11752  */
11753 public alias extern(C) int function(GtkEntryCompletion* completion, const(char)* key, GtkTreeIter* iter, void* userData) GtkEntryCompletionMatchFunc;
11754 
11755 /**
11756  * The type of function that is used with custom filters, see
11757  * gtk_file_filter_add_custom().
11758  *
11759  * Params:
11760  *     filterInfo = a #GtkFileFilterInfo that is filled according
11761  *         to the @needed flags passed to gtk_file_filter_add_custom()
11762  *     data = user data passed to gtk_file_filter_add_custom()
11763  *
11764  * Return: %TRUE if the file should be displayed
11765  */
11766 public alias extern(C) int function(GtkFileFilterInfo* filterInfo, void* data) GtkFileFilterFunc;
11767 
11768 /**
11769  * Called for flow boxes that are bound to a #GListModel with
11770  * gtk_flow_box_bind_model() for each item that gets added to the model.
11771  *
11772  * Params:
11773  *     item = the item from the model for which to create a widget for
11774  *     userData = user data from gtk_flow_box_bind_model()
11775  *
11776  * Return: a #GtkWidget that represents @item
11777  *
11778  * Since: 3.18
11779  */
11780 public alias extern(C) GtkWidget* function(void* item, void* userData) GtkFlowBoxCreateWidgetFunc;
11781 
11782 /**
11783  * A function that will be called whenrever a child changes
11784  * or is added. It lets you control if the child should be
11785  * visible or not.
11786  *
11787  * Params:
11788  *     child = a #GtkFlowBoxChild that may be filtered
11789  *     userData = user data
11790  *
11791  * Return: %TRUE if the row should be visible, %FALSE otherwise
11792  *
11793  * Since: 3.12
11794  */
11795 public alias extern(C) int function(GtkFlowBoxChild* child, void* userData) GtkFlowBoxFilterFunc;
11796 
11797 /**
11798  * A function used by gtk_flow_box_selected_foreach().
11799  * It will be called on every selected child of the @box.
11800  *
11801  * Params:
11802  *     box = a #GtkFlowBox
11803  *     child = a #GtkFlowBoxChild
11804  *     userData = user data
11805  *
11806  * Since: 3.12
11807  */
11808 public alias extern(C) void function(GtkFlowBox* box, GtkFlowBoxChild* child, void* userData) GtkFlowBoxForeachFunc;
11809 
11810 /**
11811  * A function to compare two children to determine which
11812  * should come first.
11813  *
11814  * Params:
11815  *     child1 = the first child
11816  *     child2 = the second child
11817  *     userData = user data
11818  *
11819  * Return: < 0 if @child1 should be before @child2, 0 if
11820  *     the are equal, and > 0 otherwise
11821  *
11822  * Since: 3.12
11823  */
11824 public alias extern(C) int function(GtkFlowBoxChild* child1, GtkFlowBoxChild* child2, void* userData) GtkFlowBoxSortFunc;
11825 
11826 /**
11827  * The type of function that is used for deciding what fonts get
11828  * shown in a #GtkFontChooser. See gtk_font_chooser_set_filter_func().
11829  *
11830  * Params:
11831  *     family = a #PangoFontFamily
11832  *     face = a #PangoFontFace belonging to @family
11833  *     data = user data passed to gtk_font_chooser_set_filter_func()
11834  *
11835  * Return: %TRUE if the font should be displayed
11836  */
11837 public alias extern(C) int function(PangoFontFamily* family, PangoFontFace* face, void* data) GtkFontFilterFunc;
11838 
11839 /**
11840  * A function used by gtk_icon_view_selected_foreach() to map all
11841  * selected rows.  It will be called on every selected row in the view.
11842  *
11843  * Params:
11844  *     iconView = a #GtkIconView
11845  *     path = The #GtkTreePath of a selected row
11846  *     data = user data
11847  */
11848 public alias extern(C) void function(GtkIconView* iconView, GtkTreePath* path, void* data) GtkIconViewForeachFunc;
11849 
11850 /**
11851  * Key snooper functions are called before normal event delivery.
11852  * They can be used to implement custom key event handling.
11853  *
11854  * Params:
11855  *     grabWidget = the widget to which the event will be delivered
11856  *     event = the key event
11857  *     funcData = data supplied to gtk_key_snooper_install()
11858  *
11859  * Return: %TRUE to stop further processing of @event, %FALSE to continue.
11860  */
11861 public alias extern(C) int function(GtkWidget* grabWidget, GdkEventKey* event, void* funcData) GtkKeySnoopFunc;
11862 
11863 /**
11864  * Called for list boxes that are bound to a #GListModel with
11865  * gtk_list_box_bind_model() for each item that gets added to the model.
11866  *
11867  * Versions of GTK+ prior to 3.18 called gtk_widget_show_all() on the rows
11868  * created by the GtkListBoxCreateWidgetFunc, but this forced all widgets
11869  * inside the row to be shown, and is no longer the case. Applications should
11870  * be updated to show the desired row widgets.
11871  *
11872  * Params:
11873  *     item = the item from the model for which to create a widget for
11874  *     userData = user data
11875  *
11876  * Return: a #GtkWidget that represents @item
11877  *
11878  * Since: 3.16
11879  */
11880 public alias extern(C) GtkWidget* function(void* item, void* userData) GtkListBoxCreateWidgetFunc;
11881 
11882 /**
11883  * Will be called whenever the row changes or is added and lets you control
11884  * if the row should be visible or not.
11885  *
11886  * Params:
11887  *     row = the row that may be filtered
11888  *     userData = user data
11889  *
11890  * Return: %TRUE if the row should be visible, %FALSE otherwise
11891  *
11892  * Since: 3.10
11893  */
11894 public alias extern(C) int function(GtkListBoxRow* row, void* userData) GtkListBoxFilterFunc;
11895 
11896 /**
11897  * A function used by gtk_list_box_selected_foreach().
11898  * It will be called on every selected child of the @box.
11899  *
11900  * Params:
11901  *     box = a #GtkListBox
11902  *     row = a #GtkListBoxRow
11903  *     userData = user data
11904  *
11905  * Since: 3.14
11906  */
11907 public alias extern(C) void function(GtkListBox* box, GtkListBoxRow* row, void* userData) GtkListBoxForeachFunc;
11908 
11909 /**
11910  * Compare two rows to determine which should be first.
11911  *
11912  * Params:
11913  *     row1 = the first row
11914  *     row2 = the second row
11915  *     userData = user data
11916  *
11917  * Return: < 0 if @row1 should be before @row2, 0 if they are
11918  *     equal and > 0 otherwise
11919  *
11920  * Since: 3.10
11921  */
11922 public alias extern(C) int function(GtkListBoxRow* row1, GtkListBoxRow* row2, void* userData) GtkListBoxSortFunc;
11923 
11924 /**
11925  * Whenever @row changes or which row is before @row changes this
11926  * is called, which lets you update the header on @row. You may
11927  * remove or set a new one via gtk_list_box_row_set_header() or
11928  * just change the state of the current header widget.
11929  *
11930  * Params:
11931  *     row = the row to update
11932  *     before = the row before @row, or %NULL if it is first
11933  *     userData = user data
11934  *
11935  * Since: 3.10
11936  */
11937 public alias extern(C) void function(GtkListBoxRow* row, GtkListBoxRow* before, void* userData) GtkListBoxUpdateHeaderFunc;
11938 
11939 /**
11940  * A user function supplied when calling gtk_menu_attach_to_widget() which
11941  * will be called when the menu is later detached from the widget.
11942  *
11943  * Params:
11944  *     attachWidget = the #GtkWidget that the menu is being detached from.
11945  *     menu = the #GtkMenu being detached.
11946  */
11947 public alias extern(C) void function(GtkWidget* attachWidget, GtkMenu* menu) GtkMenuDetachFunc;
11948 
11949 /**
11950  * A user function supplied when calling gtk_menu_popup() which
11951  * controls the positioning of the menu when it is displayed.  The
11952  * function sets the @x and @y parameters to the coordinates where the
11953  * menu is to be drawn.  To make the menu appear on a different
11954  * monitor than the mouse pointer, gtk_menu_set_monitor() must be
11955  * called.
11956  *
11957  * Params:
11958  *     menu = a #GtkMenu.
11959  *     x = address of the #gint representing the horizontal
11960  *         position where the menu shall be drawn.
11961  *     y = address of the #gint representing the vertical position
11962  *         where the menu shall be drawn.  This is an output parameter.
11963  *     pushIn = This parameter controls how menus placed outside
11964  *         the monitor are handled.  If this is set to %TRUE and part of
11965  *         the menu is outside the monitor then GTK+ pushes the window
11966  *         into the visible area, effectively modifying the popup
11967  *         position.  Note that moving and possibly resizing the menu
11968  *         around will alter the scroll position to keep the menu items
11969  *         “in place”, i.e. at the same monitor position they would have
11970  *         been without resizing.  In practice, this behavior is only
11971  *         useful for combobox popups or option menus and cannot be used
11972  *         to simply confine a menu to monitor boundaries.  In that case,
11973  *         changing the scroll offset is not desirable.
11974  *     userData = the data supplied by the user in the gtk_menu_popup()
11975  *         @data parameter.
11976  */
11977 public alias extern(C) void function(GtkMenu* menu, int* x, int* y, int* pushIn, void* userData) GtkMenuPositionFunc;
11978 
11979 /**
11980  * A multihead-aware GTK+ module may have a gtk_module_display_init() function
11981  * with this prototype. GTK+ calls this function for each opened display.
11982  *
11983  * Params:
11984  *     display = an open #GdkDisplay
11985  *
11986  * Since: 2.2
11987  */
11988 public alias extern(C) void function(GdkDisplay* display) GtkModuleDisplayInitFunc;
11989 
11990 /**
11991  * Each GTK+ module must have a function gtk_module_init() with this prototype.
11992  * This function is called after loading the module.
11993  *
11994  * Params:
11995  *     argc = GTK+ always passes %NULL for this argument
11996  *     argv = GTK+ always passes %NULL for this argument
11997  */
11998 public alias extern(C) void function(int* argc, char*** argv) GtkModuleInitFunc;
11999 
12000 /**
12001  * The type of function that is passed to
12002  * gtk_print_run_page_setup_dialog_async().
12003  *
12004  * This function will be called when the page setup dialog
12005  * is dismissed, and also serves as destroy notify for @data.
12006  *
12007  * Params:
12008  *     pageSetup = the #GtkPageSetup that has been
12009  *     data = user data that has been passed to
12010  *         gtk_print_run_page_setup_dialog_async()
12011  */
12012 public alias extern(C) void function(GtkPageSetup* pageSetup, void* data) GtkPageSetupDoneFunc;
12013 
12014 /** */
12015 public alias extern(C) void function(const(char)* key, const(char)* value, void* userData) GtkPrintSettingsFunc;
12016 
12017 /** */
12018 public alias extern(C) int function(GParamSpec* pspec, GString* rcString, GValue* propertyValue) GtkRcPropertyParser;
12019 
12020 /**
12021  * The type of function that is used with custom filters,
12022  * see gtk_recent_filter_add_custom().
12023  *
12024  * Params:
12025  *     filterInfo = a #GtkRecentFilterInfo that is filled according
12026  *         to the @needed flags passed to gtk_recent_filter_add_custom()
12027  *     userData = user data passed to gtk_recent_filter_add_custom()
12028  *
12029  * Return: %TRUE if the file should be displayed
12030  */
12031 public alias extern(C) int function(GtkRecentFilterInfo* filterInfo, void* userData) GtkRecentFilterFunc;
12032 
12033 /** */
12034 public alias extern(C) int function(GtkRecentInfo* a, GtkRecentInfo* b, void* userData) GtkRecentSortFunc;
12035 
12036 /** */
12037 public alias extern(C) int function(const(char)* str, GValue* value, GError** err) GtkStylePropertyParser;
12038 
12039 /**
12040  * A function that is called to deserialize rich text that has been
12041  * serialized with gtk_text_buffer_serialize(), and insert it at @iter.
12042  *
12043  * Params:
12044  *     registerBuffer = the #GtkTextBuffer the format is registered with
12045  *     contentBuffer = the #GtkTextBuffer to deserialize into
12046  *     iter = insertion point for the deserialized text
12047  *     data = data to deserialize
12048  *     length = length of @data
12049  *     createTags = %TRUE if deserializing may create tags
12050  *     userData = user data that was specified when registering the format
12051  *
12052  * Return: %TRUE on success, %FALSE otherwise
12053  *
12054  * Throws: GException on failure.
12055  */
12056 public alias extern(C) int function(GtkTextBuffer* registerBuffer, GtkTextBuffer* contentBuffer, GtkTextIter* iter, ubyte* data, size_t length, int createTags, void* userData, GError** err) GtkTextBufferDeserializeFunc;
12057 
12058 /**
12059  * A function that is called to serialize the content of a text buffer.
12060  * It must return the serialized form of the content.
12061  *
12062  * Params:
12063  *     registerBuffer = the #GtkTextBuffer for which the format is registered
12064  *     contentBuffer = the #GtkTextBuffer to serialize
12065  *     start = start of the block of text to serialize
12066  *     end = end of the block of text to serialize
12067  *     length = Return location for the length of the serialized data
12068  *     userData = user data that was specified when registering the format
12069  *
12070  * Return: a newly-allocated array of guint8 which contains
12071  *     the serialized data, or %NULL if an error occurred
12072  */
12073 public alias extern(C) ubyte* function(GtkTextBuffer* registerBuffer, GtkTextBuffer* contentBuffer, GtkTextIter* start, GtkTextIter* end, size_t* length, void* userData) GtkTextBufferSerializeFunc;
12074 
12075 /** */
12076 public alias extern(C) int function(dchar ch, void* userData) GtkTextCharPredicate;
12077 
12078 /** */
12079 public alias extern(C) void function(GtkTextTag* tag, void* data) GtkTextTagTableForeach;
12080 
12081 /**
12082  * Callback type for adding a function to update animations. See gtk_widget_add_tick_callback().
12083  *
12084  * Params:
12085  *     widget = the widget
12086  *     frameClock = the frame clock for the widget (same as calling gtk_widget_get_frame_clock())
12087  *     userData = user data passed to gtk_widget_add_tick_callback().
12088  *
12089  * Return: %G_SOURCE_CONTINUE if the tick callback should continue to be called,
12090  *     %G_SOURCE_REMOVE if the tick callback should be removed.
12091  *
12092  * Since: 3.8
12093  */
12094 public alias extern(C) int function(GtkWidget* widget, GdkFrameClock* frameClock, void* userData) GtkTickCallback;
12095 
12096 /**
12097  * The function used to translate messages in e.g. #GtkIconFactory
12098  * and #GtkActionGroup.
12099  *
12100  * Params:
12101  *     path = The id of the message. In #GtkActionGroup this will be a label
12102  *         or tooltip from a #GtkActionEntry.
12103  *     funcData = user data passed in when registering the
12104  *         function
12105  *
12106  * Return: the translated message
12107  */
12108 public alias extern(C) char* function(const(char)* path, void* funcData) GtkTranslateFunc;
12109 
12110 /**
12111  * A function to set the properties of a cell instead of just using the
12112  * straight mapping between the cell and the model.  This is useful for
12113  * customizing the cell renderer.  For example, a function might get an
12114  * integer from the @tree_model, and render it to the “text” attribute of
12115  * “cell” by converting it to its written equivalent.  This is set by
12116  * calling gtk_tree_view_column_set_cell_data_func()
12117  *
12118  * Params:
12119  *     treeColumn = A #GtkTreeViewColumn
12120  *     cell = The #GtkCellRenderer that is being rendered by @tree_column
12121  *     treeModel = The #GtkTreeModel being rendered
12122  *     iter = A #GtkTreeIter of the current row rendered
12123  *     data = user data
12124  */
12125 public alias extern(C) void function(GtkTreeViewColumn* treeColumn, GtkCellRenderer* cell, GtkTreeModel* treeModel, GtkTreeIter* iter, void* data) GtkTreeCellDataFunc;
12126 
12127 /** */
12128 public alias extern(C) void function(GtkTreeView* treeView, GtkTreePath* path, int children, void* userData) GtkTreeDestroyCountFunc;
12129 
12130 /**
12131  * A GtkTreeIterCompareFunc should return a negative integer, zero, or a positive
12132  * integer if @a sorts before @b, @a sorts with @b, or @a sorts after @b
12133  * respectively. If two iters compare as equal, their order in the sorted model
12134  * is undefined. In order to ensure that the #GtkTreeSortable behaves as
12135  * expected, the GtkTreeIterCompareFunc must define a partial order on
12136  * the model, i.e. it must be reflexive, antisymmetric and transitive.
12137  *
12138  * For example, if @model is a product catalogue, then a compare function
12139  * for the “price” column could be one which returns
12140  * `price_of(@a) - price_of(@b)`.
12141  *
12142  * Params:
12143  *     model = The #GtkTreeModel the comparison is within
12144  *     a = A #GtkTreeIter in @model
12145  *     b = Another #GtkTreeIter in @model
12146  *     userData = Data passed when the compare func is assigned e.g. by
12147  *         gtk_tree_sortable_set_sort_func()
12148  *
12149  * Return: a negative integer, zero or a positive integer depending on whether
12150  *     @a sorts before, with or after @b
12151  */
12152 public alias extern(C) int function(GtkTreeModel* model, GtkTreeIter* a, GtkTreeIter* b, void* userData) GtkTreeIterCompareFunc;
12153 
12154 /**
12155  * A function which calculates display values from raw values in the model.
12156  * It must fill @value with the display value for the column @column in the
12157  * row indicated by @iter.
12158  *
12159  * Since this function is called for each data access, it’s not a
12160  * particularly efficient operation.
12161  *
12162  * Params:
12163  *     model = the #GtkTreeModelFilter
12164  *     iter = a #GtkTreeIter pointing to the row whose display values are determined
12165  *     value = A #GValue which is already initialized for
12166  *         with the correct type for the column @column.
12167  *     column = the column whose display value is determined
12168  *     data = user data given to gtk_tree_model_filter_set_modify_func()
12169  */
12170 public alias extern(C) void function(GtkTreeModel* model, GtkTreeIter* iter, GValue* value, int column, void* data) GtkTreeModelFilterModifyFunc;
12171 
12172 /**
12173  * A function which decides whether the row indicated by @iter is visible.
12174  *
12175  * Params:
12176  *     model = the child model of the #GtkTreeModelFilter
12177  *     iter = a #GtkTreeIter pointing to the row in @model whose visibility
12178  *         is determined
12179  *     data = user data given to gtk_tree_model_filter_set_visible_func()
12180  *
12181  * Return: Whether the row indicated by @iter is visible.
12182  */
12183 public alias extern(C) int function(GtkTreeModel* model, GtkTreeIter* iter, void* data) GtkTreeModelFilterVisibleFunc;
12184 
12185 /**
12186  * Type of the callback passed to gtk_tree_model_foreach() to
12187  * iterate over the rows in a tree model.
12188  *
12189  * Params:
12190  *     model = the #GtkTreeModel being iterated
12191  *     path = the current #GtkTreePath
12192  *     iter = the current #GtkTreeIter
12193  *     data = The user data passed to gtk_tree_model_foreach()
12194  *
12195  * Return: %TRUE to stop iterating, %FALSE to continue
12196  */
12197 public alias extern(C) int function(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, void* data) GtkTreeModelForeachFunc;
12198 
12199 /**
12200  * A function used by gtk_tree_selection_selected_foreach() to map all
12201  * selected rows.  It will be called on every selected row in the view.
12202  *
12203  * Params:
12204  *     model = The #GtkTreeModel being viewed
12205  *     path = The #GtkTreePath of a selected row
12206  *     iter = A #GtkTreeIter pointing to a selected row
12207  *     data = user data
12208  */
12209 public alias extern(C) void function(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, void* data) GtkTreeSelectionForeachFunc;
12210 
12211 /**
12212  * A function used by gtk_tree_selection_set_select_function() to filter
12213  * whether or not a row may be selected.  It is called whenever a row's
12214  * state might change.  A return value of %TRUE indicates to @selection
12215  * that it is okay to change the selection.
12216  *
12217  * Params:
12218  *     selection = A #GtkTreeSelection
12219  *     model = A #GtkTreeModel being viewed
12220  *     path = The #GtkTreePath of the row in question
12221  *     pathCurrentlySelected = %TRUE, if the path is currently selected
12222  *     data = user data
12223  *
12224  * Return: %TRUE, if the selection state of the row can be toggled
12225  */
12226 public alias extern(C) int function(GtkTreeSelection* selection, GtkTreeModel* model, GtkTreePath* path, int pathCurrentlySelected, void* data) GtkTreeSelectionFunc;
12227 
12228 /**
12229  * Function type for determining whether @column can be dropped in a
12230  * particular spot (as determined by @prev_column and @next_column).  In
12231  * left to right locales, @prev_column is on the left of the potential drop
12232  * spot, and @next_column is on the right.  In right to left mode, this is
12233  * reversed.  This function should return %TRUE if the spot is a valid drop
12234  * spot.  Please note that returning %TRUE does not actually indicate that
12235  * the column drop was made, but is meant only to indicate a possible drop
12236  * spot to the user.
12237  *
12238  * Params:
12239  *     treeView = A #GtkTreeView
12240  *     column = The #GtkTreeViewColumn being dragged
12241  *     prevColumn = A #GtkTreeViewColumn on one side of @column
12242  *     nextColumn = A #GtkTreeViewColumn on the other side of @column
12243  *     data = user data
12244  *
12245  * Return: %TRUE, if @column can be dropped in this spot
12246  */
12247 public alias extern(C) int function(GtkTreeView* treeView, GtkTreeViewColumn* column, GtkTreeViewColumn* prevColumn, GtkTreeViewColumn* nextColumn, void* data) GtkTreeViewColumnDropFunc;
12248 
12249 /**
12250  * Function used for gtk_tree_view_map_expanded_rows().
12251  *
12252  * Params:
12253  *     treeView = A #GtkTreeView
12254  *     path = The path that’s expanded
12255  *     userData = user data
12256  */
12257 public alias extern(C) void function(GtkTreeView* treeView, GtkTreePath* path, void* userData) GtkTreeViewMappingFunc;
12258 
12259 /**
12260  * Function type for determining whether the row pointed to by @iter should
12261  * be rendered as a separator. A common way to implement this is to have a
12262  * boolean column in the model, whose values the #GtkTreeViewRowSeparatorFunc
12263  * returns.
12264  *
12265  * Params:
12266  *     model = the #GtkTreeModel
12267  *     iter = a #GtkTreeIter pointing at a row in @model
12268  *     data = user data
12269  *
12270  * Return: %TRUE if the row is a separator
12271  */
12272 public alias extern(C) int function(GtkTreeModel* model, GtkTreeIter* iter, void* data) GtkTreeViewRowSeparatorFunc;
12273 
12274 /**
12275  * A function used for checking whether a row in @model matches
12276  * a search key string entered by the user. Note the return value
12277  * is reversed from what you would normally expect, though it
12278  * has some similarity to strcmp() returning 0 for equal strings.
12279  *
12280  * Params:
12281  *     model = the #GtkTreeModel being searched
12282  *     column = the search column set by gtk_tree_view_set_search_column()
12283  *     key = the key string to compare with
12284  *     iter = a #GtkTreeIter pointing the row of @model that should be compared
12285  *         with @key.
12286  *     searchData = user data from gtk_tree_view_set_search_equal_func()
12287  *
12288  * Return: %FALSE if the row matches, %TRUE otherwise.
12289  */
12290 public alias extern(C) int function(GtkTreeModel* model, int column, const(char)* key, GtkTreeIter* iter, void* searchData) GtkTreeViewSearchEqualFunc;
12291 
12292 /** */
12293 public alias extern(C) void function(GtkTreeView* treeView, GtkWidget* searchDialog, void* userData) GtkTreeViewSearchPositionFunc;
12294 /**
12295  * A priority that can be used when adding a gtk.StyleProvider
12296  * for application-specific style information.
12297  */
12298 public enum STYLE_PROVIDER_PRIORITY_APPLICATION = 600;
12299 alias STYLE_PROVIDER_PRIORITY_APPLICATION GTK_STYLE_PROVIDER_PRIORITY_APPLICATION;
12300 
12301 /**
12302  * The priority used for default style information
12303  * that is used in the absence of themes.
12304  *
12305  * Note that this is not very useful for providing default
12306  * styling for custom style classes - themes are likely to
12307  * override styling provided at this priority with
12308  * catch-all `* {...}` rules.
12309  */
12310 public enum STYLE_PROVIDER_PRIORITY_FALLBACK = 1;
12311 alias STYLE_PROVIDER_PRIORITY_FALLBACK GTK_STYLE_PROVIDER_PRIORITY_FALLBACK;
12312 
12313 /**
12314  * The priority used for style information provided
12315  * via gtk.Settings.
12316  *
12317  * This priority is higher than STYLE_PROVIDER_PRIORITY_THEME
12318  * to let settings override themes.
12319  */
12320 public enum STYLE_PROVIDER_PRIORITY_SETTINGS = 400;
12321 alias STYLE_PROVIDER_PRIORITY_SETTINGS GTK_STYLE_PROVIDER_PRIORITY_SETTINGS;
12322 
12323 /**
12324  * The priority used for style information provided
12325  * by themes.
12326  */
12327 public enum STYLE_PROVIDER_PRIORITY_THEME = 200;
12328 alias STYLE_PROVIDER_PRIORITY_THEME GTK_STYLE_PROVIDER_PRIORITY_THEME;
12329 
12330 /**
12331  * The priority used for the style information from
12332  * `~/.gtk-3.0.css`.
12333  *
12334  * You should not use priorities higher than this, to
12335  * give the user the last word.
12336  */
12337 public enum STYLE_PROVIDER_PRIORITY_USER = 800;
12338 alias STYLE_PROVIDER_PRIORITY_USER GTK_STYLE_PROVIDER_PRIORITY_USER;
12339 
12340 /**
12341  * StockIds
12342  */
12343 public enum StockID
12344 {
12345 	/**
12346 	 * The “About” item.
12347 	 * ![](help-about.png)
12348 	 *
12349 	 * Deprecated: Use named icon &quot;help-about&quot; or the label &quot;_About&quot;.
12350 	 */
12351 	ABOUT = "gtk-about",
12352 	/**
12353 	 * The “Add” item and icon.
12354 	 *
12355 	 * Deprecated: Use named icon &quot;list-add&quot; or the label &quot;_Add&quot;.
12356 	 */
12357 	ADD = "gtk-add",
12358 	/**
12359 	 * The “Apply” item and icon.
12360 	 *
12361 	 * Deprecated: Do not use an icon. Use label &quot;_Apply&quot;.
12362 	 */
12363 	APPLY = "gtk-apply",
12364 	/**
12365 	 * The “Bold” item and icon.
12366 	 *
12367 	 * Deprecated: Use named icon &quot;format-text-bold&quot;.
12368 	 */
12369 	BOLD = "gtk-bold",
12370 	/**
12371 	 * The “Cancel” item and icon.
12372 	 *
12373 	 * Deprecated: Do not use an icon. Use label &quot;_Cancel&quot;.
12374 	 */
12375 	CANCEL = "gtk-cancel",
12376 	/**
12377 	 * The “Caps Lock Warning” icon.
12378 	 *
12379 	 * Deprecated: Use named icon &quot;dialog-warning-symbolic&quot;.
12380 	 */
12381 	CAPS_LOCK_WARNING = "gtk-caps-lock-warning",
12382 	/**
12383 	 * The “CD-Rom” item and icon.
12384 	 *
12385 	 * Deprecated: Use named icon &quot;media-optical&quot;.
12386 	 */
12387 	CDROM = "gtk-cdrom",
12388 	/**
12389 	 * The “Clear” item and icon.
12390 	 *
12391 	 * Deprecated: Use named icon &quot;edit-clear&quot;.
12392 	 */
12393 	CLEAR = "gtk-clear",
12394 	/**
12395 	 * The “Close” item and icon.
12396 	 *
12397 	 * Deprecated: Use named icon &quot;window-close&quot; or the label &quot;_Close&quot;.
12398 	 */
12399 	CLOSE = "gtk-close",
12400 	/**
12401 	 * The “Color Picker” item and icon.
12402 	 */
12403 	COLOR_PICKER = "gtk-color-picker",
12404 	/**
12405 	 * The “Connect” icon.
12406 	 */
12407 	CONNECT = "gtk-connect",
12408 	/**
12409 	 * The “Convert” item and icon.
12410 	 */
12411 	CONVERT = "gtk-convert",
12412 	/**
12413 	 * The “Copy” item and icon.
12414 	 *
12415 	 * Deprecated: Use the named icon &quot;edit-copy&quot; or the label &quot;_Copy&quot;.
12416 	 */
12417 	COPY = "gtk-copy",
12418 	/**
12419 	 * The “Cut” item and icon.
12420 	 *
12421 	 * Deprecated: Use the named icon &quot;edit-cut&quot; or the label &quot;Cu_t&quot;.
12422 	 */
12423 	CUT = "gtk-cut",
12424 	/**
12425 	 * The “Delete” item and icon.
12426 	 *
12427 	 * Deprecated: Use the named icon &quot;edit-delete&quot; or the label &quot;_Delete&quot;.
12428 	 */
12429 	DELETE = "gtk-delete",
12430 	/**
12431 	 * The “Authentication” item and icon.
12432 	 *
12433 	 * Deprecated: Use named icon &quot;dialog-password&quot;.
12434 	 */
12435 	DIALOG_AUTHENTICATION = "gtk-dialog-authentication",
12436 	/**
12437 	 * The “Error” item and icon.
12438 	 *
12439 	 * Deprecated: Use named icon &quot;dialog-error&quot;.
12440 	 */
12441 	DIALOG_ERROR = "gtk-dialog-error",
12442 	/**
12443 	 * The “Information” item and icon.
12444 	 *
12445 	 * Deprecated: Use named icon &quot;dialog-information&quot;.
12446 	 */
12447 	DIALOG_INFO = "gtk-dialog-info",
12448 	/**
12449 	 * The “Question” item and icon.
12450 	 *
12451 	 * Deprecated: Use named icon &quot;dialog-question&quot;.
12452 	 */
12453 	DIALOG_QUESTION = "gtk-dialog-question",
12454 	/**
12455 	 * The “Warning” item and icon.
12456 	 *
12457 	 * Deprecated: Use named icon &quot;dialog-warning&quot;.
12458 	 */
12459 	DIALOG_WARNING = "gtk-dialog-warning",
12460 	/**
12461 	 * The “Directory” icon.
12462 	 *
12463 	 * Deprecated: Use named icon &quot;folder&quot;.
12464 	 */
12465 	DIRECTORY = "gtk-directory",
12466 	/**
12467 	 * The “Discard” item.
12468 	 */
12469 	DISCARD = "gtk-discard",
12470 	/**
12471 	 * The “Disconnect” icon.
12472 	 */
12473 	DISCONNECT = "gtk-disconnect",
12474 	/**
12475 	 * The “Drag-And-Drop” icon.
12476 	 */
12477 	DND = "gtk-dnd",
12478 	/**
12479 	 * The “Drag-And-Drop multiple” icon.
12480 	 */
12481 	DND_MULTIPLE = "gtk-dnd-multiple",
12482 	/**
12483 	 * The “Edit” item and icon.
12484 	 */
12485 	EDIT = "gtk-edit",
12486 	/**
12487 	 * The “Execute” item and icon.
12488 	 *
12489 	 * Deprecated: Use named icon &quot;system-run&quot;.
12490 	 */
12491 	EXECUTE = "gtk-execute",
12492 	/**
12493 	 * The “File” item and icon.
12494 	 *
12495 	 * Since 3.0, this item has a label, before it only had an icon.
12496 	 *
12497 	 * Deprecated: Use named icon &quot;text-x-generic&quot;.
12498 	 */
12499 	FILE = "gtk-file",
12500 	/**
12501 	 * The “Find” item and icon.
12502 	 *
12503 	 * Deprecated: Use named icon &quot;edit-find&quot;.
12504 	 */
12505 	FIND = "gtk-find",
12506 	/**
12507 	 * The “Find and Replace” item and icon.
12508 	 *
12509 	 * Deprecated: Use named icon &quot;edit-find-replace&quot;.
12510 	 */
12511 	FIND_AND_REPLACE = "gtk-find-and-replace",
12512 	/**
12513 	 * The “Floppy” item and icon.
12514 	 */
12515 	FLOPPY = "gtk-floppy",
12516 	/**
12517 	 * The “Fullscreen” item and icon.
12518 	 *
12519 	 * Deprecated: Use named icon &quot;view-fullscreen&quot;.
12520 	 */
12521 	FULLSCREEN = "gtk-fullscreen",
12522 	/**
12523 	 * The “Bottom” item and icon.
12524 	 *
12525 	 * Deprecated: Use named icon &quot;go-bottom&quot;.
12526 	 */
12527 	GOTO_BOTTOM = "gtk-goto-bottom",
12528 	/**
12529 	 * The “First” item and icon. The icon has an RTL variant.
12530 	 *
12531 	 * Deprecated: Use named icon &quot;go-first&quot;.
12532 	 */
12533 	GOTO_FIRST = "gtk-goto-first",
12534 	/**
12535 	 * The “Last” item and icon. The icon has an RTL variant.
12536 	 *
12537 	 * Deprecated: Use named icon &quot;go-last&quot;.
12538 	 */
12539 	GOTO_LAST = "gtk-goto-last",
12540 	/**
12541 	 * The “Top” item and icon.
12542 	 *
12543 	 * Deprecated: Use named icon &quot;go-top&quot;.
12544 	 */
12545 	GOTO_TOP = "gtk-goto-top",
12546 	/**
12547 	 * The “Back” item and icon. The icon has an RTL variant.
12548 	 *
12549 	 * Deprecated: Use named icon &quot;go-previous&quot;.
12550 	 */
12551 	GO_BACK = "gtk-go-back",
12552 	/**
12553 	 * The “Down” item and icon.
12554 	 *
12555 	 * Deprecated: Use named icon &quot;go-down&quot;.
12556 	 */
12557 	GO_DOWN = "gtk-go-down",
12558 	/**
12559 	 * The “Forward” item and icon. The icon has an RTL variant.
12560 	 *
12561 	 * Deprecated: Use named icon &quot;go-next&quot;.
12562 	 */
12563 	GO_FORWARD = "gtk-go-forward",
12564 	/**
12565 	 * The “Up” item and icon.
12566 	 *
12567 	 * Deprecated: Use named icon &quot;go-up&quot;.
12568 	 */
12569 	GO_UP = "gtk-go-up",
12570 	/**
12571 	 * The “Harddisk” item and icon.
12572 	 *
12573 	 * Deprecated: Use named icon &quot;drive-harddisk&quot;.
12574 	 */
12575 	HARDDISK = "gtk-harddisk",
12576 	/**
12577 	 * The “Help” item and icon.
12578 	 *
12579 	 * Deprecated: Use named icon &quot;help-browser&quot;.
12580 	 */
12581 	HELP = "gtk-help",
12582 	/**
12583 	 * The “Home” item and icon.
12584 	 *
12585 	 * Deprecated: Use named icon &quot;go-home&quot;.
12586 	 */
12587 	HOME = "gtk-home",
12588 	/**
12589 	 * The “Indent” item and icon. The icon has an RTL variant.
12590 	 *
12591 	 * Deprecated: Use named icon &quot;format-indent-more&quot;.
12592 	 */
12593 	INDENT = "gtk-indent",
12594 	/**
12595 	 * The “Index” item and icon.
12596 	 */
12597 	INDEX = "gtk-index",
12598 	/**
12599 	 * The “Info” item and icon.
12600 	 *
12601 	 * Deprecated: Use named icon &quot;dialog-information&quot;.
12602 	 */
12603 	INFO = "gtk-info",
12604 	/**
12605 	 * The “Italic” item and icon.
12606 	 *
12607 	 * Deprecated: Use named icon &quot;format-text-italic&quot;.
12608 	 */
12609 	ITALIC = "gtk-italic",
12610 	/**
12611 	 * The “Jump to” item and icon. The icon has an RTL variant.
12612 	 *
12613 	 * Deprecated: Use named icon &quot;go-jump&quot;.
12614 	 */
12615 	JUMP_TO = "gtk-jump-to",
12616 	/**
12617 	 * The “Center” item and icon.
12618 	 *
12619 	 * Deprecated: Use named icon &quot;format-justify-center&quot;.
12620 	 */
12621 	JUSTIFY_CENTER = "gtk-justify-center",
12622 	/**
12623 	 * The “Fill” item and icon.
12624 	 *
12625 	 * Deprecated: Use named icon &quot;format-justify-fill&quot;.
12626 	 */
12627 	JUSTIFY_FILL = "gtk-justify-fill",
12628 	/**
12629 	 * The “Left” item and icon.
12630 	 *
12631 	 * Deprecated: Use named icon &quot;format-justify-left&quot;.
12632 	 */
12633 	JUSTIFY_LEFT = "gtk-justify-left",
12634 	/**
12635 	 * The “Right” item and icon.
12636 	 *
12637 	 * Deprecated: Use named icon &quot;format-justify-right&quot;.
12638 	 */
12639 	JUSTIFY_RIGHT = "gtk-justify-right",
12640 	/**
12641 	 * The “Leave Fullscreen” item and icon.
12642 	 *
12643 	 * Deprecated: Use named icon &quot;view-restore&quot;.
12644 	 */
12645 	LEAVE_FULLSCREEN = "gtk-leave-fullscreen",
12646 	/**
12647 	 * The “Media Forward” item and icon. The icon has an RTL variant.
12648 	 *
12649 	 * Deprecated: Use named icon &quot;media-seek-forward&quot; or the label &quot;_Forward&quot;.
12650 	 */
12651 	MEDIA_FORWARD = "gtk-media-forward",
12652 	/**
12653 	 * The “Media Next” item and icon. The icon has an RTL variant.
12654 	 *
12655 	 * Deprecated: Use named icon &quot;media-skip-forward&quot; or the label &quot;_Next&quot;.
12656 	 */
12657 	MEDIA_NEXT = "gtk-media-next",
12658 	/**
12659 	 * The “Media Pause” item and icon.
12660 	 *
12661 	 * Deprecated: Use named icon &quot;media-playback-pause&quot; or the label &quot;P_ause&quot;.
12662 	 */
12663 	MEDIA_PAUSE = "gtk-media-pause",
12664 	/**
12665 	 * The “Media Play” item and icon. The icon has an RTL variant.
12666 	 *
12667 	 * Deprecated: Use named icon &quot;media-playback-start&quot; or the label &quot;_Play&quot;.
12668 	 */
12669 	MEDIA_PLAY = "gtk-media-play",
12670 	/**
12671 	 * The “Media Previous” item and icon. The icon has an RTL variant.
12672 	 *
12673 	 * Deprecated: Use named icon &quot;media-skip-backward&quot; or the label &quot;Pre_vious&quot;.
12674 	 */
12675 	MEDIA_PREVIOUS = "gtk-media-previous",
12676 	/**
12677 	 * The “Media Record” item and icon.
12678 	 *
12679 	 * Deprecated: Use named icon &quot;media-record&quot; or the label &quot;_Record&quot;.
12680 	 */
12681 	MEDIA_RECORD = "gtk-media-record",
12682 	/**
12683 	 * The “Media Rewind” item and icon. The icon has an RTL variant.
12684 	 *
12685 	 * Deprecated: Use named icon &quot;media-seek-backward&quot; or the label &quot;R_ewind&quot;.
12686 	 */
12687 	MEDIA_REWIND = "gtk-media-rewind",
12688 	/**
12689 	 * The “Media Stop” item and icon.
12690 	 *
12691 	 * Deprecated: Use named icon &quot;media-playback-stop&quot; or the label &quot;_Stop&quot;.
12692 	 */
12693 	MEDIA_STOP = "gtk-media-stop",
12694 	/**
12695 	 * The “Missing image” icon.
12696 	 *
12697 	 * Deprecated: Use named icon &quot;image-missing&quot;.
12698 	 */
12699 	MISSING_IMAGE = "gtk-missing-image",
12700 	/**
12701 	 * The “Network” item and icon.
12702 	 *
12703 	 * Deprecated: Use named icon &quot;network-workgroup&quot;.
12704 	 */
12705 	NETWORK = "gtk-network",
12706 	/**
12707 	 * The “New” item and icon.
12708 	 *
12709 	 * Deprecated: Use named icon &quot;document-new&quot; or the label &quot;_New&quot;.
12710 	 */
12711 	NEW = "gtk-new",
12712 	/**
12713 	 * The “No” item and icon.
12714 	 */
12715 	NO = "gtk-no",
12716 	/**
12717 	 * The “OK” item and icon.
12718 	 *
12719 	 * Deprecated: Do not use an icon. Use label &quot;_OK&quot;.
12720 	 */
12721 	OK = "gtk-ok",
12722 	/**
12723 	 * The “Open” item and icon.
12724 	 *
12725 	 * Deprecated: Use named icon &quot;document-open&quot; or the label &quot;_Open&quot;.
12726 	 */
12727 	OPEN = "gtk-open",
12728 	/**
12729 	 * The “Landscape Orientation” item and icon.
12730 	 */
12731 	ORIENTATION_LANDSCAPE = "gtk-orientation-landscape",
12732 	/**
12733 	 * The “Portrait Orientation” item and icon.
12734 	 */
12735 	ORIENTATION_PORTRAIT = "gtk-orientation-portrait",
12736 	/**
12737 	 * The “Reverse Landscape Orientation” item and icon.
12738 	 */
12739 	ORIENTATION_REVERSE_LANDSCAPE = "gtk-orientation-reverse-landscape",
12740 	/**
12741 	 * The “Reverse Portrait Orientation” item and icon.
12742 	 */
12743 	ORIENTATION_REVERSE_PORTRAIT = "gtk-orientation-reverse-portrait",
12744 	/**
12745 	 * The “Page Setup” item and icon.
12746 	 *
12747 	 * Deprecated: Use named icon &quot;document-page-setup&quot; or the label &quot;Page Set_up&quot;.
12748 	 */
12749 	PAGE_SETUP = "gtk-page-setup",
12750 	/**
12751 	 * The “Paste” item and icon.
12752 	 *
12753 	 * Deprecated: Use named icon &quot;edit-paste&quot; or the label &quot;_Paste&quot;.
12754 	 */
12755 	PASTE = "gtk-paste",
12756 	/**
12757 	 * The “Preferences” item and icon.
12758 	 *
12759 	 * Deprecated: Use named icon &quot;preferences-system&quot; or the label &quot;_Preferences&quot;.
12760 	 */
12761 	PREFERENCES = "gtk-preferences",
12762 	/**
12763 	 * The “Print” item and icon.
12764 	 *
12765 	 * Deprecated: Use named icon &quot;document-print&quot; or the label &quot;_Print&quot;.
12766 	 */
12767 	PRINT = "gtk-print",
12768 	/**
12769 	 * The “Print Error” icon.
12770 	 *
12771 	 * Deprecated: Use named icon &quot;printer-error&quot;.
12772 	 */
12773 	PRINT_ERROR = "gtk-print-error",
12774 	/**
12775 	 * The “Print Paused” icon.
12776 	 */
12777 	PRINT_PAUSED = "gtk-print-paused",
12778 	/**
12779 	 * The “Print Preview” item and icon.
12780 	 *
12781 	 * Deprecated: Use label &quot;Pre_view&quot;.
12782 	 */
12783 	PRINT_PREVIEW = "gtk-print-preview",
12784 	/**
12785 	 * The “Print Report” icon.
12786 	 */
12787 	PRINT_REPORT = "gtk-print-report",
12788 	/**
12789 	 * The “Print Warning” icon.
12790 	 */
12791 	PRINT_WARNING = "gtk-print-warning",
12792 	/**
12793 	 * The “Properties” item and icon.
12794 	 *
12795 	 * Deprecated: Use named icon &quot;document-properties&quot; or the label &quot;_Properties&quot;.
12796 	 */
12797 	PROPERTIES = "gtk-properties",
12798 	/**
12799 	 * The “Quit” item and icon.
12800 	 *
12801 	 * Deprecated: Use named icon &quot;application-exit&quot; or the label &quot;_Quit&quot;.
12802 	 */
12803 	QUIT = "gtk-quit",
12804 	/**
12805 	 * The “Redo” item and icon. The icon has an RTL variant.
12806 	 *
12807 	 * Deprecated: Use named icon &quot;edit-redo&quot; or the label &quot;_Redo&quot;.
12808 	 */
12809 	REDO = "gtk-redo",
12810 	/**
12811 	 * The “Refresh” item and icon.
12812 	 *
12813 	 * Deprecated: Use named icon &quot;view-refresh&quot; or the label &quot;_Refresh&quot;.
12814 	 */
12815 	REFRESH = "gtk-refresh",
12816 	/**
12817 	 * The “Remove” item and icon.
12818 	 *
12819 	 * Deprecated: Use named icon &quot;list-remove&quot; or the label &quot;_Remove&quot;.
12820 	 */
12821 	REMOVE = "gtk-remove",
12822 	/**
12823 	 * The “Revert” item and icon. The icon has an RTL variant.
12824 	 *
12825 	 * Deprecated: Use named icon &quot;document-revert&quot; or the label &quot;_Revert&quot;.
12826 	 */
12827 	REVERT_TO_SAVED = "gtk-revert-to-saved",
12828 	/**
12829 	 * The “Save” item and icon.
12830 	 *
12831 	 * Deprecated: Use named icon &quot;document-save&quot; or the label &quot;_Save&quot;.
12832 	 */
12833 	SAVE = "gtk-save",
12834 	/**
12835 	 * The “Save As” item and icon.
12836 	 *
12837 	 * Deprecated: Use named icon &quot;document-save-as&quot; or the label &quot;Save _As&quot;.
12838 	 */
12839 	SAVE_AS = "gtk-save-as",
12840 	/**
12841 	 * The “Select All” item and icon.
12842 	 *
12843 	 * Deprecated: Use named icon &quot;edit-select-all&quot; or the label &quot;Select _All&quot;.
12844 	 */
12845 	SELECT_ALL = "gtk-select-all",
12846 	/**
12847 	 * The “Color” item and icon.
12848 	 */
12849 	SELECT_COLOR = "gtk-select-color",
12850 	/**
12851 	 * The “Font” item and icon.
12852 	 */
12853 	SELECT_FONT = "gtk-select-font",
12854 	/**
12855 	 * The “Ascending” item and icon.
12856 	 *
12857 	 * Deprecated: Use named icon &quot;view-sort-ascending&quot;.
12858 	 */
12859 	SORT_ASCENDING = "gtk-sort-ascending",
12860 	/**
12861 	 * The “Descending” item and icon.
12862 	 *
12863 	 * Deprecated: Use named icon &quot;view-sort-descending&quot;.
12864 	 */
12865 	SORT_DESCENDING = "gtk-sort-descending",
12866 	/**
12867 	 * The “Spell Check” item and icon.
12868 	 *
12869 	 * Deprecated: Use named icon &quot;tools-check-spelling&quot;.
12870 	 */
12871 	SPELL_CHECK = "gtk-spell-check",
12872 	/**
12873 	 * The “Stop” item and icon.
12874 	 *
12875 	 * Deprecated: Use named icon &quot;process-stop&quot; or the label &quot;_Stop&quot;.
12876 	 */
12877 	STOP = "gtk-stop",
12878 	/**
12879 	 * The “Strikethrough” item and icon.
12880 	 *
12881 	 * Deprecated: Use named icon &quot;format-text-strikethrough&quot; or the label &quot;_Strikethrough&quot;.
12882 	 */
12883 	STRIKETHROUGH = "gtk-strikethrough",
12884 	/**
12885 	 * The “Undelete” item and icon. The icon has an RTL variant.
12886 	 */
12887 	UNDELETE = "gtk-undelete",
12888 	/**
12889 	 * The “Underline” item and icon.
12890 	 *
12891 	 * Deprecated: Use named icon &quot;format-text-underline&quot; or the label &quot;_Underline&quot;.
12892 	 */
12893 	UNDERLINE = "gtk-underline",
12894 	/**
12895 	 * The “Undo” item and icon. The icon has an RTL variant.
12896 	 *
12897 	 * Deprecated: Use named icon &quot;edit-undo&quot; or the label &quot;_Undo&quot;.
12898 	 */
12899 	UNDO = "gtk-undo",
12900 	/**
12901 	 * The “Unindent” item and icon. The icon has an RTL variant.
12902 	 *
12903 	 * Deprecated: Use named icon &quot;format-indent-less&quot;.
12904 	 */
12905 	UNINDENT = "gtk-unindent",
12906 	/**
12907 	 * The “Yes” item and icon.
12908 	 */
12909 	YES = "gtk-yes",
12910 	/**
12911 	 * The “Zoom 100%” item and icon.
12912 	 *
12913 	 * Deprecated: Use named icon &quot;zoom-original&quot; or the label &quot;_Normal Size&quot;.
12914 	 */
12915 	ZOOM_100 = "gtk-zoom-100",
12916 	/**
12917 	 * The “Zoom to Fit” item and icon.
12918 	 *
12919 	 * Deprecated: Use named icon &quot;zoom-fit-best&quot; or the label &quot;Best _Fit&quot;.
12920 	 */
12921 	ZOOM_FIT = "gtk-zoom-fit",
12922 	/**
12923 	 * The “Zoom In” item and icon.
12924 	 *
12925 	 * Deprecated: Use named icon &quot;zoom-in&quot; or the label &quot;Zoom _In&quot;.
12926 	 */
12927 	ZOOM_IN = "gtk-zoom-in",
12928 	/**
12929 	 * The “Zoom Out” item and icon.
12930 	 *
12931 	 * Deprecated: Use named icon &quot;zoom-out&quot; or the label &quot;Zoom _Out&quot;.
12932 	 */
12933 	ZOOM_OUT = "gtk-zoom-out",
12934 }