/* @(#)Z 1.4 com/src/ui/idl/Undo.idl, odui, od96nt, odnt9712d 97/03/21 16:49:41 (96/07/15 18:29:02) */


#ifndef _UNDO_
#define _UNDO_

#ifndef _ODOBJECT_
#include "ODObject.idl"
#endif

//==============================================================================
// Classes defined in this interface
//==============================================================================

interface  ODUndo;

//==============================================================================
// Classes used by this interface
//==============================================================================

interface  ODPart;


//==============================================================================
// ODUndo
//==============================================================================

interface ODUndo :  ODObject
{


   void AddActionToHistory      (in  ODPart whichPart,
                                 in  ODActionData actionData,
                                 in  ODActionType actionType,
                                 in  ODName undoActionLabel,
                                 in  ODName redoActionLabel);

   void Undo                    ();

   void Redo                    ();

   void MarkActionHistory       ();

   void ClearActionHistory      (in  ODRespectMarksChoices respectMarks);

   void ClearRedoHistory        ();

   ODBoolean PeekUndoHistory    (out ODPart part,
                                 out ODActionData actionData,
                                 out ODActionType actionType,
                                 out ODName actionLabel);

   ODBoolean PeekRedoHistory    (out ODPart part,
                                 out ODActionData actionData,
                                 out ODActionType actionType,
                                 out ODName actionLabel);

   void AbortCurrentTransaction ();

#ifdef __SOMIDL__
        implementation
        {
                majorversion = 1; minorversion = 0;  // BRR 2/20/96 - New for DR4

                functionprefix = ODUndo;

                override:
                        Purge,
                        somUninit;

                releaseorder:
                        InitUndo,
                        AddActionToHistory,
                        Undo,
                        Redo,
                        MarkActionHistory,
                        ClearActionHistory,
                        ClearRedoHistory,
                        PeekUndoHistory,
                        PeekRedoHistory,
                        AbortCurrentTransaction ;

        };
#endif
};

#endif // _UNDO_

