Пример #1
0
        private void userDAGGenericCB(object sender, MMessageParentChildFunctionArgs arg)
        {
            MDagMessage.DagMessage msg = arg.msgType;
            MDagPath child             = arg.child;
            MDagPath parent            = arg.parent;
            string   dagStr;

            switch (msg)
            {
            case MDagMessage.DagMessage.kParentAdded:
                dagStr = "DAG Changed - Parent Added: ";
                break;

            case MDagMessage.DagMessage.kParentRemoved:
                dagStr = "DAG Changed - Parent Removed: ";
                break;

            case MDagMessage.DagMessage.kChildAdded:
                dagStr = "DAG Changed - Child Added: ";
                break;

            case MDagMessage.DagMessage.kChildRemoved:
                dagStr = "DAG Changed - Child Removed: ";
                break;

            case MDagMessage.DagMessage.kChildReordered:
                dagStr = "DAG Changed - Child Reordered: ";
                break;

            default:
                dagStr = "DAG Changed - Unknown Type: ";
                break;
            }
            dagStr = userDAGCBHelper(dagStr, child, parent);

            MGlobal.displayInfo(dagStr);
        }
Пример #2
0
        private void addGenericCallback(MDagPath dagPath, MDagMessage.DagMessage msg, string cbName)
        {
            if (dagPath == null || MDagPath.getCPtr(dagPath).Handle == IntPtr.Zero)
            {
                // we don't have genericCallback
                // MDagMessage.addDagCallback(DagMessage, MDagMessage::MMessageParentChildFunction)
                try
                {
                    switch (msg)
                    {
                    case MDagMessage.DagMessage.kChildAdded:
                        MDagMessage.ChildAdded += userDAGGenericCB;
                        break;

                    case MDagMessage.DagMessage.kChildRemoved:
                        MDagMessage.ChildRemoved += userDAGGenericCB;
                        break;

                    case MDagMessage.DagMessage.kChildReordered:
                        MDagMessage.ChildReordered += userDAGGenericCB;
                        break;

                    case MDagMessage.DagMessage.kInstanceAdded:
                        MDagMessage.InstanceAdded += userDAGGenericCB;
                        break;

                    case MDagMessage.DagMessage.kInstanceRemoved:
                        MDagMessage.InstanceRemoved += userDAGGenericCB;
                        break;

                    case MDagMessage.DagMessage.kParentAdded:
                        MDagMessage.ParentAdded += userDAGGenericCB;
                        break;

                    case MDagMessage.DagMessage.kParentRemoved:
                        MDagMessage.ParentRemoved += userDAGGenericCB;
                        break;

                    default:
                        throw new ArgumentException("Failed to add generic callback", "msg");
                    }

                    string info = string.Format("Adding a callback for {0} on all nodes", cbName);
                    MGlobal.displayInfo(info);
                }
                catch (System.Exception)
                {
                    string err = string.Format("Could not add callback to {0}", dagPath.fullPathName);
                    MGlobal.displayError(err);
                }
            }
            else
            {
                string msgName = "Unknown";
                try
                {
                    // we doesn't support obsolete
                    // MDagMessage.addDagCallback(DagMessage, MDagMessage::MMessageParentChildFunction)
                    switch (msg)
                    {
                    case MDagMessage.DagMessage.kChildAdded:
                        msgName = "ChildAdded";
                        dagPath.ChildAddedDagPath += userDAGChildAddedCB;
                        break;

                    case MDagMessage.DagMessage.kChildRemoved:
                        msgName = "ChildRemoved";
                        dagPath.ChildRemovedDagPath += userDAGChildRemovedCB;
                        break;

                    case MDagMessage.DagMessage.kChildReordered:
                        msgName = "ChildRecordered";
                        dagPath.ChildReorderedDagPath += userDAGChildRemovedCB;
                        break;

                    case MDagMessage.DagMessage.kInstanceAdded:
                        msgName = "InstanceAdded";
                        dagPath.InstanceAddedDagPath += userDAGChildAddedCB;
                        break;

                    case MDagMessage.DagMessage.kInstanceRemoved:
                        msgName = "InstanceRemoved";
                        dagPath.InstanceRemovedDagPath += userDAGInstanceRemovedCB;
                        break;

                    case MDagMessage.DagMessage.kParentAdded:
                        msgName = "ParentAdded";
                        dagPath.ParentAddedDagPath += userDAGParentAddedCB;
                        break;

                    case MDagMessage.DagMessage.kParentRemoved:
                        msgName = "ParentRemoved";
                        dagPath.ParentRemovedDagPath += userDAGParentRemovedCB;
                        break;

                    default:
                        throw new ArgumentException("Failed to add generic callback", "msg");
                    }
                    string info = string.Format("Adding a callback listening msg {0} for {1} on {2}",
                                                msgName, cbName, dagPath.fullPathName);
                    MGlobal.displayInfo(info);
                }
                catch (System.Exception)
                {
                    string err = string.Format("Could not add callback listening msg {0} to {1}",
                                               msgName, dagPath.fullPathName);
                    throw new ApplicationException(err);
                }
            }
        }