Unigine::WidgetDragArea Class
Header: | #include <UnigineWidgets.h> |
Inherits from: | Widget |
This class creates a custom drag area.
A window can have system borders or be borderless. The first one can be dragged by the window title bar. And the borderless window requires the special drag area created by means of the WidgetDragArea class: when the mouse cursor is in this area, the window can be dragged.
Also this widget is a part of the WidgetWindow: it is added to the window title by default and can be resized if necessary.
In the following example, the system borders of the main window are disabled and 2 custom drag areas are added. The first area is located at the top of the window and the second area is in its center. For demonstration purposes, the background is enabled for both areas.
AppSystemLogic.cpp
#include "AppSystemLogic.h"
#include <UnigineWindowManager.h>
using namespace Unigine;
int AppSystemLogic::init()
{
// borderless main window
EngineWindowPtr main_window = WindowManager::getMainWindow();
if (main_window)
{
// disable system borders
main_window->setBordersEnabled(false);
GuiPtr gui = main_window->getSelfGui();
// add a drag area similar to title bar
WidgetVBoxPtr top_drag_container = WidgetVBox::create(gui);
main_window->addChild(top_drag_container);
WidgetDragAreaPtr top_drag_area = WidgetDragArea::create(gui);
top_drag_area->setHeight(25);
top_drag_container->addChild(top_drag_area, Gui::ALIGN_EXPAND);
top_drag_area->setBackground(1);
top_drag_area->setBackgroundColor(Math::vec4_red);
// add an extra drag area
WidgetDragAreaPtr drag_area = WidgetDragArea::create(gui);
drag_area->setWidth(512);
drag_area->setHeight(256);
main_window->addChild(drag_area, Gui::ALIGN_CENTER);
drag_area->setBackground(1);
drag_area->setBackgroundColor(Math::vec4_blue);
}
return 1;
}
WidgetDragArea Class
Members
WidgetDragArea ( const Ptr<Gui> & gui ) #
Constructor. Creates a drag area and adds it to the specified GUI.Arguments
WidgetDragArea ( ) #
Default constructor.void setBackground ( int background ) #
Enables/disables rendering of the background for the drag area.Arguments
- int background - 1 to enable background rendering, 0 to disable it.
int getBackground ( ) const#
Returns the flag indicating if background rendering is enabled or disabled for the drag area.Return value
1 if background rendering is enabled; otherwise, 0.void setBackgroundColor ( const Math::vec4 & color ) #
Sets a color for the background of the drag area.Arguments
- const Math::vec4 & color - Background color.