X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e4a4a50b904a3194851fe5f81e09e266bb161596..66c2bf7b1d9326fb650acfaae22ec50528cfbf7c:/include/wx/cmdproc.h diff --git a/include/wx/cmdproc.h b/include/wx/cmdproc.h index 4ea73af904..c6125096a0 100644 --- a/include/wx/cmdproc.h +++ b/include/wx/cmdproc.h @@ -4,7 +4,6 @@ // Author: Julian Smart (extracted from docview.h by VZ) // Modified by: // Created: 05.11.00 -// RCS-ID: $Id$ // Copyright: (c) wxWidgets team // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -12,25 +11,21 @@ #ifndef _WX_CMDPROC_H_ #define _WX_CMDPROC_H_ -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma interface "cmdproc.h" -#endif - #include "wx/defs.h" #include "wx/object.h" #include "wx/list.h" -class WXDLLEXPORT wxMenu; +class WXDLLIMPEXP_FWD_CORE wxMenu; // ---------------------------------------------------------------------------- // wxCommand: a single command capable of performing itself // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxCommand : public wxObject +class WXDLLIMPEXP_CORE wxCommand : public wxObject { public: wxCommand(bool canUndoIt = false, const wxString& name = wxEmptyString); - ~wxCommand(){} + virtual ~wxCommand(){} // Override this to perform a command virtual bool Do() = 0; @@ -53,7 +48,7 @@ private: // wxCommandProcessor: wxCommand manager // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxCommandProcessor : public wxObject +class WXDLLIMPEXP_CORE wxCommandProcessor : public wxObject { public: // if max number of commands is -1, it is unlimited @@ -91,7 +86,8 @@ public: #endif // wxUSE_MENUS // command list access - wxList& GetCommands() const { return (wxList&) m_commands; } + wxList& GetCommands() { return m_commands; } + const wxList& GetCommands() const { return m_commands; } wxCommand *GetCurrentCommand() const { return (wxCommand *)(m_currentCommand ? m_currentCommand->GetData() : NULL); @@ -99,6 +95,16 @@ public: int GetMaxCommands() const { return m_maxNoCommands; } virtual void ClearCommands(); + // Has the current project been changed? + virtual bool IsDirty() const; + + // Mark the current command as the one where the last save took place + void MarkAsSaved() + { + m_lastSavedCommand = m_currentCommand; + } + + // By default, the accelerators are "\tCtrl+Z" and "\tCtrl+Y" const wxString& GetUndoAccelerator() const { return m_undoAccelerator; } const wxString& GetRedoAccelerator() const { return m_redoAccelerator; } @@ -115,7 +121,8 @@ protected: int m_maxNoCommands; wxList m_commands; - wxList::compatibility_iterator m_currentCommand; + wxList::compatibility_iterator m_currentCommand, + m_lastSavedCommand; #if wxUSE_MENUS wxMenu* m_commandEditMenu; @@ -126,7 +133,8 @@ protected: private: DECLARE_DYNAMIC_CLASS(wxCommandProcessor) - DECLARE_NO_COPY_CLASS(wxCommandProcessor) + wxDECLARE_NO_COPY_CLASS(wxCommandProcessor); }; #endif // _WX_CMDPROC_H_ +