diff options
author | rtk0c <[email protected]> | 2021-06-10 18:07:30 -0700 |
---|---|---|
committer | rtk0c <[email protected]> | 2021-06-10 18:07:30 -0700 |
commit | 222cfec6ad882196d8927f73e30d905daae89556 (patch) | |
tree | 9347bb0ebf99cc79e4ee629d0edf7fd744bdeb1b /core/src/UI/UI_Templates.cpp | |
parent | dc09ba073744292a4d4af0445e5095f424fffa22 (diff) |
Polish UI and add translations
Diffstat (limited to 'core/src/UI/UI_Templates.cpp')
-rw-r--r-- | core/src/UI/UI_Templates.cpp | 49 |
1 files changed, 21 insertions, 28 deletions
diff --git a/core/src/UI/UI_Templates.cpp b/core/src/UI/UI_Templates.cpp index d48e8bf..b3a1e05 100644 --- a/core/src/UI/UI_Templates.cpp +++ b/core/src/UI/UI_Templates.cpp @@ -137,16 +137,9 @@ void UI::TemplatesTab() auto ls = LocaleStrings::Instance.get(); auto& project = *GlobalStates::GetInstance().GetCurrentProject(); - enum class PopupType - { - None, - TemplateSelect, - Management, - }; - static std::unique_ptr<TemplateUI> openTemplate; - static AssetList::PopupState popup; - static PopupType popupType = PopupType::None; + static AssetList::ListState state; + bool openedDummy = true; // Toolbar item: close if (ImGui::Button(ls->Close.Get(), openTemplate == nullptr)) { @@ -155,30 +148,30 @@ void UI::TemplatesTab() // Toolbar item: open... ImGui::SameLine(); - if (ImGui::Button("Open...")) { - project.Templates.OpenDetailsPopup(); - popupType = PopupType::TemplateSelect; + if (ImGui::Button(ls->OpenAsset.Get())) { + ImGui::OpenPopup(ls->OpenAssetDialogTitle.Get()); + } + if (ImGui::BeginPopupModal(ls->OpenAssetDialogTitle.Get(), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { + if (ImGui::Button(ls->Open.Get(), state.SelectedAsset == nullptr)) { + auto kind = static_cast<Template::Kind>(state.SelectedAsset->Payload); + openTemplate = TemplateUI::CreateByKind(kind); + } + ImGui::SameLine(); + project.Templates.DisplayControls(state); + project.Templates.DisplayDetailsList(state); + + ImGui::EndPopup(); } // Toolbar item: manage... ImGui::SameLine(); - if (ImGui::Button("Manage...")) { - project.Templates.OpenDetailsPopup(); - popupType = PopupType::Management; + if (ImGui::Button(ls->ManageAssets.Get())) { + ImGui::OpenPopup(ls->ManageAssetsDialogTitle.Get()); } - - switch (popupType) { - case PopupType::TemplateSelect: - if (ImGui::Button("Open", popup.SelectedAsset == nullptr)) { - auto kind = static_cast<Template::Kind>(popup.SelectedAsset->Payload); - openTemplate = TemplateUI::CreateByKind(kind); - } - project.Templates.DisplayDetailsPopup(popup); - break; - - default: - project.Templates.DisplayDetailsPopup(popup); - break; + if (ImGui::BeginPopupModal(ls->ManageAssetsDialogTitle.Get(), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { + project.Templates.DisplayControls(state); + project.Templates.DisplayDetailsList(state); + ImGui::EndPopup(); } if (openTemplate) { |