1 /*
2  * This file is part of gtkD.
3  *
4  * gtkD is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License
6  * as published by the Free Software Foundation; either version 3
7  * of the License, or (at your option) any later version, with
8  * some exceptions, please read the COPYING file.
9  *
10  * gtkD is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with gtkD; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
18  */
19  
20 // generated automatically - do not change
21 // find conversion definition on APILookup.txt
22 // implement new conversion functionalities on the wrap.utils pakage
23 
24 /*
25  * Conversion parameters:
26  * inFile  = GtkWindow.html
27  * outPack = gtk
28  * outFile = Window
29  * strct   = GtkWindow
30  * realStrct=
31  * ctorStrct=
32  * clss    = Window
33  * interf  = 
34  * class Code: Yes
35  * interface Code: No
36  * template for:
37  * extend  = 
38  * implements:
39  * prefixes:
40  * 	- gtk_window_
41  * 	- gtk_
42  * omit structs:
43  * omit prefixes:
44  * omit code:
45  * omit signals:
46  * imports:
47  * 	- glib.Str
48  * 	- glib.ErrorG
49  * 	- glib.GException
50  * 	- gtk.AccelGroup
51  * 	- gtk.Widget
52  * 	- gtk.WindowGroup
53  * 	- gdk.Screen
54  * 	- glib.ListG
55  * 	- gdk.Pixbuf
56  * structWrap:
57  * 	- GList* -> ListG
58  * 	- GdkPixbuf* -> Pixbuf
59  * 	- GdkScreen* -> Screen
60  * 	- GtkAccelGroup* -> AccelGroup
61  * 	- GtkWidget* -> Widget
62  * 	- GtkWindow* -> Window
63  * 	- GtkWindowGroup* -> WindowGroup
64  * module aliases:
65  * local aliases:
66  * overrides:
67  * 	- getScreen
68  */
69 
70 module gtk.Window;
71 
72 public  import gtkc.gtktypes;
73 
74 private import gtkc.gtk;
75 private import glib.ConstructionException;
76 private import gobject.ObjectG;
77 
78 private import gobject.Signals;
79 public  import gtkc.gdktypes;
80 
81 private import glib.Str;
82 private import glib.ErrorG;
83 private import glib.GException;
84 private import gtk.AccelGroup;
85 private import gtk.Widget;
86 private import gtk.WindowGroup;
87 private import gdk.Screen;
88 private import glib.ListG;
89 private import gdk.Pixbuf;
90 
91 
92 
93 private import gtk.Bin;
94 
95 /**
96  * Description
97  * GtkWindow as GtkBuildable
98  * The GtkWindow implementation of the GtkBuildable interface supports a
99  * custom <accel-groups> element, which supports any number of <group>
100  * elements representing the GtkAccelGroup objects you want to add to your
101  * window (synonymous with gtk_window_add_accel_group().
102  * $(DDOC_COMMENT example)
103  */
104 public class Window : Bin
105 {
106 	
107 	/** the main Gtk struct */
108 	protected GtkWindow* gtkWindow;
109 	
110 	
111 	public GtkWindow* getWindowStruct()
112 	{
113 		return gtkWindow;
114 	}
115 	
116 	
117 	/** the main Gtk struct as a void* */
118 	protected override void* getStruct()
119 	{
120 		return cast(void*)gtkWindow;
121 	}
122 	
123 	/**
124 	 * Sets our main struct and passes it to the parent class
125 	 */
126 	public this (GtkWindow* gtkWindow)
127 	{
128 		super(cast(GtkBin*)gtkWindow);
129 		this.gtkWindow = gtkWindow;
130 	}
131 	
132 	protected override void setStruct(GObject* obj)
133 	{
134 		super.setStruct(obj);
135 		gtkWindow = cast(GtkWindow*)obj;
136 	}
137 	
138 	/**
139 	 * Creates a top level window with a title
140 	 * Params:
141 	 * 		title = The Window title
142 	 */
143 	public this(string title)
144 	{
145 		this(GtkWindowType.TOPLEVEL);
146 		setTitle(title);
147 	}
148 	
149 	/**
150 	 * Move the window to an absolute position.
151 	 * just calls move(int, int).
152 	 * convinience because GdkEvent structs return the position coords as doubles
153 	 */
154 	public void move(double x, double y)
155 	{
156 		move(cast(int)x, cast(int)y);
157 	}
158 	
159 	/**
160 	 */
161 	int[string] connectedSignals;
162 	
163 	void delegate(Window)[] onActivateDefaultListeners;
164 	/**
165 	 * The ::activate-default signal is a
166 	 * keybinding signal
167 	 * which gets emitted when the user activates the default widget
168 	 * of window.
169 	 */
170 	void addOnActivateDefault(void delegate(Window) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0)
171 	{
172 		if ( !("activate-default" in connectedSignals) )
173 		{
174 			Signals.connectData(
175 			getStruct(),
176 			"activate-default",
177 			cast(GCallback)&callBackActivateDefault,
178 			cast(void*)this,
179 			null,
180 			connectFlags);
181 			connectedSignals["activate-default"] = 1;
182 		}
183 		onActivateDefaultListeners ~= dlg;
184 	}
185 	extern(C) static void callBackActivateDefault(GtkWindow* windowStruct, Window _window)
186 	{
187 		foreach ( void delegate(Window) dlg ; _window.onActivateDefaultListeners )
188 		{
189 			dlg(_window);
190 		}
191 	}
192 	
193 	void delegate(Window)[] onActivateFocusListeners;
194 	/**
195 	 * The ::activate-focus signal is a
196 	 * keybinding signal
197 	 * which gets emitted when the user activates the currently
198 	 * focused widget of window.
199 	 */
200 	void addOnActivateFocus(void delegate(Window) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0)
201 	{
202 		if ( !("activate-focus" in connectedSignals) )
203 		{
204 			Signals.connectData(
205 			getStruct(),
206 			"activate-focus",
207 			cast(GCallback)&callBackActivateFocus,
208 			cast(void*)this,
209 			null,
210 			connectFlags);
211 			connectedSignals["activate-focus"] = 1;
212 		}
213 		onActivateFocusListeners ~= dlg;
214 	}
215 	extern(C) static void callBackActivateFocus(GtkWindow* windowStruct, Window _window)
216 	{
217 		foreach ( void delegate(Window) dlg ; _window.onActivateFocusListeners )
218 		{
219 			dlg(_window);
220 		}
221 	}
222 	
223 	bool delegate(GdkEvent*, Window)[] onFrameListeners;
224 	/**
225 	 */
226 	void addOnFrame(bool delegate(GdkEvent*, Window) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0)
227 	{
228 		if ( !("frame-event" in connectedSignals) )
229 		{
230 			Signals.connectData(
231 			getStruct(),
232 			"frame-event",
233 			cast(GCallback)&callBackFrame,
234 			cast(void*)this,
235 			null,
236 			connectFlags);
237 			connectedSignals["frame-event"] = 1;
238 		}
239 		onFrameListeners ~= dlg;
240 	}
241 	extern(C) static gboolean callBackFrame(GtkWindow* windowStruct, GdkEvent* arg1, Window _window)
242 	{
243 		foreach ( bool delegate(GdkEvent*, Window) dlg ; _window.onFrameListeners )
244 		{
245 			if ( dlg(arg1, _window) )
246 			{
247 				return 1;
248 			}
249 		}
250 		
251 		return 0;
252 	}
253 	
254 	void delegate(Window)[] onKeysChangedListeners;
255 	/**
256 	 * The ::keys-changed signal gets emitted when the set of accelerators
257 	 * or mnemonics that are associated with window changes.
258 	 */
259 	void addOnKeysChanged(void delegate(Window) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0)
260 	{
261 		if ( !("keys-changed" in connectedSignals) )
262 		{
263 			Signals.connectData(
264 			getStruct(),
265 			"keys-changed",
266 			cast(GCallback)&callBackKeysChanged,
267 			cast(void*)this,
268 			null,
269 			connectFlags);
270 			connectedSignals["keys-changed"] = 1;
271 		}
272 		onKeysChangedListeners ~= dlg;
273 	}
274 	extern(C) static void callBackKeysChanged(GtkWindow* windowStruct, Window _window)
275 	{
276 		foreach ( void delegate(Window) dlg ; _window.onKeysChangedListeners )
277 		{
278 			dlg(_window);
279 		}
280 	}
281 	
282 	void delegate(Widget, Window)[] onSetFocusListeners;
283 	/**
284 	 */
285 	void addOnSetFocus(void delegate(Widget, Window) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0)
286 	{
287 		if ( !("set-focus" in connectedSignals) )
288 		{
289 			Signals.connectData(
290 			getStruct(),
291 			"set-focus",
292 			cast(GCallback)&callBackSetFocus,
293 			cast(void*)this,
294 			null,
295 			connectFlags);
296 			connectedSignals["set-focus"] = 1;
297 		}
298 		onSetFocusListeners ~= dlg;
299 	}
300 	extern(C) static void callBackSetFocus(GtkWindow* windowStruct, GtkWidget* widget, Window _window)
301 	{
302 		foreach ( void delegate(Widget, Window) dlg ; _window.onSetFocusListeners )
303 		{
304 			dlg(ObjectG.getDObject!(Widget)(widget), _window);
305 		}
306 	}
307 	
308 	
309 	/**
310 	 * Sets an icon to be used as fallback for windows that haven't
311 	 * had gtk_window_set_icon_list() called on them from a file
312 	 * on disk. Warns on failure if err is NULL.
313 	 * Since 2.2
314 	 * Params:
315 	 * filename = location of icon file
316 	 * Returns: TRUE if setting the icon succeeded.
317 	 * Throws: GException on failure.
318 	 */
319 	public static int setDefaultIconFromFile(string filename)
320 	{
321 		// gboolean gtk_window_set_default_icon_from_file  (const gchar *filename,  GError **err);
322 		GError* err = null;
323 		
324 		auto p = gtk_window_set_default_icon_from_file(Str.toStringz(filename), &err);
325 		
326 		if (err !is null)
327 		{
328 			throw new GException( new ErrorG(err) );
329 		}
330 		
331 		return p;
332 	}
333 	
334 	/**
335 	 * Sets the icon for window.
336 	 * Warns on failure if err is NULL.
337 	 * This function is equivalent to calling gtk_window_set_icon()
338 	 * with a pixbuf created by loading the image from filename.
339 	 * Since 2.2
340 	 * Params:
341 	 * filename = location of icon file
342 	 * Returns: TRUE if setting the icon succeeded.
343 	 * Throws: GException on failure.
344 	 */
345 	public int setIconFromFile(string filename)
346 	{
347 		// gboolean gtk_window_set_icon_from_file (GtkWindow *window,  const gchar *filename,  GError **err);
348 		GError* err = null;
349 		
350 		auto p = gtk_window_set_icon_from_file(gtkWindow, Str.toStringz(filename), &err);
351 		
352 		if (err !is null)
353 		{
354 			throw new GException( new ErrorG(err) );
355 		}
356 		
357 		return p;
358 	}
359 	
360 	/**
361 	 * Creates a new GtkWindow, which is a toplevel window that can
362 	 * contain other widgets. Nearly always, the type of the window should
363 	 * be GTK_WINDOW_TOPLEVEL. If you're implementing something like a
364 	 * popup menu from scratch (which is a bad idea, just use GtkMenu),
365 	 * you might use GTK_WINDOW_POPUP. GTK_WINDOW_POPUP is not for
366 	 * dialogs, though in some other toolkits dialogs are called "popups".
367 	 * In GTK+, GTK_WINDOW_POPUP means a pop-up menu or pop-up tooltip.
368 	 * On X11, popup windows are not controlled by the window manager.
369 	 * If you simply want an undecorated window (no window borders), use
370 	 * gtk_window_set_decorated(), don't use GTK_WINDOW_POPUP.
371 	 * Params:
372 	 * type = type of window
373 	 * Throws: ConstructionException GTK+ fails to create the object.
374 	 */
375 	public this (GtkWindowType type)
376 	{
377 		// GtkWidget * gtk_window_new (GtkWindowType type);
378 		auto p = gtk_window_new(type);
379 		if(p is null)
380 		{
381 			throw new ConstructionException("null returned by gtk_window_new(type)");
382 		}
383 		this(cast(GtkWindow*) p);
384 	}
385 	
386 	/**
387 	 * Sets the title of the GtkWindow. The title of a window will be
388 	 * displayed in its title bar; on the X Window System, the title bar
389 	 * is rendered by the window
390 	 * manager, so exactly how the title appears to users may vary
391 	 * according to a user's exact configuration. The title should help a
392 	 * user distinguish this window from other windows they may have
393 	 * open. A good title might include the application name and current
394 	 * document filename, for example.
395 	 * Params:
396 	 * title = title of the window
397 	 */
398 	public void setTitle(string title)
399 	{
400 		// void gtk_window_set_title (GtkWindow *window,  const gchar *title);
401 		gtk_window_set_title(gtkWindow, Str.toStringz(title));
402 	}
403 	
404 	/**
405 	 * Don't use this function. It sets the X Window System "class" and
406 	 * "name" hints for a window. According to the ICCCM, you should
407 	 * always set these to the same value for all windows in an
408 	 * application, and GTK+ sets them to that value by default, so calling
409 	 * this function is sort of pointless. However, you may want to call
410 	 * gtk_window_set_role() on each window in your application, for the
411 	 * benefit of the session manager. Setting the role allows the window
412 	 * manager to restore window positions when loading a saved session.
413 	 * Params:
414 	 * wmclassName = window name hint
415 	 * wmclassClass = window class hint
416 	 */
417 	public void setWmclass(string wmclassName, string wmclassClass)
418 	{
419 		// void gtk_window_set_wmclass (GtkWindow *window,  const gchar *wmclass_name,  const gchar *wmclass_class);
420 		gtk_window_set_wmclass(gtkWindow, Str.toStringz(wmclassName), Str.toStringz(wmclassClass));
421 	}
422 	
423 	/**
424 	 * Warning
425 	 * gtk_window_set_policy is deprecated and should not be used in newly-written code. Use gtk_window_set_resizable() instead.
426 	 * Changes how a toplevel window deals with its size request and user resize
427 	 * Params:
428 	 * allowShrink = whether the user can shrink the window below its size request
429 	 * allowGrow = whether the user can grow the window larger than its size request
430 	 * autoShrink = whether the window automatically snaps back to its size request
431 	 * if it's larger
432 	 */
433 	public void setPolicy(int allowShrink, int allowGrow, int autoShrink)
434 	{
435 		// void gtk_window_set_policy (GtkWindow *window,  gint allow_shrink,  gint allow_grow,  gint auto_shrink);
436 		gtk_window_set_policy(gtkWindow, allowShrink, allowGrow, autoShrink);
437 	}
438 	
439 	/**
440 	 * Sets whether the user can resize a window. Windows are user resizable
441 	 * by default.
442 	 * Params:
443 	 * resizable = TRUE if the user can resize this window
444 	 */
445 	public void setResizable(int resizable)
446 	{
447 		// void gtk_window_set_resizable (GtkWindow *window,  gboolean resizable);
448 		gtk_window_set_resizable(gtkWindow, resizable);
449 	}
450 	
451 	/**
452 	 * Gets the value set by gtk_window_set_resizable().
453 	 * Returns: TRUE if the user can resize the window
454 	 */
455 	public int getResizable()
456 	{
457 		// gboolean gtk_window_get_resizable (GtkWindow *window);
458 		return gtk_window_get_resizable(gtkWindow);
459 	}
460 	
461 	/**
462 	 * Associate accel_group with window, such that calling
463 	 * gtk_accel_groups_activate() on window will activate accelerators
464 	 * in accel_group.
465 	 * Params:
466 	 * accelGroup = a GtkAccelGroup
467 	 */
468 	public void addAccelGroup(AccelGroup accelGroup)
469 	{
470 		// void gtk_window_add_accel_group (GtkWindow *window,  GtkAccelGroup *accel_group);
471 		gtk_window_add_accel_group(gtkWindow, (accelGroup is null) ? null : accelGroup.getAccelGroupStruct());
472 	}
473 	
474 	/**
475 	 * Reverses the effects of gtk_window_add_accel_group().
476 	 * Params:
477 	 * accelGroup = a GtkAccelGroup
478 	 */
479 	public void removeAccelGroup(AccelGroup accelGroup)
480 	{
481 		// void gtk_window_remove_accel_group (GtkWindow *window,  GtkAccelGroup *accel_group);
482 		gtk_window_remove_accel_group(gtkWindow, (accelGroup is null) ? null : accelGroup.getAccelGroupStruct());
483 	}
484 	
485 	/**
486 	 * Activates the current focused widget within the window.
487 	 * Returns: TRUE if a widget got activated.
488 	 */
489 	public int activateFocus()
490 	{
491 		// gboolean gtk_window_activate_focus (GtkWindow *window);
492 		return gtk_window_activate_focus(gtkWindow);
493 	}
494 	
495 	/**
496 	 * Activates the default widget for the window, unless the current
497 	 * focused widget has been configured to receive the default action
498 	 * (see gtk_widget_set_receives_default()), in which case the
499 	 * focused widget is activated.
500 	 * Returns: TRUE if a widget got activated.
501 	 */
502 	public int activateDefault()
503 	{
504 		// gboolean gtk_window_activate_default (GtkWindow *window);
505 		return gtk_window_activate_default(gtkWindow);
506 	}
507 	
508 	/**
509 	 * Sets a window modal or non-modal. Modal windows prevent interaction
510 	 * with other windows in the same application. To keep modal dialogs
511 	 * on top of main application windows, use
512 	 * gtk_window_set_transient_for() to make the dialog transient for the
513 	 * parent; most window managers
514 	 * will then disallow lowering the dialog below the parent.
515 	 * Params:
516 	 * modal = whether the window is modal
517 	 */
518 	public void setModal(int modal)
519 	{
520 		// void gtk_window_set_modal (GtkWindow *window,  gboolean modal);
521 		gtk_window_set_modal(gtkWindow, modal);
522 	}
523 	
524 	/**
525 	 * Sets the default size of a window. If the window's "natural" size
526 	 * (its size request) is larger than the default, the default will be
527 	 * ignored. More generally, if the default size does not obey the
528 	 * geometry hints for the window (gtk_window_set_geometry_hints() can
529 	 * be used to set these explicitly), the default size will be clamped
530 	 * to the nearest permitted size.
531 	 * Unlike gtk_widget_set_size_request(), which sets a size request for
532 	 * a widget and thus would keep users from shrinking the window, this
533 	 * function only sets the initial size, just as if the user had
534 	 * resized the window themselves. Users can still shrink the window
535 	 * again as they normally would. Setting a default size of -1 means to
536 	 * use the "natural" default size (the size request of the window).
537 	 * For more control over a window's initial size and how resizing works,
538 	 * investigate gtk_window_set_geometry_hints().
539 	 * For some uses, gtk_window_resize() is a more appropriate function.
540 	 * gtk_window_resize() changes the current size of the window, rather
541 	 * than the size to be used on initial display. gtk_window_resize() always
542 	 * affects the window itself, not the geometry widget.
543 	 * The default size of a window only affects the first time a window is
544 	 * shown; if a window is hidden and re-shown, it will remember the size
545 	 * it had prior to hiding, rather than using the default size.
546 	 * Windows can't actually be 0x0 in size, they must be at least 1x1, but
547 	 * passing 0 for width and height is OK, resulting in a 1x1 default size.
548 	 * Params:
549 	 * width = width in pixels, or -1 to unset the default width
550 	 * height = height in pixels, or -1 to unset the default height
551 	 */
552 	public void setDefaultSize(int width, int height)
553 	{
554 		// void gtk_window_set_default_size (GtkWindow *window,  gint width,  gint height);
555 		gtk_window_set_default_size(gtkWindow, width, height);
556 	}
557 	
558 	/**
559 	 * This function sets up hints about how a window can be resized by
560 	 * the user. You can set a minimum and maximum size; allowed resize
561 	 * increments (e.g. for xterm, you can only resize by the size of a
562 	 * character); aspect ratios; and more. See the GdkGeometry struct.
563 	 * Params:
564 	 * geometryWidget = widget the geometry hints will be applied to
565 	 * geometry = struct containing geometry information
566 	 * geomMask = mask indicating which struct fields should be paid attention to
567 	 */
568 	public void setGeometryHints(Widget geometryWidget, GdkGeometry* geometry, GdkWindowHints geomMask)
569 	{
570 		// void gtk_window_set_geometry_hints (GtkWindow *window,  GtkWidget *geometry_widget,  GdkGeometry *geometry,  GdkWindowHints geom_mask);
571 		gtk_window_set_geometry_hints(gtkWindow, (geometryWidget is null) ? null : geometryWidget.getWidgetStruct(), geometry, geomMask);
572 	}
573 	
574 	/**
575 	 * Window gravity defines the meaning of coordinates passed to
576 	 * gtk_window_move(). See gtk_window_move() and GdkGravity for
577 	 * more details.
578 	 * The default window gravity is GDK_GRAVITY_NORTH_WEST which will
579 	 * typically "do what you mean."
580 	 * Params:
581 	 * gravity = window gravity
582 	 */
583 	public void setGravity(GdkGravity gravity)
584 	{
585 		// void gtk_window_set_gravity (GtkWindow *window,  GdkGravity gravity);
586 		gtk_window_set_gravity(gtkWindow, gravity);
587 	}
588 	
589 	/**
590 	 * Gets the value set by gtk_window_set_gravity().
591 	 * Returns: window gravity. [transfer none]
592 	 */
593 	public GdkGravity getGravity()
594 	{
595 		// GdkGravity gtk_window_get_gravity (GtkWindow *window);
596 		return gtk_window_get_gravity(gtkWindow);
597 	}
598 	
599 	/**
600 	 * Sets a position constraint for this window. If the old or new
601 	 * constraint is GTK_WIN_POS_CENTER_ALWAYS, this will also cause
602 	 * the window to be repositioned to satisfy the new constraint.
603 	 * Params:
604 	 * position = a position constraint.
605 	 */
606 	public void setPosition(GtkWindowPosition position)
607 	{
608 		// void gtk_window_set_position (GtkWindow *window,  GtkWindowPosition position);
609 		gtk_window_set_position(gtkWindow, position);
610 	}
611 	
612 	/**
613 	 * Dialog windows should be set transient for the main application
614 	 * window they were spawned from. This allows window managers to e.g. keep the
615 	 * dialog on top of the main window, or center the dialog over the
616 	 * main window. gtk_dialog_new_with_buttons() and other convenience
617 	 * functions in GTK+ will sometimes call
618 	 * gtk_window_set_transient_for() on your behalf.
619 	 * Passing NULL for parent unsets the current transient window.
620 	 * On Windows, this function puts the child window on top of the parent,
621 	 * much as the window manager would have done on X.
622 	 * Params:
623 	 * parent = parent window, or NULL. [allow-none]
624 	 */
625 	public void setTransientFor(Window parent)
626 	{
627 		// void gtk_window_set_transient_for (GtkWindow *window,  GtkWindow *parent);
628 		gtk_window_set_transient_for(gtkWindow, (parent is null) ? null : parent.getWindowStruct());
629 	}
630 	
631 	/**
632 	 * If setting is TRUE, then destroying the transient parent of window
633 	 * will also destroy window itself. This is useful for dialogs that
634 	 * shouldn't persist beyond the lifetime of the main window they're
635 	 * associated with, for example.
636 	 * Params:
637 	 * setting = whether to destroy window with its transient parent
638 	 */
639 	public void setDestroyWithParent(int setting)
640 	{
641 		// void gtk_window_set_destroy_with_parent (GtkWindow *window,  gboolean setting);
642 		gtk_window_set_destroy_with_parent(gtkWindow, setting);
643 	}
644 	
645 	/**
646 	 * Sets the GdkScreen where the window is displayed; if
647 	 * the window is already mapped, it will be unmapped, and
648 	 * then remapped on the new screen.
649 	 * Since 2.2
650 	 * Params:
651 	 * screen = a GdkScreen.
652 	 */
653 	public void setScreen(Screen screen)
654 	{
655 		// void gtk_window_set_screen (GtkWindow *window,  GdkScreen *screen);
656 		gtk_window_set_screen(gtkWindow, (screen is null) ? null : screen.getScreenStruct());
657 	}
658 	
659 	/**
660 	 * Returns the GdkScreen associated with window.
661 	 * Since 2.2
662 	 * Returns: a GdkScreen. [transfer none]
663 	 */
664 	public override Screen getScreen()
665 	{
666 		// GdkScreen * gtk_window_get_screen (GtkWindow *window);
667 		auto p = gtk_window_get_screen(gtkWindow);
668 		
669 		if(p is null)
670 		{
671 			return null;
672 		}
673 		
674 		return ObjectG.getDObject!(Screen)(cast(GdkScreen*) p);
675 	}
676 	
677 	/**
678 	 * Returns whether the window is part of the current active toplevel.
679 	 * (That is, the toplevel window receiving keystrokes.)
680 	 * The return value is TRUE if the window is active toplevel
681 	 * itself, but also if it is, say, a GtkPlug embedded in the active toplevel.
682 	 * You might use this function if you wanted to draw a widget
683 	 * differently in an active window from a widget in an inactive window.
684 	 * See gtk_window_has_toplevel_focus()
685 	 * Since 2.4
686 	 * Returns: TRUE if the window part of the current active window.
687 	 */
688 	public int isActive()
689 	{
690 		// gboolean gtk_window_is_active (GtkWindow *window);
691 		return gtk_window_is_active(gtkWindow);
692 	}
693 	
694 	/**
695 	 * Returns whether the input focus is within this GtkWindow.
696 	 * For real toplevel windows, this is identical to gtk_window_is_active(),
697 	 * but for embedded windows, like GtkPlug, the results will differ.
698 	 * Since 2.4
699 	 * Returns: TRUE if the input focus is within this GtkWindow
700 	 */
701 	public int hasToplevelFocus()
702 	{
703 		// gboolean gtk_window_has_toplevel_focus (GtkWindow *window);
704 		return gtk_window_has_toplevel_focus(gtkWindow);
705 	}
706 	
707 	/**
708 	 * Returns a list of all existing toplevel windows. The widgets
709 	 * in the list are not individually referenced. If you want
710 	 * to iterate through the list and perform actions involving
711 	 * callbacks that might destroy the widgets, you must call
712 	 * g_list_foreach (result, (GFunc)g_object_ref, NULL) first, and
713 	 * then unref all the widgets afterwards.
714 	 * Returns: list of toplevel widgets. [element-type GtkWidget][transfer container]
715 	 */
716 	public static ListG listToplevels()
717 	{
718 		// GList * gtk_window_list_toplevels (void);
719 		auto p = gtk_window_list_toplevels();
720 		
721 		if(p is null)
722 		{
723 			return null;
724 		}
725 		
726 		return ObjectG.getDObject!(ListG)(cast(GList*) p);
727 	}
728 	
729 	/**
730 	 * Adds a mnemonic to this window.
731 	 * Params:
732 	 * keyval = the mnemonic
733 	 * target = the widget that gets activated by the mnemonic
734 	 */
735 	public void addMnemonic(uint keyval, Widget target)
736 	{
737 		// void gtk_window_add_mnemonic (GtkWindow *window,  guint keyval,  GtkWidget *target);
738 		gtk_window_add_mnemonic(gtkWindow, keyval, (target is null) ? null : target.getWidgetStruct());
739 	}
740 	
741 	/**
742 	 * Removes a mnemonic from this window.
743 	 * Params:
744 	 * keyval = the mnemonic
745 	 * target = the widget that gets activated by the mnemonic
746 	 */
747 	public void removeMnemonic(uint keyval, Widget target)
748 	{
749 		// void gtk_window_remove_mnemonic (GtkWindow *window,  guint keyval,  GtkWidget *target);
750 		gtk_window_remove_mnemonic(gtkWindow, keyval, (target is null) ? null : target.getWidgetStruct());
751 	}
752 	
753 	/**
754 	 * Activates the targets associated with the mnemonic.
755 	 * Params:
756 	 * keyval = the mnemonic
757 	 * modifier = the modifiers
758 	 * Returns: TRUE if the activation is done.
759 	 */
760 	public int mnemonicActivate(uint keyval, GdkModifierType modifier)
761 	{
762 		// gboolean gtk_window_mnemonic_activate (GtkWindow *window,  guint keyval,  GdkModifierType modifier);
763 		return gtk_window_mnemonic_activate(gtkWindow, keyval, modifier);
764 	}
765 	
766 	/**
767 	 * Activates mnemonics and accelerators for this GtkWindow. This is normally
768 	 * called by the default ::key_press_event handler for toplevel windows,
769 	 * however in some cases it may be useful to call this directly when
770 	 * overriding the standard key handling for a toplevel window.
771 	 * Since 2.4
772 	 * Params:
773 	 * event = a GdkEventKey
774 	 * Returns: TRUE if a mnemonic or accelerator was found and activated.
775 	 */
776 	public int activateKey(GdkEventKey* event)
777 	{
778 		// gboolean gtk_window_activate_key (GtkWindow *window,  GdkEventKey *event);
779 		return gtk_window_activate_key(gtkWindow, event);
780 	}
781 	
782 	/**
783 	 * Propagate a key press or release event to the focus widget and
784 	 * up the focus container chain until a widget handles event.
785 	 * This is normally called by the default ::key_press_event and
786 	 * ::key_release_event handlers for toplevel windows,
787 	 * however in some cases it may be useful to call this directly when
788 	 * overriding the standard key handling for a toplevel window.
789 	 * Since 2.4
790 	 * Params:
791 	 * event = a GdkEventKey
792 	 * Returns: TRUE if a widget in the focus chain handled the event.
793 	 */
794 	public int propagateKeyEvent(GdkEventKey* event)
795 	{
796 		// gboolean gtk_window_propagate_key_event (GtkWindow *window,  GdkEventKey *event);
797 		return gtk_window_propagate_key_event(gtkWindow, event);
798 	}
799 	
800 	/**
801 	 * Retrieves the current focused widget within the window.
802 	 * Note that this is the widget that would have the focus
803 	 * if the toplevel window focused; if the toplevel window
804 	 * is not focused then gtk_widget_has_focus (widget) will
805 	 * not be TRUE for the widget.
806 	 * Returns: the currently focused widget, or NULL if there is none. [transfer none]
807 	 */
808 	public Widget getFocus()
809 	{
810 		// GtkWidget * gtk_window_get_focus (GtkWindow *window);
811 		auto p = gtk_window_get_focus(gtkWindow);
812 		
813 		if(p is null)
814 		{
815 			return null;
816 		}
817 		
818 		return ObjectG.getDObject!(Widget)(cast(GtkWidget*) p);
819 	}
820 	
821 	/**
822 	 * If focus is not the current focus widget, and is focusable, sets
823 	 * it as the focus widget for the window. If focus is NULL, unsets
824 	 * the focus widget for this window. To set the focus to a particular
825 	 * widget in the toplevel, it is usually more convenient to use
826 	 * gtk_widget_grab_focus() instead of this function.
827 	 * Params:
828 	 * focus = widget to be the new focus widget, or NULL to unset
829 	 * any focus widget for the toplevel window. [allow-none]
830 	 */
831 	public void setFocus(Widget focus)
832 	{
833 		// void gtk_window_set_focus (GtkWindow *window,  GtkWidget *focus);
834 		gtk_window_set_focus(gtkWindow, (focus is null) ? null : focus.getWidgetStruct());
835 	}
836 	
837 	/**
838 	 * Returns the default widget for window. See gtk_window_set_default()
839 	 * for more details.
840 	 * Since 2.14
841 	 * Returns: the default widget, or NULL if there is none. [transfer none]
842 	 */
843 	public Widget getDefaultWidget()
844 	{
845 		// GtkWidget * gtk_window_get_default_widget (GtkWindow *window);
846 		auto p = gtk_window_get_default_widget(gtkWindow);
847 		
848 		if(p is null)
849 		{
850 			return null;
851 		}
852 		
853 		return ObjectG.getDObject!(Widget)(cast(GtkWidget*) p);
854 	}
855 	
856 	/**
857 	 * The default widget is the widget that's activated when the user
858 	 * presses Enter in a dialog (for example). This function sets or
859 	 * unsets the default widget for a GtkWindow about. When setting
860 	 * (rather than unsetting) the default widget it's generally easier to
861 	 * call gtk_widget_grab_focus() on the widget. Before making a widget
862 	 * the default widget, you must set the GTK_CAN_DEFAULT flag on the
863 	 * widget you'd like to make the default using GTK_WIDGET_SET_FLAGS().
864 	 * Params:
865 	 * defaultWidget = widget to be the default, or NULL to unset the
866 	 * default widget for the toplevel. [allow-none]
867 	 */
868 	public void setDefault(Widget defaultWidget)
869 	{
870 		// void gtk_window_set_default (GtkWindow *window,  GtkWidget *default_widget);
871 		gtk_window_set_default(gtkWindow, (defaultWidget is null) ? null : defaultWidget.getWidgetStruct());
872 	}
873 	
874 	/**
875 	 * Presents a window to the user. This may mean raising the window
876 	 * in the stacking order, deiconifying it, moving it to the current
877 	 * desktop, and/or giving it the keyboard focus, possibly dependent
878 	 * on the user's platform, window manager, and preferences.
879 	 * If window is hidden, this function calls gtk_widget_show()
880 	 * as well.
881 	 * This function should be used when the user tries to open a window
882 	 * that's already open. Say for example the preferences dialog is
883 	 * currently open, and the user chooses Preferences from the menu
884 	 * a second time; use gtk_window_present() to move the already-open dialog
885 	 * where the user can see it.
886 	 * If you are calling this function in response to a user interaction,
887 	 * it is preferable to use gtk_window_present_with_time().
888 	 */
889 	public void present()
890 	{
891 		// void gtk_window_present (GtkWindow *window);
892 		gtk_window_present(gtkWindow);
893 	}
894 	
895 	/**
896 	 * Presents a window to the user in response to a user interaction.
897 	 * If you need to present a window without a timestamp, use
898 	 * gtk_window_present(). See gtk_window_present() for details.
899 	 * Since 2.8
900 	 * Params:
901 	 * timestamp = the timestamp of the user interaction (typically a
902 	 * button or key press event) which triggered this call
903 	 */
904 	public void presentWithTime(uint timestamp)
905 	{
906 		// void gtk_window_present_with_time (GtkWindow *window,  guint32 timestamp);
907 		gtk_window_present_with_time(gtkWindow, timestamp);
908 	}
909 	
910 	/**
911 	 * Asks to iconify (i.e. minimize) the specified window. Note that
912 	 * you shouldn't assume the window is definitely iconified afterward,
913 	 * because other entities (e.g. the user or window manager) could deiconify it
914 	 * again, or there may not be a window manager in which case
915 	 * iconification isn't possible, etc. But normally the window will end
916 	 * up iconified. Just don't write code that crashes if not.
917 	 * It's permitted to call this function before showing a window,
918 	 * in which case the window will be iconified before it ever appears
919 	 * onscreen.
920 	 * You can track iconification via the "window-state-event" signal
921 	 * on GtkWidget.
922 	 */
923 	public void iconify()
924 	{
925 		// void gtk_window_iconify (GtkWindow *window);
926 		gtk_window_iconify(gtkWindow);
927 	}
928 	
929 	/**
930 	 * Asks to deiconify (i.e. unminimize) the specified window. Note
931 	 * that you shouldn't assume the window is definitely deiconified
932 	 * afterward, because other entities (e.g. the user or window manager) could iconify it
933 	 * again before your code which assumes deiconification gets to run.
934 	 * You can track iconification via the "window-state-event" signal
935 	 * on GtkWidget.
936 	 */
937 	public void deiconify()
938 	{
939 		// void gtk_window_deiconify (GtkWindow *window);
940 		gtk_window_deiconify(gtkWindow);
941 	}
942 	
943 	/**
944 	 * Asks to stick window, which means that it will appear on all user
945 	 * desktops. Note that you shouldn't assume the window is definitely
946 	 * stuck afterward, because other entities (e.g. the user or window manager) could unstick it
947 	 * again, and some window managers do not support sticking
948 	 * windows. But normally the window will end up stuck. Just don't
949 	 * write code that crashes if not.
950 	 * It's permitted to call this function before showing a window.
951 	 * You can track stickiness via the "window-state-event" signal
952 	 * on GtkWidget.
953 	 */
954 	public void stick()
955 	{
956 		// void gtk_window_stick (GtkWindow *window);
957 		gtk_window_stick(gtkWindow);
958 	}
959 	
960 	/**
961 	 * Asks to unstick window, which means that it will appear on only
962 	 * one of the user's desktops. Note that you shouldn't assume the
963 	 * window is definitely unstuck afterward, because other entities
964 	 * (e.g. the user or window
965 	 * manager) could stick it again. But normally the window will
966 	 * end up stuck. Just don't write code that crashes if not.
967 	 * You can track stickiness via the "window-state-event" signal
968 	 * on GtkWidget.
969 	 */
970 	public void unstick()
971 	{
972 		// void gtk_window_unstick (GtkWindow *window);
973 		gtk_window_unstick(gtkWindow);
974 	}
975 	
976 	/**
977 	 * Asks to maximize window, so that it becomes full-screen. Note that
978 	 * you shouldn't assume the window is definitely maximized afterward,
979 	 * because other entities (e.g. the user or window manager) could unmaximize it
980 	 * again, and not all window managers support maximization. But
981 	 * normally the window will end up maximized. Just don't write code
982 	 * that crashes if not.
983 	 * It's permitted to call this function before showing a window,
984 	 * in which case the window will be maximized when it appears onscreen
985 	 * initially.
986 	 * You can track maximization via the "window-state-event" signal
987 	 * on GtkWidget.
988 	 */
989 	public void maximize()
990 	{
991 		// void gtk_window_maximize (GtkWindow *window);
992 		gtk_window_maximize(gtkWindow);
993 	}
994 	
995 	/**
996 	 * Asks to unmaximize window. Note that you shouldn't assume the
997 	 * window is definitely unmaximized afterward, because other entities
998 	 * (e.g. the user or window
999 	 * manager) could maximize it again, and not all window
1000 	 * managers honor requests to unmaximize. But normally the window will
1001 	 * end up unmaximized. Just don't write code that crashes if not.
1002 	 * You can track maximization via the "window-state-event" signal
1003 	 * on GtkWidget.
1004 	 */
1005 	public void unmaximize()
1006 	{
1007 		// void gtk_window_unmaximize (GtkWindow *window);
1008 		gtk_window_unmaximize(gtkWindow);
1009 	}
1010 	
1011 	/**
1012 	 * Asks to place window in the fullscreen state. Note that you
1013 	 * shouldn't assume the window is definitely full screen afterward,
1014 	 * because other entities (e.g. the user or window manager) could unfullscreen it
1015 	 * again, and not all window managers honor requests to fullscreen
1016 	 * windows. But normally the window will end up fullscreen. Just
1017 	 * don't write code that crashes if not.
1018 	 * You can track the fullscreen state via the "window-state-event" signal
1019 	 * on GtkWidget.
1020 	 * Since 2.2
1021 	 */
1022 	public void fullscreen()
1023 	{
1024 		// void gtk_window_fullscreen (GtkWindow *window);
1025 		gtk_window_fullscreen(gtkWindow);
1026 	}
1027 	
1028 	/**
1029 	 * Asks to toggle off the fullscreen state for window. Note that you
1030 	 * shouldn't assume the window is definitely not full screen
1031 	 * afterward, because other entities (e.g. the user or window manager) could fullscreen it
1032 	 * again, and not all window managers honor requests to unfullscreen
1033 	 * windows. But normally the window will end up restored to its normal
1034 	 * state. Just don't write code that crashes if not.
1035 	 * You can track the fullscreen state via the "window-state-event" signal
1036 	 * on GtkWidget.
1037 	 * Since 2.2
1038 	 */
1039 	public void unfullscreen()
1040 	{
1041 		// void gtk_window_unfullscreen (GtkWindow *window);
1042 		gtk_window_unfullscreen(gtkWindow);
1043 	}
1044 	
1045 	/**
1046 	 * Asks to keep window above, so that it stays on top. Note that
1047 	 * you shouldn't assume the window is definitely above afterward,
1048 	 * because other entities (e.g. the user or window manager) could not keep it above,
1049 	 * and not all window managers support keeping windows above. But
1050 	 * normally the window will end kept above. Just don't write code
1051 	 * that crashes if not.
1052 	 * It's permitted to call this function before showing a window,
1053 	 * in which case the window will be kept above when it appears onscreen
1054 	 * initially.
1055 	 * You can track the above state via the "window-state-event" signal
1056 	 * on GtkWidget.
1057 	 * Note that, according to the Extended Window
1058 	 * Manager Hints specification, the above state is mainly meant
1059 	 * for user preferences and should not be used by applications e.g. for
1060 	 * drawing attention to their dialogs.
1061 	 * Since 2.4
1062 	 * Params:
1063 	 * setting = whether to keep window above other windows
1064 	 */
1065 	public void setKeepAbove(int setting)
1066 	{
1067 		// void gtk_window_set_keep_above (GtkWindow *window,  gboolean setting);
1068 		gtk_window_set_keep_above(gtkWindow, setting);
1069 	}
1070 	
1071 	/**
1072 	 * Asks to keep window below, so that it stays in bottom. Note that
1073 	 * you shouldn't assume the window is definitely below afterward,
1074 	 * because other entities (e.g. the user or window manager) could not keep it below,
1075 	 * and not all window managers support putting windows below. But
1076 	 * normally the window will be kept below. Just don't write code
1077 	 * that crashes if not.
1078 	 * It's permitted to call this function before showing a window,
1079 	 * in which case the window will be kept below when it appears onscreen
1080 	 * initially.
1081 	 * You can track the below state via the "window-state-event" signal
1082 	 * on GtkWidget.
1083 	 * Note that, according to the Extended Window
1084 	 * Manager Hints specification, the above state is mainly meant
1085 	 * for user preferences and should not be used by applications e.g. for
1086 	 * drawing attention to their dialogs.
1087 	 * Since 2.4
1088 	 * Params:
1089 	 * setting = whether to keep window below other windows
1090 	 */
1091 	public void setKeepBelow(int setting)
1092 	{
1093 		// void gtk_window_set_keep_below (GtkWindow *window,  gboolean setting);
1094 		gtk_window_set_keep_below(gtkWindow, setting);
1095 	}
1096 	
1097 	/**
1098 	 * Starts resizing a window. This function is used if an application
1099 	 * has window resizing controls. When GDK can support it, the resize
1100 	 * will be done using the standard mechanism for the window manager or windowing
1101 	 * system. Otherwise, GDK will try to emulate window resizing,
1102 	 * potentially not all that well, depending on the windowing system.
1103 	 * Params:
1104 	 * edge = position of the resize control
1105 	 * button = mouse button that initiated the drag
1106 	 * rootX = X position where the user clicked to initiate the drag, in root window coordinates
1107 	 * rootY = Y position where the user clicked to initiate the drag
1108 	 * timestamp = timestamp from the click event that initiated the drag
1109 	 */
1110 	public void beginResizeDrag(GdkWindowEdge edge, int button, int rootX, int rootY, uint timestamp)
1111 	{
1112 		// void gtk_window_begin_resize_drag (GtkWindow *window,  GdkWindowEdge edge,  gint button,  gint root_x,  gint root_y,  guint32 timestamp);
1113 		gtk_window_begin_resize_drag(gtkWindow, edge, button, rootX, rootY, timestamp);
1114 	}
1115 	
1116 	/**
1117 	 * Starts moving a window. This function is used if an application has
1118 	 * window movement grips. When GDK can support it, the window movement
1119 	 * will be done using the standard mechanism for the window manager or windowing
1120 	 * system. Otherwise, GDK will try to emulate window movement,
1121 	 * potentially not all that well, depending on the windowing system.
1122 	 * Params:
1123 	 * button = mouse button that initiated the drag
1124 	 * rootX = X position where the user clicked to initiate the drag, in root window coordinates
1125 	 * rootY = Y position where the user clicked to initiate the drag
1126 	 * timestamp = timestamp from the click event that initiated the drag
1127 	 */
1128 	public void beginMoveDrag(int button, int rootX, int rootY, uint timestamp)
1129 	{
1130 		// void gtk_window_begin_move_drag (GtkWindow *window,  gint button,  gint root_x,  gint root_y,  guint32 timestamp);
1131 		gtk_window_begin_move_drag(gtkWindow, button, rootX, rootY, timestamp);
1132 	}
1133 	
1134 	/**
1135 	 * By default, windows are decorated with a title bar, resize
1136 	 * controls, etc. Some window
1137 	 * managers allow GTK+ to disable these decorations, creating a
1138 	 * borderless window. If you set the decorated property to FALSE
1139 	 * using this function, GTK+ will do its best to convince the window
1140 	 * manager not to decorate the window. Depending on the system, this
1141 	 * function may not have any effect when called on a window that is
1142 	 * already visible, so you should call it before calling gtk_window_show().
1143 	 * On Windows, this function always works, since there's no window manager
1144 	 * policy involved.
1145 	 * Params:
1146 	 * setting = TRUE to decorate the window
1147 	 */
1148 	public void setDecorated(int setting)
1149 	{
1150 		// void gtk_window_set_decorated (GtkWindow *window,  gboolean setting);
1151 		gtk_window_set_decorated(gtkWindow, setting);
1152 	}
1153 	
1154 	/**
1155 	 * By default, windows have a close button in the window frame. Some
1156 	 * window managers allow GTK+ to
1157 	 * disable this button. If you set the deletable property to FALSE
1158 	 * using this function, GTK+ will do its best to convince the window
1159 	 * manager not to show a close button. Depending on the system, this
1160 	 * function may not have any effect when called on a window that is
1161 	 * already visible, so you should call it before calling gtk_window_show().
1162 	 * On Windows, this function always works, since there's no window manager
1163 	 * policy involved.
1164 	 * Since 2.10
1165 	 * Params:
1166 	 * setting = TRUE to decorate the window as deletable
1167 	 */
1168 	public void setDeletable(int setting)
1169 	{
1170 		// void gtk_window_set_deletable (GtkWindow *window,  gboolean setting);
1171 		gtk_window_set_deletable(gtkWindow, setting);
1172 	}
1173 	
1174 	/**
1175 	 * Warning
1176 	 * gtk_window_set_frame_dimensions has been deprecated since version 2.24 and should not be used in newly-written code. This function will be removed in GTK+ 3
1177 	 * (Note: this is a special-purpose function intended for the framebuffer
1178 	 *  port; see gtk_window_set_has_frame(). It will have no effect on the
1179 	 *  window border drawn by the window manager, which is the normal
1180 	 *  case when using the X Window system.)
1181 	 * For windows with frames (see gtk_window_set_has_frame()) this function
1182 	 * can be used to change the size of the frame border.
1183 	 * Params:
1184 	 * left = The width of the left border
1185 	 * top = The height of the top border
1186 	 * right = The width of the right border
1187 	 * bottom = The height of the bottom border
1188 	 */
1189 	public void setFrameDimensions(int left, int top, int right, int bottom)
1190 	{
1191 		// void gtk_window_set_frame_dimensions (GtkWindow *window,  gint left,  gint top,  gint right,  gint bottom);
1192 		gtk_window_set_frame_dimensions(gtkWindow, left, top, right, bottom);
1193 	}
1194 	
1195 	/**
1196 	 * Warning
1197 	 * gtk_window_set_has_frame has been deprecated since version 2.24 and should not be used in newly-written code. This function will be removed in GTK+ 3
1198 	 * (Note: this is a special-purpose function for the framebuffer port,
1199 	 *  that causes GTK+ to draw its own window border. For most applications,
1200 	 *  you want gtk_window_set_decorated() instead, which tells the window
1201 	 *  manager whether to draw the window border.)
1202 	 * If this function is called on a window with setting of TRUE, before
1203 	 * it is realized or showed, it will have a "frame" window around
1204 	 * window->window, accessible in window->frame. Using the signal
1205 	 * frame_event you can receive all events targeted at the frame.
1206 	 * This function is used by the linux-fb port to implement managed
1207 	 * windows, but it could conceivably be used by X-programs that
1208 	 * want to do their own window decorations.
1209 	 * Params:
1210 	 * setting = a boolean
1211 	 */
1212 	public void setHasFrame(int setting)
1213 	{
1214 		// void gtk_window_set_has_frame (GtkWindow *window,  gboolean setting);
1215 		gtk_window_set_has_frame(gtkWindow, setting);
1216 	}
1217 	
1218 	/**
1219 	 * Sets the mnemonic modifier for this window.
1220 	 * Params:
1221 	 * modifier = the modifier mask used to activate
1222 	 * mnemonics on this window.
1223 	 */
1224 	public void setMnemonicModifier(GdkModifierType modifier)
1225 	{
1226 		// void gtk_window_set_mnemonic_modifier (GtkWindow *window,  GdkModifierType modifier);
1227 		gtk_window_set_mnemonic_modifier(gtkWindow, modifier);
1228 	}
1229 	
1230 	/**
1231 	 * By setting the type hint for the window, you allow the window
1232 	 * manager to decorate and handle the window in a way which is
1233 	 * suitable to the function of the window in your application.
1234 	 * This function should be called before the window becomes visible.
1235 	 * gtk_dialog_new_with_buttons() and other convenience functions in GTK+
1236 	 * will sometimes call gtk_window_set_type_hint() on your behalf.
1237 	 * Params:
1238 	 * hint = the window type
1239 	 */
1240 	public void setTypeHint(GdkWindowTypeHint hint)
1241 	{
1242 		// void gtk_window_set_type_hint (GtkWindow *window,  GdkWindowTypeHint hint);
1243 		gtk_window_set_type_hint(gtkWindow, hint);
1244 	}
1245 	
1246 	/**
1247 	 * Windows may set a hint asking the desktop environment not to display
1248 	 * the window in the task bar. This function sets this hint.
1249 	 * Since 2.2
1250 	 * Params:
1251 	 * setting = TRUE to keep this window from appearing in the task bar
1252 	 */
1253 	public void setSkipTaskbarHint(int setting)
1254 	{
1255 		// void gtk_window_set_skip_taskbar_hint (GtkWindow *window,  gboolean setting);
1256 		gtk_window_set_skip_taskbar_hint(gtkWindow, setting);
1257 	}
1258 	
1259 	/**
1260 	 * Windows may set a hint asking the desktop environment not to display
1261 	 * the window in the pager. This function sets this hint.
1262 	 * (A "pager" is any desktop navigation tool such as a workspace
1263 	 * switcher that displays a thumbnail representation of the windows
1264 	 * on the screen.)
1265 	 * Since 2.2
1266 	 * Params:
1267 	 * setting = TRUE to keep this window from appearing in the pager
1268 	 */
1269 	public void setSkipPagerHint(int setting)
1270 	{
1271 		// void gtk_window_set_skip_pager_hint (GtkWindow *window,  gboolean setting);
1272 		gtk_window_set_skip_pager_hint(gtkWindow, setting);
1273 	}
1274 	
1275 	/**
1276 	 * Windows may set a hint asking the desktop environment to draw
1277 	 * the users attention to the window. This function sets this hint.
1278 	 * Since 2.8
1279 	 * Params:
1280 	 * setting = TRUE to mark this window as urgent
1281 	 */
1282 	public void setUrgencyHint(int setting)
1283 	{
1284 		// void gtk_window_set_urgency_hint (GtkWindow *window,  gboolean setting);
1285 		gtk_window_set_urgency_hint(gtkWindow, setting);
1286 	}
1287 	
1288 	/**
1289 	 * Windows may set a hint asking the desktop environment not to receive
1290 	 * the input focus. This function sets this hint.
1291 	 * Since 2.4
1292 	 * Params:
1293 	 * setting = TRUE to let this window receive input focus
1294 	 */
1295 	public void setAcceptFocus(int setting)
1296 	{
1297 		// void gtk_window_set_accept_focus (GtkWindow *window,  gboolean setting);
1298 		gtk_window_set_accept_focus(gtkWindow, setting);
1299 	}
1300 	
1301 	/**
1302 	 * Windows may set a hint asking the desktop environment not to receive
1303 	 * the input focus when the window is mapped. This function sets this
1304 	 * hint.
1305 	 * Since 2.6
1306 	 * Params:
1307 	 * setting = TRUE to let this window receive input focus on map
1308 	 */
1309 	public void setFocusOnMap(int setting)
1310 	{
1311 		// void gtk_window_set_focus_on_map (GtkWindow *window,  gboolean setting);
1312 		gtk_window_set_focus_on_map(gtkWindow, setting);
1313 	}
1314 	
1315 	/**
1316 	 * Startup notification identifiers are used by desktop environment to
1317 	 * track application startup, to provide user feedback and other
1318 	 * features. This function changes the corresponding property on the
1319 	 * underlying GdkWindow. Normally, startup identifier is managed
1320 	 * automatically and you should only use this function in special cases
1321 	 * like transferring focus from other processes. You should use this
1322 	 * function before calling gtk_window_present() or any equivalent
1323 	 * function generating a window map event.
1324 	 * This function is only useful on X11, not with other GTK+ targets.
1325 	 * Since 2.12
1326 	 * Params:
1327 	 * startupId = a string with startup-notification identifier
1328 	 */
1329 	public void setStartupId(string startupId)
1330 	{
1331 		// void gtk_window_set_startup_id (GtkWindow *window,  const gchar *startup_id);
1332 		gtk_window_set_startup_id(gtkWindow, Str.toStringz(startupId));
1333 	}
1334 	
1335 	/**
1336 	 * This function is only useful on X11, not with other GTK+ targets.
1337 	 * In combination with the window title, the window role allows a
1338 	 * window manager to identify "the
1339 	 * same" window when an application is restarted. So for example you
1340 	 * might set the "toolbox" role on your app's toolbox window, so that
1341 	 * when the user restarts their session, the window manager can put
1342 	 * the toolbox back in the same place.
1343 	 * If a window already has a unique title, you don't need to set the
1344 	 * role, since the WM can use the title to identify the window when
1345 	 * restoring the session.
1346 	 * Params:
1347 	 * role = unique identifier for the window to be used when restoring a session
1348 	 */
1349 	public void setRole(string role)
1350 	{
1351 		// void gtk_window_set_role (GtkWindow *window,  const gchar *role);
1352 		gtk_window_set_role(gtkWindow, Str.toStringz(role));
1353 	}
1354 	
1355 	/**
1356 	 * Returns whether the window has been set to have decorations
1357 	 * such as a title bar via gtk_window_set_decorated().
1358 	 * Returns: TRUE if the window has been set to have decorations
1359 	 */
1360 	public int getDecorated()
1361 	{
1362 		// gboolean gtk_window_get_decorated (GtkWindow *window);
1363 		return gtk_window_get_decorated(gtkWindow);
1364 	}
1365 	
1366 	/**
1367 	 * Returns whether the window has been set to have a close button
1368 	 * via gtk_window_set_deletable().
1369 	 * Since 2.10
1370 	 * Returns: TRUE if the window has been set to have a close button
1371 	 */
1372 	public int getDeletable()
1373 	{
1374 		// gboolean gtk_window_get_deletable (GtkWindow *window);
1375 		return gtk_window_get_deletable(gtkWindow);
1376 	}
1377 	
1378 	/**
1379 	 * Gets the value set by gtk_window_set_default_icon_list().
1380 	 * The list is a copy and should be freed with g_list_free(),
1381 	 * but the pixbufs in the list have not had their reference count
1382 	 * incremented.
1383 	 * Returns: copy of default icon list. [element-type GdkPixbuf][transfer container]
1384 	 */
1385 	public static ListG getDefaultIconList()
1386 	{
1387 		// GList * gtk_window_get_default_icon_list (void);
1388 		auto p = gtk_window_get_default_icon_list();
1389 		
1390 		if(p is null)
1391 		{
1392 			return null;
1393 		}
1394 		
1395 		return ObjectG.getDObject!(ListG)(cast(GList*) p);
1396 	}
1397 	
1398 	/**
1399 	 * Returns the fallback icon name for windows that has been set
1400 	 * with gtk_window_set_default_icon_name(). The returned
1401 	 * string is owned by GTK+ and should not be modified. It
1402 	 * is only valid until the next call to
1403 	 * gtk_window_set_default_icon_name().
1404 	 * Since 2.16
1405 	 * Returns: the fallback icon name for windows
1406 	 */
1407 	public static string getDefaultIconName()
1408 	{
1409 		// const gchar * gtk_window_get_default_icon_name (void);
1410 		return Str.toString(gtk_window_get_default_icon_name());
1411 	}
1412 	
1413 	/**
1414 	 * Gets the default size of the window. A value of -1 for the width or
1415 	 * height indicates that a default size has not been explicitly set
1416 	 * for that dimension, so the "natural" size of the window will be
1417 	 * used.
1418 	 * Params:
1419 	 * width = location to store the default width, or NULL. [allow-none]
1420 	 * height = location to store the default height, or NULL. [allow-none]
1421 	 */
1422 	public void getDefaultSize(out int width, out int height)
1423 	{
1424 		// void gtk_window_get_default_size (GtkWindow *window,  gint *width,  gint *height);
1425 		gtk_window_get_default_size(gtkWindow, &width, &height);
1426 	}
1427 	
1428 	/**
1429 	 * Returns whether the window will be destroyed with its transient parent. See
1430 	 * gtk_window_set_destroy_with_parent().
1431 	 * Returns: TRUE if the window will be destroyed with its transient parent.
1432 	 */
1433 	public int getDestroyWithParent()
1434 	{
1435 		// gboolean gtk_window_get_destroy_with_parent (GtkWindow *window);
1436 		return gtk_window_get_destroy_with_parent(gtkWindow);
1437 	}
1438 	
1439 	/**
1440 	 * Warning
1441 	 * gtk_window_get_frame_dimensions has been deprecated since version 2.24 and should not be used in newly-written code. This function will be removed in GTK+ 3
1442 	 * (Note: this is a special-purpose function intended for the
1443 	 *  framebuffer port; see gtk_window_set_has_frame(). It will not
1444 	 *  return the size of the window border drawn by the window manager, which is the normal
1445 	 *  case when using a windowing system. See
1446 	 *  gdk_window_get_frame_extents() to get the standard window border
1447 	 *  extents.)
1448 	 * Retrieves the dimensions of the frame window for this toplevel.
1449 	 * See gtk_window_set_has_frame(), gtk_window_set_frame_dimensions().
1450 	 * Params:
1451 	 * left = location to store the width of the frame at the left, or NULL. [out][allow-none]
1452 	 * top = location to store the height of the frame at the top, or NULL. [out][allow-none]
1453 	 * right = location to store the width of the frame at the returns, or NULL. [out][allow-none]
1454 	 * bottom = location to store the height of the frame at the bottom, or NULL. [out][allow-none]
1455 	 */
1456 	public void getFrameDimensions(out int left, out int top, out int right, out int bottom)
1457 	{
1458 		// void gtk_window_get_frame_dimensions (GtkWindow *window,  gint *left,  gint *top,  gint *right,  gint *bottom);
1459 		gtk_window_get_frame_dimensions(gtkWindow, &left, &top, &right, &bottom);
1460 	}
1461 	
1462 	/**
1463 	 * Warning
1464 	 * gtk_window_get_has_frame has been deprecated since version 2.24 and should not be used in newly-written code. This function will be removed in GTK+ 3
1465 	 * Accessor for whether the window has a frame window exterior to
1466 	 * window->window. Gets the value set by gtk_window_set_has_frame().
1467 	 * Returns: TRUE if a frame has been added to the window via gtk_window_set_has_frame().
1468 	 */
1469 	public int getHasFrame()
1470 	{
1471 		// gboolean gtk_window_get_has_frame (GtkWindow *window);
1472 		return gtk_window_get_has_frame(gtkWindow);
1473 	}
1474 	
1475 	/**
1476 	 * Gets the value set by gtk_window_set_icon() (or if you've
1477 	 * called gtk_window_set_icon_list(), gets the first icon in
1478 	 * the icon list).
1479 	 * Returns: icon for window. [transfer none]
1480 	 */
1481 	public Pixbuf getIcon()
1482 	{
1483 		// GdkPixbuf * gtk_window_get_icon (GtkWindow *window);
1484 		auto p = gtk_window_get_icon(gtkWindow);
1485 		
1486 		if(p is null)
1487 		{
1488 			return null;
1489 		}
1490 		
1491 		return ObjectG.getDObject!(Pixbuf)(cast(GdkPixbuf*) p);
1492 	}
1493 	
1494 	/**
1495 	 * Retrieves the list of icons set by gtk_window_set_icon_list().
1496 	 * The list is copied, but the reference count on each
1497 	 * member won't be incremented.
1498 	 * Returns: copy of window's icon list. [element-type GdkPixbuf][transfer container]
1499 	 */
1500 	public ListG getIconList()
1501 	{
1502 		// GList * gtk_window_get_icon_list (GtkWindow *window);
1503 		auto p = gtk_window_get_icon_list(gtkWindow);
1504 		
1505 		if(p is null)
1506 		{
1507 			return null;
1508 		}
1509 		
1510 		return ObjectG.getDObject!(ListG)(cast(GList*) p);
1511 	}
1512 	
1513 	/**
1514 	 * Returns the name of the themed icon for the window,
1515 	 * see gtk_window_set_icon_name().
1516 	 * Since 2.6
1517 	 * Returns: the icon name or NULL if the window has no themed icon
1518 	 */
1519 	public string getIconName()
1520 	{
1521 		// const gchar * gtk_window_get_icon_name (GtkWindow *window);
1522 		return Str.toString(gtk_window_get_icon_name(gtkWindow));
1523 	}
1524 	
1525 	/**
1526 	 * Returns the mnemonic modifier for this window. See
1527 	 * gtk_window_set_mnemonic_modifier().
1528 	 * Returns: the modifier mask used to activate mnemonics on this window.
1529 	 */
1530 	public GdkModifierType getMnemonicModifier()
1531 	{
1532 		// GdkModifierType gtk_window_get_mnemonic_modifier (GtkWindow *window);
1533 		return gtk_window_get_mnemonic_modifier(gtkWindow);
1534 	}
1535 	
1536 	/**
1537 	 * Returns whether the window is modal. See gtk_window_set_modal().
1538 	 * Returns: TRUE if the window is set to be modal and establishes a grab when shown
1539 	 */
1540 	public int getModal()
1541 	{
1542 		// gboolean gtk_window_get_modal (GtkWindow *window);
1543 		return gtk_window_get_modal(gtkWindow);
1544 	}
1545 	
1546 	/**
1547 	 * This function returns the position you need to pass to
1548 	 * gtk_window_move() to keep window in its current position. This
1549 	 * means that the meaning of the returned value varies with window
1550 	 * gravity. See gtk_window_move() for more details.
1551 	 * If you haven't changed the window gravity, its gravity will be
1552 	 * GDK_GRAVITY_NORTH_WEST. This means that gtk_window_get_position()
1553 	 * gets the position of the top-left corner of the window manager
1554 	 * frame for the window. gtk_window_move() sets the position of this
1555 	 * same top-left corner.
1556 	 * gtk_window_get_position() is not 100% reliable because the X Window System
1557 	 * does not specify a way to obtain the geometry of the
1558 	 * decorations placed on a window by the window manager.
1559 	 * Thus GTK+ is using a "best guess" that works with most
1560 	 * window managers.
1561 	 * Moreover, nearly all window managers are historically broken with
1562 	 * respect to their handling of window gravity. So moving a window to
1563 	 * its current position as returned by gtk_window_get_position() tends
1564 	 * to result in moving the window slightly. Window managers are
1565 	 * slowly getting better over time.
1566 	 * If a window has gravity GDK_GRAVITY_STATIC the window manager
1567 	 * frame is not relevant, and thus gtk_window_get_position() will
1568 	 * always produce accurate results. However you can't use static
1569 	 * gravity to do things like place a window in a corner of the screen,
1570 	 * because static gravity ignores the window manager decorations.
1571 	 * If you are saving and restoring your application's window
1572 	 * positions, you should know that it's impossible for applications to
1573 	 * do this without getting it somewhat wrong because applications do
1574 	 * not have sufficient knowledge of window manager state. The Correct
1575 	 * Mechanism is to support the session management protocol (see the
1576 	 * "GnomeClient" object in the GNOME libraries for example) and allow
1577 	 * the window manager to save your window sizes and positions.
1578 	 * Params:
1579 	 * rootX = return location for X coordinate of gravity-determined reference point. [out][allow-none]
1580 	 * rootY = return location for Y coordinate of gravity-determined reference point. [out][allow-none]
1581 	 */
1582 	public void getPosition(out int rootX, out int rootY)
1583 	{
1584 		// void gtk_window_get_position (GtkWindow *window,  gint *root_x,  gint *root_y);
1585 		gtk_window_get_position(gtkWindow, &rootX, &rootY);
1586 	}
1587 	
1588 	/**
1589 	 * Returns the role of the window. See gtk_window_set_role() for
1590 	 * further explanation.
1591 	 * Returns: the role of the window if set, or NULL. The returned is owned by the widget and must not be modified or freed.
1592 	 */
1593 	public string getRole()
1594 	{
1595 		// const gchar * gtk_window_get_role (GtkWindow *window);
1596 		return Str.toString(gtk_window_get_role(gtkWindow));
1597 	}
1598 	
1599 	/**
1600 	 * Obtains the current size of window. If window is not onscreen,
1601 	 * it returns the size GTK+ will suggest to the window manager for the initial window
1602 	 * size (but this is not reliably the same as the size the window
1603 	 * manager will actually select). The size obtained by
1604 	 * gtk_window_get_size() is the last size received in a
1605 	 * GdkEventConfigure, that is, GTK+ uses its locally-stored size,
1606 	 * rather than querying the X server for the size. As a result, if you
1607 	 * call gtk_window_resize() then immediately call
1608 	 * gtk_window_get_size(), the size won't have taken effect yet. After
1609 	 * the window manager processes the resize request, GTK+ receives
1610 	 * notification that the size has changed via a configure event, and
1611 	 * the size of the window gets updated.
1612 	 * Note 1: Nearly any use of this function creates a race condition,
1613 	 * because the size of the window may change between the time that you
1614 	 * get the size and the time that you perform some action assuming
1615 	 * that size is the current size. To avoid race conditions, connect to
1616 	 * "configure-event" on the window and adjust your size-dependent
1617 	 * state to match the size delivered in the GdkEventConfigure.
1618 	 * Note 2: The returned size does not include the
1619 	 * size of the window manager decorations (aka the window frame or
1620 	 * border). Those are not drawn by GTK+ and GTK+ has no reliable
1621 	 * method of determining their size.
1622 	 * Note 3: If you are getting a window size in order to position
1623 	 * the window onscreen, there may be a better way. The preferred
1624 	 * way is to simply set the window's semantic type with
1625 	 * gtk_window_set_type_hint(), which allows the window manager to
1626 	 * e.g. center dialogs. Also, if you set the transient parent of
1627 	 * dialogs with gtk_window_set_transient_for() window managers
1628 	 * will often center the dialog over its parent window. It's
1629 	 * much preferred to let the window manager handle these
1630 	 * things rather than doing it yourself, because all apps will
1631 	 * behave consistently and according to user prefs if the window
1632 	 * manager handles it. Also, the window manager can take the size
1633 	 * of the window decorations/border into account, while your
1634 	 * application cannot.
1635 	 * In any case, if you insist on application-specified window
1636 	 * positioning, there's still a better way than
1637 	 * doing it yourself - gtk_window_set_position() will frequently
1638 	 * handle the details for you.
1639 	 * Params:
1640 	 * width = return location for width, or NULL. [out][allow-none]
1641 	 * height = return location for height, or NULL. [out][allow-none]
1642 	 */
1643 	public void getSize(out int width, out int height)
1644 	{
1645 		// void gtk_window_get_size (GtkWindow *window,  gint *width,  gint *height);
1646 		gtk_window_get_size(gtkWindow, &width, &height);
1647 	}
1648 	
1649 	/**
1650 	 * Retrieves the title of the window. See gtk_window_set_title().
1651 	 * Returns: the title of the window, or NULL if none has been set explicitely. The returned string is owned by the widget and must not be modified or freed.
1652 	 */
1653 	public string getTitle()
1654 	{
1655 		// const gchar * gtk_window_get_title (GtkWindow *window);
1656 		return Str.toString(gtk_window_get_title(gtkWindow));
1657 	}
1658 	
1659 	/**
1660 	 * Fetches the transient parent for this window. See
1661 	 * gtk_window_set_transient_for().
1662 	 * Returns: the transient parent for this window, or NULL if no transient parent has been set. [transfer none]
1663 	 */
1664 	public Window getTransientFor()
1665 	{
1666 		// GtkWindow * gtk_window_get_transient_for (GtkWindow *window);
1667 		auto p = gtk_window_get_transient_for(gtkWindow);
1668 		
1669 		if(p is null)
1670 		{
1671 			return null;
1672 		}
1673 		
1674 		return ObjectG.getDObject!(Window)(cast(GtkWindow*) p);
1675 	}
1676 	
1677 	/**
1678 	 * Gets the type hint for this window. See gtk_window_set_type_hint().
1679 	 * Returns: the type hint for window.
1680 	 */
1681 	public GdkWindowTypeHint getTypeHint()
1682 	{
1683 		// GdkWindowTypeHint gtk_window_get_type_hint (GtkWindow *window);
1684 		return gtk_window_get_type_hint(gtkWindow);
1685 	}
1686 	
1687 	/**
1688 	 * Gets the value set by gtk_window_set_skip_taskbar_hint()
1689 	 * Since 2.2
1690 	 * Returns: TRUE if window shouldn't be in taskbar
1691 	 */
1692 	public int getSkipTaskbarHint()
1693 	{
1694 		// gboolean gtk_window_get_skip_taskbar_hint (GtkWindow *window);
1695 		return gtk_window_get_skip_taskbar_hint(gtkWindow);
1696 	}
1697 	
1698 	/**
1699 	 * Gets the value set by gtk_window_set_skip_pager_hint().
1700 	 * Since 2.2
1701 	 * Returns: TRUE if window shouldn't be in pager
1702 	 */
1703 	public int getSkipPagerHint()
1704 	{
1705 		// gboolean gtk_window_get_skip_pager_hint (GtkWindow *window);
1706 		return gtk_window_get_skip_pager_hint(gtkWindow);
1707 	}
1708 	
1709 	/**
1710 	 * Gets the value set by gtk_window_set_urgency_hint()
1711 	 * Since 2.8
1712 	 * Returns: TRUE if window is urgent
1713 	 */
1714 	public int getUrgencyHint()
1715 	{
1716 		// gboolean gtk_window_get_urgency_hint (GtkWindow *window);
1717 		return gtk_window_get_urgency_hint(gtkWindow);
1718 	}
1719 	
1720 	/**
1721 	 * Gets the value set by gtk_window_set_accept_focus().
1722 	 * Since 2.4
1723 	 * Returns: TRUE if window should receive the input focus
1724 	 */
1725 	public int getAcceptFocus()
1726 	{
1727 		// gboolean gtk_window_get_accept_focus (GtkWindow *window);
1728 		return gtk_window_get_accept_focus(gtkWindow);
1729 	}
1730 	
1731 	/**
1732 	 * Gets the value set by gtk_window_set_focus_on_map().
1733 	 * Since 2.6
1734 	 * Returns: TRUE if window should receive the input focus when mapped.
1735 	 */
1736 	public int getFocusOnMap()
1737 	{
1738 		// gboolean gtk_window_get_focus_on_map (GtkWindow *window);
1739 		return gtk_window_get_focus_on_map(gtkWindow);
1740 	}
1741 	
1742 	/**
1743 	 * Returns the group for window or the default group, if
1744 	 * window is NULL or if window does not have an explicit
1745 	 * window group.
1746 	 * Since 2.10
1747 	 * Returns: the GtkWindowGroup for a window or the default group. [transfer none]
1748 	 */
1749 	public WindowGroup getGroup()
1750 	{
1751 		// GtkWindowGroup * gtk_window_get_group (GtkWindow *window);
1752 		auto p = gtk_window_get_group(gtkWindow);
1753 		
1754 		if(p is null)
1755 		{
1756 			return null;
1757 		}
1758 		
1759 		return ObjectG.getDObject!(WindowGroup)(cast(GtkWindowGroup*) p);
1760 	}
1761 	
1762 	/**
1763 	 * Returns whether window has an explicit window group.
1764 	 * Since 2.22
1765 	 * Returns: TRUE if window has an explicit window group.
1766 	 */
1767 	public int hasGroup()
1768 	{
1769 		// gboolean gtk_window_has_group (GtkWindow *window);
1770 		return gtk_window_has_group(gtkWindow);
1771 	}
1772 	
1773 	/**
1774 	 * Gets the type of the window. See GtkWindowType.
1775 	 * Since 2.20
1776 	 * Returns: the type of the window
1777 	 */
1778 	public GtkWindowType getWindowType()
1779 	{
1780 		// GtkWindowType gtk_window_get_window_type (GtkWindow *window);
1781 		return gtk_window_get_window_type(gtkWindow);
1782 	}
1783 	
1784 	/**
1785 	 * Asks the window manager to move
1786 	 * window to the given position. Window managers are free to ignore
1787 	 * this; most window managers ignore requests for initial window
1788 	 * positions (instead using a user-defined placement algorithm) and
1789 	 * honor requests after the window has already been shown.
1790 	 * Note: the position is the position of the gravity-determined
1791 	 * Params:
1792 	 * x = X coordinate to move window to
1793 	 * y = Y coordinate to move window to
1794 	 */
1795 	public void move(int x, int y)
1796 	{
1797 		// void gtk_window_move (GtkWindow *window,  gint x,  gint y);
1798 		gtk_window_move(gtkWindow, x, y);
1799 	}
1800 	
1801 	/**
1802 	 * Parses a standard X Window System geometry string - see the
1803 	 * manual page for X (type 'man X') for details on this.
1804 	 * gtk_window_parse_geometry() does work on all GTK+ ports
1805 	 * including Win32 but is primarily intended for an X environment.
1806 	 * If either a size or a position can be extracted from the
1807 	 * geometry string, gtk_window_parse_geometry() returns TRUE
1808 	 * and calls gtk_window_set_default_size() and/or gtk_window_move()
1809 	 * to resize/move the window.
1810 	 * If gtk_window_parse_geometry() returns TRUE, it will also
1811 	 * set the GDK_HINT_USER_POS and/or GDK_HINT_USER_SIZE hints
1812 	 * indicating to the window manager that the size/position of
1813 	 * the window was user-specified. This causes most window
1814 	 * managers to honor the geometry.
1815 	 * Note that for gtk_window_parse_geometry() to work as expected, it has
1816 	 * to be called when the window has its "final" size, i.e. after calling
1817 	 * gtk_widget_show_all() on the contents and gtk_window_set_geometry_hints()
1818 	 * on the window.
1819 	 * $(DDOC_COMMENT example)
1820 	 * Params:
1821 	 * geometry = geometry string
1822 	 * Returns: TRUE if string was parsed successfully
1823 	 */
1824 	public int parseGeometry(string geometry)
1825 	{
1826 		// gboolean gtk_window_parse_geometry (GtkWindow *window,  const gchar *geometry);
1827 		return gtk_window_parse_geometry(gtkWindow, Str.toStringz(geometry));
1828 	}
1829 	
1830 	/**
1831 	 * Hides window, then reshows it, resetting the
1832 	 * default size and position of the window. Used
1833 	 * by GUI builders only.
1834 	 */
1835 	public void reshowWithInitialSize()
1836 	{
1837 		// void gtk_window_reshow_with_initial_size (GtkWindow *window);
1838 		gtk_window_reshow_with_initial_size(gtkWindow);
1839 	}
1840 	
1841 	/**
1842 	 * Resizes the window as if the user had done so, obeying geometry
1843 	 * constraints. The default geometry constraint is that windows may
1844 	 * not be smaller than their size request; to override this
1845 	 * constraint, call gtk_widget_set_size_request() to set the window's
1846 	 * request to a smaller value.
1847 	 * If gtk_window_resize() is called before showing a window for the
1848 	 * first time, it overrides any default size set with
1849 	 * gtk_window_set_default_size().
1850 	 * Windows may not be resized smaller than 1 by 1 pixels.
1851 	 * Params:
1852 	 * width = width in pixels to resize the window to
1853 	 * height = height in pixels to resize the window to
1854 	 */
1855 	public void resize(int width, int height)
1856 	{
1857 		// void gtk_window_resize (GtkWindow *window,  gint width,  gint height);
1858 		gtk_window_resize(gtkWindow, width, height);
1859 	}
1860 	
1861 	/**
1862 	 * Sets an icon list to be used as fallback for windows that haven't
1863 	 * had gtk_window_set_icon_list() called on them to set up a
1864 	 * window-specific icon list. This function allows you to set up the
1865 	 * icon for all windows in your app at once.
1866 	 * See gtk_window_set_icon_list() for more details.
1867 	 * Params:
1868 	 * list = a list of GdkPixbuf. [element-type GdkPixbuf][transfer container]
1869 	 */
1870 	public static void setDefaultIconList(ListG list)
1871 	{
1872 		// void gtk_window_set_default_icon_list (GList *list);
1873 		gtk_window_set_default_icon_list((list is null) ? null : list.getListGStruct());
1874 	}
1875 	
1876 	/**
1877 	 * Sets an icon to be used as fallback for windows that haven't
1878 	 * had gtk_window_set_icon() called on them from a pixbuf.
1879 	 * Since 2.4
1880 	 * Params:
1881 	 * icon = the icon
1882 	 */
1883 	public static void setDefaultIcon(Pixbuf icon)
1884 	{
1885 		// void gtk_window_set_default_icon (GdkPixbuf *icon);
1886 		gtk_window_set_default_icon((icon is null) ? null : icon.getPixbufStruct());
1887 	}
1888 	
1889 	/**
1890 	 * Sets an icon to be used as fallback for windows that haven't
1891 	 * had gtk_window_set_icon_list() called on them from a named
1892 	 * themed icon, see gtk_window_set_icon_name().
1893 	 * Since 2.6
1894 	 * Params:
1895 	 * name = the name of the themed icon
1896 	 */
1897 	public static void setDefaultIconName(string name)
1898 	{
1899 		// void gtk_window_set_default_icon_name (const gchar *name);
1900 		gtk_window_set_default_icon_name(Str.toStringz(name));
1901 	}
1902 	
1903 	/**
1904 	 * Sets up the icon representing a GtkWindow. This icon is used when
1905 	 * the window is minimized (also known as iconified). Some window
1906 	 * managers or desktop environments may also place it in the window
1907 	 * frame, or display it in other contexts.
1908 	 * The icon should be provided in whatever size it was naturally
1909 	 * drawn; that is, don't scale the image before passing it to
1910 	 * GTK+. Scaling is postponed until the last minute, when the desired
1911 	 * final size is known, to allow best quality.
1912 	 * If you have your icon hand-drawn in multiple sizes, use
1913 	 * gtk_window_set_icon_list(). Then the best size will be used.
1914 	 * This function is equivalent to calling gtk_window_set_icon_list()
1915 	 * with a 1-element list.
1916 	 * See also gtk_window_set_default_icon_list() to set the icon
1917 	 * for all windows in your application in one go.
1918 	 * Params:
1919 	 * icon = icon image, or NULL. [allow-none]
1920 	 */
1921 	public void setIcon(Pixbuf icon)
1922 	{
1923 		// void gtk_window_set_icon (GtkWindow *window,  GdkPixbuf *icon);
1924 		gtk_window_set_icon(gtkWindow, (icon is null) ? null : icon.getPixbufStruct());
1925 	}
1926 	
1927 	/**
1928 	 * Sets up the icon representing a GtkWindow. The icon is used when
1929 	 * the window is minimized (also known as iconified). Some window
1930 	 * managers or desktop environments may also place it in the window
1931 	 * frame, or display it in other contexts.
1932 	 * gtk_window_set_icon_list() allows you to pass in the same icon in
1933 	 * several hand-drawn sizes. The list should contain the natural sizes
1934 	 * your icon is available in; that is, don't scale the image before
1935 	 * passing it to GTK+. Scaling is postponed until the last minute,
1936 	 * when the desired final size is known, to allow best quality.
1937 	 * By passing several sizes, you may improve the final image quality
1938 	 * of the icon, by reducing or eliminating automatic image scaling.
1939 	 * Recommended sizes to provide: 16x16, 32x32, 48x48 at minimum, and
1940 	 * larger images (64x64, 128x128) if you have them.
1941 	 * See also gtk_window_set_default_icon_list() to set the icon
1942 	 * for all windows in your application in one go.
1943 	 * Note that transient windows (those who have been set transient for another
1944 	 * window using gtk_window_set_transient_for()) will inherit their
1945 	 * icon from their transient parent. So there's no need to explicitly
1946 	 * set the icon on transient windows.
1947 	 * Params:
1948 	 * list = list of GdkPixbuf
1949 	 */
1950 	public void setIconList(ListG list)
1951 	{
1952 		// void gtk_window_set_icon_list (GtkWindow *window,  GList *list);
1953 		gtk_window_set_icon_list(gtkWindow, (list is null) ? null : list.getListGStruct());
1954 	}
1955 	
1956 	/**
1957 	 * Sets the icon for the window from a named themed icon. See
1958 	 * the docs for GtkIconTheme for more details.
1959 	 * Note that this has nothing to do with the WM_ICON_NAME
1960 	 * property which is mentioned in the ICCCM.
1961 	 * Since 2.6
1962 	 * Params:
1963 	 * name = the name of the themed icon. [allow-none]
1964 	 */
1965 	public void setIconName(string name)
1966 	{
1967 		// void gtk_window_set_icon_name (GtkWindow *window,  const gchar *name);
1968 		gtk_window_set_icon_name(gtkWindow, Str.toStringz(name));
1969 	}
1970 	
1971 	/**
1972 	 * By default, after showing the first GtkWindow, GTK+ calls
1973 	 * gdk_notify_startup_complete(). Call this function to disable
1974 	 * the automatic startup notification. You might do this if your
1975 	 * first window is a splash screen, and you want to delay notification
1976 	 * until after your real main window has been shown, for example.
1977 	 * In that example, you would disable startup notification
1978 	 * temporarily, show your splash screen, then re-enable it so that
1979 	 * showing the main window would automatically result in notification.
1980 	 * Since 2.2
1981 	 * Params:
1982 	 * setting = TRUE to automatically do startup notification
1983 	 */
1984 	public static void setAutoStartupNotification(int setting)
1985 	{
1986 		// void gtk_window_set_auto_startup_notification  (gboolean setting);
1987 		gtk_window_set_auto_startup_notification(setting);
1988 	}
1989 	
1990 	/**
1991 	 * Fetches the requested opacity for this window. See
1992 	 * gtk_window_set_opacity().
1993 	 * Since 2.12
1994 	 * Returns: the requested opacity for this window.
1995 	 */
1996 	public double getOpacity()
1997 	{
1998 		// gdouble gtk_window_get_opacity (GtkWindow *window);
1999 		return gtk_window_get_opacity(gtkWindow);
2000 	}
2001 	
2002 	/**
2003 	 * Request the windowing system to make window partially transparent,
2004 	 * with opacity 0 being fully transparent and 1 fully opaque. (Values
2005 	 * of the opacity parameter are clamped to the [0,1] range.) On X11
2006 	 * this has any effect only on X screens with a compositing manager
2007 	 * running. See gtk_widget_is_composited(). On Windows it should work
2008 	 * always.
2009 	 * Note that setting a window's opacity after the window has been
2010 	 * shown causes it to flicker once on Windows.
2011 	 * Since 2.12
2012 	 * Params:
2013 	 * opacity = desired opacity, between 0 and 1
2014 	 */
2015 	public void setOpacity(double opacity)
2016 	{
2017 		// void gtk_window_set_opacity (GtkWindow *window,  gdouble opacity);
2018 		gtk_window_set_opacity(gtkWindow, opacity);
2019 	}
2020 	
2021 	/**
2022 	 */
2023 	public int getMnemonicsVisible()
2024 	{
2025 		// gboolean gtk_window_get_mnemonics_visible (GtkWindow *window);
2026 		return gtk_window_get_mnemonics_visible(gtkWindow);
2027 	}
2028 	
2029 	/**
2030 	 * Sets the "mnemonics-visible" property.
2031 	 * Since 2.20
2032 	 * Params:
2033 	 * setting = the new value
2034 	 */
2035 	public void setMnemonicsVisible(int setting)
2036 	{
2037 		// void gtk_window_set_mnemonics_visible (GtkWindow *window,  gboolean setting);
2038 		gtk_window_set_mnemonics_visible(gtkWindow, setting);
2039 	}
2040 }