]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cmdproc.h
don't pass NULL pointer to printf(), this crashes Solaris printf
[wxWidgets.git] / include / wx / cmdproc.h
index 7062fdcae3f7e8833ff8ad38685711f9b0b09c08..ace9465d26bcda9cf13e747492fa9a83f63e67fb 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     05.11.00
 // RCS-ID:      $Id$
 // Copyright:   (c) wxWidgets team
-// Licence:     wxWidgets licence
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_CMDPROC_H_
@@ -29,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;
@@ -61,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);
@@ -99,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; }
@@ -115,7 +128,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;
@@ -130,3 +144,4 @@ private:
 };
 
 #endif // _WX_CMDPROC_H_
+