71 lines
2.2 KiB
C++
71 lines
2.2 KiB
C++
#pragma once
|
|
|
|
#include <Arduino.h>
|
|
|
|
class TFT_eSPI;
|
|
|
|
class Board {
|
|
public:
|
|
bool begin();
|
|
bool beginSd();
|
|
void setReadingContext(const String& bookTitle, const String& chapterTitle,
|
|
uint32_t wordCount, uint8_t progressPercent);
|
|
void drawWord(const String& word, uint16_t wpm, uint8_t styleFlags = 0,
|
|
uint8_t wordColorFlag = 0);
|
|
void setReadingColors(uint16_t textColor, uint16_t dialogueColor);
|
|
void drawChapterTitle(const String& chapter, uint16_t wpm);
|
|
void drawTheEnd(uint16_t wpm);
|
|
void drawMenu(uint8_t selectedOption);
|
|
void drawColorsMenu(uint8_t selectedOption, uint8_t textColor,
|
|
uint8_t dialogueColor);
|
|
void drawColorPicker(bool dialogueSetting, uint8_t selectedColor,
|
|
uint16_t textColor, uint16_t dialogueColor);
|
|
void drawPicker(const String& title, const String& value);
|
|
void drawFontStylePicker(uint8_t style, uint8_t size);
|
|
void drawFontSizePicker(uint8_t style, uint8_t size);
|
|
void setBrightness(uint8_t level);
|
|
void setPreferredBrightness(uint8_t level);
|
|
void setFont(uint8_t style, uint8_t size);
|
|
void displayOff();
|
|
void displayOn();
|
|
|
|
private:
|
|
struct DrawBounds {
|
|
int16_t x = 0;
|
|
int16_t y = 0;
|
|
int16_t width = 0;
|
|
int16_t height = 0;
|
|
bool valid = false;
|
|
};
|
|
|
|
int batteryPercent() const;
|
|
void setLandscape();
|
|
void setReaderFont(uint8_t style, uint8_t size, uint8_t styleFlags = 0);
|
|
void setUiFont(uint8_t style);
|
|
void drawStatus(uint16_t wpm);
|
|
void drawFooter();
|
|
String ellipsize(const String& text, int16_t maximumWidth) const;
|
|
|
|
TFT_eSPI* display_ = nullptr;
|
|
uint8_t brightness_ = 0;
|
|
uint8_t preferredBrightness_ = 5;
|
|
uint8_t fontStyle_ = 0;
|
|
uint8_t fontSize_ = 20;
|
|
uint16_t textColor_ = 0xFFFF;
|
|
uint16_t dialogueColor_ = 0xB596;
|
|
bool landscape_ = false;
|
|
bool powerMonitorAvailable_ = false;
|
|
bool statusDrawn_ = false;
|
|
bool footerDrawn_ = false;
|
|
uint16_t displayedWpm_ = 0;
|
|
uint8_t displayedProgressPercent_ = 255;
|
|
uint32_t lastStatusUpdateMs_ = 0;
|
|
String bookTitle_;
|
|
String chapterTitle_;
|
|
String displayedChapterTitle_;
|
|
uint32_t wordCount_ = 0;
|
|
uint32_t displayedWordCount_ = 0;
|
|
uint8_t progressPercent_ = 0;
|
|
DrawBounds previousWordBounds_;
|
|
};
|