|
|
@@ -1,5 +1,79 @@
|
|
|
#include "MenuFunctions.h"
|
|
|
-
|
|
|
+//#include "icons.h"
|
|
|
+
|
|
|
+PROGMEM const unsigned char menu_icons[][66] = {
|
|
|
+ {0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x37, 0xFF, 0xFF, 0x3A, // Attack: 0
|
|
|
+ 0xFF, 0xFF, 0x39, 0xFF, 0xBF, 0x3C, 0xFF, 0x7F, 0x3E, 0xFF, 0x2F, 0x3F,
|
|
|
+ 0xFF, 0x9F, 0x3F, 0xFF, 0xCB, 0x3F, 0xFF, 0xE7, 0x3F, 0xCF, 0xF2, 0x3F,
|
|
|
+ 0xDF, 0xF9, 0x3F, 0xBF, 0xFC, 0x3F, 0x3F, 0xFF, 0x3F, 0x7F, 0xFE, 0x3F,
|
|
|
+ 0xDF, 0xF9, 0x3F, 0xCF, 0xFB, 0x3F, 0xE7, 0xFF, 0x3F, 0xF3, 0xFF, 0x3F,
|
|
|
+ 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F},
|
|
|
+ {0xBF, 0xDD, 0x3E, 0xDF, 0xBE, 0x3D, 0x5F, 0x6B, 0x3D, 0x5F, 0x5D, 0x3D, // Beacon sniff: 1
|
|
|
+ 0x5F, 0x55, 0x3D, 0xFF, 0xF7, 0x3F, 0xFF, 0xF7, 0x3F, 0xFF, 0xEB, 0x3F,
|
|
|
+ 0xFF, 0xEB, 0x3F, 0xFF, 0xEB, 0x3F, 0xFF, 0xDD, 0x3F, 0xFF, 0xD5, 0x3F,
|
|
|
+ 0xFF, 0xC9, 0x3F, 0xFF, 0xDD, 0x3F, 0xFF, 0xC9, 0x3F, 0xFF, 0xB6, 0x3F,
|
|
|
+ 0xFF, 0xAA, 0x3F, 0xFF, 0x9C, 0x3F, 0xFF, 0xAA, 0x3F, 0x7F, 0x77, 0x3F,
|
|
|
+ 0x7F, 0x49, 0x3F, 0x7F, 0x3E, 0x3F},
|
|
|
+ {0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFB, 0x3F, // Bluetooth: 2
|
|
|
+ 0xFF, 0xF3, 0x3F, 0xFF, 0xEB, 0x3F, 0xFF, 0xDB, 0x3F, 0x7F, 0xBB, 0x3F,
|
|
|
+ 0xFF, 0xDA, 0x3F, 0xFF, 0xE9, 0x3F, 0xFF, 0xF3, 0x3F, 0xFF, 0xF3, 0x3F,
|
|
|
+ 0xFF, 0xE9, 0x3F, 0xFF, 0xDA, 0x3F, 0x7F, 0xBB, 0x3F, 0xFF, 0xDB, 0x3F,
|
|
|
+ 0xFF, 0xEB, 0x3F, 0xFF, 0xF3, 0x3F, 0xFF, 0xFB, 0x3F, 0xFF, 0xFF, 0x3F,
|
|
|
+ 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F},
|
|
|
+ {0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xCF, 0xFB, 0x3F, // Bluetooth Sniff: 3
|
|
|
+ 0xF7, 0xF9, 0x3F, 0xDB, 0xFA, 0x3F, 0x6B, 0xFB, 0x3F, 0xAB, 0xDB, 0x3F,
|
|
|
+ 0x6B, 0xEB, 0x3F, 0xDB, 0xF2, 0x3F, 0xF7, 0x79, 0x3E, 0xCF, 0xF3, 0x3D,
|
|
|
+ 0xFF, 0x69, 0x3B, 0xFF, 0xDA, 0x3A, 0x7F, 0xBB, 0x3A, 0xFF, 0xDB, 0x3A,
|
|
|
+ 0xFF, 0x6B, 0x3B, 0xFF, 0xF3, 0x3D, 0xFF, 0x7B, 0x3E, 0xFF, 0xFF, 0x3F,
|
|
|
+ 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F},
|
|
|
+ {0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xE1, 0x3F, 0x7F, 0x80, 0x3F, // Deauth sniff: 4
|
|
|
+ 0x3F, 0x00, 0x3F, 0x1F, 0x00, 0x3E, 0x1F, 0x00, 0x3E, 0x1F, 0x00, 0x3E,
|
|
|
+ 0x1F, 0x00, 0x3E, 0x9F, 0x73, 0x3E, 0xDF, 0xF3, 0x3E, 0x9F, 0x65, 0x3E,
|
|
|
+ 0x1F, 0x0C, 0x3E, 0x3F, 0x0C, 0x3F, 0x3F, 0x00, 0x3F, 0x3F, 0x25, 0x3F,
|
|
|
+ 0x7F, 0x8C, 0x3F, 0x7F, 0x80, 0x3F, 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0x3F,
|
|
|
+ 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F},
|
|
|
+ {0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3D, 0xFF, 0xFF, 0x38, // Draw: 5
|
|
|
+ 0xFF, 0x7F, 0x3D, 0xFF, 0xBF, 0x3E, 0xFF, 0x5F, 0x3F, 0xFF, 0xAF, 0x3F,
|
|
|
+ 0xFF, 0xD7, 0x3F, 0xFF, 0xEB, 0x3F, 0xFF, 0xF5, 0x3F, 0xFF, 0xFA, 0x3F,
|
|
|
+ 0x7F, 0xFD, 0x3F, 0xBF, 0xFE, 0x3F, 0x3F, 0xFF, 0x3F, 0xDF, 0xFF, 0x3F,
|
|
|
+ 0x1F, 0x00, 0x00, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F,
|
|
|
+ 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F},
|
|
|
+ {0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xBF, 0x3F, // Packet monitor: 6
|
|
|
+ 0xFF, 0xBF, 0x3F, 0xFF, 0xBF, 0x3F, 0xFF, 0xBF, 0x3F, 0xFF, 0x5E, 0x3F,
|
|
|
+ 0xFF, 0x5E, 0x3F, 0x7F, 0x5D, 0x3F, 0x20, 0xED, 0x00, 0xAF, 0xEB, 0x3F,
|
|
|
+ 0xDF, 0xEB, 0x3F, 0xDF, 0xEB, 0x3F, 0xFF, 0xF7, 0x3F, 0xFF, 0xF7, 0x3F,
|
|
|
+ 0xFF, 0xF7, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F,
|
|
|
+ 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F},
|
|
|
+ {0xFF, 0xDB, 0x3F, 0xFF, 0xED, 0x3F, 0xFF, 0xB5, 0x3F, 0xFF, 0xD5, 0x3F, // Probe sniff: 7
|
|
|
+ 0xFF, 0x55, 0x3E, 0xFF, 0xF5, 0x3D, 0xFF, 0xED, 0x3D, 0xFF, 0x7B, 0x3E,
|
|
|
+ 0xFF, 0xBF, 0x3F, 0xFF, 0xCF, 0x3F, 0xFF, 0xD7, 0x3F, 0xFF, 0xEB, 0x3F,
|
|
|
+ 0xFF, 0xF5, 0x3F, 0xFF, 0xF8, 0x3F, 0x7F, 0xFC, 0x3F, 0x3F, 0xFE, 0x3F,
|
|
|
+ 0x1F, 0xFF, 0x3F, 0x8F, 0xFF, 0x3F, 0xCF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F,
|
|
|
+ 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F},
|
|
|
+ {0xFF, 0xFF, 0x3F, 0xFF, 0xC0, 0x3F, 0x3F, 0x3F, 0x3F, 0xDF, 0xFF, 0x3E, // Scanners: 8
|
|
|
+ 0xEF, 0xEF, 0x3D, 0xF7, 0xFF, 0x39, 0xFB, 0xE1, 0x36, 0xDB, 0x5E, 0x37,
|
|
|
+ 0x7D, 0xBF, 0x2F, 0xBD, 0x5E, 0x2F, 0xBD, 0x63, 0x2F, 0xBD, 0x73, 0x2F,
|
|
|
+ 0xBD, 0x7F, 0x2F, 0x7D, 0xBF, 0x2F, 0xFB, 0xDE, 0x37, 0xFB, 0xE1, 0x37,
|
|
|
+ 0xF7, 0xFF, 0x3B, 0xEF, 0xFF, 0x3D, 0xDF, 0xFF, 0x3E, 0x3F, 0x3F, 0x3F,
|
|
|
+ 0xFF, 0xC0, 0x3F, 0xFF, 0xFF, 0x3F},
|
|
|
+ {0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0x1F, 0x60, 0x3F, 0x0F, 0xC0, 0x3E, // CC Skimmers: 9
|
|
|
+ 0xEF, 0xDF, 0x3C, 0xEF, 0xDF, 0x38, 0xEF, 0xDF, 0x3A, 0xEF, 0xDF, 0x39,
|
|
|
+ 0xEF, 0xDF, 0x3B, 0xEF, 0xDF, 0x3B, 0x0F, 0xC0, 0x3B, 0x0F, 0x80, 0x3B,
|
|
|
+ 0x0F, 0x40, 0x3B, 0x0F, 0x40, 0x3B, 0x0F, 0x40, 0x3B, 0x0F, 0x40, 0x3B,
|
|
|
+ 0x0F, 0xC0, 0x3C, 0x0F, 0xC0, 0x3F, 0x07, 0x80, 0x3F, 0xFF, 0xFF, 0x3F,
|
|
|
+ 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F},
|
|
|
+ {0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFB, 0x3F, 0xFF, 0xFB, 0x3F, // Sniffers: 10
|
|
|
+ 0xFF, 0xF3, 0x3F, 0xFF, 0xE7, 0x3F, 0xFF, 0xCF, 0x3F, 0xFF, 0x3F, 0x3F,
|
|
|
+ 0xFF, 0x7F, 0x3E, 0xFF, 0xFF, 0x3C, 0xFF, 0xFF, 0x3D, 0xFF, 0xFF, 0x39,
|
|
|
+ 0xFF, 0xFF, 0x3B, 0x3F, 0xF8, 0x3B, 0x9F, 0xFB, 0x3B, 0xDF, 0xFF, 0x39,
|
|
|
+ 0x5F, 0xFC, 0x3C, 0x3F, 0x03, 0x3E, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F,
|
|
|
+ 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F},
|
|
|
+ {0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F, // WiFi: 11
|
|
|
+ 0x7F, 0x80, 0x3F, 0x9F, 0x7F, 0x3E, 0xE7, 0xFF, 0x39, 0xFB, 0xFF, 0x37,
|
|
|
+ 0xFF, 0xC0, 0x3F, 0x1F, 0x3F, 0x3E, 0xEF, 0xFF, 0x3D, 0xFF, 0xFF, 0x3F,
|
|
|
+ 0xFF, 0xE1, 0x3F, 0x7F, 0x9E, 0x3F, 0xBF, 0x7F, 0x3F, 0xFF, 0xFF, 0x3F,
|
|
|
+ 0xFF, 0xF3, 0x3F, 0xFF, 0xF3, 0x3F, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F,
|
|
|
+ 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x3F}};
|
|
|
|
|
|
MenuFunctions::MenuFunctions()
|
|
|
{
|
|
|
@@ -157,55 +231,55 @@ void MenuFunctions::RunSetup()
|
|
|
|
|
|
// Build Main Menu
|
|
|
mainMenu.parentMenu = NULL;
|
|
|
- addNodes(&mainMenu, "WiFi", TFT_GREEN, NULL, 0, [this](){changeMenu(&wifiMenu);});
|
|
|
- addNodes(&mainMenu, "Bluetooth", TFT_CYAN, NULL, 1, [this](){changeMenu(&bluetoothMenu);});
|
|
|
- addNodes(&mainMenu, "General Apps", TFT_MAGENTA, NULL, 2, [this](){changeMenu(&generalMenu);});
|
|
|
- addNodes(&mainMenu, "Reboot", TFT_LIGHTGREY, NULL, 3, [](){ESP.restart();});
|
|
|
+ addNodes(&mainMenu, "WiFi", TFT_GREEN, NULL, WIFI, [this](){changeMenu(&wifiMenu);});
|
|
|
+ addNodes(&mainMenu, "Bluetooth", TFT_CYAN, NULL, BLUETOOTH, [this](){changeMenu(&bluetoothMenu);});
|
|
|
+ addNodes(&mainMenu, "General Apps", TFT_MAGENTA, NULL, ATTACKS, [this](){changeMenu(&generalMenu);});
|
|
|
+ addNodes(&mainMenu, "Reboot", TFT_LIGHTGREY, NULL, SCANNERS, [](){ESP.restart();});
|
|
|
|
|
|
// Build WiFi Menu
|
|
|
wifiMenu.parentMenu = &mainMenu; // Main Menu is second menu parent
|
|
|
addNodes(&wifiMenu, "Back", TFT_LIGHTGREY, NULL, 0, [this](){changeMenu(wifiMenu.parentMenu);});
|
|
|
- addNodes(&wifiMenu, "Sniffers", TFT_YELLOW, NULL, 1, [this](){changeMenu(&wifiSnifferMenu);});
|
|
|
- addNodes(&wifiMenu, "Scanners", TFT_ORANGE, NULL, 1, [this](){changeMenu(&wifiScannerMenu);});
|
|
|
- addNodes(&wifiMenu, "Attacks", TFT_RED, NULL, 1, [this](){changeMenu(&wifiAttackMenu);});
|
|
|
+ addNodes(&wifiMenu, "Sniffers", TFT_YELLOW, NULL, SNIFFERS, [this](){changeMenu(&wifiSnifferMenu);});
|
|
|
+ addNodes(&wifiMenu, "Scanners", TFT_ORANGE, NULL, SCANNERS, [this](){changeMenu(&wifiScannerMenu);});
|
|
|
+ addNodes(&wifiMenu, "Attacks", TFT_RED, NULL, ATTACKS, [this](){changeMenu(&wifiAttackMenu);});
|
|
|
|
|
|
// Build WiFi sniffer Menu
|
|
|
wifiSnifferMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
|
|
|
addNodes(&wifiSnifferMenu, "Back", TFT_LIGHTGREY, NULL, 0, [this](){changeMenu(wifiSnifferMenu.parentMenu);});
|
|
|
- addNodes(&wifiSnifferMenu, "Probe Request Sniff", TFT_CYAN, NULL, 2, [this](){wifi_scan_obj.StartScan(WIFI_SCAN_PROBE, TFT_CYAN);});
|
|
|
- addNodes(&wifiSnifferMenu, "Beacon Sniff", TFT_MAGENTA, NULL, 3, [this](){wifi_scan_obj.StartScan(WIFI_SCAN_AP, TFT_MAGENTA);});
|
|
|
- addNodes(&wifiSnifferMenu, "Deauth Sniff", TFT_RED, NULL, 4, [this](){wifi_scan_obj.StartScan(WIFI_SCAN_DEAUTH, TFT_RED);});
|
|
|
+ addNodes(&wifiSnifferMenu, "Probe Request Sniff", TFT_CYAN, NULL, PROBE_SNIFF, [this](){wifi_scan_obj.StartScan(WIFI_SCAN_PROBE, TFT_CYAN);});
|
|
|
+ addNodes(&wifiSnifferMenu, "Beacon Sniff", TFT_MAGENTA, NULL, BEACON_SNIFF, [this](){wifi_scan_obj.StartScan(WIFI_SCAN_AP, TFT_MAGENTA);});
|
|
|
+ addNodes(&wifiSnifferMenu, "Deauth Sniff", TFT_RED, NULL, DEAUTH_SNIFF, [this](){wifi_scan_obj.StartScan(WIFI_SCAN_DEAUTH, TFT_RED);});
|
|
|
|
|
|
// Build WiFi scanner Menu
|
|
|
wifiScannerMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
|
|
|
addNodes(&wifiScannerMenu, "Back", TFT_LIGHTGREY, NULL, 0, [this](){changeMenu(wifiScannerMenu.parentMenu);});
|
|
|
- addNodes(&wifiScannerMenu, "Packet Monitor", TFT_BLUE, NULL, 1, [this](){wifi_scan_obj.StartScan(WIFI_PACKET_MONITOR, TFT_BLUE);});
|
|
|
+ addNodes(&wifiScannerMenu, "Packet Monitor", TFT_BLUE, NULL, PACKET_MONITOR, [this](){wifi_scan_obj.StartScan(WIFI_PACKET_MONITOR, TFT_BLUE);});
|
|
|
|
|
|
// Build WiFi attack menu
|
|
|
wifiAttackMenu.parentMenu = &wifiMenu; // Main Menu is second menu parent
|
|
|
addNodes(&wifiAttackMenu, "Back", TFT_LIGHTGREY, NULL, 0, [this](){changeMenu(wifiAttackMenu.parentMenu);});
|
|
|
- addNodes(&wifiAttackMenu, "Beacon Spam Random", TFT_ORANGE, NULL, 1, [this](){wifi_scan_obj.StartScan(WIFI_ATTACK_BEACON_SPAM, TFT_ORANGE);});
|
|
|
- addNodes(&wifiAttackMenu, "Rick Roll Beacon", TFT_YELLOW, NULL, 1, [this](){wifi_scan_obj.StartScan(WIFI_ATTACK_RICK_ROLL, TFT_YELLOW);});
|
|
|
+ addNodes(&wifiAttackMenu, "Beacon Spam Random", TFT_ORANGE, NULL, ATTACKS, [this](){wifi_scan_obj.StartScan(WIFI_ATTACK_BEACON_SPAM, TFT_ORANGE);});
|
|
|
+ addNodes(&wifiAttackMenu, "Rick Roll Beacon", TFT_YELLOW, NULL, ATTACKS, [this](){wifi_scan_obj.StartScan(WIFI_ATTACK_RICK_ROLL, TFT_YELLOW);});
|
|
|
|
|
|
// Build Bluetooth Menu
|
|
|
bluetoothMenu.parentMenu = &mainMenu; // Second Menu is third menu parent
|
|
|
addNodes(&bluetoothMenu, "Back", TFT_LIGHTGREY, NULL, 0, [this](){changeMenu(bluetoothMenu.parentMenu);});
|
|
|
- addNodes(&bluetoothMenu, "Sniffers", TFT_YELLOW, NULL, 1, [this](){changeMenu(&bluetoothSnifferMenu);});
|
|
|
- addNodes(&bluetoothMenu, "Scanners", TFT_ORANGE, NULL, 1, [this](){changeMenu(&bluetoothScannerMenu);});
|
|
|
+ addNodes(&bluetoothMenu, "Sniffers", TFT_YELLOW, NULL, SNIFFERS, [this](){changeMenu(&bluetoothSnifferMenu);});
|
|
|
+ addNodes(&bluetoothMenu, "Scanners", TFT_ORANGE, NULL, SCANNERS, [this](){changeMenu(&bluetoothScannerMenu);});
|
|
|
|
|
|
// Build bluetooth sniffer Menu
|
|
|
bluetoothSnifferMenu.parentMenu = &bluetoothMenu; // Second Menu is third menu parent
|
|
|
addNodes(&bluetoothSnifferMenu, "Back", TFT_LIGHTGREY, NULL, 0, [this](){changeMenu(bluetoothSnifferMenu.parentMenu);});
|
|
|
- addNodes(&bluetoothSnifferMenu, "Bluetooth Sniffer", TFT_GREEN, NULL, 1, [this](){wifi_scan_obj.StartScan(BT_SCAN_ALL, TFT_GREEN);});
|
|
|
+ addNodes(&bluetoothSnifferMenu, "Bluetooth Sniffer", TFT_GREEN, NULL, BLUETOOTH_SNIFF, [this](){wifi_scan_obj.StartScan(BT_SCAN_ALL, TFT_GREEN);});
|
|
|
|
|
|
// Build bluetooth scanner Menu
|
|
|
bluetoothScannerMenu.parentMenu = &bluetoothMenu; // Second Menu is third menu parent
|
|
|
addNodes(&bluetoothScannerMenu, "Back", TFT_LIGHTGREY, NULL, 0, [this](){changeMenu(bluetoothScannerMenu.parentMenu);});
|
|
|
- addNodes(&bluetoothScannerMenu, "Detect Card Skimmers", TFT_MAGENTA, NULL, 2, [this](){wifi_scan_obj.StartScan(BT_SCAN_SKIMMERS, TFT_MAGENTA);});
|
|
|
+ addNodes(&bluetoothScannerMenu, "Detect Card Skimmers", TFT_MAGENTA, NULL, CC_SKIMMERS, [this](){wifi_scan_obj.StartScan(BT_SCAN_SKIMMERS, TFT_MAGENTA);});
|
|
|
|
|
|
generalMenu.parentMenu = &mainMenu;
|
|
|
addNodes(&generalMenu, "Back", TFT_LIGHTGREY, NULL, 0, [this](){display_obj.draw_tft = false; changeMenu(generalMenu.parentMenu);});
|
|
|
- addNodes(&generalMenu, "Draw", TFT_WHITE, NULL, 1, [this](){display_obj.clearScreen(); display_obj.draw_tft = true;});
|
|
|
+ addNodes(&generalMenu, "Draw", TFT_WHITE, NULL, DRAW, [this](){display_obj.clearScreen(); display_obj.draw_tft = true;});
|
|
|
|
|
|
|
|
|
// Set the current menu to the mainMenu
|
|
|
@@ -238,8 +312,8 @@ void MenuFunctions::showMenuList(Menu* menu, int layer)
|
|
|
Serial.println(menu->list->get(i).name);
|
|
|
|
|
|
// If the current menu node points to another menu, list that menu
|
|
|
- if (menu->list->get(i).childMenu != NULL)
|
|
|
- showMenuList(menu->list->get(i).childMenu, layer+1);
|
|
|
+ //if (menu->list->get(i).childMenu != NULL)
|
|
|
+ // showMenuList(menu->list->get(i).childMenu, layer+1);
|
|
|
}
|
|
|
Serial.println();
|
|
|
}
|
|
|
@@ -249,7 +323,8 @@ void MenuFunctions::showMenuList(Menu* menu, int layer)
|
|
|
void MenuFunctions::addNodes(Menu* menu, String name, uint16_t color, Menu* child, int place, std::function<void()> callable)
|
|
|
{
|
|
|
TFT_eSPI_Button new_button;
|
|
|
- menu->list->add(MenuNode{name, color, child, &new_button, callable});
|
|
|
+ menu->list->add(MenuNode{name, color, place, &new_button, callable});
|
|
|
+ //strcpy(menu->list->get(-1).icon, bluetooth_icon);
|
|
|
}
|
|
|
|
|
|
void MenuFunctions::buildButtons(Menu* menu)
|
|
|
@@ -274,11 +349,11 @@ void MenuFunctions::buildButtons(Menu* menu)
|
|
|
menu->list->get(i).color, // Text
|
|
|
buf,
|
|
|
KEY_TEXTSIZE);
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
void MenuFunctions::displayCurrentMenu()
|
|
|
{
|
|
|
Serial.println("Displaying current menu...");
|
|
|
@@ -299,6 +374,13 @@ void MenuFunctions::displayCurrentMenu()
|
|
|
for (int i = 0; i < current_menu->list->size(); i++)
|
|
|
{
|
|
|
display_obj.key[i].drawButton2(current_menu->list->get(i).name);
|
|
|
+ display_obj.tft.drawXBitmap(0,
|
|
|
+ KEY_Y + i * (KEY_H + KEY_SPACING_Y) - (ICON_H / 2),
|
|
|
+ menu_icons[current_menu->list->get(i).icon],
|
|
|
+ ICON_W,
|
|
|
+ ICON_H,
|
|
|
+ TFT_BLACK,
|
|
|
+ current_menu->list->get(i).color);
|
|
|
}
|
|
|
display_obj.tft.setFreeFont(NULL);
|
|
|
}
|