EHS
Loading...
Searching...
No Matches
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 {
13 };
14
15 enum class CursorImg : UInt_8
16 {
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}
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 IsCursorConstrained() const
Definition BaseWindow.cpp:58
bool created
Definition BaseWindow.h:24
virtual void SetCursorImg(CursorImg img)=0
bool IsCursorVisible() const
Definition BaseWindow.cpp:53
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 bool Poll()
Definition BaseWindow.cpp:38
virtual void Hide()=0
virtual void Close()=0
const InputHandler * GetInputHandler() const
Definition BaseWindow.cpp:68
WindowState state
Definition BaseWindow.h:29
bool IsCreated() const
Definition BaseWindow.cpp:33
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
BaseWindow()
Definition BaseWindow.cpp:5
bool cursorConstrained
Definition BaseWindow.h:28
bool HasFocus() const
Definition BaseWindow.cpp:43
BaseWindow & operator=(const BaseWindow &win)
Definition BaseWindow.cpp:17
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
WindowState GetState() const
Definition BaseWindow.cpp:63
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
Vec2_s32 GetCursorPos() const
Definition BaseWindow.cpp:48
Definition InputHandler.h:9
Definition Serializer.h:25
Definition Anchor.h:6
Str< Char_16, UInt_64 > Str_16
Definition Str.h:1952
@ NONE
Definition Dock.h:7
unsigned char UInt_8
Definition Types.h:43
WindowState
Definition BaseWindow.h:10
@ FULLSCREEN
Definition BaseWindow.h:12
Str< Char_8, UInt_64 > Str_8
Definition Str.h:1953
CursorImg
Definition BaseWindow.h:16
@ DEFAULT
Definition BaseWindow.h:17
@ I_BEAM
Definition BaseWindow.h:18
Str< Char_32, UInt_64 > Str_32
Definition Str.h:1951
Vec2< SInt_32 > Vec2_s32
Definition Vec2.h:376
Vec2< UInt_32 > Vec2_u32
Definition Vec2.h:375