feat(colorlcd): Special Function to set main screen (#2160)
* Special Function to set main screen (#2135) * chore: Add new SF to LUA constants list * Companion support * Formatting * get rid of magic number * Add function to get the number of custom screens * Change screen numbering from 0-based to 1-based. * Allow SetScreen custom function for Color LCD only * add range protection * cleanup * yet, range protection once again * fix: paintSpecialFunctionLine can't alter SF param data * Fix screen initialization in companion * move screen switching to the UI * Trigger view change from guiMain() * chore: Change "SET" to "Set" for consistency * fix: Somehow missed extra comma in `TW` Co-authored-by: Peter Feerick <peter.feerick@gmail.com> Co-authored-by: elecpower <neilh713@tpg.com.au> Co-authored-by: Raphael Coeffic <raphael.coeffic@frafos.com>
This commit is contained in:
co-authored by
Peter Feerick
elecpower
Raphael Coeffic
parent
b0c1315f61
commit
4e49ac68be
@@ -25,6 +25,7 @@
|
||||
#if defined(LIBOPENUI)
|
||||
#include "libopenui.h"
|
||||
#include "gui/colorlcd/LvglWrapper.h"
|
||||
#include "gui/colorlcd/view_main.h"
|
||||
#endif
|
||||
|
||||
#if defined(CLI)
|
||||
@@ -376,6 +377,18 @@ void guiMain(event_t evt)
|
||||
LvglWrapper::instance()->run();
|
||||
MainWindow::instance()->run();
|
||||
|
||||
bool mainViewRequested = (mainRequestFlags & (1u << REQUEST_MAIN_VIEW));
|
||||
if (mainViewRequested) {
|
||||
auto viewMain = ViewMain::instance();
|
||||
if (g_model.view < viewMain->getMainViewsCount()) {
|
||||
viewMain->setCurrentMainView(g_model.view);
|
||||
storageDirty(EE_MODEL);
|
||||
} else {
|
||||
g_model.view = viewMain->getCurrentMainView();
|
||||
}
|
||||
mainRequestFlags &= ~(1u << REQUEST_MAIN_VIEW);
|
||||
}
|
||||
|
||||
bool screenshotRequested = (mainRequestFlags & (1u << REQUEST_SCREENSHOT));
|
||||
if (screenshotRequested) {
|
||||
writeScreenshot();
|
||||
|
||||
Reference in New Issue
Block a user