WindowControls

class WindowControls(**properties: Any)

Superclasses: Widget, InitiallyUnowned, Object

Implemented Interfaces: Accessible, Buildable, ConstraintTarget

GtkWindowControls shows window frame controls.

Typical window frame controls are minimize, maximize and close buttons, and the window icon.

https://docs.gtk.org/gtk4/windowcontrols.png

GtkWindowControls only displays start or end side of the controls (see side), so it’s intended to be always used in pair with another GtkWindowControls for the opposite side, for example:

<object class="GtkBox">
  <child>
    <object class="GtkWindowControls">
      <property name="side">start</property>
    </object>
  </child>

  ...

  <child>
    <object class="GtkWindowControls">
      <property name="side">end</property>
    </object>
  </child>
</object>

CSS nodes

windowcontrols
├── [image.icon]
├── [button.minimize]
├── [button.maximize]
╰── [button.close]

A GtkWindowControls’ CSS node is called windowcontrols. It contains subnodes corresponding to each title button. Which of the title buttons exist and where they are placed exactly depends on the desktop environment and decoration_layout value.

When empty is True, it gets the .empty style class.

Accessibility

GtkWindowControls uses the GROUP role.

Constructors

class WindowControls
classmethod new(side: PackType) Widget

Creates a new GtkWindowControls.

Parameters:

side – the side

Methods

class WindowControls
get_decoration_layout() str | None

Gets the decoration layout of this GtkWindowControls.

get_empty() bool

Gets whether the widget has any window buttons.

get_side() PackType

Gets the side to which this GtkWindowControls instance belongs.

set_decoration_layout(layout: str | None = None) None

Sets the decoration layout for the title buttons.

This overrides the gtk_decoration_layout setting.

The format of the string is button names, separated by commas. A colon separates the buttons that should appear on the left from those on the right. Recognized button names are minimize, maximize, close and icon (the window icon).

For example, “icon:minimize,maximize,close” specifies a icon on the left, and minimize, maximize and close buttons on the right.

If side value is GTK_PACK_START, self will display the part before the colon, otherwise after that.

Parameters:

layout – a decoration layout, or None to unset the layout

set_side(side: PackType) None

Determines which part of decoration layout the GtkWindowControls uses.

See decoration_layout.

Parameters:

side – a side

Properties

class WindowControls
props.decoration_layout: str

The decoration layout for window buttons.

If this property is not set, the gtk_decoration_layout setting is used.

props.empty: bool

Whether the widget has any window buttons.

props.side: PackType

Whether the widget shows start or end side of the decoration layout.

See decoration_layout.