aboutsummaryrefslogtreecommitdiff
path: root/core/src/UI/UI_MainWindow.cpp
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2021-03-29 13:47:55 -0700
committerrtk0c <[email protected]>2021-03-29 13:47:55 -0700
commit6032ae108064650324b2c45352e1baa5b36961cc (patch)
tree79ebd1df933ca9c3d8de4a5a537fffeadf7a6c9b /core/src/UI/UI_MainWindow.cpp
parent2d7e772909571676dd4266337d43086bd2927e93 (diff)
Project tab
Diffstat (limited to 'core/src/UI/UI_MainWindow.cpp')
-rw-r--r--core/src/UI/UI_MainWindow.cpp64
1 files changed, 42 insertions, 22 deletions
diff --git a/core/src/UI/UI_MainWindow.cpp b/core/src/UI/UI_MainWindow.cpp
index 8b1e71d..0c8e7b9 100644
--- a/core/src/UI/UI_MainWindow.cpp
+++ b/core/src/UI/UI_MainWindow.cpp
@@ -1,38 +1,44 @@
#include "UI.hpp"
+#include "Model/Project.hpp"
#include "UI/Localization.hpp"
+#include "UI/States.hpp"
#include <imgui.h>
-void UI::MainWindow() {
+namespace {
+void ProjectTab_Normal() {
+ // TODO
+}
+
+void ProjectTab_NoProject() {
auto ls = LocaleStrings::Instance.get();
- float menuBarHeight;
- ImGui::BeginMainMenuBar();
- {
- menuBarHeight = ImGui::GetWindowHeight();
+ if (ImGui::Button(ls->NewProject.Get())) {
+ // TODO
+ }
+ if (ImGui::Button(ls->OpenProject.Get())) {
+ // TODO
+ }
- if (ImGui::BeginMenu(ls->MenuBarFile.Get())) {
- if (ImGui::MenuItem(ls->MenuBarNewWindow.Get())) {
- // TODO
- }
- if (ImGui::MenuItem(ls->MenuBarNewProject.Get())) {
- // TODO
- }
+ ImGui::Separator();
+ ImGui::Text(ls->Recents.Get());
+ ImGui::SameLine();
+ if (ImGui::Button(ls->ClearRecents.Get())) {
+ // TODO
+ }
- ImGui::Separator();
- if (ImGui::MenuItem(ls->MenuBarOpenProject.Get())) {
- // TODO
- }
+ // TODO
+}
+} // namespace
- ImGui::EndMenu();
- }
- }
- ImGui::EndMainMenuBar();
+void UI::MainWindow() {
+ auto ls = LocaleStrings::Instance.get();
+ auto& uis = UIState::GetInstance();
auto windowSize = ImGui::GetMainViewport()->Size;
- ImGui::SetNextWindowSize({ windowSize.x, windowSize.y - menuBarHeight });
- ImGui::SetNextWindowPos({ 0, menuBarHeight });
+ 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())) {
@@ -40,6 +46,19 @@ void UI::MainWindow() {
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();
@@ -55,6 +74,7 @@ void UI::MainWindow() {
ImGui::EndTabItem();
}
+ endTab:
ImGui::EndTabBar();
}
ImGui::End();