Cut/Copy/Paste and Undo/Redo



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 04/03/2005 at 10:06, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   8.0+ 
    Platform:   Windows  ; Mac  ;  Mac OSX  ; 
    Language(s) :     C++  ;

    ---------
    I'm afraid that the answer may already be given for this, but I'll ask nonetheless.

    My current plugin creates a PluginMaterial with a GeDialog for editing a tree of nodes (my classes). I want to add cut/copy/paste (which shouldn't be too difficult to implement from scratch) and undos/redos (a tad bit more difficult). The question is this: is there any way to use C4D's similar facilities on my own class objects, underived from any of C4D's?

    I see that UndoAdd() takes a void*, so I am uncertain whether this is general for any class instance or only good for C4D objects inserted into BaseDocuments. Honestly, I don't see a way to base the nodes off of any undoable C4D object (object, tag, shader, material, key, track, etc.) and not insert them into a document - which is not the intent. The nodes only exist within the ShaderTree, itself only within the PluginMaterial.

    Well, I hope that makes some sense and can yield a response.



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 04/03/2005 at 10:12, xxxxxxxx wrote:

    Undo/Redo should be easy if you store your data within the host object, e.g. the PluginMaterial. Then you can just add UNDO_CHANGE undos for the PluginMaterial whenever the user changes anything.
    For Cut/Copy/Paste I don't think there's any way to use the built-in functions.


Log in to reply