Nodes may be deleted by the user by selecting the node and pressing the delete key. If an item has a reference to the node the user may still delete it. The reference maker that references the deleted node will receive the message REFMSG_TARGET_DELETED via ReferenceMaker::NotifyRefChanged(), so that it can respond appropriately to the deletion.
Alternatively, to respond to the deletion of a node you could register a notification callback with the Broadcast Notification System. To respond to node deletion you can handle the notifications NOTIFY_SCENE_PRE_DELETED_NODE or NOTIFY_SCENE_POST_DELETED_NODE. These messages are sent with a callParam containing a Tab<INode*>. The following snippet demonstrates the process of registered a callback to handle the NOTIFY_SCENE_PRE_DELETED_NODE message.
//Declare the callback function
static void NodeDeleteNotify(void *param, NotifyInfo *info){
// Get the nodes being deleted
Tab<INode *> *tNode = (Tab<INode*>)(info->callParam);
// Do custom processing
...
}
// Register the callback
RegisterNotification(NodeDeleteNotify, this, NOTIFY_SCENE_PRE_DELETED_NODE);
...
// When done, unregister the callback
UnRegisterNotification(NodeDeleteNotify, this, NOTIFY_SCENE_PRE_DELETED_NODE);