]> git.saurik.com Git - wxWidgets.git/blobdiff - src/propgrid/props.cpp
reduce the margins around bitmaps to avoid truncating the label unnecessarily
[wxWidgets.git] / src / propgrid / props.cpp
index df7efa118a6adb652864859a5f6c7b7a7cd2d8cc..805be5a0226a91bcdd5c6f9b5a0dc57928431794 100644 (file)
@@ -963,6 +963,7 @@ wxEnumProperty::~wxEnumProperty ()
 }
 
 int wxEnumProperty::ms_nextIndex = -2;
+int wxEnumProperty::ms_prevIndex = -1;
 
 void wxEnumProperty::OnSetValue()
 {
@@ -1053,7 +1054,7 @@ bool wxEnumProperty::ValueFromString_( wxVariant& value, const wxString& text, i
         setAsNextIndex = -1;
         value = text;
     }
-    else if ( m_index != useIndex )
+    else if ( useIndex != GetIndex() )
     {
         if ( useIndex != -1 )
         {
@@ -1094,7 +1095,7 @@ bool wxEnumProperty::ValueFromInt_( wxVariant& variant, int intVal, int argFlags
     }
     else
     {
-        if ( m_index != intVal )
+        if ( intVal != GetIndex() )
         {
             ms_nextIndex = intVal;
         }
@@ -1113,16 +1114,29 @@ bool wxEnumProperty::ValueFromInt_( wxVariant& variant, int intVal, int argFlags
     return false;
 }
 
+void
+wxEnumProperty::OnValidationFailure( wxVariant& WXUNUSED(pendingValue) )
+{
+    // Revert index
+    m_index = ms_prevIndex;
+    ResetNextIndex();
+}
+
 void wxEnumProperty::SetIndex( int index )
 {
+    ms_prevIndex = m_index;
     ms_nextIndex = -2;
     m_index = index;
 }
 
 int wxEnumProperty::GetIndex() const
 {
+    if ( m_value.IsNull() )
+        return -1;
+
     if ( ms_nextIndex != -2 )
         return ms_nextIndex;
+
     return m_index;
 }