From: Jaakko Salli Date: Mon, 29 Dec 2008 17:58:32 +0000 (+0000) Subject: Update editor control font centrally, in wxPropertyGrid::RefreshEditor() X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/a6353fe8f6422d4cab7ae902f742d952659fd636 Update editor control font centrally, in wxPropertyGrid::RefreshEditor() git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57647 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/propgrid/property.h b/include/wx/propgrid/property.h index 28535bb644..d305659326 100644 --- a/include/wx/propgrid/property.h +++ b/include/wx/propgrid/property.h @@ -2222,8 +2222,6 @@ protected: // moved to it. void SubPropsChanged( int oldSelInd = -1 ); - void UpdateControl( wxWindow* editorWnd ); - int GetY2( int lh ) const; wxString m_label; diff --git a/src/propgrid/editors.cpp b/src/propgrid/editors.cpp index 570ec33a80..f7822f01de 100644 --- a/src/propgrid/editors.cpp +++ b/src/propgrid/editors.cpp @@ -285,19 +285,15 @@ void wxPGTextCtrlEditor::UpdateControl( wxPGProperty* property, wxWindow* ctrl ) tc->SetValue(s); - // Update font boldness - wxPropertyGrid* pg = property->GetGrid(); - if ( pg->HasFlag(wxPG_BOLD_MODIFIED) ) - { - if ( property->HasFlag(wxPG_PROP_MODIFIED) ) - tc->SetFont(pg->GetCaptionFont()); - else - tc->SetFont(pg->GetFont()); - + // + // Fix indentation, just in case (change in font boldness is one good + // reason). #if defined(__WXMSW__) && !defined(__WXWINCE__) - ::SendMessage(GetHwndOf(tc), EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(0, 0)); + ::SendMessage(GetHwndOf(tc), + EM_SETMARGINS, + EC_LEFTMARGIN | EC_RIGHTMARGIN, + MAKELONG(0, 0)); #endif - } } // Provided so that, for example, ComboBox editor can use the same code diff --git a/src/propgrid/property.cpp b/src/propgrid/property.cpp index 1897d12761..1a83548a1b 100644 --- a/src/propgrid/property.cpp +++ b/src/propgrid/property.cpp @@ -639,12 +639,6 @@ int wxPGProperty::Index( const wxPGProperty* p ) const return wxNOT_FOUND; } -void wxPGProperty::UpdateControl( wxWindow* editorWnd ) -{ - if ( editorWnd ) - GetEditorClass()->UpdateControl(this, editorWnd); -} - bool wxPGProperty::ValidateValue( wxVariant& WXUNUSED(value), wxPGValidationInfo& WXUNUSED(validationInfo) ) const { return true; @@ -1341,7 +1335,7 @@ void wxPGProperty::RefreshEditor() wxPropertyGrid* pg = GetGrid(); if ( pg && pg->GetSelectedProperty() == this ) - UpdateControl(pg->GetEditorControl()); + pg->RefreshEditor(); } wxVariant wxPGProperty::GetDefaultValue() const diff --git a/src/propgrid/propgrid.cpp b/src/propgrid/propgrid.cpp index a2ba810891..a424df5033 100644 --- a/src/propgrid/propgrid.cpp +++ b/src/propgrid/propgrid.cpp @@ -2130,11 +2130,9 @@ void wxPropertyGrid::DrawItemAndChildren( wxPGProperty* p ) if ( m_pState->m_itemsAdded || m_frozen ) return; - wxWindow* wndPrimary = GetEditorControl(); - // Update child control. if ( m_selected && m_selected->GetParent() == p ) - m_selected->UpdateControl(wndPrimary); + RefreshEditor(); const wxPGProperty* lastDrawn = p->GetLastVisibleSubItem(); @@ -2790,8 +2788,7 @@ bool wxPropertyGrid::DoPropertyChanged( wxPGProperty* p, unsigned int selFlags ) // control. if ( selFlags & wxPG_SEL_DIALOGVAL ) { - if ( editor ) - p->GetEditorClass()->UpdateControl(p, editor); + RefreshEditor(); } else { @@ -3638,9 +3635,25 @@ bool wxPropertyGrid::UnfocusEditor() void wxPropertyGrid::RefreshEditor() { - if ( !m_selected || !m_wndEditor || m_frozen ) + wxPGProperty* p = m_selected; + if ( !p ) + return; + + wxWindow* wnd = GetEditorControl(); + if ( !wnd ) return; - m_selected->UpdateControl(m_wndEditor); + + // Set editor font boldness - must do this before + // calling UpdateControl(). + if ( HasFlag(wxPG_BOLD_MODIFIED) ) + { + if ( p->HasFlag(wxPG_PROP_MODIFIED) ) + wnd->SetFont(GetCaptionFont()); + else + wnd->SetFont(GetFont()); + } + + p->GetEditorClass()->UpdateControl(p, wnd); } // ----------------------------------------------------------------------- diff --git a/src/propgrid/propgridpagestate.cpp b/src/propgrid/propgridpagestate.cpp index a2ce40e1ed..802f05ee77 100644 --- a/src/propgrid/propgridpagestate.cpp +++ b/src/propgrid/propgridpagestate.cpp @@ -1121,7 +1121,7 @@ bool wxPropertyGridPageState::DoSetPropertyValueString( wxPGProperty* p, const w { p->SetValue(variant); if ( m_selected==p && this==m_pPropGrid->GetState() ) - p->UpdateControl(m_pPropGrid->GetEditorControl()); + m_pPropGrid->RefreshEditor(); } return true; @@ -1137,7 +1137,7 @@ bool wxPropertyGridPageState::DoSetPropertyValue( wxPGProperty* p, wxVariant& va { p->SetValue(value); if ( m_selected==p && this==m_pPropGrid->GetState() ) - p->UpdateControl(m_pPropGrid->GetEditorControl()); + m_pPropGrid->RefreshEditor(); return true; } @@ -1504,9 +1504,7 @@ void wxPropertyGridPageState::DoSetPropertyValues( const wxVariantList& list, wx m_pPropGrid->Thaw(); if ( this == m_pPropGrid->GetState() ) - { - m_selected->UpdateControl(m_pPropGrid->GetEditorControl()); - } + m_pPropGrid->RefreshEditor(); } }