mergetodolist.h

来自「管理项目进度工具的原代码」· C头文件 代码 · 共 62 行

H
62
字号
// MergeToDoList.h: interface for the CMergeToDoList class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_MERGETODOLIST_H__7BFD737D_FF21_46B9_9378_D14BDA114022__INCLUDED_)
#define AFX_MERGETODOLIST_H__7BFD737D_FF21_46B9_9378_D14BDA114022__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <afxtempl.h>

enum TDL_MERGEBY
{
	TDLM_BYTITLE,
	TDLM_BYID
};

enum TDL_MERGEHOW
{
	TDLM_LEAVE,
	TDLM_MOVE,
};

class CXmlItem;

class CMergeToDoList  
{
public:
	CMergeToDoList(TDL_MERGEBY nBy, TDL_MERGEHOW nHow = TDLM_MOVE);
	virtual ~CMergeToDoList();

	int Merge(LPCTSTR szSrcPath, LPCTSTR szDestPath);
	int Merge(const CXmlItem* pXISrc, CXmlItem* pXIDest);
	int Merge(const CXmlItem* pXISrc, LPCTSTR szDestPath);
	int Merge(LPCTSTR szSrcPath, CXmlItem* pXIDest);

	DWORD GetNextID() { return m_dwNextID; }

protected:
	CXmlItem* m_pXIDestRoot;
	TDL_MERGEBY m_nMergeBy;
	TDL_MERGEHOW m_nMergeHow;
	DWORD m_dwNextID, m_dwOrgNextID;
	CMap<DWORD, DWORD, CXmlItem*, CXmlItem*&> m_mapID2Item;
	
protected:
	int MergeTasks(const CXmlItem* pXISrc, CXmlItem* pXIDest);
	BOOL MergeAttributes(const CXmlItem* pXISrc, CXmlItem* pXIDest);
	
	int MergeTasksByTitle(const CXmlItem* pXISrc, CXmlItem* pXIDest);
	int MergeTasksByID(const CXmlItem* pXISrc, CXmlItem* pXIDest);
	int MergeTaskByID(const CXmlItem* pXISrc, CXmlItem* pXIDestParent);

	CXmlItem* FindDestTask(DWORD dwID);
	void BuildLookupMap();
	void AddTaskToLookupMap(CXmlItem* pXIDest);
};

#endif // !defined(AFX_MERGETODOLIST_H__7BFD737D_FF21_46B9_9378_D14BDA114022__INCLUDED_)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?