DeskControl/src/include/metrics.h

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