mirror of
https://github.com/vicliu624/trail-mate.git
synced 2026-09-22 03:34:20 +00:00
88 lines
3.9 KiB
C++
88 lines
3.9 KiB
C++
#include "lvgl.h"
|
|
#include "ui/app_runtime.h"
|
|
#include "ui/screens/calculator/calculator_page_runtime.h"
|
|
#include "ui/screens/gnss/gnss_skyplot_page_runtime.h"
|
|
#include "ui/screens/usb/usb_page_runtime.h"
|
|
#include "ui/screens/walkie_talkie/walkie_talkie_page_runtime.h"
|
|
#include "ui/screens/sstv/sstv_page_runtime.h"
|
|
#include "ui/screens/extensions/extensions_page_runtime.h"
|
|
#include "ui/screens/contacts/contacts_page_runtime.h"
|
|
#include "ui/screens/settings/settings_page_runtime.h"
|
|
#include "ui/screens/team/team_page_runtime.h"
|
|
#include "ui/screens/tracker/tracker_page_runtime.h"
|
|
#include "ui/screens/network/network_page_shell.h"
|
|
#include "ui/screens/gps/gps_page_runtime.h"
|
|
#include "ui/screens/energy_sweep/energy_sweep_page_runtime.h"
|
|
#include "ui/menu/menu_runtime.h"
|
|
#include <emscripten.h>
|
|
|
|
static int current_page = -1;
|
|
int preview_current_page(){return current_page;}
|
|
void preview_menu_enter();
|
|
void preview_menu_exit();
|
|
void preview_power_enter();
|
|
void preview_power_exit();
|
|
void preview_chat_enter(int page);
|
|
void preview_chat_exit();
|
|
|
|
void preview_exit_page()
|
|
{
|
|
switch (current_page)
|
|
{
|
|
case 0: calculator::ui::runtime::exit(lv_screen_active()); break;
|
|
case 1: gnss::ui::runtime::exit(lv_screen_active()); break;
|
|
case 2: usb_storage::ui::runtime::exit(lv_screen_active()); break;
|
|
case 3: walkie_page::ui::runtime::exit(lv_screen_active()); break;
|
|
case 4: sstv_page::ui::runtime::exit(lv_screen_active()); break;
|
|
case 8: extensions::ui::runtime::exit(lv_screen_active()); break;
|
|
case 9: network::ui::shell::exit(nullptr,lv_screen_active()); break;
|
|
case 11: settings::ui::runtime::exit(lv_screen_active()); break;
|
|
case 12: contacts::ui::runtime::exit(lv_screen_active()); break;
|
|
case 13: team::ui::runtime::exit(lv_screen_active()); break;
|
|
case 14: tracker::ui::runtime::exit(lv_screen_active()); break;
|
|
case 15: gps::ui::runtime::exit(lv_screen_active()); break;
|
|
case 16: energy_sweep::ui::runtime::exit(lv_screen_active()); break;
|
|
case 17: preview_menu_exit(); break;
|
|
case 18: preview_power_exit(); break;
|
|
case 10: preview_menu_exit(); break;
|
|
case 5: case 6: case 7: preview_chat_exit(); break;
|
|
}
|
|
current_page = -1;
|
|
}
|
|
|
|
extern "C" EMSCRIPTEN_KEEPALIVE void native_open_page(int page)
|
|
{
|
|
preview_exit_page();
|
|
lv_group_remove_all_objs(app_g);
|
|
if(page!=10&&page!=17&&page!=18)ui::menu_runtime::setScene(ui::menu_runtime::Scene::App);
|
|
switch (page)
|
|
{
|
|
case 0: calculator::ui::runtime::enter(nullptr, lv_screen_active()); break;
|
|
case 1: gnss::ui::runtime::enter(nullptr, lv_screen_active()); break;
|
|
case 2: usb_storage::ui::runtime::enter(nullptr, lv_screen_active()); break;
|
|
case 3: walkie_page::ui::runtime::enter(nullptr, lv_screen_active()); break;
|
|
case 4: sstv_page::ui::runtime::enter(nullptr, lv_screen_active()); break;
|
|
case 8: extensions::ui::runtime::enter(nullptr, lv_screen_active()); break;
|
|
case 9: network::ui::shell::enter(nullptr,lv_screen_active()); break;
|
|
case 11: settings::ui::runtime::enter(nullptr,lv_screen_active()); break;
|
|
case 12: contacts::ui::runtime::enter(nullptr,lv_screen_active()); break;
|
|
case 13: team::ui::runtime::enter(nullptr,lv_screen_active()); break;
|
|
case 14: tracker::ui::runtime::enter(nullptr,lv_screen_active()); break;
|
|
case 15: gps::ui::runtime::enter(nullptr,lv_screen_active()); break;
|
|
case 16: energy_sweep::ui::runtime::enter(nullptr,lv_screen_active()); break;
|
|
case 17: preview_menu_enter();ui::menu_runtime::handleShortcutKey('h',1);break;
|
|
case 18: preview_power_enter();break;
|
|
case 10: preview_menu_enter(); break;
|
|
case 5: case 6: case 7: preview_chat_enter(page); break;
|
|
default: return;
|
|
}
|
|
current_page = page;
|
|
lv_obj_update_layout(lv_screen_active());
|
|
lv_refr_now(nullptr);
|
|
}
|
|
|
|
void ui_request_rebuild_active_app()
|
|
{
|
|
lv_async_call([](void*) {const int page=current_page;native_open_page(page);},nullptr);
|
|
}
|