diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f998c0..a2bbd96 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,14 +19,15 @@ 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 include/characteristic/endurance.hpp include/characteristic/chance.hpp + include/gui/menu.hpp ) set(SOURCE_FILES @@ -37,13 +38,14 @@ 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 src/characteristic/chance.cpp + src/gui/menu.cpp ) set(SOURCES 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/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/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/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(); + } +} 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);