86 lines
2.4 KiB
C++
86 lines
2.4 KiB
C++
#ifndef __metrics
|
|
#define __metrics
|
|
|
|
#include <stdint.h>
|
|
//#include "fonts/FreeSansBold18pt7b.trimmed.h"
|
|
|
|
class Metrics
|
|
{
|
|
public:
|
|
/*
|
|
|
|
Small font
|
|
Uses the built-in Adafruit GFX 5x8 font.
|
|
|
|
*/
|
|
static constexpr const GFXfont* SmallFont = nullptr;
|
|
static const uint8_t SmallFontTextSize = 1;
|
|
|
|
static const uint16_t SmallFontBaseline = 0;
|
|
static const uint16_t SmallFontHeight = 8;
|
|
static const uint16_t SmallFontMaxHeight = Metrics::SmallFontHeight;
|
|
|
|
|
|
/*
|
|
|
|
Large font
|
|
Originally used a trimmed version of the FreeSansBold 18pt font.
|
|
Unfortunately due to program size constraints (I already ordered
|
|
PCBs based on the ATMega328P) I'll use a scaled version of the
|
|
built-in font for now.
|
|
*/
|
|
static constexpr const GFXfont* LargeFont = nullptr;//&FreeSansBold18pt7bTrimmed;
|
|
static const uint8_t LargeFontTextSize = 3;
|
|
|
|
//static const uint16_t LargeFontBaseline = 25;
|
|
//static const uint16_t LargeFontHeight = Metrics::LargeFontBaseline;
|
|
//static const uint16_t LargeFontMaxHeight = 42;
|
|
|
|
static const uint16_t LargeFontBaseline = 0;
|
|
static const uint16_t LargeFontHeight = 24;
|
|
static const uint16_t LargeFontMaxHeight = 24;
|
|
|
|
|
|
/*
|
|
|
|
Text line
|
|
Defines the height of a standard line of text including margins.
|
|
Suitable for applying a background color.
|
|
|
|
*/
|
|
static const uint16_t LargeTextLineMargin = 7;
|
|
static const uint16_t LargeTextLineYOffset = Metrics::LargeFontBaseline + Metrics::LargeTextLineMargin;
|
|
static const uint16_t LargeTextLineHeight = (Metrics::LargeFontHeight + (2 * Metrics::LargeTextLineMargin));
|
|
|
|
static const uint16_t SmallTextLineMargin = 7;
|
|
static const uint16_t SmallTextLineHeight = (Metrics::SmallFontHeight + (2 * Metrics::SmallTextLineMargin));
|
|
|
|
|
|
/*
|
|
|
|
Arrows
|
|
|
|
*/
|
|
static const uint16_t HArrowWidth = 10;
|
|
static const uint16_t HArrowHeight = 20;
|
|
|
|
static const uint16_t VArrowWidth = Metrics::HArrowHeight;
|
|
static const uint16_t VArrowHeight = Metrics::HArrowWidth;
|
|
|
|
static const uint16_t ArrowMargin = 8;
|
|
|
|
static const uint16_t LargeTextLineHArrowYOffset = (Metrics::LargeTextLineHeight - Metrics::HArrowHeight) / 2;
|
|
static const uint16_t LargeTextLineVArrowYOffset = (Metrics::LargeTextLineHeight - Metrics::VArrowHeight) / 2;
|
|
|
|
|
|
|
|
/*
|
|
|
|
Screen layout
|
|
Shared amongst screens for a consistent layout
|
|
|
|
*/
|
|
static const uint16_t MiddleLargeTextLineY = 100;
|
|
};
|
|
|
|
#endif |