From 45c92db7583e985d7ebfa6b3460c424eb99ab7d2 Mon Sep 17 00:00:00 2001 From: Pcornat Date: Tue, 11 Jan 2022 22:33:29 +0100 Subject: [PATCH 1/2] Better organization. --- CMakeLists.txt | 18 +++++++++--------- include/{ => gui}/gui.hpp | 0 include/{ => gui}/gui_data.hpp | 6 ++++++ include/{ => gui}/window.hpp | 2 +- src/{ => gui}/gui.cpp | 6 +++--- src/{ => gui}/gui_data.cpp | 4 ++-- src/{ => gui}/window.cpp | 4 ++-- src/main.cpp | 6 +++--- 8 files changed, 26 insertions(+), 20 deletions(-) rename include/{ => gui}/gui.hpp (100%) rename include/{ => gui}/gui_data.hpp (78%) rename include/{ => gui}/window.hpp (96%) rename src/{ => gui}/gui.cpp (95%) rename src/{ => gui}/gui_data.cpp (55%) rename src/{ => gui}/window.cpp (95%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f998c0..d095263 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,9 +4,9 @@ project(BillySheet LANGUAGES CXX C) find_package(OpenGL REQUIRED) set(PRECOMPILE_HEADERS - include/gui.hpp - include/gui_data.hpp - include/window.hpp + include/gui/gui.hpp + include/gui/gui_data.hpp + include/gui/window.hpp ) set(SOURCE_HEADERS @@ -19,9 +19,9 @@ set(SOURCE_HEADERS include/imgui/imstb_rectpack.h include/imgui/imstb_textedit.h include/imgui/imstb_truetype.h - include/gui.hpp - include/gui_data.hpp - include/window.hpp + include/gui/gui.hpp + include/gui/gui_data.hpp + include/gui/window.hpp include/character_sheet.hpp include/characteristic/habilete.hpp include/characteristic/adresse.hpp @@ -37,9 +37,9 @@ set(SOURCE_FILES src/imgui/imgui_tables.cpp src/imgui/imgui_widgets.cpp src/main.cpp - src/gui.cpp - src/gui_data.cpp - src/window.cpp + src/gui/gui.cpp + src/gui/gui_data.cpp + src/gui/window.cpp src/character_sheet.cpp src/characteristic/adresse.cpp src/characteristic/endurance.cpp diff --git a/include/gui.hpp b/include/gui/gui.hpp similarity index 100% rename from include/gui.hpp rename to include/gui/gui.hpp diff --git a/include/gui_data.hpp b/include/gui/gui_data.hpp similarity index 78% rename from include/gui_data.hpp rename to include/gui/gui_data.hpp index 985e615..5e72780 100644 --- a/include/gui_data.hpp +++ b/include/gui/gui_data.hpp @@ -2,8 +2,11 @@ #define BILLYSHEET_GUI_DATA_HPP #include "character_sheet.hpp" +#include #include +namespace fs = std::filesystem; + namespace gui { class Window; @@ -13,6 +16,9 @@ namespace gui { character::CharacterSheet billy; + fs::path save_path{ "./" }; + std::string filename{ "character_sheet.json" }; + public: GuiData() = delete; diff --git a/include/window.hpp b/include/gui/window.hpp similarity index 96% rename from include/window.hpp rename to include/gui/window.hpp index 4d4b020..4abb816 100644 --- a/include/window.hpp +++ b/include/gui/window.hpp @@ -3,7 +3,7 @@ #include #include "imgui_impl_opengl3_loader.h" -#include +#include "GLFW/glfw3.h" namespace gui { class Window final { diff --git a/src/gui.cpp b/src/gui/gui.cpp similarity index 95% rename from src/gui.cpp rename to src/gui/gui.cpp index d747a4e..5f153e5 100644 --- a/src/gui.cpp +++ b/src/gui/gui.cpp @@ -1,10 +1,10 @@ -#include "gui.hpp" -#include "gui_data.hpp" +#include "gui/gui.hpp" +#include "gui/gui_data.hpp" #include "imgui.h" #include "imgui_impl_glfw.h" #include "imgui_impl_opengl3.h" #include "imgui_impl_opengl3_loader.h" -#include "window.hpp" +#include "gui/window.hpp" gui::Gui::Gui(gui::GuiData &data) : data(data), font("font/DejaVuSans.ttf") { SPDLOG_DEBUG("Creating GUI"); diff --git a/src/gui_data.cpp b/src/gui/gui_data.cpp similarity index 55% rename from src/gui_data.cpp rename to src/gui/gui_data.cpp index c38f4e1..f6673ec 100644 --- a/src/gui_data.cpp +++ b/src/gui/gui_data.cpp @@ -1,4 +1,4 @@ -#include "gui_data.hpp" -#include "window.hpp" +#include "gui/gui_data.hpp" +#include "gui/window.hpp" gui::Window &gui::GuiData::get_window() const { return window; } diff --git a/src/window.cpp b/src/gui/window.cpp similarity index 95% rename from src/window.cpp rename to src/gui/window.cpp index 9e994a5..f439833 100644 --- a/src/window.cpp +++ b/src/gui/window.cpp @@ -1,6 +1,6 @@ -#include "window.hpp" +#include "gui/window.hpp" #include -#include +#include "spdlog/spdlog.h" static void glfwErrorCallback(int error, const char *message) { SPDLOG_CRITICAL("Error code{}: {}", error, message); diff --git a/src/main.cpp b/src/main.cpp index d0c0988..e841c6f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,8 +1,8 @@ #include #include -#include "window.hpp" -#include "gui_data.hpp" -#include "gui.hpp" +#include "gui/window.hpp" +#include "gui/gui_data.hpp" +#include "gui/gui.hpp" int main() { std::ios::sync_with_stdio(false); From 58a16c68e48202466dc6d38bbd52e5f312ec4b09 Mon Sep 17 00:00:00 2001 From: Pcornat Date: Tue, 11 Jan 2022 22:33:40 +0100 Subject: [PATCH 2/2] Menu bar is coming --- CMakeLists.txt | 2 ++ include/gui/menu.hpp | 23 +++++++++++++++++++++++ src/gui/menu.cpp | 13 +++++++++++++ 3 files changed, 38 insertions(+) create mode 100644 include/gui/menu.hpp create mode 100644 src/gui/menu.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index d095263..a2bbd96 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,7 @@ set(SOURCE_HEADERS include/characteristic/adresse.hpp include/characteristic/endurance.hpp include/characteristic/chance.hpp + include/gui/menu.hpp ) set(SOURCE_FILES @@ -44,6 +45,7 @@ set(SOURCE_FILES src/characteristic/adresse.cpp src/characteristic/endurance.cpp src/characteristic/chance.cpp + src/gui/menu.cpp ) set(SOURCES diff --git a/include/gui/menu.hpp b/include/gui/menu.hpp new file mode 100644 index 0000000..3575d8b --- /dev/null +++ b/include/gui/menu.hpp @@ -0,0 +1,23 @@ +#ifndef BILLYSHEET_MENU_HPP +#define BILLYSHEET_MENU_HPP + + +namespace gui { + class GuiData; + + class Menu final { + private: + GuiData &data; + public: + Menu() noexcept = delete; + + explicit Menu(GuiData &data) noexcept: data(data) {} + + ~Menu() noexcept = default; + + void gui() const noexcept; + }; +} + + +#endif //BILLYSHEET_MENU_HPP diff --git a/src/gui/menu.cpp b/src/gui/menu.cpp new file mode 100644 index 0000000..0b2a620 --- /dev/null +++ b/src/gui/menu.cpp @@ -0,0 +1,13 @@ +#include "gui/menu.hpp" +#include "imgui.h" + +void gui::Menu::gui() const noexcept { + if (ImGui::BeginMainMenuBar()) { + if (ImGui::BeginMenu("File")) { + + + ImGui::EndMenu(); + } + ImGui::EndMainMenuBar(); + } +}