HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
v1::os_settings Class Reference

Public Types

using notifier_type = notifier<>
using callback_token = notifier_type::callback_token
using callback_proto = notifier_type::callback_proto

Static Public Member Functions

static std::vector< language_tag > language_tags () noexcept
 Get the language tags for the configured languages.
static std::locale locale () noexcept
 Get the current local.
static bool left_to_right () noexcept
 Check if the configured writing direction is left-to-right.
static hi::theme_mode theme_mode () noexcept
 Get the configured light/dark theme mode.
static hi::subpixel_orientation subpixel_orientation () noexcept
 Get the configured light/dark theme mode.
static bool uniform_HDR () noexcept
 Whether SDR and HDR application can coexists on the same display.
static std::chrono::milliseconds double_click_interval () noexcept
 Get the mouse double click interval.
static float double_click_distance () noexcept
 Get the distance from the previous mouse position to detect double click.
static std::chrono::milliseconds keyboard_repeat_delay () noexcept
 Get the delay before the keyboard starts repeating.
static std::chrono::milliseconds keyboard_repeat_interval () noexcept
 Get the keyboard repeat interval.
static std::chrono::milliseconds cursor_blink_delay () noexcept
 Get the cursor blink delay.
static std::chrono::milliseconds cursor_blink_interval () noexcept
 Get the cursor blink interval.
static float minimum_window_width () noexcept
 The minimum width a window is allowed to be.
static float minimum_window_height () noexcept
 The minimum height a window is allowed to be.
static float maximum_window_width () noexcept
 The maximum width a window is allowed to be.
static float maximum_window_height () noexcept
 The maximum height a window is allowed to be.
static aarectangle primary_monitor_rectangle () noexcept
 Get the rectangle of the primary monitor.
static uintptr_t primary_monitor_id () noexcept
 Get an opaque id of the primary monitor.
static aarectangle desktop_rectangle () noexcept
 Get the rectangle describing the desktop.
static hi::policy policy () noexcept
 Get the global performance policy.
static hi::policy gpu_policy () noexcept
 Get the policy for selecting a GPU.
static std::vector< uuid > preferred_gpus (hi::policy performance_policy) noexcept
 Get a list of GPUs ordered best to worst.
static callback_token subscribe (forward_of< callback_proto > auto &&callback, callback_flags flags=callback_flags::synchronous) noexcept
static bool start_subsystem () noexcept
 Get the global os_settings instance.
static void gather () noexcept
 Gather the settings from the operating system now.

Member Function Documentation

◆ cursor_blink_delay()

std::chrono::milliseconds v1::os_settings::cursor_blink_delay ( )
inlinestaticnodiscardnoexcept

Get the cursor blink delay.

Note
This delay is used to determine when to blink after cursor movement.

◆ cursor_blink_interval()

std::chrono::milliseconds v1::os_settings::cursor_blink_interval ( )
inlinestaticnodiscardnoexcept

Get the cursor blink interval.

Note
The interval is the complete period of the cursor blink, from on-to-on.
Returns
The cursor blink interval, or std::chrono::milliseconds::max() when blinking is turned off.

◆ desktop_rectangle()

aarectangle v1::os_settings::desktop_rectangle ( )
inlinestaticnodiscardnoexcept

Get the rectangle describing the desktop.

Returns
The bounding rectangle around the desktop. With the origin being equal to the origin of the primary monitor.

◆ double_click_distance()

float v1::os_settings::double_click_distance ( )
inlinestaticnodiscardnoexcept

Get the distance from the previous mouse position to detect double click.

◆ double_click_interval()

std::chrono::milliseconds v1::os_settings::double_click_interval ( )
inlinestaticnodiscardnoexcept

Get the mouse double click interval.

◆ gather()

void v1::os_settings::gather ( )
inlinestaticnoexcept

Gather the settings from the operating system now.

◆ gpu_policy()

hi::policy v1::os_settings::gpu_policy ( )
inlinestaticnodiscardnoexcept

Get the policy for selecting a GPU.

Returns
The performance policy for selecting a GPU.

◆ keyboard_repeat_delay()

std::chrono::milliseconds v1::os_settings::keyboard_repeat_delay ( )
inlinestaticnodiscardnoexcept

Get the delay before the keyboard starts repeating.

Note
Also used to determine the scroll delay when selecting text.

◆ keyboard_repeat_interval()

std::chrono::milliseconds v1::os_settings::keyboard_repeat_interval ( )
inlinestaticnodiscardnoexcept

Get the keyboard repeat interval.

Note
Also used to determine the scroll speed when selecting text.

◆ language_tags()

std::vector< language_tag > v1::os_settings::language_tags ( )
inlinestaticnodiscardnoexcept

Get the language tags for the configured languages.

Returns
A list of language tags in order of priority.

◆ left_to_right()

bool v1::os_settings::left_to_right ( )
inlinestaticnodiscardnoexcept

Check if the configured writing direction is left-to-right.

Return values
trueIf the writing direction is left-to-right.

◆ locale()

std::locale v1::os_settings::locale ( )
inlinestaticnodiscardnoexcept

Get the current local.

Returns
The current locale.

◆ maximum_window_height()

float v1::os_settings::maximum_window_height ( )
inlinestaticnodiscardnoexcept

The maximum height a window is allowed to be.

Returns
The maximum window height.

◆ maximum_window_width()

float v1::os_settings::maximum_window_width ( )
inlinestaticnodiscardnoexcept

The maximum width a window is allowed to be.

Returns
The maximum window width.

◆ minimum_window_height()

float v1::os_settings::minimum_window_height ( )
inlinestaticnodiscardnoexcept

The minimum height a window is allowed to be.

Returns
The minimum window height.

◆ minimum_window_width()

float v1::os_settings::minimum_window_width ( )
inlinestaticnodiscardnoexcept

The minimum width a window is allowed to be.

Returns
The minimum window width.

◆ policy()

hi::policy v1::os_settings::policy ( )
inlinestaticnodiscardnoexcept

Get the global performance policy.

Returns
The performance policy selected by the operating system.

◆ preferred_gpus()

std::vector< uuid > hi::v1::os_settings::preferred_gpus ( hi::policy performance_policy)
inlinestaticnodiscardnoexcept

Get a list of GPUs ordered best to worst.

The performance policy is calculated from several sources, in order from high priority to low priority:

  1. os_settings::gpu_policy() if not policy::unspecified.
  2. performance_policy argument if not policy::unspecified.
  3. os_settings::policy()

On win32 the GPU identifiers returned are LUIDs which are smaller then UUIDs. Vulkan specifically includes VkPhysicalDeviceIDProperties::deviceLUID to match with these return values.

On other operating systems the return value here is a UUID which will match with VkPhysicalDeviceIDProperties::deviceUUID.

Use VkPhysicalDeviceIDProperties::deviceLUIDValid to know which one to match and VK_LUID_SIZE for the size of the comparison.

Parameters
performance_policyThe performance policy of the application.
Returns
A list of GPU identifiers ordered best to worst.

◆ primary_monitor_id()

uintptr_t v1::os_settings::primary_monitor_id ( )
inlinestaticnodiscardnoexcept

Get an opaque id of the primary monitor.

◆ primary_monitor_rectangle()

aarectangle v1::os_settings::primary_monitor_rectangle ( )
inlinestaticnodiscardnoexcept

Get the rectangle of the primary monitor.

Returns
The rectangle describing the size and location inside the desktop.

◆ start_subsystem()

bool v1::os_settings::start_subsystem ( )
inlinestaticnoexcept

Get the global os_settings instance.

Returns
True on success.

◆ subpixel_orientation()

hi::subpixel_orientation v1::os_settings::subpixel_orientation ( )
inlinestaticnodiscardnoexcept

Get the configured light/dark theme mode.

◆ theme_mode()

hi::theme_mode v1::os_settings::theme_mode ( )
inlinestaticnodiscardnoexcept

Get the configured light/dark theme mode.

◆ uniform_HDR()

bool v1::os_settings::uniform_HDR ( )
inlinestaticnodiscardnoexcept

Whether SDR and HDR application can coexists on the same display.

Microsoft Windows 10 and at least early versions of Windows 11 will have set this to false, because if an application opens a HDR surface it will switch the display mode to HDR, this switching may cause a significant change in color and brightness of the display, including other (SDR) applications that where already running. This would be surprising for most users and we can not expect users to have calibrated colors to match HDR with SDR.


The documentation for this class was generated from the following files: