EHS
BaseWindow.h
Go to the documentation of this file.
1#pragma once
2
3#include "ehs/Str.h"
4#include "ehs/Vec2.h"
5#include "ehs/io/hid/Input.h"
6
7namespace ehs
8{
9 enum class WindowState : UInt_8
10 {
11 NONE,
13 };
14
15 enum class CursorImg : UInt_8
16 {
17 DEFAULT,
18 I_BEAM
19 };
20
21 class EHS_LIB_IO BaseWindow
22 {
23 protected:
24 bool created;
25 bool focused;
31
32 public:
33 virtual ~BaseWindow() = default;
34
35 BaseWindow();
36
37 BaseWindow(const BaseWindow& win);
38
39 BaseWindow& operator=(const BaseWindow& win);
40
41 virtual void Create_32(const Str_32& title, const Vec2_s32& pos, Vec2_u32 scale) = 0;
42
43 virtual void Create_16(const Str_16& title, const Vec2_s32& pos, Vec2_u32 scale) = 0;
44
45 virtual void Create_8(const Str_8& title, const Vec2_s32& pos, Vec2_u32 scale) = 0;
46
47 virtual void OnCreated() = 0;
48
49 virtual void Close() = 0;
50
51 virtual void Show() = 0;
52
53 virtual void Hide() = 0;
54
55 bool IsCreated() const;
56
57 virtual bool Poll();
58
59 bool HasFocus() const;
60
64 Vec2_s32 GetCursorPos() const;
65
68 virtual void ShowCursor(bool toggle) = 0;
69
72 bool IsCursorVisible() const;
73
74 virtual void ConstrainCursor(bool constrain) = 0;
75
76 bool IsCursorConstrained() const;
77
78 WindowState GetState() const;
79
80 const InputHandler* GetInputHandler() const;
81
82 virtual void SetTitle_32(const Str_32& newTitle) = 0;
83
84 virtual Str_32 GetTitle_32() const = 0;
85
86 virtual void SetTitle_16(const Str_16& newTitle) = 0;
87
88 virtual Str_16 GetTitle_16() const = 0;
89
90 virtual void SetTitle_8(const Str_8& newTitle) = 0;
91
92 virtual Str_8 GetTitle_8() const = 0;
93
94 virtual void SetPos(const Vec2_s32& newPos) = 0;
95
96 virtual Vec2_s32 GetPos() const = 0;
97
98 virtual void SetScale(const Vec2_u32& newScale) = 0;
99
100 virtual Vec2_u32 GetScale() const = 0;
101
103
104 virtual void SetClipboard(Serializer<UInt_64> data) = 0;
105
106 virtual void SetCursorImg(CursorImg img) = 0;
107 };
108}
Definition: BaseWindow.h:22
virtual void SetTitle_16(const Str_16 &newTitle)=0
virtual Vec2_u32 GetScale() const =0
virtual void Create_8(const Str_8 &title, const Vec2_s32 &pos, Vec2_u32 scale)=0
bool created
Definition: BaseWindow.h:24
virtual void SetCursorImg(CursorImg img)=0
virtual Vec2_s32 GetPos() const =0
virtual Serializer< UInt_64 > GetClipboard()=0
virtual void SetClipboard(Serializer< UInt_64 > data)=0
virtual Str_32 GetTitle_32() const =0
bool focused
Definition: BaseWindow.h:25
virtual void OnCreated()=0
virtual void Hide()=0
virtual void Close()=0
WindowState state
Definition: BaseWindow.h:29
virtual void SetTitle_32(const Str_32 &newTitle)=0
virtual void Create_32(const Str_32 &title, const Vec2_s32 &pos, Vec2_u32 scale)=0
virtual ~BaseWindow()=default
virtual void SetTitle_8(const Str_8 &newTitle)=0
virtual void Show()=0
virtual void SetPos(const Vec2_s32 &newPos)=0
bool cursorConstrained
Definition: BaseWindow.h:28
virtual void SetScale(const Vec2_u32 &newScale)=0
virtual Str_16 GetTitle_16() const =0
virtual Str_8 GetTitle_8() const =0
virtual void ConstrainCursor(bool constrain)=0
Vec2_s32 cursorPos
Definition: BaseWindow.h:26
virtual void ShowCursor(bool toggle)=0
bool cursorVisible
Definition: BaseWindow.h:27
InputHandler ih
Definition: BaseWindow.h:30
virtual void Create_16(const Str_16 &title, const Vec2_s32 &pos, Vec2_u32 scale)=0
Definition: InputHandler.h:9
Definition: Str.h:29
Definition: Anchor.h:6
unsigned char UInt_8
Definition: Types.h:43
WindowState
Definition: BaseWindow.h:10
CursorImg
Definition: BaseWindow.h:16