Fixed window for Windows.
All checks were successful
Build & Release / Windows-AMD64-Build (push) Successful in 1m15s
Build & Release / Linux-AMD64-Build (push) Successful in 1m21s
Build & Release / Linux-AARCH64-Build (push) Successful in 3m20s

This commit is contained in:
Arron David Nelson 2024-02-05 23:55:53 -08:00
parent a7331d5561
commit 586ed2dfd2
3 changed files with 50 additions and 31 deletions

View File

@ -40,11 +40,11 @@ namespace ehs
BaseWindow& operator=(const BaseWindow& win); BaseWindow& operator=(const BaseWindow& win);
virtual void Create_32(const Str_32& title, const Vec2_s32& pos, const Vec2_u32 scale) = 0; virtual void Create_32(const Str_32& title, const Vec2_s32& pos, Vec2_u32 scale) = 0;
virtual void Create_16(const Str_16& title, const Vec2_s32& pos, const Vec2_u32 scale) = 0; virtual void Create_16(const Str_16& title, const Vec2_s32& pos, Vec2_u32 scale) = 0;
virtual void Create_8(const Str_8& title, const Vec2_s32& pos, const Vec2_u32 scale) = 0; virtual void Create_8(const Str_8& title, const Vec2_s32& pos, Vec2_u32 scale) = 0;
virtual void OnCreated() = 0; virtual void OnCreated() = 0;
@ -60,7 +60,7 @@ namespace ehs
bool HasFocus() const; bool HasFocus() const;
void EnableResizing(const bool enable); void EnableResizing(bool enable);
bool IsResizable() const; bool IsResizable() const;
@ -77,7 +77,7 @@ namespace ehs
/// @returns The current status. /// @returns The current status.
bool IsCursorVisible() const; bool IsCursorVisible() const;
virtual void ConstrainCursor(const bool constrain) = 0; virtual void ConstrainCursor(bool constrain) = 0;
bool IsCursorConstrained() const; bool IsCursorConstrained() const;
@ -109,6 +109,6 @@ namespace ehs
virtual void SetClipboard(Serializer<UInt_64> data) = 0; virtual void SetClipboard(Serializer<UInt_64> data) = 0;
virtual void SetCursorImg(const CursorImg img) = 0; virtual void SetCursorImg(CursorImg img) = 0;
}; };
} }

View File

@ -26,7 +26,7 @@ namespace ehs
static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); static LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
public: public:
virtual ~Window() override; ~Window() override;
Window(); Window();
@ -34,22 +34,22 @@ namespace ehs
Window& operator=(const Window &win); Window& operator=(const Window &win);
virtual bool Poll() override; bool Poll() override;
///Creates the native window. ///Creates the native window.
void Create_32(const Str_32& title, const Vec2_s32& pos, const Vec2_u32 scale) override; void Create_32(const Str_32& title, const Vec2_s32& pos, Vec2_u32 scale) override;
///Creates the native window. ///Creates the native window.
void Create_16(const Str_16& title, const Vec2_s32& pos, const Vec2_u32 scale) override; void Create_16(const Str_16& title, const Vec2_s32& pos, Vec2_u32 scale) override;
///Creates the native window. ///Creates the native window.
void Create_8(const Str_8& title, const Vec2_s32& pos, const Vec2_u32 scale) override; void Create_8(const Str_8& title, const Vec2_s32& pos, Vec2_u32 scale) override;
///Uses an already existing window to render an overlay. ///Uses an already existing window to render an overlay.
void Use(HWND windowHdl); void Use(HWND windowHdl);
///Closes the window. ///Closes the window.
virtual void Close() override; void Close() override;
///Shows the window. ///Shows the window.
void Show() override; void Show() override;
@ -59,15 +59,15 @@ namespace ehs
void SetTitle_32(const Str_32& title) override; void SetTitle_32(const Str_32& title) override;
Str_32 GetTitle_32(); Str_32 GetTitle_32() const override;
void SetTitle_16(const Str_16& title) override; void SetTitle_16(const Str_16& title) override;
Str_16 GetTitle_16(); Str_16 GetTitle_16() const override;
void SetTitle_8(const Str_8& title) override; void SetTitle_8(const Str_8& title) override;
Str_8 GetTitle_8(); Str_8 GetTitle_8() const override;
void SetIcon(const Str_8& filePath); void SetIcon(const Str_8& filePath);
@ -99,29 +99,35 @@ namespace ehs
/// Sets the windows position on the desktop. /// Sets the windows position on the desktop.
/// @param [in] x The x axis in pixels. /// @param [in] x The x axis in pixels.
/// @param [in] y The y axis in pixels. /// @param [in] y The y axis in pixels.
void SetPos(int x, int y); void SetPos(const Vec2_s32& newPos) override;
/// Gets the windows current position on the desktop. /// Gets the windows current position on the desktop.
/// @returns The current value. /// @returns The current value.
Vec2<Int_32> GetPos(); Vec2_s32 GetPos() const override;
virtual void OnResized(const Vec2<UInt_32>& newSize); virtual void OnResized(const Vec2<UInt_32>& newSize);
/// Sets the windows scale which includes the border. /// Sets the windows scale which includes the border.
/// @param [in] w The width in pixels. /// @param [in] w The width in pixels.
/// @param [in] h The height in pixels. /// @param [in] h The height in pixels.
void SetSize(int w, int h); void SetScale(const Vec2_u32& newScale) override;
/// Gets the windows current scale. /// Gets the windows current scale.
/// @returns The current value. /// @returns The current value.
Vec2<Int_32> GetSize(); Vec2_u32 GetScale() const override;
void ShowCursor(bool toggle) override; void ShowCursor(bool toggle) override;
void ConstrainCursor(const bool toggle) override; void ConstrainCursor(bool toggle) override;
Serializer<UInt_64> GetClipboard() override;
void SetClipboard(Serializer<UInt_64> data) override;
void SetCursorImg(CursorImg img) override;
protected: protected:
void SendMsg(const UINT msg, const WPARAM wParam, const LPARAM lParam); void SendMsg(UINT msg, WPARAM wParam, LPARAM lParam);
}; };
} }

View File

@ -437,7 +437,7 @@ namespace ehs
EHS_LOG_INT("Error", 0, "Failed to set window title with error #" + Str_8::FromNum(GetLastError()) + "."); EHS_LOG_INT("Error", 0, "Failed to set window title with error #" + Str_8::FromNum(GetLastError()) + ".");
} }
Str_32 Window::GetTitle_32() Str_32 Window::GetTitle_32() const
{ {
int size = GetWindowTextLengthW(hdl); int size = GetWindowTextLengthW(hdl);
if (!size) if (!size)
@ -474,7 +474,7 @@ namespace ehs
EHS_LOG_INT("Error", 0, "Failed to set window title with error #" + Str_8::FromNum(GetLastError()) + "."); EHS_LOG_INT("Error", 0, "Failed to set window title with error #" + Str_8::FromNum(GetLastError()) + ".");
} }
Str_16 Window::GetTitle_16() Str_16 Window::GetTitle_16() const
{ {
int size = GetWindowTextLengthW(hdl); int size = GetWindowTextLengthW(hdl);
if (!size) if (!size)
@ -511,7 +511,7 @@ namespace ehs
EHS_LOG_INT("Error", 0, "Failed to set window title with error #" + Str_8::FromNum(GetLastError()) + "."); EHS_LOG_INT("Error", 0, "Failed to set window title with error #" + Str_8::FromNum(GetLastError()) + ".");
} }
Str_8 Window::GetTitle_8() Str_8 Window::GetTitle_8() const
{ {
int size = GetWindowTextLengthW(hdl); int size = GetWindowTextLengthW(hdl);
if (!size) if (!size)
@ -590,15 +590,15 @@ namespace ehs
return IsWindowEnabled(hdl); return IsWindowEnabled(hdl);
} }
void Window::SetPos(int x, int y) void Window::SetPos(const Vec2_s32& newPos)
{ {
if (!created) if (!created)
return; return;
SetWindowPos(hdl, nullptr, x, y, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE); SetWindowPos(hdl, nullptr, newPos.x, newPos.y, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);
} }
Vec2<Int_32> Window::GetPos() Vec2_s32 Window::GetPos() const
{ {
if (!created) if (!created)
return {}; return {};
@ -643,15 +643,15 @@ namespace ehs
{ {
} }
void Window::SetSize(int w, int h) void Window::SetScale(const Vec2_u32& newScale)
{ {
if (!created) if (!created)
return; return;
SetWindowPos(hdl, nullptr, 0, 0, w, h, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); SetWindowPos(hdl, nullptr, 0, 0, (int)newScale.x, (int)newScale.y, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE);
} }
Vec2<Int_32> Window::GetSize() Vec2_u32 Window::GetScale() const
{ {
if (!created) if (!created)
return {}; return {};
@ -659,7 +659,7 @@ namespace ehs
RECT tmp = {}; RECT tmp = {};
GetWindowRect(hdl, &tmp); GetWindowRect(hdl, &tmp);
return {(Int_32)(tmp.right - tmp.left), (Int_32)(tmp.bottom - tmp.top)}; return {(UInt_32)(tmp.right - tmp.left), (UInt_32)(tmp.bottom - tmp.top)};
} }
void Window::ShowCursor(bool toggle) void Window::ShowCursor(bool toggle)
@ -717,6 +717,19 @@ namespace ehs
cursorConstrained = toggle; cursorConstrained = toggle;
} }
Serializer<UInt_64> Window::GetClipboard()
{
return {};
}
void Window::SetClipboard(Serializer<UInt_64> data)
{
}
void Window::SetCursorImg(CursorImg img)
{
}
void Window::SendMsg(const UINT msg, const WPARAM wParam, const LPARAM lParam) void Window::SendMsg(const UINT msg, const WPARAM wParam, const LPARAM lParam)
{ {
if (!hdl) if (!hdl)