Cleanup of previous fix

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55171 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2008-08-22 11:32:23 +00:00
parent b331ca89b2
commit 44bcee116e
2 changed files with 15 additions and 31 deletions

View File

@@ -70,7 +70,7 @@ protected:
void Refresh(); void Refresh();
// draw the caret on the given DC // draw the caret on the given DC
void DoDraw(wxDC *dc); void DoDraw(wxDC *dc, wxWindow* win);
private: private:
// GTK specific initialization // GTK specific initialization

View File

@@ -225,7 +225,7 @@ void wxCaret::Refresh()
} }
else else
{ {
DoDraw( &dcWin ); DoDraw( &dcWin, GetWindow() );
} }
#else #else
wxMemoryDC dcMem; wxMemoryDC dcMem;
@@ -261,44 +261,28 @@ void wxCaret::Refresh()
// more // more
// and draw the caret there // and draw the caret there
DoDraw(&dcWin); DoDraw(&dcWin, GetWindow());
} }
#endif #endif
} }
void wxCaret::DoDraw(wxDC *dc) void wxCaret::DoDraw(wxDC *dc, wxWindow* win)
{ {
#if defined(__WXGTK__) || defined(__WXMAC__) wxPen pen(*wxBLACK_PEN);
wxClientDC* clientDC = wxDynamicCast(dc, wxClientDC); wxBrush brush(*wxBLACK_BRUSH);
if (clientDC) if (win)
{ {
wxPen pen(*wxBLACK_PEN); wxColour backgroundColour(win->GetBackgroundColour());
wxBrush brush(*wxBLACK_BRUSH); if (backgroundColour.Red() < 100 &&
#ifdef __WXGTK__ backgroundColour.Green() < 100 &&
wxWindow* win = clientDC->m_owner; backgroundColour.Blue() < 100)
#else
wxWindow* win = clientDC->GetWindow();
#endif
if (win)
{ {
wxColour backgroundColour(win->GetBackgroundColour()); pen = *wxWHITE_PEN;
if (backgroundColour.Red() < 100 && brush = *wxWHITE_BRUSH;
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);
} }
dc->SetPen( pen );
dc->SetBrush(m_hasFocus ? brush : *wxTRANSPARENT_BRUSH);
// 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