EHS
Loading...
Searching...
No Matches
Window_W32.h
Go to the documentation of this file.
1#pragma once
2
3#include "ehs/EHS.h"
4#include "ehs/Array.h"
5#include "ehs/Str.h"
6#include "ehs/Vec4.h"
7#include "BaseWindow.h"
8#include "HID/InputHandler.h"
9
10#define WM_HIDE (WM_APP + 1)
11#define WM_SHOW (WM_APP + 2)
12#define WM_HIDE_CURSOR (WM_APP + 3)
13#define WM_SHOW_CURSOR (WM_APP + 4)
14
15namespace ehs
16{
17 class EHS_LIB_IO Window : public BaseWindow
18 {
19 private:
20 UInt_32 owner;
21 HINSTANCE instance;
22 HWND hdl;
23
24 static Array<Window*> windows;
25
26 static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
27
28 public:
29 ~Window() override;
30
31 Window();
32
33 Window(const Window &win);
34
35 Window& operator=(const Window &win);
36
37 bool Poll() override;
38
40 void Create_32(const Str_32& title, const Vec2_s32& pos, Vec2_u32 scale) override;
41
43 void Create_16(const Str_16& title, const Vec2_s32& pos, Vec2_u32 scale) override;
44
46 void Create_8(const Str_8& title, const Vec2_s32& pos, Vec2_u32 scale) override;
47
49 void Use(HWND windowHdl);
50
52 void Close() override;
53
55 void Show() override;
56
58 void Hide() override;
59
60 void SetTitle_32(const Str_32& title) override;
61
62 Str_32 GetTitle_32() const override;
63
64 void SetTitle_16(const Str_16& title) override;
65
66 Str_16 GetTitle_16() const override;
67
68 void SetTitle_8(const Str_8& title) override;
69
70 Str_8 GetTitle_8() const override;
71
72 void SetIcon(const Str_8& filePath);
73
76 HWND GetHdl() const;
77
80 static HWND GetAvailableHdl();
81
82 HINSTANCE GetInst() const;
83
86 void ToggleEnabled(bool toggle);
87
90 bool IsEnabled();
91
95 void SetPos(const Vec2_s32& newPos) override;
96
99 Vec2_s32 GetPos() const override;
100
101 virtual void OnResized(const Vec2<UInt_32>& newSize);
102
106 void SetScale(const Vec2_u32& newScale) override;
107
110 Vec2_u32 GetScale() const override;
111
112 void ShowCursor(bool toggle) override;
113
114 void ConstrainCursor(bool toggle) override;
115
117
118 void SetClipboard(Serializer<UInt_64> data) override;
119
120 void SetCursorImg(CursorImg img) override;
121
122 protected:
123 void SendMsg(UINT msg, WPARAM wParam, LPARAM lParam);
124
125 };
126}
Definition Array.h:16
BaseWindow()
Definition BaseWindow.cpp:5
Definition Serializer.h:25
Definition Vec2.h:13
void Hide() override
Hides the window.
Definition Window_W32.cpp:431
Str_16 GetTitle_16() const override
Definition Window_W32.cpp:479
void Show() override
Shows the window.
Definition Window_W32.cpp:426
HINSTANCE GetInst() const
Definition Window_W32.cpp:574
Window()
Definition Window_W32.cpp:275
void ConstrainCursor(bool toggle) override
Definition Window_W32.cpp:656
void Create_8(const Str_8 &title, const Vec2_s32 &pos, Vec2_u32 scale) override
Creates the native window.
Definition Window_W32.cpp:408
void Create_32(const Str_32 &title, const Vec2_s32 &pos, Vec2_u32 scale) override
Creates the native window.
Definition Window_W32.cpp:323
HWND GetHdl() const
Definition Window_W32.cpp:560
void SendMsg(UINT msg, WPARAM wParam, LPARAM lParam)
Definition Window_W32.cpp:824
void SetPos(const Vec2_s32 &newPos) override
Definition Window_W32.cpp:595
static HWND GetAvailableHdl()
Definition Window_W32.cpp:565
virtual void OnResized(const Vec2< UInt_32 > &newSize)
Definition Window_W32.cpp:614
Vec2_s32 GetPos() const override
Definition Window_W32.cpp:603
bool IsEnabled()
Definition Window_W32.cpp:587
Vec2_u32 GetScale() const override
Definition Window_W32.cpp:638
Str_32 GetTitle_32() const override
Definition Window_W32.cpp:442
void ToggleEnabled(bool toggle)
Definition Window_W32.cpp:579
void SetIcon(const Str_8 &filePath)
Definition Window_W32.cpp:547
Serializer< UInt_64 > GetClipboard() override
Definition Window_W32.cpp:704
void SetTitle_8(const Str_8 &title) override
Definition Window_W32.cpp:510
bool Poll() override
Definition Window_W32.cpp:301
void Use(HWND windowHdl)
Uses an already existing window to render an overlay.
Definition Window_W32.cpp:413
void ShowCursor(bool toggle) override
Definition Window_W32.cpp:649
void Create_16(const Str_16 &title, const Vec2_s32 &pos, Vec2_u32 scale) override
Creates the native window.
Definition Window_W32.cpp:328
Window & operator=(const Window &win)
Definition Window_W32.cpp:285
void SetTitle_32(const Str_32 &title) override
Definition Window_W32.cpp:436
Str_8 GetTitle_8() const override
Definition Window_W32.cpp:516
void SetTitle_16(const Str_16 &title) override
Definition Window_W32.cpp:473
Vec2_u32 scale
Definition Window_Way.h:25
void SetScale(const Vec2_u32 &newScale) override
Definition Window_W32.cpp:618
void SetClipboard(Serializer< UInt_64 > data) override
Definition Window_W32.cpp:751
void Close() override
Closes the window.
Definition Window_W32.cpp:418
void SetCursorImg(CursorImg img) override
Definition Window_W32.cpp:820
Definition Anchor.h:6
unsigned int UInt_32
Definition Types.h:49
Str< Char_16, UInt_64 > Str_16
Definition Str.h:1952
Str< Char_8, UInt_64 > Str_8
Definition Str.h:1953
CursorImg
Definition BaseWindow.h:16
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