mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-28 15:34:33 +00:00
Fix GUI windows
This commit is contained in:
parent
a4eefb4a21
commit
b9f175f19d
@ -23,7 +23,7 @@ namespace GraphicalUserInterface
|
|||||||
{
|
{
|
||||||
Ofast inline void InlineSetPixel(ScreenBitmap *Bitmap, int64_t X, int64_t Y, uint32_t Color)
|
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;
|
return;
|
||||||
|
|
||||||
uint32_t *Pixel = (uint32_t *)((uintptr_t)Bitmap->Data + (Y * Bitmap->Width + X) * (Bitmap->BitsPerPixel / 8));
|
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;
|
// 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))
|
if (unlikely(!Bitmap))
|
||||||
return;
|
return;
|
||||||
@ -50,7 +50,7 @@ namespace GraphicalUserInterface
|
|||||||
if (unlikely(!Bitmap->Data))
|
if (unlikely(!Bitmap->Data))
|
||||||
return 0;
|
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;
|
return 0;
|
||||||
|
|
||||||
uint32_t *Pixel = (uint32_t *)((uintptr_t)Bitmap->Data + (Y * Bitmap->Width + X) * (Bitmap->BitsPerPixel / 8));
|
uint32_t *Pixel = (uint32_t *)((uintptr_t)Bitmap->Data + (Y * Bitmap->Width + X) * (Bitmap->BitsPerPixel / 8));
|
||||||
|
@ -279,10 +279,10 @@ namespace GraphicalUserInterface
|
|||||||
|
|
||||||
MinimizeButtonPos.Left = TopBarPos.Left + TopBarPos.Width - 60;
|
MinimizeButtonPos.Left = TopBarPos.Left + TopBarPos.Width - 60;
|
||||||
|
|
||||||
if (unlikely(MouseArray[0].X >= (int64_t)(MinimizeButtonPos.Left) &&
|
if (unlikely(MouseArray[0].X >= (size_t)MinimizeButtonPos.Left &&
|
||||||
MouseArray[0].X <= (int64_t)(CloseButtonPos.Left + CloseButtonPos.Width) &&
|
MouseArray[0].X <= (size_t)CloseButtonPos.Left + CloseButtonPos.Width &&
|
||||||
MouseArray[0].Y >= (int64_t)(CloseButtonPos.Top) &&
|
MouseArray[0].Y >= (size_t)CloseButtonPos.Top &&
|
||||||
MouseArray[0].Y <= (int64_t)(CloseButtonPos.Top + CloseButtonPos.Height)))
|
MouseArray[0].Y <= (size_t)CloseButtonPos.Top + CloseButtonPos.Height))
|
||||||
{
|
{
|
||||||
OverlayBufferRepaint = true;
|
OverlayBufferRepaint = true;
|
||||||
}
|
}
|
||||||
@ -311,10 +311,10 @@ namespace GraphicalUserInterface
|
|||||||
|
|
||||||
PutRect(this->OverlayBuffer, TopBarPos, 0x282828);
|
PutRect(this->OverlayBuffer, TopBarPos, 0x282828);
|
||||||
// Title bar buttons (close, minimize, maximize) on the right
|
// Title bar buttons (close, minimize, maximize) on the right
|
||||||
if (MouseArray[0].X >= (int64_t)(CloseButtonPos.Left) &&
|
if (MouseArray[0].X >= (size_t)CloseButtonPos.Left &&
|
||||||
MouseArray[0].X <= (int64_t)(CloseButtonPos.Left + CloseButtonPos.Width) &&
|
MouseArray[0].X <= (size_t)CloseButtonPos.Left + CloseButtonPos.Width &&
|
||||||
MouseArray[0].Y >= (int64_t)(CloseButtonPos.Top) &&
|
MouseArray[0].Y >= (size_t)CloseButtonPos.Top &&
|
||||||
MouseArray[0].Y <= (int64_t)(CloseButtonPos.Top + CloseButtonPos.Height))
|
MouseArray[0].Y <= (size_t)CloseButtonPos.Top + CloseButtonPos.Height)
|
||||||
{
|
{
|
||||||
PutRect(this->OverlayBuffer, CloseButtonPos, MouseArray[0].Left ? 0xFF5500 : 0xFF0000);
|
PutRect(this->OverlayBuffer, CloseButtonPos, MouseArray[0].Left ? 0xFF5500 : 0xFF0000);
|
||||||
RepaintNeeded = true;
|
RepaintNeeded = true;
|
||||||
@ -324,10 +324,10 @@ namespace GraphicalUserInterface
|
|||||||
PutRect(this->OverlayBuffer, MaximizeButtonPos, 0x282828);
|
PutRect(this->OverlayBuffer, MaximizeButtonPos, 0x282828);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MouseArray[0].X >= (int64_t)(MaximizeButtonPos.Left) &&
|
if (MouseArray[0].X >= (size_t)MaximizeButtonPos.Left &&
|
||||||
MouseArray[0].X <= (int64_t)(MaximizeButtonPos.Left + MaximizeButtonPos.Width) &&
|
MouseArray[0].X <= (size_t)MaximizeButtonPos.Left + MaximizeButtonPos.Width &&
|
||||||
MouseArray[0].Y >= (int64_t)(MaximizeButtonPos.Top) &&
|
MouseArray[0].Y >= (size_t)MaximizeButtonPos.Top &&
|
||||||
MouseArray[0].Y <= (int64_t)(MaximizeButtonPos.Top + MaximizeButtonPos.Height))
|
MouseArray[0].Y <= (size_t)MaximizeButtonPos.Top + MaximizeButtonPos.Height)
|
||||||
{
|
{
|
||||||
PutRect(this->OverlayBuffer, MaximizeButtonPos, MouseArray[0].Left ? 0x454545 : 0x404040);
|
PutRect(this->OverlayBuffer, MaximizeButtonPos, MouseArray[0].Left ? 0x454545 : 0x404040);
|
||||||
RepaintNeeded = true;
|
RepaintNeeded = true;
|
||||||
@ -337,10 +337,10 @@ namespace GraphicalUserInterface
|
|||||||
PutRect(this->OverlayBuffer, MaximizeButtonPos, 0x282828);
|
PutRect(this->OverlayBuffer, MaximizeButtonPos, 0x282828);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (MouseArray[0].X >= (int64_t)(MinimizeButtonPos.Left) &&
|
if (MouseArray[0].X >= (size_t)MinimizeButtonPos.Left &&
|
||||||
MouseArray[0].X <= (int64_t)(MinimizeButtonPos.Left + MinimizeButtonPos.Width) &&
|
MouseArray[0].X <= (size_t)MinimizeButtonPos.Left + MinimizeButtonPos.Width &&
|
||||||
MouseArray[0].Y >= (int64_t)(MinimizeButtonPos.Top) &&
|
MouseArray[0].Y >= (size_t)MinimizeButtonPos.Top &&
|
||||||
MouseArray[0].Y <= (int64_t)(MinimizeButtonPos.Top + MinimizeButtonPos.Height))
|
MouseArray[0].Y <= (size_t)MinimizeButtonPos.Top + MinimizeButtonPos.Height)
|
||||||
{
|
{
|
||||||
PutRect(this->OverlayBuffer, MinimizeButtonPos, MouseArray[0].Left ? 0x454545 : 0x404040);
|
PutRect(this->OverlayBuffer, MinimizeButtonPos, MouseArray[0].Left ? 0x454545 : 0x404040);
|
||||||
RepaintNeeded = true;
|
RepaintNeeded = true;
|
||||||
|
@ -30,9 +30,9 @@ namespace GraphicalUserInterface
|
|||||||
|
|
||||||
struct MouseData
|
struct MouseData
|
||||||
{
|
{
|
||||||
int64_t X;
|
size_t X;
|
||||||
int64_t Y;
|
size_t Y;
|
||||||
int64_t Z;
|
size_t Z;
|
||||||
bool Left;
|
bool Left;
|
||||||
bool Right;
|
bool Right;
|
||||||
bool Middle;
|
bool Middle;
|
||||||
@ -40,8 +40,8 @@ namespace GraphicalUserInterface
|
|||||||
|
|
||||||
struct ScreenBitmap
|
struct ScreenBitmap
|
||||||
{
|
{
|
||||||
int64_t Width;
|
size_t Width;
|
||||||
int64_t Height;
|
size_t Height;
|
||||||
size_t Size;
|
size_t Size;
|
||||||
size_t Pitch;
|
size_t Pitch;
|
||||||
uint64_t BitsPerPixel;
|
uint64_t BitsPerPixel;
|
||||||
@ -50,19 +50,25 @@ namespace GraphicalUserInterface
|
|||||||
|
|
||||||
struct Rect
|
struct Rect
|
||||||
{
|
{
|
||||||
size_t Left;
|
int64_t Left;
|
||||||
size_t Top;
|
int64_t Top;
|
||||||
size_t Width;
|
size_t Width;
|
||||||
size_t Height;
|
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)
|
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
|
struct
|
||||||
{
|
{
|
||||||
int64_t X;
|
size_t X;
|
||||||
int64_t Y;
|
size_t Y;
|
||||||
bool Left;
|
bool Left;
|
||||||
bool Right;
|
bool Right;
|
||||||
bool Middle;
|
bool Middle;
|
||||||
@ -104,8 +110,8 @@ namespace GraphicalUserInterface
|
|||||||
|
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
int64_t X;
|
size_t X;
|
||||||
int64_t Y;
|
size_t Y;
|
||||||
bool Left;
|
bool Left;
|
||||||
bool Right;
|
bool Right;
|
||||||
bool Middle;
|
bool Middle;
|
||||||
@ -113,8 +119,8 @@ namespace GraphicalUserInterface
|
|||||||
|
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
int64_t X;
|
size_t X;
|
||||||
int64_t Y;
|
size_t Y;
|
||||||
bool Left;
|
bool Left;
|
||||||
bool Right;
|
bool Right;
|
||||||
bool Middle;
|
bool Middle;
|
||||||
@ -178,7 +184,7 @@ namespace GraphicalUserInterface
|
|||||||
virtual void OnPaintChildrenAll(Event *e) {}
|
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,
|
void DrawOverBitmap(ScreenBitmap *DestinationBitmap,
|
||||||
ScreenBitmap *SourceBitmap,
|
ScreenBitmap *SourceBitmap,
|
||||||
int64_t Top,
|
int64_t Top,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user