wxDC::DrawPolygon correction

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10358 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2001-05-27 19:18:07 +00:00
parent b77d96500a
commit 32ea1f988d
2 changed files with 86 additions and 38 deletions

View File

@@ -752,8 +752,12 @@ void wxDC::DoDrawPolygon(int n, wxPoint points[],
wxCHECK_RET(Ok(), wxT("Invalid DC"));
wxMacPortSetter helper(this) ;
PolyHandle polygon = OpenPoly() ;
wxCoord x1, x2 , y1 , y2 ;
if (m_brush.GetStyle() != wxTRANSPARENT)
{
PolyHandle polygon = OpenPoly();
x1 = XLOG2DEV(points[0].x + xoffset);
y1 = YLOG2DEV(points[0].y + yoffset);
::MoveTo(x1,y1);
@@ -766,19 +770,39 @@ void wxDC::DoDrawPolygon(int n, wxPoint points[],
}
ClosePoly();
if (m_brush.GetStyle() != wxTRANSPARENT)
{
MacInstallBrush();
::PaintPoly( polygon );
KillPoly( polygon );
}
if (m_pen.GetStyle() != wxTRANSPARENT)
{
PolyHandle polygon = OpenPoly();
x1 = XLOG2DEV(points[0].x + xoffset);
y1 = YLOG2DEV(points[0].y + yoffset);
::MoveTo(x1,y1);
for (int i = 0; i < n-1; i++)
{
x2 = XLOG2DEV(points[i+1].x + xoffset);
y2 = YLOG2DEV(points[i+1].y + yoffset);
::LineTo(x2, y2);
}
// return to origin to close path
::LineTo(x1,y1);
ClosePoly();
MacInstallPen() ;
::FramePoly( polygon ) ;
}
KillPoly( polygon );
}
}
void wxDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
{

View File

@@ -752,8 +752,12 @@ void wxDC::DoDrawPolygon(int n, wxPoint points[],
wxCHECK_RET(Ok(), wxT("Invalid DC"));
wxMacPortSetter helper(this) ;
PolyHandle polygon = OpenPoly() ;
wxCoord x1, x2 , y1 , y2 ;
if (m_brush.GetStyle() != wxTRANSPARENT)
{
PolyHandle polygon = OpenPoly();
x1 = XLOG2DEV(points[0].x + xoffset);
y1 = YLOG2DEV(points[0].y + yoffset);
::MoveTo(x1,y1);
@@ -766,19 +770,39 @@ void wxDC::DoDrawPolygon(int n, wxPoint points[],
}
ClosePoly();
if (m_brush.GetStyle() != wxTRANSPARENT)
{
MacInstallBrush();
::PaintPoly( polygon );
KillPoly( polygon );
}
if (m_pen.GetStyle() != wxTRANSPARENT)
{
PolyHandle polygon = OpenPoly();
x1 = XLOG2DEV(points[0].x + xoffset);
y1 = YLOG2DEV(points[0].y + yoffset);
::MoveTo(x1,y1);
for (int i = 0; i < n-1; i++)
{
x2 = XLOG2DEV(points[i+1].x + xoffset);
y2 = YLOG2DEV(points[i+1].y + yoffset);
::LineTo(x2, y2);
}
// return to origin to close path
::LineTo(x1,y1);
ClosePoly();
MacInstallPen() ;
::FramePoly( polygon ) ;
}
KillPoly( polygon );
}
}
void wxDC::DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height)
{