|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD> ClassList.h
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2005-12-07
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "layer.h"
|
|
|
|
|
|
#include ".\LayerClass.h"
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* ԭ<EFBFBD><EFBFBD>Class<EFBFBD><EFBFBD>˼<EFBFBD>ǵ<EFBFBD>һ<EFBFBD><EFBFBD>ͼ<EFBFBD>㣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Layerƽ<EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Layer:
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥ<EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>ֻ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>Layer<EFBFBD><EFBFBD>Class<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD>ͼ<EFBFBD>㶼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Layer<EFBFBD><EFBFBD><EFBFBD><EFBFBD>class<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD>ǵĴ洢
|
|
|
|
|
|
*/
|
|
|
|
|
|
class AFX_EXT_CLASS CClassList
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CClassList(void);
|
|
|
|
|
|
virtual ~CClassList(void);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
CList<CLayerList*,CLayerList*> value;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
CLayerList* GetNext(POSITION &pos);
|
|
|
|
|
|
CLayerList* GetPrev(POSITION &pos);
|
|
|
|
|
|
CLayerList* GetAt(POSITION pos);
|
|
|
|
|
|
CLayerList* GetHead();
|
|
|
|
|
|
CLayerList* GetTail();
|
|
|
|
|
|
POSITION GetHeadPosition();
|
|
|
|
|
|
POSITION GetTailPosition();
|
|
|
|
|
|
|
|
|
|
|
|
int GetCount(void);
|
|
|
|
|
|
int GetLayerCount(void);
|
|
|
|
|
|
|
|
|
|
|
|
CLayerList* FindAdd(CString strClassName);
|
|
|
|
|
|
POSITION AddOnly(CString strClassName);
|
|
|
|
|
|
POSITION AddTail(CString strClassName);
|
|
|
|
|
|
POSITION AddHead(CString strClassName);
|
|
|
|
|
|
POSITION Find(CString strClassName);
|
|
|
|
|
|
|
|
|
|
|
|
POSITION InsertBefore(POSITION position, CString strClassName);
|
|
|
|
|
|
POSITION InsertAfter (POSITION position, CString strClassName);
|
|
|
|
|
|
|
|
|
|
|
|
void RemoveAll(BOOL bFreeMem=TRUE);
|
|
|
|
|
|
void RemoveAt(POSITION pos);
|
|
|
|
|
|
|
|
|
|
|
|
virtual void ScaleProperty(double sx, double sy, BOOL bJudgeEditSatte=TRUE);
|
|
|
|
|
|
virtual void Serialize(CArchive& ar, const short &ver);
|
|
|
|
|
|
|
|
|
|
|
|
int PositionNew(int bReplace);
|
|
|
|
|
|
int Merge(CClassList& cl, CPtrList* pAddedLayerList = NULL, bool bReplaceExistLayer = TRUE);
|
|
|
|
|
|
|
|
|
|
|
|
int ReplaceLayer(CString strOldName, CString strNewName);
|
|
|
|
|
|
int MoveClass(POSITION sourcePos, POSITION objPos);
|
|
|
|
|
|
void operator=(CClassList& cl);
|
|
|
|
|
|
int SetLayerState(LPCTSTR lpClassName, int state); //<2F><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
|
|
|
|
|
|
void Write(CFile& fw, const short& ver);
|
|
|
|
|
|
int WriteLegend(CFile& fw, const short& ver, double cc=1.0);
|
|
|
|
|
|
void WriteLayerName(CFile& fw, const short& ver);
|
|
|
|
|
|
void WriteLayerState(CFile& fw, const short& ver);
|
|
|
|
|
|
|
|
|
|
|
|
void WriteLayerNamePCG(CFile& fw, const short& ver, int nBaseTabNum, int isClosed);
|
|
|
|
|
|
void WriteDML(CFile& fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
void WriteLayerNameDML(CFile& fw, const short& ver, int nBaseTabNum, int isClosed);
|
|
|
|
|
|
void WriteLayerNameDML(CFile& fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
int WriteLegendDML(CFile& fw, const short& ver, double cc=1.0, int nBaseTabNum=1);
|
|
|
|
|
|
|
|
|
|
|
|
void WritePCG(CFile& fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
void WriteLayerNamePCG(CFile& fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
int WriteLegendPCG(CFile& fw, const short& ver, double cc=1.0, int nBaseTabNum=1);
|
|
|
|
|
|
|
|
|
|
|
|
void SerializeLayerName(CArchive& ar, const short &ver); //<2F><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
|
|
|
|
|
|
void SerializeLegend(CArchive& ar, const short &ver); //<2F><>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE POSITION CClassList::GetHeadPosition()
|
|
|
|
|
|
{
|
|
|
|
|
|
return value.GetHeadPosition();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE POSITION CClassList::GetTailPosition()
|
|
|
|
|
|
{
|
|
|
|
|
|
return value.GetTailPosition();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE CLayerList* CClassList::GetNext(POSITION &pos)
|
|
|
|
|
|
{
|
|
|
|
|
|
return value.GetNext(pos);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE CLayerList* CClassList::GetPrev(POSITION &pos)
|
|
|
|
|
|
{
|
|
|
|
|
|
return value.GetPrev(pos);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE CLayerList* CClassList::GetAt(POSITION pos)
|
|
|
|
|
|
{
|
|
|
|
|
|
return value.GetAt(pos);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE CLayerList* CClassList::GetHead()
|
|
|
|
|
|
{
|
|
|
|
|
|
return value.GetHead();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE CLayerList* CClassList::GetTail()
|
|
|
|
|
|
{
|
|
|
|
|
|
return value.GetTail();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE int CClassList::GetCount(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
return (int)value.GetCount();
|
|
|
|
|
|
}
|