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 }