#ifdef MESHTASTIC_INCLUDE_INKHUD

/*

Set of end-point actions for the Menu Applet

Added as menu entries in MenuApplet::showPage
Behaviors assigned in MenuApplet::execute

*/

#pragma once

#include "configuration.h"

namespace NicheGraphics::InkHUD
{

enum MenuAction {
    NO_ACTION,
    SEND_PING,
    FREE_TEXT,
    STORE_CANNEDMESSAGE_SELECTION,
    SEND_CANNEDMESSAGE,
    SHUTDOWN,
    NEXT_TILE,
    TOGGLE_BACKLIGHT,
    TOGGLE_GPS,
    TOGGLE_SMART_POSITION,
    SET_POSITION_BROADCAST_INTERVAL,
    SET_SMART_BROADCAST_INTERVAL,
    SET_SMART_BROADCAST_DISTANCE,
    SET_GPS_UPDATE_INTERVAL,
    ENABLE_BLUETOOTH,
    TOGGLE_APPLET,
    TOGGLE_AUTOSHOW_APPLET,
    SET_RECENTS,
    ROTATE,
    ALIGN_JOYSTICK,
    LAYOUT,
    TOGGLE_BATTERY_ICON,
    TOGGLE_NOTIFICATIONS,
    TOGGLE_INVERT_COLOR,
    TOGGLE_12H_CLOCK,
    // Regions
    SET_REGION_US,
    SET_REGION_EU_868,
    SET_REGION_EU_433,
    SET_REGION_CN,
    SET_REGION_JP,
    SET_REGION_ANZ,
    SET_REGION_KR,
    SET_REGION_TW,
    SET_REGION_RU,
    SET_REGION_IN,
    SET_REGION_NZ_865,
    SET_REGION_TH,
    SET_REGION_LORA_24,
    SET_REGION_UA_433,
    SET_REGION_MY_433,
    SET_REGION_MY_919,
    SET_REGION_SG_923,
    SET_REGION_PH_433,
    SET_REGION_PH_868,
    SET_REGION_PH_915,
    SET_REGION_ANZ_433,
    SET_REGION_KZ_433,
    SET_REGION_KZ_863,
    SET_REGION_NP_865,
    SET_REGION_BR_902,
    SET_REGION_EU_866,
    SET_REGION_NARROW_868,
    SET_REGION_ITU1_2M,
    SET_REGION_ITU2_2M,
    SET_REGION_ITU3_2M,
    SET_REGION_ITU2_125CM,
    SET_REGION_ITU1_70CM,
    SET_REGION_ITU2_70CM,
    SET_REGION_ITU3_70CM,
    // Device Roles
    SET_ROLE_CLIENT,
    SET_ROLE_CLIENT_MUTE,
    SET_ROLE_ROUTER,
    SET_ROLE_REPEATER,
    // Presets
    SET_PRESET_LONG_SLOW,
    SET_PRESET_LONG_MODERATE,
    SET_PRESET_LONG_FAST,
    SET_PRESET_MEDIUM_SLOW,
    SET_PRESET_MEDIUM_FAST,
    SET_PRESET_SHORT_SLOW,
    SET_PRESET_SHORT_FAST,
    SET_PRESET_SHORT_TURBO,
    SET_PRESET_LITE_SLOW,
    SET_PRESET_LITE_FAST,
    SET_PRESET_NARROW_SLOW,
    SET_PRESET_NARROW_FAST,
    SET_PRESET_TINY_SLOW,
    SET_PRESET_TINY_FAST,
    SET_PRESET_FROM_REGION, // Dynamic: preset chosen from region-available list
    // Timezones
    SET_TZ_US_HAWAII,
    SET_TZ_US_ALASKA,
    SET_TZ_US_PACIFIC,
    SET_TZ_US_ARIZONA,
    SET_TZ_US_MOUNTAIN,
    SET_TZ_US_CENTRAL,
    SET_TZ_US_EASTERN,
    SET_TZ_BR_BRAZILIA,
    SET_TZ_UTC,
    SET_TZ_EU_WESTERN,
    SET_TZ_EU_CENTRAL,
    SET_TZ_EU_EASTERN,
    SET_TZ_ASIA_KOLKATA,
    SET_TZ_ASIA_HONG_KONG,
    SET_TZ_AU_AWST,
    SET_TZ_AU_ACST,
    SET_TZ_AU_AEST,
    SET_TZ_PACIFIC_NZ,
    // Power
    TOGGLE_POWER_SAVE,
    CALIBRATE_ADC,
    // Bluetooth
    TOGGLE_BLUETOOTH,
    TOGGLE_BLUETOOTH_PAIR_MODE,
    // Channel
    TOGGLE_CHANNEL_UPLINK,
    TOGGLE_CHANNEL_DOWNLINK,
    TOGGLE_CHANNEL_POSITION,
    SET_CHANNEL_PRECISION,
    // Display
    SET_DISPLAY_TIMEOUT,
    TOGGLE_DISPLAY_UNITS,
    // Network
    TOGGLE_WIFI,
    // Administration
    RESET_NODEDB_ALL,
    RESET_NODEDB_KEEP_FAVORITES,
    WIPE_MESSAGES_ALL,
    // Map zoom (MapApplet and FavoritesMapApplet)
    MAP_ZOOM_IN,
    MAP_ZOOM_OUT,
    MAP_ZOOM_RESET,
};

} // namespace NicheGraphics::InkHUD

#endif
