From b9f175f19d8c43aeb786c1ebf5d417b061aa1d09 Mon Sep 17 00:00:00 2001 From: Alex Date: Sat, 20 May 2023 01:27:09 +0300 Subject: [PATCH] Fix GUI windows --- GUI/GUITools.cpp | 6 ++--- GUI/GraphicalUserInterface.cpp | 32 +++++++++++++-------------- include/gui.hpp | 40 +++++++++++++++++++--------------- 3 files changed, 42 insertions(+), 36 deletions(-) diff --git a/GUI/GUITools.cpp b/GUI/GUITools.cpp index b47b85a..9907261 100644 --- a/GUI/GUITools.cpp +++ b/GUI/GUITools.cpp @@ -23,7 +23,7 @@ namespace GraphicalUserInterface { Ofast inline void InlineSetPixel(ScreenBitmap *Bitmap, int64_t X, int64_t Y, uint32_t Color) { - if (unlikely(X < 0 || Y < 0 || X >= Bitmap->Width || Y >= Bitmap->Height)) + if (unlikely(X < 0 || Y < 0 || X >= (int64_t)Bitmap->Width || Y >= (int64_t)Bitmap->Height)) return; uint32_t *Pixel = (uint32_t *)((uintptr_t)Bitmap->Data + (Y * Bitmap->Width + X) * (Bitmap->BitsPerPixel / 8)); @@ -31,7 +31,7 @@ namespace GraphicalUserInterface // Bitmap->Data[Y * Bitmap->Width + X] = Color; } - void SetPixel(ScreenBitmap *Bitmap, int64_t X, int64_t Y, uint32_t Color) + void SetPixel(ScreenBitmap *Bitmap, size_t X, size_t Y, uint32_t Color) { if (unlikely(!Bitmap)) return; @@ -50,7 +50,7 @@ namespace GraphicalUserInterface if (unlikely(!Bitmap->Data)) return 0; - if (unlikely(X < 0 || Y < 0 || X >= Bitmap->Width || Y >= Bitmap->Height)) + if (unlikely(X < 0 || Y < 0 || X >= (int64_t)Bitmap->Width || Y >= (int64_t)Bitmap->Height)) return 0; uint32_t *Pixel = (uint32_t *)((uintptr_t)Bitmap->Data + (Y * Bitmap->Width + X) * (Bitmap->BitsPerPixel / 8)); diff --git a/GUI/GraphicalUserInterface.cpp b/GUI/GraphicalUserInterface.cpp index 6363a1d..9fc5b08 100644 --- a/GUI/GraphicalUserInterface.cpp +++ b/GUI/GraphicalUserInterface.cpp @@ -279,10 +279,10 @@ namespace GraphicalUserInterface MinimizeButtonPos.Left = TopBarPos.Left + TopBarPos.Width - 60; - if (unlikely(MouseArray[0].X >= (int64_t)(MinimizeButtonPos.Left) && - MouseArray[0].X <= (int64_t)(CloseButtonPos.Left + CloseButtonPos.Width) && - MouseArray[0].Y >= (int64_t)(CloseButtonPos.Top) && - MouseArray[0].Y <= (int64_t)(CloseButtonPos.Top + CloseButtonPos.Height))) + if (unlikely(MouseArray[0].X >= (size_t)MinimizeButtonPos.Left && + MouseArray[0].X <= (size_t)CloseButtonPos.Left + CloseButtonPos.Width && + MouseArray[0].Y >= (size_t)CloseButtonPos.Top && + MouseArray[0].Y <= (size_t)CloseButtonPos.Top + CloseButtonPos.Height)) { OverlayBufferRepaint = true; } @@ -311,10 +311,10 @@ namespace GraphicalUserInterface PutRect(this->OverlayBuffer, TopBarPos, 0x282828); // Title bar buttons (close, minimize, maximize) on the right - if (MouseArray[0].X >= (int64_t)(CloseButtonPos.Left) && - MouseArray[0].X <= (int64_t)(CloseButtonPos.Left + CloseButtonPos.Width) && - MouseArray[0].Y >= (int64_t)(CloseButtonPos.Top) && - MouseArray[0].Y <= (int64_t)(CloseButtonPos.Top + CloseButtonPos.Height)) + if (MouseArray[0].X >= (size_t)CloseButtonPos.Left && + MouseArray[0].X <= (size_t)CloseButtonPos.Left + CloseButtonPos.Width && + MouseArray[0].Y >= (size_t)CloseButtonPos.Top && + MouseArray[0].Y <= (size_t)CloseButtonPos.Top + CloseButtonPos.Height) { PutRect(this->OverlayBuffer, CloseButtonPos, MouseArray[0].Left ? 0xFF5500 : 0xFF0000); RepaintNeeded = true; @@ -324,10 +324,10 @@ namespace GraphicalUserInterface PutRect(this->OverlayBuffer, MaximizeButtonPos, 0x282828); } - if (MouseArray[0].X >= (int64_t)(MaximizeButtonPos.Left) && - MouseArray[0].X <= (int64_t)(MaximizeButtonPos.Left + MaximizeButtonPos.Width) && - MouseArray[0].Y >= (int64_t)(MaximizeButtonPos.Top) && - MouseArray[0].Y <= (int64_t)(MaximizeButtonPos.Top + MaximizeButtonPos.Height)) + if (MouseArray[0].X >= (size_t)MaximizeButtonPos.Left && + MouseArray[0].X <= (size_t)MaximizeButtonPos.Left + MaximizeButtonPos.Width && + MouseArray[0].Y >= (size_t)MaximizeButtonPos.Top && + MouseArray[0].Y <= (size_t)MaximizeButtonPos.Top + MaximizeButtonPos.Height) { PutRect(this->OverlayBuffer, MaximizeButtonPos, MouseArray[0].Left ? 0x454545 : 0x404040); RepaintNeeded = true; @@ -337,10 +337,10 @@ namespace GraphicalUserInterface PutRect(this->OverlayBuffer, MaximizeButtonPos, 0x282828); } - if (MouseArray[0].X >= (int64_t)(MinimizeButtonPos.Left) && - MouseArray[0].X <= (int64_t)(MinimizeButtonPos.Left + MinimizeButtonPos.Width) && - MouseArray[0].Y >= (int64_t)(MinimizeButtonPos.Top) && - MouseArray[0].Y <= (int64_t)(MinimizeButtonPos.Top + MinimizeButtonPos.Height)) + if (MouseArray[0].X >= (size_t)MinimizeButtonPos.Left && + MouseArray[0].X <= (size_t)MinimizeButtonPos.Left + MinimizeButtonPos.Width && + MouseArray[0].Y >= (size_t)MinimizeButtonPos.Top && + MouseArray[0].Y <= (size_t)MinimizeButtonPos.Top + MinimizeButtonPos.Height) { PutRect(this->OverlayBuffer, MinimizeButtonPos, MouseArray[0].Left ? 0x454545 : 0x404040); RepaintNeeded = true; diff --git a/include/gui.hpp b/include/gui.hpp index abcd55c..9f6b422 100644 --- a/include/gui.hpp +++ b/include/gui.hpp @@ -30,9 +30,9 @@ namespace GraphicalUserInterface struct MouseData { - int64_t X; - int64_t Y; - int64_t Z; + size_t X; + size_t Y; + size_t Z; bool Left; bool Right; bool Middle; @@ -40,8 +40,8 @@ namespace GraphicalUserInterface struct ScreenBitmap { - int64_t Width; - int64_t Height; + size_t Width; + size_t Height; size_t Size; size_t Pitch; uint64_t BitsPerPixel; @@ -50,19 +50,25 @@ namespace GraphicalUserInterface struct Rect { - size_t Left; - size_t Top; + int64_t Left; + int64_t Top; size_t Width; size_t Height; - bool Contains(size_t X, size_t Y) + bool Contains(int64_t X, int64_t Y) { - return (X >= Left && X <= Left + Width && Y >= Top && Y <= Top + Height); + return (X >= Left && + X <= Left + (int64_t)Width && + Y >= Top && + Y <= Top + (int64_t)Height); } bool Contains(Rect rect) { - return (rect.Left >= Left && rect.Left + rect.Width <= Left + Width && rect.Top >= Top && rect.Top + rect.Height <= Top + Height); + return (rect.Left >= Left && + rect.Left + rect.Width <= Left + Width && + rect.Top >= Top && + rect.Top + rect.Height <= Top + Height); } }; @@ -95,8 +101,8 @@ namespace GraphicalUserInterface struct { - int64_t X; - int64_t Y; + size_t X; + size_t Y; bool Left; bool Right; bool Middle; @@ -104,8 +110,8 @@ namespace GraphicalUserInterface struct { - int64_t X; - int64_t Y; + size_t X; + size_t Y; bool Left; bool Right; bool Middle; @@ -113,8 +119,8 @@ namespace GraphicalUserInterface struct { - int64_t X; - int64_t Y; + size_t X; + size_t Y; bool Left; bool Right; bool Middle; @@ -178,7 +184,7 @@ namespace GraphicalUserInterface virtual void OnPaintChildrenAll(Event *e) {} */ - void SetPixel(ScreenBitmap *Bitmap, int64_t X, int64_t Y, uint32_t Color); + void SetPixel(ScreenBitmap *Bitmap, size_t X, size_t Y, uint32_t Color); void DrawOverBitmap(ScreenBitmap *DestinationBitmap, ScreenBitmap *SourceBitmap, int64_t Top,