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