#ifndef BOOKMOUSE_HPP #define BOOKMOUSE_HPP #include "file_dialog.hpp" #include "archive.hpp" #include "gl_context.hpp" #include "imgui_context.hpp" #include "sdl_context.hpp" #include "sdl_main_window.hpp" #include #include namespace bookmouse { constexpr const char* AppName = "Bookmouse"; constexpr const char* AppVersionString = "1.0.0"; enum class PageLayout : uint8_t { Single, Dual, Manga }; class Bookmouse { public: Bookmouse() noexcept(false); int run(); private: SDL_Event pollEvent(); void updateState(); void renderFrame(); void menuing(); void openDialog(); void setArchive(std::unique_ptr&& archive); SdlContext m_sdlContext; SdlMainWindow m_mainWindow; GlContext m_glContext; ImguiContext m_imgui; TimeFormat m_timeFormat{"%Y-%m-%d %H:%M"}; bool m_running{true}; bool m_openDialog{false}; std::unique_ptr m_fileDialog{nullptr}; bool m_getContents{false}; fud::String m_directoryName{"./"}; fud::Directory m_directory; bool m_typeSelected{false}; bool m_nameSelectede{false}; bool m_sizeSelected{false}; bool m_dateSelected{false}; std::vector m_directoryContents{}; std::unique_ptr m_archive{nullptr}; PageLayout m_pageLayout{PageLayout::Single}; size_t m_pageNumber{0}; // pageLeft // pageRight /* void setPages(); void setPages(QLabel& label1, QLabel& label2); void setPagesNormal(); void setPagesDual(); void setPagesManga(); */ }; } // namespace bookmouse #endif