Additional larger font for InkHUD UI (#7201)

* Add 12pt fonts

* Add fontMedium
In addition to fontSmall and fontLarge

* Set fonts in nicheGraphics.h

* Change all uses of fontLarge to fontMedium
fontLarge was previously set at 9pt. fontLarge is now 12pt, fontMedium is 9pt. (NB: fonts may be customized per-variant)

* Use fontLarge with "All Messages" and "DMs" applets

* Documentation
This commit is contained in:
todd-herbert
2025-07-03 12:18:34 +12:00
committed by GitHub
parent f99ac2104c
commit 1f85e2a02a
25 changed files with 1679 additions and 58 deletions

View File

@@ -15,7 +15,7 @@ InkHUD::LogoApplet::LogoApplet() : concurrency::OSThread("LogoApplet")
// This behavior assists manufacturers during mass production, and should not be modified without good reason
if (!settings->tips.safeShutdownSeen) {
meshtastic_NodeInfoLite *ourNode = nodeDB->getMeshNode(nodeDB->getNodeNum());
fontTitle = fontLarge;
fontTitle = fontMedium;
textLeft = xstr(APP_VERSION_SHORT);
textRight = parseShortName(ourNode);
textTitle = "Meshtastic";
@@ -116,7 +116,7 @@ void InkHUD::LogoApplet::onShutdown()
textLeft = "";
textRight = "";
textTitle = parseShortName(ourNode);
fontTitle = fontLarge;
fontTitle = fontMedium;
// This is then drawn by InkHUD::Events::onShutdown, with a blocking FULL update, after InkHUD's flash write is complete
}

View File

@@ -667,11 +667,11 @@ void InkHUD::MenuApplet::drawSystemInfoPanel(int16_t left, int16_t top, uint16_t
// ====================
std::string clockString = getTimeString();
if (clockString.length() > 0) {
setFont(fontLarge);
setFont(fontMedium);
printAt(width / 2, top, clockString, CENTER, TOP);
height += fontLarge.lineHeight();
height += fontLarge.lineHeight() * 0.1; // Padding below clock
height += fontMedium.lineHeight();
height += fontMedium.lineHeight() * 0.1; // Padding below clock
}
// Stats

View File

@@ -12,13 +12,13 @@ InkHUD::PairingApplet::PairingApplet()
void InkHUD::PairingApplet::onRender()
{
// Header
setFont(fontLarge);
setFont(fontMedium);
printAt(X(0.5), Y(0.25), "Bluetooth", CENTER, BOTTOM);
setFont(fontSmall);
printAt(X(0.5), Y(0.25), "Enter this code", CENTER, TOP);
// Passkey
setFont(fontLarge);
setFont(fontMedium);
printThick(X(0.5), Y(0.5), passkey.substr(0, 3) + " " + passkey.substr(3), 3, 2);
// Device's bluetooth name, if it will fit

View File

@@ -50,11 +50,11 @@ void InkHUD::TipsApplet::onRender()
break;
case Tip::FINISH_SETUP: {
setFont(fontLarge);
setFont(fontMedium);
printAt(0, 0, "Tip: Finish Setup");
setFont(fontSmall);
int16_t cursorY = fontLarge.lineHeight() * 1.5;
int16_t cursorY = fontMedium.lineHeight() * 1.5;
printAt(0, cursorY, "- connect antenna");
cursorY += fontSmall.lineHeight() * 1.2;
@@ -80,7 +80,7 @@ void InkHUD::TipsApplet::onRender()
} break;
case Tip::SAFE_SHUTDOWN: {
setFont(fontLarge);
setFont(fontMedium);
printAt(0, 0, "Tip: Shutdown");
setFont(fontSmall);
@@ -88,29 +88,29 @@ void InkHUD::TipsApplet::onRender()
shutdown += "Before removing power, please shut down from InkHUD menu, or a client app. \n";
shutdown += "\n";
shutdown += "This ensures data is saved.";
printWrapped(0, fontLarge.lineHeight() * 1.5, width(), shutdown);
printWrapped(0, fontMedium.lineHeight() * 1.5, width(), shutdown);
printAt(0, Y(1.0), "Press button to continue", LEFT, BOTTOM);
} break;
case Tip::CUSTOMIZATION: {
setFont(fontLarge);
setFont(fontMedium);
printAt(0, 0, "Tip: Customization");
setFont(fontSmall);
printWrapped(0, fontLarge.lineHeight() * 1.5, width(),
printWrapped(0, fontMedium.lineHeight() * 1.5, width(),
"Configure & control display with the InkHUD menu. Optional features, layout, rotation, and more.");
printAt(0, Y(1.0), "Press button to continue", LEFT, BOTTOM);
} break;
case Tip::BUTTONS: {
setFont(fontLarge);
setFont(fontMedium);
printAt(0, 0, "Tip: Buttons");
setFont(fontSmall);
int16_t cursorY = fontLarge.lineHeight() * 1.5;
int16_t cursorY = fontMedium.lineHeight() * 1.5;
printAt(0, cursorY, "User Button");
cursorY += fontSmall.lineHeight() * 1.2;
@@ -123,11 +123,11 @@ void InkHUD::TipsApplet::onRender()
} break;
case Tip::ROTATION: {
setFont(fontLarge);
setFont(fontMedium);
printAt(0, 0, "Tip: Rotation");
setFont(fontSmall);
printWrapped(0, fontLarge.lineHeight() * 1.5, width(),
printWrapped(0, fontMedium.lineHeight() * 1.5, width(),
"To rotate the display, use the InkHUD menu. Long-press the user button > Options > Rotate.");
printAt(0, Y(1.0), "Press button to continue", LEFT, BOTTOM);
@@ -155,7 +155,7 @@ void InkHUD::TipsApplet::renderWelcome()
uint16_t logoH = getLogoHeight(logoWLimit, logoHLimit);
// Title size
setFont(fontLarge);
setFont(fontMedium);
std::string title;
if (width() >= 200) // Future proofing: hide if *tiny* display
title = "meshtastic.org";