Generic carent no longer invisible on a dark background

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55169 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2008-08-22 10:34:14 +00:00
parent de2fcf0332
commit b331ca89b2

View File

@@ -268,10 +268,37 @@ void wxCaret::Refresh()
void wxCaret::DoDraw(wxDC *dc)
{
dc->SetPen( *wxBLACK_PEN );
dc->SetBrush(*(m_hasFocus ? wxBLACK_BRUSH : wxTRANSPARENT_BRUSH));
dc->SetPen(*wxBLACK_PEN);
#if defined(__WXGTK__) || defined(__WXMAC__)
wxClientDC* clientDC = wxDynamicCast(dc, wxClientDC);
if (clientDC)
{
wxPen pen(*wxBLACK_PEN);
wxBrush brush(*wxBLACK_BRUSH);
#ifdef __WXGTK__
wxWindow* win = clientDC->m_owner;
#else
wxWindow* win = clientDC->GetWindow();
#endif
if (win)
{
wxColour backgroundColour(win->GetBackgroundColour());
if (backgroundColour.Red() < 100 &&
backgroundColour.Green() < 100 &&
backgroundColour.Blue() < 100)
{
pen = *wxWHITE_PEN;
brush = *wxWHITE_BRUSH;
}
}
dc->SetPen( pen );
dc->SetBrush(m_hasFocus ? brush : *wxTRANSPARENT_BRUSH);
}
else
#endif
{
dc->SetBrush(*(m_hasFocus ? wxBLACK_BRUSH : wxTRANSPARENT_BRUSH));
dc->SetPen(*wxBLACK_PEN);
}
// VZ: unfortunately, the rectangle comes out a pixel smaller when this is
// done under wxGTK - no idea why