We want to be consistent with the previous layout, to avoid needlessly breaking existing codes. The header update means client codes are not required to include all of the stepcode library includes explicitly - i.e., stepcode itself does not force this requirement with its own internal includes. However, if client codes do not want to add the library prefixes to their own includes as we have for stepcode, they should still be able to add the various includes and work as before. Adjust the include directory names accordingly.
154 lines
4.8 KiB
C++
154 lines
4.8 KiB
C++
#ifndef mgrnode_h
|
|
#define mgrnode_h
|
|
|
|
/*
|
|
* NIST STEP Editor Class Library
|
|
* cleditor/mgrnode.h
|
|
* April 1997
|
|
* David Sauder
|
|
* K. C. Morris
|
|
|
|
* Development of this software was funded by the United States Government,
|
|
* and is not subject to copyright.
|
|
*/
|
|
|
|
/* $Id: mgrnode.h,v 3.0.1.4 1997/11/05 22:11:37 sauderd DP3.1 $ */
|
|
|
|
#include <sc_export.h>
|
|
|
|
class GenericNode;
|
|
class DisplayNode;
|
|
#include "clstepcore/sdai.h"
|
|
|
|
#include "clutils/gennode.h"
|
|
#include "clutils/gennodelist.h"
|
|
|
|
#include "cleditor/editordefines.h"
|
|
|
|
class InstMgr;
|
|
|
|
class SC_CORE_EXPORT MgrNodeBase : public GenericNode {
|
|
public:
|
|
virtual inline SDAI_Application_instance * GetSTEPentity() {
|
|
abort();
|
|
return NULL;
|
|
};
|
|
virtual ~MgrNodeBase() {};
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
// class MgrNode
|
|
// If you delete this object, it deletes the SDAI_Application_instance it represents,
|
|
// the DisplayNode, and removes itself from any list it is in.
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
class SC_CORE_EXPORT MgrNode : public MgrNodeBase {
|
|
friend class GenNodeList;
|
|
friend class MgrNodeList;
|
|
friend class InstMgr;
|
|
|
|
protected:
|
|
// currState, next, prev implement several lists
|
|
// based on currState:
|
|
// currState = (completeSE, incompleteSE, newSE, or deleteSE)
|
|
// every node will be on one of the four lists implemented by these:
|
|
stateEnum currState;
|
|
|
|
// SDAI_Application_instance this node is representing info for
|
|
SDAI_Application_instance * se;
|
|
// this is the index (in the InstMgr master array) of the ptr to
|
|
// this node.
|
|
int arrayIndex;
|
|
|
|
// display info (SEE, etc) for this node
|
|
DisplayNode * di;
|
|
|
|
public:
|
|
// used for sentinel node on lists of MgrNodes
|
|
MgrNode();
|
|
MgrNode( SDAI_Application_instance * se );
|
|
// 'listState' ==
|
|
// completeSE - if reading valid exchange file
|
|
// incompleteSE or completeSE - if reading working session file
|
|
// newSE - if instance is created by user using editor (probe)
|
|
MgrNode( SDAI_Application_instance * se, stateEnum listState );
|
|
MgrNode( SDAI_Application_instance * se, stateEnum listState, MgrNodeList * list );
|
|
virtual ~MgrNode();
|
|
|
|
// STATE LIST OPERATIONS
|
|
int MgrNodeListMember( stateEnum s ) {
|
|
return ( currState == s );
|
|
}
|
|
stateEnum CurrState() {
|
|
return currState;
|
|
}
|
|
// returns next or prev member variables
|
|
// i.e. next or previous node on curr state list
|
|
// searches current list for fileId
|
|
MgrNode * StateFindFileId( int fileId );
|
|
|
|
// deletes from previous cmd list,
|
|
// & puts on cmd list cmdList
|
|
int ChangeList( MgrNodeList * cmdList );
|
|
int ChangeState( stateEnum s );
|
|
|
|
// Removes from current list.
|
|
// Called before adding to diff list or when destructor is called.
|
|
void Remove();
|
|
|
|
// DISPLAY LIST OPERATIONS
|
|
void * SEE();
|
|
|
|
displayStateEnum DisplayState();
|
|
int IsDisplayState( displayStateEnum ds );
|
|
|
|
// returns next or prev member variables
|
|
// i.e. next or previous node on display state list
|
|
GenericNode * NextDisplay();
|
|
GenericNode * PrevDisplay();
|
|
|
|
// deletes from previous cmd list,
|
|
// & puts on cmd list cmdList
|
|
int ChangeList( DisplayNodeList * cmdList );
|
|
// deletes from previous display list, assigns ds to
|
|
// displayState & puts on list dsList
|
|
int ChangeState( displayStateEnum ds );
|
|
|
|
// might not want these three? since it won't actually map them?
|
|
void MapModifiable( DisplayNodeList * dnList );
|
|
void MapViewable( DisplayNodeList * dnList );
|
|
void UnMap( DisplayNodeList * dnList );
|
|
|
|
// ACCESS FUNCTIONS
|
|
int GetFileId();
|
|
SDAI_Application_instance * GetApplication_instance() {
|
|
return se;
|
|
}
|
|
DisplayNode *& displayNode() {
|
|
return di;
|
|
}
|
|
int ArrayIndex() {
|
|
return arrayIndex;
|
|
}
|
|
void ArrayIndex( int index ) {
|
|
arrayIndex = index;
|
|
}
|
|
|
|
// OBSOLETE
|
|
SDAI_Application_instance * GetSTEPentity() {
|
|
return se;
|
|
}
|
|
protected:
|
|
|
|
private:
|
|
void Init( SDAI_Application_instance * s, stateEnum listState, MgrNodeList * list );
|
|
};
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
// class MgrNode inline functions
|
|
// these functions don't rely on any inline functions (its own or
|
|
// other classes) that aren't in this file except for Generic functions
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
#endif
|