Introduce common helper functions

This commit is contained in:
jpirnay
2026-04-12 20:30:14 +02:00
parent df3fec574d
commit 54807911e7
16 changed files with 790 additions and 729 deletions
@@ -3,28 +3,24 @@
#include <vector>
#include "activities/Activity.h"
#include "activities/settings/SettingsActivity.h"
#include "util/ButtonNavigator.h"
#include "SettingInfo.h"
#include "activities/MenuListActivity.h"
// Displays a flat list of SettingInfo items launched from a SettingsActivity submenu entry.
// Supports subcategory separators (withSubcategory) exactly as the parent settings tabs do.
class SettingsSubmenuActivity final : public Activity {
class SettingsSubmenuActivity final : public MenuListActivity {
StrId titleId;
std::vector<SettingInfo> items;
int selectedIndex = 0;
int itemCount = 0;
ButtonNavigator buttonNavigator;
void toggleItem();
// MenuListActivity overrides
void onActionSelected(int index) override;
void onSettingToggled(int index) override;
public:
explicit SettingsSubmenuActivity(GfxRenderer& renderer, MappedInputManager& mappedInput, StrId titleId,
std::vector<SettingInfo> items)
: Activity("SettingsSubmenu", renderer, mappedInput), titleId(titleId), items(std::move(items)) {}
: MenuListActivity("SettingsSubmenu", renderer, mappedInput), titleId(titleId) {
menuItems = std::move(items);
}
void onEnter() override;
void onExit() override;
void loop() override;
void render(RenderLock&&) override;
};