ReXGlue SDK
Toggle main menu visibility
Loading...
Searching...
No Matches
ui_driver.h
Go to the documentation of this file.
1
10
11
#pragma once
12
13
#include <filesystem>
14
#include <span>
15
#include <string>
16
#include <string_view>
17
#include <vector>
18
19
#include <
rex/driver.h
>
20
#include <
rex/input_keys.h
>
21
#include <
rex/memory/host.h
>
22
#include <
rex/result.h
>
23
#include <
rex/types.h
>
24
#include <
rex/platform/process.h
>
25
#include <
rex/ui/dialog.h
>
26
#include <
rex/platform/native_window.h
>
27
#include <
rex/ui/ui_event.h
>
28
#include <
rex/ui/window.h
>
29
30
namespace
rex::ui {
31
33
inline
constexpr
memory::Tag
kUI
{5};
34
40
class
IUIDriver
:
public
IDriver
{
41
public
:
47
virtual
bool
HasDisplay
()
const
= 0;
48
53
[[nodiscard]]
virtual
Result<void>
OpenWindow
(
const
WindowConfig
& config) = 0;
54
55
virtual
void
CloseUIWindow() = 0;
56
57
virtual
void
SetTitle(std::string_view title) = 0;
58
62
virtual
void
SetSize
(u32 width, u32 height) = 0;
63
65
virtual
void
SetLimits
(u32 min_width, u32 min_height,
ui::AspectRatio
ratio) = 0;
66
74
virtual
void
SetFullscreen
(
bool
fullscreen,
bool
exclusive, i32 monitor, u32 mode_width,
75
u32 mode_height) = 0;
76
77
virtual
void
RaiseWindow() = 0;
78
84
virtual
void
SetCursorShape
(
bool
visible, CursorShape shape) = 0;
85
90
virtual
void
SetPointerMode
(
PointerMode
mode) = 0;
91
93
virtual
void
CaptureMouse
(
bool
captured) = 0;
94
96
virtual
f32
GetContentScale
()
const
= 0;
97
99
virtual
ui::WindowSize
GetWindowSize
()
const
= 0;
100
101
virtual
bool
HasFocus()
const
= 0;
102
104
virtual
void
SetTextInputActive
(
bool
active) = 0;
105
110
[[nodiscard]]
virtual
Result<NativeWindow>
GetNativeWindow
()
const
= 0;
111
118
virtual
bool
WaitEvents
(
IUIEventListener
& listener, u32 timeout_ms) = 0;
119
121
virtual
void
WakeUp
() = 0;
122
130
[[nodiscard]]
virtual
Result<u32>
ShowMessageBox
(
MessageType
type, std::string_view title,
131
std::string_view body,
132
std::span<const std::string> buttons) = 0;
133
140
[[nodiscard]]
virtual
Result<std::vector<std::filesystem::path>
>
ShowFileDialog
(
141
const
ui::FileDialogConfig
& config) = 0;
142
143
virtual
std::vector<ui::Monitor> GetDisplays() = 0;
144
148
virtual
std::vector<ui::HostLocale>
GetPreferredLocales
() = 0;
149
153
virtual
std::string
GetClipboardText
() = 0;
154
158
virtual
void
SetClipboardText
(std::string_view text) = 0;
159
};
160
161
}
// namespace rex::ui
rex::IDriver
Definition
driver.h:41
rex::ui::IUIDriver
Definition
ui_driver.h:40
rex::ui::IUIDriver::GetWindowSize
virtual ui::WindowSize GetWindowSize() const =0
rex::ui::IUIDriver::SetFullscreen
virtual void SetFullscreen(bool fullscreen, bool exclusive, i32 monitor, u32 mode_width, u32 mode_height)=0
rex::ui::IUIDriver::SetPointerMode
virtual void SetPointerMode(PointerMode mode)=0
rex::ui::IUIDriver::OpenWindow
virtual Result< void > OpenWindow(const WindowConfig &config)=0
rex::ui::IUIDriver::SetClipboardText
virtual void SetClipboardText(std::string_view text)=0
rex::ui::IUIDriver::WakeUp
virtual void WakeUp()=0
rex::ui::IUIDriver::SetCursorShape
virtual void SetCursorShape(bool visible, CursorShape shape)=0
rex::ui::IUIDriver::ShowMessageBox
virtual Result< u32 > ShowMessageBox(MessageType type, std::string_view title, std::string_view body, std::span< const std::string > buttons)=0
rex::ui::IUIDriver::SetSize
virtual void SetSize(u32 width, u32 height)=0
rex::ui::IUIDriver::SetTextInputActive
virtual void SetTextInputActive(bool active)=0
rex::ui::IUIDriver::HasDisplay
virtual bool HasDisplay() const =0
rex::ui::IUIDriver::SetLimits
virtual void SetLimits(u32 min_width, u32 min_height, ui::AspectRatio ratio)=0
rex::ui::IUIDriver::GetNativeWindow
virtual Result< NativeWindow > GetNativeWindow() const =0
rex::ui::IUIDriver::CaptureMouse
virtual void CaptureMouse(bool captured)=0
rex::ui::IUIDriver::ShowFileDialog
virtual Result< std::vector< std::filesystem::path > > ShowFileDialog(const ui::FileDialogConfig &config)=0
rex::ui::IUIDriver::WaitEvents
virtual bool WaitEvents(IUIEventListener &listener, u32 timeout_ms)=0
rex::ui::IUIDriver::GetContentScale
virtual f32 GetContentScale() const =0
rex::ui::IUIDriver::GetPreferredLocales
virtual std::vector< ui::HostLocale > GetPreferredLocales()=0
rex::ui::IUIDriver::GetClipboardText
virtual std::string GetClipboardText()=0
rex::ui::IUIEventListener
Definition
ui_event.h:184
dialog.h
driver.h
host.h
input_keys.h
rex::memory::Tag
Tag
Definition
host.h:22
rex::PointerMode
PointerMode
Definition
input_keys.h:371
rex::Result
std::expected< T, Error > Result
Definition
result.h:98
rex::MessageType
MessageType
Definition
process.h:182
native_window.h
process.h
Process control, console, environment and crash reports.
result.h
rex::ui::FileDialogConfig
Definition
dialog.h:61
rex::ui::WindowConfig
Definition
window.h:67
rex::ui::WindowSize
Definition
window.h:31
types.h
Integer types, byte order wrappers and size literals.
rex::ui::kUI
constexpr memory::Tag kUI
Definition
ui_driver.h:33
ui_event.h
window.h
rex::ui::AspectRatio
AspectRatio
Definition
window.h:20
rex
ui
ui_driver.h
Generated by
1.18.0