Added wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT to correct tree and list control selection rendering.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@67017 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2011-02-25 09:37:28 +00:00
parent 9de77dbe30
commit 726de9de5c
14 changed files with 29 additions and 20 deletions

View File

@@ -150,6 +150,8 @@ wxGTK:
- Fix for missing menubar problem under some window managers where menu bar height is - Fix for missing menubar problem under some window managers where menu bar height is
reported as 0 when the menu hasn't fully realized yet. Now updates the height during reported as 0 when the menu hasn't fully realized yet. Now updates the height during
idle time if it is 0, otherwise no menu is shown. idle time if it is 0, otherwise no menu is shown.
- Improved list control and tree control selection text theme compatibility by adding
wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT colour index.
wxUniv: wxUniv:

View File

@@ -50,11 +50,12 @@ Returns a system colour.
\twocolitem{{\bf wxSYS\_COLOUR\_APPWORKSPACE}}{Background colour MDI applications.} \twocolitem{{\bf wxSYS\_COLOUR\_APPWORKSPACE}}{Background colour MDI applications.}
\twocolitem{{\bf wxSYS\_COLOUR\_HIGHLIGHT}}{Item(s) selected in a control.} \twocolitem{{\bf wxSYS\_COLOUR\_HIGHLIGHT}}{Item(s) selected in a control.}
\twocolitem{{\bf wxSYS\_COLOUR\_HIGHLIGHTTEXT}}{Text of item(s) selected in a control.} \twocolitem{{\bf wxSYS\_COLOUR\_HIGHLIGHTTEXT}}{Text of item(s) selected in a control.}
\twocolitem{{\bf wxSYS\_COLOUR\_LISTBOXHIGHLIGHTTEXT}}{Text of the item(s) select in an unfocused list-like control.}
\twocolitem{{\bf wxSYS\_COLOUR\_BTNFACE}}{Face shading on push buttons.} \twocolitem{{\bf wxSYS\_COLOUR\_BTNFACE}}{Face shading on push buttons.}
\twocolitem{{\bf wxSYS\_COLOUR\_BTNSHADOW}}{Edge shading on push buttons.} \twocolitem{{\bf wxSYS\_COLOUR\_BTNSHADOW}}{Edge shading on push buttons.}
\twocolitem{{\bf wxSYS\_COLOUR\_GRAYTEXT}}{Greyed (disabled) text.} \twocolitem{{\bf wxSYS\_COLOUR\_GRAYTEXT}}{Greyed (disabled) text.}
\twocolitem{{\bf wxSYS\_COLOUR\_BTNTEXT}}{Text on push buttons.} \twocolitem{{\bf wxSYS\_COLOUR\_BTNTEXT}}{Text on push buttons.}
\twocolitem{{\bf wxSYS\_COLOUR\_INACTIVECAPTIONTEXT}}{Colour of text in active captions.} \twocolitem{{\bf wxSYS\_COLOUR\_INACTIVECAPTIONTEXT}}{Colour of text in inactive captions.}
\twocolitem{{\bf wxSYS\_COLOUR\_BTNHIGHLIGHT}}{Highlight colour for buttons (same as wxSYS\_COLOUR\_3DHILIGHT).} \twocolitem{{\bf wxSYS\_COLOUR\_BTNHIGHLIGHT}}{Highlight colour for buttons (same as wxSYS\_COLOUR\_3DHILIGHT).}
\twocolitem{{\bf wxSYS\_COLOUR\_3DDKSHADOW}}{Dark shadow for three-dimensional display elements.} \twocolitem{{\bf wxSYS\_COLOUR\_3DDKSHADOW}}{Dark shadow for three-dimensional display elements.}
\twocolitem{{\bf wxSYS\_COLOUR\_3DLIGHT}}{Light colour for three-dimensional display elements.} \twocolitem{{\bf wxSYS\_COLOUR\_3DLIGHT}}{Light colour for three-dimensional display elements.}

View File

@@ -80,6 +80,7 @@ enum wxSystemColour
wxSYS_COLOUR_MENUHILIGHT, wxSYS_COLOUR_MENUHILIGHT,
wxSYS_COLOUR_MENUBAR, wxSYS_COLOUR_MENUBAR,
wxSYS_COLOUR_LISTBOXTEXT, wxSYS_COLOUR_LISTBOXTEXT,
wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT,
wxSYS_COLOUR_MAX wxSYS_COLOUR_MAX
}; };

View File

@@ -75,6 +75,7 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
return wxColour([NSColor controlShadowColor]); return wxColour([NSColor controlShadowColor]);
case wxSYS_COLOUR_3DLIGHT: case wxSYS_COLOUR_3DLIGHT:
return wxColour([NSColor controlHighlightColor]); return wxColour([NSColor controlHighlightColor]);
case wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT:
case wxSYS_COLOUR_HIGHLIGHTTEXT: case wxSYS_COLOUR_HIGHLIGHTTEXT:
return wxColour([NSColor selectedControlTextColor]); return wxColour([NSColor selectedControlTextColor]);
case wxSYS_COLOUR_INFOBK: case wxSYS_COLOUR_INFOBK:

View File

@@ -1428,14 +1428,10 @@ bool wxListLineData::SetAttributes(wxDC *dc,
} }
#else #else
{ {
#ifdef __WXGTK__ if (m_owner->HasFocus())
if (m_owner->HasFocus()) colText = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT);
colText = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT); else
else colText = wxSystemSettings::GetColour(wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT);
colText = wxSystemSettings::GetColour(wxSYS_COLOUR_INACTIVECAPTIONTEXT);
#else
colText = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT);
#endif
} }
#endif #endif
else if ( attr && attr->HasTextColour() ) else if ( attr && attr->HasTextColour() )

View File

@@ -2549,16 +2549,10 @@ void wxGenericTreeCtrl::PaintLevel( wxGenericTreeItem *item, wxDC &dc, int level
#ifdef __WXMAC__ #ifdef __WXMAC__
colText = *wxWHITE; colText = *wxWHITE;
#else #else
if (m_hasFocus)
#ifdef __WXGTK__
if (m_hasFocus)
colText = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT);
else
colText = wxSystemSettings::GetColour(wxSYS_COLOUR_INACTIVECAPTIONTEXT);
#else
colText = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT); colText = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT);
#endif else
colText = wxSystemSettings::GetColour(wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT);
#endif #endif
} }
else else

View File

@@ -308,8 +308,10 @@ wxColour wxSystemSettingsNative::GetColour( wxSystemColour index )
color = gs_objects.m_colListBoxText; color = gs_objects.m_colListBoxText;
break; break;
case wxSYS_COLOUR_INACTIVECAPTIONTEXT: case wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT:
{ {
// This is for the text in a list control (or tree) when the
// item is selected, but not focused
if (!gs_objects.m_colListBoxUnfocusedText.Ok()) if (!gs_objects.m_colListBoxUnfocusedText.Ok())
{ {
if (GetColourFromGTKWidget(gdkColor, wxGTK_LIST, GTK_STATE_ACTIVE, wxGTK_TEXT)) if (GetColourFromGTKWidget(gdkColor, wxGTK_LIST, GTK_STATE_ACTIVE, wxGTK_TEXT))
@@ -323,6 +325,7 @@ wxColour wxSystemSettingsNative::GetColour( wxSystemColour index )
case wxSYS_COLOUR_MENUTEXT: case wxSYS_COLOUR_MENUTEXT:
case wxSYS_COLOUR_WINDOWTEXT: case wxSYS_COLOUR_WINDOWTEXT:
case wxSYS_COLOUR_CAPTIONTEXT: case wxSYS_COLOUR_CAPTIONTEXT:
case wxSYS_COLOUR_INACTIVECAPTIONTEXT:
case wxSYS_COLOUR_BTNTEXT: case wxSYS_COLOUR_BTNTEXT:
if (!gs_objects.m_colBtnText.Ok()) if (!gs_objects.m_colBtnText.Ok())
{ {

View File

@@ -283,6 +283,7 @@ wxColour wxSystemSettingsNative::GetColour( wxSystemColour index )
return gs_objects.m_colTooltipText; return gs_objects.m_colTooltipText;
case wxSYS_COLOUR_HIGHLIGHTTEXT: case wxSYS_COLOUR_HIGHLIGHTTEXT:
case wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT:
if (!gs_objects.m_colHighlightText.Ok()) if (!gs_objects.m_colHighlightText.Ok())
{ {
wxColour hclr = GetColour(wxSYS_COLOUR_HIGHLIGHT); wxColour hclr = GetColour(wxSYS_COLOUR_HIGHLIGHT);

View File

@@ -106,6 +106,7 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
break ; break ;
case wxSYS_COLOUR_HIGHLIGHTTEXT : case wxSYS_COLOUR_HIGHLIGHTTEXT :
case wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT :
#if 0 && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3) #if 0 && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3)
// NB: enable this case as desired // NB: enable this case as desired
resultColor = *wxWHITE ; resultColor = *wxWHITE ;

View File

@@ -128,6 +128,7 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
} }
} }
case wxSYS_COLOUR_HIGHLIGHTTEXT: case wxSYS_COLOUR_HIGHLIGHTTEXT:
case wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT:
{ {
return *wxWHITE; return *wxWHITE;
} }

View File

@@ -132,6 +132,11 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
// there is no standard colour with this index, map to another one // there is no standard colour with this index, map to another one
index = wxSYS_COLOUR_WINDOWTEXT; index = wxSYS_COLOUR_WINDOWTEXT;
} }
else if ( index == wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT)
{
// there is no standard colour with this index, map to another one
index = wxSYS_COLOUR_HIGHLIGHTTEXT;
}
else if ( index == wxSYS_COLOUR_LISTBOX ) else if ( index == wxSYS_COLOUR_LISTBOX )
{ {
// there is no standard colour with this index, map to another one // there is no standard colour with this index, map to another one

View File

@@ -172,6 +172,7 @@ wxColour wxSystemSettingsNative::GetColour(
vSysClr = SYSCLR_SCROLLBAR; vSysClr = SYSCLR_SCROLLBAR;
break; break;
case wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT:
case wxSYS_COLOUR_HIGHLIGHTTEXT: case wxSYS_COLOUR_HIGHLIGHTTEXT:
vSysClr = SYSCLR_HILITEFOREGROUND; vSysClr = SYSCLR_HILITEFOREGROUND;
break; break;

View File

@@ -76,6 +76,7 @@ wxColour wxSystemSettingsNative::GetColour(wxSystemColour index)
case wxSYS_COLOUR_INACTIVEBORDER: case wxSYS_COLOUR_INACTIVEBORDER:
case wxSYS_COLOUR_APPWORKSPACE: case wxSYS_COLOUR_APPWORKSPACE:
case wxSYS_COLOUR_HIGHLIGHT: case wxSYS_COLOUR_HIGHLIGHT:
case wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT:
case wxSYS_COLOUR_HIGHLIGHTTEXT: case wxSYS_COLOUR_HIGHLIGHTTEXT:
case wxSYS_COLOUR_BTNFACE: case wxSYS_COLOUR_BTNFACE:
case wxSYS_COLOUR_BTNSHADOW: case wxSYS_COLOUR_BTNSHADOW:

View File

@@ -84,7 +84,8 @@ wxColour wxSystemSettings::GetColour(wxSystemColour index)
wxColourScheme::TITLEBAR_TEXT /* wxSYS_COLOUR_GRADIENTINACTIVECAPTION */, wxColourScheme::TITLEBAR_TEXT /* wxSYS_COLOUR_GRADIENTINACTIVECAPTION */,
wxColourScheme::SHADOW_DARK /* wxSYS_COLOUR_MENUHILIGHT */, wxColourScheme::SHADOW_DARK /* wxSYS_COLOUR_MENUHILIGHT */,
wxColourScheme::CONTROL /* wxSYS_COLOUR_MENUBAR */, wxColourScheme::CONTROL /* wxSYS_COLOUR_MENUBAR */,
wxColourScheme::CONTROL_TEXT /* wxSYS_COLOUR_LISTBOXTEXT */ wxColourScheme::CONTROL_TEXT /* wxSYS_COLOUR_LISTBOXTEXT */,
wxColourScheme::HIGHLIGHT_TEXT /* wxSYS_COLOUR_LISTBOXHIGHLIGHTTEXT */
}; };
wxCHECK_MSG( index < (int)WXSIZEOF(s_mapSysToThemeCol), wxNullColour, wxCHECK_MSG( index < (int)WXSIZEOF(s_mapSysToThemeCol), wxNullColour,