You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.4 KiB
C++

#pragma once
class CXy;
namespace SymbolManager
{
class AFX_EXT_CLASS CLibraryItem
{
public:
CLibraryItem();
~CLibraryItem();
void ClearXy();
void SetXy(CXy* pxy);
CString GetItemName(void);
int Read(void);
void Write(void);
CXy* m_pxy;
CString m_strFileName;
BOOL m_bModified; ///< 是否被修改过
};
class AFX_EXT_CLASS CLibraryManager
{
public:
CLibraryManager();
virtual ~CLibraryManager();
CList<CLibraryItem*, CLibraryItem*> m_libXy; ///< 符号库里面的文件XY链表
CString m_strPath;
BOOL IsSameLibraryPath(LPCTSTR lpszLibPath);
void RemoveAll(void);
void RemoveGroup(CString strNewFile);
void ReloadGroup(const CString& strFile);
BOOL RenameGroup(CString oldFile, CString newFile);
BOOL SaveAll();
bool InitLib(CString strNewPath, BOOL bNotJudgeSamePath);
POSITION AddNewGroup(CString strNewFile);
POSITION Find(CXy* pxy);
POSITION Find(CString strLibName);
CLibraryItem* GetAt(POSITION pos);
CXy* GetItemXy(POSITION pos);
CString GetTreePathName(LPCTSTR strFileName);
/** @brief 查找组strGroup中名称为strName的符号 */
CXy *FindMark(const CString &strGroup, const CString &strName);
/* @brief 查找符号名为strName的符号 */
CXy *FindMark(const CString &strName);
void ReNameMark(const CString &strGroup, const CString &oldName,const CString &newName);
};
}
using namespace SymbolManager;
extern "C" AFX_EXT_API CLibraryManager *WINAPI AfxGetMarkLibMgr();