From 7cda61ca017a74314508a9bd6fbf522244cfcb08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20G=C3=B6ttgens?= Date: Thu, 6 Oct 2022 22:34:55 +0200 Subject: [PATCH] - preliminary work for node selection - show sending screen on immediate click --- src/modules/CannedMessageModule.cpp | 14 ++++++++++---- src/modules/CannedMessageModule.h | 4 +++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/modules/CannedMessageModule.cpp b/src/modules/CannedMessageModule.cpp index 1df8d2604..51f196ca1 100644 --- a/src/modules/CannedMessageModule.cpp +++ b/src/modules/CannedMessageModule.cpp @@ -235,12 +235,11 @@ int32_t CannedMessageModule::runOnce() } else if (this->runState == CANNED_MESSAGE_RUN_STATE_ACTION_SELECT) { if (this->payload == CANNED_MESSAGE_RUN_STATE_FREETEXT) { if (this->freetext.length() > 0) { - sendText(NODENUM_BROADCAST, this->freetext.c_str(), true); + sendText(this->dest, this->freetext.c_str(), true); this->runState = CANNED_MESSAGE_RUN_STATE_SENDING_ACTIVE; } else { DEBUG_MSG("Reset message is empty.\n"); this->runState = CANNED_MESSAGE_RUN_STATE_INACTIVE; - e.frameChanged = true; } } else { if ((this->messagesCount > this->currentMessageIndex) && (strlen(this->messages[this->currentMessageIndex]) > 0)) { @@ -249,9 +248,9 @@ int32_t CannedMessageModule::runOnce() } else { DEBUG_MSG("Reset message is empty.\n"); this->runState = CANNED_MESSAGE_RUN_STATE_INACTIVE; - e.frameChanged = true; } } + e.frameChanged = true; this->currentMessageIndex = -1; this->freetext = ""; // clear freetext this->cursor = 0; @@ -287,7 +286,7 @@ int32_t CannedMessageModule::runOnce() this->cursor++; } break; - case 8: // backspace + case 0x08: // backspace if (this->freetext.length() > 0) { if(this->cursor == this->freetext.length()) { this->freetext = this->freetext.substring(0, this->freetext.length() - 1); @@ -297,6 +296,13 @@ int32_t CannedMessageModule::runOnce() this->cursor--; } break; + case 0x09: // tab + if(this->destSelect) { + this->destSelect = false; + } else { + this->destSelect = true; + } + break; default: if(this->cursor == this->freetext.length()) { this->freetext += this->payload; diff --git a/src/modules/CannedMessageModule.h b/src/modules/CannedMessageModule.h index 784e40fc1..0de8fee1b 100644 --- a/src/modules/CannedMessageModule.h +++ b/src/modules/CannedMessageModule.h @@ -73,9 +73,11 @@ class CannedMessageModule : int currentMessageIndex = -1; cannedMessageModuleRunState runState = CANNED_MESSAGE_RUN_STATE_INACTIVE; - char payload; + char payload = 0x00; unsigned int cursor = 0; String freetext = ""; // Text Buffer for Freetext Editor + bool destSelect = false; // Freetext Editor Mode + NodeNum dest = NODENUM_BROADCAST; char messageStore[CANNED_MESSAGE_MODULE_MESSAGES_SIZE+1]; char *messages[CANNED_MESSAGE_MODULE_MESSAGE_MAX_COUNT];