summaryrefslogtreecommitdiff
path: root/src/ui/ui_start.cpp
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-09-12 18:21:53 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-09-12 18:21:53 +0200
commit5159a53e58cd4b3652ce6255856d50e15c275f80 (patch)
tree736d854c472cea59ae919cdc824730819787d4d0 /src/ui/ui_start.cpp
parentabf01f657d068aa6b22ab962cbe01b88f3b5f7ea (diff)
startup views & new administration setup
Diffstat (limited to 'src/ui/ui_start.cpp')
-rw-r--r--src/ui/ui_start.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/ui/ui_start.cpp b/src/ui/ui_start.cpp
new file mode 100644
index 0000000..f1377ec
--- /dev/null
+++ b/src/ui/ui_start.cpp
@@ -0,0 +1,50 @@
+#include "ui.hpp"
+#include "imgui.h"
+#include "administration.hpp"
+#include "locales.hpp"
+#include "tinyfiledialogs.h"
+#include "administration_writer.hpp"
+
+void create_new_administration()
+{
+ // @localize
+ char const * lFilterPatterns[1] = { "*.openbook" };
+ char* save_path = tinyfd_saveFileDialog("Select destination", NULL, 1, lFilterPatterns, NULL);
+
+ if (!save_path) return;
+
+ administration_create_empty(save_path);
+
+ administration_writer_save_all_cost_centers_blocking();
+ administration_writer_save_all_tax_brackets_blocking();
+ administration_writer_save_all_administration_info_blocking();
+
+ ui_set_state(main_state::UI_SETTINGS);
+}
+
+void ui_draw_start()
+{
+ // Get the window size
+ ImVec2 windowSize = ImGui::GetContentRegionAvail();
+
+ // Calculate half the width for each button
+ ImVec2 buttonSize(windowSize.x * 0.5f, windowSize.y);
+
+ ImGui::Columns(2, nullptr, false); // 2 columns, no border
+
+ // Left button
+ if (ImGui::Button("Create", buttonSize))
+ {
+ create_new_administration();
+ }
+
+ ImGui::NextColumn();
+
+ // Right button
+ if (ImGui::Button("Load", buttonSize))
+ {
+ // Handle Load action
+ }
+
+ ImGui::Columns(1); // Reset columns
+} \ No newline at end of file