summaryrefslogtreecommitdiff
path: root/src/views/dashboard.cpp
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-08-03 19:22:36 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-08-03 19:22:36 +0200
commit853bbb3752a5fa2f58ef456ffb6e3a552e13cb11 (patch)
treece49a533f82a42a65fa6a4771a7b8fbfe33798cf /src/views/dashboard.cpp
initial commit
Diffstat (limited to 'src/views/dashboard.cpp')
-rw-r--r--src/views/dashboard.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/views/dashboard.cpp b/src/views/dashboard.cpp
new file mode 100644
index 0000000..16d31c4
--- /dev/null
+++ b/src/views/dashboard.cpp
@@ -0,0 +1,65 @@
+#include "views.hpp"
+
+#include "imgui.h"
+
+void show_dashboard()
+{
+ if (ImGui::BeginMainMenuBar())
+ {
+ if (ImGui::BeginMenu("File"))
+ {
+ if (ImGui::MenuItem("Open", "Ctrl+O")) { /* Handle Open */ }
+ if (ImGui::MenuItem("Save", "Ctrl+S")) { /* Handle Save */ }
+
+ ImGui::EndMenu();
+ }
+ ImGui::EndMainMenuBar();
+ }
+
+ ImGuiIO& io = ImGui::GetIO();
+ float menuBarHeight = ImGui::GetFrameHeight();
+ float statusBarHeight = 26.0f;
+ ImGui::SetNextWindowPos(ImVec2(0, menuBarHeight));
+ ImGui::SetNextWindowSize(ImVec2(io.DisplaySize.x, io.DisplaySize.y - menuBarHeight - statusBarHeight));
+
+ ImGui::Begin("AccountingMainWindow", nullptr, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse);
+
+ ImGui::AlignTextToFramePadding();
+ const char* names[3] = { "Incoming", "Outgoing", "Contacts" };
+ void (*drawcalls[3])(void) = { show_contacts, show_contacts, show_contacts };
+
+ if (ImGui::BeginTabBar("mainNavigationTabBar", 0))
+ {
+ for (int n = 0; n < IM_ARRAYSIZE(names); n++)
+ if (ImGui::BeginTabItem(names[n], 0, ImGuiTabItemFlags_None))
+ {
+ ImGui::Spacing();
+ drawcalls[n]();
+ ImGui::EndTabItem();
+ }
+ ImGui::EndTabBar();
+ }
+
+ ImGui::End();
+
+ // Status bar.
+ ImGui::SetNextWindowPos(ImVec2(0, io.DisplaySize.y - statusBarHeight));
+ ImGui::SetNextWindowSize(ImVec2(io.DisplaySize.x, statusBarHeight));
+
+ ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(10, 3));
+ ImGui::Begin("StatusBar", nullptr,
+ ImGuiWindowFlags_NoTitleBar |
+ ImGuiWindowFlags_NoResize |
+ ImGuiWindowFlags_NoMove |
+ ImGuiWindowFlags_NoScrollbar |
+ ImGuiWindowFlags_NoSavedSettings |
+ ImGuiWindowFlags_NoBringToFrontOnFocus |
+ ImGuiWindowFlags_NoCollapse);
+
+ ImGui::Text("Working on: []");
+ ImGui::SameLine();
+ ImGui::Text("Status: []");
+
+ ImGui::End();
+ ImGui::PopStyleVar();
+} \ No newline at end of file