Class wibox.layout.stack
A stacked layout.
This layout display widgets on top of each other. It can be used to overlay
a wibox.widget.textbox on top of a awful.widget.progressbar or manage
“pages” where only one is visible at any given moment.
The indices are going from 1 (the bottom of the stack) up to the top of
the stack. The order can be changed either using :swap or :raise.
Usage:
wibox.widget {
generic_widget( 'first' ),
generic_widget( 'second' ),
generic_widget( 'third' ),
layout = wibox.layout.stack
}
Info:
- Copyright: 2016 Emmanuel Lepage Vallee
- Author: Emmanuel Lepage Vallee
Functions
| wibox.layout.stack () | Create a new stack layout. |
Object properties
| children | Get all direct children of this layout. |
| spacing | Add spacing around the widget, similar to the margin container. |
| top_only | If only the first stack widget is drawn |
| horizontal_offset | Add an horizontal offset to each layers. |
| vertial_offset | Add an vertical offset to each layers. |
| forced_height | Force a widget height. |
| forced_width | Force a widget width. |
| opacity | The widget opacity (transparency). |
| visible | The widget visibility. |
Signals
| widget::layout_changed | When the layout (size) change. |
| widget::redraw_needed | When the widget content changed. |
| button::press | When a mouse button is pressed over the widget. |
| button::release | When a mouse button is released over the widget. |
| mouse::enter | When the mouse enter a widget. |
| mouse::leave | When the mouse leave a widget. |
Methods
| wibox.layout.stack:set (index, widget2) | Set a widget at a specific index, replace the current one. |
| wibox.layout.stack:replace_widget (widget, widget2[, recursive=false]) | Replace the first instance of widget in the layout with widget2. |
| wibox.layout.stack:swap (index1, index2) | Swap 2 widgets in a layout. |
| wibox.layout.stack:swap_widgets (widget1, widget2[, recursive=false]) | Swap 2 widgets in a layout. |
| wibox.layout.stack:reset (layout) | Reset a ratio layout. |
| wibox.layout.stack:add (layout, ...) | Add some widgets to the given stack layout |
| wibox.layout.stack:remove (The) | Remove a widget from the layout |
| wibox.layout.stack:insert (index, widget) | Insert a new widget in the layout at position index |
| wibox.layout.stack:remove_widgets (widget) | Remove one or more widgets from the layout The last parameter can be a boolean, forcing a recursive seach of the widget(s) to remove. |
| wibox.layout.stack:raise (index) | Raise a widget at index to the top of the stack |
| wibox.layout.stack:raise_widget (widget[, recursive=false]) | Raise the first instance of widget |
| wibox.layout.stack:get_all_children () | Get all direct and indirect children widgets. |
| wibox.layout.stack:setup (args) | Set a declarative widget hierarchy description. |
| wibox.layout.stack:buttons (_buttons) | Set/get a widget’s buttons. |
| wibox.layout.stack:emit_signal_recursive (signal_name, ...) | Emit a signal and ensure all parent widgets in the hierarchies also forward the signal. |
| wibox.layout.stack:emit_signal (name, ...) | Emit a signal. |
| wibox.layout.stack:connect_signal (name, func) | Connect to a signal. |
| wibox.layout.stack:weak_connect_signal (name, func) | Connect to a signal weakly. |
Functions
Methods- wibox.layout.stack ()
-
Create a new stack layout.
Returns:
-
widget
A new stack layout
Object properties
- children
-
Get all direct children of this layout.
Type:
- layout The layout you are modifying.
- spacing
-
Add spacing around the widget, similar to the margin container.
Type:
- spacing number Spacing between widgets.
Usage:
wibox.widget { generic_widget( 'first' ), generic_widget( 'second' ), generic_widget( 'third' ), spacing = 6, layout = wibox.layout.stack } - top_only
- If only the first stack widget is drawn
- horizontal_offset
-
Add an horizontal offset to each layers.
Note that this reduces the overall size of each widgets by the sum of all layers offsets.
Type:
- number
Usage:
wibox.widget { generic_widget( 'first' ), generic_widget( 'second' ), generic_widget( 'third' ), horizontal_offset = 5, vertical_offset = 5, layout = wibox.layout.stack } - vertial_offset
-
Add an vertical offset to each layers.
Note that this reduces the overall size of each widgets by the sum of all layers offsets.
Type:
- number
See also:
- forced_height
-
Force a widget height.
Type:
- height
number or nil
The height (
nilfor automatic)
- height
number or nil
The height (
- forced_width
-
Force a widget width.
Type:
- width
number or nil
The width (
nilfor automatic)
- width
number or nil
The width (
- opacity
-
The widget opacity (transparency).
Type:
- opacity number The opacity (between 0 and 1) (default 1)
- visible
-
The widget visibility.
Type:
- boolean
Signals
- widget::layout_changed
-
When the layout (size) change.
This signal is emitted when the previous results of
:layout()and:fit()are no longer valid. Unless this signal is emitted,:layout()and:fit()must return the same result when called with the same arguments.See also:
- widget::redraw_needed
-
When the widget content changed.
This signal is emitted when the content of the widget changes. The widget will
be redrawn, it is not re-layouted. Put differently, it is assumed that
:layout()and:fit()would still return the same results as before.See also:
- button::press
-
When a mouse button is pressed over the widget.
Arguments:
- lx number The horizontal position relative to the (0,0) position in the widget.
- ly number The vertical position relative to the (0,0) position in the widget.
- button number The button number.
- mods table The modifiers (mod4, mod1 (alt), Control, Shift)
- find_widgets_result The entry from the result of
wibox.drawable:find_widgets for the position that the mouse hit.
- drawable wibox.drawable The drawable containing the widget.
- widget widget The widget being displayed.
- hierarchy wibox.hierarchy The hierarchy managing the widget’s geometry.
- x number An approximation of the X position that the widget is visible at on the surface.
- y number An approximation of the Y position that the widget is visible at on the surface.
- width number An approximation of the width that the widget is visible at on the surface.
- height number An approximation of the height that the widget is visible at on the surface.
- widget_width number The exact width of the widget in its local coordinate system.
- widget_height number The exact height of the widget in its local coordinate system.
See also:
- button::release
-
When a mouse button is released over the widget.
Arguments:
- lx number The horizontal position relative to the (0,0) position in the widget.
- ly number The vertical position relative to the (0,0) position in the widget.
- button number The button number.
- mods table The modifiers (mod4, mod1 (alt), Control, Shift)
- find_widgets_result The entry from the result of
wibox.drawable:find_widgets for the position that the mouse hit.
- drawable wibox.drawable The drawable containing the widget.
- widget widget The widget being displayed.
- hierarchy wibox.hierarchy The hierarchy managing the widget’s geometry.
- x number An approximation of the X position that the widget is visible at on the surface.
- y number An approximation of the Y position that the widget is visible at on the surface.
- width number An approximation of the width that the widget is visible at on the surface.
- height number An approximation of the height that the widget is visible at on the surface.
- widget_width number The exact width of the widget in its local coordinate system.
- widget_height number The exact height of the widget in its local coordinate system.
See also:
- mouse::enter
-
When the mouse enter a widget.
Arguments:
- find_widgets_result The entry from the result of
wibox.drawable:find_widgets for the position that the mouse hit.
- drawable wibox.drawable The drawable containing the widget.
- widget widget The widget being displayed.
- hierarchy wibox.hierarchy The hierarchy managing the widget’s geometry.
- x number An approximation of the X position that the widget is visible at on the surface.
- y number An approximation of the Y position that the widget is visible at on the surface.
- width number An approximation of the width that the widget is visible at on the surface.
- height number An approximation of the height that the widget is visible at on the surface.
- widget_width number The exact width of the widget in its local coordinate system.
- widget_height number The exact height of the widget in its local coordinate system.
See also:
- find_widgets_result The entry from the result of
wibox.drawable:find_widgets for the position that the mouse hit.
- mouse::leave
-
When the mouse leave a widget.
Arguments:
- find_widgets_result The entry from the result of
wibox.drawable:find_widgets for the position that the mouse hit.
- drawable wibox.drawable The drawable containing the widget.
- widget widget The widget being displayed.
- hierarchy wibox.hierarchy The hierarchy managing the widget’s geometry.
- x number An approximation of the X position that the widget is visible at on the surface.
- y
- find_widgets_result The entry from the result of
wibox.drawable:find_widgets for the position that the mouse hit.