Unigine::WidgetWindow Class
Header: | #include <UnigineWidgets.h> |
Inherits from: | Widget |
This class creates a titled window.
The object of this class looks as follows:
By default, the window created by means of this class consists of a single vertical column container and a drag area at the top.
The WidgetWindow class provides methods that allow editing the drag area. For example:
AppSystemLogic.cpp
#include "AppSystemLogic.h"
#include <UnigineWindowManager.h>
using namespace Unigine;
// EventConnections class instance to manage event subscriptions
EventConnections econnections;
EngineWindowViewportPtr window;
void on_close()
{
window.deleteLater();
}
int AppSystemLogic::init()
{
// borderless additional window
window = EngineWindowViewport::create(Math::ivec2(512, 256));
window->setBordersEnabled(false);
GuiPtr gui = window->getSelfGui();
// create window widget
WidgetWindowPtr widget_window = WidgetWindow::create(gui, "Borderless Window");
widget_window->setSizeable(false);
widget_window->setMoveable(false);
window->addChild(widget_window, Gui::ALIGN_EXPAND);
// add a close icon to the window
WidgetIconPtr close_icon = WidgetIcon::create(gui, "window_close.png");
close_icon->setPosition(10, -24);
close_icon->getEventClicked().connect(econnections, on_close);
widget_window->addChild(close_icon, Gui::ALIGN_OVERLAP | Gui::ALIGN_RIGHT | Gui::ALIGN_TOP);
// adjust the window's drag area so that it doesn't cross the close icon
widget_window->setDragAreaPadding(3, 30, 3, 0);
widget_window->setDragAreaBackground(1);
widget_window->setDragAreaBackgroundColor(Math::vec4(1.0f, 0.0f, 0.0f, 0.3f));
window->setPosition(Math::ivec2(100, 100));
window->show();
return 1;
}
int AppSystemLogic::shutdown()
{
// removing all event subscriptions
econnections.disconnectAll();
return 1;
}
The window will be rendered as follows:
See Also#
- UnigineScript API sample <UnigineSDK>/data/samples/widgets/window_00
- C++ API sample <UnigineSDK>/source/samples/Api/Widgets/WidgetWindow
- C# API sample <UnigineSDK>/source/csharp/samples/Api/Widgets/WidgetWindow
WidgetWindow Class
Members
static WidgetWindowPtr create ( const Ptr<Gui> & gui, const char * str = 0, int x = 0, int y = 0 ) #
Constructor. Creates a window with given parameters and adds it to the specified GUI.Arguments
- const Ptr<Gui> & gui - GUI, to which the new window will belong.
- const char * str - Window title. This is an optional parameter.
- int x - Horizontal space between the widgets in the window and between them and the window border. This is an optional parameter.
- int y - Vertical space between the widgets in the window and between them and the window border. This is an optional parameter.
static WidgetWindowPtr create ( const char * str = 0, int x = 0, int y = 0 ) #
Constructor. Creates a window with given parameters and adds it to the Engine GUI.Arguments
- const char * str - Window title. This is an optional parameter.
- int x - Horizontal space between the widgets in the window and between them and the window border. This is an optional parameter.
- int y - Vertical space between the widgets in the window and between them and the window border. This is an optional parameter.
void setBlendable ( bool blendable ) #
Sets a value indicating if the window can fade in and out when changing to the minimized state and back. By default, this option is disabled.Arguments
- bool blendable - true to enable fading in and out, false to disable it.
bool isBlendable ( ) const#
Returns a value indicating if the window can fade in and out when changing to the minimized state and back.Return value
true if the window can fade in and out; otherwise, false.void setColor ( const Math::vec4 & color ) #
Sets a color for the global color multiplier. The default is equivalent to vec4(1,1,1,1) (white).Arguments
- const Math::vec4 & color - Multiplier color.
Math::vec4 getColor ( ) const#
Returns a color of the global color multiplier.Return value
Multiplier color.void setFloatable ( bool floatable ) #
Sets a value indicating if the window is animated when changing to the minimized state and back.Arguments
- bool floatable - true to allow animating the window, false not to make it.
bool isFloatable ( ) const#
Returns a value indicating if the window is animated when changing to the minimized state and back. By default this option is disabled.Return value
true if the window is animated; otherwise, false.void setMaxHeight ( int height ) #
Sets the maximum height value for the window.Arguments
- int height - Maximum height value.
int getMaxHeight ( ) const#
Returns the maximum height value of the window.Return value
Maximum height value.void setMaxWidth ( int width ) #
Sets the maximum width value for the window.Arguments
- int width - Maximum width value.
int getMaxWidth ( ) const#
Returns the maximum width value of the window.Return value
Maximum width value.void setMoveable ( bool moveable ) #
Sets a value indicating if the window is movable.Arguments
- bool moveable - true to set the window as movable; otherwise, false.
bool isMoveable ( ) const#
Returns a value indicating if the window is movable. By default this option is enabled.Return value
true if the window is movable; otherwise, false.void setPadding ( int l, int r, int t, int b ) #
Sets widget paddings for all sides. Padding clears an area around the content of a widget (inside of it).Arguments
- int l - Left-side padding in pixels.
- int r - Right-side padding in pixels.
- int t - Top padding in pixels.
- int b - Bottom padding in pixels.
int getPaddingBottom ( ) const#
Returns the current bottom padding for the widget content.Return value
Bottom padding in pixels.int getPaddingLeft ( ) const#
Returns the current left-side padding for the widget content.Return value
Left-side padding in pixels.int getPaddingRight ( ) const#
Returns the current right-side padding for the widget content.Return value
Right-side padding in pixels.int getPaddingTop ( ) const#
Returns the current top padding for the widget content.Return value
Top padding in pixels.void setSizeable ( bool sizeable ) #
Sets a value indicating if the window is resizeable. Resizing is disabled by default.Arguments
- bool sizeable - true to enable resizing the window, false to disable it.
bool isSizeable ( ) const#
Returns a value indicating if the window is resizeable.Return value
true if the window is resizeable; otherwise, false.void setSnapDistance ( int distance ) #
Sets a distance, at which the window snaps to another window or screen edge.Arguments
- int distance - Distance in pixels.
int getSnapDistance ( ) const#
Returns the distance, at which the window snaps to another window or screen edge. The default is 0 (do not snap).Return value
Distance in pixels.void setSpace ( int x, int y ) #
Sets a space between the widgets in the window and between them and the window border.Arguments
- int x - Horizontal space. If a negative value is provided, 0 will be used instead.
- int y - Vertical space. If a negative value is provided, 0 will be used instead.
int getSpaceX ( ) const#
Returns the horizontal space between the widgets in the window and between them and the window border.Return value
Horizontal space.int getSpaceY ( ) const#
Returns the vertical space between the widgets in the window and between them and the window border.Return value
Vertical space.void setText ( const char * text ) #
Sets a window title.Arguments
- const char * text - Window title.
const char * getText ( ) const#
Returns the current window title.Return value
Window title.void setTextAlign ( int align ) #
Sets alignment of the window title.Arguments
- int align - One of the ALIGN_* pre-defined variables.
int getTextAlign ( ) const#
Returns the alignment of the window title.Return value
One of the ALIGN_* pre-defined variables.void setTitleable ( bool titleable ) #
Sets a value indicating if the window is minimized when double-clicking on it. By default this option is disabled.Arguments
- bool titleable - true to enable minimization, false to disable it.
bool isTitleable ( ) const#
Returns a value indicating if the window is minimized when double-clicking on it. By default this option is disabled.Return value
true if the window is minimized when double-clicking on it; otherwise, false.void setTransform ( const Math::mat4 & transform ) #
Sets the global widget transformation matrix. This 2D matrix can be tilted, rotated, moved or modified in many ways in 3D space.Arguments
- const Math::mat4 & transform - Transformation matrix.
Math::mat4 getTransform ( ) const#
Returns the global widget transformation matrix.Return value
Transformation matrix.void setBackgroundColor ( const Math::vec4 & color ) #
Sets the background color to be used for the widget.Arguments
- const Math::vec4 & color - The four-component vector specifying the color in the RGBA format.
Math::vec4 getBackgroundColor ( ) const#
Returns the current background color used for the widget.Return value
The four-component vector specifying the color in the RGBA format.void setBorderColor ( const Math::vec4 & color ) #
Sets the border color for the widget.Arguments
- const Math::vec4 & color - The four-component vector specifying the color in the RGBA format.
Math::vec4 getBorderColor ( ) const#
Returns the current border color for the widget.Return value
The four-component vector specifying the color in the RGBA format.void setDragAreaEnabled ( bool enabled ) #
Sets a value indicating if the drag area of the window is enabled.Arguments
- bool enabled - true to enable the drag area, false to disable it.
bool isDragAreaEnabled ( ) const#
Returns the value indicating if the drag area of the window is enabled.Return value
Value indicating if the drag area of the window is enabled: true if the drag area is enabled; otherwise, false.void setDragAreaBackground ( int background ) #
Enables/disables rendering of the background for the drag area.Arguments
- int background - true to enable background rendering, false to disable it.
int getDragAreaBackground ( ) const#
Returns the value indicating if background rendering is enabled or disabled for the drag area.Return value
Value indicating if rendering of the background is enabled: true if background rendering is enabled; otherwise, false.void setDragAreaBackgroundColor ( const Math::vec4 & color ) #
Sets a color for the background of the drag area.Arguments
- const Math::vec4 & color - Background color.
Math::vec4 getDragAreaBackgroundColor ( ) const#
Returns the color of the drag area background.Return value
Background color.void setDragAreaPadding ( int l, int r, int t, int b ) #
Sets paddings for all sides of the drag area.Arguments
- int l - Left-side padding in pixels.
- int r - Right-side padding in pixels.
- int t - Top padding in pixels.
- int b - Bottom padding in pixels.
int getDragAreaPaddingLeft ( ) const#
Returns the current left-side padding for the drag area.Return value
Left-side padding in pixels.int getDragAreaPaddingRight ( ) const#
Returns the current right-side padding for the drag area.Return value
Right-side padding in pixels.int getDragAreaPaddingTop ( ) const#
Returns the current top padding for the drag area.Return value
Top padding in pixels.int getDragAreaPaddingBottom ( ) const#
Returns the current bottom padding for the drag area.Return value
Bottom padding in pixels.void setOutBoundsCallbacksEnabled ( bool enabled ) #
Toggles callback processing for the window child widgets if the cursor is outside the window. By default, all callbacks are processed.Arguments
- bool enabled - true to enable callback processing for the child widgets if the cursor is outside the window, otherwise false.
bool isOutBoundsCallbacksEnabled ( ) const#
Returns the value specifying if the callback processing for the window child widgets is enabled when the cursor is outside the window.Return value
true if callback processing for the child widgets is enabled, otherwise false.void setGlobalMovement ( bool movement ) #
Toggles moving the window using the mouse cursor across the whole GUI, i.e. not limited by the parent widget. By default, this option is set to false, and the window can be moved only relevant to its parent.Arguments
- bool movement - true to enable moving the window across the whole GUI, false to limit the window movement by the parent widget.
bool isGlobalMovement ( ) const#
Returns the value specifying if the window can be moved across the whole GUI or only within the parent widget.Return value
true if the window can be moved across the whole GUI, false if the window can be moved only within the parent widget.int getMinTextureWidth ( ) const#
Returns the minimum width of the window render — the width of the window texture from the GUI skin.Return value
The minimum width of the window render, in pixels.int getMinTextureHeight ( ) const#
Returns the minimum height of the window render — the height of the window texture from the GUI skin.Return value
The minimum height of the window render, in pixels.int getTextWidth ( ) const#
Returns the window header width.Return value
The window header width, in pixels.int getTextHeight ( ) const#
Returns the window header height.Return value
The window header height, in pixels.void setStencil ( int stencil ) #
Sets a value indicating if a widget cuts off its children along its bounds. Everything that lies outside of them, is not rendered. The default is 0.Arguments
- int stencil - 1 to enable cutting, 0 to disable it.
int getStencil ( ) const#
Returns a value indicating if a widget cuts off its children along its set bounds. Everything that lies outside of them, is not rendered. This option works only if children have ALIGN_OVERLAP flag set (otherwise, they will expand the box widget bounds and no cutting will be done).Return value
1 if cutting is enabled; otherwise, 0.Last update:
2024-12-02
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)