]> git.saurik.com Git - wxWidgets.git/commitdiff
Update editor control font centrally, in wxPropertyGrid::RefreshEditor()
authorJaakko Salli <jaakko.salli@dnainternet.net>
Mon, 29 Dec 2008 17:58:32 +0000 (17:58 +0000)
committerJaakko Salli <jaakko.salli@dnainternet.net>
Mon, 29 Dec 2008 17:58:32 +0000 (17:58 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57647 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/propgrid/property.h
src/propgrid/editors.cpp
src/propgrid/property.cpp
src/propgrid/propgrid.cpp
src/propgrid/propgridpagestate.cpp

index 28535bb6445768c83a752bf33298726378ed12da..d30565932630d9ace4a3311ff55e825354982763 100644 (file)
@@ -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;
index 570ec33a80fe1326058b74de69ef467a60f8c1bb..f7822f01de6c17bae4dfea4408943bc9c9a8b513 100644 (file)
@@ -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
index 1897d12761cc5797cf581fc14cf5284a57b0654c..1a83548a1ba846d62c47b3917f6c477a0f68c02f 100644 (file)
@@ -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
index a2ba810891633d8a6be1a048304d8121f114be0f..a424df5033ef38b2aaf728d92a2f5161e0b82b0e 100644 (file)
@@ -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);
 }
 
 // -----------------------------------------------------------------------
index a2ce40e1ed65c94e70e0f07ed570530c125033a4..802f05ee772d794fe4990146c41706aecb0035e7 100644 (file)
@@ -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();
     }
 
 }