DeskControl/src/include/metrics.h

79 lines
2.0 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 uint16_t SmallFontBaseline = 0;
static const uint16_t SmallFontHeight = 8;
static const uint16_t SmallFontMaxHeight = Metrics::SmallFontHeight;
/*
Large font
Uses a trimmed version of the FreeSansBold 18pt font.
*/
static constexpr const GFXfont* LargeFont = &FreeSansBold18pt7bTrimmed;
static const uint16_t LargeFontBaseline = 25;
static const uint16_t LargeFontHeight = Metrics::LargeFontBaseline;
static const uint16_t LargeFontMaxHeight = 42;
/*
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