From 49ef4d6075cbfed9bdfe4035785645e1967fb7d4 Mon Sep 17 00:00:00 2001 From: Alex <15167344+frostmorn@users.noreply.github.com> Date: Sun, 26 Apr 2026 09:37:47 +0300 Subject: [PATCH 1/2] Speedify string calls to ui via utilizing pass by link. Allow defining ui components without preset params --- lib/lilka/src/lilka/alert.cpp | 6 ++--- lib/lilka/src/lilka/inputdialog.cpp | 8 ++++-- lib/lilka/src/lilka/menu.cpp | 8 +++--- lib/lilka/src/lilka/progressdialog.cpp | 8 ++++-- lib/lilka/src/lilka/ui.h | 34 +++++++++++++++++--------- 5 files changed, 41 insertions(+), 23 deletions(-) diff --git a/lib/lilka/src/lilka/alert.cpp b/lib/lilka/src/lilka/alert.cpp index b468039..cd610cd 100644 --- a/lib/lilka/src/lilka/alert.cpp +++ b/lib/lilka/src/lilka/alert.cpp @@ -2,7 +2,7 @@ namespace lilka { -Alert::Alert(String title, String message) { +Alert::Alert(const String& title, const String& message) { this->title = title; this->message = message; this->done = false; @@ -10,11 +10,11 @@ Alert::Alert(String title, String message) { activationButtons.push_back(Button::A); } -void Alert::setTitle(String title) { +void Alert::setTitle(const String& title) { this->title = title; } -void Alert::setMessage(String message) { +void Alert::setMessage(const String& message) { this->message = message; } diff --git a/lib/lilka/src/lilka/inputdialog.cpp b/lib/lilka/src/lilka/inputdialog.cpp index c50b2af..5610bf9 100644 --- a/lib/lilka/src/lilka/inputdialog.cpp +++ b/lib/lilka/src/lilka/inputdialog.cpp @@ -67,7 +67,7 @@ const int16_t keyboard[LILKA_KB_LAYERS * LILKA_KB_LANGS][LILKA_KB_ROWS * LILKA_K }; /* clang-format on */ -InputDialog::InputDialog(String title) { +InputDialog::InputDialog(const String& title) { this->title = title; this->masked = false; @@ -87,7 +87,11 @@ void InputDialog::setMasked(bool masked) { this->masked = masked; } -void InputDialog::setValue(String value) { +void InputDialog::setTitle(const String& title) { + this->title = title; +} + +void InputDialog::setValue(const String& value) { this->value = value; } diff --git a/lib/lilka/src/lilka/menu.cpp b/lib/lilka/src/lilka/menu.cpp index 7518518..10ec13c 100644 --- a/lib/lilka/src/lilka/menu.cpp +++ b/lib/lilka/src/lilka/menu.cpp @@ -6,7 +6,7 @@ namespace lilka { #define MIN(a, b) ((a) < (b) ? (a) : (b)) -Menu::Menu(String title) { +Menu::Menu(const String& title) { this->title = title; this->scroll = 0; this->setCursor(0); @@ -23,11 +23,11 @@ Menu::~Menu() { delete iconImage; delete iconCanvas; } -void Menu::setTitle(String title) { +void Menu::setTitle(const String& title) { this->title = title; } void Menu::addItem( - String title, const menu_icon_t* icon, uint16_t color, String postfix, PMenuItemCallback callback, + const String& title, const menu_icon_t* icon, uint16_t color, const String& postfix, PMenuItemCallback callback, void* callbackData ) { items.push_back( @@ -308,7 +308,7 @@ void Menu::setBackgroundColor(uint16_t color) { this->bgColor = color; } -bool Menu::setItem(int16_t index, String title, const menu_icon_t* icon, uint16_t color, String postfix) { +bool Menu::setItem(int16_t index, const String& title, const menu_icon_t* icon, uint16_t color, const String& postfix) { if (index > items.size() - 1) { return false; } else { diff --git a/lib/lilka/src/lilka/progressdialog.cpp b/lib/lilka/src/lilka/progressdialog.cpp index b03fbcb..2280150 100644 --- a/lib/lilka/src/lilka/progressdialog.cpp +++ b/lib/lilka/src/lilka/progressdialog.cpp @@ -10,7 +10,7 @@ namespace lilka { -ProgressDialog::ProgressDialog(String title, String message) { +ProgressDialog::ProgressDialog(const String& title, const String& message) { this->title = title; this->message = message; this->progress = 0; @@ -20,7 +20,11 @@ void ProgressDialog::setProgress(int16_t progress) { this->progress = progress; } -void ProgressDialog::setMessage(String message) { +void ProgressDialog::setTitle(const String& title) { + this->title = title; +} + +void ProgressDialog::setMessage(const String& message) { this->message = message; } diff --git a/lib/lilka/src/lilka/ui.h b/lib/lilka/src/lilka/ui.h index e54adf7..aefd76b 100644 --- a/lib/lilka/src/lilka/ui.h +++ b/lib/lilka/src/lilka/ui.h @@ -57,14 +57,14 @@ class Menu { /// Конструктор класу. /// /// @param title Заголовок меню. - explicit Menu(String title = "Меню"); + explicit Menu(const String& title = "Меню"); ~Menu(); /// Встановити новий заголовок меню /// /// @param title Заголовок меню. - void setTitle(String title); + void setTitle(const String& title); /// Додати пункт до меню. /// @@ -75,8 +75,8 @@ class Menu { /// @param callback Вказівник на функцію яку буде викликано при закритті меню. /// @param callbackData Дані які буде передано в callback функцію void addItem( - String title, const menu_icon_t* icon = 0, uint16_t color = lilka::colors::White, String postfix = "", - PMenuItemCallback callback = NULL, void* callbackData = NULL + const String& title, const menu_icon_t* icon = 0, uint16_t color = lilka::colors::White, + const String& postfix = "", PMenuItemCallback callback = NULL, void* callbackData = NULL ); /// Встановити курсор на пункт меню. @@ -121,7 +121,9 @@ class Menu { /// @param postfix Текст, який додається після заголовка пункту і вирівнюється до правого краю меню. /// /// Повертає значення true, якщо пункт було змінено - bool setItem(int16_t index, String title, const menu_icon_t* icon = 0, uint16_t color = 0, String postfix = ""); + bool setItem( + int16_t index, const String& title, const menu_icon_t* icon = 0, uint16_t color = 0, const String& postfix = "" + ); /// Отримати пункт меню /// @param index Індекс пункту. /// @param menuItem Вказівник на lilka::MenuItem куди буде скопійовано пункт @@ -191,13 +193,13 @@ class Alert { /// /// @param title Заголовок сповіщення. /// @param message Повідомлення сповіщення. - Alert(String title, String message); + Alert(const String& title = "", const String& message = ""); /// Змінити заголовок сповіщення. /// @param title Новий заголовок сповіщення. - void setTitle(String title); + void setTitle(const String& title); /// Змінити повідомлення сповіщення. /// @param message Нове повідомлення сповіщення. - void setMessage(String message); + void setMessage(const String& message); /// Оновити стан сповіщення. /// /// Цю функцію потрібно викликати, щоб сповіщення опрацювало вхідні дані від користувача та оновило свій стан. @@ -267,14 +269,18 @@ class ProgressDialog { /// /// @param title Заголовок індикатора виконання. /// @param message Повідомлення індикатора виконання. - ProgressDialog(String title, String message); + ProgressDialog(const String& title = "", const String& message = ""); /// Встановити прогрес виконання. /// /// @param progress Прогрес виконання від 0 до 100. void setProgress(int16_t progress); + /// Встановити новий заголовок індикатора виконання + /// + /// @param title Заголовок індикатора виконання + void setTitle(const String& title); /// Встановити повідомлення. /// @param message Повідомлення. - void setMessage(String message); + void setMessage(const String& message); /// Намалювати індикатор виконання на Display або Canvas. /// @param canvas Вказівник на Display або Canvas, на якому потрібно намалювати індикатор виконання. /// @@ -315,13 +321,17 @@ class InputDialog { /// Конструктор класу. /// /// @param title Заголовок діалогового вікна введення. - explicit InputDialog(String title); + explicit InputDialog(const String& title = ""); /// Встановити маскування введеного тексту. Якщо встановлено `true`, введений текст буде відображатися як зірочки. /// @param masked Чи маскувати введений текст. void setMasked(bool masked); + /// Встановити новий заголовок діалогового вікна введення + /// + /// @param title Заголовок діалогового вікна введення + void setTitle(const String& title); /// Встановити початкове значення введеного тексту. /// @param value Текст. - void setValue(String value); + void setValue(const String& value); /// Оновити стан діалогового вікна введення. /// /// Цю функцію потрібно викликати, щоб діалогове вікно введення опрацювало вхідні дані від користувача та оновило свій стан. From 085f24b4e1eb151647e9b26fc6e28f23777376c4 Mon Sep 17 00:00:00 2001 From: Alex <15167344+frostmorn@users.noreply.github.com> Date: Sun, 26 Apr 2026 09:41:04 +0300 Subject: [PATCH 2/2] cppcheck --- lib/lilka/src/lilka/ui.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/lilka/src/lilka/ui.h b/lib/lilka/src/lilka/ui.h index aefd76b..16ee475 100644 --- a/lib/lilka/src/lilka/ui.h +++ b/lib/lilka/src/lilka/ui.h @@ -193,7 +193,7 @@ class Alert { /// /// @param title Заголовок сповіщення. /// @param message Повідомлення сповіщення. - Alert(const String& title = "", const String& message = ""); + explicit Alert(const String& title = "", const String& message = ""); /// Змінити заголовок сповіщення. /// @param title Новий заголовок сповіщення. void setTitle(const String& title); @@ -269,7 +269,7 @@ class ProgressDialog { /// /// @param title Заголовок індикатора виконання. /// @param message Повідомлення індикатора виконання. - ProgressDialog(const String& title = "", const String& message = ""); + explicit ProgressDialog(const String& title = "", const String& message = ""); /// Встановити прогрес виконання. /// /// @param progress Прогрес виконання від 0 до 100.