1#ifndef YAZE_APP_EDITOR_GRAPHICS_UNDO_ACTIONS_H_
2#define YAZE_APP_EDITOR_GRAPHICS_UNDO_ACTIONS_H_
10#include "absl/status/status.h"
11#include "absl/strings/str_format.h"
29 std::vector<uint8_t> before_data,
30 std::vector<uint8_t> after_data,
31 std::string description)
37 absl::Status
Undo()
override {
40 return absl::OutOfRangeError(
41 absl::StrFormat(
"Sheet %02X out of range",
sheet_id_));
46 return absl::OkStatus();
49 absl::Status
Redo()
override {
52 return absl::OutOfRangeError(
53 absl::StrFormat(
"Sheet %02X out of range",
sheet_id_));
58 return absl::OkStatus();
Undoable action for pixel edits on a graphics sheet.
absl::Status Undo() override
bool CanMergeWith(const UndoAction &) const override
size_t MemoryUsage() const override
Approximate memory footprint for budget enforcement.
std::string Description() const override
Human-readable description (e.g., "Paint 12 tiles on map 5")
std::vector< uint8_t > before_data_
std::vector< uint8_t > after_data_
GraphicsPixelEditAction(uint16_t sheet_id, std::vector< uint8_t > before_data, std::vector< uint8_t > after_data, std::string description)
absl::Status Redo() override
Abstract base for all undoable actions (Command pattern)
auto mutable_gfx_sheets()
Get mutable reference to all graphics sheets.
void NotifySheetModified(int sheet_index)
Notify Arena that a graphics sheet has been modified.