-
Notifications
You must be signed in to change notification settings - Fork 24
/
Copy pathDC_GfxOLED.h
77 lines (68 loc) · 1.79 KB
/
DC_GfxOLED.h
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#pragma once
/*
GUI library for Arduino TFT and OLED displays
Copyright (c) 2014-2018 Andrei Degtiarev
Licensed under the Apache License, Version 2.0 (the "License"); you
may not use this file except in compliance with the License. You may
obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied. See the License for the specific language governing
permissions and limitations under the License.
*/
#include "DC_GFX.h"
class AFontOLED : public AFont
{
public:
const uint8_t Size;
AFontOLED(const __FlashStringHelper * fontName, uint8_t size) : AFont(fontName), Size(size)
{
}
};
class DC_GfxOLED : public DC_Gfx
{
private:
void(*_fncDisplay)();
public:
///Constructor that used locally. This constructor assumes that UTFT library is initialized already
DC_GfxOLED(Adafruit_GFX *oled, void(*fncDisplay)()) :DC_Gfx(oled)
{
_fncDisplay = fncDisplay;
}
void setColor(byte r, byte g, byte b)
{
_color = Color::GetColor565(r,g,b)>565 / 2 ? 1 : 0;
}
void SetDeviceColor(Color color)
{
_color = color.GetColor565()>565 / 2 ? 1 : 0;
}
void SetBackColor(Color color)
{
_color = color.GetColor565()>565 / 2 ? 1 : 0;
}
///Set active font
virtual void SetFontImpl(AFont *font)
{
if (font != NULL)
SetFont(((AFontOLED *)font)->Size);
else
SetFont(NULL);
}
void SetFont(uint8_t size)
{
_display->setTextSize(size);
}
virtual void Display()
{
if(_fncDisplay != NULL)
_fncDisplay();
}
static void RegisterDefaultFonts()
{
Environment::Get()->RegisterFont(new AFontOLED(F("Big"), 2));
Environment::Get()->RegisterFont(new AFontOLED(F("Small"), 1));
}
};