aboutsummaryrefslogtreecommitdiff
path: root/core/src/UI/UI_Templates.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/UI/UI_Templates.cpp')
-rw-r--r--core/src/UI/UI_Templates.cpp49
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) {