From 08c5286c19fd78fa9d3b9f469a639c7a1013f22e Mon Sep 17 00:00:00 2001 From: Josh Ferrell Date: Thu, 9 May 2024 22:53:01 -0400 Subject: History widget --- binaryview.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'binaryview.cpp') 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 view = new BinaryView(BNNewViewReference(data)); + Ref apiEntry = new UndoEntry(BNNewUndoEntryReference(entry)); + notify->OnUndoEntryAdded(view, apiEntry); +} + + +void BinaryDataNotification::UndoEntryTakenCallback(void* ctxt, BNBinaryView* data, BNUndoEntry* entry) +{ + BinaryDataNotification* notify = (BinaryDataNotification*)ctxt; + Ref view = new BinaryView(BNNewViewReference(data)); + Ref apiEntry = new UndoEntry(BNNewUndoEntryReference(entry)); + notify->OnUndoEntryTaken(view, apiEntry); +} + + +void BinaryDataNotification::RedoEntryTakenCallback(void* ctxt, BNBinaryView* data, BNUndoEntry* entry) +{ + BinaryDataNotification* notify = (BinaryDataNotification*)ctxt; + Ref view = new BinaryView(BNNewViewReference(data)); + Ref 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; } -- cgit v1.3.1