亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? command.h

?? 實現撤銷和恢復功能得遠嗎
?? H
字號:
// Command.h: interface for the CCommand class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_COMMAND_H__413D14C5_DDA4_4F61_93D3_5405785E15FC__INCLUDED_)
#define AFX_COMMAND_H__413D14C5_DDA4_4F61_93D3_5405785E15FC__INCLUDED_

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

// 使用STL列表
#include <list>
using namespace std;

/////////////////////////////////////////////////////////////////////
//
// CCommand 類
//
// 這是一個純虛類,必須由其子類實現其虛擬方法后才可用
// 相當于一個接口
//
class CCommand  
{
public:
	// 用于清理資源
	virtual ~CCommand(){ };

	// 用于執行命令
	virtual bool Execute() = 0;
	// 用于恢復命令
	virtual bool Unexecute() = 0;
};

/////////////////////////////////////////////////////////////////////
//
// CCommandManagerT 類
//
// 這是一個命令管理類,用于管理所有的命令集合
//
template <class T = CCommand>

class CCommandManagerT
{
// 數據成員
private:
	typedef list<T*>	CommandList;         // 命令列表定義
	CommandList         m_undoList;          // 回退命令列表
	CommandList         m_redoList;
	int                 m_nUndoLevel;
	int                 m_nCleanCount;

// 構造與析構方法
public:
	CCommandManagerT(int nUndoLevel = 100) : 
		m_nUndoLevel(nUndoLevel), 
		m_nCleanCount(0)
	{ }

	~CCommandManagerT()
	{
		Clear();   // 清空所有m_undoList與m_redoList內容
	}

// 屬性
public:
	bool CanUndo() const
	{
		return (m_undoList.size() > 0);
	}

	bool CanRedo() const
	{
		return (m_redoList.size() > 0);
	}

	int getUndoLevel() const
	{
		return m_nUndoLevel;
	}

	void setUndoLevel(int newValue)
	{
		m_nUndoLevel = newValue;
	}

	bool IsDirty() const
	{
		return (m_nCleanCount != 0);
	}

	T* getLastUndoCommand() const
	{
		return m_undoList.back();
	}

	T* getLastRedoCommand() const
	{
		return m_redoList.back();
	}

// 個部接口方法
public:
	void DoCommand(T* pCommand)
	{
		// 清空redo列表
		ClearRedoList();
		// 執行命令并將其加入Undo列表
		if (pCommand->Execute())
			AddUndo(pCommand);
	}

	void Undo()
	{
		if (CanUndo())
		{
			m_nCleanCount--;
			T* pCommand = m_undoList.back();
			m_undoList.pop_back();
			if (pCommand->Unexecute())
				AddRedo(pCommand);
			else
				delete pCommand;
		}
	}

	void Redo()
	{
		if (CanRedo())
		{
			m_nCleanCount++;
			T* pCommand = m_redoList.back();
			m_redoList.pop_back();
			if (pCommand->Execute())
				AddUndo(pCommand);
			else
				delete pCommand;
		}
	}

	void Clear()
	{
		ClearUndoList();
		ClearRedoList();
	}

	void SetClean()
	{
		m_nCleanCount = 0;
	}

	void AddUndo(T* pCommand)
	{
		if (m_undoList.size() >= m_nUndoLevel)
		{
			delete m_undoList.front();
			m_undoList.pop_front();
		}
		m_undoList.push_back(pCommand);
		if (m_nCleanCount < 0 && m_redoList.size() > 0)
			m_nCleanCount = m_undoList.size() + m_redoList.size() + 1;
		else
			m_nCleanCount++;
	}

	void AddRedo(T* pCommand)
	{
		m_redoList.push_back(pCommand);
	}

	void ClearUndoList()
	{
		ClearCommandList(&m_undoList);
	}

	void ClearRedoList()
	{
		ClearCommandList(&m_redoList);
	}

	void ClearCommandList(CommandList* pList)
	{
		CommandList::iterator it;
		for (it = pList->begin(); it != pList->end(); it++)
			delete *it;
		pList->erase(pList->begin(), pList->end());
	}
};

typedef CCommandManagerT<>	CommandManager;

#endif // !defined(AFX_COMMAND_H__413D14C5_DDA4_4F61_93D3_5405785E15FC__INCLUDED_)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品成人一区二区三区| 6080yy午夜一二三区久久| 成人性生交大合| 欧美无砖砖区免费| 久久久不卡网国产精品一区| 一区二区三区在线免费| 国产精一区二区三区| 欧美日韩在线播放一区| 国产精品久久久久毛片软件| 日韩中文字幕区一区有砖一区| 成人听书哪个软件好| 日韩女优av电影| 亚洲国产日韩a在线播放| 99在线热播精品免费| 26uuu色噜噜精品一区二区| 亚洲小少妇裸体bbw| av电影天堂一区二区在线| 久久综合给合久久狠狠狠97色69| 日日嗨av一区二区三区四区| 色婷婷激情久久| 国产精品美女久久久久久2018| 久久精品国产精品亚洲红杏| 欧美精品电影在线播放| 亚洲国产人成综合网站| 91国偷自产一区二区开放时间| 中文字幕亚洲区| 成人的网站免费观看| 国产午夜精品一区二区三区四区| 免费欧美日韩国产三级电影| 欧美高清视频www夜色资源网| 日韩欧美一级二级| 欧美日韩在线播放| 久久久久一区二区三区四区| 最新热久久免费视频| 五月综合激情网| 国产精一区二区三区| 色婷婷国产精品| 精品处破学生在线二十三| 中文字幕不卡在线| 日韩激情在线观看| 成人精品国产一区二区4080| 欧美三级日韩三级| 国产拍欧美日韩视频二区| 一区二区三区免费在线观看| 国产一区二区伦理片| 欧美影视一区二区三区| 久久久久久电影| 日韩中文字幕1| 色天使色偷偷av一区二区| 精品精品欲导航| 亚洲一级不卡视频| 不卡一卡二卡三乱码免费网站| 4438x成人网最大色成网站| 欧美日韩国产另类一区| 一个色妞综合视频在线观看| 欧美日韩一区二区三区在线 | 2021中文字幕一区亚洲| 激情综合色综合久久综合| 国产精品欧美一区喷水| 欧美专区亚洲专区| 蜜芽一区二区三区| 国产精品视频九色porn| 欧美色综合网站| 久久精品国内一区二区三区| 中文字幕国产一区二区| 色综合久久久久网| 青草av.久久免费一区| 国产日韩欧美一区二区三区乱码| a亚洲天堂av| 日本亚洲一区二区| 欧美一区二区在线不卡| 成人网在线免费视频| 亚洲一区二区av在线| 国产色产综合产在线视频| 91视频观看免费| 蜜桃一区二区三区四区| 国产精品国产三级国产a| 欧美顶级少妇做爰| 成人动漫视频在线| 热久久免费视频| 综合精品久久久| 日韩一级成人av| 日本高清不卡视频| 九九精品一区二区| 亚洲精品成人a在线观看| 精品久久一区二区三区| 色婷婷综合久色| 国产成人av电影在线播放| 天天综合色天天综合| 中文字幕中文字幕一区| 91精品国产综合久久国产大片| 成人sese在线| 久久精品国产999大香线蕉| 亚洲婷婷综合色高清在线| 亚洲精品一区二区三区在线观看| 色天天综合久久久久综合片| 制服丝袜中文字幕一区| 午夜久久久影院| 日韩视频免费直播| 国产一区二区在线免费观看| 国产日产欧美一区二区三区| 风间由美性色一区二区三区| 在线免费观看成人短视频| 国产91高潮流白浆在线麻豆| 精品影院一区二区久久久| 亚洲午夜av在线| 亚洲色图欧美在线| 国产精品女同一区二区三区| 欧美α欧美αv大片| 欧美高清视频一二三区 | 久久精品夜色噜噜亚洲aⅴ| 7777女厕盗摄久久久| 欧美人与z0zoxxxx视频| 91麻豆国产精品久久| 91麻豆福利精品推荐| 91最新地址在线播放| 国产风韵犹存在线视精品| 久久99精品一区二区三区 | 欧美一区二区视频在线观看| 欧美无人高清视频在线观看| 91国内精品野花午夜精品| 欧洲日韩一区二区三区| 在线看日韩精品电影| 色猫猫国产区一区二在线视频| 91免费在线播放| 一本色道久久综合亚洲aⅴ蜜桃 | 精品欧美乱码久久久久久1区2区| 91精品国产入口| 欧美大片国产精品| 精品日韩成人av| 久久人人97超碰com| 国产欧美日韩视频在线观看| 欧美精彩视频一区二区三区| 亚洲欧洲日本在线| 亚洲美女免费视频| 亚洲成人一区在线| 日韩精品高清不卡| 国产一区二区三区精品欧美日韩一区二区三区 | 久久99热国产| 亚洲精选一二三| 中文文精品字幕一区二区| 91精品国产综合久久国产大片| 日本高清不卡aⅴ免费网站| 粗大黑人巨茎大战欧美成人| 老司机精品视频导航| 午夜欧美一区二区三区在线播放| 色诱视频网站一区| 99re6这里只有精品视频在线观看| 91丨九色丨国产丨porny| 欧美系列日韩一区| 欧美成人激情免费网| 国产欧美日本一区二区三区| 亚洲天天做日日做天天谢日日欢| 亚洲一区在线视频观看| 极品销魂美女一区二区三区| av亚洲精华国产精华精| 欧美日韩一区二区三区四区五区| 精品伦理精品一区| 亚洲手机成人高清视频| 日本不卡一二三区黄网| 成人在线一区二区三区| 国产清纯白嫩初高生在线观看91 | 一区二区三区在线视频观看 | 日韩免费观看2025年上映的电影 | 亚洲在线一区二区三区| 免费视频最近日韩| 99久久免费国产| 日韩欧美激情在线| 亚洲欧美经典视频| 黄网站免费久久| 欧洲精品一区二区| 欧美国产一区视频在线观看| 天堂成人国产精品一区| 成人综合日日夜夜| 日韩三级电影网址| 一区二区三区中文字幕| 国产精品白丝jk黑袜喷水| 欧美日韩dvd在线观看| 最新不卡av在线| 国内精品免费**视频| 欧美在线观看视频一区二区三区| 国产亚洲美州欧州综合国 | 亚洲欧洲日本在线| 国产自产高清不卡| 91精品欧美一区二区三区综合在| 亚洲免费大片在线观看| 国产成人8x视频一区二区| 欧美一二三四区在线| 亚洲综合久久久久| 成人免费视频视频在线观看免费| 日韩美女天天操| 日日骚欧美日韩| 日韩一区二区视频| 中文字幕第一区二区| 奇米一区二区三区av| 国产成人啪免费观看软件| 欧美日韩精品三区| 国产日韩欧美综合一区| 亚洲mv大片欧洲mv大片精品| 国产在线精品一区二区夜色|