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:
@@ -268,10 +268,37 @@ void wxCaret::Refresh()
|
|||||||
|
|
||||||
void wxCaret::DoDraw(wxDC *dc)
|
void wxCaret::DoDraw(wxDC *dc)
|
||||||
{
|
{
|
||||||
dc->SetPen( *wxBLACK_PEN );
|
#if defined(__WXGTK__) || defined(__WXMAC__)
|
||||||
|
wxClientDC* clientDC = wxDynamicCast(dc, wxClientDC);
|
||||||
dc->SetBrush(*(m_hasFocus ? wxBLACK_BRUSH : wxTRANSPARENT_BRUSH));
|
if (clientDC)
|
||||||
dc->SetPen(*wxBLACK_PEN);
|
{
|
||||||
|
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
|
// VZ: unfortunately, the rectangle comes out a pixel smaller when this is
|
||||||
// done under wxGTK - no idea why
|
// done under wxGTK - no idea why
|
||||||
|
Reference in New Issue
Block a user