Extract ScreenRect from Graph for reusability

This commit is contained in:
Tulio Leao 2020-06-30 09:32:22 -03:00
parent 5ce65eb7dc
commit a86a60cbf5
2 changed files with 28 additions and 35 deletions

View File

@ -189,41 +189,6 @@ struct FinancialTooltipInfo
const money32 money{};
};
struct ScreenRect
{
const ScreenCoordsXY LeftTop;
const ScreenCoordsXY RightBottom;
int32_t GetLeft() const
{
return LeftTop.x;
}
int32_t GetTop() const
{
return LeftTop.y;
}
int32_t GetRight() const
{
return RightBottom.x;
}
int32_t GetBottom() const
{
return RightBottom.y;
}
int32_t GetWidth() const
{
return RightBottom.x - LeftTop.x;
}
int32_t GetHeight() const
{
return RightBottom.y - LeftTop.y;
}
bool Contains(const ScreenCoordsXY& coords) const
{
return coords.x >= GetLeft() && coords.x <= GetRight() && coords.y >= GetTop() && coords.y <= GetBottom();
}
};
static constexpr auto CHART_MAX_DATA_COUNT = 64;
static constexpr auto CHART_MAX_INDEX = CHART_MAX_DATA_COUNT - 1;
static constexpr auto CHART_DATA_WIDTH = 6;

View File

@ -689,3 +689,31 @@ struct ScreenLine : public CoordsRange<ScreenCoordsXY>
assert((std::abs(GetLeft() - GetRight()) > 0) || (std::abs(GetTop() - GetBottom()) > 0));
}
};
/**
* Represents a rectangular range on the screen
*/
struct ScreenRect : public CoordsRange<ScreenCoordsXY>
{
ScreenRect(const ScreenCoordsXY& leftTop, const ScreenCoordsXY& rightBottom)
: CoordsRange<ScreenCoordsXY>(leftTop, rightBottom)
{
// Make sure it's a rectangle
assert(std::abs(GetLeft() - GetRight()) > 0);
assert(std::abs(GetTop() - GetBottom()) > 0);
}
int32_t GetWidth() const
{
return RightBottom.x - LeftTop.x;
}
int32_t GetHeight() const
{
return RightBottom.y - LeftTop.y;
}
bool Contains(const ScreenCoordsXY& coords) const
{
return coords.x >= GetLeft() && coords.x <= GetRight() && coords.y >= GetTop() && coords.y <= GetBottom();
}
};