|
|
|
|
|
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//<2F>ļ<EFBFBD> LayerClass.h
|
|
|
|
|
|
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>:
|
|
|
|
|
|
//
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д: 2005-12-07
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "afxcoll.h"
|
|
|
|
|
|
#include ".\name.h"
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* ͼ<EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
class CLayer;
|
|
|
|
|
|
class AFX_EXT_CLASS CLayerList : public CName
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CLayerList(CString strName);
|
|
|
|
|
|
CLayerList(void);
|
|
|
|
|
|
virtual ~CLayerList(void);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
CPtrList value;
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
virtual void Serialize(CArchive& ar, const short& ver);
|
|
|
|
|
|
virtual int Read(CFile& fr, const short& ver);
|
|
|
|
|
|
virtual void Write(CFile& fw, const short& ver);
|
|
|
|
|
|
virtual void ScaleProperty(double sx, double sy, BOOL bJudgeEditSatte=TRUE);
|
|
|
|
|
|
|
|
|
|
|
|
void SerializeLegend(CArchive& ar, const short &ver); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
|
|
|
|
|
|
void SerializeLayerName(CArchive& ar, const short& ver); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
|
|
|
|
|
|
void SerializeLayerState(CArchive& ar, const short& ver); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
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 WriteLayerNameDML(CFile& fw, const short& ver, int nBaseTabNum, int isClosed);
|
|
|
|
|
|
void WriteLayerNameDML(CFile& fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
void WriteDML(CFile& fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
int WriteLegendDML(CFile& fw, const short& ver, double cc=1.0, int nBaseTabNum=1);
|
|
|
|
|
|
|
|
|
|
|
|
void WriteLayerNamePCG(CFile& fw, const short& ver, int nBaseTabNum, int isClosed);
|
|
|
|
|
|
void WriteLayerNamePCG(CFile& fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
void WritePCG(CFile& fw, const short& ver, int nBaseTabNum);
|
|
|
|
|
|
int WriteLegendPCG(CFile& fw, const short& ver, double cc=1.0, int nBaseTabNum=1);
|
|
|
|
|
|
|
|
|
|
|
|
POSITION FindAdd(CString strName, bool* pbCreateNew = NULL); //<2F>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>иò<D0B8>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2B7B5BB><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
|
POSITION Add(CLayer* pLayer); //<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>иò<D0B8>,<2C><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
POSITION InsertAfter(POSITION posAfter, CLayer* pLayer);
|
|
|
|
|
|
POSITION InsertBefore(POSITION posBefore, CLayer* pLayer);
|
|
|
|
|
|
|
|
|
|
|
|
int Merge(CLayerList& cl, CPtrList* pAddedLayerList = NULL, bool bReplaceExistLayer = TRUE);
|
|
|
|
|
|
int ReplacePath(CString strOld, CString strNew);
|
|
|
|
|
|
|
|
|
|
|
|
int FindPath(CString strPathName, CString strFind);
|
|
|
|
|
|
POSITION FindLayer(CString strName, BOOL bIncludeSublayer = FALSE);
|
|
|
|
|
|
void FindLayers(CString strName, CPtrList& positions, BOOL bIncludeSublayer = FALSE);
|
|
|
|
|
|
int SetLayerState(CString sLayer, int state, BOOL bIncludeSubLayer);
|
|
|
|
|
|
int SetLayerState(int state); //<2F><><EFBFBD>ø<EFBFBD><C3B8><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬
|
|
|
|
|
|
|
|
|
|
|
|
void RemoveAll(BOOL bFreeMem=TRUE);
|
|
|
|
|
|
void RemoveAllLegend(void);
|
|
|
|
|
|
void RemoveAt(CString strLayerName);
|
|
|
|
|
|
void RemoveAt(POSITION pos);
|
|
|
|
|
|
void RemoveAt(CLayer* pLayer); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1>е<EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>pLayer<65><72><EFBFBD><EFBFBD>
|
|
|
|
|
|
CLayer* RemoveAtNoClear(POSITION pos);
|
|
|
|
|
|
|
|
|
|
|
|
CString GetPathName(POSITION pos);
|
|
|
|
|
|
CString GetClassName(void);
|
|
|
|
|
|
CPtrList* GetPtrList(void);
|
|
|
|
|
|
|
|
|
|
|
|
CLayer* GetAt(POSITION pos);
|
|
|
|
|
|
CLayer* GetNext(POSITION &pos);
|
|
|
|
|
|
CLayer* GetPrev(POSITION &pos);
|
|
|
|
|
|
CLayer* GetHead();
|
|
|
|
|
|
CLayer* GetTail();
|
|
|
|
|
|
POSITION GetHeadPosition();
|
|
|
|
|
|
POSITION GetTailPosition();
|
|
|
|
|
|
int GetCount(void);
|
|
|
|
|
|
|
|
|
|
|
|
void Standardization(CString &strLayerName);
|
|
|
|
|
|
int PositionNew(int bReplace=1);//<2F><>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>еķ<D0B5><C4B7><EFBFBD>ָ<EFBFBD>룬bReaplce=TRUEʱ<45><CAB1>ʾ<EFBFBD><CABE><EFBFBD>Ų<EFBFBD>Ϊ<EFBFBD>ղ<EFBFBD><D5B2><EFBFBD><EFBFBD>¶<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F2B2BBB9>Ƿ<EFBFBD>Ϊ<EFBFBD>ն<EFBFBD><D5B6><EFBFBD><EFBFBD>¶<EFBFBD>λ
|
|
|
|
|
|
void GetNewUsing(CStringList &list);
|
|
|
|
|
|
void operator=(CLayerList& lc);
|
|
|
|
|
|
|
|
|
|
|
|
int AddHeadLayer(LPCTSTR lpszLayerName); //<2F><><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD>磺"NewLayer\\"<22><>"NewLayer\\Test\\"
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE CPtrList* CLayerList::GetPtrList(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
return &value;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE CString CLayerList::GetClassName(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
return name;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE int CLayerList::GetCount(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
return (int)value.GetCount();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE POSITION CLayerList::GetHeadPosition()
|
|
|
|
|
|
{
|
|
|
|
|
|
return value.GetHeadPosition();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE POSITION CLayerList::GetTailPosition()
|
|
|
|
|
|
{
|
|
|
|
|
|
return value.GetTailPosition();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE CLayer* CLayerList::GetNext(POSITION &pos)
|
|
|
|
|
|
{
|
|
|
|
|
|
return (CLayer*)value.GetNext(pos);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE CLayer* CLayerList::GetPrev(POSITION &pos)
|
|
|
|
|
|
{
|
|
|
|
|
|
return (CLayer*)value.GetPrev(pos);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE CLayer* CLayerList::GetAt(POSITION pos)
|
|
|
|
|
|
{
|
|
|
|
|
|
return (CLayer*)value.GetAt(pos);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE CLayer* CLayerList::GetHead()
|
|
|
|
|
|
{
|
|
|
|
|
|
return (CLayer*)value.GetHead();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
AFX_INLINE CLayer* CLayerList::GetTail()
|
|
|
|
|
|
{
|
|
|
|
|
|
return (CLayer*)value.GetTail();
|
|
|
|
|
|
}
|