]> git.saurik.com Git - wxWidgets.git/commitdiff
Make wxGenericDataViewCtrl::SetFont() really work.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 24 Feb 2013 13:48:35 +0000 (13:48 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 24 Feb 2013 13:48:35 +0000 (13:48 +0000)
Do use the new font for the items display.

Closes #15056.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
include/wx/generic/dataview.h
src/generic/datavgen.cpp

index e8aa7743e7acd2522a719a0f97aea7fd66a44e78..6371eedc055db18a8a8c2c4f36babd5d0e50f7a5 100644 (file)
@@ -622,6 +622,7 @@ All (GUI):
 - Add wxCheckListBox::GetCheckedItems() (hartwigw).
 - Add wxAUI_TB_PLAIN_BACKGROUND wxAuiToolBar style (Allann Jones).
 - Fix off by 1 error in wxGenericListCtrl::HitTest() (Daniel Hyams).
 - Add wxCheckListBox::GetCheckedItems() (hartwigw).
 - Add wxAUI_TB_PLAIN_BACKGROUND wxAuiToolBar style (Allann Jones).
 - Fix off by 1 error in wxGenericListCtrl::HitTest() (Daniel Hyams).
+- Make wxGenericDataViewCtrl::SetFont() really work (Laurent Poujoulat).
 
 wxGTK:
 
 
 wxGTK:
 
index 9115dcb3ca7d4ea6aff955f5b623d9cac081edf0..70ae97ca0ad2c80b1a0258ef35592d6e342e1933 100644 (file)
@@ -182,6 +182,8 @@ public:
 
     virtual void SetFocus();
 
 
     virtual void SetFocus();
 
+    virtual bool SetFont(const wxFont & font);
+
 #if wxUSE_DRAG_AND_DROP
     virtual bool EnableDragSource( const wxDataFormat &format );
     virtual bool EnableDropTarget( const wxDataFormat &format );
 #if wxUSE_DRAG_AND_DROP
     virtual bool EnableDragSource( const wxDataFormat &format );
     virtual bool EnableDropTarget( const wxDataFormat &format );
index 565814cc7a93d9254691a0c5a4eb854b525e266a..a640773ce3e6afbb2c95a6e0bff4025b1178e4e1 100644 (file)
@@ -678,6 +678,7 @@ public:
 
     void SetRowHeight( int lineHeight ) { m_lineHeight = lineHeight; }
     int GetRowHeight() const { return m_lineHeight; }
 
     void SetRowHeight( int lineHeight ) { m_lineHeight = lineHeight; }
     int GetRowHeight() const { return m_lineHeight; }
+    int GetDefaultRowHeight() const;
 
     // Some useful functions for row and item mapping
     wxDataViewItem GetItemByRow( unsigned int row ) const;
 
     // Some useful functions for row and item mapping
     wxDataViewItem GetItemByRow( unsigned int row ) const;
@@ -1398,15 +1399,7 @@ wxDataViewMainWindow::wxDataViewMainWindow( wxDataViewCtrl *parent, wxWindowID i
     m_currentColSetByKeyboard = false;
     m_useCellFocus = false;
     m_currentRow = (unsigned)-1;
     m_currentColSetByKeyboard = false;
     m_useCellFocus = false;
     m_currentRow = (unsigned)-1;
-
-#ifdef __WXMSW__
-    // We would like to use the same line height that Explorer uses. This is
-    // different from standard ListView control since Vista.
-    if ( wxGetWinVersion() >= wxWinVersion_Vista )
-        m_lineHeight = wxMax(16, GetCharHeight()) + 6; // 16 = mini icon height
-    else
-#endif // __WXMSW__
-        m_lineHeight = wxMax(16, GetCharHeight()) + 1; // 16 = mini icon height
+    m_lineHeight = GetDefaultRowHeight();
 
 #if wxUSE_DRAG_AND_DROP
     m_dragCount = 0;
 
 #if wxUSE_DRAG_AND_DROP
     m_dragCount = 0;
@@ -1449,6 +1442,20 @@ wxDataViewMainWindow::~wxDataViewMainWindow()
 }
 
 
 }
 
 
+int wxDataViewMainWindow::GetDefaultRowHeight() const
+{
+#ifdef __WXMSW__
+    // We would like to use the same line height that Explorer uses. This is
+    // different from standard ListView control since Vista.
+    if ( wxGetWinVersion() >= wxWinVersion_Vista )
+        return wxMax(16, GetCharHeight()) + 6; // 16 = mini icon height
+    else
+#endif // __WXMSW__
+        return wxMax(16, GetCharHeight()) + 1; // 16 = mini icon height
+}
+
+
+
 #if wxUSE_DRAG_AND_DROP
 bool wxDataViewMainWindow::EnableDragSource( const wxDataFormat &format )
 {
 #if wxUSE_DRAG_AND_DROP
 bool wxDataViewMainWindow::EnableDragSource( const wxDataFormat &format )
 {
@@ -4543,6 +4550,31 @@ void wxDataViewCtrl::SetFocus()
         m_clientArea->SetFocus();
 }
 
         m_clientArea->SetFocus();
 }
 
+bool wxDataViewCtrl::SetFont(const wxFont & font)
+{
+    if (!wxControl::SetFont(font))
+        return false;
+
+    if (m_headerArea)
+        m_headerArea->SetFont(font);
+
+    if (m_clientArea)
+    {
+        m_clientArea->SetFont(font);
+        m_clientArea->SetRowHeight(m_clientArea->GetDefaultRowHeight());
+    }
+
+    if (m_headerArea || m_clientArea)
+    {
+        InvalidateColBestWidths();
+        Layout();
+    }
+
+    return true;
+}
+
+
+
 bool wxDataViewCtrl::AssociateModel( wxDataViewModel *model )
 {
     if (!wxDataViewCtrlBase::AssociateModel( model ))
 bool wxDataViewCtrl::AssociateModel( wxDataViewModel *model )
 {
     if (!wxDataViewCtrlBase::AssociateModel( model ))