diff --git a/client/widgets/MiscWidgets.cpp b/client/widgets/MiscWidgets.cpp index e0a5278e8..e3f11ebe2 100644 --- a/client/widgets/MiscWidgets.cpp +++ b/client/widgets/MiscWidgets.cpp @@ -580,3 +580,31 @@ void CCreaturePic::setAmount(int newAmount) else amount->setText(""); } + +TransparentFilledRectangle::TransparentFilledRectangle(Rect position, ColorRGBA color) : + color(color), colorLine(ColorRGBA()), drawLine(false) +{ + pos = position + pos.topLeft(); +} + +TransparentFilledRectangle::TransparentFilledRectangle(Rect position, ColorRGBA color, ColorRGBA colorLine) : + color(color), colorLine(colorLine), drawLine(true) +{ + pos = position + pos.topLeft(); +} + +void TransparentFilledRectangle::showAll(Canvas & to) +{ + to.drawColorBlended(pos, color); + if(drawLine) + to.drawBorder(pos, colorLine); +} + +SimpleLine::SimpleLine(Point pos1, Point pos2, ColorRGBA color) : + pos1(pos1), pos2(pos2), color(color) +{} + +void SimpleLine::showAll(Canvas & to) +{ + to.drawLine(pos1 + pos.topLeft(), pos2 + pos.topLeft(), color, color); +} \ No newline at end of file diff --git a/client/widgets/MiscWidgets.h b/client/widgets/MiscWidgets.h index 4a8b79c8f..53b866207 100644 --- a/client/widgets/MiscWidgets.h +++ b/client/widgets/MiscWidgets.h @@ -226,3 +226,24 @@ public: MoraleLuckBox(bool Morale, const Rect &r, bool Small=false); }; + +class TransparentFilledRectangle : public CIntObject +{ + ColorRGBA color; + ColorRGBA colorLine; + bool drawLine; +public: + TransparentFilledRectangle(Rect position, ColorRGBA color); + TransparentFilledRectangle(Rect position, ColorRGBA color, ColorRGBA colorLine); + void showAll(Canvas & to) override; +}; + +class SimpleLine : public CIntObject +{ + Point pos1; + Point pos2; + ColorRGBA color; +public: + SimpleLine(Point pos1, Point pos2, ColorRGBA color); + void showAll(Canvas & to) override; +}; \ No newline at end of file diff --git a/client/windows/CHeroOverview.cpp b/client/windows/CHeroOverview.cpp index 857151849..3db29159f 100644 --- a/client/windows/CHeroOverview.cpp +++ b/client/windows/CHeroOverview.cpp @@ -20,6 +20,7 @@ #include "../widgets/CComponent.h" #include "../widgets/Images.h" #include "../widgets/TextControls.h" +#include "../widgets/MiscWidgets.h" #include "../../lib/CGeneralTextHandler.h" #include "../../lib/CCreatureHandler.h" diff --git a/client/windows/CHeroOverview.h b/client/windows/CHeroOverview.h index c63c88ea5..37bf3bd91 100644 --- a/client/windows/CHeroOverview.h +++ b/client/windows/CHeroOverview.h @@ -17,6 +17,8 @@ class CFilledTexture; class CAnimImage; class CComponentBox; class CTextBox; +class TransparentFilledRectangle; +class SimpleLine; class CHeroOverview : public CWindowObject { diff --git a/lib/Rect.h b/lib/Rect.h index 50d514844..660a9f222 100644 --- a/lib/Rect.h +++ b/lib/Rect.h @@ -98,6 +98,11 @@ public: return Point(w,h); } + Rect resize(const int size) const + { + return Rect(x-size,y-size,w+size,h+size); + } + void moveTo(const Point & dest) { x = dest.x;