#pragma once #include #include "document.h" #include "settings.h" namespace anm2ed { constexpr auto FILE_LABEL_FORMAT = "{} [{}]"; class Manager { std::filesystem::path recent_files_path_get(); std::filesystem::path autosave_path_get(); public: std::vector documents{}; std::vector recentFiles{}; std::vector autosaveFiles{}; int selected{-1}; int pendingSelected{-1}; bool isRecording{}; bool isRecordingStart{}; int recordingStart{}; int recordingEnd{}; bool isRecordingRange{}; ImGuiKeyChord chords[SHORTCUT_COUNT]{}; anm2::Layer editLayer{}; imgui::PopupHelper layerPropertiesPopup{imgui::PopupHelper("Layer Properties", imgui::POPUP_SMALL_NO_HEIGHT)}; anm2::Null editNull{}; imgui::PopupHelper nullPropertiesPopup{imgui::PopupHelper("Null Properties", imgui::POPUP_SMALL_NO_HEIGHT)}; imgui::PopupHelper progressPopup{imgui::PopupHelper("Rendering...", imgui::POPUP_SMALL_NO_HEIGHT)}; Manager(); ~Manager(); Document* get(int = -1); void open(const std::string&, bool = false, bool = true); void new_(const std::string&); void save(int, const std::string& = {}); void save(const std::string& = {}); void autosave(Document&); void set(int); void close(int); void layer_properties_open(int = -1); void layer_properties_trigger(); void layer_properties_end(); void layer_properties_close(); void null_properties_open(int = -1); void null_properties_trigger(); void null_properties_end(); void null_properties_close(); void recent_files_load(); void recent_files_write(); void recent_files_clear(); void autosave_files_load(); void autosave_files_open(); void autosave_files_write(); void autosave_files_clear(); void chords_set(Settings&); std::filesystem::path autosave_directory_get(); }; }