From 35d4c96744442614e35c2268f8851912f2a61c50 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Thu, 6 May 2004 21:01:24 +0000 Subject: [PATCH] Use wxVisualAttributes (partially #if'd out until tested further.) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27122 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/generic/listctrl.h | 8 ++++++ include/wx/generic/treectlg.h | 8 ++++++ src/generic/listctrl.cpp | 49 +++++++++++++++++++++++++++++------ src/generic/treectlg.cpp | 31 ++++++++++++++++++++-- 4 files changed, 86 insertions(+), 10 deletions(-) diff --git a/include/wx/generic/listctrl.h b/include/wx/generic/listctrl.h index 47ba79defe..961bd9901d 100644 --- a/include/wx/generic/listctrl.h +++ b/include/wx/generic/listctrl.h @@ -173,6 +173,14 @@ public: wxDEPRECATED( int GetItemSpacing( bool isSmall ) const ); + virtual wxVisualAttributes GetDefaultAttributes() const + { + return GetClassDefaultAttributes(GetWindowVariant()); + } + + static wxVisualAttributes + GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); + // implementation only from now on // ------------------------------- diff --git a/include/wx/generic/treectlg.h b/include/wx/generic/treectlg.h index 7ab1cd0d31..68fb89b8b2 100644 --- a/include/wx/generic/treectlg.h +++ b/include/wx/generic/treectlg.h @@ -391,6 +391,14 @@ public: void OnGetToolTip( wxTreeEvent &event ); void OnInternalIdle( ); + virtual wxVisualAttributes GetDefaultAttributes() const + { + return GetClassDefaultAttributes(GetWindowVariant()); + } + + static wxVisualAttributes + GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL); + // implementation helpers protected: friend class wxGenericTreeItem; diff --git a/src/generic/listctrl.cpp b/src/generic/listctrl.cpp index 5fd80d4198..8c81811aaa 100644 --- a/src/generic/listctrl.cpp +++ b/src/generic/listctrl.cpp @@ -1658,7 +1658,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 +1712,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 +2205,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 +4638,8 @@ bool wxGenericListCtrl::Create(wxWindow *parent, } } + SetBestSize(size); + return TRUE; } @@ -5232,6 +5242,29 @@ bool wxGenericListCtrl::SetFont( const wxFont &font ) return TRUE; } + +// 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 + +#include "wx/listbox.h" + +//static +wxVisualAttributes +wxGenericListCtrl::GetClassDefaultAttributes(wxWindowVariant variant) +{ +#if _USE_VISATTR + // Use the same color scheme as wxListBox + return wxListBox::GetClassDefaultAttributes(variant); +#else + 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 // ---------------------------------------------------------------------------- diff --git a/src/generic/treectlg.cpp b/src/generic/treectlg.cpp index 24dec8e4cb..c7cfd6b854 100644 --- a/src/generic/treectlg.cpp +++ b/src/generic/treectlg.cpp @@ -788,12 +788,16 @@ bool wxGenericTreeCtrl::Create(wxWindow *parent, SetValidator( validator ); #endif - SetForegroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT) ); - SetBackgroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_LISTBOX) ); + wxVisualAttributes attr = GetDefaultAttributes(); + SetDefaultForegroundColour( attr.colFg ); + SetDefaultBackgroundColour( attr.colBg ); + SetDefaultFont(attr.font); // m_dottedPen = wxPen( "grey", 0, wxDOT ); too slow under XFree86 m_dottedPen = wxPen( wxT("grey"), 0, 0 ); + SetBestSize(size); + return TRUE; } @@ -3437,4 +3441,27 @@ void wxGenericTreeCtrl::OnGetToolTip( wxTreeEvent &event ) event.Veto(); } + +// 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 + +#include "wx/listbox.h" + +//static +wxVisualAttributes +wxGenericTreeCtrl::GetClassDefaultAttributes(wxWindowVariant variant) +{ +#if _USE_VISATTR + // Use the same color scheme as wxListBox + return wxListBox::GetClassDefaultAttributes(variant); +#else + 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 +} + #endif // wxUSE_TREECTRL -- 2.47.2