]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/dcbase.cpp
Don't emit bogus size events if a child window
[wxWidgets.git] / src / common / dcbase.cpp
index 782f1d7a30f86342fe89008482e23a60c6bd9be7..ef8918bbb5e514879a1777bb9118da893497f3b3 100644 (file)
@@ -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:
 #endif
 
 #include "wx/dc.h"
-#include "wx/math.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/math.h"
+#endif
 
 // bool wxDCBase::sm_cacheing = false;
 
+IMPLEMENT_ABSTRACT_CLASS(wxDCBase, wxObject)
+
 // ============================================================================
 // implementation
 // ============================================================================
@@ -412,7 +417,7 @@ bool wxDCBase::DoGetPartialTextExtents(const wxString& text, wxArrayInt& widths)
 {
     int totalWidth = 0;
 
-    const size_t len = text.Length();
+    const size_t len = text.length();
     widths.Empty();
     widths.Add(0, len);
 
@@ -817,9 +822,9 @@ void wxDCBase::GradientFillConcentric(const wxRect& rect,
                 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));
@@ -885,13 +890,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;
@@ -924,9 +929,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;
@@ -1062,14 +1067,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
                     )
                   )
                 {
@@ -1081,16 +1086,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;
                     }
@@ -1106,38 +1111,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
-