mirror of
https://github.com/alexhopeoconnor/firmware.git
synced 2026-10-16 16:41:33 +10:00
45 corrections in c++ source comments limited to 27 files in src/gps src/graphics src/input
67 lines
1.9 KiB
C++
67 lines
1.9 KiB
C++
#ifdef MESHTASTIC_INCLUDE_INKHUD
|
|
|
|
/*
|
|
|
|
System Applet to render an on-screen keyboard
|
|
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "configuration.h"
|
|
#include "graphics/niche/InkHUD/InkHUD.h"
|
|
#include "graphics/niche/InkHUD/SystemApplet.h"
|
|
#include <string>
|
|
namespace NicheGraphics::InkHUD
|
|
{
|
|
|
|
class KeyboardApplet : public SystemApplet
|
|
{
|
|
public:
|
|
KeyboardApplet();
|
|
|
|
void onRender(bool full) override;
|
|
void onForeground() override;
|
|
void onBackground() override;
|
|
void onButtonShortPress() override;
|
|
void onButtonLongPress() override;
|
|
void onExitShort() override;
|
|
void onExitLong() override;
|
|
void onNavUp() override;
|
|
void onNavDown() override;
|
|
void onNavLeft() override;
|
|
void onNavRight() override;
|
|
|
|
static uint16_t getKeyboardHeight(); // used to set the keyboard tile height
|
|
|
|
private:
|
|
void drawKeyLabel(uint16_t left, uint16_t top, uint16_t width, char key, Color color);
|
|
|
|
static const uint8_t KBD_COLS = 11;
|
|
static const uint8_t KBD_ROWS = 4;
|
|
|
|
const char keys[KBD_COLS * KBD_ROWS] = {
|
|
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '\b', // row 0
|
|
'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '\n', // row 1
|
|
'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', '!', ' ', // row 2
|
|
'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '?', '\x1b' // row 3
|
|
};
|
|
|
|
// This array represents the widths of each key in points
|
|
// 16 pt = line height of the text
|
|
const uint16_t keyWidths[KBD_COLS * KBD_ROWS] = {
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 24, // row 0
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 24, // row 1
|
|
16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 24, // row 2
|
|
16, 16, 16, 16, 16, 16, 16, 10, 10, 12, 40 // row 3
|
|
};
|
|
|
|
uint16_t rowWidths[KBD_ROWS];
|
|
uint8_t selectedKey = 0; // selected key index
|
|
uint8_t prevSelectedKey = 0;
|
|
};
|
|
|
|
} // namespace NicheGraphics::InkHUD
|
|
|
|
#endif
|