1#ifndef YAZE_APP_CORE_EDITOR_H
2#define YAZE_APP_CORE_EDITOR_H
9#include "absl/status/status.h"
10#include "absl/status/statusor.h"
11#include "absl/strings/str_format.h"
30class EditorCardRegistry;
112 "Assembly",
"Dungeon",
"Emulator",
"Graphics",
"Music",
"Overworld",
113 "Palette",
"Screen",
"Sprite",
"Message",
"Hex",
"Agent",
"Settings",
133 virtual absl::Status
Load() = 0;
136 virtual absl::Status
Save() = 0;
141 virtual absl::Status
Cut() = 0;
142 virtual absl::Status
Copy() = 0;
145 virtual absl::Status
Undo() = 0;
146 virtual absl::Status
Redo() = 0;
148 virtual absl::Status
Find() = 0;
150 virtual absl::Status
Clear() {
return absl::OkStatus(); }
160 virtual std::string
GetRomStatus()
const {
return "ROM state not implemented"; }
185 absl::StatusOr<T>
SafeRomAccess(std::function<T()> accessor,
const std::string& operation =
"")
const {
187 return absl::FailedPreconditionError(
188 operation.empty() ?
"ROM not loaded" :
189 absl::StrFormat(
"%s: ROM not loaded", operation));
193 }
catch (
const std::exception& e) {
194 return absl::InternalError(absl::StrFormat(
195 "%s: %s", operation.empty() ?
"ROM access failed" : operation, e.what()));
The Rom class is used to load, save, and modify Rom data.
Central registry for all editor cards with session awareness and dependency injection.
Interface for editor classes.
virtual absl::Status Cut()=0
virtual absl::Status Copy()=0
virtual absl::Status Redo()=0
virtual void Initialize()=0
EditorDependencies dependencies_
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
std::string MakeCardId(const std::string &base_id) const
void SetDependencies(const EditorDependencies &deps)
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
Manages user preferences and settings persistence.
Defines an abstract interface for all rendering operations.
constexpr std::array< const char *, 14 > kEditorNames
Main namespace for the application.
bool has_overworld_tile16
std::vector< int > overworld_tile16_ids
Unified dependency container for all editor types.
ToastManager * toast_manager
SharedClipboard * shared_clipboard
gfx::IRenderer * renderer
ShortcutManager * shortcut_manager
UserSettings * user_settings
PopupManager * popup_manager
EditorCardRegistry * card_registry