fixes for working with mono bitmaps (patch 728768)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2003-05-01 19:31:30 +00:00
parent 10545ca4e7
commit 8ab40c5227
4 changed files with 70 additions and 60 deletions

View File

@ -43,6 +43,7 @@ public:
// and everything else as drawing 1.
virtual void SetPen( const wxPen &pen );
virtual void SetBrush( const wxBrush &brush );
virtual void SetBackground( const wxBrush &brush );
virtual void SetTextForeground( const wxColour &col );
virtual void SetTextBackground( const wxColour &col );

View File

@ -43,6 +43,7 @@ public:
// and everything else as drawing 1.
virtual void SetPen( const wxPen &pen );
virtual void SetBrush( const wxBrush &brush );
virtual void SetBackground( const wxBrush &brush );
virtual void SetTextForeground( const wxColour &col );
virtual void SetTextBackground( const wxColour &col );

View File

@ -79,44 +79,51 @@ void wxMemoryDC::SelectObject( const wxBitmap& bitmap )
}
}
void wxMemoryDC::SetPen( const wxPen &pen )
void wxMemoryDC::SetPen( const wxPen& penOrig )
{
if (m_selected.Ok() && m_selected.GetBitmap() && (*wxTRANSPARENT_PEN != pen))
wxPen pen( penOrig );
if ( m_selected.Ok() &&
m_selected.GetBitmap() &&
(pen != *wxTRANSPARENT_PEN) )
{
if (*wxWHITE_PEN == pen)
wxWindowDC::SetPen( *wxBLACK_PEN );
else
wxWindowDC::SetPen( *wxWHITE_PEN );
}
else
{
wxWindowDC::SetPen( pen );
pen.SetColour( pen.GetColour() == *wxWHITE ? *wxBLACK : *wxWHITE );
}
wxWindowDC::SetPen( pen );
}
void wxMemoryDC::SetBrush( const wxBrush &brush )
void wxMemoryDC::SetBrush( const wxBrush& brushOrig )
{
if (m_selected.Ok() && m_selected.GetBitmap() && (*wxTRANSPARENT_BRUSH != brush))
wxBrush brush( brushOrig );
if ( m_selected.Ok() &&
m_selected.GetBitmap() &&
(brush != *wxTRANSPARENT_BRUSH) )
{
if (*wxWHITE_BRUSH == brush)
wxWindowDC::SetBrush( *wxBLACK_BRUSH );
else
wxWindowDC::SetBrush( *wxWHITE_BRUSH );
}
else
{
wxWindowDC::SetBrush( brush );
brush.SetColour( brush.GetColour() == *wxWHITE ? *wxBLACK : *wxWHITE);
}
wxWindowDC::SetBrush( brush );
}
void wxMemoryDC::SetTextForeground( const wxColour &col )
void wxMemoryDC::SetBackground( const wxBrush& brushOrig )
{
if (m_selected.Ok() && m_selected.GetBitmap())
wxBrush brush(brushOrig);
if ( m_selected.Ok() &&
m_selected.GetBitmap() &&
(brush != *wxTRANSPARENT_BRUSH) )
{
if (col == *wxWHITE)
wxWindowDC::SetTextForeground( *wxBLACK );
else
wxWindowDC::SetTextForeground( *wxWHITE );
brush.SetColour( brush.GetColour() == *wxWHITE ? *wxBLACK : *wxWHITE );
}
wxWindowDC::SetBackground( brush );
}
void wxMemoryDC::SetTextForeground( const wxColour& col )
{
if ( m_selected.Ok() && m_selected.GetBitmap() )
{
wxWindowDC::SetTextForeground( col == *wxWHITE ? *wxBLACK : *wxWHITE);
}
else
{
@ -128,10 +135,7 @@ void wxMemoryDC::SetTextBackground( const wxColour &col )
{
if (m_selected.Ok() && m_selected.GetBitmap())
{
if (col == *wxWHITE)
wxWindowDC::SetTextBackground( *wxBLACK );
else
wxWindowDC::SetTextBackground( *wxWHITE );
wxWindowDC::SetTextBackground( col == *wxWHITE ? *wxBLACK : *wxWHITE );
}
else
{

View File

@ -79,44 +79,51 @@ void wxMemoryDC::SelectObject( const wxBitmap& bitmap )
}
}
void wxMemoryDC::SetPen( const wxPen &pen )
void wxMemoryDC::SetPen( const wxPen& penOrig )
{
if (m_selected.Ok() && m_selected.GetBitmap() && (*wxTRANSPARENT_PEN != pen))
wxPen pen( penOrig );
if ( m_selected.Ok() &&
m_selected.GetBitmap() &&
(pen != *wxTRANSPARENT_PEN) )
{
if (*wxWHITE_PEN == pen)
wxWindowDC::SetPen( *wxBLACK_PEN );
else
wxWindowDC::SetPen( *wxWHITE_PEN );
}
else
{
wxWindowDC::SetPen( pen );
pen.SetColour( pen.GetColour() == *wxWHITE ? *wxBLACK : *wxWHITE );
}
wxWindowDC::SetPen( pen );
}
void wxMemoryDC::SetBrush( const wxBrush &brush )
void wxMemoryDC::SetBrush( const wxBrush& brushOrig )
{
if (m_selected.Ok() && m_selected.GetBitmap() && (*wxTRANSPARENT_BRUSH != brush))
wxBrush brush( brushOrig );
if ( m_selected.Ok() &&
m_selected.GetBitmap() &&
(brush != *wxTRANSPARENT_BRUSH) )
{
if (*wxWHITE_BRUSH == brush)
wxWindowDC::SetBrush( *wxBLACK_BRUSH );
else
wxWindowDC::SetBrush( *wxWHITE_BRUSH );
}
else
{
wxWindowDC::SetBrush( brush );
brush.SetColour( brush.GetColour() == *wxWHITE ? *wxBLACK : *wxWHITE);
}
wxWindowDC::SetBrush( brush );
}
void wxMemoryDC::SetTextForeground( const wxColour &col )
void wxMemoryDC::SetBackground( const wxBrush& brushOrig )
{
if (m_selected.Ok() && m_selected.GetBitmap())
wxBrush brush(brushOrig);
if ( m_selected.Ok() &&
m_selected.GetBitmap() &&
(brush != *wxTRANSPARENT_BRUSH) )
{
if (col == *wxWHITE)
wxWindowDC::SetTextForeground( *wxBLACK );
else
wxWindowDC::SetTextForeground( *wxWHITE );
brush.SetColour( brush.GetColour() == *wxWHITE ? *wxBLACK : *wxWHITE );
}
wxWindowDC::SetBackground( brush );
}
void wxMemoryDC::SetTextForeground( const wxColour& col )
{
if ( m_selected.Ok() && m_selected.GetBitmap() )
{
wxWindowDC::SetTextForeground( col == *wxWHITE ? *wxBLACK : *wxWHITE);
}
else
{
@ -128,10 +135,7 @@ void wxMemoryDC::SetTextBackground( const wxColour &col )
{
if (m_selected.Ok() && m_selected.GetBitmap())
{
if (col == *wxWHITE)
wxWindowDC::SetTextBackground( *wxBLACK );
else
wxWindowDC::SetTextBackground( *wxWHITE );
wxWindowDC::SetTextBackground( col == *wxWHITE ? *wxBLACK : *wxWHITE );
}
else
{