diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-09-22 14:58:02 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-09-22 16:39:33 +0800 |
| commit | 444e628d22db67742181ae14ae2ed0a9c2b6cd67 (patch) | |
| tree | fa2f6249ba90d1e7e618e59c7eb3cdf00fbe9971 /include/cru/platform/GraphicsBase.h | |
| parent | 8bde78e1a008ba5ba95ea54ff03717baf53d4170 (diff) | |
| download | cru-444e628d22db67742181ae14ae2ed0a9c2b6cd67.tar.gz cru-444e628d22db67742181ae14ae2ed0a9c2b6cd67.tar.bz2 cru-444e628d22db67742181ae14ae2ed0a9c2b6cd67.zip | |
Impl window rect of xcb window.
Diffstat (limited to 'include/cru/platform/GraphicsBase.h')
| -rw-r--r-- | include/cru/platform/GraphicsBase.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/include/cru/platform/GraphicsBase.h b/include/cru/platform/GraphicsBase.h index b0f653ef..d5936476 100644 --- a/include/cru/platform/GraphicsBase.h +++ b/include/cru/platform/GraphicsBase.h @@ -206,10 +206,22 @@ struct Rect final { height + thickness.GetVerticalTotal()); } - constexpr Rect Shrink(const Thickness& thickness) const { - return Rect(left + thickness.left, top + thickness.top, + constexpr Rect Shrink(const Thickness& thickness, + bool normalize = false) const { + Rect result(left + thickness.left, top + thickness.top, width - thickness.GetHorizontalTotal(), height - thickness.GetVerticalTotal()); + + if (normalize) { + if (result.width < 0) { + result.width = 0; + } + if (result.height < 0) { + result.height = 0; + } + } + + return result; } constexpr bool IsPointInside(const Point& point) const { |
