diff options
Diffstat (limited to 'core/src/UI/UI_MainWindow.cpp')
-rw-r--r-- | core/src/UI/UI_MainWindow.cpp | 65 |
1 files changed, 31 insertions, 34 deletions
diff --git a/core/src/UI/UI_MainWindow.cpp b/core/src/UI/UI_MainWindow.cpp index 8131508..ce6e2e0 100644 --- a/core/src/UI/UI_MainWindow.cpp +++ b/core/src/UI/UI_MainWindow.cpp @@ -2,7 +2,7 @@ #include "Model/GlobalStates.hpp" #include "Model/Project.hpp" -#include "UI/Localization.hpp" +#include "Utils/I18n.hpp" #include <IconsFontAwesome.h> #include <imgui.h> @@ -16,25 +16,23 @@ namespace fs = std::filesystem; namespace { void ProjectTab_Normal() { - auto ls = LocaleStrings::Instance.get(); auto& gs = GlobalStates::GetInstance(); - if (ImGui::Button(ls->Close.Get())) { + if (ImGui::Button(ICON_FA_TIMES " " I18N_TEXT("Close", L10N_CLOSE))) { gs.SetCurrentProject(nullptr); return; } ImGui::SameLine(); - if (ImGui::Button(ls->OpenActiveProjectInFileSystem.Get())) { + if (ImGui::Button(ICON_FA_FOLDER " " I18N_TEXT("Open in filesystem", L10N_PROJECT_OPEN_IN_FILESYSTEM))) { // TODO } - ImGui::Text("%s%s", ls->ActiveProjectName.Get(), gs.GetCurrentProject()->GetName().c_str()); - ImGui::Text("%s%s", ls->ActiveProjectPath.Get(), gs.GetCurrentProject()->GetPathString().c_str()); + ImGui::Text("%s %s", I18N_TEXT("Project name", L10N_PROJECT_NAME), gs.GetCurrentProject()->GetName().c_str()); + ImGui::Text("%s %s", I18N_TEXT("Project path", L10N_PROJECT_PATH), gs.GetCurrentProject()->GetPathString().c_str()); } void ProjectTab_NoProject() { - auto ls = LocaleStrings::Instance.get(); auto& gs = GlobalStates::GetInstance(); bool openedDummy = true; @@ -54,37 +52,37 @@ void ProjectTab_NoProject() } }; - if (ImGui::Button(ls->NewProject.Get())) { + if (ImGui::Button(I18N_TEXT("Create project....", L10N_PROJECT_NEW))) { ImGui::SetNextWindowCentered(); - ImGui::OpenPopup(ls->NewProjectDialogTitle.Get()); + ImGui::OpenPopup(I18N_TEXT("Create project wizard", L10N_PROJECT_NEW_DIALOG_TITLE)); } // Make it so that the modal dialog has a close button - if (ImGui::BeginPopupModal(ls->NewProjectDialogTitle.Get(), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { - ImGui::InputTextWithHint("##ProjectName", ls->NewProjectNameHint.Get(), &projectName); + if (ImGui::BeginPopupModal(I18N_TEXT("Create project wizard", L10N_PROJECT_NEW_DIALOG_TITLE), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { + ImGui::InputTextWithHint("##ProjectName", I18N_TEXT("Project name", L10N_PROJECT_NAME), &projectName); - if (ImGui::InputTextWithHint("##ProjectPath", ls->NewProjectPathHint.Get(), &dirName)) { + if (ImGui::InputTextWithHint("##ProjectPath", I18N_TEXT("Project path", L10N_PROJECT_PATH), &dirName)) { // Changed, validate value TrySelectPath(fs::path(dirName)); } ImGui::SameLine(); if (ImGui::Button("...")) { - auto selection = pfd::select_folder(ls->NewProjectPathDialogTitle.Get()).result(); + auto selection = pfd::select_folder(I18N_TEXT("Project path", L10N_PROJECT_NEW_PATH_DIALOG_TITLE)).result(); if (!selection.empty()) { TrySelectPath(fs::path(selection)); } } if (projectName.empty()) { - ImGui::ErrorMessage("%s", ls->NewProjectEmptyNameError.Get()); + ImGui::ErrorMessage("%s", I18N_TEXT("Name cannot be empty", L10N_EMPTY_NAME_ERROR)); } if (!dirNameIsValid) { - ImGui::ErrorMessage("%s", ls->NewProjectInvalidPathError.Get()); + ImGui::ErrorMessage("%s", I18N_TEXT("Invalid path", L10N_INVALID_PATH_ERROR)); } ImGui::Spacing(); - if (ImGui::Button(ls->Confirm.Get(), !dirNameIsValid || projectName.empty())) { + if (ImGui::Button(I18N_TEXT("Confirm", L10N_CONFIRM), !dirNameIsValid || projectName.empty())) { ImGui::CloseCurrentPopup(); gs.SetCurrentProject(std::make_unique<Project>(std::move(dirPath), std::move(projectName))); @@ -97,7 +95,7 @@ void ProjectTab_NoProject() } ImGui::SameLine(); - if (ImGui::Button(ls->Cancel.Get())) { + if (ImGui::Button(I18N_TEXT("Cancel", L10N_CANCEL))) { ImGui::CloseCurrentPopup(); } @@ -105,8 +103,8 @@ void ProjectTab_NoProject() } ImGui::SameLine(); - if (ImGui::Button(ls->OpenProject.Get())) { - auto selection = pfd::open_file(ls->OpenProjectDialogTitle.Get()).result(); + if (ImGui::Button(I18N_TEXT("Open project...", L10N_PROJECT_OPEN))) { + auto selection = pfd::open_file(I18N_TEXT("Open project", L10N_PROJECT_OPEN_DIALOG_TITLE)).result(); if (!selection.empty()) { fs::path path(selection[0]); @@ -124,10 +122,10 @@ void ProjectTab_NoProject() // Recent projects ImGui::Separator(); - ImGui::TextUnformatted(ls->RecentProjects.Get()); + ImGui::TextUnformatted(I18N_TEXT("Recent projects", L10N_PROJECT_RECENTS)); ImGui::SameLine(); - if (ImGui::Button(ls->ClearRecentProjects.Get())) { + if (ImGui::Button(I18N_TEXT("Clear", L10N_PROJECT_RECENTS_CLEAR))) { gs.ClearRecentProjects(); } @@ -136,7 +134,7 @@ void ProjectTab_NoProject() size_t toRemoveIdx = rp.size(); if (rp.empty()) { - ImGui::TextUnformatted(ls->NoRecentProjectsMessage.Get()); + ImGui::TextUnformatted(I18N_TEXT("No recent projects", L10N_PROJECT_RECENTS_NONE_PRESENT)); } else { for (auto it = rp.rbegin(); it != rp.rend(); ++it) { auto& [path, recent] = *it; @@ -155,7 +153,7 @@ void ProjectTab_NoProject() } } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("%s", ls->OpenRecentProjectTooltip.Get()); + ImGui::SetTooltip(I18N_TEXT("Open this project", L10N_PROJECT_RECENTS_OPEN_TOOLTIP)); } ImGui::SameLine(); @@ -163,7 +161,7 @@ void ProjectTab_NoProject() toRemoveIdx = idx; } if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("%s", ls->DeleteRecentProjectTooltip.Get()); + ImGui::SetTooltip(I18N_TEXT("Delete this project from the Recent Projects list, the project itself will not be affected", L10N_PROJECT_RECENTS_DELETE_TOOLTIP)); } ImGui::PopID(); @@ -176,10 +174,10 @@ void ProjectTab_NoProject() if (openErrorDialog) { ImGui::SetNextWindowCentered(); - ImGui::OpenPopup(ls->Error.Get()); + ImGui::OpenPopup(I18N_TEXT("Error", L10N_ERROR)); } - if (ImGui::BeginPopupModal(ls->Error.Get(), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { - ImGui::ErrorMessage("%s", ls->InvalidProjectFormat.Get()); + if (ImGui::BeginPopupModal(I18N_TEXT("Error", L10N_ERROR), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { + ImGui::ErrorMessage("%s", I18N_TEXT("Invalid project file", L10N_PROJECT_INVALID_PROJECT_FORMAT)); ImGui::EndPopup(); } } @@ -187,7 +185,6 @@ void ProjectTab_NoProject() void UI::MainWindow() { - auto ls = LocaleStrings::Instance.get(); auto& gs = GlobalStates::GetInstance(); auto windowSize = ImGui::GetMainViewport()->Size; @@ -195,12 +192,12 @@ void UI::MainWindow() ImGui::SetNextWindowPos({ 0, 0 }); ImGui::Begin("##MainWindow", nullptr, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize); if (ImGui::BeginTabBar("MainWindowTabs")) { - if (ImGui::BeginTabItem(ls->SettingsTab.Get())) { + if (ImGui::BeginTabItem(ICON_FA_COGS " " I18N_TEXT("Settings", L10N_MAIN_TAB_SETTINGS))) { UI::SettingsTab(); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem(ls->ProjectTab.Get(), nullptr)) { + if (ImGui::BeginTabItem(ICON_FA_FILE " " I18N_TEXT("Project", L10N_MAIN_WINDOW_TAB_PROJECT), nullptr)) { if (gs.HasCurrentProject()) { ProjectTab_Normal(); } else { @@ -213,22 +210,22 @@ void UI::MainWindow() goto endTab; } - if (ImGui::BeginTabItem(ls->DatabaseViewTab.Get())) { + if (ImGui::BeginTabItem(ICON_FA_DATABASE " " I18N_TEXT("Data", L10N_MAIN_WINDOW_TAB_DATABASE_VIEW))) { UI::DatabaseViewTab(); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem(ls->ItemsTab.Get())) { + if (ImGui::BeginTabItem(ICON_FA_BOX " " I18N_TEXT("Items", L10N_MAIN_WINDOW_TAB_ITEMS))) { UI::ItemsTab(); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem(ls->WorkflowsTab.Get())) { + if (ImGui::BeginTabItem(ICON_FA_SCROLL " " I18N_TEXT("Workflows", L10N_MAIN_WINDOW_TAB_WORKFLOWS))) { UI::WorkflowsTab(); ImGui::EndTabItem(); } - if (ImGui::BeginTabItem(ls->TemplatesTab.Get())) { + if (ImGui::BeginTabItem(ICON_FA_TABLE " " I18N_TEXT("Templates", L10N_MAIN_WINDOW_TAB_TEMPLATES))) { UI::TemplatesTab(); ImGui::EndTabItem(); } |