summaryrefslogtreecommitdiff
path: root/binaryview.cpp
diff options
context:
space:
mode:
authorJosh Ferrell <josh@vector35.com>2024-05-09 22:53:01 -0400
committerJosh Ferrell <josh@vector35.com>2024-05-14 15:11:16 -0400
commit08c5286c19fd78fa9d3b9f469a639c7a1013f22e (patch)
tree9f8c4dca8a387431d3c9b2209bcdf88f8dfc832a /binaryview.cpp
parentcb407be11b08c1c427fcf33a49974155e522e14a (diff)
History widget
Diffstat (limited to 'binaryview.cpp')
-rw-r--r--binaryview.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/binaryview.cpp b/binaryview.cpp
index 51ee2ee9..6bb485d2 100644
--- a/binaryview.cpp
+++ b/binaryview.cpp
@@ -496,6 +496,33 @@ void BinaryDataNotification::TypeArchiveDisconnectedCallback(void* ctxt, BNBinar
}
+void BinaryDataNotification::UndoEntryAddedCallback(void* ctxt, BNBinaryView* data, BNUndoEntry* entry)
+{
+ BinaryDataNotification* notify = (BinaryDataNotification*)ctxt;
+ Ref<BinaryView> view = new BinaryView(BNNewViewReference(data));
+ Ref<UndoEntry> apiEntry = new UndoEntry(BNNewUndoEntryReference(entry));
+ notify->OnUndoEntryAdded(view, apiEntry);
+}
+
+
+void BinaryDataNotification::UndoEntryTakenCallback(void* ctxt, BNBinaryView* data, BNUndoEntry* entry)
+{
+ BinaryDataNotification* notify = (BinaryDataNotification*)ctxt;
+ Ref<BinaryView> view = new BinaryView(BNNewViewReference(data));
+ Ref<UndoEntry> apiEntry = new UndoEntry(BNNewUndoEntryReference(entry));
+ notify->OnUndoEntryTaken(view, apiEntry);
+}
+
+
+void BinaryDataNotification::RedoEntryTakenCallback(void* ctxt, BNBinaryView* data, BNUndoEntry* entry)
+{
+ BinaryDataNotification* notify = (BinaryDataNotification*)ctxt;
+ Ref<BinaryView> view = new BinaryView(BNNewViewReference(data));
+ Ref<UndoEntry> apiEntry = new UndoEntry(BNNewUndoEntryReference(entry));
+ notify->OnRedoEntryTaken(view, apiEntry);
+}
+
+
BinaryDataNotification::BinaryDataNotification()
{
m_callbacks.context = this;
@@ -548,6 +575,9 @@ BinaryDataNotification::BinaryDataNotification()
m_callbacks.typeArchiveDetached = TypeArchiveDetachedCallback;
m_callbacks.typeArchiveConnected = TypeArchiveConnectedCallback;
m_callbacks.typeArchiveDisconnected = TypeArchiveDisconnectedCallback;
+ m_callbacks.undoEntryAdded = UndoEntryAddedCallback;
+ m_callbacks.undoEntryTaken = UndoEntryTakenCallback;
+ m_callbacks.redoEntryTaken = RedoEntryTakenCallback;
}
@@ -603,6 +633,9 @@ BinaryDataNotification::BinaryDataNotification(NotificationTypes notifications)
m_callbacks.typeArchiveDetached = (notifications & NotificationType::TypeArchiveDetached) ? TypeArchiveDetachedCallback : nullptr;
m_callbacks.typeArchiveConnected = (notifications & NotificationType::TypeArchiveConnected) ? TypeArchiveConnectedCallback : nullptr;
m_callbacks.typeArchiveDisconnected = (notifications & NotificationType::TypeArchiveDisconnected) ? TypeArchiveDisconnectedCallback : nullptr;
+ m_callbacks.undoEntryAdded = (notifications & NotificationType::UndoEntryAdded) ? UndoEntryAddedCallback : nullptr;
+ m_callbacks.undoEntryTaken = (notifications & NotificationType::UndoEntryTaken) ? UndoEntryTakenCallback : nullptr;
+ m_callbacks.redoEntryTaken = (notifications & NotificationType::RedoEntryTaken) ? RedoEntryTakenCallback : nullptr;
}