From 328eff8eaa49a1e91eec230a887741e28b01f942 Mon Sep 17 00:00:00 2001 From: Matt Borgerson Date: Sat, 7 May 2022 20:03:50 -0700 Subject: [PATCH] ui: Create vector of main menu views --- ui/xui/main-menu.cc | 40 ++++++++++++++++++++++------------------ ui/xui/main-menu.hh | 8 +++----- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/ui/xui/main-menu.cc b/ui/xui/main-menu.cc index 78f435956f..1a9829e563 100644 --- a/ui/xui/main-menu.cc +++ b/ui/xui/main-menu.cc @@ -37,6 +37,8 @@ #include "../xemu-os-utils.h" #include "../xemu-xbe.h" +MainMenuScene g_main_menu; + MainMenuTabView::~MainMenuTabView() {} void MainMenuTabView::Draw() {} @@ -865,16 +867,11 @@ void MainMenuAboutView::Draw() ImGui::Text("for more information"); } -MainMenuTabButton::MainMenuTabButton(std::string text, std::string icon, MainMenuTabView *view) -: m_icon(icon), m_text(text), m_view(view) +MainMenuTabButton::MainMenuTabButton(std::string text, std::string icon) +: m_icon(icon), m_text(text) { } -MainMenuTabView *MainMenuTabButton::view() -{ - return m_view; -} - bool MainMenuTabButton::Draw(bool selected) { ImGuiStyle &style = ImGui::GetStyle(); @@ -905,14 +902,14 @@ bool MainMenuTabButton::Draw(bool selected) MainMenuScene::MainMenuScene() : m_animation(0.12, 0.12), - m_general_button("General", ICON_FA_GEARS, &m_general_view), - m_input_button("Input", ICON_FA_GAMEPAD, &m_input_view), - m_display_button("Display", ICON_FA_TV, &m_display_view), - m_audio_button("Audio", ICON_FA_VOLUME_HIGH, &m_audio_view), - m_network_button("Network", ICON_FA_NETWORK_WIRED, &m_network_view), - // m_snapshots_button("Snapshots", ICON_FA_CLOCK_ROTATE_LEFT, &m_snapshots_view), - m_system_button("System", ICON_FA_MICROCHIP, &m_system_view), - m_about_button("About", ICON_FA_CIRCLE_INFO, &m_about_view) + m_general_button("General", ICON_FA_GEARS), + m_input_button("Input", ICON_FA_GAMEPAD), + m_display_button("Display", ICON_FA_TV), + m_audio_button("Audio", ICON_FA_VOLUME_HIGH), + m_network_button("Network", ICON_FA_NETWORK_WIRED), + // m_snapshots_button("Snapshots", ICON_FA_CLOCK_ROTATE_LEFT), + m_system_button("System", ICON_FA_MICROCHIP), + m_about_button("About", ICON_FA_CIRCLE_INFO) { m_had_focus_last_frame = false; m_focus_view = false; @@ -925,6 +922,15 @@ MainMenuScene::MainMenuScene() m_tabs.push_back(&m_system_button); m_tabs.push_back(&m_about_button); + m_views.push_back(&m_general_view); + m_views.push_back(&m_input_view); + m_views.push_back(&m_display_view); + m_views.push_back(&m_audio_view); + m_views.push_back(&m_network_view); + // m_views.push_back(&m_snapshots_view); + m_views.push_back(&m_system_view); + m_views.push_back(&m_about_view); + m_current_view_index = 0; m_next_view_index = m_current_view_index; } @@ -1124,7 +1130,7 @@ bool MainMenuScene::Draw() ImGui::SetKeyboardFocusHere(); m_focus_view = false; } - m_tabs[m_current_view_index]->view()->Draw(); + m_views[m_current_view_index]->Draw(); ImGui::PopFont(); ImGui::EndChild(); @@ -1138,5 +1144,3 @@ bool MainMenuScene::Draw() return !m_animation.IsComplete(); } - -MainMenuScene g_main_menu; diff --git a/ui/xui/main-menu.hh b/ui/xui/main-menu.hh index 5a0efd01f3..a253fbabe8 100644 --- a/ui/xui/main-menu.hh +++ b/ui/xui/main-menu.hh @@ -127,13 +127,10 @@ public: class MainMenuTabButton { protected: - std::string m_icon; - std::string m_text; - MainMenuTabView *m_view; + std::string m_icon, m_text; public: - MainMenuTabButton(std::string text, std::string icon = "", MainMenuTabView *view = nullptr); - MainMenuTabView *view(); + MainMenuTabButton(std::string text, std::string icon = ""); bool Draw(bool selected); }; @@ -155,6 +152,7 @@ protected: // m_snapshots_button, m_system_button, m_about_button; + std::vector m_views; MainMenuGeneralView m_general_view; MainMenuInputView m_input_view; MainMenuDisplayView m_display_view;