#include "UI.hpp" #include "Model/Project.hpp" #include "UI/Localization.hpp" #include "UI/States.hpp" #include namespace { void ProjectTab_Normal() { // TODO } void ProjectTab_NoProject() { auto ls = LocaleStrings::Instance.get(); if (ImGui::Button(ls->NewProject.Get())) { // TODO } if (ImGui::Button(ls->OpenProject.Get())) { // TODO } ImGui::Separator(); ImGui::Text(ls->Recents.Get()); ImGui::SameLine(); if (ImGui::Button(ls->ClearRecents.Get())) { // TODO } // TODO } } // namespace void UI::MainWindow() { auto ls = LocaleStrings::Instance.get(); auto& uis = UIState::GetInstance(); auto windowSize = ImGui::GetMainViewport()->Size; ImGui::SetNextWindowSize({ windowSize.x, windowSize.y }); ImGui::SetNextWindowPos({ 0, 0 }); ImGui::Begin("##MainWindow", nullptr, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize); if (ImGui::BeginTabBar("##MainWindowTabs")) { if (ImGui::BeginTabItem(ls->TabSettings.Get())) { UI::SettingsTab(); ImGui::EndTabItem(); } if (ImGui::BeginTabItem(ls->TabProject.Get())) { if (uis.CurrentProject) { ProjectTab_Normal(); } else { ProjectTab_NoProject(); } ImGui::EndTabItem(); } if (!uis.CurrentProject) { // No project open, simply skip all project specific tabs goto endTab; } if (ImGui::BeginTabItem(ls->TabDatabaseView.Get())) { UI::DatabaseViewTab(); ImGui::EndTabItem(); } if (ImGui::BeginTabItem(ls->TabItems.Get())) { UI::ItemsTab(); ImGui::EndTabItem(); } if (ImGui::BeginTabItem(ls->TabExport.Get())) { UI::ExportTab(); ImGui::EndTabItem(); } endTab: ImGui::EndTabBar(); } ImGui::End(); }