X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fbbde24964a911000cc53b72def5e7aed14e07c9..ed8b46bba32c76a5544e6043a0a6de21eda5a712:/src/propgrid/advprops.cpp diff --git a/src/propgrid/advprops.cpp b/src/propgrid/advprops.cpp index c8d50cd201..dafde5ff54 100644 --- a/src/propgrid/advprops.cpp +++ b/src/propgrid/advprops.cpp @@ -6,7 +6,7 @@ // Created: 2004-09-25 // RCS-ID: $Id$ // Copyright: (c) Jaakko Salli -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // For compilers that support precompilation, includes "wx/wx.h". @@ -240,12 +240,12 @@ WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(SpinCtrl, wxPGEditor) -// Trivial destructor. +// Destructor. It is useful to reset the global pointer in it. wxPGSpinCtrlEditor::~wxPGSpinCtrlEditor() { + wxPG_EDITOR(SpinCtrl) = NULL; } - // Create controls and initialize event handling. wxPGWindowList wxPGSpinCtrlEditor::CreateControls( wxPropertyGrid* propgrid, wxPGProperty* property, const wxPoint& pos, const wxSize& sz ) const @@ -276,11 +276,12 @@ wxPGWindowList wxPGSpinCtrlEditor::CreateControls( wxPropertyGrid* propgrid, wxP wnd2->SetRange( INT_MIN, INT_MAX ); wnd2->SetValue( 0 ); + wxWindow* wnd1 = wxPGTextCtrlEditor::CreateControls(propgrid, property, pos, tcSz).m_primary; +#if wxUSE_VALIDATORS // Let's add validator to make sure only numbers can be entered wxTextValidator validator(wxFILTER_NUMERIC, &m_tempString); - - wxTextCtrl* wnd1 = (wxTextCtrl*) wxPGTextCtrlEditor::CreateControls( propgrid, property, pos, tcSz ).m_primary; wnd1->SetValidator(validator); +#endif return wxPGWindowList(wnd1, wnd2); } @@ -448,6 +449,7 @@ WX_PG_IMPLEMENT_INTERNAL_EDITOR_CLASS(DatePickerCtrl, wxPGDatePickerCtrlEditor::~wxPGDatePickerCtrlEditor() { + wxPG_EDITOR(DatePickerCtrl) = NULL; } wxPGWindowList wxPGDatePickerCtrlEditor::CreateControls( wxPropertyGrid* propgrid, @@ -554,40 +556,46 @@ void wxPGDatePickerCtrlEditor::SetValueToUnspecified( wxPGProperty* property, #include "wx/fontdlg.h" #include "wx/fontenum.h" -static const wxChar* gs_fp_es_family_labels[] = { +// +// NB: Do not use wxS here since unlike wxT it doesn't translate to wxChar* +// + +static const wxChar* const gs_fp_es_family_labels[] = { wxT("Default"), wxT("Decorative"), wxT("Roman"), wxT("Script"), wxT("Swiss"), wxT("Modern"), + wxT("Teletype"), wxT("Unknown"), (const wxChar*) NULL }; -static long gs_fp_es_family_values[] = { - wxDEFAULT, wxDECORATIVE, - wxROMAN, wxSCRIPT, - wxSWISS, wxMODERN +static const long gs_fp_es_family_values[] = { + wxFONTFAMILY_DEFAULT, wxFONTFAMILY_DECORATIVE, + wxFONTFAMILY_ROMAN, wxFONTFAMILY_SCRIPT, + wxFONTFAMILY_SWISS, wxFONTFAMILY_MODERN, + wxFONTFAMILY_TELETYPE, wxFONTFAMILY_UNKNOWN }; -static const wxChar* gs_fp_es_style_labels[] = { +static const wxChar* const gs_fp_es_style_labels[] = { wxT("Normal"), wxT("Slant"), wxT("Italic"), (const wxChar*) NULL }; -static long gs_fp_es_style_values[] = { +static const long gs_fp_es_style_values[] = { wxNORMAL, wxSLANT, wxITALIC }; -static const wxChar* gs_fp_es_weight_labels[] = { +static const wxChar* const gs_fp_es_weight_labels[] = { wxT("Normal"), wxT("Light"), wxT("Bold"), (const wxChar*) NULL }; -static long gs_fp_es_weight_values[] = { +static const long gs_fp_es_weight_values[] = { wxNORMAL, wxLIGHT, wxBOLD @@ -624,10 +632,6 @@ wxFontProperty::wxFontProperty( const wxString& label, const wxString& name, AddPrivateChild( new wxIntProperty( _("Point Size"), wxS("Point Size"),(long)font.GetPointSize() ) ); - AddPrivateChild( new wxEnumProperty(_("Family"), wxS("PointSize"), - gs_fp_es_family_labels,gs_fp_es_family_values, - font.GetFamily()) ); - wxString faceName = font.GetFaceName(); // If font was not in there, add it now if ( faceName.length() && @@ -651,6 +655,10 @@ wxFontProperty::wxFontProperty( const wxString& label, const wxString& name, AddPrivateChild( new wxBoolProperty(_("Underlined"), wxS("Underlined"), font.GetUnderlined()) ); + + AddPrivateChild( new wxEnumProperty(_("Family"), wxS("PointSize"), + gs_fp_es_family_labels,gs_fp_es_family_values, + font.GetFamily()) ); } wxFontProperty::~wxFontProperty() { } @@ -682,7 +690,10 @@ bool wxFontProperty::OnEvent( wxPropertyGrid* propgrid, wxWindow* WXUNUSED(prima wxFontData data; wxFont font; - font << useValue; + + if ( useValue.GetType() == wxS("wxFont") ) + font << useValue; + data.SetInitialFont( font ); data.SetColour(*wxBLACK); @@ -706,11 +717,11 @@ void wxFontProperty::RefreshChildren() wxFont font; font << m_value; Item(0)->SetValue( (long)font.GetPointSize() ); - Item(1)->SetValue( (long)font.GetFamily() ); - Item(2)->SetValueFromString( font.GetFaceName(), wxPG_FULL_VALUE ); - Item(3)->SetValue( (long)font.GetStyle() ); - Item(4)->SetValue( (long)font.GetWeight() ); - Item(5)->SetValue( font.GetUnderlined() ); + Item(1)->SetValueFromString( font.GetFaceName(), wxPG_FULL_VALUE ); + Item(2)->SetValue( (long)font.GetStyle() ); + Item(3)->SetValue( (long)font.GetWeight() ); + Item(4)->SetValue( font.GetUnderlined() ); + Item(5)->SetValue( (long)font.GetFamily() ); } wxVariant wxFontProperty::ChildChanged( wxVariant& thisValue, @@ -725,14 +736,6 @@ wxVariant wxFontProperty::ChildChanged( wxVariant& thisValue, font.SetPointSize( childValue.GetLong() ); } else if ( ind == 1 ) - { - int fam = childValue.GetLong(); - if ( fam < wxDEFAULT || - fam > wxTELETYPE ) - fam = wxDEFAULT; - font.SetFamily( fam ); - } - else if ( ind == 2 ) { wxString faceName; int faceIndex = childValue.GetLong(); @@ -742,7 +745,7 @@ wxVariant wxFontProperty::ChildChanged( wxVariant& thisValue, font.SetFaceName( faceName ); } - else if ( ind == 3 ) + else if ( ind == 2 ) { int st = childValue.GetLong(); if ( st != wxFONTSTYLE_NORMAL && @@ -751,7 +754,7 @@ wxVariant wxFontProperty::ChildChanged( wxVariant& thisValue, st = wxFONTWEIGHT_NORMAL; font.SetStyle( st ); } - else if ( ind == 4 ) + else if ( ind == 3 ) { int wt = childValue.GetLong(); if ( wt != wxFONTWEIGHT_NORMAL && @@ -760,10 +763,18 @@ wxVariant wxFontProperty::ChildChanged( wxVariant& thisValue, wt = wxFONTWEIGHT_NORMAL; font.SetWeight( wt ); } - else if ( ind == 5 ) + else if ( ind == 4 ) { font.SetUnderlined( childValue.GetBool() ); } + else if ( ind == 5 ) + { + int fam = childValue.GetLong(); + if ( fam < wxDEFAULT || + fam > wxTELETYPE ) + fam = wxDEFAULT; + font.SetFamily( fam ); + } wxVariant newVariant; newVariant << font; @@ -824,7 +835,7 @@ void wxFontProperty::OnCustomPaint(wxDC& dc, #include "wx/colordlg.h" //#define wx_cp_es_syscolours_len 25 -static const wxChar* gs_cp_es_syscolour_labels[] = { +static const wxChar* const gs_cp_es_syscolour_labels[] = { wxT("AppWorkspace"), wxT("ActiveBorder"), wxT("ActiveCaption"), @@ -853,7 +864,7 @@ static const wxChar* gs_cp_es_syscolour_labels[] = { (const wxChar*) NULL }; -static long gs_cp_es_syscolour_values[] = { +static const long gs_cp_es_syscolour_values[] = { wxSYS_COLOUR_APPWORKSPACE, wxSYS_COLOUR_ACTIVEBORDER, wxSYS_COLOUR_ACTIVECAPTION, @@ -927,7 +938,7 @@ wxSystemColourProperty::wxSystemColourProperty( const wxString& label, const wxS wxSystemColourProperty::wxSystemColourProperty( const wxString& label, const wxString& name, - const wxChar** labels, const long* values, wxPGChoices* choicesCache, + const wxChar* const* labels, const long* values, wxPGChoices* choicesCache, const wxColourPropertyValue& value ) : wxEnumProperty( label, name, labels, values, choicesCache ) { @@ -939,7 +950,7 @@ wxSystemColourProperty::wxSystemColourProperty( const wxString& label, const wxS wxSystemColourProperty::wxSystemColourProperty( const wxString& label, const wxString& name, - const wxChar** labels, const long* values, wxPGChoices* choicesCache, + const wxChar* const* labels, const long* values, wxPGChoices* choicesCache, const wxColour& value ) : wxEnumProperty( label, name, labels, values, choicesCache ) { @@ -1258,19 +1269,19 @@ bool wxSystemColourProperty::OnEvent( wxPropertyGrid* propgrid, } else if ( event.GetEventType() == wxEVT_COMMAND_COMBOBOX_SELECTED ) { - // Must override index detection since at this point GetIndex() - // will return old value. - wxOwnerDrawnComboBox* cb = - static_cast(propgrid->GetEditorControl()); + // Must override index detection since at this point GetIndex() + // will return old value. + wxOwnerDrawnComboBox* cb = + static_cast(propgrid->GetEditorControl()); - if ( cb ) - { - int index = cb->GetSelection(); + if ( cb ) + { + int index = cb->GetSelection(); - if ( index == GetCustomColourIndex() && - !(m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) - askColour = true; - } + if ( index == GetCustomColourIndex() && + !(m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) ) + askColour = true; + } } if ( askColour && !propgrid->WasValueChangedInEvent() ) @@ -1485,7 +1496,7 @@ bool wxSystemColourProperty::DoSetAttribute( const wxString& name, wxVariant& va // wxColourProperty // ----------------------------------------------------------------------- -static const wxChar* gs_cp_es_normcolour_labels[] = { +static const wxChar* const gs_cp_es_normcolour_labels[] = { wxT("Black"), wxT("Maroon"), wxT("Navy"), @@ -1508,7 +1519,7 @@ static const wxChar* gs_cp_es_normcolour_labels[] = { (const wxChar*) NULL }; -static unsigned long gs_cp_es_normcolour_colours[] = { +static const unsigned long gs_cp_es_normcolour_colours[] = { wxPG_COLOUR(0,0,0), wxPG_COLOUR(128,0,0), wxPG_COLOUR(0,0,128), @@ -1597,7 +1608,7 @@ wxVariant wxColourProperty::DoTranslateVal( wxColourPropertyValue& v ) const #define NUM_CURSORS 28 //#define wx_cp_es_syscursors_len 28 -static const wxChar* gs_cp_es_syscursors_labels[NUM_CURSORS+1] = { +static const wxChar* const gs_cp_es_syscursors_labels[NUM_CURSORS+1] = { wxT("Default"), wxT("Arrow"), wxT("Right Arrow"), @@ -1629,7 +1640,7 @@ static const wxChar* gs_cp_es_syscursors_labels[NUM_CURSORS+1] = { (const wxChar*) NULL }; -static long gs_cp_es_syscursors_values[NUM_CURSORS] = { +static const long gs_cp_es_syscursors_values[NUM_CURSORS] = { wxCURSOR_NONE, wxCURSOR_ARROW, wxCURSOR_RIGHT_ARROW, @@ -1811,16 +1822,8 @@ void wxImageFileProperty::OnSetValue() wxFileProperty::OnSetValue(); // Delete old image - if ( m_pImage ) - { - delete m_pImage; - m_pImage = NULL; - } - if ( m_pBitmap ) - { - delete m_pBitmap; - m_pBitmap = NULL; - } + wxDELETE(m_pImage); + wxDELETE(m_pBitmap); wxFileName filename = GetFileName(); @@ -1849,8 +1852,7 @@ void wxImageFileProperty::OnCustomPaint( wxDC& dc, { m_pImage->Rescale( rect.width, rect.height ); m_pBitmap = new wxBitmap( *m_pImage ); - delete m_pImage; - m_pImage = NULL; + wxDELETE(m_pImage); } dc.DrawBitmap( *m_pBitmap, rect.x, rect.y, false );