Skip to content

WindowManager ​

Application window manager. More...

#include "GUI/WindowManager.h"

Public Functions ​

Name
WindowManager() =default
voidaddWindow(Ptr< IWindow > window)<br>Add a dockable window.
voidclear()<br>Remove all managed windows.
voiddraw()<br>Draw all managed windows.
Ptr< IWindow >findDockableWindowByID(const char * ID)
Ptr< IWindow >findImGuiWindow(ImGuiWindow * window)
voidfocusWindow(Ptr< IWindow > window, bool updateImGuiFocus =true)
Ptr< IWindow >getCurrentWindow()<br>Returns the last window that started being constructed (eg.
std::vector< Ptr< IWindow > >getDockableWindows() const
Ptr< IWindow >getFocusedWindow()
template <typename T &gt; <br>Ptr< T >getWindowPtr()<br>Find a dockable window of type T and return a shared pointer to it.
boolhasWindow(const std::string & id)
template <typename T &gt; <br>boolisFocused()
voidloadLayout(std::string path)
template <typename TStrategy &gt; <br>voidopenConfirmModal()
template <typename T &gt; <br>voidopenModal()
voidopenModal(UPtr< IWindow > modalInstance)
voidremoveWindow(const std::string & windowId)<br>Hide and remove window.
template <typename T &gt; <br>voidshowUniqueWindow()<br>Create and show desired window.
voidshowWindow(IWindow * window, bool show)
voidshowWindow(Ptr< IWindow > window, bool show)
voidupdateFocus()<br>Handles automatic window focus change.
glm::vec2getMousePositionForWindow(const IWindow * window)<br>Returns relative mouse position for a specified window.

Friends ​

Name
classIWindow

Detailed Description ​

cpp
class WindowManager;

Application window manager.

Handles window lifetime, visibility, focus and drawing. As well as some utility methods. Also holds a reference to the last drawn window (See below).

Each window should call its IWindow::updateWindowInfo() method after its ImGui::Begin() call. This method updates its window dimension/position information and marks itself as the current window of its assigned WindowManager. With access to window manager any code can retrieve window information without an explicit reference to the window being constructed.

Public Functions Documentation ​

function WindowManager ​

cpp
WindowManager() =default

function addWindow ​

cpp
void addWindow(
    Ptr< IWindow > window
)

Add a dockable window.

function clear ​

cpp
void clear()

Remove all managed windows.

function draw ​

cpp
void draw()

Draw all managed windows.

function findDockableWindowByID ​

cpp
inline Ptr< IWindow > findDockableWindowByID(
    const char * ID
)

function findImGuiWindow ​

cpp
Ptr< IWindow > findImGuiWindow(
    ImGuiWindow * window
)

function focusWindow ​

cpp
void focusWindow(
    Ptr< IWindow > window,
    bool updateImGuiFocus =true
)

function getCurrentWindow ​

cpp
inline Ptr< IWindow > getCurrentWindow()

Returns the last window that started being constructed (eg.

the last window that called IWindow::updateWindowInfo() after its ImGui::Begin() call).

function getDockableWindows ​

cpp
inline std::vector< Ptr< IWindow > > getDockableWindows() const

function getFocusedWindow ​

cpp
inline Ptr< IWindow > getFocusedWindow()

function getWindowPtr ​

cpp
template <typename T >
inline Ptr< T > getWindowPtr()

Find a dockable window of type T and return a shared pointer to it.

Template Parameters:

  • T

Return:

function hasWindow ​

cpp
bool hasWindow(
    const std::string & id
)

function isFocused ​

cpp
template <typename T >
inline bool isFocused()

function loadLayout ​

cpp
void loadLayout(
    std::string path
)

function openConfirmModal ​

cpp
template <typename TStrategy >
inline void openConfirmModal()

function openModal ​

cpp
template <typename T >
void openModal()

function openModal ​

cpp
void openModal(
    UPtr< IWindow > modalInstance
)

function removeWindow ​

cpp
void removeWindow(
    const std::string & windowId
)

Hide and remove window.

Parameters:

  • windowId identification of window to hide.

Called by HideWindowCommand.

function showUniqueWindow ​

cpp
template <typename T >
inline void showUniqueWindow()

Create and show desired window.

Template Parameters:

  • T window to create. T must be derived from IWindow class.

function showWindow ​

cpp
void showWindow(
    IWindow * window,
    bool show
)

function showWindow ​

cpp
void showWindow(
    Ptr< IWindow > window,
    bool show
)

function updateFocus ​

cpp
void updateFocus()

Handles automatic window focus change.

function getMousePositionForWindow ​

cpp
static glm::vec2 getMousePositionForWindow(
    const IWindow * window
)

Returns relative mouse position for a specified window.

This is a utility method to fetch current mouse position from InputManager and then make that position relative to the specified window.

Friends ​

friend IWindow ​

cpp
friend class IWindow(
    IWindow 
);

Updated on 2026-09-11 at 21:24:24 +0000