mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
109 lines
3.5 KiB
C++
109 lines
3.5 KiB
C++
/*=========================================================================
|
|
|
|
Program: ParaView
|
|
Module: vtkSMUndoStack.h
|
|
|
|
Copyright (c) Kitware, Inc.
|
|
All rights reserved.
|
|
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
PURPOSE. See the above copyright notice for more information.
|
|
|
|
=========================================================================*/
|
|
// .NAME vtkSMUndoStack
|
|
// .SECTION Description
|
|
// This is the undo/redo stack for the Server Manager. This provides a
|
|
// unified face for undo/redo irrespective of number of connections, their
|
|
// type etc etc.
|
|
//
|
|
// On every undo/redo, it fetches the XML state change from the server.
|
|
// vtkSMUndoRedoStateLoader is used to generate a vtkUndoSet object from
|
|
// the XML. GUI can subclass vtkSMUndoRedoStateLoader to handle GUI specific
|
|
// XML elements. The loader instance must be set before performing the undo,
|
|
// otherwise vtkSMUndoRedoStateLoader is used.
|
|
//
|
|
// This class also provides API to push any vtkUndoSet instance on to a
|
|
// server. GUI can use this to push its own changes that is undoable across
|
|
// connections.
|
|
//
|
|
// .SECTION See Also
|
|
// vtkSMUndoStackBuilder
|
|
|
|
|
|
#ifndef vtkSMUndoStack_h
|
|
#define vtkSMUndoStack_h
|
|
|
|
#include "vtkPVServerManagerCoreModule.h" //needed for exports
|
|
#include "vtkUndoStack.h"
|
|
|
|
class vtkSMUndoRedoStateLoader;
|
|
class vtkSMUndoStackObserver;
|
|
class vtkUndoSet;
|
|
class vtkCollection;
|
|
|
|
class VTKPVSERVERMANAGERCORE_EXPORT vtkSMUndoStack : public vtkUndoStack
|
|
{
|
|
public:
|
|
static vtkSMUndoStack* New();
|
|
vtkTypeMacro(vtkSMUndoStack, vtkUndoStack);
|
|
void PrintSelf(ostream& os, vtkIndent indent);
|
|
|
|
// Description:
|
|
// Push an undo set on the Undo stack. This will clear
|
|
// any sets in the Redo stack.
|
|
virtual void Push(const char* label, vtkUndoSet* changeSet);
|
|
|
|
// Description:
|
|
// Performs an Undo using the set on the top of the undo stack. The set is poped from
|
|
// the undo stack and pushed at the top of the redo stack.
|
|
// Before undo begins, it fires vtkCommand::StartEvent and when undo completes,
|
|
// it fires vtkCommand::EndEvent.
|
|
// \returns the status of the operation.
|
|
virtual int Undo();
|
|
|
|
// Description:
|
|
// Performs a Redo using the set on the top of the redo stack. The set is poped from
|
|
// the redo stack and pushed at the top of the undo stack.
|
|
// Before redo begins, it fires vtkCommand::StartEvent and when redo completes,
|
|
// it fires vtkCommand::EndEvent.
|
|
// \returns the status of the operation.
|
|
virtual int Redo();
|
|
|
|
//BTX
|
|
|
|
enum EventIds
|
|
{
|
|
PushUndoSetEvent = 1987,
|
|
ObjectCreationEvent = 1988
|
|
|
|
};
|
|
|
|
protected:
|
|
vtkSMUndoStack();
|
|
~vtkSMUndoStack();
|
|
|
|
// Helper method used to push all vtkSMRemoteObject to the collection of
|
|
// all the sessions that have been used across that undoset.
|
|
// (It is more than likely that only one session will be find but in case of
|
|
// collaboration, we might want to support a set of sessions.)
|
|
// This is usefull when we execute the undoset to prevent automatic
|
|
// object deletion between 2 undo element calls when a proxy registration
|
|
// is supposed to happen.
|
|
void FillWithRemoteObjects( vtkUndoSet *undoSet, vtkCollection *collection);
|
|
|
|
private:
|
|
vtkSMUndoStack(const vtkSMUndoStack&); // Not implemented.
|
|
void operator=(const vtkSMUndoStack&); // Not implemented.
|
|
|
|
class vtkInternal;
|
|
vtkInternal* Internal;
|
|
|
|
vtkSMUndoStackObserver* Observer;
|
|
//ETX
|
|
};
|
|
|
|
|
|
#endif
|