]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/cmdproc.cpp
Document wxGB{Position,Size}::operator!=(), remove operator!().
[wxWidgets.git] / src / common / cmdproc.cpp
index cb0d3930492d76aab84dcfe90402aad227bdf875..5e8a253ccbbeea631ee1ebc20eebcab533c600f0 100644 (file)
@@ -172,9 +172,9 @@ bool wxCommandProcessor::Redo()
 {
     wxCommand *redoCommand = NULL;
     wxList::compatibility_iterator redoNode
-#if !wxUSE_STL
+#if !wxUSE_STD_CONTAINERS
         = NULL          // just to avoid warnings
-#endif // !wxUSE_STL
+#endif // !wxUSE_STD_CONTAINERS
         ;
 
     if ( m_currentCommand )
@@ -328,4 +328,28 @@ void wxCommandProcessor::ClearCommands()
     m_lastSavedCommand = wxList::compatibility_iterator();
 }
 
+bool wxCommandProcessor::IsDirty() const
+{
+    if ( m_commands.empty() )
+    {
+        // If we have never been modified, we can't be dirty.
+        return false;
+    }
+
+    if ( !m_lastSavedCommand )
+    {
+        // If we have been modified but have never been saved, we're dirty.
+        return true;
+    }
+
+    if ( !m_currentCommand )
+    {
+        // This only happens if all commands were undone after saving the
+        // document: we're dirty then.
+        return true;
+    }
+
+    // Finally if both iterators are valid, we may just compare them.
+    return m_currentCommand != m_lastSavedCommand;
+}