X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/03647350fc7cd141953c72e0284e928847d30f44..e6b3b53c2c20fe75dc410a22a99b88a63653aef5:/src/propgrid/props.cpp?ds=sidebyside diff --git a/src/propgrid/props.cpp b/src/propgrid/props.cpp index 0fb0e23b44..eee0cca8cf 100644 --- a/src/propgrid/props.cpp +++ b/src/propgrid/props.cpp @@ -352,21 +352,21 @@ wxValidator* wxIntProperty::DoGetValidator() const #define wxPG_UINT_TEMPLATE_MAX 8 -static const wxChar* gs_uintTemplates32[wxPG_UINT_TEMPLATE_MAX] = { +static const wxChar* const gs_uintTemplates32[wxPG_UINT_TEMPLATE_MAX] = { wxT("%x"),wxT("0x%x"),wxT("$%x"), wxT("%X"),wxT("0x%X"),wxT("$%X"), wxT("%u"),wxT("%o") }; -static const wxChar* gs_uintTemplates64[wxPG_UINT_TEMPLATE_MAX] = { - wxT("%") wxLongLongFmtSpec wxT("x"), - wxT("0x%") wxLongLongFmtSpec wxT("x"), - wxT("$%") wxLongLongFmtSpec wxT("x"), - wxT("%") wxLongLongFmtSpec wxT("X"), - wxT("0x%") wxLongLongFmtSpec wxT("X"), - wxT("$%") wxLongLongFmtSpec wxT("X"), - wxT("%") wxLongLongFmtSpec wxT("u"), - wxT("%") wxLongLongFmtSpec wxT("o") +static const char* const gs_uintTemplates64[wxPG_UINT_TEMPLATE_MAX] = { + "%" wxLongLongFmtSpec "x", + "0x%" wxLongLongFmtSpec "x", + "$%" wxLongLongFmtSpec "x", + "%" wxLongLongFmtSpec "X", + "0x%" wxLongLongFmtSpec "X", + "$%" wxLongLongFmtSpec "X", + "%" wxLongLongFmtSpec "u", + "%" wxLongLongFmtSpec "o" }; WX_PG_IMPLEMENT_PROPERTY_CLASS(wxUIntProperty,wxPGProperty, @@ -874,7 +874,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxEnumProperty, wxPGProperty) WX_PG_IMPLEMENT_PROPERTY_CLASS_PLAIN(wxEnumProperty,long,Choice) -wxEnumProperty::wxEnumProperty( const wxString& label, const wxString& name, const wxChar** labels, +wxEnumProperty::wxEnumProperty( const wxString& label, const wxString& name, const wxChar* const* labels, const long* values, int value ) : wxPGProperty(label,name) { SetIndex(0); @@ -888,7 +888,7 @@ wxEnumProperty::wxEnumProperty( const wxString& label, const wxString& name, con } } -wxEnumProperty::wxEnumProperty( const wxString& label, const wxString& name, const wxChar** labels, +wxEnumProperty::wxEnumProperty( const wxString& label, const wxString& name, const wxChar* const* labels, const long* values, wxPGChoices* choicesCache, int value ) : wxPGProperty(label,name) { @@ -958,11 +958,17 @@ void wxEnumProperty::OnSetValue() wxString variantType = m_value.GetType(); if ( variantType == wxPG_VARIANT_TYPE_LONG ) + { ValueFromInt_( m_value, m_value.GetLong(), wxPG_FULL_VALUE ); + } else if ( variantType == wxPG_VARIANT_TYPE_STRING ) + { ValueFromString_( m_value, m_value.GetString(), 0 ); + } else + { wxFAIL; + } if ( ms_nextIndex != -2 ) { @@ -1028,9 +1034,7 @@ bool wxEnumProperty::ValueFromString_( wxVariant& value, const wxString& text, i // If text not any of the choices, store as text instead // (but only if we are wxEditEnumProperty) - if ( useIndex == -1 && - (value.GetType() != wxPG_VARIANT_TYPE_STRING || (m_value.GetString() != text)) && - isEdit ) + if ( useIndex == -1 && isEdit ) { asText = true; } @@ -1134,14 +1138,14 @@ IMPLEMENT_DYNAMIC_CLASS(wxEditEnumProperty, wxPGProperty) WX_PG_IMPLEMENT_PROPERTY_CLASS_PLAIN(wxEditEnumProperty,wxString,ComboBox) -wxEditEnumProperty::wxEditEnumProperty( const wxString& label, const wxString& name, const wxChar** labels, +wxEditEnumProperty::wxEditEnumProperty( const wxString& label, const wxString& name, const wxChar* const* labels, const long* values, const wxString& value ) : wxEnumProperty(label,name,labels,values,0) { SetValue( value ); } -wxEditEnumProperty::wxEditEnumProperty( const wxString& label, const wxString& name, const wxChar** labels, +wxEditEnumProperty::wxEditEnumProperty( const wxString& label, const wxString& name, const wxChar* const* labels, const long* values, wxPGChoices* choicesCache, const wxString& value ) : wxEnumProperty(label,name,labels,values,choicesCache,0) { @@ -1260,7 +1264,7 @@ void wxFlagsProperty::Init() } wxFlagsProperty::wxFlagsProperty( const wxString& label, const wxString& name, - const wxChar** labels, const long* values, long value ) : wxPGProperty(label,name) + const wxChar* const* labels, const long* values, long value ) : wxPGProperty(label,name) { m_oldChoicesData = NULL; @@ -1638,10 +1642,9 @@ wxFileProperty::wxFileProperty( const wxString& label, const wxString& name, wxFileProperty::~wxFileProperty() {} -#if wxUSE_VALIDATORS - wxValidator* wxFileProperty::GetClassValidator() { +#if wxUSE_VALIDATORS WX_PG_DOGETVALIDATOR_ENTRY() // Atleast wxPython 2.6.2.1 required that the string argument is given @@ -1659,6 +1662,9 @@ wxValidator* wxFileProperty::GetClassValidator() validator->SetExcludes(exChars); WX_PG_DOGETVALIDATOR_EXIT(validator) +#else + return NULL; +#endif } wxValidator* wxFileProperty::DoGetValidator() const @@ -1666,8 +1672,6 @@ wxValidator* wxFileProperty::DoGetValidator() const return GetClassValidator(); } -#endif - void wxFileProperty::OnSetValue() { const wxString& fnstr = m_value.GetString(); @@ -2114,12 +2118,14 @@ bool wxArrayEditorDialog::Create( wxWindow *parent, wxBoxSizer* rowsizer = new wxBoxSizer( wxHORIZONTAL ); m_edValue = new wxTextCtrl(this,21,wxEmptyString, wxDefaultPosition,wxDefaultSize,wxTE_PROCESS_ENTER); +#if wxUSE_VALIDATORS wxValidator* validator = GetTextCtrlValidator(); if ( validator ) { m_edValue->SetValidator( *validator ); delete validator; } +#endif rowsizer->Add( m_edValue, 1, wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL|wxALL, spacing ); @@ -2568,7 +2574,7 @@ bool wxArrayStringProperty::StringToValue( wxVariant& variant, const wxString& t // Need to replace backslashes with empty characters // (opposite what is done in GenerateValueString). - token.Replace ( wxS("\\"), wxEmptyString, true ); + token.Replace ( wxS("\\\\"), wxS("\\"), true ); arr.Add( token );