1#ifndef YAZE_APP_CORE_EDITOR_H
2#define YAZE_APP_CORE_EDITOR_H
8#include "absl/status/status.h"
9#include "absl/status/statusor.h"
10#include "absl/strings/str_format.h"
72 "Assembly",
"Dungeon",
"Emulator",
"Graphics",
"Music",
"Overworld",
73 "Palette",
"Screen",
"Sprite",
"Message",
"Hex",
"Agent",
"Settings",
91 virtual absl::Status
Load() = 0;
94 virtual absl::Status
Save() = 0;
99 virtual absl::Status
Cut() = 0;
100 virtual absl::Status
Copy() = 0;
103 virtual absl::Status
Undo() = 0;
104 virtual absl::Status
Redo() = 0;
106 virtual absl::Status
Find() = 0;
108 virtual absl::Status
Clear() {
return absl::OkStatus(); }
119 virtual std::string
GetRomStatus()
const {
return "ROM state not implemented"; }
136 absl::StatusOr<T>
SafeRomAccess(std::function<T()> accessor,
const std::string& operation =
"")
const {
138 return absl::FailedPreconditionError(
139 operation.empty() ?
"ROM not loaded" :
140 absl::StrFormat(
"%s: ROM not loaded", operation));
144 }
catch (
const std::exception& e) {
145 return absl::InternalError(absl::StrFormat(
146 "%s: %s", operation.empty() ?
"ROM access failed" : operation, e.what()));
Interface for editor classes.
void set_context(EditorContext *context)
virtual absl::Status Cut()=0
virtual absl::Status Copy()=0
virtual absl::Status Redo()=0
virtual void Initialize()=0
virtual absl::Status Clear()
void set_active(bool active)
virtual ~Editor()=default
virtual std::string GetRomStatus() const
virtual absl::Status Save()=0
std::string MakeCardTitle(const std::string &base_title) const
virtual bool IsRomLoaded() const
absl::StatusOr< T > SafeRomAccess(std::function< T()> accessor, const std::string &operation="") const
virtual absl::Status Find()=0
virtual absl::Status Paste()=0
virtual absl::Status Load()=0
virtual absl::Status Update()=0
virtual absl::Status Undo()=0
constexpr std::array< const char *, 14 > kEditorNames
Main namespace for the application.
bool has_overworld_tile16
std::vector< int > overworld_tile16_ids
ShortcutManager shortcut_manager
CommandManager command_manager
PopupManager * popup_manager
ExtensionManager extension_manager
HistoryManager history_manager
struct yaze::editor::EditorContext::SharedClipboard shared_clipboard