send screen names to ESP Insights

Signed-off-by: Peter Siegmund <developer@mars3142.org>
This commit is contained in:
2025-12-27 00:11:21 +01:00
parent 9e9fb15f86
commit 5d78572481
18 changed files with 103 additions and 23 deletions

View File

@@ -24,6 +24,7 @@ class ClockScreenSaver final : public Widget
void Update(uint64_t dt) override;
void Render() override;
void OnButtonClicked(ButtonType button) override;
const char *getName() const override;
private:
static constexpr int MOVE_INTERVAL = 50; // milliseconds between movements

View File

@@ -7,6 +7,8 @@ class ExternalDevices final : public Menu
public:
explicit ExternalDevices(menu_options_t *options);
const char *getName() const override;
private:
void onButtonPressed(const MenuItem &menuItem, ButtonType button) override;
menu_options_t *m_options;

View File

@@ -80,6 +80,8 @@ class LightMenu final : public Menu
*/
explicit LightMenu(menu_options_t *options);
const char *getName() const override;
private:
/**
* @brief Handles button press events specific to light control menu items

View File

@@ -57,6 +57,8 @@ class MainMenu final : public Menu
*/
explicit MainMenu(menu_options_t *options);
const char *getName() const override;
private:
/**
* @brief Handles button press events specific to main menu items

View File

@@ -26,6 +26,7 @@ class ScreenSaver final : public Widget
void Update(uint64_t dt) override;
void Render() override;
void OnButtonClicked(ButtonType button) override;
const char *getName() const override;
private:
/**

View File

@@ -20,40 +20,40 @@
* interface for the application. It allows users to configure various aspects
* of the system including display preferences, system behavior, network
* settings, and other configurable parameters.
*
*
* The SettingsMenu class extends the base Menu functionality by:
* - Providing settings-specific menu items (toggles, selections, number inputs)
* - Managing configuration persistence and validation
* - Organizing settings into logical categories and sections
* - Implementing real-time preview of setting changes where applicable
*
*
* Typical settings categories include:
* - Display settings (brightness, contrast, theme)
* - System preferences (timeouts, auto-save, etc.)
* - Network configuration (if applicable)
* - User interface preferences
* - Hardware-specific parameters
*
*
* @note This class is marked as final and cannot be inherited from.
* @note Settings changes are typically applied immediately or after confirmation,
* depending on the specific setting type and system requirements.
*
*
* @see Menu for base menu functionality
* @see menu_options_t for configuration structure
* @see MainMenu for navigation back to main interface
*/
class SettingsMenu final : public Menu
{
public:
public:
/**
* @brief Constructs the settings menu with the specified configuration
* @param options Pointer to menu options configuration structure
*
*
* @pre options must not be nullptr and must remain valid for the menu's lifetime
* @pre options->u8g2 must be initialized and ready for graphics operations
* @pre All callback functions in options must be properly configured
* @post SettingsMenu is initialized with all available configuration options and ready for use
*
*
* @details The constructor initializes the settings menu by creating all the
* configuration menu items based on the current system state and
* available options. This includes:
@@ -61,17 +61,19 @@ public:
* - Creating appropriate menu items (toggles, selections, number inputs)
* - Setting up validation ranges and allowed values
* - Organizing items in a logical, user-friendly order
*
*
* The menu automatically detects which settings are available based on
* hardware capabilities and system configuration, ensuring only relevant
* options are presented to the user.
*
*
* @note The menu does not take ownership of the options structure and assumes
* it remains valid throughout the menu's lifetime.
* @note Setting values are loaded from persistent storage during construction
* and changes are typically saved automatically or on confirmation.
*
*
* @see Menu::Menu for base class construction details
*/
explicit SettingsMenu(menu_options_t *options);
const char *getName() const override;
};

View File

@@ -151,6 +151,8 @@ class SplashScreen final : public Widget
*/
void Render() override;
const char *getName() const override;
private:
/**
* @brief Pointer to menu options configuration structure