feat: Jump to channel monitor from any model page. (#1748)
* Jump from mixes/outputs to channel monitor * remove unnecessary headers * Add Button names to translations * jump from any model page to channel monitor * Use TELEM short press instead of long press. * Support TXs with pure touch interface * Change to KEY_MODEL, whitespace cleanup, git eol Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
This commit is contained in:
@@ -19,20 +19,23 @@
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#include "opentx.h"
|
||||
#include "menu_model.h"
|
||||
#include "model_setup.h"
|
||||
#include "model_heli.h"
|
||||
#include "model_flightmodes.h"
|
||||
#include "model_mixes.h"
|
||||
#include "model_inputs.h"
|
||||
#include "model_outputs.h"
|
||||
#include "model_gvars.h"
|
||||
|
||||
#include "translations.h"
|
||||
#include "view_channels.h"
|
||||
#include "model_curves.h"
|
||||
#include "model_flightmodes.h"
|
||||
#include "model_gvars.h"
|
||||
#include "model_heli.h"
|
||||
#include "model_inputs.h"
|
||||
#include "model_logical_switches.h"
|
||||
#include "model_mixer_scripts.h"
|
||||
#include "special_functions.h"
|
||||
#include "model_mixes.h"
|
||||
#include "model_outputs.h"
|
||||
#include "model_setup.h"
|
||||
#include "model_telemetry.h"
|
||||
#include "opentx.h"
|
||||
#include "special_functions.h"
|
||||
|
||||
ModelMenu::ModelMenu():
|
||||
TabsGroup(ICON_MODEL)
|
||||
@@ -57,4 +60,20 @@ ModelMenu::ModelMenu():
|
||||
addTab(new ModelMixerScriptsPage());
|
||||
#endif
|
||||
addTab(new ModelTelemetryPage());
|
||||
|
||||
addButton(&header);
|
||||
}
|
||||
|
||||
void ModelMenu::addButton(TabsGroupHeader* header)
|
||||
{
|
||||
OpenTxTheme::instance()->createTextButton(
|
||||
header, {LCD_W / 2 + 5, MENU_TITLE_TOP, LCD_W / 2 - 5, MENU_TITLE_HEIGHT},
|
||||
STR_OPEN_CHANNEL_MONITORS, [=]() {
|
||||
calledFromModel = 1;
|
||||
retTab = header->getCarousel()->getCurrentIndex();
|
||||
// TRACE("currentTab=%d %s", calledFromModel, typeid(*currentTab).name());
|
||||
new ChannelsViewMenu();
|
||||
deleteLater();
|
||||
return 0;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -33,6 +33,9 @@ class ModelMenu: public TabsGroup {
|
||||
}
|
||||
#endif
|
||||
ModelMenu();
|
||||
|
||||
protected:
|
||||
void addButton(TabsGroupHeader* headerPtr);
|
||||
};
|
||||
|
||||
#endif // _MENU_MODEL_H_
|
||||
|
||||
@@ -21,11 +21,10 @@
|
||||
|
||||
#include "model_outputs.h"
|
||||
|
||||
#include "opentx.h"
|
||||
#include "libopenui.h"
|
||||
|
||||
#include "channel_bar.h"
|
||||
#include "gvar_numberedit.h"
|
||||
#include "libopenui.h"
|
||||
#include "opentx.h"
|
||||
|
||||
#define SET_DIRTY() storageDirty(EE_MODEL)
|
||||
|
||||
|
||||
@@ -20,8 +20,14 @@
|
||||
*/
|
||||
|
||||
#include "tabsgroup.h"
|
||||
|
||||
#include "mainwindow.h"
|
||||
#include "view_channels.h"
|
||||
#include "view_main.h"
|
||||
#include "model_outputs.h"
|
||||
#include "model_mixes.h"
|
||||
#include "static.h"
|
||||
#include "menu_model.h"
|
||||
|
||||
#if defined(HARDWARE_TOUCH)
|
||||
#include "keyboard_base.h"
|
||||
@@ -31,22 +37,34 @@
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
TabsGroupHeader::TabsGroupHeader(TabsGroup * parent, uint8_t icon):
|
||||
FormGroup(parent, { 0, 0, LCD_W, MENU_BODY_TOP }, OPAQUE),
|
||||
int TabsGroup::calledFromModel = 0;
|
||||
int TabsGroup::retTab = 0;
|
||||
|
||||
TabsGroupHeader::TabsGroupHeader(TabsGroup* parent, uint8_t icon) :
|
||||
FormGroup(parent, {0, 0, LCD_W, MENU_BODY_TOP}, OPAQUE),
|
||||
#if defined(HARDWARE_TOUCH)
|
||||
back(this, { 0, 0, MENU_HEADER_BACK_BUTTON_WIDTH, MENU_HEADER_BACK_BUTTON_HEIGHT },
|
||||
[=]() -> uint8_t {
|
||||
parent->deleteLater();
|
||||
ViewMain::instance()->setFocus((SET_FOCUS_DEFAULT));
|
||||
return 1;
|
||||
}, NO_FOCUS | FORM_NO_BORDER),
|
||||
back(
|
||||
this,
|
||||
{0, 0, MENU_HEADER_BACK_BUTTON_WIDTH, MENU_HEADER_BACK_BUTTON_HEIGHT},
|
||||
[=]() -> uint8_t {
|
||||
if (!parent->calledFromModel) {
|
||||
ViewMain::instance()->setFocus(SET_FOCUS_DEFAULT);
|
||||
} else {
|
||||
auto menu = new ModelMenu();
|
||||
menu->setCurrentTab(parent->retTab);
|
||||
parent->calledFromModel = 0;
|
||||
}
|
||||
parent->deleteLater();
|
||||
return 1;
|
||||
},
|
||||
NO_FOCUS | FORM_NO_BORDER),
|
||||
#endif
|
||||
icon(icon),
|
||||
carousel(this, parent)
|
||||
icon(icon),
|
||||
carousel(this, parent)
|
||||
{
|
||||
}
|
||||
|
||||
void TabsGroupHeader::paint(BitmapBuffer * dc)
|
||||
void TabsGroupHeader::paint(BitmapBuffer* dc)
|
||||
{
|
||||
OpenTxTheme::instance()->drawPageHeaderBackground(dc, icon, title);
|
||||
}
|
||||
@@ -217,10 +235,27 @@ void TabsGroup::onEvent(event_t event)
|
||||
}
|
||||
else if (event == EVT_KEY_FIRST(KEY_EXIT)) {
|
||||
killEvents(event);
|
||||
ViewMain::instance()->setFocus(SET_FOCUS_DEFAULT);
|
||||
if (!calledFromModel) {
|
||||
ViewMain::instance()->setFocus(SET_FOCUS_DEFAULT);
|
||||
}
|
||||
else {
|
||||
auto menu = new ModelMenu();
|
||||
menu->setCurrentTab(retTab);
|
||||
calledFromModel = 0;
|
||||
// TRACE("currentTab=%d %s", retTab, typeid(*currentTab).name());
|
||||
}
|
||||
deleteLater();
|
||||
}
|
||||
else if (parent) {
|
||||
} else if (event == EVT_KEY_FIRST(KEY_MODEL)) {
|
||||
TRACE("TabGroup %s", typeid(*this).name());
|
||||
if (typeid(*this) == typeid(ModelMenu) ) {
|
||||
killEvents(event);
|
||||
calledFromModel = 1;
|
||||
retTab = header.carousel.getCurrentIndex();
|
||||
// TRACE("currentTab=%d %s", calledFromModel, typeid(*currentTab).name());
|
||||
new ChannelsViewMenu();
|
||||
deleteLater();
|
||||
}
|
||||
} else if (parent) {
|
||||
parent->onEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -150,9 +150,11 @@ class TabsGroupHeader: public FormGroup {
|
||||
title = value;
|
||||
}
|
||||
|
||||
protected:
|
||||
TabsCarousel* getCarousel() {return &carousel;}
|
||||
|
||||
protected:
|
||||
#if defined(HARDWARE_TOUCH)
|
||||
Button back;
|
||||
Button back;
|
||||
#endif
|
||||
uint8_t icon;
|
||||
TabsCarousel carousel;
|
||||
@@ -225,7 +227,10 @@ class TabsGroup: public Window
|
||||
bool onTouchEnd(coord_t x, coord_t y) override;
|
||||
#endif
|
||||
|
||||
protected:
|
||||
static int calledFromModel;
|
||||
static int retTab;
|
||||
|
||||
protected:
|
||||
TabsGroupHeader header;
|
||||
FormWindow body;
|
||||
std::vector<PageTab *> tabs;
|
||||
|
||||
@@ -718,6 +718,7 @@ const char STR_PRESET[] = TR_PRESET;
|
||||
const char STR_CLEAR[] = TR_CLEAR;
|
||||
const char STR_RESET[] = TR_RESET;
|
||||
const char STR_ADD_ALL_TRIMS_TO_SUBTRIMS[] = TR_ADD_ALL_TRIMS_TO_SUBTRIMS;
|
||||
const char STR_OPEN_CHANNEL_MONITORS[] = TR_OPEN_CHANNEL_MONITORS;
|
||||
const char STR_COUNT[] = TR_COUNT;
|
||||
const char STR_PT[] = TR_PT;
|
||||
const char STR_PTS[] = TR_PTS;
|
||||
|
||||
@@ -1062,6 +1062,7 @@ extern const char STR_PRESET[];
|
||||
extern const char STR_CLEAR[];
|
||||
extern const char STR_RESET[];
|
||||
extern const char STR_ADD_ALL_TRIMS_TO_SUBTRIMS[];
|
||||
extern const char STR_OPEN_CHANNEL_MONITORS[];
|
||||
extern const char STR_COUNT[];
|
||||
extern const char STR_PT[];
|
||||
extern const char STR_PTS[];
|
||||
|
||||
@@ -1316,6 +1316,11 @@
|
||||
#define TR_USE_THEME_COLOR "使用主题颜色"
|
||||
|
||||
#define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "将所有微调导入中点偏移值"
|
||||
#if LCD_W > LCD_H
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Monitor"
|
||||
#else
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Mon."
|
||||
#endif
|
||||
#define TR_DUPLICATE "复制"
|
||||
#define TR_ACTIVATE "启用"
|
||||
#define TR_RED "红"
|
||||
|
||||
@@ -1365,6 +1365,11 @@
|
||||
#define TR_USE_THEME_COLOR "Use theme color"
|
||||
|
||||
#define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "Add all Trims to Subtrims"
|
||||
#if LCD_W > LCD_H
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Monitor"
|
||||
#else
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Mon."
|
||||
#endif
|
||||
#define TR_DUPLICATE "Duplicate"
|
||||
#define TR_ACTIVATE "Set Active"
|
||||
#define TR_RED "Red"
|
||||
|
||||
@@ -1372,6 +1372,11 @@
|
||||
#define TR_USE_THEME_COLOR "Use theme color"
|
||||
|
||||
#define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "Add all Trims to Subtrims"
|
||||
#if LCD_W > LCD_H
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Monitor"
|
||||
#else
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Mon."
|
||||
#endif
|
||||
#define TR_DUPLICATE "Duplicate"
|
||||
#define TR_ACTIVATE "Set Active"
|
||||
#define TR_RED "Red"
|
||||
|
||||
@@ -1367,6 +1367,13 @@
|
||||
#define TR_USE_THEME_COLOR "Use theme color"
|
||||
|
||||
#define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "Add all Trims to Subtrims"
|
||||
|
||||
#if LCD_W > LCD_H
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Monitor"
|
||||
#else
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Mon."
|
||||
#endif
|
||||
|
||||
#define TR_DUPLICATE "Duplicate"
|
||||
#define TR_ACTIVATE "Set Active"
|
||||
#define TR_RED "Red"
|
||||
|
||||
@@ -1371,6 +1371,11 @@
|
||||
#define TR_USE_THEME_COLOR "Use theme color"
|
||||
|
||||
#define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "Add all Trims to Subtrims"
|
||||
#if LCD_W > LCD_H
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Monitor"
|
||||
#else
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Mon."
|
||||
#endif
|
||||
#define TR_DUPLICATE "Duplicate"
|
||||
#define TR_ACTIVATE "Set Active"
|
||||
#define TR_RED "Red"
|
||||
|
||||
@@ -1376,6 +1376,11 @@
|
||||
#define TR_USE_THEME_COLOR "Use theme color"
|
||||
|
||||
#define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "Add all Trims to Subtrims"
|
||||
#if LCD_W > LCD_H
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Monitor"
|
||||
#else
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Mon."
|
||||
#endif
|
||||
#define TR_DUPLICATE "Duplicate"
|
||||
#define TR_ACTIVATE "Set Active"
|
||||
#define TR_RED "Red"
|
||||
|
||||
@@ -1394,6 +1394,11 @@
|
||||
#define TR_USE_THEME_COLOR "Use theme color"
|
||||
|
||||
#define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "Add all Trims to Subtrims"
|
||||
#if LCD_W > LCD_H
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Monitor"
|
||||
#else
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Mon."
|
||||
#endif
|
||||
#define TR_DUPLICATE "Duplicate"
|
||||
#define TR_ACTIVATE "Set Active"
|
||||
#define TR_RED "Red"
|
||||
|
||||
@@ -1390,6 +1390,11 @@
|
||||
#define TR_USE_THEME_COLOR "Use theme color"
|
||||
|
||||
#define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "Add all Trims to Subtrims"
|
||||
#if LCD_W > LCD_H
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Monitor"
|
||||
#else
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Mon."
|
||||
#endif
|
||||
#define TR_DUPLICATE "Duplicate"
|
||||
#define TR_ACTIVATE "Set Active"
|
||||
#define TR_RED "Red"
|
||||
|
||||
@@ -1381,6 +1381,11 @@
|
||||
#define TR_USE_THEME_COLOR "Use theme color"
|
||||
|
||||
#define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "Add all Trims to Subtrims"
|
||||
#if LCD_W > LCD_H
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Monitor"
|
||||
#else
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Mon."
|
||||
#endif
|
||||
#define TR_DUPLICATE "Duplicate"
|
||||
#define TR_ACTIVATE "Set Active"
|
||||
#define TR_RED "Red"
|
||||
|
||||
@@ -1386,6 +1386,11 @@
|
||||
#define TR_USE_THEME_COLOR "Use theme color"
|
||||
|
||||
#define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "Add all Trims to Subtrims"
|
||||
#if LCD_W > LCD_H
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Monitor"
|
||||
#else
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Mon."
|
||||
#endif
|
||||
#define TR_DUPLICATE "Duplicate"
|
||||
#define TR_ACTIVATE "Set Active"
|
||||
#define TR_RED "Red"
|
||||
|
||||
@@ -1392,6 +1392,11 @@
|
||||
#define TR_USE_THEME_COLOR "Use theme color"
|
||||
|
||||
#define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "Add all Trims to Subtrims"
|
||||
#if LCD_W > LCD_H
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Monitor"
|
||||
#else
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Mon."
|
||||
#endif
|
||||
#define TR_DUPLICATE "Duplicate"
|
||||
#define TR_ACTIVATE "Set Active"
|
||||
#define TR_RED "Red"
|
||||
|
||||
@@ -1394,6 +1394,11 @@
|
||||
#define TR_USE_THEME_COLOR "Use theme color"
|
||||
|
||||
#define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "Add all Trims to Subtrims"
|
||||
#if LCD_W > LCD_H
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Monitor"
|
||||
#else
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Mon."
|
||||
#endif
|
||||
#define TR_DUPLICATE "Duplicate"
|
||||
#define TR_ACTIVATE "Set Active"
|
||||
#define TR_RED "Red"
|
||||
|
||||
@@ -1308,6 +1308,11 @@
|
||||
#define TR_USE_THEME_COLOR "使用主題顏色"
|
||||
|
||||
#define TR_ADD_ALL_TRIMS_TO_SUBTRIMS "将將所有微調導入中點偏移值"
|
||||
#if LCD_W > LCD_H
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Monitor"
|
||||
#else
|
||||
#define TR_OPEN_CHANNEL_MONITORS "Open Channel Mon."
|
||||
#endif
|
||||
#define TR_DUPLICATE "複製"
|
||||
#define TR_ACTIVATE "啟用"
|
||||
#define TR_RED "紅"
|
||||
|
||||
Reference in New Issue
Block a user