Submodule for JSON added.
Menu data and menu in their own folder.
This commit is contained in:
parent
27c571a6b9
commit
9142896237
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -4,3 +4,6 @@
|
|||||||
[submodule "external/glfw"]
|
[submodule "external/glfw"]
|
||||||
path = external/glfw
|
path = external/glfw
|
||||||
url = https://github.com/glfw/glfw.git
|
url = https://github.com/glfw/glfw.git
|
||||||
|
[submodule "external/json"]
|
||||||
|
path = external/json
|
||||||
|
url = https://github.com/nlohmann/json.git
|
||||||
|
@ -27,8 +27,8 @@ set(SOURCE_HEADERS
|
|||||||
include/characteristic/adresse.hpp
|
include/characteristic/adresse.hpp
|
||||||
include/characteristic/endurance.hpp
|
include/characteristic/endurance.hpp
|
||||||
include/characteristic/chance.hpp
|
include/characteristic/chance.hpp
|
||||||
include/gui/menu.hpp
|
include/gui/menu/menu.hpp
|
||||||
)
|
include/gui/menu/menu_data.hpp)
|
||||||
|
|
||||||
set(SOURCE_FILES
|
set(SOURCE_FILES
|
||||||
src/imgui/imgui.cpp
|
src/imgui/imgui.cpp
|
||||||
@ -45,7 +45,7 @@ set(SOURCE_FILES
|
|||||||
src/characteristic/adresse.cpp
|
src/characteristic/adresse.cpp
|
||||||
src/characteristic/endurance.cpp
|
src/characteristic/endurance.cpp
|
||||||
src/characteristic/chance.cpp
|
src/characteristic/chance.cpp
|
||||||
src/gui/menu.cpp
|
src/gui/menu/menu.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set(SOURCES
|
set(SOURCES
|
||||||
@ -79,6 +79,9 @@ option(SPDLOG_NO_TLS "prevent spdlog from using thread local storage" ON)
|
|||||||
option(SPDLOG_NO_ATOMIC_LEVELS "prevent spdlog from using of std::atomic log levels (use only if your code never modifies log levels concurrently" ON)
|
option(SPDLOG_NO_ATOMIC_LEVELS "prevent spdlog from using of std::atomic log levels (use only if your code never modifies log levels concurrently" ON)
|
||||||
add_subdirectory(external/spdlog)
|
add_subdirectory(external/spdlog)
|
||||||
|
|
||||||
|
set(JSON_BuildTests OFF CACHE INTERNAL "")
|
||||||
|
add_subdirectory(external/json)
|
||||||
|
|
||||||
set(COMPILE_FLAGS
|
set(COMPILE_FLAGS
|
||||||
-pipe
|
-pipe
|
||||||
-march=skylake # change to native or your architecture.
|
-march=skylake # change to native or your architecture.
|
||||||
@ -142,4 +145,4 @@ target_link_options(BillySheet PRIVATE ${LINKER_OPTIONS})
|
|||||||
|
|
||||||
target_link_libraries(spdlog PRIVATE ${LINKER_FLAGS})
|
target_link_libraries(spdlog PRIVATE ${LINKER_FLAGS})
|
||||||
target_link_libraries(glfw PRIVATE ${LINKER_FLAGS})
|
target_link_libraries(glfw PRIVATE ${LINKER_FLAGS})
|
||||||
target_link_libraries(BillySheet glfw spdlog OpenGL::OpenGL ${LINKER_FLAGS})
|
target_link_libraries(BillySheet glfw spdlog OpenGL::OpenGL nlohmann_json::nlohmann_json ${LINKER_FLAGS})
|
||||||
|
1
external/json
vendored
Submodule
1
external/json
vendored
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit 4f8fba14066156b73f1189a2b8bd568bde5284c5
|
@ -2,7 +2,7 @@
|
|||||||
#define BILLYSHEET_GUI_HPP
|
#define BILLYSHEET_GUI_HPP
|
||||||
|
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
#include "menu.hpp"
|
#include "gui/menu/menu.hpp"
|
||||||
|
|
||||||
namespace fs = std::filesystem;
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
@ -10,11 +10,13 @@ namespace gui {
|
|||||||
|
|
||||||
class GuiData;
|
class GuiData;
|
||||||
|
|
||||||
|
namespace menu { class MenuData; }
|
||||||
|
|
||||||
class Gui final {
|
class Gui final {
|
||||||
private:
|
private:
|
||||||
GuiData &data;
|
GuiData &data;
|
||||||
|
|
||||||
Menu menu;
|
menu::Menu menu;
|
||||||
|
|
||||||
fs::path font;
|
fs::path font;
|
||||||
|
|
||||||
@ -22,7 +24,7 @@ namespace gui {
|
|||||||
public:
|
public:
|
||||||
Gui() = delete;
|
Gui() = delete;
|
||||||
|
|
||||||
explicit Gui(GuiData &data);
|
explicit Gui(GuiData &data, menu::MenuData &menuData);
|
||||||
|
|
||||||
~Gui() noexcept;
|
~Gui() noexcept;
|
||||||
|
|
||||||
|
@ -2,32 +2,28 @@
|
|||||||
#define BILLYSHEET_GUI_DATA_HPP
|
#define BILLYSHEET_GUI_DATA_HPP
|
||||||
|
|
||||||
#include "character_sheet.hpp"
|
#include "character_sheet.hpp"
|
||||||
#include <filesystem>
|
|
||||||
#include <spdlog/spdlog.h>
|
#include <spdlog/spdlog.h>
|
||||||
|
|
||||||
namespace fs = std::filesystem;
|
|
||||||
|
|
||||||
namespace gui {
|
namespace gui {
|
||||||
class Window;
|
class Window;
|
||||||
|
|
||||||
class GuiData final {
|
class GuiData final {
|
||||||
private:
|
private:
|
||||||
|
friend class Gui;
|
||||||
|
|
||||||
Window &window;
|
Window &window;
|
||||||
|
|
||||||
character::CharacterSheet billy;
|
character::CharacterSheet billy;
|
||||||
|
|
||||||
// Is it the right place here for both ? Not sure.
|
|
||||||
fs::path save_path{ "./" };
|
|
||||||
std::string filename{ "character_sheet.json" };
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
GuiData() = delete;
|
GuiData() = delete;
|
||||||
|
|
||||||
explicit GuiData(Window &wwindow) : window(wwindow) { SPDLOG_DEBUG("Creating GUI Data"); }
|
explicit GuiData(Window &wwindow) : window(wwindow) { SPDLOG_DEBUG("Creating GUI Data"); }
|
||||||
|
|
||||||
[[nodiscard]] Window &get_window() const;
|
|
||||||
|
|
||||||
~GuiData() noexcept = default;
|
~GuiData() noexcept = default;
|
||||||
|
|
||||||
|
[[nodiscard]] Window &get_window() const;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,24 +0,0 @@
|
|||||||
#ifndef BILLYSHEET_MENU_HPP
|
|
||||||
#define BILLYSHEET_MENU_HPP
|
|
||||||
|
|
||||||
#include <spdlog/spdlog.h>
|
|
||||||
|
|
||||||
namespace gui {
|
|
||||||
class GuiData;
|
|
||||||
|
|
||||||
class Menu final {
|
|
||||||
private:
|
|
||||||
GuiData &data;
|
|
||||||
public:
|
|
||||||
Menu() noexcept = delete;
|
|
||||||
|
|
||||||
explicit Menu(GuiData &data) noexcept: data(data) { SPDLOG_DEBUG("Creating Menu"); }
|
|
||||||
|
|
||||||
~Menu() noexcept = default;
|
|
||||||
|
|
||||||
void gui() const noexcept;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#endif //BILLYSHEET_MENU_HPP
|
|
30
include/gui/menu/menu.hpp
Normal file
30
include/gui/menu/menu.hpp
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#ifndef BILLYSHEET_MENU_HPP
|
||||||
|
#define BILLYSHEET_MENU_HPP
|
||||||
|
|
||||||
|
#include <spdlog/spdlog.h>
|
||||||
|
|
||||||
|
namespace gui {
|
||||||
|
class GuiData;
|
||||||
|
|
||||||
|
namespace menu {
|
||||||
|
class MenuData;
|
||||||
|
|
||||||
|
class Menu final {
|
||||||
|
private:
|
||||||
|
MenuData &data;
|
||||||
|
public:
|
||||||
|
Menu() noexcept = delete;
|
||||||
|
|
||||||
|
explicit Menu(MenuData &data) noexcept: data(data) { SPDLOG_DEBUG("Creating Menu"); }
|
||||||
|
|
||||||
|
~Menu() noexcept = default;
|
||||||
|
|
||||||
|
void gui() const noexcept;
|
||||||
|
|
||||||
|
[[nodiscard]] const MenuData &get_data() const { return data; }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif //BILLYSHEET_MENU_HPP
|
28
include/gui/menu/menu_data.hpp
Normal file
28
include/gui/menu/menu_data.hpp
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
#ifndef BILLYSHEET_MENU_DATA_HPP
|
||||||
|
#define BILLYSHEET_MENU_DATA_HPP
|
||||||
|
|
||||||
|
#include <filesystem>
|
||||||
|
|
||||||
|
namespace fs = std::filesystem;
|
||||||
|
|
||||||
|
namespace gui::menu {
|
||||||
|
class MenuData final {
|
||||||
|
private:
|
||||||
|
friend class Menu;
|
||||||
|
|
||||||
|
fs::path save_path{ "./" };
|
||||||
|
|
||||||
|
std::string filename{ "character_sheet.json" };
|
||||||
|
|
||||||
|
bool edit_mode{ true };
|
||||||
|
public:
|
||||||
|
MenuData() noexcept = default;
|
||||||
|
|
||||||
|
~MenuData() noexcept = default;
|
||||||
|
|
||||||
|
[[nodiscard]] bool is_edit_mode() const { return edit_mode; }
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#endif //BILLYSHEET_MENU_DATA_HPP
|
@ -6,7 +6,7 @@
|
|||||||
#include "imgui_impl_opengl3_loader.h"
|
#include "imgui_impl_opengl3_loader.h"
|
||||||
#include "gui/window.hpp"
|
#include "gui/window.hpp"
|
||||||
|
|
||||||
gui::Gui::Gui(gui::GuiData &data) : data(data), menu(data), font("font/DejaVuSans.ttf") {
|
gui::Gui::Gui(GuiData &data, menu::MenuData &menuData) : data(data), menu(menuData), font("font/DejaVuSans.ttf") {
|
||||||
SPDLOG_DEBUG("Creating GUI");
|
SPDLOG_DEBUG("Creating GUI");
|
||||||
(void) ImGui::CreateContext();
|
(void) ImGui::CreateContext();
|
||||||
ImGui::StyleColorsDark();
|
ImGui::StyleColorsDark();
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
#include "gui/menu.hpp"
|
|
||||||
#include "imgui.h"
|
|
||||||
|
|
||||||
void gui::Menu::gui() const noexcept {
|
|
||||||
if (ImGui::BeginMenuBar()) {
|
|
||||||
if (ImGui::BeginMenu("File")) {
|
|
||||||
if (ImGui::MenuItem("Save")) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ImGui::MenuItem("Save as...")) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
ImGui::EndMenu();
|
|
||||||
}
|
|
||||||
ImGui::EndMenuBar();
|
|
||||||
}
|
|
||||||
}
|
|
24
src/gui/menu/menu.cpp
Normal file
24
src/gui/menu/menu.cpp
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#include "gui/menu/menu.hpp"
|
||||||
|
#include "imgui.h"
|
||||||
|
#include "gui/menu/menu_data.hpp"
|
||||||
|
|
||||||
|
void gui::menu::Menu::gui() const noexcept {
|
||||||
|
if (ImGui::BeginMenuBar()) {
|
||||||
|
if (ImGui::BeginMenu("File")) {
|
||||||
|
if (ImGui::MenuItem("Save")) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ImGui::MenuItem("Save as...")) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
ImGui::EndMenu();
|
||||||
|
}
|
||||||
|
if (ImGui::BeginMenu("Editor")) {
|
||||||
|
ImGui::MenuItem("Edit mode", nullptr, &data.edit_mode);
|
||||||
|
ImGui::EndMenu();
|
||||||
|
}
|
||||||
|
ImGui::EndMenuBar();
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
#include <spdlog/spdlog.h>
|
#include <spdlog/spdlog.h>
|
||||||
#include <spdlog/sinks/stdout_color_sinks.h>
|
#include <spdlog/sinks/stdout_color_sinks.h>
|
||||||
#include "gui/window.hpp"
|
#include "gui/window.hpp"
|
||||||
|
#include "gui/menu/menu_data.hpp"
|
||||||
#include "gui/gui_data.hpp"
|
#include "gui/gui_data.hpp"
|
||||||
#include "gui/gui.hpp"
|
#include "gui/gui.hpp"
|
||||||
|
|
||||||
@ -11,7 +12,8 @@ int main() {
|
|||||||
try {
|
try {
|
||||||
gui::Window window;
|
gui::Window window;
|
||||||
gui::GuiData gui_data(window);
|
gui::GuiData gui_data(window);
|
||||||
gui::Gui gui(gui_data);
|
gui::menu::MenuData menu_data;
|
||||||
|
gui::Gui gui(gui_data, menu_data);
|
||||||
|
|
||||||
while (!window.should_close()) {
|
while (!window.should_close()) {
|
||||||
glfwPollEvents();
|
glfwPollEvents();
|
||||||
|
Loading…
Reference in New Issue
Block a user