Blame view

emulateur/epsilon-nofrendo/apps/shared/round_cursor_view.cpp 1.28 KB
6663b6c9   adorian   projet complet av...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
  #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());
  }
  
  }