# window widget Gtk2: A GtkWindow Gtk3: A GtkWindow ## Definition
    <window tag_attr="value"...>
        widget
        <label>title</label>
        <variable>varname</variable>
        <input>command</input>
        <input file>filename</input>
        <sensitive>state</sensitive>
        <action signal="type">activity</action>...
        <output file>filename</output>
    </window>
“…” denotes acceptance of multiples of the same thing. ## Tag Attributes See the GtkWindow widget and ancestor class properties. The following custom tag attributes are available:
Name | Description | Value | Since
--- | --- | --- | ---
image-name | Image filename |  | 0.8.1
icon-name | Gtk theme icon |  | 0.8.5
block-function-signals | Block signal emissions from functions | `true` or `false` | 0.7.21
file-monitor | Emit signal when input file(s) change | `true` or `false` | 0.8.1
auto-refresh | Auto refresh when input file(s) change | `true` or `false` | 0.8.1
layer | Layer to render on Wayland desktop (Wayland only) | `background`, `bottom`, `top` or `overlay` | 0.8.5
edge | Edge or corner on Wayland desktop (Wayland only) | `bottomleft`, `left`, `topleft`, `top` | 0.8.5
edge (continued) |  | `topright`, `right`, `bottomright`, `bottom` |
## Directives Some of these may have tag attribute equivalents.
Name | Description | Contents | Since
--- | --- | --- | ---
label | Initial title |  |
variable | Variable name |  |
variable export=“false” | Variable name, not exported to shell |  | 0.8.3
input | Data input source | Shell command | 0.8.1
input file | Data input source | Filename | 0.8.1
sensitive | Sensitive state | `true` or `false` | 0.8.1
action signal=“type” | Execute command on signal | Shell command |
action signal=“type” | Perform function on signal | function:parameter |
action signal=“type” condition=“type” | Execute command on signal conditionally | Shell command | 0.8.3
action signal=“type” condition=“type” | Perform function on signal conditionally | function:parameter | 0.8.3
output file | Data output target | Filename | 0.8.1
## Signals There is no default signal for this widget. The “file-changed” signal is emitted if file-monitor is true and the input file being monitored has changed. The following signals are connected-up for all widgets: Gtk2: button-press-event, button-release-event, configure-event, enter-notify-event, leave-notify-event, focus-in-event, focus-out-event, hide, show, realize, key-press-event, key-release-event, map-event, unmap-event Gtk3: button-press-event, button-release-event, configure-event, enter-notify-event, leave-notify-event, focus-in-event, focus-out-event, hide, show, realize, key-press-event, key-release-event, map-event, unmap-event ## Functions The following functions can be performed upon this widget by any widget capable of emitting signals:
Type | Description | Parameter | Since
--- | --- | --- | ---
enable | Sensitise widget | Variable name |
disable | Desensitise widget | Variable name |
show | Show widget | Variable name | 0.8.1
hide | Hide widget | Variable name | 0.8.1
refresh | Reload input data[1] | Variable name | 0.8.1
save | Save widget data | Variable name | 0.8.1
clear | Remove all widget data | Variable name | 0.8.1
The following general functions can be performed by any widget capable of emitting signals:
Type | Description | Parameter | Since
--- | --- | --- | ---
break | Break out of actions list | None | 0.8.3
command | Execute command | Shell command |
exit | Exit dialog | A value for the `EXIT` variable |
closewindow | Close dialog | Variable name |
launch | Launch dialog | Variable name |
presentwindow | Present dialog | Variable name | 0.8.1
## Conditions The following conditions can be used within the condition attribute of action directives:
Type | Description | Argument | Since
--- | --- | --- | ---
active_is_true(argument) | Active state of toggle widget | Variable name | 0.8.3
active_is_false(argument) | Active state of toggle widget | Variable name | 0.8.3
command_is_true(argument) | Output of shell command | Shell command | 0.8.3
command_is_false(argument) | Output of shell command | Shell command | 0.8.3
file_is_true(argument) | Contents of a file | Filename | 0.8.3
file_is_false(argument) | Contents of a file | Filename | 0.8.3
sensitive_is_true(argument) | Sensitive state of widget | Variable name | 0.8.3
sensitive_is_false(argument) | Sensitive state of widget | Variable name | 0.8.3
visible_is_true(argument) | Visible state of widget | Variable name | 0.8.3
visible_is_false(argument) | Visible state of widget | Variable name | 0.8.3
variable_is_true(argument) | Value of widget | Variable name | 0.8.5
variable_is_false(argument) | Value of widget | Variable name | 0.8.5
true means “true”, “yes” or a non-zero value, false means “false”, “no” or zero, therefore the shell command is expected to echo one of these values to stdout. ## Notes The “title” property constitutes the data for this widget. This widget is a container which accepts only one child widget so you may require that to be an hbox or vbox. This widget has a default border width of 5 which can be overridden with the “border-width” (Gtk2, Gtk3) tag attribute. ## Wayland Support for Wayland compositors is only available if you build against `gtk-3` using the `meson` build system instead of gnu `autotools`, however `gtkdialog` will still work if using `autotools` and `gtk-3`, just without Wayland modifications. ### Notes for Wayland `-G, --geometry` CLI option does not work on Wayland. Use `edge` tag attribute `decorated` is ignored on Wayland. Use `layer` button, checkbox, chooser, colorbutton, comboboxentry, comboboxtext, combobox, edit, entry, eventbox, expander, fontbutton, frame, hbox, hscale, hseparator, list, menubar, menuitemseparator, menuitem, menu, notebook, pixmap, progressbar, radiobutton, separator, spinbutton, statusbar, table, terminal, text, timer, togglebutton, tree, vbox, vscale, vseparator, window,