Added test for region clipping.

Corrected makefile.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@6401 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling 2000-03-02 19:18:45 +00:00
parent cd6ce4a90c
commit bc3cedfa48
2 changed files with 31 additions and 4 deletions

View File

@ -15,7 +15,7 @@ program_dir = samples/dragimag
PROGRAM=test PROGRAM=test
DATAFILES = backgrnd.png shape1.png shape2.png shape3.png DATAFILES = backgrnd.png shape01.png shape02.png shape03.png
OBJECTS=$(PROGRAM).o OBJECTS=$(PROGRAM).o

View File

@ -60,7 +60,8 @@ enum ScreenToShow
Show_Lines, Show_Lines,
Show_Polygons, Show_Polygons,
Show_Mask, Show_Mask,
Show_Ops Show_Ops,
Show_Regions
}; };
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@ -148,6 +149,7 @@ protected:
void DrawText(wxDC& dc); void DrawText(wxDC& dc);
void DrawImages(wxDC& dc); void DrawImages(wxDC& dc);
void DrawWithLogicalOps(wxDC& dc); void DrawWithLogicalOps(wxDC& dc);
void DrawRegions(wxDC& dc);
void DrawDefault(wxDC& dc); void DrawDefault(wxDC& dc);
private: private:
@ -178,7 +180,8 @@ enum
File_ShowPolygons, File_ShowPolygons,
File_ShowMask, File_ShowMask,
File_ShowOps, File_ShowOps,
MenuShow_Last = File_ShowOps, File_ShowRegions,
MenuShow_Last = File_ShowRegions,
MenuOption_First, MenuOption_First,
@ -891,6 +894,25 @@ void MyCanvas::DrawWithLogicalOps(wxDC& dc)
} }
} }
void MyCanvas::DrawRegions(wxDC& dc)
{
dc.SetBrush( *wxWHITE_BRUSH );
dc.SetPen( *wxTRANSPARENT_PEN );
dc.DrawRectangle( 10,10,310,310 );
wxRegion region( 20,20,100,270 );
dc.SetClippingRegion( region );
dc.SetBrush( *wxRED_BRUSH );
dc.DrawRectangle( 10,10,310,310 );
region = wxRegion( 120,30,100,270 );
dc.SetClippingRegion( region );
dc.SetBrush( *wxGREY_BRUSH );
dc.DrawRectangle( 10,10,310,310 );
}
void MyCanvas::OnPaint(wxPaintEvent &WXUNUSED(event)) void MyCanvas::OnPaint(wxPaintEvent &WXUNUSED(event))
{ {
wxPaintDC dc(this); wxPaintDC dc(this);
@ -912,7 +934,7 @@ void MyCanvas::OnPaint(wxPaintEvent &WXUNUSED(event))
} }
} }
dc.Clear(); // dc.Clear();
if ( m_owner->m_textureBackground) { if ( m_owner->m_textureBackground) {
dc.SetPen(*wxMEDIUM_GREY_PEN); dc.SetPen(*wxMEDIUM_GREY_PEN);
@ -926,6 +948,10 @@ void MyCanvas::OnPaint(wxPaintEvent &WXUNUSED(event))
DrawDefault(dc); DrawDefault(dc);
break; break;
case Show_Regions:
DrawRegions(dc);
break;
case Show_Text: case Show_Text:
DrawText(dc); DrawText(dc);
break; break;
@ -997,6 +1023,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
menuFile->Append(File_ShowPolygons, "&Polygons screen\tF4"); menuFile->Append(File_ShowPolygons, "&Polygons screen\tF4");
menuFile->Append(File_ShowMask, "wx&Mask screen\tF5"); menuFile->Append(File_ShowMask, "wx&Mask screen\tF5");
menuFile->Append(File_ShowOps, "&ROP screen\tF6"); menuFile->Append(File_ShowOps, "&ROP screen\tF6");
menuFile->Append(File_ShowRegions, "Re&gions screen\tF6");
menuFile->AppendSeparator(); menuFile->AppendSeparator();
menuFile->Append(File_About, "&About...\tCtrl-A", "Show about dialog"); menuFile->Append(File_About, "&About...\tCtrl-A", "Show about dialog");
menuFile->AppendSeparator(); menuFile->AppendSeparator();