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
This commit is contained in:
Robin Dunn
2004-05-06 21:01:24 +00:00
parent e803c309a6
commit 35d4c96744
4 changed files with 86 additions and 10 deletions

View File

@@ -173,6 +173,14 @@ public:
wxDEPRECATED( int GetItemSpacing( bool isSmall ) const ); 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 // implementation only from now on
// ------------------------------- // -------------------------------

View File

@@ -391,6 +391,14 @@ public:
void OnGetToolTip( wxTreeEvent &event ); void OnGetToolTip( wxTreeEvent &event );
void OnInternalIdle( ); void OnInternalIdle( );
virtual wxVisualAttributes GetDefaultAttributes() const
{
return GetClassDefaultAttributes(GetWindowVariant());
}
static wxVisualAttributes
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
// implementation helpers // implementation helpers
protected: protected:
friend class wxGenericTreeItem; friend class wxGenericTreeItem;

View File

@@ -1658,7 +1658,16 @@ wxListHeaderWindow::wxListHeaderWindow( wxWindow *win,
m_owner = owner; m_owner = owner;
m_resizeCursor = new wxCursor( wxCURSOR_SIZEWE ); 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() wxListHeaderWindow::~wxListHeaderWindow()
@@ -1703,11 +1712,7 @@ void wxListHeaderWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
dc.SetBackgroundMode(wxTRANSPARENT); dc.SetBackgroundMode(wxTRANSPARENT);
// do *not* use the listctrl colour for headers - one day we will have a dc.SetTextForeground(GetForegroundColour());
// function to set it separately
//dc.SetTextForeground( *wxBLACK );
dc.SetTextForeground(wxSystemSettings::
GetSystemColour( wxSYS_COLOUR_WINDOWTEXT ));
int x = HEADER_OFFSET_X; int x = HEADER_OFFSET_X;
@@ -2200,7 +2205,10 @@ wxListMainWindow::wxListMainWindow( wxWindow *parent,
SetScrollbars( 0, 0, 0, 0, 0, 0 ); 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() wxListMainWindow::~wxListMainWindow()
@@ -4630,6 +4638,8 @@ bool wxGenericListCtrl::Create(wxWindow *parent,
} }
} }
SetBestSize(size);
return TRUE; return TRUE;
} }
@@ -5232,6 +5242,29 @@ bool wxGenericListCtrl::SetFont( const wxFont &font )
return TRUE; 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 // methods forwarded to m_mainWin
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------

View File

@@ -788,12 +788,16 @@ bool wxGenericTreeCtrl::Create(wxWindow *parent,
SetValidator( validator ); SetValidator( validator );
#endif #endif
SetForegroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT) ); wxVisualAttributes attr = GetDefaultAttributes();
SetBackgroundColour( wxSystemSettings::GetColour(wxSYS_COLOUR_LISTBOX) ); SetDefaultForegroundColour( attr.colFg );
SetDefaultBackgroundColour( attr.colBg );
SetDefaultFont(attr.font);
// m_dottedPen = wxPen( "grey", 0, wxDOT ); too slow under XFree86 // m_dottedPen = wxPen( "grey", 0, wxDOT ); too slow under XFree86
m_dottedPen = wxPen( wxT("grey"), 0, 0 ); m_dottedPen = wxPen( wxT("grey"), 0, 0 );
SetBestSize(size);
return TRUE; return TRUE;
} }
@@ -3437,4 +3441,27 @@ void wxGenericTreeCtrl::OnGetToolTip( wxTreeEvent &event )
event.Veto(); 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 #endif // wxUSE_TREECTRL