ui: start implementing menu tabs and controls

This commit is contained in:
TakaRikka
2026-08-05 14:27:59 -07:00
parent 8d677bf517
commit 2a0cd87246
3 changed files with 209 additions and 61 deletions
+3 -61
View File
@@ -1,73 +1,15 @@
#include "ui.hpp"
#include <atomic>
#include <cstring>
#include <filesystem>
#include <memory>
#include <string>
#include <thread>
#include <vector>
#include <mods/svc/log.hpp>
#include "../session.hpp"
#include "../randomizer_context.hpp"
#include "../paths.hpp"
#include "config_store.hpp"
#include "rando_seed_generation.hpp"
#include "rando_config.hpp"
namespace randomizer::ui {
namespace {
// Seed Tab
ModResult buildSeedTab(ModContext* ctx, UiWindowHandle, UiElementHandle leftPane,
UiElementHandle rightPane, void*, ModError*)
{
return MOD_OK;
}
ModResult updateSeedTab(ModContext* ctx, void*, ModError*) {
return MOD_OK;
}
// Settings Tab
ModResult buildSettingsTab(ModContext* ctx, UiWindowHandle, UiElementHandle leftPane,
UiElementHandle rightPane, void*, ModError*)
{
return MOD_OK;
}
// Menu Tab
void OnMenuTabSelected(ModContext* ctx, void*) {
UiTabDesc tabs[2]{};
tabs[0].struct_size = sizeof(UiTabDesc);
tabs[0].title = "Seed";
tabs[0].build = buildSeedTab;
tabs[0].update = updateSeedTab;
tabs[1].struct_size = sizeof(UiTabDesc);
tabs[1].title = "Settings";
tabs[1].build = buildSettingsTab;
UiWindowDesc desc = UI_WINDOW_DESC_INIT;
desc.tabs = tabs;
desc.tab_count = 2;
UiWindowHandle window{};
session::svc_mng.ui->window_push(ctx, &desc, &window);
}
}
UiMenuTabHandle g_menu_tab{};
ModResult initialize() {
UiMenuTabDesc desc = UI_MENU_TAB_DESC_INIT;
desc.label = "Randomizer";
desc.on_selected = OnMenuTabSelected;
ModResult res =
session::svc_mng.ui->register_menu_tab(session::svc_mng.mod_ctx, &desc, &g_menu_tab);
ModResult res = buildMenuTab();
if (res != MOD_OK) {
mods::log::error("failed to initialize randomizer menu tab!");
return res;
}