Unigine.WidgetDragArea Class
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.
WidgetDragAreaClass.cs
private void Init()
{
EngineWindow main_window = WindowManager.MainWindow;
if (main_window)
{
// disable system borders
main_window.BordersEnabled = false;
Gui gui = main_window.SelfGui;
// add a drag area similar to title bar
WidgetVBox top_drag_container = new WidgetVBox(gui);
main_window.AddChild(top_drag_container);
WidgetDragArea top_drag_area = new WidgetDragArea(gui);
top_drag_area.Height = 25;
top_drag_container.AddChild(top_drag_area, Gui.ALIGN_EXPAND);
top_drag_area.Background = 1;
top_drag_area.BackgroundColor = vec4.RED;
// add an extra drag area
WidgetDragArea drag_area = new WidgetDragArea(gui);
drag_area.Width = 512;
drag_area.Height = 256;
main_window.AddChild(drag_area, Gui.ALIGN_CENTER);
drag_area.Background = 1;
drag_area.BackgroundColor = vec4.BLUE;
}
}