fbsdk/fbundomanager.h Source File

fbundomanager.h
Go to the documentation of this file.
1 #ifndef __FBUNDOMANAGER_H__
2 #define __FBUNDOMANAGER_H__
3 /**************************************************************************
4 Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
5 All Rights Reserved.
6 
7 The coded instructions, statements, computer programs, and/or related
8 material (collectively the "Data") in these files contain unpublished
9 information proprietary to Autodesk, Inc. and/or its licensors, which is
10 protected by Canada and United States of America federal copyright law
11 and by international treaties.
12 
13 The Data may not be disclosed or distributed to third parties, in whole
14 or in part, without the prior written consent of Autodesk, Inc.
15 ("Autodesk").
16 
17 THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
18 ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
19 WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR
20 ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES
21 OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
22 PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT
23 WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR
24 FREE.
25 
26 IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
27 OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR
28 EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE
29 DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS
30 OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR
31 DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF
32 LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT
33 LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE
34 DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS
35 BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
36 
37 **************************************************************************/
38 
43 #include <kaydaradef.h>
44 #ifndef FBSDK_DLL
45 
48 #define FBSDK_DLL K_DLLIMPORT
49 #endif
50 
51 #include <fbsdk/fbarray.h>
52 #include <fbsdk/fbplug.h>
53 #include <fbsdk/fbcomponent.h>
54 
55 #ifdef FBSDKUseNamespace
56 namespace FBSDKNamespace {
57 #endif
58 
59 
60 
62  // FBUndoManager
64  __FB_FORWARD( FBUndoManager );
65  FB_FORWARD( FBUndo );
66 
68 
69 
81  {
83 
87  FBUndoManager( const FBUndoManager& );
88 
92  FBUndoManager& operator=( const FBUndoManager& );
93 
94  public:
95 
98  FBUndoManager(HIObject pObject=NULL);
99 
103  bool Clear();
104 
107  void Redo();
108 
112  void Undo( bool pNoRedo = false );
113 
120  bool TransactionBegin(const char *pTransactionName);
121 
125  bool TransactionIsOpen();
126 
134  bool TransactionAdd(FBUndo* pUndo, FBArrayPlug* pDepdendPlugArray = NULL);
135 
141  bool TransactionAddModelTRS(FBModel* pModel);
142 
148  bool TransactionAddProperty(FBProperty* pProperty);
149 
155  bool TransactionAddObjectDestroy(FBObject* pObject);
156 
162  bool TransactionEnd();
163 
167  bool ActiveOperation();
168 
173 
174  static FBUndoManager& TheOne();
175  };
176 
180 
181  public:
184  virtual ~FBUndo();
185 
188  virtual void Undo();
189 
192  virtual void Redo();
193 
196  virtual const char* GetName();
197  };
198 
199 #ifdef FBSDKUseNamespace
200 }
201 #endif
202 #endif
203 
A template class for arrays.
Model class.
Definition: fbmodel.h:273
#define __FBClassDeclare(Name, Parent)
For internal use only.
Definition: fbcomponent.h:132
#define NULL
Definition: kaydara.h:169
class FBArrayTemplate< FBPlug * > FBArrayPlug
FBPropertyEvent OnRedo
Event: A redo operation will be executed.
MotionBuilder SDK base class.
Definition: fbcomponent.h:668
FBPropertyEvent OnUndo
Event: An undo operation will be executed.
Base Class for Custom Undoable Actions.
Access to global undo and redo functionality.
Definition: fbundomanager.h:80
Definition of the class FBPlug and related enums and utility functions.
#define FB_DEFINE_ARRAY(DllTag, Type)
Define an array (template) for a component (discard the FB..).
Definition: fbarray.h:360
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Definition: fbundomanager.h:48
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:68
Property: Base property class.
Definition: fbproperties.h:192
#define FBSDKNamespace
FBSDKNamespace define.
Definition: fbversion.h:64
FBPropertyEvent OnRedoCompleted
Event: A redo operation has been executed.
Basic class definitions.
PropertyEvent: Base event class.
Definition: fbproperties.h:507
#define FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:62
FBPropertyEvent OnUndoCompleted
Event: An undo operation has been executed.