summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main_linux.cpp142
-rw-r--r--src/main_windows.cpp (renamed from src/main.cpp)6
-rw-r--r--src/ui/ui_tax.cpp2
3 files changed, 148 insertions, 2 deletions
diff --git a/src/main_linux.cpp b/src/main_linux.cpp
new file mode 100644
index 0000000..f30f063
--- /dev/null
+++ b/src/main_linux.cpp
@@ -0,0 +1,142 @@
+// Dear ImGui: standalone example application for GLFW + OpenGL2, using legacy fixed pipeline
+// (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.)
+
+// Learn about Dear ImGui:
+// - FAQ https://dearimgui.com/faq
+// - Getting Started https://dearimgui.com/getting-started
+// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
+// - Introduction, links and more at the top of imgui.cpp
+
+// **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)**
+// **Prefer using the code in the example_glfw_opengl2/ folder**
+// See imgui_impl_glfw.cpp for details.
+
+#include "imgui.h"
+#include "imgui_impl_glfw.h"
+#include "imgui_impl_opengl2.h"
+#include <stdio.h>
+#ifdef __APPLE__
+#define GL_SILENCE_DEPRECATION
+#endif
+#include <GLFW/glfw3.h>
+
+#include "timer.h"
+#include "ui.hpp"
+#include "administration.hpp"
+#include "administration_writer.hpp"
+#include "administration_reader.hpp"
+
+// [Win32] Our example includes a copy of glfw3.lib pre-compiled with VS2010 to maximize ease of testing and compatibility with old VS compilers.
+// To link with VS2010-era libraries, VS2015+ requires linking with legacy_stdio_definitions.lib, which we do using this pragma.
+// Your own project should not be affected, as you are likely to link with a newer binary of GLFW that is adequate for your version of Visual Studio.
+#if defined(_MSC_VER) && (_MSC_VER >= 1900) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS)
+#pragma comment(lib, "legacy_stdio_definitions")
+#endif
+
+static void glfw_error_callback(int error, const char* description)
+{
+ fprintf(stderr, "GLFW Error %d: %s\n", error, description);
+}
+
+// Main code
+int main(int argc, char** argv)
+{
+ glfwSetErrorCallback(glfw_error_callback);
+ if (!glfwInit())
+ return 1;
+
+ // Create window with graphics context
+ float main_scale = ImGui_ImplGlfw_GetContentScaleForMonitor(glfwGetPrimaryMonitor()); // Valid on GLFW 3.3+ only
+ GLFWwindow* window = glfwCreateWindow((int)(1280 * main_scale), (int)(800 * main_scale), "OpenBooks", nullptr, nullptr);
+ if (window == nullptr)
+ return 1;
+ glfwMakeContextCurrent(window);
+ glfwSwapInterval(1); // Enable vsync
+
+ // Setup Dear ImGui context
+ IMGUI_CHECKVERSION();
+ ImGui::CreateContext();
+ ImGuiIO& io = ImGui::GetIO(); (void)io;
+ io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
+ io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
+
+ // Setup Dear ImGui style
+ ImGui::StyleColorsDark();
+ //ImGui::StyleColorsLight();
+
+ // Setup scaling
+ ImGuiStyle& style = ImGui::GetStyle();
+ style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
+ style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
+
+ // Setup Platform/Renderer backends
+ ImGui_ImplGlfw_InitForOpenGL(window, true);
+ ImGui_ImplOpenGL2_Init();
+
+ style.FontSizeBase = 18.0f;
+ io.Fonts->AddFontFromFileTTF("build/Segoe UI.ttf");
+ ui::fontBold = io.Fonts->AddFontFromFileTTF("build/Segoe UI Bold.ttf");
+ ui::fontBig = io.Fonts->AddFontFromFileTTF("build/Segoe UI Bold.ttf", 30);
+
+ ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
+
+ timer_lib_initialize();
+ administration_writer::create();
+
+ if (argc < 2) {
+ administration::create_default("");
+ }
+ else {
+ administration_reader::open_existing(argv[1]);
+ }
+
+ while (!glfwWindowShouldClose(window))
+ {
+ glfwPollEvents();
+ if (glfwGetWindowAttrib(window, GLFW_ICONIFIED) != 0)
+ {
+ ImGui_ImplGlfw_Sleep(10);
+ continue;
+ }
+
+ // Start the Dear ImGui frame
+ ImGui_ImplOpenGL2_NewFrame();
+ ImGui_ImplGlfw_NewFrame();
+ ImGui::NewFrame();
+
+ ui::draw_main();
+
+ // Rendering
+ ImGui::Render();
+ int display_w, display_h;
+ glfwGetFramebufferSize(window, &display_w, &display_h);
+ glViewport(0, 0, display_w, display_h);
+ glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+ // If you are using this code with non-legacy OpenGL header/contexts (which you should not, prefer using imgui_impl_opengl3.cpp!!),
+ // you may need to backup/reset/restore other state, e.g. for current shader using the commented lines below.
+ //GLint last_program;
+ //glGetIntegerv(GL_CURRENT_PROGRAM, &last_program);
+ //glUseProgram(0);
+ ImGui_ImplOpenGL2_RenderDrawData(ImGui::GetDrawData());
+ //glUseProgram(last_program);
+
+ glfwMakeContextCurrent(window);
+ glfwSwapBuffers(window);
+ }
+
+ administration_writer::destroy();
+ timer_lib_shutdown();
+ administration::destroy();
+
+ // Cleanup
+ ImGui_ImplOpenGL2_Shutdown();
+ ImGui_ImplGlfw_Shutdown();
+ ImGui::DestroyContext();
+
+ glfwDestroyWindow(window);
+ glfwTerminate();
+
+ return 0;
+}
diff --git a/src/main.cpp b/src/main_windows.cpp
index ffdeb03..974949b 100644
--- a/src/main.cpp
+++ b/src/main_windows.cpp
@@ -14,6 +14,8 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#ifdef win64
+
#include "imgui.h"
#include "imgui_impl_win32.h"
#include "imgui_impl_dx11.h"
@@ -312,4 +314,6 @@ LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
return 0;
}
return ::DefWindowProcW(hWnd, msg, wParam, lParam);
-} \ No newline at end of file
+}
+
+#endif \ No newline at end of file
diff --git a/src/ui/ui_tax.cpp b/src/ui/ui_tax.cpp
index 8a119e4..af05cd7 100644
--- a/src/ui/ui_tax.cpp
+++ b/src/ui/ui_tax.cpp
@@ -22,7 +22,7 @@
#include "locales.hpp"
#include "administration.hpp"
-tax_statement* statement = 0;
+static tax_statement* statement = 0;
void ui::setup_tax_report()
{