Workspace#
Fully qualified name: omni::ui::Workspace
Classes#
- AppWindow
Singleton that tracks the current application window.
- AppWindowGuard
Guard that pushes the current application window to class AppWindow when created and pops when destroyed.
-
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.
- const std::shared_ptr<WindowHandle> &member,
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.
Returns 0 if no main window is found.
-
static float getMainWindowHeight()#
Get the height in points of the current main window.
Returns 0 if no main window is found.
- 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
- std::function<void(const std::shared_ptr<WindowHandle> &window)> windowCreatedCallbackFn,
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.
-
class AppWindow#
Singleton that tracks the current application window.
-
Workspace() = delete#