X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/213ad8e72cb6e838d15bf54145d661b081dca308..68b4e4cff00ea79be15867ecf640d451584f3dd3:/src/common/dcbase.cpp diff --git a/src/common/dcbase.cpp b/src/common/dcbase.cpp index 3326bbda29..baeb1c5ee8 100644 --- a/src/common/dcbase.cpp +++ b/src/common/dcbase.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: common/dcbase.cpp +// Name: src/common/dcbase.cpp // Purpose: generic methods of the wxDC Class // Author: Vadim Zeitlin // Modified by: @@ -788,12 +788,6 @@ void wxDCBase::GradientFillConcentric(const wxRect& rect, wxUint8 nR, nG, nB; - //offsets of the current pixel - wxInt32 x, y; - - //Color difference - wxInt32 nGradient; - //Radius wxInt32 cx = rect.GetWidth() / 2; wxInt32 cy = rect.GetHeight() / 2; @@ -807,28 +801,25 @@ void wxDCBase::GradientFillConcentric(const wxRect& rect, wxInt32 nCircleOffX = circleCenter.x - (rect.GetWidth() / 2); wxInt32 nCircleOffY = circleCenter.y - (rect.GetHeight() / 2); - for (x = 0; x < rect.GetWidth(); x++) + for ( wxInt32 x = 0; x < rect.GetWidth(); x++ ) { - for (y = 0; y < rect.GetHeight(); y++) + for ( wxInt32 y = 0; y < rect.GetHeight(); y++ ) { //get color difference - nGradient = ( - (nRadius - - (wxInt32)sqrt( - pow(x - cx - nCircleOffX, 2) + - pow(y - cy - nCircleOffY, 2) - ) - ) * 100 - ) / nRadius; + wxInt32 nGradient = ((nRadius - + (wxInt32)sqrt( + pow((double)(x - cx - nCircleOffX), 2) + + pow((double)(y - cy - nCircleOffY), 2) + )) * 100) / nRadius; //normalize Gradient if (nGradient < 0 ) nGradient = 0; //get dest colors - nR = nR1 + ((nR2 - nR1) * nGradient / 100); - nG = nG1 + ((nG2 - nG1) * nGradient / 100); - nB = nB1 + ((nB2 - nB1) * nGradient / 100); + nR = (wxUint8)(nR1 + ((nR2 - nR1) * nGradient / 100)); + nG = (wxUint8)(nG1 + ((nG2 - nG1) * nGradient / 100)); + nB = (wxUint8)(nB1 + ((nB2 - nB1) * nGradient / 100)); //set the pixel m_pen.SetColour(wxColour(nR,nG,nB)); @@ -894,13 +885,13 @@ void wxDCBase::DoDrawEllipticArcRot( wxCoord x, wxCoord y, list.Append( (wxObject*) new wxPoint( x+w/2, y+h/2 ) ); // copy list into array and delete list elements - int n = list.Number(); + int n = list.GetCount(); wxPoint *points = new wxPoint[n]; int i = 0; wxNode* node = 0; - for ( node = list.First(); node; node = node->Next(), i++ ) + for ( node = list.GetFirst(); node; node = node->GetNext(), i++ ) { - wxPoint *point = (wxPoint *)node->Data(); + wxPoint *point = (wxPoint *)node->GetData(); points[i].x = point->x; points[i].y = point->y; delete point; @@ -933,9 +924,9 @@ void wxDCBase::Rotate( wxList* points, double angle, wxPoint center ) double pi(M_PI); double dSinA = -sin(angle*2.0*pi/360.0); double dCosA = cos(angle*2.0*pi/360.0); - for ( wxNode* node = points->First(); node; node = node->Next() ) + for ( wxNode* node = points->GetFirst(); node; node = node->GetNext() ) { - wxPoint* point = (wxPoint*)node->Data(); + wxPoint* point = (wxPoint*)node->GetData(); // transform coordinates, if necessary if( center.x ) point->x -= center.x; @@ -1071,14 +1062,14 @@ void wxDCBase::CalculateEllipticPoints( wxList* points, bool bForceTurn = ( sq == eq && sa > ea ); while( !bReady ) { - for( wxNode *node = pointsarray[q].First(); node; node = node->Next() ) + for( wxNode *node = pointsarray[q].GetFirst(); node; node = node->GetNext() ) { // once: go to starting point in start quadrant if( !bStarted && ( - ( (wxPoint*) node->Data() )->x < xsa+1 && q <= 1 + ( (wxPoint*) node->GetData() )->x < xsa+1 && q <= 1 || - ( (wxPoint*) node->Data() )->x > xsa-1 && q >= 2 + ( (wxPoint*) node->GetData() )->x > xsa-1 && q >= 2 ) ) { @@ -1090,16 +1081,16 @@ void wxDCBase::CalculateEllipticPoints( wxList* points, { if( q != eq || bForceTurn || - ( (wxPoint*) node->Data() )->x > xea+1 && q <= 1 + ( (wxPoint*) node->GetData() )->x > xea+1 && q <= 1 || - ( (wxPoint*) node->Data() )->x < xea-1 && q >= 2 + ( (wxPoint*) node->GetData() )->x < xea-1 && q >= 2 ) { // copy point - wxPoint* pPoint = new wxPoint( *((wxPoint*) node->Data() ) ); + wxPoint* pPoint = new wxPoint( *((wxPoint*) node->GetData() ) ); points->Append( (wxObject*) pPoint ); } - else if( q == eq && !bForceTurn || ( (wxPoint*) node->Data() )->x == xea) + else if( q == eq && !bForceTurn || ( (wxPoint*) node->GetData() )->x == xea) { bReady = true; } @@ -1115,38 +1106,38 @@ void wxDCBase::CalculateEllipticPoints( wxList* points, // delete points for( q = 0; q < 4; ++q ) { - for( wxNode *node = pointsarray[q].First(); node; node = node->Next() ) + for( wxNode *node = pointsarray[q].GetFirst(); node; node = node->GetNext() ) { - wxPoint *p = (wxPoint *)node->Data(); + wxPoint *p = (wxPoint *)node->GetData(); delete p; } } } else { + wxNode* node; // copy whole ellipse, wxPoints will be deleted outside - for( wxNode *node = pointsarray[0].First(); node; node = node->Next() ) + for( node = pointsarray[0].GetFirst(); node; node = node->GetNext() ) { - wxObject *p = node->Data(); + wxObject *p = node->GetData(); points->Append( p ); } - for( node = pointsarray[1].First(); node; node = node->Next() ) + for( node = pointsarray[1].GetFirst(); node; node = node->GetNext() ) { - wxObject *p = node->Data(); + wxObject *p = node->GetData(); points->Append( p ); } - for( node = pointsarray[2].First(); node; node = node->Next() ) + for( node = pointsarray[2].GetFirst(); node; node = node->GetNext() ) { - wxObject *p = node->Data(); + wxObject *p = node->GetData(); points->Append( p ); } - for( node = pointsarray[3].First(); node; node = node->Next() ) + for( node = pointsarray[3].GetFirst(); node; node = node->GetNext() ) { - wxObject *p = node->Data(); + wxObject *p = node->GetData(); points->Append( p ); } } // not iUseAngles } // CalculateEllipticPoints #endif -