ReXGlue SDK
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>
25#include <rex/ui/dialog.h>
27#include <rex/ui/ui_event.h>
28#include <rex/ui/window.h>
29
30namespace rex::ui {
31
33inline constexpr memory::Tag kUI{5};
34
40class 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
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
Definition driver.h:41
Definition ui_driver.h:40
virtual ui::WindowSize GetWindowSize() const =0
virtual void SetFullscreen(bool fullscreen, bool exclusive, i32 monitor, u32 mode_width, u32 mode_height)=0
virtual void SetPointerMode(PointerMode mode)=0
virtual Result< void > OpenWindow(const WindowConfig &config)=0
virtual void SetClipboardText(std::string_view text)=0
virtual void WakeUp()=0
virtual void SetCursorShape(bool visible, CursorShape shape)=0
virtual Result< u32 > ShowMessageBox(MessageType type, std::string_view title, std::string_view body, std::span< const std::string > buttons)=0
virtual void SetSize(u32 width, u32 height)=0
virtual void SetTextInputActive(bool active)=0
virtual bool HasDisplay() const =0
virtual void SetLimits(u32 min_width, u32 min_height, ui::AspectRatio ratio)=0
virtual Result< NativeWindow > GetNativeWindow() const =0
virtual void CaptureMouse(bool captured)=0
virtual Result< std::vector< std::filesystem::path > > ShowFileDialog(const ui::FileDialogConfig &config)=0
virtual bool WaitEvents(IUIEventListener &listener, u32 timeout_ms)=0
virtual f32 GetContentScale() const =0
virtual std::vector< ui::HostLocale > GetPreferredLocales()=0
virtual std::string GetClipboardText()=0
Definition ui_event.h:184
Tag
Definition host.h:22
PointerMode
Definition input_keys.h:371
std::expected< T, Error > Result
Definition result.h:98
MessageType
Definition process.h:182
Process control, console, environment and crash reports.
Definition dialog.h:61
Definition window.h:67
Definition window.h:31
Integer types, byte order wrappers and size literals.
constexpr memory::Tag kUI
Definition ui_driver.h:33
AspectRatio
Definition window.h:20