omni::ui::Workspace
Defined in omni/ui/Workspace.h
-
class Workspace
Workspace object provides access to the windows in Kit.
TODO: It’s more like a namespace because all the methods are static. But the idea is to have it as a singleton, and it will allow using it as the abstract factory for many systems (Kit full and Kit mini for example).
Public Functions
-
Workspace() = delete
Public Static Functions
-
static float getDpiScale()
Returns current DPI Scale.
-
static std::vector<std::shared_ptr<WindowHandle>> getWindows()
Returns the list of windows ordered from back to front.
If the window is a Omni::UI window, it can be upcasted.
-
static std::shared_ptr<WindowHandle> getWindow(const std::string &title)
Find Window by name.
-
static std::shared_ptr<WindowHandle> getWindowFromCallback(const windowmanager::IWindowCallback *callback)
Find Window by window callback.
Get all the windows that docked with the given widow.
-
static uint32_t getSelectedWindowIndex(uint32_t dockId)
Get currently selected window inedx from the given dock id.
-
static void clear()
Undock all.
-
static float getMainWindowWidth()
Get the width in points of the current main window.
-
static float getMainWindowHeight()
Get the height in points of the current main window.
-
static std::vector<std::shared_ptr<WindowHandle>> getDockedWindows(uint32_t dockId)
Get all the windows of the given dock ID.
-
static uint32_t getParentDockId(uint32_t dockId)
Return the parent Dock Node ID.
- Parameters
dockId – the child Dock Node ID to get parent
-
static bool getDockNodeChildrenId(uint32_t dockId, uint32_t &first, uint32_t &second)
Get two dock children of the given dock ID.
- Parameters
dockId – the given dock ID
first – output. the first child dock ID
second – output. the second child dock ID
- Returns
true if the given dock ID has children
-
static WindowHandle::DockPosition getDockPosition(uint32_t dockId)
Returns the position of the given dock ID.
Left/Right/Top/Bottom
-
static float getDockIdWidth(uint32_t dockId)
Returns the width of the docking node.
- Parameters
dockId – the given dock ID
-
static float getDockIdHeight(uint32_t dockId)
Returns the height of the docking node.
It’s different from the window height because it considers dock tab bar.
- Parameters
dockId – the given dock ID
-
static void setDockIdWidth(uint32_t dockId, float width)
Set the width of the dock node.
It also sets the width of parent nodes if necessary and modifies the width of siblings.
- Parameters
dockId – the given dock ID
width – the given width
-
static void setDockIdHeight(uint32_t dockId, float height)
Set the height of the dock node.
It also sets the height of parent nodes if necessary and modifies the height of siblings.
- Parameters
dockId – the given dock ID
height – the given height
-
static bool showWindow(const std::string &title, bool show = true)
Makes the window visible or create the window with the callback provided with set_show_window_fn.
- Parameters
title – the given window title
show – true to show, false to hide
- Returns
true if the window is already created, otherwise it’s necessary to wait one frame
Addd the callback that is triggered when a new window is created.
-
static void setShowWindowFn(const std::string &title, std::function<void(bool)> showWindowFn)
Add the callback to create a window with the given title.
When the callback’s argument is true, it’s necessary to create the window. Otherwise remove.
-
static uint32_t setWindowVisibilityChangedCallback(std::function<void(const std::string &title, bool visible)> windowVisibilityChangedCallbackFn)
Add the callback that is triggered when a window’s visibility changed.
-
static void removeWindowVisibilityChangedCallback(uint32_t id)
Remove the callback that is triggered when a window’s visibility changed.
-
static void onWindowVisibilityChanged(const std::string &title, bool visible)
Call it from inside each windows’ setVisibilityChangedFn to triggered VisibilityChangedCallback.
-
Workspace() = delete