Class WindowControls

All Implemented Interfaces:
PointerInterface

public class WindowControls extends Widget
`GtkWindowControls` shows window frame controls.

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

![An example GtkWindowControls](windowcontrols.png)

`GtkWindowControls` only displays start or end side of the controls (see
[property@Gtk.WindowControls:side]), so it's intended to be always used
in pair with another `GtkWindowControls` for the opposite side, for example:

```xml
<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 [property@Gtk.WindowControls:decoration-layout] value.

When [property@Gtk.WindowControls:empty] is %TRUE, it gets the .empty
style class.

# Accessibility

`GtkWindowControls` uses the %GTK_ACCESSIBLE_ROLE_GROUP role.

https://docs.gtk.org/gtk4/class.WindowControls.html

  • Constructor Details

    • WindowControls

      public WindowControls(PointerContainer pointer)
    • WindowControls

      public WindowControls(int side)
      Creates a new `GtkWindowControls`.
      Parameters:
      side - the side
  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • getDecorationLayout

      public Str getDecorationLayout()
      Gets the decoration layout of this `GtkWindowControls`.
      Returns:
      the decoration layout or %NULL if it is unset
    • getEmpty

      public boolean getEmpty()
      Gets whether the widget has any window buttons.
      Returns:
      %TRUE if the widget has window buttons, otherwise %FALSE
    • getSide

      public int getSide()
      Gets the side to which this `GtkWindowControls` instance belongs.
      Returns:
      the side
    • setDecorationLayout

      public void setDecorationLayout(@Nullable Str layout)
      Sets the decoration layout for the title buttons.

      This overrides the [property@Gtk.Settings: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 [property@Gtk.WindowControls:side] value is @GTK_PACK_START, @self
      will display the part before the colon, otherwise after that.
      Parameters:
      layout - a decoration layout, or %NULL to unset the layout
    • setDecorationLayout

      public void setDecorationLayout(String layout)
      Sets the decoration layout for the title buttons.

      This overrides the [property@Gtk.Settings: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 [property@Gtk.WindowControls:side] value is @GTK_PACK_START, @self
      will display the part before the colon, otherwise after that.
      Parameters:
      layout - a decoration layout, or %NULL to unset the layout
    • setSide

      public void setSide(int side)
      Determines which part of decoration layout the `GtkWindowControls` uses.

      See [property@Gtk.WindowControls:decoration-layout].
      Parameters:
      side - a side
    • asAccessible

      public Accessible asAccessible()
      Implements interface Accessible. Call this to get access to interface functions.
      Overrides:
      asAccessible in class Widget
      Returns:
      Accessible
    • asBuildable

      public Buildable asBuildable()
      Implements interface Buildable. Call this to get access to interface functions.
      Overrides:
      asBuildable in class Widget
      Returns:
      Buildable
    • asConstraintTarget

      public ConstraintTarget asConstraintTarget()
      Implements interface ConstraintTarget. Call this to get access to interface functions.
      Overrides:
      asConstraintTarget in class Widget
      Returns:
      ConstraintTarget
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()