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.

static std::vector<std::shared_ptr<WindowHandle>> getDockedNeighbours(
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

static void setWindowCreatedCallback(
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.

Public Functions

omni::kit::IAppWindow *getCurrent()#

Public Static Functions

static AppWindow &instance()#
class AppWindowGuard#

Guard that pushes the current application window to class AppWindow when created and pops when destroyed.

Public Functions

AppWindowGuard(omni::kit::IAppWindow *window)#
~AppWindowGuard()#