#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
{
public:
wxCommand(bool canUndoIt = false, const wxString& name = wxEmptyString);
- ~wxCommand(){}
+ virtual ~wxCommand(){}
// Override this to perform a command
virtual bool Do() = 0;
#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);
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; }
int m_maxNoCommands;
wxList m_commands;
- wxList::compatibility_iterator m_currentCommand;
+ wxList::compatibility_iterator m_currentCommand,
+ m_lastSavedCommand;
#if wxUSE_MENUS
wxMenu* m_commandEditMenu;
};
#endif // _WX_CMDPROC_H_
+