GUI Window
App: apps/gui_window/
A two-panel demo: a Control Panel (left) lets you toggle every Nuklear window flag and programmatically show/hide/collapse a Target Window (right). Demonstrates the full windowSetBounds, windowShow, windowCollapse, isWindowHovered, and widget-disable APIs.
Run from root
Section titled “Run from root”% ./plume3d gui_windowWhat it shows
Section titled “What it shows”- Window flags — checkboxes for every
NK_WINDOW_*flag: Border, Movable, Scalable, Closable, Minimizable, NoScrollbar, Title. Applied viabeginWindowEx(name, title, x, y, w, h, flags). - Show/Hide —
windowShow(name, state)(1= show,0= hide). - Collapse/Expand —
windowCollapse(name, state)(1= collapsed,0= expanded). - Set bounds —
windowSetBounds(name, x, y, w, h)to reposition the window in code. - Is hovered —
isWindowHovered()andisAnyWindowHovered(). - Widget disable —
widgetDisableBegin()/widgetDisableEnd()greys out a group of widgets.
Key patterns
Section titled “Key patterns”// Open window with explicit flags bitmaskGui.beginWindowEx("Target", "Target Window", 400, 20, 340, 400, _flags)// ...content...Gui.endWindow()
// Programmatic controlif (Gui.buttonLabel("Hide")) Gui.windowShow("Target", 0)if (Gui.buttonLabel("Show")) Gui.windowShow("Target", 1)if (Gui.buttonLabel("Collapse")) Gui.windowCollapse("Target", 1)if (Gui.buttonLabel("Expand")) Gui.windowCollapse("Target", 0)if (Gui.buttonLabel("Reset bounds")) { Gui.windowSetBounds("Target", 400, 20, 340, 400)}
// Widget disable_disableWidgets = Gui.checkbox("Disable widgets below", _disableWidgets)if (_disableWidgets) Gui.widgetDisableBegin()Gui.buttonLabel("This is disabled")_val = Gui.sliderFloat(0, _val, 1, 0.01)if (_disableWidgets) Gui.widgetDisableEnd()Flag values
Section titled “Flag values”| Flag | Value | Effect |
|---|---|---|
| Border | 1 | Draw window border |
| Movable | 2 | User can drag |
| Scalable | 4 | User can resize |
| Closable | 8 | Shows close button |
| Minimizable | 16 | Shows minimize button |
| NoScrollbar | 32 | Hide scrollbar |
| Title | 64 | Show title bar |