Struct gtk::Window []

pub struct Window(_, _);

A Window is a toplevel window which can contain other widgets. Windows normally have decorations that are under the control of the windowing system and allow the user to manipulate the window (resize it, move it, close it,...).

Window as Buildable

The Window implementation of the Buildable interface supports a custom <accel-groups> element, which supports any number of <group> elements representing the AccelGroup objects you want to add to your window (synonymous with GtkWindowExt::add_accel_group.

It also supports the <initial-focus> element, whose name property names the widget to receive the focus when the window is mapped.

An example of a UI definition fragment with accel groups:

├── decoration
├── <titlebar child>.titlebar [.default-decoration]
╰── <child>

Window has a main CSS node with name window and style class .background, and a subnode with name decoration.

Style classes that are typically used with the main CSS node are .csd (when client-side decorations are in use), .solid-csd (for client-side decorations without invisible borders), .ssd (used by mutter when rendering server-side decorations). Window also represents window states with the following style classes on the main node: .tiled, .maximized, .fullscreen. Specialized types of window often add their own discriminating style classes, such as .popup or .tooltip.

Window adds the .titlebar and .default-decoration style classes to the widget that is added as a titlebar child.


GtkWindowExt, BinExt, ContainerExt, WidgetExt, glib::object::ObjectExt, BuildableExt


impl Window


Creates a new Window, which is a toplevel window that can contain other widgets. Nearly always, the type of the window should be WindowType::Toplevel. If you’re implementing something like a popup menu from scratch (which is a bad idea, just use Menu), you might use WindowType::Popup. WindowType::Popup is not for dialogs, though in some other toolkits dialogs are called “popups”. In GTK+, WindowType::Popup means a pop-up menu or pop-up tooltip. On X11, popup windows are not controlled by the [window manager][gtk-X11-arch].

If you simply want an undecorated window (no window borders), use GtkWindowExt::set_decorated, don’t use WindowType::Popup.

All top-level windows created by Window::new are stored in an internal top-level window list. This list can be obtained from Window::list_toplevels. Due to Gtk+ keeping a reference to the window internally, Window::new does not return a reference to the caller.

To delete a Window, call WidgetExt::destroy.


type of window


a new Window.

Important traits for Vec<u8>

Gets the value set by Window::set_default_icon_list. The list is a copy and should be freed with glib::List::free, but the pixbufs in the list have not had their reference count incremented.


copy of default icon list


Returns the fallback icon name for windows that has been set with Window::set_default_icon_name. The returned string is owned by GTK+ and should not be modified. It is only valid until the next call to Window::set_default_icon_name.


the fallback icon name for windows

Important traits for Vec<u8>

Returns a list of all existing toplevel windows. The widgets in the list are not individually referenced. If you want to iterate through the list and perform actions involving callbacks that might destroy the widgets, you must call g_list_foreach (result, (GFunc)g_object_ref, NULL) first, and then unref all the widgets afterwards.


list of toplevel widgets


By default, after showing the first Window, GTK+ calls gdk_notify_startup_complete. Call this function to disable the automatic startup notification. You might do this if your first window is a splash screen, and you want to delay notification until after your real main window has been shown, for example.

In that example, you would disable startup notification temporarily, show your splash screen, then re-enable it so that showing the main window would automatically result in notification.


true to automatically do startup notification


Sets an icon to be used as fallback for windows that haven't had GtkWindowExt::set_icon called on them from a pixbuf.


the icon


Sets an icon to be used as fallback for windows that haven't had GtkWindowExt::set_icon_list called on them from a file on disk. Warns on failure if err is None.


location of icon file


true if setting the icon succeeded.




Trait Implementations

impl IsA<Window> for AboutDialog

impl IsA<Window> for AppChooserDialog

impl IsA<Window> for ApplicationWindow

impl IsA<Window> for Assistant

impl IsA<Window> for ColorChooserDialog

impl IsA<Window> for Dialog

impl IsA<Window> for FileChooserDialog

impl IsA<Window> for FontChooserDialog

impl IsA<Window> for MessageDialog

impl IsA<Window> for OffscreenWindow

impl IsA<Window> for Plug

impl IsA<Window> for RecentChooserDialog

impl IsA<Window> for ShortcutsWindow

impl Clone for Window

Returns a copy of the value. Read more


Performs copy-assignment from source. Read more

impl Debug for Window

Formats the value using the given formatter. Read more

impl Hash for Window

Feeds this value into the given [Hasher]. Read more


Feeds a slice of this type into the given [Hasher]. Read more

impl StaticType for Window

Returns the type identifier of Self.

impl<T: IsA<Object>> PartialEq<T> for Window

This method tests for self and other values to be equal, and is used by ==. Read more


This method tests for !=.

impl Eq for Window

impl IsA<Bin> for Window

impl IsA<Container> for Window

impl IsA<Widget> for Window

impl IsA<Buildable> for Window

impl IsA<Object> for Window

Auto Trait Implementations

impl !Send for Window

impl !Sync for Window