]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/datavgen.cpp
Fix discrepancy between different ways of measuring text extents under Mac.
[wxWidgets.git] / src / generic / datavgen.cpp
index 1eeff556add8542d14ee731d34e542a971cf091e..04924b89dd768188e34d234c48c71ee703d739e2 100644 (file)
@@ -727,11 +727,14 @@ wxDataViewCustomRenderer::RenderText(wxDC& dc,
                                      int state,
                                      int xoffset)
 {
+    // override custom foreground with the standard one for the selected items
+    // because we currently don't allow changing the selection background and
+    // custom colours may be unreadable on it
     wxColour col;
-    if ( attr && attr->HasColour() )
-        col = attr->GetColour();
-    else if ( state & wxDATAVIEW_CELL_SELECTED )
+    if ( state & wxDATAVIEW_CELL_SELECTED )
         col = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT);
+    else if ( attr && attr->HasColour() )
+        col = attr->GetColour();
     else // use default foreground
         col = GetOwner()->GetOwner()->GetForegroundColour();
 
@@ -933,10 +936,7 @@ bool wxDataViewToggleRenderer::Activate( wxRect WXUNUSED(cell),
                                         wxDataViewModel *model,
                                         const wxDataViewItem & item, unsigned int col)
 {
-    bool value = !m_toggle;
-    wxVariant variant = value;
-    model->SetValue( variant, item, col);
-    model->ValueChanged( item, col );
+    model->ChangeValue(!m_toggle, item, col);
     return true;
 }
 
@@ -1051,10 +1051,7 @@ END_EVENT_TABLE()
 
 void wxDataViewDateRendererPopupTransient::OnCalendar( wxCalendarEvent &event )
 {
-    wxDateTime date = event.GetDate();
-    wxVariant value = date;
-    m_model->SetValue( value, m_item, m_col );
-    m_model->ValueChanged( m_item, m_col );
+    m_model->ChangeValue( event.GetDate(), m_item, m_col );
     DismissAndNotify();
 }