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 module gtkc.gtktypes;
25 
26 public import gtkc.cairotypes;
27 public import gtkc.glibtypes;
28 public import gtkc.gobjecttypes;
29 public import gtkc.giotypes;
30 public import gtkc.pangotypes;
31 public import gtkc.atktypes;
32 public import gtkc.gdkpixbuftypes;
33 public import gtkc.gdktypes;
34 
35 extern(C) Object _d_newclass(ClassInfo ci);
36 
37 alias void GtkAccelGroupEntry;
38 alias void GtkContainerClass;
39 
40 public struct GtkStylePropertiesPrivate{}
41 public struct GtkCellRendererClassPrivate{}
42 
43 
44 /**
45  * typedef 	GdkRectangle	 GtkAllocation;
46  * A GtkAllocation of a widget represents region
47  * which has been allocated to the widget by its parent. It is a subregion
48  * of its parents allocation. See the section called “Height-for-width Geometry Management” for
49  * more information.
50  */
51 public alias Rectangle GtkAllocation;
52 /** The GtkNotebookTab is not documented */
53 public enum GtkNotebookTab
54 {
55 	FIRST,
56 	LAST
57 }
58 alias GtkNotebookTab NotebookTab;
59 
60 public enum GtkBaselinePosition
61 {
62 	TOP,
63 	CENTER,
64 	BOTTOM
65 }
66 alias GtkBaselinePosition BaselinePosition;
67 /**
68  * The GtkDestDefaults enumeration specifies the various
69  * types of action that will be taken on behalf
70  * of the user for a drag destination site.
71  * GTK_DEST_DEFAULT_MOTION
72  * If set for a widget, GTK+, during a drag over this
73  *  widget will check if the drag matches this widget's list of possible targets
74  *  and actions.
75  *  GTK+ will then call gdk_drag_status() as appropriate.
76  * GTK_DEST_DEFAULT_HIGHLIGHT
77  * If set for a widget, GTK+ will draw a highlight on
78  *  this widget as long as a drag is over this widget and the widget drag format
79  *  and action are acceptable.
80  * GTK_DEST_DEFAULT_DROP
81  * If set for a widget, when a drop occurs, GTK+ will
82  *  will check if the drag matches this widget's list of possible targets and
83  *  actions. If so, GTK+ will call gtk_drag_get_data() on behalf of the widget.
84  *  Whether or not the drop is successful, GTK+ will call gtk_drag_finish(). If
85  *  the action was a move, then if the drag was successful, then TRUE will be
86  *  passed for the delete parameter to gtk_drag_finish().
87  * GTK_DEST_DEFAULT_ALL
88  * If set, specifies that all default actions should
89  *  be taken.
90  */
91 public enum GtkDestDefaults
92 {
93 	MOTION = 1 << 0, /+* respond to "dragMotion" +/
94 	HIGHLIGHT = 1 << 1, /+* auto-highlight +/
95 	DROP = 1 << 2, /+* respond to "dragDrop" +/
96 	ALL = 0x07
97 }
98 alias GtkDestDefaults DestDefaults;
99 
100 /**
101  * The GtkTargetFlags enumeration is used to specify
102  * constraints on an entry in a GtkTargetTable.
103  * GTK_TARGET_SAME_APP
104  * If this is set, the target will only be selected
105  *  for drags within a single application.
106  * GTK_TARGET_SAME_WIDGET
107  * If this is set, the target will only be selected
108  *  for drags within a single widget.
109  * GTK_TARGET_OTHER_APP
110  * If this is set, the target will not be selected
111  *  for drags within a single application.
112  * GTK_TARGET_OTHER_WIDGET
113  * If this is set, the target will not be selected
114  *  for drags withing a single widget.
115  */
116 public enum GtkTargetFlags
117 {
118 	SAME_APP = 1 << 0, /+*< nick=same-app >+/
119 	SAME_WIDGET = 1 << 1, /+*< nick=same-widget >+/
120 	OTHER_APP = 1 << 2, /+*< nick=other-app >+/
121 	OTHER_WIDGET = 1 << 3 /+*< nick=other-widget >+/
122 }
123 alias GtkTargetFlags TargetFlags;
124 
125 /**
126  * GTK_ACCEL_VISIBLE
127  * GTK_ACCEL_LOCKED
128  * GTK_ACCEL_MASK
129  */
130 public enum GtkAccelFlags
131 {
132 	VISIBLE = 1 << 0, /+* display inn GtkAccelLabel? +/
133 	LOCKED = 1 << 1, /+* is it removable? +/
134 	MASK = 0x07
135 }
136 alias GtkAccelFlags AccelFlags;
137 
138 /**
139  * Used to specify the placement of scroll arrows in scrolling menus.
140  * GTK_ARROWS_BOTH
141  * Place one arrow on each end of the menu.
142  * GTK_ARROWS_START
143  * Place both arrows at the top of the menu.
144  * GTK_ARROWS_END
145  * Place both arrows at the bottom of the menu.
146  */
147 public enum GtkArrowPlacement
148 {
149 	ARROWS_BOTH,
150 	ARROWS_START,
151 	ARROWS_END
152 }
153 alias GtkArrowPlacement ArrowPlacement;
154 
155 /**
156  * Used to indicate the direction in which a GtkArrow should point.
157  * GTK_ARROW_UP
158  * Represents an upward pointing arrow.
159  * GTK_ARROW_DOWN
160  * Represents a downward pointing arrow.
161  * GTK_ARROW_LEFT
162  * Represents a left pointing arrow.
163  * GTK_ARROW_RIGHT
164  * Represents a right pointing arrow.
165  * GTK_ARROW_NONE
166  * No arrow. Since 2.10.
167  */
168 public enum GtkArrowType
169 {
170 	UP,
171 	DOWN,
172 	LEFT,
173 	RIGHT,
174 	NONE
175 }
176 alias GtkArrowType ArrowType;
177 
178 /**
179  * Denotes the expansion properties that a widget will have when it (or its
180  * parent) is resized.
181  * GTK_EXPAND
182  * the widget should expand to take up any extra space in its
183  * container that has been allocated.
184  * GTK_SHRINK
185  * the widget should shrink as and when possible.
186  * GTK_FILL
187  * the widget should fill the space allocated to it.
188  */
189 public enum GtkAttachOptions
190 {
191 	EXPAND = 1 << 0,
192 	SHRINK = 1 << 1,
193 	FILL = 1 << 2
194 }
195 alias GtkAttachOptions AttachOptions;
196 
197 /**
198  * Used to dictate the style that a GtkButtonBox uses to layout the buttons it
199  * contains. (See also: GtkVButtonBox and GtkHButtonBox).
200  * GTK_BUTTONBOX_SPREAD
201  * Buttons are evenly spread across the box.
202  * GTK_BUTTONBOX_EDGE
203  * Buttons are placed at the edges of the box.
204  * GTK_BUTTONBOX_START
205  * Buttons are grouped towards the start of the box,
206  *  (on the left for a HBox, or the top for a VBox).
207  * GTK_BUTTONBOX_END
208  * Buttons are grouped towards the end of the box,
209  *  (on the right for a HBox, or the bottom for a VBox).
210  * GTK_BUTTONBOX_CENTER
211  * Buttons are centered in the box. Since 2.12.
212  */
213 public enum GtkButtonBoxStyle
214 {
215 	SPREAD = 1,
216 	EDGE,
217 	START,
218 	END,
219 	CENTER
220 }
221 alias GtkButtonBoxStyle ButtonBoxStyle;
222 
223 /**
224  * Specifies which corner a child widget should be placed in when packed into
225  * a GtkScrolledWindow. This is effectively the opposite of where the scroll
226  * bars are placed.
227  * GTK_CORNER_TOP_LEFT
228  * Place the scrollbars on the right and bottom of the
229  *  widget (default behaviour).
230  * GTK_CORNER_BOTTOM_LEFT
231  * Place the scrollbars on the top and right of the
232  *  widget.
233  * GTK_CORNER_TOP_RIGHT
234  * Place the scrollbars on the left and bottom of the
235  *  widget.
236  * GTK_CORNER_BOTTOM_RIGHT
237  * Place the scrollbars on the top and left of the
238  *  widget.
239  */
240 public enum GtkCornerType
241 {
242 	TOP_LEFT,
243 	BOTTOM_LEFT,
244 	TOP_RIGHT,
245 	BOTTOM_RIGHT
246 }
247 alias GtkCornerType CornerType;
248 
249 /**
250  * GTK_DELETE_CHARS
251  * GTK_DELETE_WORD_ENDS
252  * GTK_DELETE_WORDS
253  * GTK_DELETE_DISPLAY_LINES
254  * GTK_DELETE_DISPLAY_LINE_ENDS
255  * GTK_DELETE_PARAGRAPH_ENDS
256  * GTK_DELETE_PARAGRAPHS
257  * GTK_DELETE_WHITESPACE
258  */
259 public enum GtkDeleteType
260 {
261 	CHARS,
262 	WORD_ENDS, /+* delet only the portion of the word to the
263 	 * left/right of cursor if we're inn the middle
264 	 * of a word +/
265 	WORDS,
266 	DISPLAY_LINES,
267 	DISPLAY_LINE_ENDS,
268 	PARAGRAPH_ENDS, /+* like C-k inn Emacs (or its reverse) +/
269 	PARAGRAPHS, /+* C-k inn pico, kill whole line +/
270 	WHITESPACE /+* M-\ inn Emacs +/
271 }
272 alias GtkDeleteType DeleteType;
273 
274 /**
275  * GTK_DIR_TAB_FORWARD
276  * GTK_DIR_TAB_BACKWARD
277  * GTK_DIR_UP
278  * GTK_DIR_DOWN
279  * GTK_DIR_LEFT
280  * GTK_DIR_RIGHT
281  */
282 public enum GtkDirectionType
283 {
284 	TAB_FORWARD,
285 	TAB_BACKWARD,
286 	UP,
287 	DOWN,
288 	LEFT,
289 	RIGHT
290 }
291 alias GtkDirectionType DirectionType;
292 
293 /**
294  * Used to specify the style of the expanders drawn by a GtkTreeView.
295  * GTK_EXPANDER_COLLAPSED
296  * The style used for a collapsed subtree.
297  * GTK_EXPANDER_SEMI_COLLAPSED
298  * Intermediate style used during animation.
299  * GTK_EXPANDER_SEMI_EXPANDED
300  * Intermediate style used during animation.
301  * GTK_EXPANDER_EXPANDED
302  * The style used for an expanded subtree.
303  */
304 public enum GtkExpanderStyle
305 {
306 	COLLAPSED,
307 	SEMI_COLLAPSED,
308 	SEMI_EXPANDED,
309 	EXPANDED
310 }
311 alias GtkExpanderStyle ExpanderStyle;
312 
313 /**
314  * GTK_IM_PREEDIT_NOTHING
315  * GTK_IM_PREEDIT_CALLBACK
316  * GTK_IM_PREEDIT_NONE
317  */
318 public enum GtkIMPreeditStyle
319 {
320 	NOTHING,
321 	CALLBACK,
322 	NONE
323 }
324 alias GtkIMPreeditStyle IMPreeditStyle;
325 
326 /**
327  * GTK_IM_STATUS_NOTHING
328  * GTK_IM_STATUS_CALLBACK
329  * GTK_IM_STATUS_NONE
330  */
331 public enum GtkIMStatusStyle
332 {
333 	NOTHING,
334 	CALLBACK,
335 	NONE
336 }
337 alias GtkIMStatusStyle IMStatusStyle;
338 
339 /**
340  * Used for justifying the text inside a GtkLabel widget. (See also
341  * GtkAlignment).
342  * GTK_JUSTIFY_LEFT
343  * The text is placed at the left edge of the label.
344  * GTK_JUSTIFY_RIGHT
345  * The text is placed at the right edge of the label.
346  * GTK_JUSTIFY_CENTER
347  * The text is placed in the center of the label.
348  * GTK_JUSTIFY_FILL
349  * The text is placed is distributed across the label.
350  */
351 public enum GtkJustification
352 {
353 	JUSTIFY_LEFT,
354 	JUSTIFY_RIGHT,
355 	JUSTIFY_CENTER,
356 	JUSTIFY_FILL
357 }
358 alias GtkJustification Justification;
359 
360 /**
361  * GTK_MOVEMENT_LOGICAL_POSITIONS
362  * Move forward or back by graphemes
363  * GTK_MOVEMENT_VISUAL_POSITIONS
364  * Move left or right by graphemes
365  * GTK_MOVEMENT_WORDS
366  * Move forward or back by words
367  * GTK_MOVEMENT_DISPLAY_LINES
368  * Move up or down lines (wrapped lines)
369  * GTK_MOVEMENT_DISPLAY_LINE_ENDS
370  * Move to either end of a line
371  * GTK_MOVEMENT_PARAGRAPHS
372  * Move up or down paragraphs (newline-ended lines)
373  * GTK_MOVEMENT_PARAGRAPH_ENDS
374  * Move to either end of a paragraph
375  * GTK_MOVEMENT_PAGES
376  * Move by pages
377  * GTK_MOVEMENT_BUFFER_ENDS
378  * Move to ends of the buffer
379  * GTK_MOVEMENT_HORIZONTAL_PAGES
380  * Move horizontally by pages
381  */
382 public enum GtkMovementStep
383 {
384 	LOGICAL_POSITIONS,
385 	VISUAL_POSITIONS,
386 	WORDS,
387 	DISPLAY_LINES,
388 	DISPLAY_LINE_ENDS,
389 	PARAGRAPHS,
390 	PARAGRAPH_ENDS,
391 	PAGES,
392 	BUFFER_ENDS,
393 	HORIZONTAL_PAGES
394 }
395 alias GtkMovementStep MovementStep;
396 
397 /**
398  * Represents the orientation of widgets which can be switched between horizontal
399  * and vertical orientation on the fly, like GtkToolbar.
400  * GTK_ORIENTATION_HORIZONTAL
401  * The widget is in horizontal orientation.
402  * GTK_ORIENTATION_VERTICAL
403  * The widget is in vertical orientation.
404  */
405 public enum GtkOrientation
406 {
407 	HORIZONTAL,
408 	VERTICAL
409 }
410 alias GtkOrientation Orientation;
411 
412 /**
413  * Represents the packing location GtkBox children. (See: GtkVBox,
414  * GtkHBox, and GtkButtonBox).
415  * GTK_PACK_START
416  * The child is packed into the start of the box
417  * GTK_PACK_END
418  * The child is packed into the end of the box
419  */
420 public enum GtkPackType
421 {
422 	START,
423 	END
424 }
425 alias GtkPackType PackType;
426 
427 /**
428  * GTK_PATH_PRIO_LOWEST
429  * GTK_PATH_PRIO_GTK
430  * GTK_PATH_PRIO_APPLICATION
431  * GTK_PATH_PRIO_THEME
432  * GTK_PATH_PRIO_RC
433  * GTK_PATH_PRIO_HIGHEST
434  */
435 public enum GtkPathPriorityType
436 {
437 	LOWEST = 0,
438 	GTK = 4,
439 	APPLICATION = 8,
440 	THEME = 10,
441 	RC = 12,
442 	HIGHEST = 15
443 }
444 alias GtkPathPriorityType PathPriorityType;
445 
446 /**
447  * GTK_PATH_WIDGET
448  * GTK_PATH_WIDGET_CLASS
449  * GTK_PATH_CLASS
450  */
451 public enum GtkPathType
452 {
453 	WIDGET,
454 	WIDGET_CLASS,
455 	CLASS
456 }
457 alias GtkPathType PathType;
458 
459 /**
460  * Determines when a scroll bar will be visible.
461  * GTK_POLICY_ALWAYS
462  * The scrollbar is always visible.
463  * GTK_POLICY_AUTOMATIC
464  * The scrollbar will appear and disappear as necessary. For example,
465  *  when all of a GtkCList can not be seen.
466  * GTK_POLICY_NEVER
467  * The scrollbar will never appear.
468  */
469 public enum GtkPolicyType
470 {
471 	ALWAYS,
472 	AUTOMATIC,
473 	NEVER
474 }
475 alias GtkPolicyType PolicyType;
476 
477 /**
478  * Describes which edge of a widget a certain feature is positioned at, e.g. the
479  * tabs of a GtkNotebook, the handle of a GtkHandleBox or the label of a
480  * GtkScale.
481  * GTK_POS_LEFT
482  * The feature is at the left edge.
483  * GTK_POS_RIGHT
484  * The feature is at the right edge.
485  * GTK_POS_TOP
486  * The feature is at the top edge.
487  * GTK_POS_BOTTOM
488  * The feature is at the bottom edge.
489  */
490 public enum GtkPositionType
491 {
492 	LEFT,
493 	RIGHT,
494 	TOP,
495 	BOTTOM
496 }
497 alias GtkPositionType PositionType;
498 
499 /**
500  * Indicated the relief to be drawn around a GtkButton.
501  * GTK_RELIEF_NORMAL
502  * Draw a normal relief.
503  * GTK_RELIEF_HALF
504  * A half relief.
505  * GTK_RELIEF_NONE
506  * No relief.
507  */
508 public enum GtkReliefStyle
509 {
510 	NORMAL,
511 	HALF,
512 	NONE
513 }
514 alias GtkReliefStyle ReliefStyle;
515 
516 /**
517  * GTK_RESIZE_PARENT
518  * Pass resize request to the parent
519  * GTK_RESIZE_QUEUE
520  * Queue resizes on this widget
521  * GTK_RESIZE_IMMEDIATE
522  * Resize immediately. Deprecated.
523  */
524 public enum GtkResizeMode
525 {
526 	PARENT,
527 	QUEUE,
528 	IMMEDIATE
529 }
530 alias GtkResizeMode ResizeMode;
531 
532 /**
533  * GTK_SCROLL_STEPS
534  * GTK_SCROLL_PAGES
535  * GTK_SCROLL_ENDS
536  * GTK_SCROLL_HORIZONTAL_STEPS
537  * GTK_SCROLL_HORIZONTAL_PAGES
538  * GTK_SCROLL_HORIZONTAL_ENDS
539  */
540 public enum GtkScrollStep
541 {
542 	STEPS,
543 	PAGES,
544 	ENDS,
545 	HORIZONTAL_STEPS,
546 	HORIZONTAL_PAGES,
547 	HORIZONTAL_ENDS
548 }
549 alias GtkScrollStep ScrollStep;
550 
551 /**
552  * GTK_SCROLL_NONE
553  * GTK_SCROLL_JUMP
554  * GTK_SCROLL_STEP_BACKWARD
555  * GTK_SCROLL_STEP_FORWARD
556  * GTK_SCROLL_PAGE_BACKWARD
557  * GTK_SCROLL_PAGE_FORWARD
558  * GTK_SCROLL_STEP_UP
559  * GTK_SCROLL_STEP_DOWN
560  * GTK_SCROLL_PAGE_UP
561  * GTK_SCROLL_PAGE_DOWN
562  * GTK_SCROLL_STEP_LEFT
563  * GTK_SCROLL_STEP_RIGHT
564  * GTK_SCROLL_PAGE_LEFT
565  * GTK_SCROLL_PAGE_RIGHT
566  * GTK_SCROLL_START
567  * GTK_SCROLL_END
568  */
569 public enum GtkScrollType
570 {
571 	NONE,
572 	JUMP,
573 	STEP_BACKWARD,
574 	STEP_FORWARD,
575 	PAGE_BACKWARD,
576 	PAGE_FORWARD,
577 	STEP_UP,
578 	STEP_DOWN,
579 	PAGE_UP,
580 	PAGE_DOWN,
581 	STEP_LEFT,
582 	STEP_RIGHT,
583 	PAGE_LEFT,
584 	PAGE_RIGHT,
585 	START,
586 	END
587 }
588 alias GtkScrollType ScrollType;
589 
590 /**
591  * Used to control what selections users are allowed to make.
592  * GTK_SELECTION_NONE
593  * No selection is possible.
594  * GTK_SELECTION_SINGLE
595  * Zero or one element may be selected.
596  * GTK_SELECTION_BROWSE
597  * Exactly one element is selected.
598  *  In some circumstances, such as initially or during a search
599  *  operation, it's possible for no element to be selected with
600  *  GTK_SELECTION_BROWSE. What is really enforced is that the user
601  *  can't deselect a currently selected element except by selecting
602  *  another element.
603  * GTK_SELECTION_MULTIPLE
604  * Any number of elements may be selected.
605  *  The Ctrl key may be used to enlarge the selection, and Shift
606  *  key to select between the focus and the child pointed to.
607  *  Some widgets may also allow Click-drag to select a range of elements.
608  */
609 public enum GtkSelectionMode
610 {
611 	NONE,
612 	SINGLE,
613 	BROWSE,
614 	MULTIPLE
615 }
616 alias GtkSelectionMode SelectionMode;
617 
618 /**
619  * Used to change the appearance of an outline typically provided by a GtkFrame.
620  * GTK_SHADOW_NONE
621  * No outline.
622  * GTK_SHADOW_IN
623  * The outline is bevelled inwards.
624  * GTK_SHADOW_OUT
625  * The outline is bevelled outwards like a button.
626  * GTK_SHADOW_ETCHED_IN
627  * The outline has a sunken 3d appearance.
628  * GTK_SHADOW_ETCHED_OUT
629  * The outline has a raised 3d appearance.
630  */
631 public enum GtkShadowType
632 {
633 	NONE,
634 	IN,
635 	OUT,
636 	ETCHED_IN,
637 	ETCHED_OUT
638 }
639 alias GtkShadowType ShadowType;
640 
641 /**
642  * This type indicates the current state of a widget; the state determines how
643  * the widget is drawn. The GtkStateType enumeration is also used to
644  * identify different colors in a GtkStyle for drawing, so states can be
645  * used for subparts of a widget as well as entire widgets.
646  * GTK_STATE_NORMAL
647  * State during normal operation.
648  * GTK_STATE_ACTIVE
649  * State of a currently active widget, such as a depressed button.
650  * GTK_STATE_PRELIGHT
651  * State indicating that the mouse pointer is over
652  *  the widget and the widget will respond to mouse clicks.
653  * GTK_STATE_SELECTED
654  * State of a selected item, such the selected row in a list.
655  * GTK_STATE_INSENSITIVE
656  * State indicating that the widget is
657  *  unresponsive to user actions.
658  * GTK_STATE_INCONSISTENT
659  * The widget is inconsistent, such as checkbuttons
660  *  or radiobuttons that aren't either set to TRUE nor FALSE,
661  *  or buttons requiring the user attention.
662  * GTK_STATE_FOCUSED
663  * The widget has the keyboard focus.
664  */
665 public enum GtkStateType
666 {
667 	NORMAL,
668 	ACTIVE,
669 	PRELIGHT,
670 	SELECTED,
671 	INSENSITIVE,
672 	INCONSISTENT,
673 	FOCUSED
674 }
675 alias GtkStateType StateType;
676 
677 /**
678  * Describes a widget state. Widget states are used to match the widget
679  * against CSS pseudo-classes. Note that GTK extends the regular CSS
680  * classes and sometimes uses different names.
681  * GTK_STATE_FLAG_NORMAL
682  * State during normal operation.
683  * GTK_STATE_FLAG_ACTIVE
684  * Widget is active.
685  * GTK_STATE_FLAG_PRELIGHT
686  * Widget has a mouse pointer over it.
687  * GTK_STATE_FLAG_SELECTED
688  * Widget is selected.
689  * GTK_STATE_FLAG_INSENSITIVE
690  * Widget is insensitive.
691  * GTK_STATE_FLAG_INCONSISTENT
692  * Widget is inconsistent.
693  * GTK_STATE_FLAG_FOCUSED
694  * Widget has the keyboard focus.
695  * GTK_STATE_FLAG_BACKDROP
696  * Widget is in a background toplevel window.
697  * GTK_STATE_FLAG_DIR_LTR
698  * Widget is in left-to-right text direction. Since 3.8
699  * GTK_STATE_FLAG_DIR_RTL
700  * Widget is in right-to-left text direction. Since 3.8
701  */
702 public enum GtkStateFlags
703 {
704 	NORMAL = 0,
705 	ACTIVE = 1 << 0,
706 	PRELIGHT = 1 << 1,
707 	SELECTED = 1 << 2,
708 	INSENSITIVE = 1 << 3,
709 	INCONSISTENT = 1 << 4,
710 	FOCUSED = 1 << 5,
711 	BACKDROP = 1 << 6,
712 	DIR_LTR = 1 << 7,
713 	DIR_RTL = 1 << 8
714 }
715 alias GtkStateFlags StateFlags;
716 
717 /**
718  * Used to customize the appearance of a GtkToolbar. Note that
719  * setting the toolbar style overrides the user's preferences
720  * for the default toolbar style. Note that if the button has only
721  * a label set and GTK_TOOLBAR_ICONS is used, the label will be
722  * visible, and vice versa.
723  * GTK_TOOLBAR_ICONS
724  * Buttons display only icons in the toolbar.
725  * GTK_TOOLBAR_TEXT
726  * Buttons display only text labels in the toolbar.
727  * GTK_TOOLBAR_BOTH
728  * Buttons display text and icons in the toolbar.
729  * GTK_TOOLBAR_BOTH_HORIZ
730  * Buttons display icons and text alongside each
731  *  other, rather than vertically stacked
732  */
733 public enum GtkToolbarStyle
734 {
735 	ICONS,
736 	TEXT,
737 	BOTH,
738 	BOTH_HORIZ
739 }
740 alias GtkToolbarStyle ToolbarStyle;
741 
742 /**
743  * Window placement can be influenced using this enumeration. Note that
744  * using GTK_WIN_POS_CENTER_ALWAYS is almost always a bad idea.
745  * It won't necessarily work well with all window managers or on all windowing systems.
746  * GTK_WIN_POS_NONE
747  * No influence is made on placement.
748  * GTK_WIN_POS_CENTER
749  * Windows should be placed in the center of the screen.
750  * GTK_WIN_POS_MOUSE
751  * Windows should be placed at the current mouse position.
752  * GTK_WIN_POS_CENTER_ALWAYS
753  * Keep window centered as it changes size, etc.
754  * GTK_WIN_POS_CENTER_ON_PARENT
755  * Center the window on its transient
756  *  parent (see gtk_window_set_transient_for()).
757  */
758 public enum GtkWindowPosition
759 {
760 	POS_NONE,
761 	POS_CENTER,
762 	POS_MOUSE,
763 	POS_CENTER_ALWAYS,
764 	POS_CENTER_ON_PARENT
765 }
766 alias GtkWindowPosition WindowPosition;
767 
768 /**
769  * A GtkWindow can be one of these types. Most things you'd consider a
770  * "window" should have type GTK_WINDOW_TOPLEVEL; windows with this type
771  * are managed by the window manager and have a frame by default (call
772  * gtk_window_set_decorated() to toggle the frame). Windows with type
773  * GTK_WINDOW_POPUP are ignored by the window manager; window manager
774  * keybindings won't work on them, the window manager won't decorate the
775  * window with a frame, many GTK+ features that rely on the window
776  * manager will not work (e.g. resize grips and
777  * maximization/minimization). GTK_WINDOW_POPUP is used to implement
778  * widgets such as GtkMenu or tooltips that you normally don't think of
779  * as windows per se. Nearly all windows should be GTK_WINDOW_TOPLEVEL.
780  * In particular, do not use GTK_WINDOW_POPUP just to turn off
781  * the window borders; use gtk_window_set_decorated() for that.
782  * GTK_WINDOW_TOPLEVEL
783  * A regular window, such as a dialog.
784  * GTK_WINDOW_POPUP
785  * A special window such as a tooltip.
786  */
787 public enum GtkWindowType
788 {
789 	TOPLEVEL,
790 	POPUP
791 }
792 alias GtkWindowType WindowType;
793 
794 /**
795  * Determines the direction of a sort.
796  * GTK_SORT_ASCENDING
797  * Sorting is in ascending order.
798  * GTK_SORT_DESCENDING
799  * Sorting is in descending order.
800  */
801 public enum GtkSortType
802 {
803 	ASCENDING,
804 	DESCENDING
805 }
806 alias GtkSortType SortType;
807 
808 /**
809  * Gives an indication why a drag operation failed.
810  * The value can by obtained by connecting to the
811  * "drag-failed" signal.
812  * GTK_DRAG_RESULT_SUCCESS
813  * The drag operation was successful.
814  * GTK_DRAG_RESULT_NO_TARGET
815  * No suitable drag target.
816  * GTK_DRAG_RESULT_USER_CANCELLED
817  * The user cancelled the drag operation.
818  * GTK_DRAG_RESULT_TIMEOUT_EXPIRED
819  * The drag operation timed out.
820  * GTK_DRAG_RESULT_GRAB_BROKEN
821  * The pointer or keyboard grab used
822  *  for the drag operation was broken.
823  * GTK_DRAG_RESULT_ERROR
824  * The drag operation failed due to some
825  *  unspecified error.
826  */
827 public enum GtkDragResult
828 {
829 	SUCCESS,
830 	NO_TARGET,
831 	USER_CANCELLED,
832 	TIMEOUT_EXPIRED,
833 	GRAB_BROKEN,
834 	ERROR
835 }
836 alias GtkDragResult DragResult;
837 
838 /**
839  * Describes how a rendered element connects to adjacent elements.
840  * GTK_JUNCTION_NONE
841  * No junctions.
842  * GTK_JUNCTION_CORNER_TOPLEFT
843  * Element connects on the top-left corner.
844  * GTK_JUNCTION_CORNER_TOPRIGHT
845  * Element connects on the top-right corner.
846  * GTK_JUNCTION_CORNER_BOTTOMLEFT
847  * Element connects on the bottom-left corner.
848  * GTK_JUNCTION_CORNER_BOTTOMRIGHT
849  * Element connects on the bottom-right corner.
850  * GTK_JUNCTION_TOP
851  * Element connects on the top side.
852  * GTK_JUNCTION_BOTTOM
853  * Element connects on the bottom side.
854  * GTK_JUNCTION_LEFT
855  * Element connects on the left side.
856  * GTK_JUNCTION_RIGHT
857  * Element connects on the right side.
858  */
859 public enum GtkJunctionSides
860 {
861 	NONE = 0,
862 	CORNER_TOPLEFT = 1 << 0,
863 	CORNER_TOPRIGHT = 1 << 1,
864 	CORNER_BOTTOMLEFT = 1 << 2,
865 	CORNER_BOTTOMRIGHT = 1 << 3,
866 	TOP = (CORNER_TOPLEFT | CORNER_TOPRIGHT),
867 	BOTTOM = (CORNER_BOTTOMLEFT | CORNER_BOTTOMRIGHT),
868 	LEFT = (CORNER_TOPLEFT | CORNER_BOTTOMLEFT),
869 	RIGHT = (CORNER_TOPRIGHT | CORNER_BOTTOMRIGHT)
870 }
871 alias GtkJunctionSides JunctionSides;
872 
873 /**
874  * Describes how the border of a UI element should be rendered.
875  * GTK_BORDER_STYLE_NONE
876  * No visible border
877  * GTK_BORDER_STYLE_SOLID
878  * A single line segment
879  * GTK_BORDER_STYLE_INSET
880  * Looks as if the content is sunken into the canvas
881  * GTK_BORDER_STYLE_OUTSET
882  * Looks as if the content is coming out of the canvas
883  * GTK_BORDER_STYLE_HIDDEN
884  * Same as GTK_BORDER_STYLE_NONE
885  * GTK_BORDER_STYLE_DOTTED
886  * A series of round dots
887  * GTK_BORDER_STYLE_DASHED
888  * A series of square-ended dashes
889  * GTK_BORDER_STYLE_DOUBLE
890  * Two parallel lines with some space between them
891  * GTK_BORDER_STYLE_GROOVE
892  * Looks as if it were carved in the canvas
893  * GTK_BORDER_STYLE_RIDGE
894  * Looks as if it were coming out of the canvas
895  */
896 public enum GtkBorderStyle
897 {
898 	NONE,
899 	SOLID,
900 	INSET,
901 	OUTSET,
902 	HIDDEN,
903 	DOTTED,
904 	DASHED,
905 	DOUBLE,
906 	GROOVE,
907 	RIDGE
908 }
909 alias GtkBorderStyle BorderStyle;
910 
911 /**
912  * Describes a region within a widget.
913  * GTK_REGION_EVEN
914  * Region has an even number within a set.
915  * GTK_REGION_ODD
916  * Region has an odd number within a set.
917  * GTK_REGION_FIRST
918  * Region is the first one within a set.
919  * GTK_REGION_LAST
920  * Region is the last one within a set.
921  * GTK_REGION_ONLY
922  * Region is the only one within a set.
923  * GTK_REGION_SORTED
924  * Region is part of a sorted area.
925  */
926 public enum GtkRegionFlags
927 {
928 	EVEN = 1 << 0,
929 	ODD = 1 << 1,
930 	FIRST = 1 << 2,
931 	LAST = 1 << 3,
932 	ONLY = 1 << 4,
933 	SORTED = 1 << 5
934 }
935 alias GtkRegionFlags RegionFlags;
936 
937 /**
938  * GTK_CSS_PROVIDER_ERROR_FAILED
939  * GTK_CSS_PROVIDER_ERROR_SYNTAX
940  * GTK_CSS_PROVIDER_ERROR_IMPORT
941  * GTK_CSS_PROVIDER_ERROR_NAME
942  * GTK_CSS_PROVIDER_ERROR_DEPRECATED
943  * GTK_CSS_PROVIDER_ERROR_UNKNOWN_VALUE
944  */
945 public enum GtkCssProviderError
946 {
947 	FAILED,
948 	SYNTAX,
949 	IMPORT,
950 	NAME,
951 	DEPRECATED,
952 	UNKNOWN_VALUE
953 }
954 alias GtkCssProviderError CssProviderError;
955 
956 /**
957  * The different types of sections indicate parts of a CSS document as
958  * parsed by GTK's CSS parser. They are oriented towards the CSS grammar
959  * CSS grammer,
960  * but may contain extensions.
961  * More types might be added in the future as the parser incorporates
962  * more features.
963  * GTK_CSS_SECTION_DOCUMENT
964  * The section describes a complete document.
965  *  This section time is the only one where gtk_css_section_get_parent()
966  *  might return NULL.
967  * GTK_CSS_SECTION_IMPORT
968  * The section defines an import rule.
969  * GTK_CSS_SECTION_COLOR_DEFINITION
970  * The section defines a color. This
971  *  is a GTK extension to CSS.
972  * GTK_CSS_SECTION_BINDING_SET
973  * The section defines a binding set. This
974  *  is a GTK extension to CSS.
975  * GTK_CSS_SECTION_RULESET
976  * The section defines a CSS ruleset.
977  * GTK_CSS_SECTION_SELECTOR
978  * The section defines a CSS selector.
979  * GTK_CSS_SECTION_DECLARATION
980  * The section defines the declaration of
981  *  a CSS variable.
982  * GTK_CSS_SECTION_VALUE
983  * The section defines the value of a CSS declaration.
984  * GTK_CSS_SECTION_KEYFRAMES
985  * The section defines keyframes. See CSS
986  *  animations for details. Since 3.6
987  * Since 3.2
988  */
989 public enum GtkCssSectionType
990 {
991 	DOCUMENT,
992 	IMPORT,
993 	COLOR_DEFINITION,
994 	BINDING_SET,
995 	RULESET,
996 	SELECTOR,
997 	DECLARATION,
998 	VALUE,
999 	KEYFRAMES
1000 }
1001 alias GtkCssSectionType CssSectionType;
1002 
1003 /**
1004  * GTK_ICON_LOOKUP_NO_SVG
1005  * Never return SVG icons, even if gdk-pixbuf
1006  *  supports them. Cannot be used together with GTK_ICON_LOOKUP_FORCE_SVG.
1007  * GTK_ICON_LOOKUP_FORCE_SVG
1008  * Return SVG icons, even if gdk-pixbuf
1009  *  doesn't support them.
1010  *  Cannot be used together with GTK_ICON_LOOKUP_NO_SVG.
1011  * GTK_ICON_LOOKUP_USE_BUILTIN
1012  * When passed to
1013  *  gtk_icon_theme_lookup_icon() includes builtin icons
1014  *  as well as files. For a builtin icon, gtk_icon_info_get_filename()
1015  * GTK_ICON_LOOKUP_GENERIC_FALLBACK
1016  * GTK_ICON_LOOKUP_FORCE_SIZE
1017  */
1018 public enum GtkIconLookupFlags
1019 {
1020 	NO_SVG = 1 << 0,
1021 	FORCE_SVG = 1 << 1,
1022 	USE_BUILTIN = 1 << 2,
1023 	GENERIC_FALLBACK = 1 << 3,
1024 	FORCE_SIZE = 1 << 4
1025 }
1026 alias GtkIconLookupFlags IconLookupFlags;
1027 
1028 /**
1029  * Error codes for GtkIconTheme operations.
1030  * GTK_ICON_THEME_NOT_FOUND
1031  * The icon specified does not exist in the theme
1032  * GTK_ICON_THEME_FAILED
1033  * An unspecified error occurred.
1034  */
1035 public enum GtkIconThemeError
1036 {
1037 	NOT_FOUND,
1038 	FAILED
1039 }
1040 alias GtkIconThemeError IconThemeError;
1041 
1042 /**
1043  * GTK_ICON_SIZE_INVALID
1044  * GTK_ICON_SIZE_MENU
1045  * GTK_ICON_SIZE_SMALL_TOOLBAR
1046  * GTK_ICON_SIZE_LARGE_TOOLBAR
1047  * GTK_ICON_SIZE_BUTTON
1048  * GTK_ICON_SIZE_DND
1049  * GTK_ICON_SIZE_DIALOG
1050  */
1051 public enum GtkIconSize
1052 {
1053 	INVALID,
1054 	MENU,
1055 	SMALL_TOOLBAR,
1056 	LARGE_TOOLBAR,
1057 	BUTTON,
1058 	DND,
1059 	DIALOG
1060 }
1061 alias GtkIconSize IconSize;
1062 
1063 /**
1064  * Types of user actions that may be blocked by gtk_application_inhibit().
1065  * GTK_APPLICATION_INHIBIT_LOGOUT
1066  * Inhibit ending the user session
1067  *  by logging out or by shutting down the computer
1068  * GTK_APPLICATION_INHIBIT_SWITCH
1069  * Inhibit user switching
1070  * GTK_APPLICATION_INHIBIT_SUSPEND
1071  * Inhibit suspending the
1072  *  session or computer
1073  * GTK_APPLICATION_INHIBIT_IDLE
1074  * Inhibit the session being
1075  *  marked as idle (and possibly locked)
1076  * Since 3.4
1077  */
1078 public enum GtkApplicationInhibitFlags
1079 {
1080 	LOGOUT = (1 << 0),
1081 	SWITCH = (1 << 1),
1082 	SUSPEND = (1 << 2),
1083 	IDLE = (1 << 3)
1084 }
1085 alias GtkApplicationInhibitFlags ApplicationInhibitFlags;
1086 
1087 /**
1088  * Error codes that identify various errors that can occur while using
1089  * GtkBuilder.
1090  * GTK_BUILDER_ERROR_INVALID_TYPE_FUNCTION
1091  * A type-func attribute didn't name
1092  *  a function that returns a GType.
1093  * GTK_BUILDER_ERROR_UNHANDLED_TAG
1094  * The input contained a tag that GtkBuilder
1095  *  can't handle.
1096  * GTK_BUILDER_ERROR_MISSING_ATTRIBUTE
1097  * An attribute that is required by
1098  *  GtkBuilder was missing.
1099  * GTK_BUILDER_ERROR_INVALID_ATTRIBUTE
1100  * GtkBuilder found an attribute that
1101  *  it doesn't understand.
1102  * GTK_BUILDER_ERROR_INVALID_TAG
1103  * GtkBuilder found a tag that
1104  *  it doesn't understand.
1105  * GTK_BUILDER_ERROR_MISSING_PROPERTY_VALUE
1106  * A required property value was
1107  *  missing.
1108  * GTK_BUILDER_ERROR_INVALID_VALUE
1109  * GtkBuilder couldn't parse
1110  *  some attribute value.
1111  * GTK_BUILDER_ERROR_VERSION_MISMATCH
1112  * The input file requires a newer version
1113  *  of GTK+.
1114  * GTK_BUILDER_ERROR_DUPLICATE_ID
1115  * An object id occurred twice.
1116  * GTK_BUILDER_ERROR_OBJECT_TYPE_REFUSED
1117  * A specified object type is of the same type or
1118  *  derived from the type of the composite class being extended with builder XML.
1119  * GTK_BUILDER_ERROR_TEMPLATE_MISMATCH
1120  * The wrong type was specified in a composite class's template XML
1121  */
1122 public enum GtkBuilderError
1123 {
1124 	INVALID_TYPE_FUNCTION,
1125 	UNHANDLED_TAG,
1126 	MISSING_ATTRIBUTE,
1127 	INVALID_ATTRIBUTE,
1128 	INVALID_TAG,
1129 	MISSING_PROPERTY_VALUE,
1130 	INVALID_VALUE,
1131 	VERSION_MISMATCH,
1132 	DUPLICATE_ID,
1133 	OBJECT_TYPE_REFUSED,
1134 	TEMPLATE_MISMATCH
1135 }
1136 alias GtkBuilderError BuilderError;
1137 
1138 /**
1139  * Flags used to influence dialog construction.
1140  * GTK_DIALOG_MODAL
1141  * Make the constructed dialog modal,
1142  *  see gtk_window_set_modal()
1143  * GTK_DIALOG_DESTROY_WITH_PARENT
1144  * Destroy the dialog when its
1145  *  parent is destroyed, see gtk_window_set_destroy_with_parent()
1146  */
1147 public enum GtkDialogFlags
1148 {
1149 	MODAL = 1 << 0,
1150 	DESTROY_WITH_PARENT = 1 << 1
1151 }
1152 alias GtkDialogFlags DialogFlags;
1153 
1154 /**
1155  * Predefined values for use as response ids in gtk_dialog_add_button().
1156  * All predefined values are negative, GTK+ leaves positive values for
1157  * application-defined response ids.
1158  * GTK_RESPONSE_NONE
1159  * Returned if an action widget has no response id,
1160  *  or if the dialog gets programmatically hidden or destroyed
1161  * GTK_RESPONSE_REJECT
1162  * Generic response id, not used by GTK+ dialogs
1163  * GTK_RESPONSE_ACCEPT
1164  * Generic response id, not used by GTK+ dialogs
1165  * GTK_RESPONSE_DELETE_EVENT
1166  * Returned if the dialog is deleted
1167  * GTK_RESPONSE_OK
1168  * Returned by OK buttons in GTK+ dialogs
1169  * GTK_RESPONSE_CANCEL
1170  * Returned by Cancel buttons in GTK+ dialogs
1171  * GTK_RESPONSE_CLOSE
1172  * Returned by Close buttons in GTK+ dialogs
1173  * GTK_RESPONSE_YES
1174  * Returned by Yes buttons in GTK+ dialogs
1175  * GTK_RESPONSE_NO
1176  * Returned by No buttons in GTK+ dialogs
1177  * GTK_RESPONSE_APPLY
1178  * Returned by Apply buttons in GTK+ dialogs
1179  * GTK_RESPONSE_HELP
1180  * Returned by Help buttons in GTK+ dialogs
1181  */
1182 public enum GtkResponseType
1183 {
1184 	NONE = -1,
1185 	REJECT = -2,
1186 	ACCEPT = -3,
1187 	DELETE_EVENT = -4,
1188 	OK = -5,
1189 	CANCEL = -6,
1190 	CLOSE = -7,
1191 	YES = -8,
1192 	NO = -9,
1193 	APPLY = -10,
1194 	HELP = -11
1195 }
1196 alias GtkResponseType ResponseType;
1197 
1198 /**
1199  * The type of message being displayed in the dialog.
1200  * GTK_MESSAGE_INFO
1201  * Informational message
1202  * GTK_MESSAGE_WARNING
1203  * Non-fatal warning message
1204  * GTK_MESSAGE_QUESTION
1205  * Question requiring a choice
1206  * GTK_MESSAGE_ERROR
1207  * Fatal error message
1208  * GTK_MESSAGE_OTHER
1209  * None of the above, doesn't get an icon
1210  */
1211 public enum GtkMessageType
1212 {
1213 	INFO,
1214 	WARNING,
1215 	QUESTION,
1216 	ERROR,
1217 	OTHER
1218 }
1219 alias GtkMessageType MessageType;
1220 
1221 /**
1222  * Prebuilt sets of buttons for the dialog. If
1223  * none of these choices are appropriate, simply use GTK_BUTTONS_NONE
1224  * then call gtk_dialog_add_buttons().
1225  * Note
1226  *  Please note that GTK_BUTTONS_OK, GTK_BUTTONS_YES_NO
1227  *  and GTK_BUTTONS_OK_CANCEL are discouraged by the
1228  *  GNOME HIG.
1229  * GTK_BUTTONS_NONE
1230  * no buttons at all
1231  * GTK_BUTTONS_OK
1232  * an OK button
1233  * GTK_BUTTONS_CLOSE
1234  * a Close button
1235  * GTK_BUTTONS_CANCEL
1236  * a Cancel button
1237  * GTK_BUTTONS_YES_NO
1238  * Yes and No buttons
1239  * GTK_BUTTONS_OK_CANCEL
1240  * OK and Cancel buttons
1241  */
1242 public enum GtkButtonsType
1243 {
1244 	NONE,
1245 	OK,
1246 	CLOSE,
1247 	CANCEL,
1248 	YES_NO,
1249 	OK_CANCEL
1250 }
1251 alias GtkButtonsType ButtonsType;
1252 
1253 /**
1254  * The type of license for an application.
1255  * This enumeration can be expanded at later date.
1256  * GTK_LICENSE_UNKNOWN
1257  * No license specified
1258  * GTK_LICENSE_CUSTOM
1259  * A license text is going to be specified by the
1260  *  developer
1261  * GTK_LICENSE_GPL_2_0
1262  * The GNU General Public License, version 2.0
1263  * GTK_LICENSE_GPL_3_0
1264  * The GNU General Public License, version 3.0
1265  * GTK_LICENSE_LGPL_2_1
1266  * The GNU Lesser General Public License, version 2.1
1267  * GTK_LICENSE_LGPL_3_0
1268  * The GNU Lesser General Public License, version 3.0
1269  * GTK_LICENSE_BSD
1270  * The BSD standard license
1271  * GTK_LICENSE_MIT_X11
1272  * The MIT/X11 standard license
1273  * GTK_LICENSE_ARTISTIC
1274  * The Artistic License, version 2.0
1275  * Since 3.0
1276  */
1277 public enum GtkLicense
1278 {
1279 	UNKNOWN,
1280 	CUSTOM,
1281 	GPL_2_0,
1282 	GPL_3_0,
1283 	LGPL_2_1,
1284 	LGPL_3_0,
1285 	BSD,
1286 	MIT_X11,
1287 	ARTISTIC
1288 }
1289 alias GtkLicense License;
1290 
1291 /**
1292  * An enum for determining the page role inside the GtkAssistant. It's
1293  * used to handle buttons sensitivity and visibility.
1294  * Note that an assistant needs to end its page flow with a page of type
1295  * GTK_ASSISTANT_PAGE_CONFIRM, GTK_ASSISTANT_PAGE_SUMMARY or
1296  * GTK_ASSISTANT_PAGE_PROGRESS to be correct.
1297  * The Cancel button will only be shown if the page isn't "committed".
1298  * See gtk_assistant_commit() for details.
1299  * GTK_ASSISTANT_PAGE_CONTENT
1300  * The page has regular contents. Both the
1301  *  Back and forward buttons will be shown.
1302  * GTK_ASSISTANT_PAGE_INTRO
1303  * The page contains an introduction to the
1304  *  assistant task. Only the Forward button will be shown if there is a
1305  *  next page.
1306  * GTK_ASSISTANT_PAGE_CONFIRM
1307  * The page lets the user confirm or deny the
1308  *  changes. The Back and Apply buttons will be shown.
1309  * GTK_ASSISTANT_PAGE_SUMMARY
1310  * The page informs the user of the changes
1311  *  done. Only the Close button will be shown.
1312  * GTK_ASSISTANT_PAGE_PROGRESS
1313  * Used for tasks that take a long time to
1314  *  complete, blocks the assistant until the page is marked as complete.
1315  *  Only the back button will be shown.
1316  * GTK_ASSISTANT_PAGE_CUSTOM
1317  * Used for when other page types are not
1318  *  appropriate. No buttons will be shown, and the application must
1319  *  add its own buttons through gtk_assistant_add_action_widget().
1320  */
1321 public enum GtkAssistantPageType
1322 {
1323 	CONTENT,
1324 	INTRO,
1325 	CONFIRM,
1326 	SUMMARY,
1327 	PROGRESS,
1328 	CUSTOM
1329 }
1330 alias GtkAssistantPageType AssistantPageType;
1331 
1332 /**
1333  * These enumeration values describe the possible transitions
1334  * when the child of a GtkRevealer widget is shown or hidden.
1335  * GTK_REVEALER_TRANSITION_TYPE_NONE
1336  * No transition
1337  * GTK_REVEALER_TRANSITION_TYPE_CROSSFADE
1338  * Fade in
1339  * GTK_REVEALER_TRANSITION_TYPE_SLIDE_RIGHT
1340  * Slide in from the left
1341  * GTK_REVEALER_TRANSITION_TYPE_SLIDE_LEFT
1342  * Slide in from the right
1343  * GTK_REVEALER_TRANSITION_TYPE_SLIDE_UP
1344  * Slide in from the bottom
1345  * GTK_REVEALER_TRANSITION_TYPE_SLIDE_DOWN
1346  * Slide in from the top
1347  */
1348 public enum GtkRevealerTransitionType
1349 {
1350 	TYPE_NONE,
1351 	TYPE_CROSSFADE,
1352 	TYPE_SLIDE_RIGHT,
1353 	TYPE_SLIDE_LEFT,
1354 	TYPE_SLIDE_UP,
1355 	TYPE_SLIDE_DOWN
1356 }
1357 alias GtkRevealerTransitionType RevealerTransitionType;
1358 
1359 /**
1360  * These enumeration values describe the possible transitions
1361  * between pages in a GtkStack widget.
1362  * GTK_STACK_TRANSITION_TYPE_NONE
1363  * No transition
1364  * GTK_STACK_TRANSITION_TYPE_CROSSFADE
1365  * A cross-fade
1366  * GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT
1367  * Slide from left to right
1368  * GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT
1369  * Slide from right to left
1370  * GTK_STACK_TRANSITION_TYPE_SLIDE_UP
1371  * Slide from bottom up
1372  * GTK_STACK_TRANSITION_TYPE_SLIDE_DOWN
1373  * Slide from top down
1374  * GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT
1375  * Slide from left or right according to the children order
1376  * GTK_STACK_TRANSITION_TYPE_SLIDE_UP_DOWN
1377  * Slide from top down or bottom up according to the order
1378  */
1379 public enum GtkStackTransitionType
1380 {
1381 	TYPE_NONE,
1382 	TYPE_CROSSFADE,
1383 	TYPE_SLIDE_RIGHT,
1384 	TYPE_SLIDE_LEFT,
1385 	TYPE_SLIDE_UP,
1386 	TYPE_SLIDE_DOWN,
1387 	TYPE_SLIDE_LEFT_RIGHT,
1388 	TYPE_SLIDE_UP_DOWN
1389 }
1390 alias GtkStackTransitionType StackTransitionType;
1391 
1392 /**
1393  * Describes the image data representation used by a GtkImage. If you
1394  * want to get the image from the widget, you can only get the
1395  * currently-stored representation. e.g. if the
1396  * gtk_image_get_storage_type() returns GTK_IMAGE_PIXBUF, then you can
1397  * call gtk_image_get_pixbuf() but not gtk_image_get_stock(). For empty
1398  * images, you can request any storage type (call any of the "get"
1399  * functions), but they will all return NULL values.
1400  * GTK_IMAGE_EMPTY
1401  * there is no image displayed by the widget
1402  * GTK_IMAGE_PIXBUF
1403  * the widget contains a GdkPixbuf
1404  * GTK_IMAGE_STOCK
1405  * the widget contains a stock icon name (see
1406  *  Stock Items(3))
1407  * GTK_IMAGE_ICON_SET
1408  * the widget contains a GtkIconSet
1409  * GTK_IMAGE_ANIMATION
1410  * the widget contains a GdkPixbufAnimation
1411  * GTK_IMAGE_ICON_NAME
1412  * the widget contains a named icon.
1413  *  This image type was added in GTK+ 2.6
1414  * GTK_IMAGE_GICON
1415  * the widget contains a GIcon.
1416  *  This image type was added in GTK+ 2.14
1417  * GTK_IMAGE_SURFACE
1418  * the widget contains a cairo_surface_t.
1419  *  This image type was added in GTK+ 3.10
1420  */
1421 public enum GtkImageType
1422 {
1423 	EMPTY,
1424 	PIXBUF,
1425 	STOCK,
1426 	ICON_SET,
1427 	ANIMATION,
1428 	ICON_NAME,
1429 	GICON,
1430 	SURFACE
1431 }
1432 alias GtkImageType ImageType;
1433 
1434 /**
1435  * Describes how GtkLevelBar contents should be rendered.
1436  * Note that this enumeration could be extended with additional modes
1437  * in the future.
1438  * GTK_LEVEL_BAR_MODE_CONTINUOUS
1439  * the bar has a continuous mode
1440  * GTK_LEVEL_BAR_MODE_DISCRETE
1441  * the bar has a discrete mode
1442  * Since 3.6
1443  */
1444 public enum GtkLevelBarMode
1445 {
1446 	MODE_CONTINUOUS,
1447 	MODE_DISCRETE
1448 }
1449 alias GtkLevelBarMode LevelBarMode;
1450 
1451 /**
1452  * Specifies the side of the entry at which an icon is placed.
1453  * GTK_ENTRY_ICON_PRIMARY
1454  * At the beginning of the entry (depending on the text direction).
1455  * GTK_ENTRY_ICON_SECONDARY
1456  * At the end of the entry (depending on the text direction).
1457  * Since 2.16
1458  */
1459 public enum GtkEntryIconPosition
1460 {
1461 	PRIMARY,
1462 	SECONDARY
1463 }
1464 alias GtkEntryIconPosition EntryIconPosition;
1465 
1466 /**
1467  * Describes primary purpose of the input widget. This information is
1468  * useful for on-screen keyboards and similar input methods to decide
1469  * which keys should be presented to the user.
1470  * Note that the purpose is not meant to impose a totally strict rule
1471  * about allowed characters, and does not replace input validation.
1472  * It is fine for an on-screen keyboard to let the user override the
1473  * character set restriction that is expressed by the purpose. The
1474  * application is expected to validate the entry contents, even if
1475  * it specified a purpose.
1476  * The difference between GTK_INPUT_PURPOSE_DIGITS and
1477  * GTK_INPUT_PURPOSE_NUMBER is that the former accepts only digits
1478  * while the latter also some punctuation (like commas or points, plus,
1479  * minus) and 'e' or 'E' as in 3.14E+000.
1480  * This enumeration may be extended in the future; input methods should
1481  * interpret unknown values as 'free form'.
1482  * GTK_INPUT_PURPOSE_FREE_FORM
1483  * Allow any character
1484  * GTK_INPUT_PURPOSE_ALPHA
1485  * Allow only alphabetic characters
1486  * GTK_INPUT_PURPOSE_DIGITS
1487  * Allow only digits
1488  * GTK_INPUT_PURPOSE_NUMBER
1489  * Edited field expects numbers
1490  * GTK_INPUT_PURPOSE_PHONE
1491  * Edited field expects phone number
1492  * GTK_INPUT_PURPOSE_URL
1493  * Edited field expects URL
1494  * GTK_INPUT_PURPOSE_EMAIL
1495  * Edited field expects email address
1496  * GTK_INPUT_PURPOSE_NAME
1497  * Edited field expects the name of a person
1498  * GTK_INPUT_PURPOSE_PASSWORD
1499  * Like GTK_INPUT_PURPOSE_FREE_FORM, but characters are hidden
1500  * GTK_INPUT_PURPOSE_PIN
1501  * Like GTK_INPUT_PURPOSE_DIGITS, but characters are hidden
1502  * Since 3.6
1503  */
1504 public enum GtkInputPurpose
1505 {
1506 	FREE_FORM,
1507 	ALPHA,
1508 	DIGITS,
1509 	NUMBER,
1510 	PHONE,
1511 	URL,
1512 	EMAIL,
1513 	NAME,
1514 	PASSWORD,
1515 	PIN
1516 }
1517 alias GtkInputPurpose InputPurpose;
1518 
1519 /**
1520  * Describes hints that might be taken into account by input methods
1521  * or applications. Note that input methods may already tailor their
1522  * behaviour according to the GtkInputPurpose of the entry.
1523  * Some common sense is expected when using these flags - mixing
1524  * GTK_INPUT_HINT_LOWERCASE with any of the uppercase hints makes no sense.
1525  * This enumeration may be extended in the future; input methods should
1526  * ignore unknown values.
1527  * GTK_INPUT_HINT_NONE
1528  * No special behaviour suggested
1529  * GTK_INPUT_HINT_SPELLCHECK
1530  * Suggest checking for typos
1531  * GTK_INPUT_HINT_NO_SPELLCHECK
1532  * Suggest not checking for typos
1533  * GTK_INPUT_HINT_WORD_COMPLETION
1534  * Suggest word completion
1535  * GTK_INPUT_HINT_LOWERCASE
1536  * Suggest to convert all text to lowercase
1537  * GTK_INPUT_HINT_UPPERCASE_CHARS
1538  * Suggest to capitalize all text
1539  * GTK_INPUT_HINT_UPPERCASE_WORDS
1540  * Suggest to capitalize the first
1541  *  character of each word
1542  * GTK_INPUT_HINT_UPPERCASE_SENTENCES
1543  * Suggest to capitalize the
1544  *  first word of each sentence
1545  * GTK_INPUT_HINT_INHIBIT_OSK
1546  * Suggest to not show an onscreen keyboard
1547  *  (e.g for a calculator that already has all the keys).
1548  * Since 3.6
1549  */
1550 public enum GtkInputHints
1551 {
1552 	NONE = 0,
1553 	SPELLCHECK = 1 << 0,
1554 	NO_SPELLCHECK = 1 << 1,
1555 	WORD_COMPLETION = 1 << 2,
1556 	LOWERCASE = 1 << 3,
1557 	UPPERCASE_CHARS = 1 << 4,
1558 	UPPERCASE_WORDS = 1 << 5,
1559 	UPPERCASE_SENTENCES = 1 << 6,
1560 	INHIBIT_OSK = 1 << 7
1561 }
1562 alias GtkInputHints InputHints;
1563 
1564 /**
1565  * The spin button update policy determines whether the spin button displays
1566  * values even if they are outside the bounds of its adjustment.
1567  * See gtk_spin_button_set_update_policy().
1568  * GTK_UPDATE_ALWAYS
1569  * When refreshing your GtkSpinButton, the value is
1570  *  always displayed
1571  * GTK_UPDATE_IF_VALID
1572  * When refreshing your GtkSpinButton, the value is
1573  *  only displayed if it is valid within the bounds of the spin button's
1574  *  adjustment
1575  */
1576 public enum GtkSpinButtonUpdatePolicy
1577 {
1578 	UPDATE_ALWAYS,
1579 	UPDATE_IF_VALID
1580 }
1581 alias GtkSpinButtonUpdatePolicy SpinButtonUpdatePolicy;
1582 
1583 /**
1584  * The values of the GtkSpinType enumeration are used to specify the
1585  * change to make in gtk_spin_button_spin().
1586  * GTK_SPIN_STEP_FORWARD
1587  * Increment by the adjustments step increment.
1588  * GTK_SPIN_STEP_BACKWARD
1589  * Decrement by the adjustments step increment.
1590  * GTK_SPIN_PAGE_FORWARD
1591  * Increment by the adjustments page increment.
1592  * GTK_SPIN_PAGE_BACKWARD
1593  * Decrement by the adjustments page increment.
1594  * GTK_SPIN_HOME
1595  * Go to the adjustments lower bound.
1596  * GTK_SPIN_END
1597  * Go to the adjustments upper bound.
1598  * GTK_SPIN_USER_DEFINED
1599  * Change by a specified amount.
1600  */
1601 public enum GtkSpinType
1602 {
1603 	STEP_FORWARD,
1604 	STEP_BACKWARD,
1605 	PAGE_FORWARD,
1606 	PAGE_BACKWARD,
1607 	HOME,
1608 	END,
1609 	USER_DEFINED
1610 }
1611 alias GtkSpinType SpinType;
1612 
1613 /**
1614  * Flags affecting how a search is done.
1615  * If neither GTK_TEXT_SEARCH_VISIBLE_ONLY nor GTK_TEXT_SEARCH_TEXT_ONLY are
1616  * enabled, the match must be exact; the special 0xFFFC character will match
1617  * embedded pixbufs or child widgets.
1618  * GTK_TEXT_SEARCH_VISIBLE_ONLY
1619  * Search only visible data. A search match may
1620  * have invisible text interspersed.
1621  * GTK_TEXT_SEARCH_TEXT_ONLY
1622  * Search only text. A match may have pixbufs or
1623  * child widgets mixed inside the matched range.
1624  * GTK_TEXT_SEARCH_CASE_INSENSITIVE
1625  * The text will be matched regardless of
1626  * what case it is in.
1627  */
1628 public enum GtkTextSearchFlags
1629 {
1630 	VISIBLE_ONLY = 1 << 0,
1631 	TEXT_ONLY = 1 << 1,
1632 	CASE_INSENSITIVE = 1 << 2
1633 	/+* Possible future plans: SEARCH_REGEXP +/
1634 }
1635 alias GtkTextSearchFlags TextSearchFlags;
1636 
1637 /**
1638  * GTK_TEXT_BUFFER_TARGET_INFO_BUFFER_CONTENTS
1639  * GTK_TEXT_BUFFER_TARGET_INFO_RICH_TEXT
1640  * GTK_TEXT_BUFFER_TARGET_INFO_TEXT
1641  */
1642 public enum GtkTextBufferTargetInfo
1643 {
1644 	BUFFER_CONTENTS = - 1,
1645 	RICH_TEXT = - 2,
1646 	TEXT = - 3
1647 }
1648 alias GtkTextBufferTargetInfo TextBufferTargetInfo;
1649 
1650 /**
1651  * GTK_TEXT_WINDOW_PRIVATE
1652  * GTK_TEXT_WINDOW_WIDGET
1653  * GTK_TEXT_WINDOW_TEXT
1654  * GTK_TEXT_WINDOW_LEFT
1655  * GTK_TEXT_WINDOW_RIGHT
1656  * GTK_TEXT_WINDOW_TOP
1657  * GTK_TEXT_WINDOW_BOTTOM
1658  */
1659 public enum GtkTextWindowType
1660 {
1661 	PRIVATE,
1662 	WIDGET,
1663 	TEXT,
1664 	LEFT,
1665 	RIGHT,
1666 	TOP,
1667 	BOTTOM
1668 }
1669 alias GtkTextWindowType TextWindowType;
1670 
1671 /**
1672  * Describes a type of line wrapping.
1673  * GTK_WRAP_NONE
1674  * do not wrap lines; just make the text area wider
1675  * GTK_WRAP_CHAR
1676  * wrap text, breaking lines anywhere the cursor can
1677  *  appear (between characters, usually - if you want to be technical,
1678  *  between graphemes, see pango_get_log_attrs())
1679  * GTK_WRAP_WORD
1680  * wrap text, breaking lines in between words
1681  * GTK_WRAP_WORD_CHAR
1682  * wrap text, breaking lines in between words, or if
1683  *  that is not enough, also between graphemes
1684  */
1685 public enum GtkWrapMode
1686 {
1687 	NONE,
1688 	CHAR,
1689 	WORD,
1690 	WORD_CHAR
1691 }
1692 alias GtkWrapMode WrapMode;
1693 
1694 /**
1695  * These flags indicate various properties of a GtkTreeModel.
1696  * They are returned by gtk_tree_model_get_flags(), and must be
1697  * static for the lifetime of the object. A more complete description
1698  * of GTK_TREE_MODEL_ITERS_PERSIST can be found in the overview of
1699  * this section.
1700  * GTK_TREE_MODEL_ITERS_PERSIST
1701  * iterators survive all signals
1702  *  emitted by the tree
1703  * GTK_TREE_MODEL_LIST_ONLY
1704  * the model is a list only, and never
1705  *  has children
1706  */
1707 public enum GtkTreeModelFlags
1708 {
1709 	ITERS_PERSIST = 1 << 0,
1710 	LIST_ONLY = 1 << 1
1711 }
1712 alias GtkTreeModelFlags TreeModelFlags;
1713 
1714 /**
1715  * The sizing method the column uses to determine its width. Please note
1716  * that GTK_TREE_VIEW_COLUMN_AUTOSIZE are inefficient for large views, and
1717  * can make columns appear choppy.
1718  * GTK_TREE_VIEW_COLUMN_GROW_ONLY
1719  * Columns only get bigger in reaction to changes in the model
1720  * GTK_TREE_VIEW_COLUMN_AUTOSIZE
1721  * Columns resize to be the optimal size everytime the model changes.
1722  * GTK_TREE_VIEW_COLUMN_FIXED
1723  * Columns are a fixed numbers of pixels wide.
1724  */
1725 public enum GtkTreeViewColumnSizing
1726 {
1727 	GROW_ONLY,
1728 	AUTOSIZE,
1729 	FIXED
1730 }
1731 alias GtkTreeViewColumnSizing TreeViewColumnSizing;
1732 
1733 /**
1734  * An enum for determining where a dropped row goes.
1735  * GTK_TREE_VIEW_DROP_BEFORE
1736  * dropped row is inserted before
1737  * GTK_TREE_VIEW_DROP_AFTER
1738  * dropped row is inserted after
1739  * GTK_TREE_VIEW_DROP_INTO_OR_BEFORE
1740  * dropped row becomes a child or is inserted before
1741  * GTK_TREE_VIEW_DROP_INTO_OR_AFTER
1742  * dropped row becomes a child or is inserted after
1743  */
1744 public enum GtkTreeViewDropPosition
1745 {
1746 	BEFORE,
1747 	AFTER,
1748 	/+* drop as a child of this row (with fallback to before or after
1749 	 * if into is not possible)
1750 	+/
1751 	INTO_OR_BEFORE,
1752 	INTO_OR_AFTER
1753 }
1754 alias GtkTreeViewDropPosition TreeViewDropPosition;
1755 
1756 /**
1757  * Used to indicate which grid lines to draw in a tree view.
1758  * GTK_TREE_VIEW_GRID_LINES_NONE
1759  * No grid lines.
1760  * GTK_TREE_VIEW_GRID_LINES_HORIZONTAL
1761  * Horizontal grid lines.
1762  * GTK_TREE_VIEW_GRID_LINES_VERTICAL
1763  * Vertical grid lines.
1764  * GTK_TREE_VIEW_GRID_LINES_BOTH
1765  * Horizontal and vertical grid lines.
1766  */
1767 public enum GtkTreeViewGridLines
1768 {
1769 	NONE,
1770 	HORIZONTAL,
1771 	VERTICAL,
1772 	BOTH
1773 }
1774 alias GtkTreeViewGridLines TreeViewGridLines;
1775 
1776 /**
1777  * An enum for determining where a dropped item goes.
1778  * GTK_ICON_VIEW_NO_DROP
1779  * no drop possible
1780  * GTK_ICON_VIEW_DROP_INTO
1781  * dropped item replaces the item
1782  * GTK_ICON_VIEW_DROP_LEFT
1783  * droppped item is inserted to the left
1784  * GTK_ICON_VIEW_DROP_RIGHT
1785  * dropped item is inserted to the right
1786  * GTK_ICON_VIEW_DROP_ABOVE
1787  * dropped item is inserted above
1788  * GTK_ICON_VIEW_DROP_BELOW
1789  * dropped item is inserted below
1790  */
1791 public enum GtkIconViewDropPosition
1792 {
1793 	NO_DROP,
1794 	DROP_INTO,
1795 	DROP_LEFT,
1796 	DROP_RIGHT,
1797 	DROP_ABOVE,
1798 	DROP_BELOW
1799 }
1800 alias GtkIconViewDropPosition IconViewDropPosition;
1801 
1802 /**
1803  * Tells how a cell is to be rendered.
1804  * GTK_CELL_RENDERER_SELECTED
1805  * The cell is currently selected, and
1806  *  probably has a selection colored background to render to.
1807  * GTK_CELL_RENDERER_PRELIT
1808  * The mouse is hovering over the cell.
1809  * GTK_CELL_RENDERER_INSENSITIVE
1810  * The cell is drawn in an insensitive manner
1811  * GTK_CELL_RENDERER_SORTED
1812  * The cell is in a sorted row
1813  * GTK_CELL_RENDERER_FOCUSED
1814  * The cell is in the focus row.
1815  * GTK_CELL_RENDERER_EXPANDABLE
1816  * The cell is in a row that can be expanded. Since 3.4
1817  * GTK_CELL_RENDERER_EXPANDED
1818  * The cell is in a row that is expanded. Since 3.4
1819  */
1820 public enum GtkCellRendererState
1821 {
1822 	SELECTED = 1 << 0,
1823 	PRELIT = 1 << 1,
1824 	INSENSITIVE = 1 << 2,
1825 	/+* this flag means the cell is inn the sort column/row +/
1826 	SORTED = 1 << 3,
1827 	FOCUSED = 1 << 4,
1828 	EXPANDABLE = 1 << 5,
1829 	EXPANDED = 1 << 6
1830 }
1831 alias GtkCellRendererState CellRendererState;
1832 
1833 /**
1834  * Identifies how the user can interact with a particular cell.
1835  * GTK_CELL_RENDERER_MODE_INERT
1836  * The cell is just for display
1837  *  and cannot be interacted with. Note that this doesn't mean that eg. the
1838  *  row being drawn can't be selected -- just that a particular element of
1839  *  it cannot be individually modified.
1840  * GTK_CELL_RENDERER_MODE_ACTIVATABLE
1841  * The cell can be clicked.
1842  * GTK_CELL_RENDERER_MODE_EDITABLE
1843  * The cell can be edited or otherwise modified.
1844  */
1845 public enum GtkCellRendererMode
1846 {
1847 	MODE_INERT,
1848 	MODE_ACTIVATABLE,
1849 	MODE_EDITABLE
1850 }
1851 alias GtkCellRendererMode CellRendererMode;
1852 
1853 /**
1854  * GTK_CELL_RENDERER_ACCEL_MODE_GTK
1855  * GTK_CELL_RENDERER_ACCEL_MODE_OTHER
1856  */
1857 public enum GtkCellRendererAccelMode
1858 {
1859 	MODE_GTK,
1860 	MODE_OTHER
1861 }
1862 alias GtkCellRendererAccelMode CellRendererAccelMode;
1863 
1864 /**
1865  * Determines how widgets should be packed inside menubars
1866  * and menuitems contained in menubars.
1867  * GTK_PACK_DIRECTION_LTR
1868  * Widgets are packed left-to-right
1869  * GTK_PACK_DIRECTION_RTL
1870  * Widgets are packed right-to-left
1871  * GTK_PACK_DIRECTION_TTB
1872  * Widgets are packed top-to-bottom
1873  * GTK_PACK_DIRECTION_BTT
1874  * Widgets are packed bottom-to-top
1875  */
1876 public enum GtkPackDirection
1877 {
1878 	LTR,
1879 	RTL,
1880 	TTB,
1881 	BTT
1882 }
1883 alias GtkPackDirection PackDirection;
1884 
1885 /**
1886  * GTK_TOOLBAR_SPACE_EMPTY
1887  * GTK_TOOLBAR_SPACE_LINE
1888  */
1889 public enum GtkToolbarSpaceStyle
1890 {
1891 	EMPTY,
1892 	LINE
1893 }
1894 alias GtkToolbarSpaceStyle ToolbarSpaceStyle;
1895 
1896 /**
1897  * Flags used to specify the supported drag targets.
1898  * GTK_TOOL_PALETTE_DRAG_ITEMS
1899  * Support drag of items.
1900  * GTK_TOOL_PALETTE_DRAG_GROUPS
1901  * Support drag of groups.
1902  */
1903 public enum GtkToolPaletteDragTargets
1904 {
1905 	ITEMS = (1 << 0),
1906 	GROUPS = (1 << 1)
1907 }
1908 alias GtkToolPaletteDragTargets ToolPaletteDragTargets;
1909 
1910 /**
1911  * Describes whether a GtkFileChooser is being used to open existing files
1912  * or to save to a possibly new file.
1913  * GTK_FILE_CHOOSER_ACTION_OPEN
1914  * Indicates open mode. The file chooser
1915  *  will only let the user pick an existing file.
1916  * GTK_FILE_CHOOSER_ACTION_SAVE
1917  * Indicates save mode. The file chooser
1918  *  will let the user pick an existing file, or type in a new
1919  *  filename.
1920  * GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER
1921  * Indicates an Open mode for
1922  *  selecting folders. The file chooser will let the user pick an
1923  *  existing folder.
1924  * GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER
1925  * Indicates a mode for creating a
1926  *  new folder. The file chooser will let the user name an existing or
1927  *  new folder.
1928  */
1929 public enum GtkFileChooserAction
1930 {
1931 	OPEN,
1932 	SAVE,
1933 	SELECT_FOLDER,
1934 	CREATE_FOLDER
1935 }
1936 alias GtkFileChooserAction FileChooserAction;
1937 
1938 /**
1939  * Used as a return value of handlers for the
1940  * "confirm-overwrite" signal of a GtkFileChooser. This
1941  * value determines whether the file chooser will present the stock
1942  * confirmation dialog, accept the user's choice of a filename, or
1943  * let the user choose another filename.
1944  * GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM
1945  * The file chooser will present
1946  *  its stock dialog to confirm about overwriting an existing file.
1947  * GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME
1948  * The file chooser will
1949  *  terminate and accept the user's choice of a file name.
1950  * GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN
1951  * The file chooser will
1952  *  continue running, so as to let the user select another file name.
1953  * Since 2.8
1954  */
1955 public enum GtkFileChooserConfirmation
1956 {
1957 	CONFIRM,
1958 	ACCEPT_FILENAME,
1959 	SELECT_AGAIN
1960 }
1961 alias GtkFileChooserConfirmation FileChooserConfirmation;
1962 
1963 /**
1964  * These identify the various errors that can occur while calling
1965  * GtkFileChooser functions.
1966  * GTK_FILE_CHOOSER_ERROR_NONEXISTENT
1967  * Indicates that a file does not exist.
1968  * GTK_FILE_CHOOSER_ERROR_BAD_FILENAME
1969  * Indicates a malformed filename.
1970  * GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS
1971  * Indicates a duplicate path (e.g. when
1972  *  adding a bookmark).
1973  * GTK_FILE_CHOOSER_ERROR_INCOMPLETE_HOSTNAME
1974  * Indicates an incomplete hostname (e.g. "http://foo" without a slash after that).
1975  */
1976 public enum GtkFileChooserError
1977 {
1978 	NONEXISTENT,
1979 	BAD_FILENAME,
1980 	ALREADY_EXISTS,
1981 	INCOMPLETE_HOSTNAME
1982 }
1983 alias GtkFileChooserError FileChooserError;
1984 
1985 /**
1986  * These flags indicate what parts of a GtkFileFilterInfo struct
1987  * are filled or need to be filled.
1988  * GTK_FILE_FILTER_FILENAME
1989  * the filename of the file being tested
1990  * GTK_FILE_FILTER_URI
1991  * the URI for the file being tested
1992  * GTK_FILE_FILTER_DISPLAY_NAME
1993  * the string that will be used to
1994  *  display the file in the file chooser
1995  * GTK_FILE_FILTER_MIME_TYPE
1996  * the mime type of the file
1997  */
1998 public enum GtkFileFilterFlags
1999 {
2000 	FILENAME = 1 << 0,
2001 	URI = 1 << 1,
2002 	DISPLAY_NAME = 1 << 2,
2003 	MIME_TYPE = 1 << 3
2004 }
2005 alias GtkFileFilterFlags FileFilterFlags;
2006 
2007 /**
2008  * These flags serve two purposes. First, the application can call gtk_places_sidebar_set_open_flags()
2009  * using these flags as a bitmask. This tells the sidebar that the application is able to open
2010  * folders selected from the sidebar in various ways, for example, in new tabs or in new windows in
2011  * addition to the normal mode.
2012  * Second, when one of these values gets passed back to the application in the
2013  * "open-location" signal, it means that the application should
2014  * open the selected location in the normal way, in a new tab, or in a new
2015  * window. The sidebar takes care of determining the desired way to open the location,
2016  * based on the modifier keys that the user is pressing at the time the selection is made.
2017  * If the application never calls gtk_places_sidebar_set_open_flags(), then the sidebar will only
2018  * use GTK_PLACES_OPEN_NORMAL in the "open-location" signal. This is the
2019  * default mode of operation.
2020  * GTK_PLACES_OPEN_NORMAL
2021  * This is the default mode that GtkPlacesSidebar uses if no other flags
2022  *  are specified. It indicates that the calling application should open the selected location
2023  *  in the normal way, for example, in the folder view beside the sidebar.
2024  * GTK_PLACES_OPEN_NEW_TAB
2025  * When passed to gtk_places_sidebar_set_open_flags(), this indicates
2026  *  that the application can open folders selected from the sidebar in new tabs. This value
2027  *  will be passed to the "open-location" signal when the user selects
2028  *  that a location be opened in a new tab instead of in the standard fashion.
2029  * GTK_PLACES_OPEN_NEW_WINDOW
2030  * Similar to GTK_PLACES_OPEN_NEW_TAB, but indicates that the application
2031  *  can open folders in new windows.
2032  */
2033 public enum GtkPlacesOpenFlags
2034 {
2035 	NORMAL = 1 << 0,
2036 	NEW_TAB = 1 << 1,
2037 	NEW_WINDOW = 1 << 2
2038 }
2039 alias GtkPlacesOpenFlags PlacesOpenFlags;
2040 
2041 /**
2042  * Defines the policy to be used in a scrollable widget when updating
2043  * the scrolled window adjustments in a given orientation.
2044  * GTK_SCROLL_MINIMUM
2045  * Scrollable adjustments are based on the minimum size
2046  * GTK_SCROLL_NATURAL
2047  * Scrollable adjustments are based on the natural size
2048  */
2049 public enum GtkScrollablePolicy
2050 {
2051 	MINIMUM = 0,
2052 	NATURAL
2053 }
2054 alias GtkScrollablePolicy ScrollablePolicy;
2055 
2056 /**
2057  * The status gives a rough indication of the completion of a running
2058  * print operation.
2059  * GTK_PRINT_STATUS_INITIAL
2060  * The printing has not started yet; this
2061  *  status is set initially, and while the print dialog is shown.
2062  * GTK_PRINT_STATUS_PREPARING
2063  * This status is set while the begin-print
2064  *  signal is emitted and during pagination.
2065  * GTK_PRINT_STATUS_GENERATING_DATA
2066  * This status is set while the
2067  *  pages are being rendered.
2068  * GTK_PRINT_STATUS_SENDING_DATA
2069  * The print job is being sent off to the
2070  *  printer.
2071  * GTK_PRINT_STATUS_PENDING
2072  * The print job has been sent to the printer,
2073  *  but is not printed for some reason, e.g. the printer may be stopped.
2074  * GTK_PRINT_STATUS_PENDING_ISSUE
2075  * Some problem has occurred during
2076  *  printing, e.g. a paper jam.
2077  * GTK_PRINT_STATUS_PRINTING
2078  * The printer is processing the print job.
2079  * GTK_PRINT_STATUS_FINISHED
2080  * The printing has been completed successfully.
2081  * GTK_PRINT_STATUS_FINISHED_ABORTED
2082  * The printing has been aborted.
2083  */
2084 public enum GtkPrintStatus
2085 {
2086 	INITIAL,
2087 	PREPARING,
2088 	GENERATING_DATA,
2089 	SENDING_DATA,
2090 	PENDING,
2091 	PENDING_ISSUE,
2092 	PRINTING,
2093 	FINISHED,
2094 	FINISHED_ABORTED
2095 }
2096 alias GtkPrintStatus PrintStatus;
2097 
2098 /**
2099  * The action parameter to gtk_print_operation_run()
2100  * determines what action the print operation should perform.
2101  * GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG
2102  * Show the print dialog.
2103  * GTK_PRINT_OPERATION_ACTION_PRINT
2104  * Start to print without showing
2105  *  the print dialog, based on the current print settings.
2106  * GTK_PRINT_OPERATION_ACTION_PREVIEW
2107  * Show the print preview.
2108  * GTK_PRINT_OPERATION_ACTION_EXPORT
2109  * Export to a file. This requires
2110  *  the export-filename property to be set.
2111  */
2112 public enum GtkPrintOperationAction
2113 {
2114 	PRINT_DIALOG,
2115 	PRINT,
2116 	PREVIEW,
2117 	EXPORT
2118 }
2119 alias GtkPrintOperationAction PrintOperationAction;
2120 
2121 /**
2122  * A value of this type is returned by gtk_print_operation_run().
2123  * GTK_PRINT_OPERATION_RESULT_ERROR
2124  * An error has occured.
2125  * GTK_PRINT_OPERATION_RESULT_APPLY
2126  * The print settings should be stored.
2127  * GTK_PRINT_OPERATION_RESULT_CANCEL
2128  * The print operation has been canceled,
2129  *  the print settings should not be stored.
2130  * GTK_PRINT_OPERATION_RESULT_IN_PROGRESS
2131  * The print operation is not complete
2132  *  yet. This value will only be returned when running asynchronously.
2133  */
2134 public enum GtkPrintOperationResult
2135 {
2136 	ERROR,
2137 	APPLY,
2138 	CANCEL,
2139 	IN_PROGRESS
2140 }
2141 alias GtkPrintOperationResult PrintOperationResult;
2142 
2143 /**
2144  * Error codes that identify various errors that can occur while
2145  * using the GTK+ printing support.
2146  * GTK_PRINT_ERROR_GENERAL
2147  * An unspecified error occurred.
2148  * GTK_PRINT_ERROR_INTERNAL_ERROR
2149  * An internal error occurred.
2150  * GTK_PRINT_ERROR_NOMEM
2151  * A memory allocation failed.
2152  * GTK_PRINT_ERROR_INVALID_FILE
2153  * An error occurred while loading a page setup
2154  *  or paper size from a key file.
2155  */
2156 public enum GtkPrintError
2157 {
2158 	GENERAL,
2159 	INTERNAL_ERROR,
2160 	NOMEM,
2161 	INVALID_FILE
2162 }
2163 alias GtkPrintError PrintError;
2164 
2165 /**
2166  * GTK_PAGE_ORIENTATION_PORTRAIT
2167  * GTK_PAGE_ORIENTATION_LANDSCAPE
2168  * GTK_PAGE_ORIENTATION_REVERSE_PORTRAIT
2169  * GTK_PAGE_ORIENTATION_REVERSE_LANDSCAPE
2170  */
2171 public enum GtkPageOrientation
2172 {
2173 	PORTRAIT,
2174 	LANDSCAPE,
2175 	REVERSE_PORTRAIT,
2176 	REVERSE_LANDSCAPE
2177 }
2178 alias GtkPageOrientation PageOrientation;
2179 
2180 /**
2181  * GTK_PRINT_DUPLEX_SIMPLEX
2182  * GTK_PRINT_DUPLEX_HORIZONTAL
2183  * GTK_PRINT_DUPLEX_VERTICAL
2184  */
2185 public enum GtkPrintDuplex
2186 {
2187 	SIMPLEX,
2188 	HORIZONTAL,
2189 	VERTICAL
2190 }
2191 alias GtkPrintDuplex PrintDuplex;
2192 
2193 /**
2194  * GTK_PRINT_QUALITY_LOW
2195  * GTK_PRINT_QUALITY_NORMAL
2196  * GTK_PRINT_QUALITY_HIGH
2197  * GTK_PRINT_QUALITY_DRAFT
2198  */
2199 public enum GtkPrintQuality
2200 {
2201 	LOW,
2202 	NORMAL,
2203 	HIGH,
2204 	DRAFT
2205 }
2206 alias GtkPrintQuality PrintQuality;
2207 
2208 /**
2209  * Used to determine the layout of pages on a sheet when printing
2210  * multiple pages per sheet.
2211  * GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_TOP_TO_BOTTOM
2212  * GTK_NUMBER_UP_LAYOUT_LEFT_TO_RIGHT_BOTTOM_TO_TOP
2213  * GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_TOP_TO_BOTTOM
2214  * GTK_NUMBER_UP_LAYOUT_RIGHT_TO_LEFT_BOTTOM_TO_TOP
2215  * GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_LEFT_TO_RIGHT
2216  * GTK_NUMBER_UP_LAYOUT_TOP_TO_BOTTOM_RIGHT_TO_LEFT
2217  * GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_LEFT_TO_RIGHT
2218  * GTK_NUMBER_UP_LAYOUT_BOTTOM_TO_TOP_RIGHT_TO_LEFT
2219  */
2220 public enum GtkNumberUpLayout
2221 {
2222 	LEFT_TO_RIGHT_TOP_TO_BOTTOM, /+*< nick= lrtb >+/
2223 	LEFT_TO_RIGHT_BOTTOM_TO_TOP, /+*< nick= lrbt >+/
2224 	RIGHT_TO_LEFT_TOP_TO_BOTTOM, /+*< nick= rltb >+/
2225 	RIGHT_TO_LEFT_BOTTOM_TO_TOP, /+*< nick= rlbt >+/
2226 	TOP_TO_BOTTOM_LEFT_TO_RIGHT, /+*< nick= tblr >+/
2227 	TOP_TO_BOTTOM_RIGHT_TO_LEFT, /+*< nick= tbrl >+/
2228 	BOTTOM_TO_TOP_LEFT_TO_RIGHT, /+*< nick= btlr >+/
2229 	BOTTOM_TO_TOP_RIGHT_TO_LEFT /+*< nick= btrl >+/
2230 }
2231 alias GtkNumberUpLayout NumberUpLayout;
2232 
2233 /**
2234  * GTK_PRINT_PAGES_ALL
2235  * GTK_PRINT_PAGES_CURRENT
2236  * GTK_PRINT_PAGES_RANGES
2237  * GTK_PRINT_PAGES_SELECTION
2238  */
2239 public enum GtkPrintPages
2240 {
2241 	ALL,
2242 	CURRENT,
2243 	RANGES,
2244 	SELECTION
2245 }
2246 alias GtkPrintPages PrintPages;
2247 
2248 /**
2249  * GTK_PAGE_SET_ALL
2250  * GTK_PAGE_SET_EVEN
2251  * GTK_PAGE_SET_ODD
2252  */
2253 public enum GtkPageSet
2254 {
2255 	ALL,
2256 	EVEN,
2257 	ODD
2258 }
2259 alias GtkPageSet PageSet;
2260 
2261 /**
2262  * GTK_UNIT_NONE
2263  * GTK_UNIT_POINTS
2264  * GTK_UNIT_INCH
2265  * GTK_UNIT_MM
2266  */
2267 public enum GtkUnit
2268 {
2269 	NONE,
2270 	POINTS,
2271 	INCH,
2272 	MM
2273 }
2274 alias GtkUnit Unit;
2275 
2276 /**
2277  * An enum for specifying which features the print dialog should offer.
2278  * If neither GTK_PRINT_CAPABILITY_GENERATE_PDF nor
2279  * GTK_PRINT_CAPABILITY_GENERATE_PS is specified, GTK+ assumes that all
2280  * formats are supported.
2281  * GTK_PRINT_CAPABILITY_PAGE_SET
2282  * Print dialog will offer printing even/odd pages.
2283  * GTK_PRINT_CAPABILITY_COPIES
2284  * Print dialog will allow to print multiple copies.
2285  * GTK_PRINT_CAPABILITY_COLLATE
2286  * Print dialog will allow to collate multiple copies.
2287  * GTK_PRINT_CAPABILITY_REVERSE
2288  * Print dialog will allow to print pages in reverse order.
2289  * GTK_PRINT_CAPABILITY_SCALE
2290  * Print dialog will allow to scale the output.
2291  * GTK_PRINT_CAPABILITY_GENERATE_PDF
2292  * The program will send the document to
2293  *  the printer in PDF format
2294  * GTK_PRINT_CAPABILITY_GENERATE_PS
2295  * The program will send the document to
2296  *  the printer in Postscript format
2297  * GTK_PRINT_CAPABILITY_PREVIEW
2298  * Print dialog will offer a preview
2299  * GTK_PRINT_CAPABILITY_NUMBER_UP
2300  * Print dialog will offer printing multiple
2301  *  pages per sheet. Since 2.12
2302  * GTK_PRINT_CAPABILITY_NUMBER_UP_LAYOUT
2303  * Print dialog will allow to rearrange
2304  *  pages when printing multiple pages per sheet. Since 2.14
2305  */
2306 public enum GtkPrintCapabilities
2307 {
2308 	CAPABILITY_PAGE_SET = 1 << 0,
2309 	CAPABILITY_COPIES = 1 << 1,
2310 	CAPABILITY_COLLATE = 1 << 2,
2311 	CAPABILITY_REVERSE = 1 << 3,
2312 	CAPABILITY_SCALE = 1 << 4,
2313 	CAPABILITY_GENERATE_PDF = 1 << 5,
2314 	CAPABILITY_GENERATE_PS = 1 << 6,
2315 	CAPABILITY_PREVIEW = 1 << 7,
2316 	CAPABILITY_NUMBER_UP = 1 << 8,
2317 	CAPABILITY_NUMBER_UP_LAYOUT = 1 << 9
2318 }
2319 alias GtkPrintCapabilities PrintCapabilities;
2320 
2321 /**
2322  * These options can be used to influence the display and behaviour of a GtkCalendar.
2323  * GTK_CALENDAR_SHOW_HEADING
2324  * Specifies that the month and year should be displayed.
2325  * GTK_CALENDAR_SHOW_DAY_NAMES
2326  * Specifies that three letter day descriptions should be present.
2327  * GTK_CALENDAR_NO_MONTH_CHANGE
2328  * Prevents the user from switching months with the calendar.
2329  * GTK_CALENDAR_SHOW_WEEK_NUMBERS
2330  * Displays each week numbers of the current year, down the
2331  * left side of the calendar.
2332  * GTK_CALENDAR_SHOW_DETAILS
2333  * Just show an indicator, not the full details
2334  * text when details are provided. See gtk_calendar_set_detail_func().
2335  */
2336 public enum GtkCalendarDisplayOptions
2337 {
2338 	SHOW_HEADING = 1 << 0,
2339 	SHOW_DAY_NAMES = 1 << 1,
2340 	NO_MONTH_CHANGE = 1 << 2,
2341 	SHOW_WEEK_NUMBERS = 1 << 3,
2342 	SHOW_DETAILS = 1 << 5
2343 }
2344 alias GtkCalendarDisplayOptions CalendarDisplayOptions;
2345 
2346 /**
2347  * The mode of the size group determines the directions in which the size
2348  * group affects the requested sizes of its component widgets.
2349  * GTK_SIZE_GROUP_NONE
2350  * group has no effect
2351  * GTK_SIZE_GROUP_HORIZONTAL
2352  * group affects horizontal requisition
2353  * GTK_SIZE_GROUP_VERTICAL
2354  * group affects vertical requisition
2355  * GTK_SIZE_GROUP_BOTH
2356  * group affects both horizontal and vertical requisition
2357  */
2358 public enum GtkSizeGroupMode
2359 {
2360 	NONE,
2361 	HORIZONTAL,
2362 	VERTICAL,
2363 	BOTH
2364 }
2365 alias GtkSizeGroupMode SizeGroupMode;
2366 
2367 /**
2368  * GTK_WIDGET_HELP_TOOLTIP
2369  * GTK_WIDGET_HELP_WHATS_THIS
2370  */
2371 public enum GtkWidgetHelpType
2372 {
2373 	TOOLTIP,
2374 	WHATS_THIS
2375 }
2376 alias GtkWidgetHelpType WidgetHelpType;
2377 
2378 /**
2379  * GTK_TEXT_DIR_NONE
2380  * GTK_TEXT_DIR_LTR
2381  * GTK_TEXT_DIR_RTL
2382  */
2383 public enum GtkTextDirection
2384 {
2385 	NONE,
2386 	LTR,
2387 	RTL
2388 }
2389 alias GtkTextDirection TextDirection;
2390 
2391 /**
2392  * Specifies a preference for height-for-width or
2393  * width-for-height geometry management.
2394  * GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH
2395  * Prefer height-for-width geometry management
2396  * GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT
2397  * Prefer width-for-height geometry management
2398  * GTK_SIZE_REQUEST_CONSTANT_SIZE
2399  * Don't trade height-for-width or width-for-height
2400  */
2401 public enum GtkSizeRequestMode
2402 {
2403 	HEIGHT_FOR_WIDTH = 0,
2404 	WIDTH_FOR_HEIGHT,
2405 	CONSTANT_SIZE
2406 }
2407 alias GtkSizeRequestMode SizeRequestMode;
2408 
2409 /**
2410  * Controls how a widget deals with extra space in a single (x or y)
2411  * dimension.
2412  * Alignment only matters if the widget receives a "too large" allocation,
2413  * for example if you packed the widget with the "expand"
2414  * flag inside a GtkBox, then the widget might get extra space. If
2415  * you have for example a 16x16 icon inside a 32x32 space, the icon
2416  * could be scaled and stretched, it could be centered, or it could be
2417  * positioned to one side of the space.
2418  * Note that in horizontal context GTK_ALIGN_START and GTK_ALIGN_END
2419  * are interpreted relative to text direction.
2420  * GTK_ALIGN_BASELINE support for it is optional for containers and widgets, and
2421  * it is only supported for vertical alignment. When its not supported by
2422  * a child or a container it is treated as GTK_ALIGN_FILL.
2423  * GTK_ALIGN_FILL
2424  * stretch to fill all space if possible, center if
2425  *  no meaningful way to stretch
2426  * GTK_ALIGN_START
2427  * snap to left or top side, leaving space on right
2428  *  or bottom
2429  * GTK_ALIGN_END
2430  * snap to right or bottom side, leaving space on left
2431  *  or top
2432  * GTK_ALIGN_CENTER
2433  * center natural width of widget inside the
2434  *  allocation
2435  * GTK_ALIGN_BASELINE
2436  * align the widget according to the baseline. Since 3.10.
2437  */
2438 public enum GtkAlign
2439 {
2440 	FILL,
2441 	START,
2442 	END,
2443 	CENTER,
2444 	BASELINE
2445 }
2446 alias GtkAlign Align;
2447 
2448 /**
2449  * An enumeration representing directional movements within a menu.
2450  * GTK_MENU_DIR_PARENT
2451  * To the parent menu shell
2452  * GTK_MENU_DIR_CHILD
2453  * To the submenu, if any, associated with the item
2454  * GTK_MENU_DIR_NEXT
2455  * To the next menu item
2456  * GTK_MENU_DIR_PREV
2457  * To the previous menu item
2458  * Property Details
2459  * The "take-focus" property
2460  *  "take-focus" gboolean : Read / Write
2461  * A boolean that determines whether the menu and its submenus grab the
2462  * keyboard focus. See gtk_menu_shell_set_take_focus() and
2463  * gtk_menu_shell_get_take_focus().
2464  * Default value: TRUE
2465  * Since 2.8
2466  * Signal Details
2467  * The "activate-current" signal
2468  * void user_function (GtkMenuShell *menushell,
2469  *  gboolean force_hide,
2470  *  gpointer user_data) : Action
2471  * An action signal that activates the current menu item within
2472  * the menu shell.
2473  * menushell :
2474  * the object which received the signal
2475  * force_hide :
2476  * if TRUE, hide the menu after activating the menu item
2477  * user_data :
2478  * user data set when the signal handler was connected.
2479  */
2480 public enum GtkMenuDirectionType
2481 {
2482 	PARENT,
2483 	CHILD,
2484 	NEXT,
2485 	PREV
2486 }
2487 alias GtkMenuDirectionType MenuDirectionType;
2488 
2489 /**
2490  * Determines how GTK+ handles the sensitivity of stepper arrows
2491  * at the end of range widgets.
2492  * GTK_SENSITIVITY_AUTO
2493  * The arrow is made insensitive if the
2494  *  thumb is at the end
2495  * GTK_SENSITIVITY_ON
2496  * The arrow is always sensitive
2497  * GTK_SENSITIVITY_OFF
2498  * The arrow is always insensitive
2499  */
2500 public enum GtkSensitivityType
2501 {
2502 	AUTO,
2503 	ON,
2504 	OFF
2505 }
2506 alias GtkSensitivityType SensitivityType;
2507 
2508 /**
2509  * Error codes for GtkRecentManager operations
2510  * GTK_RECENT_MANAGER_ERROR_NOT_FOUND
2511  * the URI specified does not exists in
2512  *  the recently used resources list.
2513  * GTK_RECENT_MANAGER_ERROR_INVALID_URI
2514  * the URI specified is not valid.
2515  * GTK_RECENT_MANAGER_ERROR_INVALID_ENCODING
2516  * the supplied string is not
2517  *  UTF-8 encoded.
2518  * GTK_RECENT_MANAGER_ERROR_NOT_REGISTERED
2519  * no application has registered
2520  *  the specified item.
2521  * GTK_RECENT_MANAGER_ERROR_READ
2522  * failure while reading the recently used
2523  *  resources file.
2524  * GTK_RECENT_MANAGER_ERROR_WRITE
2525  * failure while writing the recently used
2526  *  resources file.
2527  * GTK_RECENT_MANAGER_ERROR_UNKNOWN
2528  * unspecified error.
2529  * Since 2.10
2530  */
2531 public enum GtkRecentManagerError
2532 {
2533 	NOT_FOUND,
2534 	INVALID_URI,
2535 	INVALID_ENCODING,
2536 	NOT_REGISTERED,
2537 	READ,
2538 	WRITE,
2539 	UNKNOWN
2540 }
2541 alias GtkRecentManagerError RecentManagerError;
2542 
2543 /**
2544  * These identify the various errors that can occur while calling
2545  * GtkRecentChooser functions.
2546  * GTK_RECENT_CHOOSER_ERROR_NOT_FOUND
2547  * Indicates that a file does not exist
2548  * GTK_RECENT_CHOOSER_ERROR_INVALID_URI
2549  * Indicates a malformed URI
2550  * Since 2.10
2551  */
2552 public enum GtkRecentChooserError
2553 {
2554 	NOT_FOUND,
2555 	INVALID_URI
2556 }
2557 alias GtkRecentChooserError RecentChooserError;
2558 
2559 /**
2560  * Used to specify the sorting method to be applyed to the recently
2561  * used resource list.
2562  * GTK_RECENT_SORT_NONE
2563  * Do not sort the returned list of recently used
2564  *  resources.
2565  * GTK_RECENT_SORT_MRU
2566  * Sort the returned list with the most recently used
2567  *  items first.
2568  * GTK_RECENT_SORT_LRU
2569  * Sort the returned list with the least recently used
2570  *  items first.
2571  * GTK_RECENT_SORT_CUSTOM
2572  * Sort the returned list using a custom sorting
2573  *  function passed using gtk_recent_chooser_set_sort_func().
2574  * Since 2.10
2575  */
2576 public enum GtkRecentSortType
2577 {
2578 	NONE = 0,
2579 	MRU,
2580 	LRU,
2581 	CUSTOM
2582 }
2583 alias GtkRecentSortType RecentSortType;
2584 
2585 /**
2586  * These flags indicate what parts of a GtkRecentFilterInfo struct
2587  * are filled or need to be filled.
2588  * GTK_RECENT_FILTER_URI
2589  * the URI of the file being tested
2590  * GTK_RECENT_FILTER_DISPLAY_NAME
2591  * the string that will be used to
2592  *  display the file in the recent chooser
2593  * GTK_RECENT_FILTER_MIME_TYPE
2594  * the mime type of the file
2595  * GTK_RECENT_FILTER_APPLICATION
2596  * the list of applications that have
2597  *  registered the file
2598  * GTK_RECENT_FILTER_GROUP
2599  * the groups to which the file belongs to
2600  * GTK_RECENT_FILTER_AGE
2601  * the number of days elapsed since the file
2602  *  has been registered
2603  */
2604 public enum GtkRecentFilterFlags
2605 {
2606 	URI = 1 << 0,
2607 	DISPLAY_NAME = 1 << 1,
2608 	MIME_TYPE = 1 << 2,
2609 	APPLICATION = 1 << 3,
2610 	GROUP = 1 << 4,
2611 	AGE = 1 << 5
2612 }
2613 alias GtkRecentFilterFlags RecentFilterFlags;
2614 
2615 /**
2616  * GTK_RC_FG
2617  * GTK_RC_BG
2618  * GTK_RC_TEXT
2619  * GTK_RC_BASE
2620  */
2621 public enum GtkRcFlags
2622 {
2623 	FG = 1 << 0,
2624 	BG = 1 << 1,
2625 	TEXT = 1 << 2,
2626 	BASE = 1 << 3
2627 }
2628 alias GtkRcFlags RcFlags;
2629 
2630 /**
2631  * Warning
2632  * GtkRcTokenType has been deprecated since version 3.0 and should not be used in newly-written code. Use GtkCssProvider instead.
2633  * The GtkRcTokenType enumeration represents the tokens
2634  * in the RC file. It is exposed so that theme engines
2635  * can reuse these tokens when parsing the theme-engine
2636  * specific portions of a RC file.
2637  * GTK_RC_TOKEN_INVALID
2638  * GTK_RC_TOKEN_INCLUDE
2639  * GTK_RC_TOKEN_NORMAL
2640  * GTK_RC_TOKEN_ACTIVE
2641  * GTK_RC_TOKEN_PRELIGHT
2642  * GTK_RC_TOKEN_SELECTED
2643  * GTK_RC_TOKEN_INSENSITIVE
2644  * GTK_RC_TOKEN_FG
2645  * GTK_RC_TOKEN_BG
2646  * GTK_RC_TOKEN_TEXT
2647  * GTK_RC_TOKEN_BASE
2648  * GTK_RC_TOKEN_XTHICKNESS
2649  * GTK_RC_TOKEN_YTHICKNESS
2650  * GTK_RC_TOKEN_FONT
2651  * GTK_RC_TOKEN_FONTSET
2652  * GTK_RC_TOKEN_FONT_NAME
2653  * GTK_RC_TOKEN_BG_PIXMAP
2654  * GTK_RC_TOKEN_PIXMAP_PATH
2655  * GTK_RC_TOKEN_STYLE
2656  * GTK_RC_TOKEN_BINDING
2657  * GTK_RC_TOKEN_BIND
2658  * GTK_RC_TOKEN_WIDGET
2659  * GTK_RC_TOKEN_WIDGET_CLASS
2660  * GTK_RC_TOKEN_CLASS
2661  * GTK_RC_TOKEN_LOWEST
2662  * GTK_RC_TOKEN_GTK
2663  * GTK_RC_TOKEN_APPLICATION
2664  * GTK_RC_TOKEN_THEME
2665  * GTK_RC_TOKEN_RC
2666  * GTK_RC_TOKEN_HIGHEST
2667  * GTK_RC_TOKEN_ENGINE
2668  * GTK_RC_TOKEN_MODULE_PATH
2669  * GTK_RC_TOKEN_IM_MODULE_PATH
2670  * GTK_RC_TOKEN_IM_MODULE_FILE
2671  * GTK_RC_TOKEN_STOCK
2672  * GTK_RC_TOKEN_LTR
2673  * GTK_RC_TOKEN_RTL
2674  * GTK_RC_TOKEN_COLOR
2675  * GTK_RC_TOKEN_UNBIND
2676  * GTK_RC_TOKEN_LAST
2677  */
2678 public enum GtkRcTokenType
2679 {
2680 	INVALID = cast(int)TokenType.LAST,
2681 	INCLUDE,
2682 	NORMAL,
2683 	ACTIVE,
2684 	PRELIGHT,
2685 	SELECTED,
2686 	INSENSITIVE,
2687 	FG,
2688 	BG,
2689 	TEXT,
2690 	BASE,
2691 	XTHICKNESS,
2692 	YTHICKNESS,
2693 	FONT,
2694 	FONTSET,
2695 	FONT_NAME,
2696 	BG_PIXMAP,
2697 	PIXMAP_PATH,
2698 	STYLE,
2699 	BINDING,
2700 	BIND,
2701 	WIDGET,
2702 	WIDGET_CLASS,
2703 	CLASS,
2704 	LOWEST,
2705 	GTK,
2706 	APPLICATION,
2707 	THEME,
2708 	RC,
2709 	HIGHEST,
2710 	ENGINE,
2711 	MODULE_PATH,
2712 	IM_MODULE_PATH,
2713 	IM_MODULE_FILE,
2714 	STOCK,
2715 	LTR,
2716 	RTL,
2717 	COLOR,
2718 	UNBIND,
2719 	LAST
2720 }
2721 alias GtkRcTokenType RcTokenType;
2722 
2723 /**
2724  * Warning
2725  * GtkUIManagerItemType is deprecated and should not be used in newly-written code. 3.10
2726  * These enumeration values are used by gtk_ui_manager_add_ui() to determine
2727  * what UI element to create.
2728  * GTK_UI_MANAGER_AUTO
2729  * Pick the type of the UI element according to context.
2730  * GTK_UI_MANAGER_MENUBAR
2731  * Create a menubar.
2732  * GTK_UI_MANAGER_MENU
2733  * Create a menu.
2734  * GTK_UI_MANAGER_TOOLBAR
2735  * Create a toolbar.
2736  * GTK_UI_MANAGER_PLACEHOLDER
2737  * Insert a placeholder.
2738  * GTK_UI_MANAGER_POPUP
2739  * Create a popup menu.
2740  * GTK_UI_MANAGER_MENUITEM
2741  * Create a menuitem.
2742  * GTK_UI_MANAGER_TOOLITEM
2743  * Create a toolitem.
2744  * GTK_UI_MANAGER_SEPARATOR
2745  * Create a separator.
2746  * GTK_UI_MANAGER_ACCELERATOR
2747  * Install an accelerator.
2748  * GTK_UI_MANAGER_POPUP_WITH_ACCELS
2749  * Same as GTK_UI_MANAGER_POPUP, but the
2750  *  actions' accelerators are shown.
2751  */
2752 public enum GtkUIManagerItemType
2753 {
2754 	AUTO = 0,
2755 	MENUBAR = 1 << 0,
2756 	MENU = 1 << 1,
2757 	TOOLBAR = 1 << 2,
2758 	PLACEHOLDER = 1 << 3,
2759 	POPUP = 1 << 4,
2760 	MENUITEM = 1 << 5,
2761 	TOOLITEM = 1 << 6,
2762 	SEPARATOR = 1 << 7,
2763 	ACCELERATOR = 1 << 8,
2764 	POPUP_WITH_ACCELS = 1 << 9
2765 }
2766 alias GtkUIManagerItemType UIManagerItemType;
2767 
2768 
2769 struct GtkWidgetClass
2770 {
2771 	GObjectClass parent_class;
2772 	
2773 	guint activate_signal;
2774 	
2775 	/* seldomly overidden */
2776 	extern(C) void  function(GtkWidget *widget,uint nPspecs,GParamSpec **pspecs) dispatchChildPropertiesChanged;
2777 	
2778 	/* basics */
2779 	extern(C) void function(GtkWidget* widget) destroy;
2780 	extern(C) void function(GtkWidget* widget) show;
2781 	extern(C) void function(GtkWidget* widget) show_all;
2782 	extern(C) void function(GtkWidget* widget) hide;
2783 	extern(C) void function(GtkWidget* widget) map;
2784 	extern(C) void function(GtkWidget* widget) unmap;
2785 	extern(C) void function(GtkWidget* widget) realize;
2786 	extern(C) void function(GtkWidget* widget) unrealize;
2787 	extern(C) void function(GtkWidget* widget, GtkAllocation* allocation) size_allocate;
2788 	extern(C) void function(GtkWidget* widget, GtkStateType previous_state) state_changed;
2789 	extern(C) void function(GtkWidget* widget, GtkStateFlags previous_state_flags) state_flags_changed;
2790 	extern(C) void function(GtkWidget* widget, GtkWidget* previous_parent) parent_set;
2791 	extern(C) void function(GtkWidget* widget, GtkWidget* previous_toplevel) hierarchy_changed;
2792 	extern(C) void function(GtkWidget* widget, GtkStyle* previous_style) style_set;
2793 	extern(C) void function(GtkWidget* widget, GtkTextDirection previous_direction) direction_changed;
2794 	extern(C) void function(GtkWidget* widget, gboolean was_grabbed) grab_notify;
2795 	extern(C) void function(GtkWidget* widget, GParamSpec* pspec) child_notify;
2796 	extern(C) gboolean function(GtkWidget* widget, cairo_t* cr) draw;
2797 	
2798 	/* size requests */
2799 	extern(C) GtkSizeRequestMode function(GtkWidget* widget) get_request_mode;
2800 	
2801 	extern(C) void function(GtkWidget* widget, gint* minimum_height, gint* natural_height) get_preferred_height;
2802 	extern(C) void function(GtkWidget* widget, gint height, gint* minimum_width, gint            *natural_width) get_preferred_width_for_height;
2803 	extern(C) void function(GtkWidget* widget, gint* minimum_width, gint* natural_width) get_preferred_width;
2804 	extern(C) void function(GtkWidget* widget, gint width, gint* minimum_height,gint            *natural_height) get_preferred_height_for_width;
2805 	
2806 	/* Mnemonics */
2807 	extern(C) gboolean function(GtkWidget* widget, gboolean group_cycling) mnemonic_activate;
2808 	
2809 	/* explicit focus */
2810 	extern(C) void function(GtkWidget* widget) grab_focus;
2811 	extern(C) gboolean function(GtkWidget* widget, GtkDirectionType direction) focus;
2812 	
2813 	/* keyboard navigation */
2814 	extern(C) void function(GtkWidget* widget, GtkDirectionType direction) move_focus;
2815 	extern(C) gboolean function(GtkWidget* widget, GtkDirectionType direction) keynav_failed;
2816 	
2817 	/* events */
2818 	extern(C) gboolean function(GtkWidget* widget, GdkEvent* event) event;
2819 	extern(C) gboolean function(GtkWidget* widget, GdkEventButton* event) button_press_event;
2820 	extern(C) gboolean function(GtkWidget* widget, GdkEventButton* event) button_release_event;
2821 	extern(C) gboolean function(GtkWidget* widget, GdkEventScroll* event) scroll_event;
2822 	extern(C) gboolean function(GtkWidget* widget, GdkEventMotion* event) motion_notify_event;
2823 	extern(C) gboolean function(GtkWidget* widget, GdkEventAny* event) delete_event;
2824 	extern(C) gboolean function(GtkWidget* widget, GdkEventAny* event) destroy_event;
2825 	extern(C) gboolean function(GtkWidget* widget, GdkEventKey* event) key_press_event;
2826 	extern(C) gboolean function(GtkWidget* widget, GdkEventKey* event) key_release_event;
2827 	extern(C) gboolean function(GtkWidget* widget, GdkEventCrossing* event) enter_notify_event;
2828 	extern(C) gboolean function(GtkWidget* widget, GdkEventCrossing* sevent) leave_notify_event;
2829 	extern(C) gboolean function(GtkWidget* widget, GdkEventConfigure* event) configure_event;
2830 	extern(C) gboolean function(GtkWidget* widget, GdkEventFocus* event) focus_in_event;
2831 	extern(C) gboolean function(GtkWidget* widget, GdkEventFocus* event) focus_out_event;
2832 	extern(C) gboolean function(GtkWidget* widget, GdkEventAny* event) map_event;
2833 	extern(C) gboolean function(GtkWidget* widget, GdkEventAny* event) unmap_event;
2834 	extern(C) gboolean function(GtkWidget* widget, GdkEventProperty* event) property_notify_event;
2835 	extern(C) gboolean function(GtkWidget* widget, GdkEventSelection* event) selection_clear_event;
2836 	extern(C) gboolean function(GtkWidget* widget, GdkEventSelection* event) selection_request_event;
2837 	extern(C) gboolean function(GtkWidget* widget, GdkEventSelection* event) selection_notify_event;
2838 	extern(C) gboolean function(GtkWidget* widget, GdkEventProximity* event) proximity_in_event;
2839 	extern(C) gboolean function(GtkWidget* widget, GdkEventProximity* event) proximity_out_event;
2840 	extern(C) gboolean function(GtkWidget* widget, GdkEventVisibility* event) visibility_notify_event;
2841 	extern(C) gboolean function(GtkWidget* widget, GdkEventWindowState* event) window_state_event;
2842 	extern(C) gboolean function(GtkWidget* widget, GdkEventExpose* event) damage_event;
2843 	extern(C) gboolean function(GtkWidget* widget, GdkEventGrabBroken* event) grab_broken_event;
2844 	
2845 	/* selection */
2846 	extern(C) void function(GtkWidget* widget, GtkSelectionData* selection_data, guint info, guint time_) selection_get;
2847 	extern(C) void function(GtkWidget* widget, GtkSelectionData* selection_data, guint time_) selection_received;
2848 	
2849 	/* Source side drag signals */
2850 	extern(C) void function(GtkWidget* widget, GdkDragContext* context) drag_begin;
2851 	extern(C) void function(GtkWidget* widget, GdkDragContext* context) drag_end;
2852 	extern(C) void function(GtkWidget* widget, GdkDragContext* context, GtkSelectionData* selection_data, guint info, guint time_) drag_data_get;
2853 	extern(C) void function(GtkWidget* widget, GdkDragContext* context) drag_data_delete;
2854 	
2855 	/* Target side drag signals */
2856 	extern(C) void function(GtkWidget* widget, GdkDragContext* context, guint time_) drag_leave;
2857 	extern(C) gboolean function(GtkWidget* widget, GdkDragContext* context, gint x, gint y, guint time_) drag_motion;
2858 	extern(C) gboolean function(GtkWidget* widget, GdkDragContext* context, gint x, gint y, guint time_) drag_drop;
2859 	extern(C) void function(GtkWidget* widget, GdkDragContext* context, gint x, gint y, GtkSelectionData* selection_data, guint info, guint time_) drag_data_received;
2860 	extern(C) gboolean function(GtkWidget* widget, GdkDragContext* context, GtkDragResult result) drag_failed;
2861 	
2862 	/* Signals used only for keybindings */
2863 	extern(C) gboolean function(GtkWidget* widget) popup_menu;
2864 	
2865 	/* If a widget has multiple tooltips/whatsthis, it should show the
2866 	 * one for the current focus location, or if that doesn't make
2867 	 * sense, should cycle through them showing each tip alongside
2868 	 * whatever piece of the widget it applies to.
2869 	 */
2870 	extern(C) gboolean function(GtkWidget* widget, GtkWidgetHelpType help_type) show_help;
2871 	
2872 	/* accessibility support */
2873 	extern(C) AtkObject* function(GtkWidget* widget) get_accessible;
2874 	
2875 	extern(C) void function(GtkWidget* widget, GdkScreen* previous_screen) screen_changed;
2876 	extern(C) gboolean function(GtkWidget* widget, guint signal_id) can_activate_accel;
2877 	extern(C) void function(GtkWidget* widget) composited_changed;
2878 	extern(C) gboolean function(GtkWidget* widget, gint x, gint y, gboolean keyboard_tooltip, GtkTooltip* tooltip) query_tooltip;
2879 	extern(C) void function(GtkWidget* widget, gboolean* hexpand_p, gboolean* vexpand_p) compute_expand;
2880 	extern(C) void function(GtkWidget* widget, GtkOrientation orientation, gint* minimum_size, gint* natural_size) adjust_size_request;
2881 	extern(C) void function(GtkWidget* widget, GtkOrientation orientation, gint* minimum_size, gint* natural_size, gint* allocated_pos, gint* allocated_size) adjust_size_allocation;
2882 	extern(C) void function(GtkWidget* widget) style_updated;
2883 	
2884 	/*< private >*/
2885 	/* Padding for future expansion */
2886 	extern(C) void function() _gtk_reserved1;
2887 	extern(C) void function() _gtk_reserved2;
2888 	extern(C) void function() _gtk_reserved3;
2889 	extern(C) void function() _gtk_reserved4;
2890 	extern(C) void function() _gtk_reserved5;
2891 	extern(C) void function() _gtk_reserved6;
2892 	extern(C) void function() _gtk_reserved7;
2893 	extern(C) void function() _gtk_reserved8;
2894 };
2895 
2896 struct GtkTextIter
2897 {
2898 	/* GtkTextIter is an opaque datatype; ignore all these fields.
2899 	 * Initialize the iter with gtk_text_buffer_get_iter_*
2900 	 * functions
2901 	 */
2902 	/*< private >*/
2903 	gpointer dummy1;
2904 	gpointer dummy2;
2905 	gint dummy3;
2906 	gint dummy4;
2907 	gint dummy5;
2908 	gint dummy6;
2909 	gint dummy7;
2910 	gint dummy8;
2911 	gpointer dummy9;
2912 	gpointer dummy10;
2913 	gint dummy11;
2914 	gint dummy12;
2915 	/* padding */
2916 	gint dummy13;
2917 	gpointer dummy14;
2918 }
2919 
2920 struct GtkTreeIter
2921 {
2922 	gint stamp;
2923 	gpointer userData;
2924 	gpointer userData2;
2925 	gpointer userData3;
2926 }
2927 
2928 struct GtkRequisition
2929 {
2930 	gint width;
2931 	gint height;
2932 }
2933 
2934 /**
2935  * A GtkTargetList structure is a reference counted list
2936  * of GtkTargetPair. It is used to represent the same
2937  * information as a table of GtkTargetEntry, but in
2938  * an efficient form. This structure should be treated as
2939  * opaque.
2940  */
2941 public struct GtkTargetList
2942 {
2943 	GList *list;
2944 	uint refCount;
2945 }
2946 
2947 public struct GtkTargetPair
2948 {
2949 	GdkAtom target;
2950 	uint flags;
2951 	uint info;
2952 }
2953 
2954 
2955 /**
2956  * Main Gtk struct.
2957  * An object representing and maintaining a group of accelerators.
2958  */
2959 public struct GtkAccelGroup{}
2960 
2961 
2962 public struct GtkAccelKey
2963 {
2964 	uint accelKey;
2965 	GdkModifierType accelMods;
2966 	uint bitfield0;
2967 	//uint accelFlags : 16;
2968 }
2969 
2970 
2971 /**
2972  * Main Gtk struct.
2973  */
2974 public struct GtkAccelMap{}
2975 
2976 
2977 /**
2978  * Main Gtk struct.
2979  */
2980 public struct GtkClipboard{}
2981 
2982 
2983 /**
2984  * Main Gtk struct.
2985  */
2986 public struct GtkSettings{}
2987 
2988 
2989 public struct GtkSettingsValue
2990 {
2991 	/+* origin should be something like "filename:linenumber" for rc files,
2992 	 * or e.g. "XProperty" for other sources
2993 	+/
2994 	char *origin;
2995 	/+* valid types are LONG, DOUBLE and STRING corresponding to the token parsed,
2996 	 * or a GSTRING holding an unparsed statement
2997 	+/
2998 	GValue value;
2999 }
3000 
3001 
3002 /**
3003  * Main Gtk struct.
3004  * A binding set maintains a list of activatable key bindings.
3005  * A single binding set can match multiple types of widgets.
3006  * Similar to style contexts, can be matched by any information contained
3007  * in a widgets GtkWidgetPath. When a binding within a set is matched upon
3008  * activation, an action signal is emitted on the target widget to carry out
3009  * the actual activation.
3010  * gchar *set_name;
3011  * unique name of this binding set
3012  * gint priority;
3013  * unused
3014  * GSList *widget_path_pspecs;
3015  * unused
3016  * GSList *widget_class_pspecs;
3017  * unused
3018  * GSList *class_branch_pspecs;
3019  * unused
3020  * GtkBindingEntry *entries;
3021  * the key binding entries in this binding set
3022  * GtkBindingEntry *current;
3023  * implementation detail
3024  * guint parsed : 1;
3025  * whether this binding set stems from a CSS file and is reset upon theme changes
3026  */
3027 public struct GtkBindingSet
3028 {
3029 	char *setName;
3030 	int priority;
3031 	GSList *widgetPathPspecs;
3032 	GSList *widgetClassPspecs;
3033 	GSList *classBranchPspecs;
3034 	GtkBindingEntry *entries;
3035 	GtkBindingEntry *current;
3036 	uint bitfield0;
3037 	//uint parsed : 1;
3038 }
3039 
3040 
3041 /**
3042  * Each key binding element of a binding sets binding list is
3043  * represented by a GtkBindingEntry.
3044  * guint keyval;
3045  * key value to match
3046  * GdkModifierType modifiers;
3047  * key modifiers to match
3048  * GtkBindingSet *binding_set;
3049  * binding set this entry belongs to
3050  * guint destroyed : 1;
3051  * implementation detail
3052  * guint in_emission : 1;
3053  * implementation detail
3054  * guint marks_unbound : 1;
3055  * implementation detail
3056  * GtkBindingEntry *set_next;
3057  * linked list of entries maintained by binding set
3058  * GtkBindingEntry *hash_next;
3059  * implementation detail
3060  * GtkBindingSignal *signals;
3061  * action signals of this entry
3062  */
3063 public struct GtkBindingEntry
3064 {
3065 	/+* key portion +/
3066 	uint keyval;
3067 	GdkModifierType modifiers;
3068 	GtkBindingSet *bindingSet;
3069 	uint bitfield0;
3070 	//uint destroyed : 1;
3071 	//uint inEmission : 1;
3072 	//uint marksUnbound : 1;
3073 	GtkBindingEntry *setNext;
3074 	GtkBindingEntry *hashNext;
3075 	GtkBindingSignal *signals;
3076 }
3077 
3078 
3079 /**
3080  * A GtkBindingSignal stores the necessary information to
3081  * activate a widget in response to a key press via a signal
3082  * emission.
3083  * GtkBindingSignal *next;
3084  * implementation detail
3085  * gchar *signal_name;
3086  * the action signal to be emitted
3087  * guint n_args;
3088  * number of arguments specified for the signal
3089  * GtkBindingArg *args;
3090  * the arguments specified for the signal
3091  */
3092 public struct GtkBindingSignal
3093 {
3094 	GtkBindingSignal *next;
3095 	char *signalName;
3096 	uint nArgs;
3097 	GtkBindingArg *args;
3098 }
3099 
3100 
3101 /**
3102  * A GtkBindingArg holds the data associated with
3103  * an argument for a key binding signal emission as
3104  * stored in GtkBindingSignal.
3105  * GType arg_type;
3106  * implementation detail
3107  */
3108 public struct GtkBindingArg
3109 {
3110 	GType argType;
3111 	union D
3112 	{
3113 		glong longData;
3114 		double doubleData;
3115 		char *stringData;
3116 	}
3117 	D d;
3118 }
3119 
3120 
3121 public struct GtkSelectionData
3122 {
3123 	GdkAtom selection;
3124 	GdkAtom target;
3125 	GdkAtom type;
3126 	int format;
3127 	char *data;
3128 	int length;
3129 	GdkDisplay *display;
3130 }
3131 
3132 
3133 /**
3134  * Main Gtk struct.
3135  * A GtkTargetEntry structure represents a single type of
3136  * data than can be supplied for by a widget for a selection
3137  * or for supplied or received during drag-and-drop.
3138  * gchar *target;
3139  * a string representation of the target type
3140  * guint flags;
3141  * GtkTargetFlags for DND
3142  * guint info;
3143  * an application-assigned integer ID which will
3144  * get passed as a parameter to e.g the "selection-get"
3145  * signal. It allows the application to identify the target
3146  * type without extensive string compares.
3147  */
3148 public struct GtkTargetEntry
3149 {
3150 	char *target;
3151 	uint flags;
3152 	uint info;
3153 }
3154 
3155 
3156 /**
3157  * Main Gtk struct.
3158  * This should not be accessed directly. Use the accessor functions below.
3159  */
3160 public struct GtkMountOperation{}
3161 
3162 
3163 /**
3164  * Main Gtk struct.
3165  */
3166 public struct GtkStyleContext{}
3167 
3168 
3169 /**
3170  * A struct that specifies a border around a rectangular area
3171  * that can be of different width on each side.
3172  * gint16 left;
3173  * The width of the left border
3174  * gint16 right;
3175  * The width of the right border
3176  * gint16 top;
3177  * The width of the top border
3178  * gint16 bottom;
3179  * The width of the bottom border
3180  */
3181 public struct GtkBorder
3182 {
3183 	short left;
3184 	short right;
3185 	short top;
3186 	short bottom;
3187 }
3188 
3189 
3190 /**
3191  * Main Gtk struct.
3192  */
3193 public struct GtkCssProvider{}
3194 
3195 
3196 /**
3197  * Defines a part of a CSS document. Because sections are nested into
3198  * one another, you can use gtk_css_section_get_parent() to get the
3199  * containing region.
3200  * Since 3.2
3201  */
3202 public struct GtkCssSection{}
3203 
3204 
3205 /**
3206  * GTypeInterface g_iface;
3207  * get_style ()
3208  * Gets a set of style information that applies to a widget path.
3209  * get_style_property ()
3210  * Gets the value of a widget style property that applies to a widget path.
3211  * get_icon_factory ()
3212  * Gets the icon factory that applies to a widget path.
3213  */
3214 public struct GtkStyleProviderIface
3215 {
3216 	GTypeInterface gIface;
3217 	extern(C) GtkStyleProperties * function(GtkStyleProvider* provider, GtkWidgetPath* path)  getStyle;
3218 	extern(C) int function(GtkStyleProvider* provider, GtkWidgetPath* path, GtkStateFlags state, GParamSpec* pspec, GValue* value)  getStyleProperty;
3219 	extern(C) GtkIconFactory * function(GtkStyleProvider* provider, GtkWidgetPath* path)  getIconFactory;
3220 }
3221 
3222 
3223 /**
3224  * Main Gtk struct.
3225  */
3226 public struct GtkStyleProvider{}
3227 
3228 
3229 /**
3230  * Main Gtk struct.
3231  */
3232 public struct GtkStyleProperties
3233 {
3234 	GObject parentObject;
3235 	GtkStylePropertiesPrivate *priv;
3236 }
3237 
3238 
3239 /**
3240  * Base class for theming engines.
3241  * GObjectClass parent_class;
3242  * The parent class.
3243  * render_line ()
3244  * Renders a line between two points.
3245  * render_background ()
3246  * Renders the background area of a widget region.
3247  * render_frame ()
3248  * Renders the frame around a widget area.
3249  * render_frame_gap ()
3250  * Renders the frame around a widget area with a gap in it.
3251  * render_extension ()
3252  * Renders a extension to a box, usually a notebook tab.
3253  * render_check ()
3254  * Renders a checkmark, as in GtkCheckButton.
3255  * render_option ()
3256  * Renders an option, as in GtkRadioButton.
3257  * render_arrow ()
3258  * Renders an arrow pointing to a certain direction.
3259  * render_expander ()
3260  * Renders an element what will expose/expand part of
3261  * the UI, as in GtkExpander.
3262  * render_focus ()
3263  * Renders the focus indicator.
3264  * render_layout ()
3265  * Renders a PangoLayout
3266  * render_slider ()
3267  * Renders a slider control, as in GtkScale.
3268  * render_handle ()
3269  * Renders a handle to drag UI elements, as in GtkPaned.
3270  * render_activity ()
3271  * Renders an area displaying activity, such as in GtkSpinner,
3272  * or GtkProgressBar.
3273  * render_icon_pixbuf ()
3274  * Renders an icon as a GdkPixbuf.
3275  * render_icon ()
3276  * Renders an icon given as a GdkPixbuf.
3277  * render_icon_surface ()
3278  * Renders an icon given as a cairo_surface_t.
3279  */
3280 public struct GtkThemingEngineClass
3281 {
3282 	GObjectClass parentClass;
3283 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x0, double y0, double x1, double y1)  renderLine;
3284 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height)  renderBackground;
3285 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height)  renderFrame;
3286 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height, GtkPositionType gapSide, double xy0_Gap, double xy1_Gap)  renderFrameGap;
3287 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height, GtkPositionType gapSide)  renderExtension;
3288 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height)  renderCheck;
3289 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height)  renderOption;
3290 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double angle, double x, double y, double size)  renderArrow;
3291 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height)  renderExpander;
3292 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height)  renderFocus;
3293 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, PangoLayout* layout)  renderLayout;
3294 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height, GtkOrientation orientation)  renderSlider;
3295 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height)  renderHandle;
3296 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, double x, double y, double width, double height)  renderActivity;
3297 	extern(C) GdkPixbuf * function(GtkThemingEngine* engine, GtkIconSource* source, GtkIconSize size)  renderIconPixbuf;
3298 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, GdkPixbuf* pixbuf, double x, double y)  renderIcon;
3299 	extern(C) void function(GtkThemingEngine* engine, cairo_t* cr, cairo_surface_t* surface, double x, double y)  renderIconSurface;
3300 }
3301 
3302 
3303 /**
3304  * Main Gtk struct.
3305  */
3306 public struct GtkThemingEngine{}
3307 
3308 
3309 /**
3310  * Main Gtk struct.
3311  */
3312 public struct GtkWidgetPath{}
3313 
3314 
3315 /**
3316  * Contains information found when looking up an icon in
3317  * an icon theme.
3318  */
3319 public struct GtkIconInfo{}
3320 
3321 
3322 /**
3323  * Main Gtk struct.
3324  * Acts as a database of information about an icon theme.
3325  * Normally, you retrieve the icon theme for a particular
3326  * screen using gtk_icon_theme_get_for_screen() and it
3327  * will contain information about current icon theme for
3328  * that screen, but you can also create a new GtkIconTheme
3329  * object and set the icon theme name explicitely using
3330  * gtk_icon_theme_set_custom_theme().
3331  */
3332 public struct GtkIconTheme{}
3333 
3334 
3335 /**
3336  * Main Gtk struct.
3337  */
3338 public struct GtkIconSource{}
3339 
3340 
3341 public struct GtkIconFactory{}
3342 
3343 
3344 public struct GtkIconSet{}
3345 
3346 
3347 /**
3348  * Main Gtk struct.
3349  */
3350 public struct GtkNumerableIcon{}
3351 
3352 
3353 /**
3354  * Main Gtk struct.
3355  */
3356 public struct GtkApplication{}
3357 
3358 
3359 /**
3360  * Main Gtk struct.
3361  */
3362 public struct GtkApplicationWindow{}
3363 
3364 
3365 /**
3366  * Main Gtk struct.
3367  * An opaque pointer type.
3368  */
3369 public struct GtkActionable{}
3370 
3371 
3372 /**
3373  * The interface vtable for GtkActionable.
3374  * GTypeInterface g_iface;
3375  * get_action_name ()
3376  * virtual pointer for gtk_actionable_get_action_name()
3377  * set_action_name ()
3378  * virtual pointer for gtk_actionable_set_action_name()
3379  * get_action_target_value ()
3380  * virtual pointer for gtk_actionable_get_action_target_value()
3381  * set_action_target_value ()
3382  * virtual pointer for gtk_actionable_set_action_target_value
3383  */
3384 public struct GtkActionableInterface
3385 {
3386 	GTypeInterface gIface;
3387 	extern(C) char * function(GtkActionable* actionable)  getActionName;
3388 	extern(C) void function(GtkActionable* actionable, char* actionName)  setActionName;
3389 	extern(C) GVariant * function(GtkActionable* actionable)  getActionTargetValue;
3390 	extern(C) void function(GtkActionable* actionable, GVariant* targetValue)  setActionTargetValue;
3391 }
3392 
3393 
3394 /**
3395  * Main Gtk struct.
3396  */
3397 public struct GtkBuildable{}
3398 
3399 
3400 /**
3401  * The GtkBuildableIface interface contains method that are
3402  * necessary to allow GtkBuilder to construct an object from
3403  * a GtkBuilder UI definition.
3404  * GTypeInterface g_iface;
3405  * the parent class
3406  * set_name ()
3407  * Stores the name attribute given in the GtkBuilder UI definition.
3408  * GtkWidget stores the name as object data. Implement this method if your
3409  * object has some notion of "name" and it makes sense to map the XML name
3410  * attribute to it.
3411  * get_name ()
3412  * The getter corresponding to set_name. Implement this
3413  * if you implement set_name.
3414  * add_child ()
3415  * Adds a child. The type parameter can be used to
3416  * differentiate the kind of child. GtkContainer implements this
3417  * to add add a child widget to the container, GtkNotebook uses
3418  * the type to distinguish between page labels (of type "page-label")
3419  * and normal children.
3420  * set_buildable_property ()
3421  * Sets a property of a buildable object.
3422  * It is normally not necessary to implement this, g_object_set_property()
3423  * is used by default. GtkWindow implements this to delay showing itself
3424  * (i.e. setting the "visible" property) until the whole interface
3425  * is created.
3426  * construct_child ()
3427  * Constructs a child of a buildable that has been
3428  * specified as "constructor" in the UI definition. GtkUIManager implements
3429  * this to reference to a widget created in a <ui> tag which is outside
3430  * of the normal GtkBuilder UI definition hierarchy. A reference to the
3431  * constructed object is returned and becomes owned by the caller.
3432  * custom_tag_start ()
3433  * Implement this if the buildable needs to parse
3434  * content below <child>. To handle an element, the implementation
3435  * must fill in the parser structure and user_data and return TRUE.
3436  * GtkWidget implements this to parse keyboard accelerators specified
3437  * in <accelerator> elements. GtkContainer implements it to map
3438  * properties defined via <packing> elements to child properties.
3439  * Note that user_data must be freed in custom_tag_end or custom_finished.
3440  * custom_tag_end ()
3441  * Called for the end tag of each custom element that is
3442  * handled by the buildable (see custom_tag_start).
3443  * custom_finished ()
3444  * Called for each custom tag handled by the buildable
3445  * when the builder finishes parsing (see custom_tag_start)
3446  * parser_finished ()
3447  * Called when a builder finishes the parsing
3448  * of a UI definition. It is normally not necessary to implement this,
3449  * unless you need to perform special cleanup actions. GtkWindow sets
3450  * the "visible" property here.
3451  * get_internal_child ()
3452  * Returns an internal child of a buildable.
3453  * GtkDialog implements this to give access to its vbox, making
3454  * it possible to add children to the vbox in a UI definition.
3455  * Implement this if the buildable has internal children that may
3456  * need to be accessed from a UI definition.
3457  */
3458 public struct GtkBuildableIface
3459 {
3460 	GTypeInterface gIface;
3461 	/+* virtua table +/
3462 	extern(C) void function(GtkBuildable* buildable, char* name)  setName;
3463 	extern(C) char * function(GtkBuildable* buildable)  getName;
3464 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, char* type)  addChild;
3465 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder, char* name, GValue* value)  setBuildableProperty;
3466 	extern(C) GObject * function(GtkBuildable* buildable, GtkBuilder* builder, char* name)  constructChild;
3467 	extern(C) int function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, char* tagname, GMarkupParser* parser, void** data)  customTagStart;
3468 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, char* tagname, void** data)  customTagEnd;
3469 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder, GObject* child, char* tagname, void* data)  customFinished;
3470 	extern(C) void function(GtkBuildable* buildable, GtkBuilder* builder)  parserFinished;
3471 	extern(C) GObject * function(GtkBuildable* buildable, GtkBuilder* builder, char* childname)  getInternalChild;
3472 }
3473 
3474 
3475 /**
3476  * Main Gtk struct.
3477  */
3478 public struct GtkBuilder{}
3479 
3480 
3481 /**
3482  * Main Gtk struct.
3483  * The GtkDialog struct contains only private fields
3484  * and should not be directly accessed.
3485  */
3486 public struct GtkDialog{}
3487 
3488 
3489 /**
3490  * Main Gtk struct.
3491  */
3492 public struct GtkMessageDialog{}
3493 
3494 
3495 /**
3496  * Main Gtk struct.
3497  * The GtkAboutDialog struct contains
3498  * only private fields and should not be directly accessed.
3499  */
3500 public struct GtkAboutDialog{}
3501 
3502 
3503 /**
3504  * Main Gtk struct.
3505  */
3506 public struct GtkAssistant{}
3507 
3508 
3509 /**
3510  * Main Gtk struct.
3511  */
3512 public struct GtkWindow{}
3513 
3514 
3515 /**
3516  * Main Gtk struct.
3517  */
3518 public struct GtkWindowGroup{}
3519 
3520 
3521 /**
3522  * Main Gtk struct.
3523  */
3524 public struct GtkInvisible{}
3525 
3526 
3527 /**
3528  * Main Gtk struct.
3529  */
3530 public struct GtkOffscreenWindow{}
3531 
3532 
3533 /**
3534  * Main Gtk struct.
3535  */
3536 public struct GtkBox{}
3537 
3538 
3539 /**
3540  * Main Gtk struct.
3541  */
3542 public struct GtkGrid{}
3543 
3544 
3545 /**
3546  * Main Gtk struct.
3547  */
3548 public struct GtkRevealer{}
3549 
3550 
3551 /**
3552  * Main Gtk struct.
3553  */
3554 public struct GtkListBox{}
3555 
3556 
3557 public struct GtkListBoxRow{}
3558 
3559 
3560 /**
3561  * Main Gtk struct.
3562  */
3563 public struct GtkStack{}
3564 
3565 
3566 /**
3567  * Main Gtk struct.
3568  */
3569 public struct GtkStackSwitcher{}
3570 
3571 
3572 /**
3573  * Main Gtk struct.
3574  */
3575 public struct GtkHeaderBar{}
3576 
3577 
3578 /**
3579  * Main Gtk struct.
3580  */
3581 public struct GtkOverlay{}
3582 
3583 
3584 /**
3585  * Main Gtk struct.
3586  */
3587 public struct GtkAlignment{}
3588 
3589 
3590 /**
3591  * Main Gtk struct.
3592  */
3593 public struct GtkButtonBox{}
3594 
3595 
3596 /**
3597  * Main Gtk struct.
3598  */
3599 public struct GtkPaned{}
3600 
3601 
3602 /**
3603  * Main Gtk struct.
3604  */
3605 public struct GtkLayout{}
3606 
3607 
3608 /**
3609  * Main Gtk struct.
3610  */
3611 public struct GtkNotebook{}
3612 
3613 
3614 /**
3615  * Main Gtk struct.
3616  */
3617 public struct GtkExpander{}
3618 
3619 
3620 /**
3621  * Main Gtk struct.
3622  */
3623 public struct GtkOrientable{}
3624 
3625 
3626 /**
3627  * Main Gtk struct.
3628  */
3629 public struct GtkAspectFrame{}
3630 
3631 
3632 /**
3633  * Main Gtk struct.
3634  */
3635 public struct GtkFixed{}
3636 
3637 
3638 /**
3639  * Main Gtk struct.
3640  */
3641 public struct GtkLabel{}
3642 
3643 
3644 /**
3645  * Main Gtk struct.
3646  * This struct contain private data only and should be accessed by the functions
3647  * below.
3648  */
3649 public struct GtkImage{}
3650 
3651 
3652 /**
3653  * Main Gtk struct.
3654  */
3655 public struct GtkSpinner{}
3656 
3657 
3658 /**
3659  * Main Gtk struct.
3660  */
3661 public struct GtkInfoBar{}
3662 
3663 
3664 /**
3665  * Main Gtk struct.
3666  */
3667 public struct GtkProgressBar{}
3668 
3669 
3670 /**
3671  * Main Gtk struct.
3672  */
3673 public struct GtkLevelBar{}
3674 
3675 
3676 /**
3677  * Main Gtk struct.
3678  */
3679 public struct GtkStatusbar{}
3680 
3681 
3682 /**
3683  * Main Gtk struct.
3684  * The GtkAccelLabel struct contains private data only, and
3685  * should be accessed using the functions below.
3686  */
3687 public struct GtkAccelLabel{}
3688 
3689 
3690 /**
3691  * Main Gtk struct.
3692  */
3693 public struct GtkStatusIcon{}
3694 
3695 
3696 /**
3697  * Main Gtk struct.
3698  */
3699 public struct GtkButton{}
3700 
3701 
3702 /**
3703  * Main Gtk struct.
3704  */
3705 public struct GtkCheckButton{}
3706 
3707 
3708 /**
3709  * Main Gtk struct.
3710  */
3711 public struct GtkRadioButton{}
3712 
3713 
3714 /**
3715  * Main Gtk struct.
3716  */
3717 public struct GtkToggleButton{}
3718 
3719 
3720 /**
3721  * Main Gtk struct.
3722  * The GtkLinkButton structure contains only
3723  * private data and should be accessed using the provided API.
3724  */
3725 public struct GtkLinkButton{}
3726 
3727 
3728 /**
3729  * Main Gtk struct.
3730  */
3731 public struct GtkMenuButton{}
3732 
3733 
3734 /**
3735  * Main Gtk struct.
3736  * The GtkSwitch structure contains private
3737  * data and it should only be accessed using the provided API.
3738  */
3739 public struct GtkSwitch{}
3740 
3741 
3742 /**
3743  * Main Gtk struct.
3744  */
3745 public struct GtkScaleButton{}
3746 
3747 
3748 /**
3749  * Main Gtk struct.
3750  */
3751 public struct GtkVolumeButton{}
3752 
3753 
3754 /**
3755  * Main Gtk struct.
3756  */
3757 public struct GtkLockButton{}
3758 
3759 
3760 /**
3761  * Main Gtk struct.
3762  */
3763 public struct GtkEntry{}
3764 
3765 
3766 /**
3767  * Main Gtk struct.
3768  */
3769 public struct GtkEntryBuffer{}
3770 
3771 
3772 /**
3773  * Main Gtk struct.
3774  */
3775 public struct GtkEntryCompletion{}
3776 
3777 
3778 /**
3779  * Main Gtk struct.
3780  */
3781 public struct GtkScale{}
3782 
3783 
3784 /**
3785  * Main Gtk struct.
3786  * The GtkSpinButton struct contains only private data and should
3787  * not be directly modified.
3788  */
3789 public struct GtkSpinButton{}
3790 
3791 
3792 /**
3793  * Main Gtk struct.
3794  */
3795 public struct GtkSearchEntry{}
3796 
3797 
3798 /**
3799  * Main Gtk struct.
3800  */
3801 public struct GtkSearchBar{}
3802 
3803 
3804 /**
3805  * Main Gtk struct.
3806  */
3807 public struct GtkEditable{}
3808 
3809 
3810 /**
3811  * Main Gtk struct.
3812  */
3813 public struct GtkTextMark{}
3814 
3815 
3816 /**
3817  * Main Gtk struct.
3818  */
3819 public struct GtkTextBuffer{}
3820 
3821 
3822 /**
3823  * Main Gtk struct.
3824  */
3825 public struct GtkTextTag{}
3826 
3827 
3828 /**
3829  * Using GtkTextAttributes directly should rarely be necessary.
3830  * It's primarily useful with gtk_text_iter_get_attributes().
3831  * As with most GTK+ structs, the fields in this struct should only
3832  * be read, never modified directly.
3833  */
3834 public struct GtkTextAttributes
3835 {
3836 	GtkTextAppearance appearance;
3837 	GtkJustification justification;
3838 	GtkTextDirection direction;
3839 	/+* Individual chunks of this can be set/unset as a group +/
3840 	PangoFontDescription *font;
3841 	double fontScale;
3842 	int leftMargin;
3843 	int rightMargin;
3844 	int indent;
3845 	int pixelsAboveLines;
3846 	int pixelsBelowLines;
3847 	int pixelsInsideWrap;
3848 	PangoTabArray *tabs;
3849 	GtkWrapMode wrapMode; /+* How to handle wrap-around for this tag.
3850 	 * Must be GTK_WRAPMODE_CHAR,
3851 	 * GTK_WRAPMODE_NONE, GTK_WRAPMODE_WORD
3852 	+/
3853 	PangoLanguage *language;
3854 	/+* hide the text +/
3855 	uint bitfield0;
3856 	//uint invisible : 1;
3857 	/+* Background is fit to full line height rather than
3858 	 * baseline +\- ascent\descent (font height)
3859 	+/
3860 	//uint bgFullHeight : 1;
3861 	/+* can edit this text +/
3862 	//uint editable : 1;
3863 }
3864 
3865 
3866 public struct GtkTextAppearance
3867 {
3868 	GdkColor bgColor;
3869 	GdkColor fgColor;
3870 	/+* super/subscript rise, can be negative +/
3871 	int rise;
3872 	uint bitfield0;
3873 	//uint underline : 4; /+* PangoUnderline +/
3874 	//uint strikethrough : 1;
3875 	/+* Whether to use background-related values; this is irrelevant for
3876 	 * the values struct when inn a tag, but is used for the composite
3877 	 * values struct; it's true if any of the tags being composited
3878 	 * had background stuff set.
3879 	+/
3880 	//uint drawBg : 1;
3881 	/+* These are only used when we are actually laying out and rendering
3882 	 * a paragraph; not when a GtkTextAppearance is part of a
3883 	 * GtkTextAttributes.
3884 	+/
3885 	//uint insideSelection : 1;
3886 	//uint isText : 1;
3887 	GdkRGBA *rgba[2];
3888 	static if (int.sizeof == ptrdiff_t.sizeof)
3889 	{
3890 		/+* unusable, just for ABI compat +/
3891 		uint padding[2];
3892 	}
3893 }
3894 
3895 
3896 /**
3897  * Main Gtk struct.
3898  */
3899 public struct GtkTextTagTable{}
3900 
3901 
3902 /**
3903  * Main Gtk struct.
3904  */
3905 public struct GtkTextView{}
3906 
3907 
3908 /**
3909  * A GtkTextChildAnchor is a spot in the buffer where child widgets can
3910  * be "anchored" (inserted inline, as if they were characters). The anchor
3911  * can have multiple widgets anchored, to allow for multiple views.
3912  */
3913 public struct GtkTextChildAnchor{}
3914 
3915 
3916 /**
3917  * Main Gtk struct.
3918  */
3919 public struct GtkTreeModel{}
3920 
3921 
3922 public struct GtkTreePath{}
3923 
3924 
3925 /**
3926  * A GtkTreeRowReference tracks model changes so that it always refers to the
3927  * same row (a GtkTreePath refers to a position, not a fixed row). Create a
3928  * new GtkTreeRowReference with gtk_tree_row_reference_new().
3929  */
3930 public struct GtkTreeRowReference{}
3931 
3932 
3933 public struct GtkTreeModelIface
3934 {
3935 	GTypeInterface gIface;
3936 	/+* Signals +/
3937 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter)  rowChanged;
3938 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter)  rowInserted;
3939 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter)  rowHasChildToggled;
3940 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path)  rowDeleted;
3941 	extern(C) void function(GtkTreeModel* treeModel, GtkTreePath* path, GtkTreeIter* iter, int* newOrder)  rowsReordered;
3942 	/+* Virtual Table +/
3943 	extern(C) GtkTreeModelFlags function(GtkTreeModel* treeModel)  getFlags;
3944 	extern(C) int function(GtkTreeModel* treeModel)  getNColumns;
3945 	extern(C) GType function(GtkTreeModel* treeModel, int index)  getColumnType;
3946 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreePath* path)  getIter;
3947 	extern(C) GtkTreePath * function(GtkTreeModel* treeModel, GtkTreeIter* iter)  getPath;
3948 	extern(C) void function(GtkTreeModel* treeModel, GtkTreeIter* iter, int column, GValue* value)  getValue;
3949 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter)  iterNext;
3950 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter)  iterPrevious;
3951 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreeIter* parent)  iterChildren;
3952 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter)  iterHasChild;
3953 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter)  iterNChildren;
3954 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreeIter* parent, int n)  iterNthChild;
3955 	extern(C) int function(GtkTreeModel* treeModel, GtkTreeIter* iter, GtkTreeIter* child)  iterParent;
3956 	extern(C) void function(GtkTreeModel* treeModel, GtkTreeIter* iter)  refNode;
3957 	extern(C) void function(GtkTreeModel* treeModel, GtkTreeIter* iter)  unrefNode;
3958 }
3959 
3960 
3961 /**
3962  * Main Gtk struct.
3963  */
3964 public struct GtkTreeSelection{}
3965 
3966 
3967 /**
3968  * Main Gtk struct.
3969  */
3970 public struct GtkTreeViewColumn{}
3971 
3972 
3973 /**
3974  * Main Gtk struct.
3975  */
3976 public struct GtkTreeView{}
3977 
3978 
3979 public struct GtkTreeViewPrivate{}
3980 
3981 
3982 /**
3983  * Main Gtk struct.
3984  */
3985 public struct GtkTreeDragSource{}
3986 
3987 
3988 public struct GtkTreeDragSourceIface
3989 {
3990 	GTypeInterface gIface;
3991 	/+* VTable - not signals +/
3992 	extern(C) int function(GtkTreeDragSource* dragSource, GtkTreePath* path)  rowDraggable;
3993 	extern(C) int function(GtkTreeDragSource* dragSource, GtkTreePath* path, GtkSelectionData* selectionData)  dragDataGet;
3994 	extern(C) int function(GtkTreeDragSource* dragSource, GtkTreePath* path)  dragDataDelete;
3995 }
3996 
3997 
3998 public struct GtkTreeDragDest{}
3999 
4000 
4001 public struct GtkTreeDragDestIface
4002 {
4003 	GTypeInterface gIface;
4004 	/+* VTable - not signals +/
4005 	extern(C) int function(GtkTreeDragDest* dragDest, GtkTreePath* dest, GtkSelectionData* selectionData)  dragDataReceived;
4006 	extern(C) int function(GtkTreeDragDest* dragDest, GtkTreePath* destPath, GtkSelectionData* selectionData)  rowDropPossible;
4007 }
4008 
4009 
4010 /**
4011  * Main Gtk struct.
4012  */
4013 public struct GtkCellView{}
4014 
4015 
4016 /**
4017  * Main Gtk struct.
4018  */
4019 public struct GtkIconView{}
4020 
4021 
4022 /**
4023  * Main Gtk struct.
4024  */
4025 public struct GtkTreeSortable{}
4026 
4027 
4028 public struct GtkTreeSortableIface
4029 {
4030 	GTypeInterface gIface;
4031 	/+* signals +/
4032 	extern(C) void function(GtkTreeSortable* sortable)  sortColumnChanged;
4033 	/+* virtua table +/
4034 	extern(C) int function(GtkTreeSortable* sortable, int* sortColumnId, GtkSortType* order)  getSortColumnId;
4035 	extern(C) void function(GtkTreeSortable* sortable, int sortColumnId, GtkSortType order)  setSortColumnId;
4036 	extern(C) void function(GtkTreeSortable* sortable, int sortColumnId, GtkTreeIterCompareFunc sortFunc, void* userData, GDestroyNotify destroy)  setSortFunc;
4037 	extern(C) void function(GtkTreeSortable* sortable, GtkTreeIterCompareFunc sortFunc, void* userData, GDestroyNotify destroy)  setDefaultSortFunc;
4038 	extern(C) int function(GtkTreeSortable* sortable)  hasDefaultSortFunc;
4039 }
4040 
4041 
4042 /**
4043  * Main Gtk struct.
4044  */
4045 public struct GtkTreeModelSort{}
4046 
4047 
4048 /**
4049  * Main Gtk struct.
4050  */
4051 public struct GtkTreeModelFilter{}
4052 
4053 
4054 /**
4055  * Main Gtk struct.
4056  */
4057 public struct GtkCellLayout{}
4058 
4059 
4060 public struct GtkCellLayoutIface
4061 {
4062 	GTypeInterface gIface;
4063 	/+* Virtual Table +/
4064 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, int expand)  packStart;
4065 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, int expand)  packEnd;
4066 	extern(C) void function(GtkCellLayout* cellLayout)  clear;
4067 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, char* attribute, int column)  addAttribute;
4068 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, GtkCellLayoutDataFunc func, void* funcData, GDestroyNotify destroy)  setCellDataFunc;
4069 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell)  clearAttributes;
4070 	extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, int position)  reorder;
4071 	extern(C) GList* function(GtkCellLayout* cellLayout)  getCells;
4072 	extern(C) GtkCellArea * function(GtkCellLayout* cellLayout)  getArea;
4073 }
4074 
4075 
4076 /**
4077  * Main Gtk struct.
4078  */
4079 public struct GtkCellArea{}
4080 
4081 
4082 /**
4083  * add ()
4084  * adds a GtkCellRenderer to the area.
4085  * remove ()
4086  * removes a GtkCellRenderer from the area.
4087  * foreach ()
4088  * calls the GtkCellCallback function on every GtkCellRenderer in
4089  * the area with the provided user data until the callback returns TRUE.
4090  * foreach_alloc ()
4091  * Calls the GtkCellAllocCallback function on every
4092  * GtkCellRenderer in the area with the allocated area for the cell
4093  * and the provided user data until the callback returns TRUE.
4094  * event ()
4095  * Handle an event in the area, this is generally used to activate
4096  * a cell at the event location for button events but can also be used
4097  * to generically pass events to GtkWidgets drawn onto the area.
4098  * render ()
4099  * Actually render the area's cells to the specified rectangle,
4100  * background_area should be correctly distributed to the cells
4101  * corresponding background areas.
4102  * apply_attributes ()
4103  * Apply the cell attributes to the cells. This is
4104  * implemented as a signal and generally GtkCellArea subclasses don't
4105  * need to implement it since it is handled by the base class.
4106  * create_context ()
4107  * Creates and returns a class specific GtkCellAreaContext
4108  * to store cell alignment and allocation details for a said GtkCellArea
4109  * class.
4110  * copy_context ()
4111  * Creates a new GtkCellAreaContext in the same state as
4112  * the passed context with any cell alignment data and allocations intact.
4113  * get_request_mode ()
4114  * This allows an area to tell its layouting widget whether
4115  * it prefers to be allocated in GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH or
4116  * GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT mode.
4117  * get_preferred_width ()
4118  * Calculates the minimum and natural width of the
4119  * areas cells with the current attributes applied while considering
4120  * the particular layouting details of the said GtkCellArea. While
4121  * requests are performed over a series of rows, alignments and overall
4122  * minimum and natural sizes should be stored in the corresponding
4123  * GtkCellAreaContext.
4124  * get_preferred_height_for_width ()
4125  * Calculates the minimum and natural height
4126  * for the area if the passed context would be allocated the given width.
4127  * When implementing this virtual method it is safe to assume that context
4128  * has already stored the aligned cell widths for every GtkTreeModel row
4129  * that context will be allocated for since this information was stored
4130  * at GtkCellAreaClass.get_preferred_width() time. This virtual method
4131  * should also store any necessary alignments of cell heights for the
4132  * case that the context is allocated a height.
4133  * get_preferred_height ()
4134  * Calculates the minimum and natural height of the
4135  * areas cells with the current attributes applied. Essentially this is
4136  * the same as GtkCellAreaClass.get_preferred_width() only for areas
4137  * that are being requested as GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT.
4138  * get_preferred_width_for_height ()
4139  * Calculates the minimum and natural width
4140  * for the area if the passed context would be allocated the given
4141  * height. The same as GtkCellAreaClass.get_preferred_height_for_width()
4142  * only for handling requests in the GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT
4143  * mode.
4144  * set_cell_property ()
4145  * This should be implemented to handle changes in child
4146  * cell properties for a given GtkCellRenderer that were previously
4147  * installed on the GtkCellAreaClass with gtk_cell_area_class_install_cell_property().
4148  * get_cell_property ()
4149  * This should be implemented to report the values of
4150  * child cell properties for a given child GtkCellRenderer.
4151  * focus ()
4152  * This virtual method should be implemented to navigate focus from
4153  * cell to cell inside the GtkCellArea. The GtkCellArea should move
4154  * focus from cell to cell inside the area and return FALSE if focus
4155  * logically leaves the area with the following exceptions: When the
4156  * area contains no activatable cells, the entire area recieves focus.
4157  * Focus should not be given to cells that are actually "focus siblings"
4158  * of other sibling cells (see gtk_cell_area_get_focus_from_sibling()).
4159  * Focus is set by calling gtk_cell_area_set_focus_cell().
4160  * is_activatable ()
4161  * Returns whether the GtkCellArea can respond to
4162  * GtkCellAreaClass.activate(), usually this does not need to be
4163  * implemented since the base class takes care of this however it can
4164  * be enhanced if the GtkCellArea subclass can handle activation in
4165  * other ways than activating its GtkCellRenderers.
4166  * activate ()
4167  * This is called when the layouting widget rendering the
4168  * GtkCellArea activates the focus cell (see gtk_cell_area_get_focus_cell()).
4169  */
4170 public struct GtkCellAreaClass
4171 {
4172 	/+* Basic methods +/
4173 	extern(C) void function(GtkCellArea* area, GtkCellRenderer* renderer)  add;
4174 	extern(C) void function(GtkCellArea* area, GtkCellRenderer* renderer)  remove;
4175 	extern(C) void function(GtkCellArea* area, GtkCellCallback callback, void* callbackData)  foreac;
4176 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, Rectangle* cellArea, Rectangle* backgroundArea, GtkCellAllocCallback callback, void* callbackData)  foreachAlloc;
4177 	extern(C) int function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, GdkEvent* event, Rectangle* cellArea, GtkCellRendererState flags)  event;
4178 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, cairo_t* cr, Rectangle* backgroundArea, Rectangle* cellArea, GtkCellRendererState flags, int paintFocus)  render;
4179 	extern(C) void function(GtkCellArea* area, GtkTreeModel* treeModel, GtkTreeIter* iter, int isExpander, int isExpanded)  applyAttributes;
4180 	/+* Geometry +/
4181 	extern(C) GtkCellAreaContext * function(GtkCellArea* area)  createContext;
4182 	extern(C) GtkCellAreaContext * function(GtkCellArea* area, GtkCellAreaContext* context)  copyContext;
4183 	extern(C) GtkSizeRequestMode function(GtkCellArea* area)  getRequestMode;
4184 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, int* minimumWidth, int* naturalWidth)  getPreferredWidth;
4185 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, int width, int* minimumHeight, int* naturalHeight)  getPreferredHeightForWidth;
4186 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, int* minimumHeight, int* naturalHeight)  getPreferredHeight;
4187 	extern(C) void function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, int height, int* minimumWidth, int* naturalWidth)  getPreferredWidthForHeight;
4188 	/+* Cell Properties +/
4189 	extern(C) void function(GtkCellArea* area, GtkCellRenderer* renderer, uint propertyId, GValue* value, GParamSpec* pspec)  setCellProperty;
4190 	extern(C) void function(GtkCellArea* area, GtkCellRenderer* renderer, uint propertyId, GValue* value, GParamSpec* pspec)  getCellProperty;
4191 	/+* Focus +/
4192 	extern(C) int function(GtkCellArea* area, GtkDirectionType direction)  focus;
4193 	extern(C) int function(GtkCellArea* area)  isActivatable;
4194 	extern(C) int function(GtkCellArea* area, GtkCellAreaContext* context, GtkWidget* widget, Rectangle* cellArea, GtkCellRendererState flags, int editOnly)  activate;
4195 }
4196 
4197 
4198 /**
4199  * Main Gtk struct.
4200  */
4201 public struct GtkCellAreaBox{}
4202 
4203 
4204 public struct GtkCellAreaBoxClass{}
4205 
4206 
4207 /**
4208  * allocate ()
4209  * This tells the context that an allocation width or height
4210  * (or both) have been decided for a group of rows. The context should
4211  * store any allocations for internally aligned cells at this point so
4212  * that they dont need to be recalculated at gtk_cell_area_render() time.
4213  * reset ()
4214  * Clear any previously stored information about requested and
4215  * allocated sizes for the context.
4216  * get_preferred_height_for_width ()
4217  * Returns the aligned height for the given
4218  * width that context must store while collecting sizes for it's rows.
4219  * get_preferred_width_for_height ()
4220  * Returns the aligned width for the given
4221  * height that context must store while collecting sizes for it's rows.
4222  */
4223 public struct GtkCellAreaContextClass
4224 {
4225 	extern(C) void function(GtkCellAreaContext* context, int width, int height)  allocate;
4226 	extern(C) void function(GtkCellAreaContext* context)  reset;
4227 	extern(C) void function(GtkCellAreaContext* context, int width, int* minimumHeight, int* naturalHeight)  getPreferredHeightForWidth;
4228 	extern(C) void function(GtkCellAreaContext* context, int height, int* minimumWidth, int* naturalWidth)  getPreferredWidthForHeight;
4229 }
4230 
4231 
4232 /**
4233  * Main Gtk struct.
4234  */
4235 public struct GtkCellAreaContext{}
4236 
4237 
4238 /**
4239  * Main Gtk struct.
4240  */
4241 public struct GtkCellRenderer{}
4242 
4243 
4244 public struct GtkCellRendererClass
4245 {
4246 	GInitiallyUnownedClass parentClass;
4247 	/+* vtable - not signals +/
4248 	extern(C) GtkSizeRequestMode function(GtkCellRenderer* cell)  getRequestMode;
4249 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, int* minimumSize, int* naturalSize)  getPreferredWidth;
4250 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, int width, int* minimumHeight, int* naturalHeight)  getPreferredHeightForWidth;
4251 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, int* minimumSize, int* naturalSize)  getPreferredHeight;
4252 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, int height, int* minimumWidth, int* naturalWidth)  getPreferredWidthForHeight;
4253 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, GtkCellRendererState flags, Rectangle* cellArea, Rectangle* alignedArea)  getAlignedArea;
4254 	extern(C) void function(GtkCellRenderer* cell, GtkWidget* widget, Rectangle* cellArea, int* xOffset, int* yOffset, int* width, int* height)  getSize;
4255 	extern(C) void function(GtkCellRenderer* cell, cairo_t* cr, GtkWidget* widget, Rectangle* backgroundArea, Rectangle* cellArea, GtkCellRendererState flags)  render;
4256 	extern(C) int function(GtkCellRenderer* cell, GdkEvent* event, GtkWidget* widget, char* path, Rectangle* backgroundArea, Rectangle* cellArea, GtkCellRendererState flags)  activate;
4257 	extern(C) GtkCellEditable * function(GtkCellRenderer* cell, GdkEvent* event, GtkWidget* widget, char* path, Rectangle* backgroundArea, Rectangle* cellArea, GtkCellRendererState flags)  startEditing;
4258 	/+* Signals +/
4259 	extern(C) void function(GtkCellRenderer* cell)  editingCanceled;
4260 	extern(C) void function(GtkCellRenderer* cell, GtkCellEditable* editable, char* path)  editingStarted;
4261 	GtkCellRendererClassPrivate *priv;
4262 	/+* Padding for future expansion +/
4263 	extern(C) void function() _GtkReserved2;
4264 	extern(C) void function() _GtkReserved3;
4265 	extern(C) void function() _GtkReserved4;
4266 }
4267 
4268 
4269 /**
4270  * Main Gtk struct.
4271  */
4272 public struct GtkCellEditable{}
4273 
4274 
4275 public struct GtkCellEditableIface
4276 {
4277 	GTypeInterface gIface;
4278 	/+* signals +/
4279 	extern(C) void function(GtkCellEditable* cellEditable)  editingDone;
4280 	extern(C) void function(GtkCellEditable* cellEditable)  removeWidget;
4281 	/+* virtua table +/
4282 	extern(C) void function(GtkCellEditable* cellEditable, GdkEvent* event)  startEditing;
4283 }
4284 
4285 
4286 /**
4287  * Main Gtk struct.
4288  */
4289 public struct GtkCellRendererAccel{}
4290 
4291 
4292 /**
4293  * Main Gtk struct.
4294  */
4295 public struct GtkCellRendererCombo{}
4296 
4297 
4298 /**
4299  * Main Gtk struct.
4300  */
4301 public struct GtkCellRendererPixbuf{}
4302 
4303 
4304 /**
4305  * Main Gtk struct.
4306  */
4307 public struct GtkCellRendererProgress{}
4308 
4309 
4310 /**
4311  * Main Gtk struct.
4312  */
4313 public struct GtkCellRendererSpin{}
4314 
4315 
4316 /**
4317  * Main Gtk struct.
4318  */
4319 public struct GtkCellRendererText{}
4320 
4321 
4322 /**
4323  * Main Gtk struct.
4324  */
4325 public struct GtkCellRendererToggle{}
4326 
4327 
4328 /**
4329  * Main Gtk struct.
4330  */
4331 public struct GtkCellRendererSpinner{}
4332 
4333 
4334 /**
4335  * Main Gtk struct.
4336  */
4337 public struct GtkListStore{}
4338 
4339 
4340 /**
4341  * Main Gtk struct.
4342  */
4343 public struct GtkTreeStore{}
4344 
4345 
4346 /**
4347  * Main Gtk struct.
4348  */
4349 public struct GtkComboBox{}
4350 
4351 
4352 /**
4353  * Main Gtk struct.
4354  */
4355 public struct GtkComboBoxText{}
4356 
4357 
4358 /**
4359  * Main Gtk struct.
4360  */
4361 public struct GtkMenu{}
4362 
4363 
4364 /**
4365  * Main Gtk struct.
4366  */
4367 public struct GtkMenuBar{}
4368 
4369 
4370 /**
4371  * Main Gtk struct.
4372  */
4373 public struct GtkMenuItem{}
4374 
4375 
4376 /**
4377  * Main Gtk struct.
4378  */
4379 public struct GtkRadioMenuItem{}
4380 
4381 
4382 /**
4383  * Main Gtk struct.
4384  */
4385 public struct GtkCheckMenuItem{}
4386 
4387 
4388 /**
4389  * Main Gtk struct.
4390  */
4391 public struct GtkSeparatorMenuItem{}
4392 
4393 
4394 /**
4395  * Main Gtk struct.
4396  * Dummy structure for accessing instances of GtkToolShellIface.
4397  */
4398 public struct GtkToolShell{}
4399 
4400 
4401 /**
4402  * Virtual function table for the GtkToolShell interface.
4403  * get_icon_size ()
4404  * mandatory implementation of gtk_tool_shell_get_icon_size().
4405  * get_orientation ()
4406  * mandatory implementation of gtk_tool_shell_get_orientation().
4407  * get_style ()
4408  * mandatory implementation of gtk_tool_shell_get_style().
4409  * get_relief_style ()
4410  * optional implementation of gtk_tool_shell_get_relief_style().
4411  * rebuild_menu ()
4412  * optional implementation of gtk_tool_shell_rebuild_menu().
4413  * get_text_orientation ()
4414  * optional implementation of gtk_tool_shell_get_text_orientation().
4415  * get_text_alignment ()
4416  * optional implementation of gtk_tool_shell_get_text_alignment().
4417  * get_ellipsize_mode ()
4418  * optional implementation of gtk_tool_shell_get_ellipsize_mode().
4419  * get_text_size_group ()
4420  * optional implementation of gtk_tool_shell_get_text_size_group().
4421  */
4422 public struct GtkToolShellIface
4423 {
4424 	extern(C) GtkIconSize function(GtkToolShell* shell) getIconSize;
4425 	extern(C) GtkOrientation function(GtkToolShell* shell) getOrientation;
4426 	extern(C) GtkToolbarStyle function(GtkToolShell* shell) getStyle;
4427 	extern(C) GtkReliefStyle function(GtkToolShell* shell) getReliefStyle;
4428 	extern(C) void function(GtkToolShell* shell) rebuildMenu;
4429 	extern(C) GtkOrientation function(GtkToolShell* shell) getTextOrientation;
4430 	extern(C) float function(GtkToolShell* shell) getTextAlignment;
4431 	extern(C) PangoEllipsizeMode function(GtkToolShell* shell) getEllipsizeMode;
4432 	extern(C) GtkSizeGroup * function(GtkToolShell* shell) getTextSizeGroup;
4433 }
4434 
4435 
4436 /**
4437  * Main Gtk struct.
4438  */
4439 public struct GtkToolbar{}
4440 
4441 
4442 /**
4443  * Main Gtk struct.
4444  * The GtkToolItem struct contains only private data.
4445  * It should only be accessed through the functions described below.
4446  */
4447 public struct GtkToolItem{}
4448 
4449 
4450 /**
4451  * Main Gtk struct.
4452  * This should not be accessed directly. Use the accessor functions below.
4453  */
4454 public struct GtkToolPalette{}
4455 
4456 
4457 /**
4458  * Main Gtk struct.
4459  * This should not be accessed directly. Use the accessor functions below.
4460  */
4461 public struct GtkToolItemGroup{}
4462 
4463 
4464 /**
4465  * Main Gtk struct.
4466  */
4467 public struct GtkSeparatorToolItem{}
4468 
4469 
4470 /**
4471  * Main Gtk struct.
4472  */
4473 public struct GtkToolButton{}
4474 
4475 
4476 /**
4477  * Main Gtk struct.
4478  */
4479 public struct GtkMenuToolButton{}
4480 
4481 
4482 /**
4483  * Main Gtk struct.
4484  */
4485 public struct GtkToggleToolButton{}
4486 
4487 
4488 /**
4489  * Main Gtk struct.
4490  */
4491 public struct GtkRadioToolButton{}
4492 
4493 
4494 /**
4495  * Main Gtk struct.
4496  */
4497 public struct GtkColorChooser{}
4498 
4499 
4500 /**
4501  * Main Gtk struct.
4502  */
4503 public struct GtkColorButton{}
4504 
4505 
4506 /**
4507  * Main Gtk struct.
4508  */
4509 public struct GtkColorChooserWidget{}
4510 
4511 
4512 /**
4513  * Main Gtk struct.
4514  */
4515 public struct GtkColorChooserDialog{}
4516 
4517 
4518 /**
4519  * Main Gtk struct.
4520  */
4521 public struct GtkFileChooser{}
4522 
4523 
4524 /**
4525  * Main Gtk struct.
4526  */
4527 public struct GtkFileChooserButton{}
4528 
4529 
4530 /**
4531  * Main Gtk struct.
4532  */
4533 public struct GtkFileChooserDialog{}
4534 
4535 
4536 /**
4537  * Main Gtk struct.
4538  */
4539 public struct GtkFileChooserWidget{}
4540 
4541 
4542 /**
4543  * Main Gtk struct.
4544  */
4545 public struct GtkFileFilter{}
4546 
4547 
4548 /**
4549  * A GtkFileFilterInfo struct is used to pass information about the
4550  * tested file to gtk_file_filter_filter().
4551  * GtkFileFilterFlags contains;
4552  * Flags indicating which of the following fields need
4553  * are filled
4554  * const gchar *filename;
4555  * the filename of the file being tested
4556  * const gchar *uri;
4557  * the URI for the file being tested
4558  * const gchar *display_name;
4559  * the string that will be used to display the file
4560  * in the file chooser
4561  * const gchar *mime_type;
4562  * the mime type of the file
4563  */
4564 public struct GtkFileFilterInfo
4565 {
4566 	GtkFileFilterFlags contains;
4567 	char *filename;
4568 	char *uri;
4569 	char *displayName;
4570 	char *mimeType;
4571 }
4572 
4573 
4574 /**
4575  * Main Gtk struct.
4576  */
4577 public struct GtkFontChooser{}
4578 
4579 
4580 /**
4581  * Main Gtk struct.
4582  */
4583 public struct GtkFontButton{}
4584 
4585 
4586 /**
4587  * Main Gtk struct.
4588  */
4589 public struct GtkFontChooserWidget{}
4590 
4591 
4592 /**
4593  * Main Gtk struct.
4594  */
4595 public struct GtkFontChooserDialog{}
4596 
4597 
4598 /**
4599  * Main Gtk struct.
4600  */
4601 public struct GtkPlacesSidebar{}
4602 
4603 
4604 /**
4605  * Main Gtk struct.
4606  */
4607 public struct GtkFrame{}
4608 
4609 
4610 /**
4611  * Main Gtk struct.
4612  */
4613 public struct GtkSeparator{}
4614 
4615 
4616 /**
4617  * Main Gtk struct.
4618  */
4619 public struct GtkScrollbar{}
4620 
4621 
4622 /**
4623  * Main Gtk struct.
4624  */
4625 public struct GtkScrolledWindow{}
4626 
4627 
4628 /**
4629  * Main Gtk struct.
4630  */
4631 public struct GtkScrollable{}
4632 
4633 
4634 /**
4635  * Main Gtk struct.
4636  */
4637 public struct GtkPrintOperation{}
4638 
4639 
4640 public struct GtkPrintOperationPreview{}
4641 
4642 
4643 /**
4644  * Main Gtk struct.
4645  */
4646 public struct GtkPrintContext{}
4647 
4648 
4649 /**
4650  * Main Gtk struct.
4651  */
4652 public struct GtkPrintSettings{}
4653 
4654 
4655 public struct GtkPageRange
4656 {
4657 	int start;
4658 	int end;
4659 }
4660 
4661 
4662 /**
4663  * Main Gtk struct.
4664  */
4665 public struct GtkPageSetup{}
4666 
4667 
4668 /**
4669  * Main Gtk struct.
4670  */
4671 public struct GtkPaperSize{}
4672 
4673 
4674 /**
4675  * Main Gtk struct.
4676  */
4677 public struct GtkPrinter{}
4678 
4679 
4680 public struct GtkPrintBackend{}
4681 
4682 
4683 /**
4684  * Main Gtk struct.
4685  */
4686 public struct GtkPrintJob{}
4687 
4688 
4689 /**
4690  * Main Gtk struct.
4691  */
4692 public struct GtkPrintUnixDialog{}
4693 
4694 
4695 /**
4696  * Main Gtk struct.
4697  */
4698 public struct GtkPageSetupUnixDialog{}
4699 
4700 
4701 /**
4702  * Main Gtk struct.
4703  * The GtkAdjustment struct contains only private fields and
4704  * should not be directly accessed.
4705  */
4706 public struct GtkAdjustment{}
4707 
4708 
4709 /**
4710  * Main Gtk struct.
4711  */
4712 public struct GtkArrow{}
4713 
4714 
4715 /**
4716  * Main Gtk struct.
4717  */
4718 public struct GtkCalendar{}
4719 
4720 
4721 /**
4722  * Main Gtk struct.
4723  */
4724 public struct GtkDrawingArea{}
4725 
4726 
4727 /**
4728  * Main Gtk struct.
4729  */
4730 public struct GtkEventBox{}
4731 
4732 
4733 /**
4734  * Main Gtk struct.
4735  */
4736 public struct GtkHandleBox{}
4737 
4738 
4739 /**
4740  * Main Gtk struct.
4741  */
4742 public struct GtkIMContextSimple{}
4743 
4744 
4745 /**
4746  * Main Gtk struct.
4747  */
4748 public struct GtkIMMulticontext{}
4749 
4750 
4751 /**
4752  * Main Gtk struct.
4753  */
4754 public struct GtkSizeGroup{}
4755 
4756 
4757 /**
4758  * Main Gtk struct.
4759  */
4760 public struct GtkTooltip{}
4761 
4762 
4763 /**
4764  * Main Gtk struct.
4765  */
4766 public struct GtkViewport{}
4767 
4768 
4769 /**
4770  * Main Gtk struct.
4771  */
4772 public struct GtkAccessible{}
4773 
4774 
4775 /**
4776  * Main Gtk struct.
4777  */
4778 public struct GtkWidget{}
4779 
4780 
4781 public struct GtkWidgetAuxInfo
4782 {
4783 	int width;
4784 	int height;
4785 	uint bitfield0;
4786 	//uint halign : 4;
4787 	//uint valign : 4;
4788 	GtkBorder margin;
4789 }
4790 
4791 
4792 /**
4793  * Represents a request of a screen object in a given orientation. These
4794  * are primarily used in container implementations when allocating a natural
4795  * size for children calling. See gtk_distribute_natural_allocation().
4796  * gpointer data;
4797  * A client pointer
4798  * gint minimum_size;
4799  * The minimum size needed for allocation in a given orientation
4800  * gint natural_size;
4801  * The natural size for allocation in a given orientation
4802  */
4803 public struct GtkRequestedSize
4804 {
4805 	void* data;
4806 	int minimumSize;
4807 	int naturalSize;
4808 }
4809 
4810 
4811 /**
4812  * Main Gtk struct.
4813  */
4814 public struct GtkContainer{}
4815 
4816 
4817 /**
4818  * Main Gtk struct.
4819  */
4820 public struct GtkBin{}
4821 
4822 
4823 /**
4824  * Main Gtk struct.
4825  */
4826 public struct GtkMenuShell{}
4827 
4828 
4829 /**
4830  * Main Gtk struct.
4831  */
4832 public struct GtkMisc{}
4833 
4834 
4835 /**
4836  * Main Gtk struct.
4837  */
4838 public struct GtkRange{}
4839 
4840 
4841 /**
4842  * Main Gtk struct.
4843  */
4844 public struct GtkIMContext{}
4845 
4846 
4847 /**
4848  * preedit_start ()
4849  * Default handler of the "preedit-start" signal.
4850  * preedit_end ()
4851  * Default handler of the "preedit-end" signal.
4852  * preedit_changed ()
4853  * Default handler of the "preedit-changed"
4854  * signal.
4855  * commit ()
4856  * Default handler of the "commit" signal.
4857  * retrieve_surrounding ()
4858  * Default handler of the
4859  * "retrieve-surrounding" signal.
4860  * delete_surrounding ()
4861  * Default handler of the
4862  * "delete-surrounding" signal.
4863  * set_client_window ()
4864  * Called via gtk_im_context_set_client_window() when the
4865  * input window where the entered text will appear changes. Override this to
4866  * keep track of the current input window, for instance for the purpose of
4867  * positioning a status display of your input method.
4868  * get_preedit_string ()
4869  * Called via gtk_im_context_get_preedit_string() to
4870  * retrieve the text currently being preedited for display at the cursor
4871  * position. Any input method which composes complex characters or any
4872  * other compositions from multiple sequential key presses should override
4873  * this method to provide feedback.
4874  * filter_keypress ()
4875  * Called via gtk_im_context_filter_keypress() on every
4876  * key press or release event. Every non-trivial input method needs to
4877  * override this in order to implement the mapping from key events to text.
4878  * A return value of TRUE indicates to the caller that the event was
4879  * consumed by the input method. In that case, the "commit"
4880  * signal should be emitted upon completion of a key sequence to pass the
4881  * resulting text back to the input widget. Alternatively, FALSE may be
4882  * returned to indicate that the event wasn't handled by the input method.
4883  * If a builtin mapping exists for the key, it is used to produce a
4884  * character.
4885  * focus_in ()
4886  * Called via gtk_im_context_focus_in() when the input widget
4887  * has gained focus. May be overridden to keep track of the current focus.
4888  * focus_out ()
4889  * Called via gtk_im_context_focus_out() when the input widget
4890  * has lost focus. May be overridden to keep track of the current focus.
4891  * reset ()
4892  * Called via gtk_im_context_reset() to signal a change such as a
4893  * change in cursor position. An input method that implements preediting
4894  * should override this method to clear the preedit state on reset.
4895  * set_cursor_location ()
4896  * Called via gtk_im_context_set_cursor_location()
4897  * to inform the input method of the current cursor location relative to
4898  * the client window. May be overridden to implement the display of popup
4899  * windows at the cursor position.
4900  * set_use_preedit ()
4901  * Called via gtk_im_context_set_use_preedit() to control
4902  * the use of the preedit string. Override this to display feedback by some
4903  * other means if turned off.
4904  * set_surrounding ()
4905  * Called via gtk_im_context_set_surrounding() in response
4906  * to signal "retrieve-surrounding" to update the input
4907  * method's idea of the context around the cursor. It is not necessary to
4908  * override this method even with input methods which implement
4909  * context-dependent behavior. The base implementation is sufficient for
4910  * gtk_im_context_get_surrounding() to work.
4911  * get_surrounding ()
4912  * Called via gtk_im_context_get_surrounding() to update
4913  * the context around the cursor location. It is not necessary to override
4914  * this method even with input methods which implement context-dependent
4915  * behavior. The base implementation emits
4916  * "retrieve-surrounding" and records the context received
4917  * by the subsequent invocation of get_surrounding.
4918  */
4919 public struct GtkIMContextClass
4920 {
4921 	/+* Signals +/
4922 	extern(C) void function(GtkIMContext* context) preeditStart;
4923 	extern(C) void function(GtkIMContext* context) preeditEnd;
4924 	extern(C) void function(GtkIMContext* context) preeditChanged;
4925 	extern(C) void function(GtkIMContext* context, char* str) commit;
4926 	extern(C) int function(GtkIMContext* context) retrieveSurrounding;
4927 	extern(C) int function(GtkIMContext* context, int offset, int nChars) deleteSurrounding;
4928 	/+* Virtual functions +/
4929 	extern(C) void function(GtkIMContext* context, GdkWindow* window) setClientWindow;
4930 	extern(C) void function(GtkIMContext* context, char** str, PangoAttrList** attrs, int* cursorPos) getPreeditString;
4931 	extern(C) int function(GtkIMContext* context, GdkEventKey* event) filterKeypress;
4932 	extern(C) void function(GtkIMContext* context) focusIn;
4933 	extern(C) void function(GtkIMContext* context) focusOut;
4934 	extern(C) void function(GtkIMContext* context) reset;
4935 	extern(C) void function(GtkIMContext* context, Rectangle* area) setCursorLocation;
4936 	extern(C) void function(GtkIMContext* context, int usePreedit) setUsePreedit;
4937 	extern(C) void function(GtkIMContext* context, char* text, int len, int cursorIndex) setSurrounding;
4938 	extern(C) int function(GtkIMContext* context, char** text, int* cursorIndex) getSurrounding;
4939 }
4940 
4941 
4942 /**
4943  * Bookkeeping information about a loadable input method.
4944  * const gchar *context_id;
4945  * The unique identification string of the input method.
4946  * const gchar *context_name;
4947  * The human-readable name of the input method.
4948  * const gchar *domain;
4949  * Translation domain to be used with dgettext()
4950  * const gchar *domain_dirname;
4951  * Name of locale directory for use with bindtextdomain()
4952  * const gchar *default_locales;
4953  * A colon-separated list of locales where this input method
4954  * should be the default. The asterisk "*" sets the default for all locales.
4955  */
4956 public struct GtkIMContextInfo
4957 {
4958 	char *contextId;
4959 	char *contextName;
4960 	char *domain;
4961 	char *domainDirname;
4962 	char *defaultLocales;
4963 }
4964 
4965 
4966 /**
4967  * Main Gtk struct.
4968  */
4969 public struct GtkPlug{}
4970 
4971 
4972 /**
4973  * Main Gtk struct.
4974  */
4975 public struct GtkSocket{}
4976 
4977 
4978 /**
4979  * Main Gtk struct.
4980  * GtkRecentManager contains only private data
4981  * and should be accessed using the provided API.
4982  * Since 2.10
4983  */
4984 public struct GtkRecentManager{}
4985 
4986 
4987 /**
4988  * GtkRecentInfo is an opaque data structure
4989  * whose members can only be accessed using the provided API.
4990  * GtkRecentInfo constains all the meta-data
4991  * associated with an entry in the recently used files list.
4992  * Since 2.10
4993  */
4994 public struct GtkRecentInfo{}
4995 
4996 
4997 /**
4998  * Meta-data to be passed to gtk_recent_manager_add_full() when
4999  * registering a recently used resource.
5000  * gchar *display_name;
5001  * a UTF-8 encoded string, containing the name of the recently
5002  * used resource to be displayed, or NULL;
5003  * gchar *description;
5004  * a UTF-8 encoded string, containing a short description of
5005  * the resource, or NULL;
5006  * gchar *mime_type;
5007  * the MIME type of the resource;
5008  * gchar *app_name;
5009  * the name of the application that is registering this recently
5010  * used resource;
5011  * gchar *app_exec;
5012  * command line used to launch this resource; may contain the
5013  * "%f" and "%u" escape characters which will be expanded
5014  * to the resource file path and URI respectively when the command line
5015  * is retrieved;
5016  * gchar **groups;
5017  * a vector of strings containing groups names;
5018  * gboolean is_private;
5019  * whether this resource should be displayed only by the
5020  * applications that have registered it or not.
5021  */
5022 public struct GtkRecentData
5023 {
5024 	char *displayName;
5025 	char *description;
5026 	char *mimeType;
5027 	char *appName;
5028 	char *appExec;
5029 	char **groups;
5030 	int isPrivate;
5031 }
5032 
5033 
5034 /**
5035  * Main Gtk struct.
5036  */
5037 public struct GtkRecentChooser{}
5038 
5039 
5040 public struct GtkRecentChooserIface
5041 {
5042 	GTypeInterface baseIface;
5043 	/+*
5044 	 * Methods
5045 	+/
5046 	extern(C) int function(GtkRecentChooser* chooser, char* uri, GError** error)  setCurrentUri;
5047 	extern(C) char * function(GtkRecentChooser* chooser)  getCurrentUri;
5048 	extern(C) int function(GtkRecentChooser* chooser, char* uri, GError** error)  selectUri;
5049 	extern(C) void function(GtkRecentChooser* chooser, char* uri)  unselectUri;
5050 	extern(C) void function(GtkRecentChooser* chooser)  selectAll;
5051 	extern(C) void function(GtkRecentChooser* chooser)  unselectAll;
5052 	extern(C) GList * function(GtkRecentChooser* chooser)  getItems;
5053 	extern(C) GtkRecentManager * function(GtkRecentChooser* chooser)  getRecentManager;
5054 	extern(C) void function(GtkRecentChooser* chooser, GtkRecentFilter* filter)  addFilter;
5055 	extern(C) void function(GtkRecentChooser* chooser, GtkRecentFilter* filter)  removeFilter;
5056 	extern(C) GSList * function(GtkRecentChooser* chooser)  listFilters;
5057 	extern(C) void function(GtkRecentChooser* chooser, GtkRecentSortFunc sortFunc, void* sortData, GDestroyNotify dataDestroy)  setSortFunc;
5058 	/+*
5059 	 * Signals
5060 	+/
5061 	extern(C) void function(GtkRecentChooser* chooser)  itemActivated;
5062 	extern(C) void function(GtkRecentChooser* chooser)  selectionChanged;
5063 }
5064 
5065 
5066 /**
5067  * Main Gtk struct.
5068  */
5069 public struct GtkRecentChooserDialog{}
5070 
5071 
5072 /**
5073  * Main Gtk struct.
5074  */
5075 public struct GtkRecentChooserMenu{}
5076 
5077 
5078 /**
5079  * Main Gtk struct.
5080  */
5081 public struct GtkRecentChooserWidget{}
5082 
5083 
5084 /**
5085  * Main Gtk struct.
5086  */
5087 public struct GtkRecentFilter{}
5088 
5089 
5090 /**
5091  * A GtkRecentFilterInfo struct is used
5092  * to pass information about the tested file to gtk_recent_filter_filter().
5093  */
5094 public struct GtkRecentFilterInfo
5095 {
5096 	GtkRecentFilterFlags contains;
5097 	char *uri;
5098 	char *displayName;
5099 	char *mimeType;
5100 	char **applications;
5101 	char **groups;
5102 	int age;
5103 }
5104 
5105 
5106 /**
5107  * Main Gtk struct.
5108  */
5109 public struct GtkAppChooser{}
5110 
5111 
5112 /**
5113  * Main Gtk struct.
5114  */
5115 public struct GtkAppChooserButton{}
5116 
5117 
5118 /**
5119  * Main Gtk struct.
5120  */
5121 public struct GtkAppChooserDialog{}
5122 
5123 
5124 /**
5125  * Main Gtk struct.
5126  */
5127 public struct GtkAppChooserWidget{}
5128 
5129 
5130 /**
5131  * Main Gtk struct.
5132  */
5133 public struct GtkSymbolicColor{}
5134 
5135 
5136 /**
5137  * Main Gtk struct.
5138  */
5139 public struct GtkGradient{}
5140 
5141 
5142 /**
5143  * Main Gtk struct.
5144  * The GtkRcStyle structure is used to represent a set
5145  * of information about the appearance of a widget.
5146  * This can later be composited together with other
5147  * GtkRcStyle structures to form a GtkStyle.
5148  */
5149 public struct GtkRcStyle
5150 {
5151 	char *name;
5152 	char *bgPixmapName[5];
5153 	PangoFontDescription *fontDesc;
5154 	GtkRcFlags colorFlags[5];
5155 	GdkColor fg[5];
5156 	GdkColor bg[5];
5157 	GdkColor text[5];
5158 	GdkColor base[5];
5159 	int xthickness;
5160 	int ythickness;
5161 }
5162 
5163 
5164 /**
5165  * Main Gtk struct.
5166  */
5167 public struct GtkStyle
5168 {
5169 	GdkColor fg[5];
5170 	GdkColor bg[5];
5171 	GdkColor light[5];
5172 	GdkColor dark[5];
5173 	GdkColor mid[5];
5174 	GdkColor text[5];
5175 	GdkColor base[5];
5176 	GdkColor textAa[5]; /+* Halfway between text/base +/
5177 	GdkColor black;
5178 	GdkColor white;
5179 	PangoFontDescription *fontDesc;
5180 	int xthickness;
5181 	int ythickness;
5182 	cairo_pattern_t *background[5];
5183 }
5184 
5185 
5186 public struct GtkRcProperty
5187 {
5188 	/+* quark-ified property identifier like "GtkScrollbar::spacing" +/
5189 	GQuark typeName;
5190 	GQuark propertyName;
5191 	/+* fields similar to GtkSettingsValue +/
5192 	char *origin;
5193 	GValue value;
5194 }
5195 
5196 
5197 /**
5198  * Main Gtk struct.
5199  */
5200 public struct GtkHScale{}
5201 
5202 
5203 /**
5204  * Main Gtk struct.
5205  * The GtkVScale struct contains private data only, and
5206  * should be accessed using the functions below.
5207  */
5208 public struct GtkVScale{}
5209 
5210 
5211 /**
5212  * Main Gtk struct.
5213  */
5214 public struct GtkTearoffMenuItem{}
5215 
5216 
5217 /**
5218  * Main Gtk struct.
5219  */
5220 public struct GtkColorSelection{}
5221 
5222 
5223 /**
5224  * Main Gtk struct.
5225  */
5226 public struct GtkColorSelectionDialog{}
5227 
5228 
5229 /**
5230  * Main Gtk struct.
5231  */
5232 public struct GtkHSV{}
5233 
5234 
5235 /**
5236  * Main Gtk struct.
5237  */
5238 public struct GtkFontSelection{}
5239 
5240 
5241 /**
5242  * Main Gtk struct.
5243  */
5244 public struct GtkFontSelectionDialog{}
5245 
5246 
5247 /**
5248  * Main Gtk struct.
5249  */
5250 public struct GtkHBox{}
5251 
5252 
5253 /**
5254  * Main Gtk struct.
5255  */
5256 public struct GtkVBox{}
5257 
5258 
5259 /**
5260  * Main Gtk struct.
5261  */
5262 public struct GtkHButtonBox{}
5263 
5264 
5265 /**
5266  * Main Gtk struct.
5267  */
5268 public struct GtkVButtonBox{}
5269 
5270 
5271 /**
5272  * Main Gtk struct.
5273  */
5274 public struct GtkHPaned{}
5275 
5276 
5277 /**
5278  * Main Gtk struct.
5279  */
5280 public struct GtkVPaned{}
5281 
5282 
5283 /**
5284  * Main Gtk struct.
5285  */
5286 public struct GtkTable{}
5287 
5288 
5289 /**
5290  * Main Gtk struct.
5291  */
5292 public struct GtkHSeparator{}
5293 
5294 
5295 /**
5296  * Main Gtk struct.
5297  * The GtkVSeparator struct contains private data only, and
5298  * should be accessed using the functions below.
5299  */
5300 public struct GtkVSeparator{}
5301 
5302 
5303 /**
5304  * Main Gtk struct.
5305  */
5306 public struct GtkHScrollbar{}
5307 
5308 
5309 /**
5310  * Main Gtk struct.
5311  * The GtkVScrollbar struct contains private data and should be accessed
5312  * using the functions below.
5313  */
5314 public struct GtkVScrollbar{}
5315 
5316 
5317 /**
5318  * Main Gtk struct.
5319  */
5320 public struct GtkUIManager{}
5321 
5322 
5323 /**
5324  * Main Gtk struct.
5325  */
5326 public struct GtkActionGroup{}
5327 
5328 
5329 /**
5330  * Warning
5331  * GtkActionEntry is deprecated and should not be used in newly-written code. 3.10
5332  * GtkActionEntry structs are used with gtk_action_group_add_actions() to
5333  * construct actions.
5334  * const gchar *name;
5335  * The name of the action.
5336  * const gchar *stock_id;
5337  * The stock id for the action, or the name of an icon from the
5338  * icon theme.
5339  * const gchar *label;
5340  * The label for the action. This field should typically be marked
5341  * for translation, see gtk_action_group_set_translation_domain(). If
5342  * label is NULL, the label of the stock item with id stock_id is used.
5343  * const gchar *accelerator;
5344  * The accelerator for the action, in the format understood by
5345  * gtk_accelerator_parse().
5346  * const gchar *tooltip;
5347  * The tooltip for the action. This field should typically be
5348  * marked for translation, see gtk_action_group_set_translation_domain().
5349  * GCallback callback;
5350  * The function to call when the action is activated.
5351  */
5352 public struct GtkActionEntry
5353 {
5354 	char *name;
5355 	char *stockId;
5356 	char *label;
5357 	char *accelerator;
5358 	char *tooltip;
5359 	GCallback callback;
5360 }
5361 
5362 
5363 /**
5364  * Warning
5365  * GtkToggleActionEntry is deprecated and should not be used in newly-written code. 3.10
5366  * GtkToggleActionEntry structs are used with
5367  * gtk_action_group_add_toggle_actions() to construct toggle actions.
5368  * const gchar *name;
5369  * The name of the action.
5370  * const gchar *stock_id;
5371  * The stock id for the action, or the name of an icon from the
5372  * icon theme.
5373  * const gchar *label;
5374  * The label for the action. This field should typically be marked
5375  * for translation, see gtk_action_group_set_translation_domain().
5376  * const gchar *accelerator;
5377  * The accelerator for the action, in the format understood by
5378  * gtk_accelerator_parse().
5379  * const gchar *tooltip;
5380  * The tooltip for the action. This field should typically be
5381  * marked for translation, see gtk_action_group_set_translation_domain().
5382  * GCallback callback;
5383  * The function to call when the action is activated.
5384  * gboolean is_active;
5385  * The initial state of the toggle action.
5386  */
5387 public struct GtkToggleActionEntry
5388 {
5389 	char *name;
5390 	char *stockId;
5391 	char *label;
5392 	char *accelerator;
5393 	char *tooltip;
5394 	GCallback callback;
5395 	int isActive;
5396 }
5397 
5398 
5399 /**
5400  * Warning
5401  * GtkRadioActionEntry is deprecated and should not be used in newly-written code. 3.10
5402  * GtkRadioActionEntry structs are used with
5403  * gtk_action_group_add_radio_actions() to construct groups of radio actions.
5404  * const gchar *name;
5405  * The name of the action.
5406  * const gchar *stock_id;
5407  * The stock id for the action, or the name of an icon from the
5408  * icon theme.
5409  * const gchar *label;
5410  * The label for the action. This field should typically be marked
5411  * for translation, see gtk_action_group_set_translation_domain().
5412  * const gchar *accelerator;
5413  * The accelerator for the action, in the format understood by
5414  * gtk_accelerator_parse().
5415  * const gchar *tooltip;
5416  * The tooltip for the action. This field should typically be
5417  * marked for translation, see gtk_action_group_set_translation_domain().
5418  * gint value;
5419  * The value to set on the radio action. See
5420  * gtk_radio_action_get_current_value().
5421  */
5422 public struct GtkRadioActionEntry
5423 {
5424 	char *name;
5425 	char *stockId;
5426 	char *label;
5427 	char *accelerator;
5428 	char *tooltip;
5429 	int value;
5430 }
5431 
5432 
5433 /**
5434  * Main Gtk struct.
5435  */
5436 public struct GtkAction{}
5437 
5438 
5439 /**
5440  * Main Gtk struct.
5441  */
5442 public struct GtkToggleAction{}
5443 
5444 
5445 /**
5446  * Main Gtk struct.
5447  */
5448 public struct GtkRadioAction{}
5449 
5450 
5451 /**
5452  * Main Gtk struct.
5453  */
5454 public struct GtkRecentAction{}
5455 
5456 
5457 /**
5458  * Main Gtk struct.
5459  */
5460 public struct GtkActivatable{}
5461 
5462 
5463 /**
5464  * Warning
5465  * GtkActivatableIface is deprecated and should not be used in newly-written code. 3.10
5466  * GTypeInterface g_iface;
5467  * update ()
5468  * Called to update the activatable when its related action's properties change.
5469  * You must check the "use-action-appearance" property only apply action
5470  * properties that are meant to effect the appearance accordingly.
5471  * sync_action_properties ()
5472  * Called to update the activatable completely, this is called internally when
5473  * "related-action" property is set or unset and by the implementor when
5474  * "use-action-appearance" changes.
5475  * Note
5476  * This method can be called
5477  * with a NULL action at times
5478  * Since 2.16
5479  */
5480 public struct GtkActivatableIface
5481 {
5482 	GTypeInterface gIface;
5483 	/+* virtua table +/
5484 	extern(C) void function(GtkActivatable* activatable, GtkAction* action, char* propertyName)  update;
5485 	extern(C) void function(GtkActivatable* activatable, GtkAction* action)  syncActionProperties;
5486 }
5487 
5488 
5489 /**
5490  * Main Gtk struct.
5491  */
5492 public struct GtkImageMenuItem{}
5493 
5494 
5495 /**
5496  * Main Gtk struct.
5497  */
5498 public struct GtkStockItem
5499 {
5500 	char *stockId;
5501 	char *label;
5502 	GdkModifierType modifier;
5503 	uint keyval;
5504 	char *translationDomain;
5505 }
5506 
5507 
5508 /*
5509  * major :
5510  * major version (e.g. 1 for version 1.2.5)
5511  * minor :
5512  * minor version (e.g. 2 for version 1.2.5)
5513  * micro :
5514  * micro version (e.g. 5 for version 1.2.5)
5515  * Returns :
5516  * TRUE if the version of the GTK+ header files
5517  * is the same as or newer than the passed-in version.
5518  */
5519 // TODO
5520 // #define GTK_CHECK_VERSION(major,minor,micro)
5521 
5522 /*
5523  * This macro should be used to emit a warning about and unexpected type value
5524  * in a GtkBuildable add_child implementation.
5525  * object :
5526  * the GtkBuildable on which the warning ocurred
5527  * type :
5528  * the unexpected type value
5529  */
5530 // TODO
5531 // #define GTK_BUILDER_WARN_INVALID_CHILD_TYPE(object, type)
5532 
5533 /*
5534  * This macro should be used to emit a standard warning about unexpected
5535  * properties in set_cell_property() and get_cell_property() implementations.
5536  * object :
5537  * the GObject on which set_cell_property() or get_get_property()
5538  * was called
5539  * property_id :
5540  * the numeric id of the property
5541  * pspec :
5542  * the GParamSpec of the property
5543  */
5544 // TODO
5545 // #define GTK_CELL_AREA_WARN_INVALID_CELL_PROPERTY_ID(object, property_id, pspec)
5546 
5547 /*
5548  */
5549 // TODO
5550 // #define GTK_IS_RESIZE_CONTAINER(widget)
5551 
5552 /*
5553  * This macro should be used to emit a standard warning about unexpected
5554  * properties in set_child_property() and get_child_property() implementations.
5555  * object :
5556  * the GObject on which set_child_property() or get_child_property()
5557  * was called
5558  * property_id :
5559  * the numeric id of the property
5560  * pspec :
5561  * the GParamSpec of the property
5562  */
5563 // TODO
5564 // #define GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID(object, property_id, pspec)
5565 
5566 /*
5567  * style :
5568  * a GtkStyle.
5569  * Returns :
5570  * whether the style is attached to a window.
5571  */
5572 // TODO
5573 // #define GTK_STYLE_ATTACHED(style) (GTK_STYLE (style)->attach_count > 0)
5574 
5575 /*
5576  * Each GTK+ module must have a function gtk_module_init()
5577  * with this prototype. This function is called after loading
5578  * the module.
5579  * argc :
5580  * GTK+ always passes NULL for this argument. [allow-none]
5581  * argv :
5582  * GTK+ always passes NULL for this argument. [allow-none][array length=argc]
5583  */
5584 // void (*GtkModuleInitFunc) (gint *argc,  gchar ***argv);
5585 public alias extern(C) void function(gint* argc, gchar*** argv) GtkModuleInitFunc;
5586 
5587 /*
5588  * A multihead-aware GTK+ module may have a gtk_module_display_init()
5589  * function with this prototype. GTK+ calls this function for each
5590  * opened display.
5591  * display :
5592  * an open GdkDisplay
5593  * Since 2.2
5594  */
5595 // void (*GtkModuleDisplayInitFunc) (GdkDisplay *display);
5596 public alias extern(C) void function(GdkDisplay* display) GtkModuleDisplayInitFunc;
5597 
5598 /*
5599  * Key snooper functions are called before normal event delivery.
5600  * They can be used to implement custom key event handling.
5601  * grab_widget :
5602  * the widget to which the event will be delivered
5603  * event :
5604  * the key event
5605  * func_data :
5606  * data supplied to gtk_key_snooper_install()
5607  * Returns :
5608  * TRUE to stop further processing of event, FALSE to continue.
5609  */
5610 // gint (*GtkKeySnoopFunc) (GtkWidget *grab_widget,  GdkEventKey *event,  gpointer func_data);
5611 public alias extern(C) int function(GtkWidget* grabWidget, GdkEventKey* event, void* funcData) GtkKeySnoopFunc;
5612 
5613 /*
5614  */
5615 // gboolean (*GtkAccelGroupActivate) (GtkAccelGroup *accel_group,  GObject *acceleratable,  guint keyval,  GdkModifierType modifier);
5616 public alias extern(C) int function(GtkAccelGroup* accelGroup, GObject* acceleratable, uint keyval, GdkModifierType modifier) GtkAccelGroupActivate;
5617 
5618 /*
5619  * data :
5620  * . [closure]
5621  * Since 2.2
5622  */
5623 // gboolean (*GtkAccelGroupFindFunc) (GtkAccelKey *key,  GClosure *closure,  gpointer data);
5624 public alias extern(C) int function(GtkAccelKey* key, GClosure* closure, void* data) GtkAccelGroupFindFunc;
5625 
5626 /*
5627  * data :
5628  * User data passed to gtk_accel_map_foreach() or
5629  * gtk_accel_map_foreach_unfiltered()
5630  * accel_path :
5631  * Accel path of the current accelerator
5632  * accel_key :
5633  * Key of the current accelerator
5634  * accel_mods :
5635  * Modifiers of the current accelerator
5636  * changed :
5637  * Changed flag of the accelerator (if TRUE, accelerator has changed
5638  * during runtime and would need to be saved during an accelerator dump)
5639  */
5640 // void (*GtkAccelMapForeach) (gpointer data,  const gchar *accel_path,  guint accel_key,  GdkModifierType accel_mods,  gboolean changed);
5641 public alias extern(C) void function(void* data, char* accelPath, uint accelKey, GdkModifierType accelMods, int changed) GtkAccelMapForeach;
5642 
5643 /*
5644  * A function to be called when the results of gtk_clipboard_request_contents()
5645  * are received, or when the request fails.
5646  * clipboard :
5647  * the GtkClipboard
5648  * selection_data :
5649  * a GtkSelectionData containing the data was received.
5650  * If retrieving the data failed, then then length field
5651  * of selection_data will be negative.
5652  * data :
5653  * the user_data supplied to gtk_clipboard_request_contents().
5654  */
5655 // void (*GtkClipboardReceivedFunc) (GtkClipboard *clipboard,  GtkSelectionData *selection_data,  gpointer data);
5656 public alias extern(C) void function(GtkClipboard* clipboard, GtkSelectionData* selectionData, void* data) GtkClipboardReceivedFunc;
5657 
5658 /*
5659  * A function to be called when the results of gtk_clipboard_request_text()
5660  * are received, or when the request fails.
5661  * clipboard :
5662  * the GtkClipboard
5663  * text :
5664  * the text received, as a UTF-8 encoded string, or NULL
5665  * if retrieving the data failed.
5666  * data :
5667  * the user_data supplied to gtk_clipboard_request_text().
5668  */
5669 // void (*GtkClipboardTextReceivedFunc) (GtkClipboard *clipboard,  const gchar *text,  gpointer data);
5670 public alias extern(C) void function(GtkClipboard* clipboard, char* text, void* data) GtkClipboardTextReceivedFunc;
5671 
5672 /*
5673  * A function to be called when the results of gtk_clipboard_request_image()
5674  * are received, or when the request fails.
5675  * clipboard :
5676  * the GtkClipboard
5677  * pixbuf :
5678  * the received image
5679  * data :
5680  * the user_data supplied to gtk_clipboard_request_image().
5681  * Since 2.6
5682  */
5683 // void (*GtkClipboardImageReceivedFunc) (GtkClipboard *clipboard,  GdkPixbuf *pixbuf,  gpointer data);
5684 public alias extern(C) void function(GtkClipboard* clipboard, GdkPixbuf* pixbuf, void* data) GtkClipboardImageReceivedFunc;
5685 
5686 /*
5687  * A function to be called when the results of gtk_clipboard_request_targets()
5688  * are received, or when the request fails.
5689  * clipboard :
5690  * the GtkClipboard
5691  * atoms :
5692  * the supported targets, as array of GdkAtom, or NULL
5693  * if retrieving the data failed.
5694  * n_atoms :
5695  * the length of the atoms array.
5696  * data :
5697  * the user_data supplied to gtk_clipboard_request_targets().
5698  * Since 2.4
5699  */
5700 // void (*GtkClipboardTargetsReceivedFunc) (GtkClipboard *clipboard,  GdkAtom *atoms,  gint n_atoms,  gpointer data);
5701 public alias extern(C) void function(GtkClipboard* clipboard, GdkAtom* atoms, int nAtoms, void* data) GtkClipboardTargetsReceivedFunc;
5702 
5703 /*
5704  */
5705 // void (*GtkClipboardRichTextReceivedFunc) (GtkClipboard *clipboard,  GdkAtom format,  const guint8 *text,  gsize length,  gpointer data);
5706 public alias extern(C) void function(GtkClipboard* clipboard, GdkAtom format, guint8* text, gsize length, void* data) GtkClipboardRichTextReceivedFunc;
5707 
5708 /*
5709  */
5710 // void (*GtkClipboardURIReceivedFunc) (GtkClipboard *clipboard,  gchar **uris,  gpointer data);
5711 public alias extern(C) void function(GtkClipboard* clipboard, gchar** uris, void* data) GtkClipboardURIReceivedFunc;
5712 
5713 /*
5714  * A function that will be called to provide the contents of the selection.
5715  * If multiple types of data were advertised, the requested type can
5716  * be determined from the info parameter or by checking the target field
5717  * of selection_data. If the data could successfully be converted into
5718  * then it should be stored into the selection_data object by
5719  * calling gtk_selection_data_set() (or related functions such
5720  * as gtk_selection_data_set_text()). If no data is set, the requestor
5721  * will be informed that the attempt to get the data failed.
5722  * clipboard :
5723  * the GtkClipboard
5724  * selection_data :
5725  * a GtkSelectionData argument in which the requested
5726  * data should be stored.
5727  * info :
5728  * the info field corresponding to the requested target from the
5729  * GtkTargetEntry array passed to gtk_clipboard_set_with_data() or
5730  * gtk_clipboard_set_with_owner().
5731  * user_data_or_owner :
5732  * the user_data argument passed to
5733  * gtk_clipboard_set_with_data(), or the owner argument passed to
5734  * gtk_clipboard_set_with_owner()
5735  */
5736 // void (*GtkClipboardGetFunc) (GtkClipboard *clipboard,  GtkSelectionData *selection_data,  guint info,  gpointer user_data_or_owner);
5737 public alias extern(C) void function(GtkClipboard* clipboard, GtkSelectionData* selectionData, uint info, void* userDataOrOwner) GtkClipboardGetFunc;
5738 
5739 /*
5740  * A function that will be called when the contents of the clipboard are changed
5741  * or cleared. Once this has called, the user_data_or_owner argument
5742  * will not be used again.
5743  * clipboard :
5744  * the GtkClipboard
5745  * user_data_or_owner :
5746  * the user_data argument passed to gtk_clipboard_set_with_data(),
5747  * or the owner argument passed to gtk_clipboard_set_with_owner()
5748  */
5749 // void (*GtkClipboardClearFunc) (GtkClipboard *clipboard,  gpointer user_data_or_owner);
5750 public alias extern(C) void function(GtkClipboard* clipboard, void* userDataOrOwner) GtkClipboardClearFunc;
5751 
5752 /*
5753  */
5754 // gboolean (*GtkStylePropertyParser) (const gchar *string,  GValue *value,  GError **error);
5755 public alias extern(C) int function(char* string, GValue* value, GError** error) GtkStylePropertyParser;
5756 
5757 /*
5758  * This is the signature of a function used to connect signals. It is used
5759  * by the gtk_builder_connect_signals() and gtk_builder_connect_signals_full()
5760  * methods. It is mainly intended for interpreted language bindings, but
5761  * could be useful where the programmer wants more control over the signal
5762  * connection process. Note that this function can only be called once,
5763  * subsequent calls will do nothing.
5764  * builder :
5765  * a GtkBuilder
5766  * object :
5767  * object to connect a signal to
5768  * signal_name :
5769  * name of the signal
5770  * handler_name :
5771  * name of the handler
5772  * connect_object :
5773  * a GObject, if non-NULL, use g_signal_connect_object()
5774  * flags :
5775  * GConnectFlags to use
5776  * user_data :
5777  * user data
5778  * Since 2.12
5779  */
5780 // void (*GtkBuilderConnectFunc) (GtkBuilder *builder,  GObject *object,  const gchar *signal_name,  const gchar *handler_name,  GObject *connect_object,  GConnectFlags flags,  gpointer user_data);
5781 public alias extern(C) void function(GtkBuilder* builder, GObject* object, char* signalName, char* handlerName, GObject* connectObject, GConnectFlags flags, void* userData) GtkBuilderConnectFunc;
5782 
5783 /*
5784  * A function used by gtk_assistant_set_forward_page_func() to know which
5785  * is the next page given a current one. It's called both for computing the
5786  * next page when the user presses the "forward" button and for handling
5787  * the behavior of the "last" button.
5788  * current_page :
5789  * The page number used to calculate the next page.
5790  * data :
5791  * user data. [closure]
5792  * Returns :
5793  * The next page number.
5794  */
5795 // gint (*GtkAssistantPageFunc) (gint current_page,  gpointer data);
5796 public alias extern(C) int function(int currentPage, void* data) GtkAssistantPageFunc;
5797 
5798 /*
5799  * Will be called whenever the row changes or is added and lets you control
5800  * if the row should be visible or not.
5801  * row :
5802  * the row that may be filtered
5803  * user_data :
5804  * user data. [closure]
5805  * Returns :
5806  * TRUE if the row should be visible, FALSE otherwise
5807  * Since 3.10
5808  */
5809 // gboolean (*GtkListBoxFilterFunc) (GtkListBoxRow *row,  gpointer user_data);
5810 public alias extern(C) int function(GtkListBoxRow* row, void* userData) GtkListBoxFilterFunc;
5811 
5812 /*
5813  * Compare two rows to determine which should be first.
5814  * row1 :
5815  * the first row
5816  * row2 :
5817  * the second row
5818  * user_data :
5819  * user data. [closure]
5820  * Returns :
5821  * < 0 if row1 should be before row2, 0 if they are
5822  * equal and > 0 otherwise
5823  * Since 3.10
5824  */
5825 // gint (*GtkListBoxSortFunc) (GtkListBoxRow *row1,  GtkListBoxRow *row2,  gpointer user_data);
5826 public alias extern(C) int function(GtkListBoxRow* row1, GtkListBoxRow* row2, void* userData) GtkListBoxSortFunc;
5827 
5828 /*
5829  * Whenever row changes or which row is before row changes this
5830  * is called, which lets you update the header on row. You may
5831  * remove or set a new one via gtk_list_box_row_set_header() or
5832  * just change the state of the current header widget.
5833  * row :
5834  * the row to update
5835  * before :
5836  * the row before row, or NULL if it is first. [allow-none]
5837  * user_data :
5838  * user data. [closure]
5839  * Since 3.10
5840  */
5841 // void (*GtkListBoxUpdateHeaderFunc) (GtkListBoxRow *row,  GtkListBoxRow *before,  gpointer user_data);
5842 public alias extern(C) void function(GtkListBoxRow* row, GtkListBoxRow* before, void* userData) GtkListBoxUpdateHeaderFunc;
5843 
5844 /*
5845  * A function which decides whether the row indicated by iter matches
5846  * a given key, and should be displayed as a possible completion for key.
5847  * Note that key is normalized and case-folded (see g_utf8_normalize()
5848  * and g_utf8_casefold()). If this is not appropriate, match functions
5849  * have access to the unmodified key via
5850  * gtk_entry_get_text (GTK_ENTRY (gtk_entry_completion_get_entry ())).
5851  * completion :
5852  * the GtkEntryCompletion
5853  * key :
5854  * the string to match, normalized and case-folded
5855  * iter :
5856  * a GtkTreeIter indicating the row to match
5857  * user_data :
5858  * user data given to gtk_entry_completion_set_match_func()
5859  * Returns :
5860  * TRUE if iter should be displayed as a possible completion
5861  * for key
5862  */
5863 // gboolean (*GtkEntryCompletionMatchFunc) (GtkEntryCompletion *completion,  const gchar *key,  GtkTreeIter *iter,  gpointer user_data);
5864 public alias extern(C) int function(GtkEntryCompletion* completion, char* key, GtkTreeIter* iter, void* userData) GtkEntryCompletionMatchFunc;
5865 
5866 /*
5867  */
5868 // gboolean (*GtkTextCharPredicate) (gunichar ch,  gpointer user_data);
5869 public alias extern(C) int function(gunichar ch, void* userData) GtkTextCharPredicate;
5870 
5871 /*
5872  * A function that is called to deserialize rich text that has been
5873  * serialized with gtk_text_buffer_serialize(), and insert it at iter.
5874  * register_buffer :
5875  * the GtkTextBuffer the format is registered with
5876  * content_buffer :
5877  * the GtkTextBuffer to deserialize into
5878  * iter :
5879  * insertion point for the deserialized text
5880  * data :
5881  * data to deserialize
5882  * length :
5883  * length of data
5884  * create_tags :
5885  * TRUE if deserializing may create tags
5886  * user_data :
5887  * user data that was specified when registering the format
5888  * error :
5889  * return location for a GError
5890  * Returns :
5891  * TRUE on success, FALSE otherwise
5892  */
5893 // gboolean (*GtkTextBufferDeserializeFunc) (GtkTextBuffer *register_buffer,  GtkTextBuffer *content_buffer,  GtkTextIter *iter,  const guint8 *data,  gsize length,  gboolean create_tags,  gpointer user_data,  GError **error);
5894 public alias extern(C) int function(GtkTextBuffer* registerBuffer, GtkTextBuffer* contentBuffer, GtkTextIter* iter, guint8* data, gsize length, int createTags, void* userData, GError** error) GtkTextBufferDeserializeFunc;
5895 
5896 /*
5897  * A function that is called to serialize the content of a text buffer.
5898  * It must return the serialized form of the content.
5899  * register_buffer :
5900  * the GtkTextBuffer for which the format is registered
5901  * content_buffer :
5902  * the GtkTextBuffer to serialize
5903  * start :
5904  * start of the block of text to serialize
5905  * end :
5906  * end of the block of text to serialize
5907  * length :
5908  * Return location for the length of the serialized data
5909  * user_data :
5910  * user data that was specified when registering the format
5911  * Returns :
5912  * a newly-allocated array of guint8 which contains the serialized
5913  * data, or NULL if an error occurred
5914  */
5915 // guint8 * (*GtkTextBufferSerializeFunc) (GtkTextBuffer *register_buffer,  GtkTextBuffer *content_buffer,  const GtkTextIter *start,  const GtkTextIter *end,  gsize *length,  gpointer user_data);
5916 public alias extern(C) ubyte * function(GtkTextBuffer* registerBuffer, GtkTextBuffer* contentBuffer, GtkTextIter* start, GtkTextIter* end, gsize* length, void* userData) GtkTextBufferSerializeFunc;
5917 
5918 /*
5919  */
5920 // void (*GtkTextTagTableForeach) (GtkTextTag *tag,  gpointer data);
5921 public alias extern(C) void function(GtkTextTag* tag, void* data) GtkTextTagTableForeach;
5922 
5923 /*
5924  * Type of the callback passed to gtk_tree_model_foreach() to
5925  * iterate over the rows in a tree model.
5926  * model :
5927  * the GtkTreeModel being iterated
5928  * path :
5929  * the current GtkTreePath
5930  * iter :
5931  * the current GtkTreeIter
5932  * data :
5933  * The user data passed to gtk_tree_model_foreach()
5934  * Returns :
5935  * TRUE to stop iterating, FALSE to continue
5936  */
5937 // gboolean (*GtkTreeModelForeachFunc) (GtkTreeModel *model,  GtkTreePath *path,  GtkTreeIter *iter,  gpointer data);
5938 public alias extern(C) int function(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, void* data) GtkTreeModelForeachFunc;
5939 
5940 /*
5941  * A function used by gtk_tree_selection_set_select_function() to filter
5942  * whether or not a row may be selected. It is called whenever a row's
5943  * state might change. A return value of TRUE indicates to selection
5944  * that it is okay to change the selection.
5945  * selection :
5946  * A GtkTreeSelection
5947  * model :
5948  * A GtkTreeModel being viewed
5949  * path :
5950  * The GtkTreePath of the row in question
5951  * path_currently_selected :
5952  * TRUE, if the path is currently selected
5953  * data :
5954  * user data. [closure]
5955  * Returns :
5956  * TRUE, if the selection state of the row can be toggled
5957  */
5958 // gboolean (*GtkTreeSelectionFunc) (GtkTreeSelection *selection,  GtkTreeModel *model,  GtkTreePath *path,  gboolean path_currently_selected,  gpointer data);
5959 public alias extern(C) int function(GtkTreeSelection* selection, GtkTreeModel* model, GtkTreePath* path, int pathCurrentlySelected, void* data) GtkTreeSelectionFunc;
5960 
5961 /*
5962  * A function used by gtk_tree_selection_selected_foreach() to map all
5963  * selected rows. It will be called on every selected row in the view.
5964  * model :
5965  * The GtkTreeModel being viewed
5966  * path :
5967  * The GtkTreePath of a selected row
5968  * iter :
5969  * A GtkTreeIter pointing to a selected row
5970  * data :
5971  * user data. [closure]
5972  */
5973 // void (*GtkTreeSelectionForeachFunc) (GtkTreeModel *model,  GtkTreePath *path,  GtkTreeIter *iter,  gpointer data);
5974 public alias extern(C) void function(GtkTreeModel* model, GtkTreePath* path, GtkTreeIter* iter, void* data) GtkTreeSelectionForeachFunc;
5975 
5976 /*
5977  * A function to set the properties of a cell instead of just using the
5978  * straight mapping between the cell and the model. This is useful for
5979  * customizing the cell renderer. For example, a function might get an
5980  * integer from the tree_model, and render it to the "text" attribute of
5981  * "cell" by converting it to its written equivilent. This is set by
5982  * calling gtk_tree_view_column_set_cell_data_func()
5983  * tree_column :
5984  * A GtkTreeViewColumn
5985  * cell :
5986  * The GtkCellRenderer that is being rendered by tree_column
5987  * tree_model :
5988  * The GtkTreeModel being rendered
5989  * iter :
5990  * A GtkTreeIter of the current row rendered
5991  * data :
5992  * user data
5993  */
5994 // void (*GtkTreeCellDataFunc) (GtkTreeViewColumn *tree_column,  GtkCellRenderer *cell,  GtkTreeModel *tree_model,  GtkTreeIter *iter,  gpointer data);
5995 public alias extern(C) void function(GtkTreeViewColumn* treeColumn, GtkCellRenderer* cell, GtkTreeModel* treeModel, GtkTreeIter* iter, void* data) GtkTreeCellDataFunc;
5996 
5997 /*
5998  * Function type for determining whether column can be dropped in a
5999  * particular spot (as determined by prev_column and next_column). In
6000  * left to right locales, prev_column is on the left of the potential drop
6001  * spot, and next_column is on the right. In right to left mode, this is
6002  * reversed. This function should return TRUE if the spot is a valid drop
6003  * spot. Please note that returning TRUE does not actually indicate that
6004  * the column drop was made, but is meant only to indicate a possible drop
6005  * spot to the user.
6006  * tree_view :
6007  * A GtkTreeView
6008  * column :
6009  * The GtkTreeViewColumn being dragged
6010  * prev_column :
6011  * A GtkTreeViewColumn on one side of column
6012  * next_column :
6013  * A GtkTreeViewColumn on the other side of column
6014  * data :
6015  * user data. [closure]
6016  * Returns :
6017  * TRUE, if column can be dropped in this spot
6018  */
6019 // gboolean (*GtkTreeViewColumnDropFunc) (GtkTreeView *tree_view,  GtkTreeViewColumn *column,  GtkTreeViewColumn *prev_column,  GtkTreeViewColumn *next_column,  gpointer data);
6020 public alias extern(C) int function(GtkTreeView* treeView, GtkTreeViewColumn* column, GtkTreeViewColumn* prevColumn, GtkTreeViewColumn* nextColumn, void* data) GtkTreeViewColumnDropFunc;
6021 
6022 /*
6023  * Function used for gtk_tree_view_map_expanded_rows().
6024  * tree_view :
6025  * A GtkTreeView
6026  * path :
6027  * The path that's expanded
6028  * user_data :
6029  * user data
6030  */
6031 // void (*GtkTreeViewMappingFunc) (GtkTreeView *tree_view,  GtkTreePath *path,  gpointer user_data);
6032 public alias extern(C) void function(GtkTreeView* treeView, GtkTreePath* path, void* userData) GtkTreeViewMappingFunc;
6033 
6034 /*
6035  * A function used for checking whether a row in model matches
6036  * a search key string entered by the user. Note the return value
6037  * is reversed from what you would normally expect, though it
6038  * has some similarity to strcmp() returning 0 for equal strings.
6039  * model :
6040  * the GtkTreeModel being searched
6041  * column :
6042  * the search column set by gtk_tree_view_set_search_column()
6043  * key :
6044  * the key string to compare with
6045  * iter :
6046  * a GtkTreeIter pointing the row of model that should be compared
6047  * with key.
6048  * search_data :
6049  * user data from gtk_tree_view_set_search_equal_func(). [closure]
6050  * Returns :
6051  * FALSE if the row matches, TRUE otherwise.
6052  */
6053 // gboolean (*GtkTreeViewSearchEqualFunc) (GtkTreeModel *model,  gint column,  const gchar *key,  GtkTreeIter *iter,  gpointer search_data);
6054 public alias extern(C) int function(GtkTreeModel* model, int column, char* key, GtkTreeIter* iter, void* searchData) GtkTreeViewSearchEqualFunc;
6055 
6056 /*
6057  */
6058 // void (*GtkTreeViewSearchPositionFunc) (GtkTreeView *tree_view,  GtkWidget *search_dialog,  gpointer user_data);
6059 public alias extern(C) void function(GtkTreeView* treeView, GtkWidget* searchDialog, void* userData) GtkTreeViewSearchPositionFunc;
6060 
6061 /*
6062  */
6063 // void (*GtkTreeDestroyCountFunc) (GtkTreeView *tree_view,  GtkTreePath *path,  gint children,  gpointer user_data);
6064 public alias extern(C) void function(GtkTreeView* treeView, GtkTreePath* path, int children, void* userData) GtkTreeDestroyCountFunc;
6065 
6066 /*
6067  * Function type for determining whether the row pointed to by iter should
6068  * be rendered as a separator. A common way to implement this is to have a
6069  * boolean column in the model, whose values the GtkTreeViewRowSeparatorFunc
6070  * returns.
6071  * model :
6072  * the GtkTreeModel
6073  * iter :
6074  * a GtkTreeIter pointing at a row in model
6075  * data :
6076  * user data. [closure]
6077  * Returns :
6078  * TRUE if the row is a separator
6079  */
6080 // gboolean (*GtkTreeViewRowSeparatorFunc) (GtkTreeModel *model,  GtkTreeIter *iter,  gpointer data);
6081 public alias extern(C) int function(GtkTreeModel* model, GtkTreeIter* iter, void* data) GtkTreeViewRowSeparatorFunc;
6082 
6083 /*
6084  * A function used by gtk_icon_view_selected_foreach() to map all
6085  * selected rows. It will be called on every selected row in the view.
6086  * icon_view :
6087  * a GtkIconView
6088  * path :
6089  * The GtkTreePath of a selected row
6090  * data :
6091  * user data
6092  */
6093 // void (*GtkIconViewForeachFunc) (GtkIconView *icon_view,  GtkTreePath *path,  gpointer data);
6094 public alias extern(C) void function(GtkIconView* iconView, GtkTreePath* path, void* data) GtkIconViewForeachFunc;
6095 
6096 /*
6097  * A GtkTreeIterCompareFunc should return a negative integer, zero, or a positive
6098  * integer if a sorts before b, a sorts with b, or a sorts after b
6099  * respectively. If two iters compare as equal, their order in the sorted model
6100  * is undefined. In order to ensure that the GtkTreeSortable behaves as
6101  * expected, the GtkTreeIterCompareFunc must define a partial order on
6102  * the model, i.e. it must be reflexive, antisymmetric and transitive.
6103  * For example, if model is a product catalogue, then a compare function
6104  * for the "price" column could be one which returns
6105  * price_of(a) - price_of(b).
6106  * model :
6107  * The GtkTreeModel the comparison is within
6108  * a :
6109  * A GtkTreeIter in model
6110  * b :
6111  * Another GtkTreeIter in model
6112  * user_data :
6113  * Data passed when the compare func is assigned e.g. by
6114  * gtk_tree_sortable_set_sort_func()
6115  * Returns :
6116  * a negative integer, zero or a positive integer depending on whether
6117  * a sorts before, with or after b
6118  */
6119 // gint (*GtkTreeIterCompareFunc) (GtkTreeModel *model,  GtkTreeIter *a,  GtkTreeIter *b,  gpointer user_data);
6120 public alias extern(C) int function(GtkTreeModel* model, GtkTreeIter* a, GtkTreeIter* b, void* userData) GtkTreeIterCompareFunc;
6121 
6122 /*
6123  * A function which decides whether the row indicated by iter is visible.
6124  * model :
6125  * the child model of the GtkTreeModelFilter
6126  * iter :
6127  * a GtkTreeIter pointing to the row in model whose visibility
6128  * is determined
6129  * data :
6130  * user data given to gtk_tree_model_filter_set_visible_func(). [closure]
6131  * Returns :
6132  * Whether the row indicated by iter is visible.
6133  */
6134 // gboolean (*GtkTreeModelFilterVisibleFunc) (GtkTreeModel *model,  GtkTreeIter *iter,  gpointer data);
6135 public alias extern(C) int function(GtkTreeModel* model, GtkTreeIter* iter, void* data) GtkTreeModelFilterVisibleFunc;
6136 
6137 /*
6138  * A function which calculates display values from raw values in the model.
6139  * It must fill value with the display value for the column column in the
6140  * row indicated by iter.
6141  * Since this function is called for each data access, it's not a
6142  * particularly efficient operation.
6143  * model :
6144  * the GtkTreeModelFilter
6145  * iter :
6146  * a GtkTreeIter pointing to the row whose display values are determined
6147  * value :
6148  * A GValue which is already initialized for with the correct type for
6149  * the column column.
6150  * column :
6151  * the column whose display value is determined
6152  * data :
6153  * user data given to gtk_tree_model_filter_set_modify_func(). [closure]
6154  */
6155 // void (*GtkTreeModelFilterModifyFunc) (GtkTreeModel *model,  GtkTreeIter *iter,  GValue *value,  gint column,  gpointer data);
6156 public alias extern(C) void function(GtkTreeModel* model, GtkTreeIter* iter, GValue* value, int column, void* data) GtkTreeModelFilterModifyFunc;
6157 
6158 /*
6159  * A function which should set the value of cell_layout's cell renderer(s)
6160  * as appropriate.
6161  * cell_layout :
6162  * a GtkCellLayout
6163  * cell :
6164  * the cell renderer whose value is to be set
6165  * tree_model :
6166  * the model
6167  * iter :
6168  * a GtkTreeIter indicating the row to set the value for
6169  * data :
6170  * user data passed to gtk_cell_layout_set_cell_data_func()
6171  */
6172 // void (*GtkCellLayoutDataFunc) (GtkCellLayout *cell_layout,  GtkCellRenderer *cell,  GtkTreeModel *tree_model,  GtkTreeIter *iter,  gpointer data);
6173 public alias extern(C) void function(GtkCellLayout* cellLayout, GtkCellRenderer* cell, GtkTreeModel* treeModel, GtkTreeIter* iter, void* data) GtkCellLayoutDataFunc;
6174 
6175 /*
6176  * The type of the callback functions used for iterating over
6177  * the cell renderers of a GtkCellArea, see gtk_cell_area_foreach().
6178  * renderer :
6179  * the cell renderer to operate on
6180  * data :
6181  * user-supplied data. [closure]
6182  * Returns :
6183  * TRUE to stop iterating over cells.
6184  */
6185 // gboolean (*GtkCellCallback) (GtkCellRenderer *renderer,  gpointer data);
6186 public alias extern(C) int function(GtkCellRenderer* renderer, void* data) GtkCellCallback;
6187 
6188 /*
6189  * The type of the callback functions used for iterating over the
6190  * cell renderers and their allocated areas inside a GtkCellArea,
6191  * see gtk_cell_area_foreach_alloc().
6192  * renderer :
6193  * the cell renderer to operate on
6194  * cell_area :
6195  * the area allocated to renderer inside the rectangle
6196  * provided to gtk_cell_area_foreach_alloc().
6197  * cell_background :
6198  * the background area for renderer inside the
6199  * background area provided to gtk_cell_area_foreach_alloc().
6200  * data :
6201  * user-supplied data. [closure]
6202  * Returns :
6203  * TRUE to stop iterating over cells.
6204  */
6205 // gboolean (*GtkCellAllocCallback) (GtkCellRenderer *renderer,  const GdkRectangle *cell_area,  const GdkRectangle *cell_background,  gpointer data);
6206 public alias extern(C) int function(GtkCellRenderer* renderer, GdkRectangle* cellArea, GdkRectangle* cellBackground, void* data) GtkCellAllocCallback;
6207 
6208 /*
6209  * A user function supplied when calling gtk_menu_popup() which
6210  * controls the positioning of the menu when it is displayed. The
6211  * function sets the x and y parameters to the coordinates where the
6212  * menu is to be drawn. To make the menu appear on a different
6213  * monitor than the mouse pointer, gtk_menu_set_monitor() must be
6214  * called.
6215  * menu :
6216  * a GtkMenu.
6217  * x :
6218  * address of the gint representing the horizontal
6219  * position where the menu shall be drawn. [out]
6220  * y :
6221  * address of the gint representing the vertical position
6222  * where the menu shall be drawn. This is an output parameter. [out]
6223  * push_in :
6224  * This parameter controls how menus placed outside
6225  * the monitor are handled. If this is set to TRUE and part of
6226  * the menu is outside the monitor then GTK+ pushes the window
6227  * into the visible area, effectively modifying the popup
6228  * position. Note that moving and possibly resizing the menu
6229  * around will alter the scroll position to keep the menu items
6230  * "in place", i.e. at the same monitor position they would have
6231  * been without resizing. In practice, this behavior is only
6232  * useful for combobox popups or option menus and cannot be used
6233  * to simply confine a menu to monitor boundaries. In that case,
6234  * changing the scroll offset is not desirable. [out]
6235  * user_data :
6236  * the data supplied by the user in the gtk_menu_popup()
6237  * data parameter.
6238  */
6239 // void (*GtkMenuPositionFunc) (GtkMenu *menu,  gint *x,  gint *y,  gboolean *push_in,  gpointer user_data);
6240 public alias extern(C) void function(GtkMenu* menu, gint* x, gint* y, gboolean* pushIn, void* userData) GtkMenuPositionFunc;
6241 
6242 /*
6243  * A user function supplied when calling gtk_menu_attach_to_widget() which
6244  * will be called when the menu is later detached from the widget.
6245  * attach_widget :
6246  * the GtkWidget that the menu is being detached from.
6247  * menu :
6248  * the GtkMenu being detached.
6249  * Property Details
6250  * The "accel-group" property
6251  *  "accel-group" GtkAccelGroup* : Read / Write
6252  * The accel group holding accelerators for the menu.
6253  * Since 2.14
6254  */
6255 // void (*GtkMenuDetachFunc) (GtkWidget *attach_widget,  GtkMenu *menu);
6256 public alias extern(C) void function(GtkWidget* attachWidget, GtkMenu* menu) GtkMenuDetachFunc;
6257 
6258 /*
6259  * The type of function that is used with custom filters, see
6260  * gtk_file_filter_add_custom().
6261  * filter_info :
6262  * a GtkFileFilterInfo that is filled according
6263  * to the needed flags passed to gtk_file_filter_add_custom()
6264  * data :
6265  * user data passed to gtk_file_filter_add_custom(). [closure]
6266  * Returns :
6267  * TRUE if the file should be displayed
6268  */
6269 // gboolean (*GtkFileFilterFunc) (const GtkFileFilterInfo *filter_info,  gpointer data);
6270 public alias extern(C) int function(GtkFileFilterInfo* filterInfo, void* data) GtkFileFilterFunc;
6271 
6272 /*
6273  * The type of function that is used for deciding what fonts get
6274  * shown in a GtkFontChooser. See gtk_font_chooser_set_filter_func().
6275  * family :
6276  * a PangoFontFamily
6277  * face :
6278  * a PangoFontFace belonging to family
6279  * data :
6280  * user data passed to gtk_font_chooser_set_filter_func(). [closure]
6281  * Returns :
6282  * TRUE if the font should be displayed
6283  */
6284 // gboolean (*GtkFontFilterFunc) (const PangoFontFamily *family,  const PangoFontFace *face,  gpointer data);
6285 public alias extern(C) int function(PangoFontFamily* family, PangoFontFace* face, void* data) GtkFontFilterFunc;
6286 
6287 /*
6288  * The type of function that is passed to
6289  * gtk_print_run_page_setup_dialog_async().
6290  * This function will be called when the page setup dialog
6291  * is dismissed, and also serves as destroy notify for data.
6292  * page_setup :
6293  * the GtkPageSetup that has been
6294  * data :
6295  * user data that has been passed to
6296  * gtk_print_run_page_setup_dialog_async(). [closure]
6297  */
6298 // void (*GtkPageSetupDoneFunc) (GtkPageSetup *page_setup,  gpointer data);
6299 public alias extern(C) void function(GtkPageSetup* pageSetup, void* data) GtkPageSetupDoneFunc;
6300 
6301 /*
6302  */
6303 // void (*GtkPrintSettingsFunc) (const gchar *key,  const gchar *value,  gpointer user_data);
6304 public alias extern(C) void function(char* key, char* value, void* userData) GtkPrintSettingsFunc;
6305 
6306 /*
6307  * The type of function passed to gtk_enumerate_printers().
6308  * Note that you need to ref printer, if you want to keep
6309  * a reference to it after the function has returned.
6310  * printer :
6311  * a GtkPrinter
6312  * data :
6313  * user data passed to gtk_enumerate_printers(). [closure]
6314  * Returns :
6315  * TRUE to stop the enumeration, FALSE to continue
6316  * Since 2.10
6317  */
6318 // gboolean (*GtkPrinterFunc) (GtkPrinter *printer,  gpointer data);
6319 public alias extern(C) int function(GtkPrinter* printer, void* data) GtkPrinterFunc;
6320 
6321 /*
6322  * The type of callback that is passed to gtk_print_job_send().
6323  * It is called when the print job has been completely sent.
6324  * print_job :
6325  * the GtkPrintJob
6326  * user_data :
6327  * user data that has been passed to gtk_print_job_send()
6328  * error :
6329  * a GError that contains error information if the sending
6330  * of the print job failed, otherwise NULL
6331  */
6332 // void (*GtkPrintJobCompleteFunc) (GtkPrintJob *print_job,  gpointer user_data,  const GError *error);
6333 public alias extern(C) void function(GtkPrintJob* printJob, void* userData, GError* error) GtkPrintJobCompleteFunc;
6334 
6335 /*
6336  * This kind of functions provide Pango markup with detail information for the
6337  * specified day. Examples for such details are holidays or appointments. The
6338  * function returns NULL when no information is available.
6339  * calendar :
6340  * a GtkCalendar.
6341  * year :
6342  * the year for which details are needed.
6343  * month :
6344  * the month for which details are needed.
6345  * day :
6346  * the day of month for which details are needed.
6347  * user_data :
6348  * the data passed with gtk_calendar_set_detail_func().
6349  * Returns :
6350  * Newly allocated string with Pango markup with details
6351  * for the specified day, or NULL.
6352  * Since 2.14
6353  */
6354 // gchar * (*GtkCalendarDetailFunc) (GtkCalendar *calendar,  guint year,  guint month,  guint day,  gpointer user_data);
6355 public alias extern(C) char * function(GtkCalendar* calendar, uint year, uint month, uint day, void* userData) GtkCalendarDetailFunc;
6356 
6357 /*
6358  * The type of the callback functions used for e.g. iterating over
6359  * the children of a container, see gtk_container_foreach().
6360  * widget :
6361  * the widget to operate on
6362  * data :
6363  * user-supplied data. [closure]
6364  */
6365 // void (*GtkCallback) (GtkWidget *widget,  gpointer data);
6366 public alias extern(C) void function(GtkWidget* widget, void* data) GtkCallback;
6367 
6368 /*
6369  * Callback type for adding a function to update animations. See gtk_widget_add_tick_callback().
6370  * widget :
6371  * the widget
6372  * frame_clock :
6373  * the frame clock for the widget (same as calling gtk_widget_get_frame_clock())
6374  * user_data :
6375  * user data passed to gtk_widget_add_tick_callback().
6376  * Returns :
6377  * G_SOURCE_CONTINUE if the tick callback should continue to be called,
6378  * G_SOURCE_REMOVE if the tick callback should be removed.
6379  * Since 3.8
6380  */
6381 // gboolean (*GtkTickCallback) (GtkWidget *widget,  GdkFrameClock *frame_clock,  gpointer user_data);
6382 public alias extern(C) int function(GtkWidget* widget, GdkFrameClock* frameClock, void* userData) GtkTickCallback;
6383 
6384 /*
6385  */
6386 // gint (*GtkRecentSortFunc) (GtkRecentInfo *a,  GtkRecentInfo *b,  gpointer user_data);
6387 public alias extern(C) int function(GtkRecentInfo* a, GtkRecentInfo* b, void* userData) GtkRecentSortFunc;
6388 
6389 /*
6390  * The type of function that is used with custom filters,
6391  * see gtk_recent_filter_add_custom().
6392  * filter_info :
6393  * a GtkRecentFilterInfo that is filled according
6394  * to the needed flags passed to gtk_recent_filter_add_custom()
6395  * user_data :
6396  * user data passed to gtk_recent_filter_add_custom()
6397  * Returns :
6398  * TRUE if the file should be displayed
6399  */
6400 // gboolean (*GtkRecentFilterFunc) (const GtkRecentFilterInfo *filter_info,  gpointer user_data);
6401 public alias extern(C) int function(GtkRecentFilterInfo* filterInfo, void* userData) GtkRecentFilterFunc;
6402 
6403 /*
6404  * Property Details
6405  * The "context" property
6406  *  "context" GtkStyleContext* : Read / Write / Construct Only
6407  * GtkStyleContext to get style from.
6408  * Signal Details
6409  * The "realize" signal
6410  * void user_function (GtkStyle *style,
6411  *  gpointer user_data) : Run First
6412  * Emitted when the style has been initialized for a particular
6413  * visual. Connecting to this signal is probably seldom
6414  * useful since most of the time applications and widgets only
6415  * deal with styles that have been already realized.
6416  * style :
6417  * the object which received the signal
6418  * user_data :
6419  * user data set when the signal handler was connected.
6420  * Since 2.4
6421  */
6422 // gboolean (*GtkRcPropertyParser) (const GParamSpec *pspec,  const GString *rc_string,  GValue *property_value);
6423 public alias extern(C) int function(GParamSpec* pspec, GString* rcString, GValue* propertyValue) GtkRcPropertyParser;
6424 
6425 /*
6426  */
6427 // void (*GtkColorSelectionChangePaletteFunc)  (const GdkColor *colors,  gint n_colors);
6428 public alias extern(C) void function(GdkColor* colors, int nColors) GtkColorSelectionChangePaletteFunc;
6429 
6430 /*
6431  * Since 2.2
6432  * Property Details
6433  * The "current-alpha" property
6434  *  "current-alpha" guint : Read / Write
6435  * The current opacity value (0 fully transparent, 65535 fully opaque).
6436  * Allowed values: <= 65535
6437  * Default value: 65535
6438  */
6439 // void (*GtkColorSelectionChangePaletteWithScreenFunc)  (GdkScreen *screen,  const GdkColor *colors,  gint n_colors);
6440 public alias extern(C) void function(GdkScreen* screen, GdkColor* colors, int nColors) GtkColorSelectionChangePaletteWithScreenFunc;
6441 
6442 /*
6443  */
6444 // gchar * (*GtkTranslateFunc) (const gchar *path,  gpointer func_data);
6445 public alias extern(C) char * function(char* path, void* funcData) GtkTranslateFunc;
6446 
6447 
6448 // StockIDs
6449 enum StockID
6450 {
6451 	
6452 	/**
6453 	 * Warning
6454 	 * GTK_STOCK_ABOUT has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "help-about" or the label "_About".
6455 	 * The "About" item.
6456 	 * Since 2.6
6457 	 */
6458 	ABOUT,
6459 	
6460 	/**
6461 	 * Warning
6462 	 * GTK_STOCK_ADD has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "list-add" or the label "_Add".
6463 	 * The "Add" item.
6464 	 */
6465 	ADD,
6466 	
6467 	/**
6468 	 * Warning
6469 	 * GTK_STOCK_APPLY has been deprecated since version 3.10 and should not be used in newly-written code. Do not use an icon. Use label "_Apply".
6470 	 * The "Apply" item.
6471 	 */
6472 	APPLY,
6473 	
6474 	/**
6475 	 * Warning
6476 	 * GTK_STOCK_BOLD has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "format-text-bold".
6477 	 * The "Bold" item.
6478 	 */
6479 	BOLD,
6480 	
6481 	/**
6482 	 * Warning
6483 	 * GTK_STOCK_CANCEL has been deprecated since version 3.10 and should not be used in newly-written code. Do not use an icon. Use label "_Cancel".
6484 	 * The "Cancel" item.
6485 	 */
6486 	CANCEL,
6487 	
6488 	/**
6489 	 * Warning
6490 	 * GTK_STOCK_CAPS_LOCK_WARNING has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "dialog-warning-symbolic".
6491 	 * The "Caps Lock Warning" icon.
6492 	 * Since 2.16
6493 	 */
6494 	CAPS_LOCK_WARNING,
6495 	
6496 	/**
6497 	 * Warning
6498 	 * GTK_STOCK_CDROM has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "media-optical".
6499 	 * The "CD-Rom" item.
6500 	 */
6501 	CDROM,
6502 	
6503 	/**
6504 	 * Warning
6505 	 * GTK_STOCK_CLEAR has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "edit-clear".
6506 	 * The "Clear" item.
6507 	 */
6508 	CLEAR,
6509 	
6510 	/**
6511 	 * Warning
6512 	 * GTK_STOCK_CLOSE has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "window-close" or the label "_Close".
6513 	 * The "Close" item.
6514 	 */
6515 	CLOSE,
6516 	
6517 	/**
6518 	 * Warning
6519 	 * GTK_STOCK_COLOR_PICKER is deprecated and should not be used in newly-written code. 3.10
6520 	 * The "Color Picker" item.
6521 	 * Since 2.2
6522 	 */
6523 	COLOR_PICKER,
6524 	
6525 	/**
6526 	 * Warning
6527 	 * GTK_STOCK_CONVERT is deprecated and should not be used in newly-written code. 3.10
6528 	 * The "Convert" item.
6529 	 */
6530 	CONVERT,
6531 	
6532 	/**
6533 	 * Warning
6534 	 * GTK_STOCK_CONNECT is deprecated and should not be used in newly-written code. 3.10
6535 	 * The "Connect" icon.
6536 	 * Since 2.6
6537 	 */
6538 	CONNECT,
6539 	
6540 	/**
6541 	 * Warning
6542 	 * GTK_STOCK_COPY has been deprecated since version 3.10 and should not be used in newly-written code. Do not use an icon. Use label "_Copy".
6543 	 * The "Copy" item.
6544 	 */
6545 	COPY,
6546 	
6547 	/**
6548 	 * Warning
6549 	 * GTK_STOCK_CUT has been deprecated since version 3.10 and should not be used in newly-written code. Do not use an icon. Use label "Cu_t".
6550 	 * The "Cut" item.
6551 	 */
6552 	CUT,
6553 	
6554 	/**
6555 	 * Warning
6556 	 * GTK_STOCK_DELETE has been deprecated since version 3.10 and should not be used in newly-written code. Do not use an icon. Use label "_Delete".
6557 	 * The "Delete" item.
6558 	 */
6559 	DELETE,
6560 	
6561 	/**
6562 	 * Warning
6563 	 * GTK_STOCK_DIALOG_AUTHENTICATION has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "dialog-password".
6564 	 * The "Authentication" item.
6565 	 * Since 2.4
6566 	 */
6567 	DIALOG_AUTHENTICATION,
6568 	
6569 	/**
6570 	 * Warning
6571 	 * GTK_STOCK_DIALOG_ERROR has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "dialog-error".
6572 	 * The "Error" item.
6573 	 */
6574 	DIALOG_ERROR,
6575 	
6576 	/**
6577 	 * Warning
6578 	 * GTK_STOCK_DIALOG_INFO has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "dialog-information".
6579 	 * The "Information" item.
6580 	 */
6581 	DIALOG_INFO,
6582 	
6583 	/**
6584 	 * Warning
6585 	 * GTK_STOCK_DIALOG_QUESTION has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "dialog-question".
6586 	 * The "Question" item.
6587 	 */
6588 	DIALOG_QUESTION,
6589 	
6590 	/**
6591 	 * Warning
6592 	 * GTK_STOCK_DIALOG_WARNING has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "dialog-warning".
6593 	 * The "Warning" item.
6594 	 */
6595 	DIALOG_WARNING,
6596 	
6597 	/**
6598 	 * Warning
6599 	 * GTK_STOCK_DIRECTORY has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "folder".
6600 	 * The "Directory" icon.
6601 	 * Since 2.6
6602 	 */
6603 	DIRECTORY,
6604 	
6605 	/**
6606 	 * Warning
6607 	 * GTK_STOCK_DISCARD is deprecated and should not be used in newly-written code. 3.10
6608 	 * The "Discard" item.
6609 	 * Since 2.12
6610 	 */
6611 	DISCARD,
6612 	
6613 	/**
6614 	 * Warning
6615 	 * GTK_STOCK_DISCONNECT is deprecated and should not be used in newly-written code. 3.10
6616 	 * The "Disconnect" icon.
6617 	 * Since 2.6
6618 	 */
6619 	DISCONNECT,
6620 	
6621 	/**
6622 	 * Warning
6623 	 * GTK_STOCK_DND is deprecated and should not be used in newly-written code. 3.10
6624 	 * The "Drag-And-Drop" icon.
6625 	 */
6626 	DND,
6627 	
6628 	/**
6629 	 * Warning
6630 	 * GTK_STOCK_DND_MULTIPLE is deprecated and should not be used in newly-written code. 3.10
6631 	 * The "Drag-And-Drop multiple" icon.
6632 	 */
6633 	DND_MULTIPLE,
6634 	
6635 	/**
6636 	 * Warning
6637 	 * GTK_STOCK_EDIT is deprecated and should not be used in newly-written code. 3.10
6638 	 * The "Edit" item.
6639 	 * Since 2.6
6640 	 */
6641 	EDIT,
6642 	
6643 	/**
6644 	 * Warning
6645 	 * GTK_STOCK_EXECUTE has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "system-run".
6646 	 * The "Execute" item.
6647 	 */
6648 	EXECUTE,
6649 	
6650 	/**
6651 	 * Warning
6652 	 * GTK_STOCK_FILE has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "text-x-generic".
6653 	 * The "File" item.
6654 	 * Since 3.0, this item has a label, before it only had an icon.
6655 	 * Since 2.6
6656 	 */
6657 	FILE,
6658 	
6659 	/**
6660 	 * Warning
6661 	 * GTK_STOCK_FIND has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "edit-find".
6662 	 * The "Find" item.
6663 	 */
6664 	FIND,
6665 	
6666 	/**
6667 	 * Warning
6668 	 * GTK_STOCK_FIND_AND_REPLACE has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "edit-find-replace".
6669 	 * The "Find and Replace" item.
6670 	 */
6671 	FIND_AND_REPLACE,
6672 	
6673 	/**
6674 	 * Warning
6675 	 * GTK_STOCK_FLOPPY is deprecated and should not be used in newly-written code. 3.10
6676 	 * The "Floppy" item.
6677 	 */
6678 	FLOPPY,
6679 	
6680 	/**
6681 	 * Warning
6682 	 * GTK_STOCK_FULLSCREEN has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "view-fullscreen".
6683 	 * The "Fullscreen" item.
6684 	 * Since 2.8
6685 	 */
6686 	FULLSCREEN,
6687 	
6688 	/**
6689 	 * Warning
6690 	 * GTK_STOCK_GOTO_BOTTOM has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "go-bottom".
6691 	 * The "Bottom" item.
6692 	 */
6693 	GOTO_BOTTOM,
6694 	
6695 	/**
6696 	 * Warning
6697 	 * GTK_STOCK_GOTO_FIRST has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "go-first".
6698 	 * The "First" item.
6699 	 * RTL variant
6700 	 */
6701 	GOTO_FIRST,
6702 	
6703 	/**
6704 	 * Warning
6705 	 * GTK_STOCK_GOTO_LAST has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "go-last".
6706 	 * The "Last" item.
6707 	 * RTL variant
6708 	 */
6709 	GOTO_LAST,
6710 	
6711 	/**
6712 	 * Warning
6713 	 * GTK_STOCK_GOTO_TOP has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "go-top".
6714 	 * The "Top" item.
6715 	 */
6716 	GOTO_TOP,
6717 	
6718 	/**
6719 	 * Warning
6720 	 * GTK_STOCK_GO_BACK has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "go-previous".
6721 	 * The "Back" item.
6722 	 * RTL variant
6723 	 */
6724 	GO_BACK,
6725 	
6726 	/**
6727 	 * Warning
6728 	 * GTK_STOCK_GO_DOWN has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "go-down".
6729 	 * The "Down" item.
6730 	 */
6731 	GO_DOWN,
6732 	
6733 	/**
6734 	 * Warning
6735 	 * GTK_STOCK_GO_FORWARD has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "go-next".
6736 	 * The "Forward" item.
6737 	 * RTL variant
6738 	 */
6739 	GO_FORWARD,
6740 	
6741 	/**
6742 	 * Warning
6743 	 * GTK_STOCK_GO_UP has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "go-up".
6744 	 * The "Up" item.
6745 	 */
6746 	GO_UP,
6747 	
6748 	/**
6749 	 * Warning
6750 	 * GTK_STOCK_HARDDISK has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "drive-harddisk".
6751 	 * The "Harddisk" item.
6752 	 * Since 2.4
6753 	 */
6754 	HARDDISK,
6755 	
6756 	/**
6757 	 * Warning
6758 	 * GTK_STOCK_HELP has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "help-browser".
6759 	 * The "Help" item.
6760 	 */
6761 	HELP,
6762 	
6763 	/**
6764 	 * Warning
6765 	 * GTK_STOCK_HOME has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "go-home".
6766 	 * The "Home" item.
6767 	 */
6768 	HOME,
6769 	
6770 	/**
6771 	 * Warning
6772 	 * GTK_STOCK_INDENT has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "format-indent-more".
6773 	 * The "Indent" item.
6774 	 * RTL variant
6775 	 * Since 2.4
6776 	 */
6777 	INDENT,
6778 	
6779 	/**
6780 	 * Warning
6781 	 * GTK_STOCK_INDEX is deprecated and should not be used in newly-written code. 3.10
6782 	 * The "Index" item.
6783 	 */
6784 	INDEX,
6785 	
6786 	/**
6787 	 * Warning
6788 	 * GTK_STOCK_INFO has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "dialog-information".
6789 	 * The "Info" item.
6790 	 * Since 2.8
6791 	 */
6792 	INFO,
6793 	
6794 	/**
6795 	 * Warning
6796 	 * GTK_STOCK_ITALIC has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "format-text-italic".
6797 	 * The "Italic" item.
6798 	 */
6799 	ITALIC,
6800 	
6801 	/**
6802 	 * Warning
6803 	 * GTK_STOCK_JUMP_TO has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "go-jump".
6804 	 * The "Jump to" item.
6805 	 * RTL-variant
6806 	 */
6807 	JUMP_TO,
6808 	
6809 	/**
6810 	 * Warning
6811 	 * GTK_STOCK_JUSTIFY_CENTER has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "format-justify-center".
6812 	 * The "Center" item.
6813 	 */
6814 	JUSTIFY_CENTER,
6815 	
6816 	/**
6817 	 * Warning
6818 	 * GTK_STOCK_JUSTIFY_FILL has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "format-justify-fill".
6819 	 * The "Fill" item.
6820 	 */
6821 	JUSTIFY_FILL,
6822 	
6823 	/**
6824 	 * Warning
6825 	 * GTK_STOCK_JUSTIFY_LEFT has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "format-justify-left".
6826 	 * The "Left" item.
6827 	 */
6828 	JUSTIFY_LEFT,
6829 	
6830 	/**
6831 	 * Warning
6832 	 * GTK_STOCK_JUSTIFY_RIGHT has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "format-justify-right".
6833 	 * The "Right" item.
6834 	 */
6835 	JUSTIFY_RIGHT,
6836 	
6837 	/**
6838 	 * Warning
6839 	 * GTK_STOCK_LEAVE_FULLSCREEN has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "view-restore".
6840 	 * The "Leave Fullscreen" item.
6841 	 * Since 2.8
6842 	 */
6843 	LEAVE_FULLSCREEN,
6844 	
6845 	/**
6846 	 * Warning
6847 	 * GTK_STOCK_MEDIA_FORWARD has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "media-seek-forward" or the label "_Forward".
6848 	 * The "Media Forward" item.
6849 	 * RTL variant
6850 	 * Since 2.6
6851 	 */
6852 	MEDIA_FORWARD,
6853 	
6854 	/**
6855 	 * Warning
6856 	 * GTK_STOCK_MEDIA_NEXT has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "media-skip-forward" or the label "_Next".
6857 	 * The "Media Next" item.
6858 	 * RTL variant
6859 	 * Since 2.6
6860 	 */
6861 	MEDIA_NEXT,
6862 	
6863 	/**
6864 	 * Warning
6865 	 * GTK_STOCK_MEDIA_PAUSE has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "media-playback-pause" or the label "P_ause".
6866 	 * The "Media Pause" item.
6867 	 * Since 2.6
6868 	 */
6869 	MEDIA_PAUSE,
6870 	
6871 	/**
6872 	 * Warning
6873 	 * GTK_STOCK_MEDIA_PLAY has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "media-playback-start" or the label "_Play".
6874 	 * The "Media Play" item.
6875 	 * RTL variant
6876 	 * Since 2.6
6877 	 */
6878 	MEDIA_PLAY,
6879 	
6880 	/**
6881 	 * Warning
6882 	 * GTK_STOCK_MEDIA_PREVIOUS has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "media-skip-backward" or the label "Pre_vious".
6883 	 * The "Media Previous" item.
6884 	 * RTL variant
6885 	 * Since 2.6
6886 	 */
6887 	MEDIA_PREVIOUS,
6888 	
6889 	/**
6890 	 * Warning
6891 	 * GTK_STOCK_MEDIA_RECORD has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "media-record" or the label "_Record".
6892 	 * The "Media Record" item.
6893 	 * Since 2.6
6894 	 */
6895 	MEDIA_RECORD,
6896 	
6897 	/**
6898 	 * Warning
6899 	 * GTK_STOCK_MEDIA_REWIND has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "media-seek-backward" or the label "R_ewind".
6900 	 * The "Media Rewind" item.
6901 	 * RTL variant
6902 	 * Since 2.6
6903 	 */
6904 	MEDIA_REWIND,
6905 	
6906 	/**
6907 	 * Warning
6908 	 * GTK_STOCK_MEDIA_STOP has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "media-playback-stop" or the label "_Stop".
6909 	 * The "Media Stop" item.
6910 	 * Since 2.6
6911 	 */
6912 	MEDIA_STOP,
6913 	
6914 	/**
6915 	 * Warning
6916 	 * GTK_STOCK_MISSING_IMAGE has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "image-missing".
6917 	 * The "Missing image" icon.
6918 	 */
6919 	MISSING_IMAGE,
6920 	
6921 	/**
6922 	 * Warning
6923 	 * GTK_STOCK_NETWORK has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "network-workgroup".
6924 	 * The "Network" item.
6925 	 * Since 2.4
6926 	 */
6927 	NETWORK,
6928 	
6929 	/**
6930 	 * Warning
6931 	 * GTK_STOCK_NEW has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "document-new" or the label "_New".
6932 	 * The "New" item.
6933 	 */
6934 	NEW,
6935 	
6936 	/**
6937 	 * Warning
6938 	 * GTK_STOCK_NO is deprecated and should not be used in newly-written code. 3.10
6939 	 * The "No" item.
6940 	 */
6941 	NO,
6942 	
6943 	/**
6944 	 * Warning
6945 	 * GTK_STOCK_OK has been deprecated since version 3.10 and should not be used in newly-written code. Do not use an icon. Use label "_OK".
6946 	 * The "OK" item.
6947 	 */
6948 	OK,
6949 	
6950 	/**
6951 	 * Warning
6952 	 * GTK_STOCK_OPEN has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "document-open" or the label "_Open".
6953 	 * The "Open" item.
6954 	 */
6955 	OPEN,
6956 	
6957 	/**
6958 	 * Warning
6959 	 * GTK_STOCK_ORIENTATION_LANDSCAPE is deprecated and should not be used in newly-written code. 3.10
6960 	 * The "Landscape Orientation" item.
6961 	 * Since 2.10
6962 	 */
6963 	ORIENTATION_LANDSCAPE,
6964 	
6965 	/**
6966 	 * Warning
6967 	 * GTK_STOCK_ORIENTATION_PORTRAIT is deprecated and should not be used in newly-written code. 3.10
6968 	 * The "Portrait Orientation" item.
6969 	 * Since 2.10
6970 	 */
6971 	ORIENTATION_PORTRAIT,
6972 	
6973 	/**
6974 	 * Warning
6975 	 * GTK_STOCK_ORIENTATION_REVERSE_LANDSCAPE is deprecated and should not be used in newly-written code. 3.10
6976 	 * The "Reverse Landscape Orientation" item.
6977 	 * Since 2.10
6978 	 */
6979 	ORIENTATION_REVERSE_LANDSCAPE,
6980 	
6981 	/**
6982 	 * Warning
6983 	 * GTK_STOCK_ORIENTATION_REVERSE_PORTRAIT is deprecated and should not be used in newly-written code. 3.10
6984 	 * The "Reverse Portrait Orientation" item.
6985 	 * Since 2.10
6986 	 */
6987 	ORIENTATION_REVERSE_PORTRAIT,
6988 	
6989 	/**
6990 	 * Warning
6991 	 * GTK_STOCK_PAGE_SETUP has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "document-page-setup" or the label "Page Set_up".
6992 	 * The "Page Setup" item.
6993 	 * Since 2.14
6994 	 */
6995 	PAGE_SETUP,
6996 	
6997 	/**
6998 	 * Warning
6999 	 * GTK_STOCK_PASTE has been deprecated since version 3.10 and should not be used in newly-written code. Do not use an icon. Use label "_Paste".
7000 	 * The "Paste" item.
7001 	 */
7002 	PASTE,
7003 	
7004 	/**
7005 	 * Warning
7006 	 * GTK_STOCK_PREFERENCES has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "preferences-system" or the label "_Preferences".
7007 	 * The "Preferences" item.
7008 	 */
7009 	PREFERENCES,
7010 	
7011 	/**
7012 	 * Warning
7013 	 * GTK_STOCK_PRINT has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "document-print" or the label "_Print".
7014 	 * The "Print" item.
7015 	 */
7016 	PRINT,
7017 	
7018 	/**
7019 	 * Warning
7020 	 * GTK_STOCK_PRINT_ERROR has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "printer-error".
7021 	 * The "Print Error" icon.
7022 	 * Since 2.14
7023 	 */
7024 	PRINT_ERROR,
7025 	
7026 	/**
7027 	 * Warning
7028 	 * GTK_STOCK_PRINT_PAUSED is deprecated and should not be used in newly-written code. 3.10
7029 	 * The "Print Paused" icon.
7030 	 * Since 2.14
7031 	 */
7032 	PRINT_PAUSED,
7033 	
7034 	/**
7035 	 * Warning
7036 	 * GTK_STOCK_PRINT_PREVIEW has been deprecated since version 3.10 and should not be used in newly-written code. Use label "Pre_view".
7037 	 * The "Print Preview" item.
7038 	 */
7039 	PRINT_PREVIEW,
7040 	
7041 	/**
7042 	 * Warning
7043 	 * GTK_STOCK_PRINT_REPORT is deprecated and should not be used in newly-written code. 3.10
7044 	 * The "Print Report" icon.
7045 	 * Since 2.14
7046 	 */
7047 	PRINT_REPORT,
7048 	
7049 	/**
7050 	 * Warning
7051 	 * GTK_STOCK_PRINT_WARNING is deprecated and should not be used in newly-written code. 3.10
7052 	 * The "Print Warning" icon.
7053 	 * Since 2.14
7054 	 */
7055 	PRINT_WARNING,
7056 	
7057 	/**
7058 	 * Warning
7059 	 * GTK_STOCK_PROPERTIES has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "document-properties" or the label "_Properties".
7060 	 * The "Properties" item.
7061 	 */
7062 	PROPERTIES,
7063 	
7064 	/**
7065 	 * Warning
7066 	 * GTK_STOCK_QUIT has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "application-exit" or the label "_Quit".
7067 	 * The "Quit" item.
7068 	 */
7069 	QUIT,
7070 	
7071 	/**
7072 	 * Warning
7073 	 * GTK_STOCK_REDO has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "edit-redo" or the label "_Redo".
7074 	 * The "Redo" item.
7075 	 * RTL variant
7076 	 */
7077 	REDO,
7078 	
7079 	/**
7080 	 * Warning
7081 	 * GTK_STOCK_REFRESH has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "view-refresh" or the label "_Refresh".
7082 	 * The "Refresh" item.
7083 	 */
7084 	REFRESH,
7085 	
7086 	/**
7087 	 * Warning
7088 	 * GTK_STOCK_REMOVE has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "list-remove" or the label "_Remove".
7089 	 * The "Remove" item.
7090 	 */
7091 	REMOVE,
7092 	
7093 	/**
7094 	 * Warning
7095 	 * GTK_STOCK_REVERT_TO_SAVED has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "document-revert" or the label "_Revert".
7096 	 * The "Revert" item.
7097 	 * RTL variant
7098 	 */
7099 	REVERT_TO_SAVED,
7100 	
7101 	/**
7102 	 * Warning
7103 	 * GTK_STOCK_SAVE has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "document-save" or the label "_Save".
7104 	 * The "Save" item.
7105 	 */
7106 	SAVE,
7107 	
7108 	/**
7109 	 * Warning
7110 	 * GTK_STOCK_SAVE_AS has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "document-save-as" or the label "Save _As".
7111 	 * The "Save As" item.
7112 	 */
7113 	SAVE_AS,
7114 	
7115 	/**
7116 	 * Warning
7117 	 * GTK_STOCK_SELECT_ALL has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "edit-select-all" or the label "Select _All".
7118 	 * The "Select All" item.
7119 	 * Since 2.10
7120 	 */
7121 	SELECT_ALL,
7122 	
7123 	/**
7124 	 * Warning
7125 	 * GTK_STOCK_SELECT_COLOR is deprecated and should not be used in newly-written code. 3.10
7126 	 * The "Color" item.
7127 	 */
7128 	SELECT_COLOR,
7129 	
7130 	/**
7131 	 * Warning
7132 	 * GTK_STOCK_SELECT_FONT is deprecated and should not be used in newly-written code. 3.10
7133 	 * The "Font" item.
7134 	 */
7135 	SELECT_FONT,
7136 	
7137 	/**
7138 	 * Warning
7139 	 * GTK_STOCK_SORT_ASCENDING has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "view-sort-ascending".
7140 	 * The "Ascending" item.
7141 	 */
7142 	SORT_ASCENDING,
7143 	
7144 	/**
7145 	 * Warning
7146 	 * GTK_STOCK_SORT_DESCENDING has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "view-sort-descending".
7147 	 * The "Descending" item.
7148 	 */
7149 	SORT_DESCENDING,
7150 	
7151 	/**
7152 	 * Warning
7153 	 * GTK_STOCK_SPELL_CHECK has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "tools-check-spelling".
7154 	 * The "Spell Check" item.
7155 	 */
7156 	SPELL_CHECK,
7157 	
7158 	/**
7159 	 * Warning
7160 	 * GTK_STOCK_STOP has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "process-stop" or the label "_Stop".
7161 	 * The "Stop" item.
7162 	 */
7163 	STOP,
7164 	
7165 	/**
7166 	 * Warning
7167 	 * GTK_STOCK_STRIKETHROUGH has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "format-text-strikethrough" or the label "_Strikethrough".
7168 	 * The "Strikethrough" item.
7169 	 */
7170 	STRIKETHROUGH,
7171 	
7172 	/**
7173 	 * Warning
7174 	 * GTK_STOCK_UNDELETE is deprecated and should not be used in newly-written code. 3.10
7175 	 * The "Undelete" item.
7176 	 * RTL variant
7177 	 */
7178 	UNDELETE,
7179 	
7180 	/**
7181 	 * Warning
7182 	 * GTK_STOCK_UNDERLINE has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "format-text-underline" or the label "_Underline".
7183 	 * The "Underline" item.
7184 	 */
7185 	UNDERLINE,
7186 	
7187 	/**
7188 	 * Warning
7189 	 * GTK_STOCK_UNDO has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "edit-undo" or the label "_Undo".
7190 	 * The "Undo" item.
7191 	 * RTL variant
7192 	 */
7193 	UNDO,
7194 	
7195 	/**
7196 	 * Warning
7197 	 * GTK_STOCK_UNINDENT has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "format-indent-less".
7198 	 * The "Unindent" item.
7199 	 * RTL variant
7200 	 * Since 2.4
7201 	 */
7202 	UNINDENT,
7203 	
7204 	/**
7205 	 * Warning
7206 	 * GTK_STOCK_YES is deprecated and should not be used in newly-written code. 3.10
7207 	 * The "Yes" item.
7208 	 */
7209 	YES,
7210 	
7211 	/**
7212 	 * Warning
7213 	 * GTK_STOCK_ZOOM_100 has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "zoom-original" or the label "_Normal Size".
7214 	 * The "Zoom 100%" item.
7215 	 */
7216 	ZOOM_100,
7217 	
7218 	/**
7219 	 * Warning
7220 	 * GTK_STOCK_ZOOM_FIT has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "zoom-fit-best" or the label "Best _Fit".
7221 	 * The "Zoom to Fit" item.
7222 	 */
7223 	ZOOM_FIT,
7224 	
7225 	/**
7226 	 * Warning
7227 	 * GTK_STOCK_ZOOM_IN has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "zoom-in" or the label "Zoom _In".
7228 	 * The "Zoom In" item.
7229 	 */
7230 	ZOOM_IN,
7231 	
7232 	/**
7233 	 * Warning
7234 	 * GTK_STOCK_ZOOM_OUT has been deprecated since version 3.10 and should not be used in newly-written code. Use named icon "zoom-out" or the label "Zoom _Out".
7235 	 * The "Zoom Out" item.
7236 	 */
7237 	ZOOM_OUT,
7238 
7239 }
7240 
7241 // Stock strings
7242 string[] StockDesc = 
7243 [	"gtk-about",
7244 	"gtk-add",
7245 	"gtk-apply",
7246 	"gtk-bold",
7247 	"gtk-cancel",
7248 	"gtk-caps-lock-warning",
7249 	"gtk-cdrom",
7250 	"gtk-clear",
7251 	"gtk-close",
7252 	"gtk-color-picker",
7253 	"gtk-convert",
7254 	"gtk-connect",
7255 	"gtk-copy",
7256 	"gtk-cut",
7257 	"gtk-delete",
7258 	"gtk-dialog-authentication",
7259 	"gtk-dialog-error",
7260 	"gtk-dialog-info",
7261 	"gtk-dialog-question",
7262 	"gtk-dialog-warning",
7263 	"gtk-directory",
7264 	"gtk-discard",
7265 	"gtk-disconnect",
7266 	"gtk-dnd",
7267 	"gtk-dnd-multiple",
7268 	"gtk-edit",
7269 	"gtk-execute",
7270 	"gtk-file",
7271 	"gtk-find",
7272 	"gtk-find-and-replace",
7273 	"gtk-floppy",
7274 	"gtk-fullscreen",
7275 	"gtk-goto-bottom",
7276 	"gtk-goto-first",
7277 	"gtk-goto-last",
7278 	"gtk-goto-top",
7279 	"gtk-go-back",
7280 	"gtk-go-down",
7281 	"gtk-go-forward",
7282 	"gtk-go-up",
7283 	"gtk-harddisk",
7284 	"gtk-help",
7285 	"gtk-home",
7286 	"gtk-indent",
7287 	"gtk-index",
7288 	"gtk-info",
7289 	"gtk-italic",
7290 	"gtk-jump-to",
7291 	"gtk-justify-center",
7292 	"gtk-justify-fill",
7293 	"gtk-justify-left",
7294 	"gtk-justify-right",
7295 	"gtk-leave-fullscreen",
7296 	"gtk-media-forward",
7297 	"gtk-media-next",
7298 	"gtk-media-pause",
7299 	"gtk-media-play",
7300 	"gtk-media-previous",
7301 	"gtk-media-record",
7302 	"gtk-media-rewind",
7303 	"gtk-media-stop",
7304 	"gtk-missing-image",
7305 	"gtk-network",
7306 	"gtk-new",
7307 	"gtk-no",
7308 	"gtk-ok",
7309 	"gtk-open",
7310 	"gtk-orientation-landscape",
7311 	"gtk-orientation-portrait",
7312 	"gtk-orientation-reverse-landscape",
7313 	"gtk-orientation-reverse-portrait",
7314 	"gtk-page-setup",
7315 	"gtk-paste",
7316 	"gtk-preferences",
7317 	"gtk-print",
7318 	"gtk-print-error",
7319 	"gtk-print-paused",
7320 	"gtk-print-preview",
7321 	"gtk-print-report",
7322 	"gtk-print-warning",
7323 	"gtk-properties",
7324 	"gtk-quit",
7325 	"gtk-redo",
7326 	"gtk-refresh",
7327 	"gtk-remove",
7328 	"gtk-revert-to-saved",
7329 	"gtk-save",
7330 	"gtk-save-as",
7331 	"gtk-select-all",
7332 	"gtk-select-color",
7333 	"gtk-select-font",
7334 	"gtk-sort-ascending",
7335 	"gtk-sort-descending",
7336 	"gtk-spell-check",
7337 	"gtk-stop",
7338 	"gtk-strikethrough",
7339 	"gtk-undelete",
7340 	"gtk-underline",
7341 	"gtk-undo",
7342 	"gtk-unindent",
7343 	"gtk-yes",
7344 	"gtk-zoom-100",
7345 	"gtk-zoom-fit",
7346 	"gtk-zoom-in",
7347 	"gtk-zoom-out",
7348 
7349 ];