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