Initial commit
This commit is contained in:
96
Torque/SDK/lib/maxsdk40/hold.h
Normal file
96
Torque/SDK/lib/maxsdk40/hold.h
Normal file
@@ -0,0 +1,96 @@
|
||||
/**********************************************************************
|
||||
*<
|
||||
FILE: hold.h
|
||||
|
||||
DESCRIPTION:
|
||||
|
||||
CREATED BY: Dan Silva
|
||||
|
||||
HISTORY:
|
||||
|
||||
*> Copyright (c) 1994, All Rights Reserved.
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef __HOLD__H__
|
||||
#define __HOLD__H__
|
||||
|
||||
#define RESTOBJ_DOES_REFERENCE_POINTER 1
|
||||
#define RESTOBJ_GOING_TO_DELETE_POINTER 2
|
||||
|
||||
class HoldStore;
|
||||
class RestoreObj : public InterfaceServer {
|
||||
friend class HoldStore;
|
||||
friend class GenUndoObject;
|
||||
friend class CheckForFlush;
|
||||
RestoreObj *next,*prev;
|
||||
public:
|
||||
RestoreObj() { next = prev = NULL; }
|
||||
virtual ~RestoreObj() {};
|
||||
virtual void Restore(int isUndo)=0;
|
||||
virtual void Redo()=0;
|
||||
virtual int Size() { return 1; }
|
||||
virtual void EndHold() { }
|
||||
virtual TSTR Description() { return TSTR(_T("---")); }
|
||||
virtual INT_PTR Execute(int cmd, ULONG_PTR arg1=0, ULONG_PTR arg2=0, ULONG_PTR arg3=0) {return -1;}
|
||||
// WIN64 Cleanup: Shuler
|
||||
};
|
||||
|
||||
class Hold : public BaseInterfaceServer {
|
||||
HoldStore *holdStore, *holdList;
|
||||
int undoEnabled;
|
||||
int superLevel;
|
||||
int putCount;
|
||||
HoldStore *ResetStore();
|
||||
void Init();
|
||||
void AddOpToUndoMgr(TCHAR *name,int id);
|
||||
public:
|
||||
CoreExport Hold();
|
||||
CoreExport ~Hold();
|
||||
CoreExport void Put(RestoreObj *rob);
|
||||
CoreExport void Begin();
|
||||
CoreExport void Suspend(); // temporarly suspend holding
|
||||
CoreExport int IsSuspended();
|
||||
CoreExport void Resume(); // resume holding
|
||||
CoreExport int Holding(); // are we holding?
|
||||
CoreExport int Restoring(int& isUndo);
|
||||
CoreExport int Redoing();
|
||||
CoreExport int RestoreOrRedoing();
|
||||
CoreExport void DisableUndo(); // prevents Undo when Accept is called.
|
||||
CoreExport void EnableUndo();
|
||||
CoreExport void Restore(); // Restore changes from holdStore.
|
||||
CoreExport void Release(); // Tosses out holdStore.
|
||||
|
||||
// 3 ways to terminate the Begin()...
|
||||
CoreExport void End(); // toss holdStore.
|
||||
CoreExport void Accept(int nameID); // record Undo (if enabled), End();
|
||||
CoreExport void Accept(TCHAR *name);
|
||||
CoreExport void Cancel(); // Restore changes, End()
|
||||
|
||||
//
|
||||
// Group several Begin-End lists into a single Super-group.
|
||||
CoreExport void SuperBegin();
|
||||
CoreExport void SuperAccept(int nameID);
|
||||
CoreExport void SuperAccept(TCHAR *name);
|
||||
CoreExport void SuperCancel();
|
||||
|
||||
// Get the number of times Put() has been called in the current session of MAX
|
||||
CoreExport int GetGlobalPutCount();
|
||||
|
||||
protected:
|
||||
friend HoldStore;
|
||||
unsigned flags;
|
||||
enum {
|
||||
kInRestore,
|
||||
kInUndo,
|
||||
kInRedo
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
extern CoreExport Hold theHold;
|
||||
|
||||
void CoreExport EnableUndoDebugPrintout(BOOL onoff);
|
||||
|
||||
|
||||
#endif //__HOLD__H__
|
||||
Reference in New Issue
Block a user