X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f89d65ea8d5f480a0d5cbffe83604fd49a6a2137..1ab608ee00f21fa3164e1838395783a86fac82d7:/src/generic/listctrl.cpp diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 5fd80d4198..99fec5e45f 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -75,6 +75,12 @@ #ifdef __WXMAC__ #include "wx/mac/private.h" #endif + +// NOTE: If using the wxListBox visual attributes works everywhere then this can +// be removed, as well as the #else case below. +#define _USE_VISATTR 0 + + // ---------------------------------------------------------------------------- // events // ---------------------------------------------------------------------------- @@ -1658,7 +1664,16 @@ wxListHeaderWindow::wxListHeaderWindow( wxWindow *win, m_owner = owner; m_resizeCursor = new wxCursor( wxCURSOR_SIZEWE ); - SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) ); +#if _USE_VISATTR + wxVisualAttributes attr = wxPanel::GetClassDefaultAttributes(); + SetDefaultForegroundColour( attr.colFg ); + SetDefaultBackgroundColour( attr.colBg ); + SetDefaultFont( attr.font ); +#else + SetDefaultForegroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT)); + SetDefaultBackgroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE)); + SetDefaultFont( wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT )); +#endif } wxListHeaderWindow::~wxListHeaderWindow() @@ -1703,12 +1718,8 @@ void wxListHeaderWindow::OnPaint( wxPaintEvent &WXUNUSED(event) ) dc.SetBackgroundMode(wxTRANSPARENT); - // do *not* use the listctrl colour for headers - one day we will have a - // function to set it separately - //dc.SetTextForeground( *wxBLACK ); - dc.SetTextForeground(wxSystemSettings:: - GetSystemColour( wxSYS_COLOUR_WINDOWTEXT )); - + dc.SetTextForeground(GetForegroundColour()); + int x = HEADER_OFFSET_X; int numColumns = m_owner->GetColumnCount(); @@ -2200,7 +2211,10 @@ wxListMainWindow::wxListMainWindow( wxWindow *parent, SetScrollbars( 0, 0, 0, 0, 0, 0 ); - SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_LISTBOX ) ); + wxVisualAttributes attr = wxGenericListCtrl::GetClassDefaultAttributes(); + SetDefaultForegroundColour( attr.colFg ); + SetDefaultBackgroundColour( attr.colBg ); + SetDefaultFont( attr.font ); } wxListMainWindow::~wxListMainWindow() @@ -4630,6 +4644,8 @@ bool wxGenericListCtrl::Create(wxWindow *parent, } } + SetBestSize(size); + return TRUE; } @@ -5232,6 +5248,29 @@ bool wxGenericListCtrl::SetFont( const wxFont &font ) return TRUE; } + + +#if _USE_VISATTR +#include "wx/listbox.h" +#endif + +//static +wxVisualAttributes +wxGenericListCtrl::GetClassDefaultAttributes(wxWindowVariant variant) +{ +#if _USE_VISATTR + // Use the same color scheme as wxListBox + return wxListBox::GetClassDefaultAttributes(variant); +#else + wxUnusedVar(variant); + wxVisualAttributes attr; + attr.colFg = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT); + attr.colBg = wxSystemSettings::GetColour(wxSYS_COLOUR_LISTBOX); + attr.font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); + return attr; +#endif +} + // ---------------------------------------------------------------------------- // methods forwarded to m_mainWin // ----------------------------------------------------------------------------