Files
anm2ed/src/manager.h
2025-11-11 11:25:46 -05:00

75 lines
1.9 KiB
C++

#pragma once
#include <vector>
#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<Document> documents{};
std::vector<std::filesystem::path> recentFiles{};
std::vector<std::filesystem::path> 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();
};
}