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. // and everything else as drawing 1.
virtual void SetPen( const wxPen &pen ); virtual void SetPen( const wxPen &pen );
virtual void SetBrush( const wxBrush &brush ); virtual void SetBrush( const wxBrush &brush );
virtual void SetBackground( const wxBrush &brush );
virtual void SetTextForeground( const wxColour &col ); virtual void SetTextForeground( const wxColour &col );
virtual void SetTextBackground( const wxColour &col ); virtual void SetTextBackground( const wxColour &col );

View File

@@ -43,6 +43,7 @@ public:
// and everything else as drawing 1. // and everything else as drawing 1.
virtual void SetPen( const wxPen &pen ); virtual void SetPen( const wxPen &pen );
virtual void SetBrush( const wxBrush &brush ); virtual void SetBrush( const wxBrush &brush );
virtual void SetBackground( const wxBrush &brush );
virtual void SetTextForeground( const wxColour &col ); virtual void SetTextForeground( const wxColour &col );
virtual void SetTextBackground( 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) pen.SetColour( pen.GetColour() == *wxWHITE ? *wxBLACK : *wxWHITE );
wxWindowDC::SetPen( *wxBLACK_PEN );
else
wxWindowDC::SetPen( *wxWHITE_PEN );
}
else
{
wxWindowDC::SetPen( pen );
} }
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) brush.SetColour( brush.GetColour() == *wxWHITE ? *wxBLACK : *wxWHITE);
wxWindowDC::SetBrush( *wxBLACK_BRUSH );
else
wxWindowDC::SetBrush( *wxWHITE_BRUSH );
}
else
{
wxWindowDC::SetBrush( brush );
} }
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) brush.SetColour( brush.GetColour() == *wxWHITE ? *wxBLACK : *wxWHITE );
wxWindowDC::SetTextForeground( *wxBLACK ); }
else
wxWindowDC::SetTextForeground( *wxWHITE ); wxWindowDC::SetBackground( brush );
}
void wxMemoryDC::SetTextForeground( const wxColour& col )
{
if ( m_selected.Ok() && m_selected.GetBitmap() )
{
wxWindowDC::SetTextForeground( col == *wxWHITE ? *wxBLACK : *wxWHITE);
} }
else else
{ {
@@ -128,10 +135,7 @@ void wxMemoryDC::SetTextBackground( const wxColour &col )
{ {
if (m_selected.Ok() && m_selected.GetBitmap()) if (m_selected.Ok() && m_selected.GetBitmap())
{ {
if (col == *wxWHITE) wxWindowDC::SetTextBackground( col == *wxWHITE ? *wxBLACK : *wxWHITE );
wxWindowDC::SetTextBackground( *wxBLACK );
else
wxWindowDC::SetTextBackground( *wxWHITE );
} }
else 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) pen.SetColour( pen.GetColour() == *wxWHITE ? *wxBLACK : *wxWHITE );
wxWindowDC::SetPen( *wxBLACK_PEN );
else
wxWindowDC::SetPen( *wxWHITE_PEN );
}
else
{
wxWindowDC::SetPen( pen );
} }
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) brush.SetColour( brush.GetColour() == *wxWHITE ? *wxBLACK : *wxWHITE);
wxWindowDC::SetBrush( *wxBLACK_BRUSH );
else
wxWindowDC::SetBrush( *wxWHITE_BRUSH );
}
else
{
wxWindowDC::SetBrush( brush );
} }
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) brush.SetColour( brush.GetColour() == *wxWHITE ? *wxBLACK : *wxWHITE );
wxWindowDC::SetTextForeground( *wxBLACK ); }
else
wxWindowDC::SetTextForeground( *wxWHITE ); wxWindowDC::SetBackground( brush );
}
void wxMemoryDC::SetTextForeground( const wxColour& col )
{
if ( m_selected.Ok() && m_selected.GetBitmap() )
{
wxWindowDC::SetTextForeground( col == *wxWHITE ? *wxBLACK : *wxWHITE);
} }
else else
{ {
@@ -128,10 +135,7 @@ void wxMemoryDC::SetTextBackground( const wxColour &col )
{ {
if (m_selected.Ok() && m_selected.GetBitmap()) if (m_selected.Ok() && m_selected.GetBitmap())
{ {
if (col == *wxWHITE) wxWindowDC::SetTextBackground( col == *wxWHITE ? *wxBLACK : *wxWHITE );
wxWindowDC::SetTextBackground( *wxBLACK );
else
wxWindowDC::SetTextBackground( *wxWHITE );
} }
else else
{ {