mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 16:57:31 +01:00
40 lines
1.3 KiB
C++
40 lines
1.3 KiB
C++
#include "round_cursor_view.h"
|
|
|
|
namespace Shared {
|
|
|
|
RoundCursorView::RoundCursorView(KDColor color) :
|
|
m_color(color)
|
|
{
|
|
}
|
|
|
|
static constexpr KDCoordinate cursorSize = 10;
|
|
static const uint8_t cursorMask[cursorSize][cursorSize] = {
|
|
{0xFF, 0xFF, 0xFF, 0xED, 0xB6, 0xB6, 0xED, 0xFF, 0xFF, 0xFF},
|
|
{0xFF, 0xFF, 0x7C, 0x06, 0x00, 0x00, 0x06, 0x7C, 0xFF, 0xFF},
|
|
{0xFF, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFF},
|
|
{0xED, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE5},
|
|
{0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB6},
|
|
{0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB6},
|
|
{0xED, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE5},
|
|
{0xFF, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0xFF},
|
|
{0xFF, 0xFF, 0x7C, 0x06, 0x00, 0x00, 0x06, 0x7C, 0xFF, 0xFF},
|
|
{0xFF, 0xFF, 0xFF, 0xED, 0xB6, 0xB6, 0xED, 0xFF, 0xFF, 0xFF},
|
|
};
|
|
|
|
static KDColor s_cursorWorkingBuffer[cursorSize*cursorSize];
|
|
|
|
void RoundCursorView::drawRect(KDContext * ctx, KDRect rect) const {
|
|
ctx->blendRectWithMask(bounds(), m_color, (const uint8_t *)cursorMask, s_cursorWorkingBuffer);
|
|
}
|
|
|
|
KDSize RoundCursorView::minimalSizeForOptimalDisplay() const {
|
|
return KDSize(cursorSize, cursorSize);
|
|
}
|
|
|
|
void RoundCursorView::setColor(KDColor color) {
|
|
m_color = color;
|
|
markRectAsDirty(bounds());
|
|
}
|
|
|
|
}
|