X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fda7962d029672a5f4c718a3c6b2559856f4cd95..682214d5c6ec3e56dbdfd0c97d70d87e614b38c2:/include/wx/cmdproc.h diff --git a/include/wx/cmdproc.h b/include/wx/cmdproc.h index d630a15224..ace9465d26 100644 --- a/include/wx/cmdproc.h +++ b/include/wx/cmdproc.h @@ -5,17 +5,18 @@ // Modified by: // Created: 05.11.00 // RCS-ID: $Id$ -// Copyright: (c) wxWindows team +// Copyright: (c) wxWidgets team // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_CMDPROC_H_ #define _WX_CMDPROC_H_ -#if defined(__GNUG__) && !defined(__APPLE__) +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "cmdproc.h" #endif +#include "wx/defs.h" #include "wx/object.h" #include "wx/list.h" @@ -28,8 +29,8 @@ class WXDLLEXPORT wxMenu; class WXDLLEXPORT wxCommand : public wxObject { public: - wxCommand(bool canUndoIt = FALSE, const wxString& name = wxEmptyString); - ~wxCommand(); + wxCommand(bool canUndoIt = false, const wxString& name = wxEmptyString); + ~wxCommand(){} // Override this to perform a command virtual bool Do() = 0; @@ -60,8 +61,8 @@ public: virtual ~wxCommandProcessor(); // Pass a command to the processor. The processor calls Do(); if - // successful, is appended to the command history unless storeIt is FALSE. - virtual bool Submit(wxCommand *command, bool storeIt = TRUE); + // successful, is appended to the command history unless storeIt is false. + virtual bool Submit(wxCommand *command, bool storeIt = true); // just store the command without executing it virtual void Store(wxCommand *command); @@ -98,6 +99,19 @@ public: int GetMaxCommands() const { return m_maxNoCommands; } virtual void ClearCommands(); + // Has the current project been changed? + virtual bool IsDirty() const + { + return m_currentCommand && (m_lastSavedCommand != m_currentCommand); + } + + // 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; } @@ -114,7 +128,8 @@ protected: int m_maxNoCommands; wxList m_commands; - wxNode* m_currentCommand; + wxList::compatibility_iterator m_currentCommand, + m_lastSavedCommand; #if wxUSE_MENUS wxMenu* m_commandEditMenu; @@ -129,3 +144,4 @@ private: }; #endif // _WX_CMDPROC_H_ +