#pragma once class ICommand; // Ä¿¸Çµå È÷½ºÅ丮 ¹× Àü¹ÝÀûÀÎ ºÎºÐÀ» °ü¸®ÇÏ´Â °´Ã¼ // ÁöÁ¤µÈ Ä¿¸Çµå¸¦ ½ÇÇàÇϰí È÷½ºÅ丮¸¦ ÀúÀåÇÏ´Â °´Ã¼ÀÔ´Ï´Ù. class CCmdProcessor { private: deque m_dqCmdList; ICommand* m_pNowCommand; ICommand* m_pLastDidCommand; int m_iCmdHistoryCapacity; // ¸¶Áö¸·À¸·Î ½ÇÇàµÈ Ä¿¸Çµå Å¥¿¡¼­ÀÇ Ä¿¸Çµå À妽º. int m_iCmdIndex; bool m_bCmdUpdated; tstring m_strLastCmdMsg; // ¸¶Áö¸·À¸·Î ½ÇÇàµÈ Ä¿¸ÇµåÀÇ enumeration °ªÀ» ÀúÀåÇØ µÐ´Ù. int m_iLastCommandID; bool m_bErrorOccured; tstring m_strLastError; /*IView* m_pLogReceiver;*/ public: CCmdProcessor(void); ~CCmdProcessor(void); void SetCommand( ICommand* pCommand ); void DoCommand( void ); bool CanUndo( void ); void UndoCommand( void ); bool CanRedo( void ); void RedoCommand( void ); bool IsCommandUpdate( void ) { return m_bCmdUpdated; }; void OnUpdatedAllListeners( void ); // ¸ðµç ºäµéÀÌ ¾÷µ¥ÀÌÆ®°¡ ³¡³­ ÈÄ È£ÃâµÊ. int GetLastCmdTypeID( void ) { return m_iLastCommandID; }; int GetNumCmdHistory( void ); ICommand* GetCmdHistory( int iCmdIndex ); void UpdateToThisHistory( int iCmdIndex ); int GetNowCmdHistoryIndex( void ) { return m_iCmdIndex; }; void SetHistoryCapacity( int iHistoryCapacity ) { m_iCmdHistoryCapacity = iHistoryCapacity; }; int GetHistoryCapacity( void ) { return m_iCmdHistoryCapacity; }; const wxChar* GetCommandMsg( void ); const wxChar* GetLastError( void ); ICommand* GetLastDidCommand( void ) { return m_pLastDidCommand; }; //void SetLogReceiver( IView* pLogRecevier ) { m_pLogReceiver = pLogRecevier; }; // Ä¿¸Çµå ¸ðµÎ Ŭ¸®¾î. void Clear( void ); };