Deallocate menu buttons to save memory (#1971)

* Deallocate hidden menu buttons
* Added Copyright
* Added comments
This commit is contained in:
Mark Thompson 2024-03-10 14:49:36 -05:00 committed by GitHub
parent 986e37a3c9
commit e9b9ba4602
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 149 additions and 66 deletions

View file

@ -740,40 +740,49 @@ void addExternalItems(NavigationView& nav, app_location_t location, BtnGridView&
/* ReceiversMenuView *****************************************************/
ReceiversMenuView::ReceiversMenuView(NavigationView& nav) {
ReceiversMenuView::ReceiversMenuView(NavigationView& nav)
: nav_(nav) {}
void ReceiversMenuView::on_populate() {
if (pmem::show_gui_return_icon()) {
add_item({"..", Color::light_grey(), &bitmap_icon_previous, [&nav]() { nav.pop(); }});
add_item({"..", Color::light_grey(), &bitmap_icon_previous, [this]() { nav_.pop(); }});
}
add_apps(nav, *this, RX);
add_apps(nav_, *this, RX);
addExternalItems(nav, app_location_t::RX, *this);
addExternalItems(nav_, app_location_t::RX, *this);
}
/* TransmittersMenuView **************************************************/
TransmittersMenuView::TransmittersMenuView(NavigationView& nav) {
TransmittersMenuView::TransmittersMenuView(NavigationView& nav)
: nav_(nav) {}
void TransmittersMenuView::on_populate() {
if (pmem::show_gui_return_icon()) {
add_items({{"..", Color::light_grey(), &bitmap_icon_previous, [&nav]() { nav.pop(); }}});
add_items({{"..", Color::light_grey(), &bitmap_icon_previous, [this]() { nav_.pop(); }}});
}
add_apps(nav, *this, TX);
add_apps(nav_, *this, TX);
addExternalItems(nav, app_location_t::TX, *this);
addExternalItems(nav_, app_location_t::TX, *this);
}
/* UtilitiesMenuView *****************************************************/
UtilitiesMenuView::UtilitiesMenuView(NavigationView& nav) {
UtilitiesMenuView::UtilitiesMenuView(NavigationView& nav)
: nav_(nav) {
set_max_rows(2); // allow wider buttons
}
void UtilitiesMenuView::on_populate() {
if (pmem::show_gui_return_icon()) {
add_items({{"..", Color::light_grey(), &bitmap_icon_previous, [&nav]() { nav.pop(); }}});
add_items({{"..", Color::light_grey(), &bitmap_icon_previous, [this]() { nav_.pop(); }}});
}
add_apps(nav, *this, UTILITIES);
add_apps(nav_, *this, UTILITIES);
addExternalItems(nav, app_location_t::UTILITIES, *this);
set_max_rows(2); // allow wider buttons
addExternalItems(nav_, app_location_t::UTILITIES, *this);
}
/* SystemMenuView ********************************************************/
@ -790,15 +799,18 @@ void SystemMenuView::hackrf_mode(NavigationView& nav) {
});
}
SystemMenuView::SystemMenuView(NavigationView& nav) {
add_apps(nav, *this, HOME);
add_item({"HackRF", Color::cyan(), &bitmap_icon_hackrf, [this, &nav]() { hackrf_mode(nav); }});
SystemMenuView::SystemMenuView(NavigationView& nav)
: nav_(nav) {
set_max_rows(2); // allow wider buttons
set_arrow_enabled(false);
}
void SystemMenuView::on_populate() {
add_apps(nav_, *this, HOME);
add_item({"HackRF", Color::cyan(), &bitmap_icon_hackrf, [this]() { hackrf_mode(nav_); }});
}
/* SystemView ************************************************************/
SystemView::SystemView(