mirror of https://github.com/xemu-project/xemu.git
ui: Create vector of main menu views
This commit is contained in:
parent
9c06980275
commit
328eff8eaa
ui/xui
|
@ -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;
|
||||
|
|
|
@ -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<MainMenuTabView*> m_views;
|
||||
MainMenuGeneralView m_general_view;
|
||||
MainMenuInputView m_input_view;
|
||||
MainMenuDisplayView m_display_view;
|
||||
|
|
Loading…
Reference in New Issue