Skip to content

Draggable Window

Draggable Window is a C++ UMG widget (UDraggableWindow) that wraps any child widget in a desktop-style frame. Drag from the title bar, resize from a corner grip, maximize to screen, and spawn windows at runtime from Blueprint or C++.

The plugin ships demo content under DraggableWindowUMG/ including DemoLevel, WBP_DraggableWindow, and WBP_DraggableWindowSampleHUD.

flowchart TB
  subgraph runtime [Runtime]
    HUD[Your HUD / Player Controller]
    Create[Create Draggable Window]
    DW[UDraggableWindow / WBP child]
    Child[Any UUserWidget content]
  end
  subgraph layout [Required widget bindings]
    Title[WindowTitleBorderWidget]
    Canvas[ChildWidgetCanvas]
    Resize[ResizeAreaWidget optional]
  end
  HUD --> Create --> DW
  DW --> Child
  DW --> Title
  DW --> Canvas
  DW --> Resize
ItemPathPurpose
Base widget classUDraggableWindowC++ parent for all draggable windows
Sample windowWBP_DraggableWindowDesigner subclass with title bar + resize grip
Sample HUDWBP_DraggableWindowSampleHUDSpawns a window with child content
Demo levelDemoLevelPlayable example
Child sampleWBP_DraggableWindowSampleChildDefaultDefault content widget
  1. Getting started — enable the plugin and create a widget Blueprint parented to Draggable Window.
  2. Customizing — wire WindowTitleBorderWidget, ChildWidgetCanvas, and ResizeAreaWidget.
  3. Overview — spawn windows at runtime and combine with Web Browser UMG.
  4. Widget reference — properties, events, and Blueprint nodes.
SettingDefaultNotes
Enable DragtrueDrag from WindowTitleBorderWidget
Enable ResizingtrueRequires ResizeAreaWidget binding
Enable MaximizingtrueRequires resizing enabled
Drag KeyLeft Mouse ButtonOverride in class defaults
Resize Min Width / Height640 / 480Pixel limits when resizing
Startup StateDefaultAlternatives: Start Minimized, Start Maximized