Implement getTextWidth for display classes

- Added getTextWidth method to DisplayDriver interface
- Implemented getTextWidth in all display classes
- Updated examples to use getTextWidth directly
This commit is contained in:
JQ 2025-05-04 18:17:18 -07:00
parent e442e94e3d
commit 678f36a57b
10 changed files with 32 additions and 8 deletions

View file

@ -144,7 +144,7 @@ void UITask::renderCurrScreen() {
// version info
_display->setColor(DisplayDriver::LIGHT);
_display->setTextSize(1);
int textWidth = strlen(_version_info) * 5; // Assuming each character is 5 pixels wide
uint16_t textWidth = _display->getTextWidth(_version_info);
_display->setCursor((_display->width() - textWidth) / 2, 22);
_display->print(_version_info);
} else { // home screen

View file

@ -51,14 +51,14 @@ void UITask::renderCurrScreen() {
// version info
_display->setColor(DisplayDriver::LIGHT);
_display->setTextSize(1);
int versionWidth = strlen(_version_info) * 6;
uint16_t versionWidth = _display->getTextWidth(_version_info);
_display->setCursor((_display->width() - versionWidth) / 2, 22);
_display->print(_version_info);
// node type
const char* node_type = "< Repeater >";
int nodeTypeWidth = strlen(node_type) * 6;
_display->setCursor((_display->width() - nodeTypeWidth) / 2, 35);
uint16_t typeWidth = _display->getTextWidth(node_type);
_display->setCursor((_display->width() - typeWidth) / 2, 35);
_display->print(node_type);
} else { // home screen
// node name

View file

@ -51,14 +51,14 @@ void UITask::renderCurrScreen() {
// version info
_display->setColor(DisplayDriver::LIGHT);
_display->setTextSize(1);
int versionWidth = strlen(_version_info) * 6;
uint16_t versionWidth = _display->getTextWidth(_version_info);
_display->setCursor((_display->width() - versionWidth) / 2, 22);
_display->print(_version_info);
// node type
const char* node_type = "< Room Server >";
int nodeTypeWidth = strlen(node_type) * 6;
_display->setCursor((_display->width() - nodeTypeWidth) / 2, 35);
const char* node_type = "< Repeater >";
uint16_t typeWidth = _display->getTextWidth(node_type);
_display->setCursor((_display->width() - typeWidth) / 2, 35);
_display->print(node_type);
} else { // home screen
// node name