]> git.saurik.com Git - wxWidgets.git/blobdiff - contrib/src/ogl/basic.cpp
modification to wxSizer handler needed for wxWizard
[wxWidgets.git] / contrib / src / ogl / basic.cpp
index 87a4b5e5500b82d59316e82955d3b64367a7a55e..563711de0d1ca8af616605a50da6f889f3562d36 100644 (file)
 #include <wx/wx.h>
 #endif
 
-#include <wx/wxexpr.h>
+#include <wx/deprecated/wxexpr.h>
 
 #ifdef new
 #undef new
 #endif
 
-#if wxUSE_IOSTREAMH
-#include <iostream.h>
-#else
-#include <iostream>
-#endif
-
 #include <stdio.h>
 #include <ctype.h>
 #include <math.h>
@@ -286,7 +280,7 @@ wxShape::wxShape(wxShapeCanvas *can)
   m_brush = wxWHITE_BRUSH;
   m_font = g_oglNormalFont;
   m_textColour = wxBLACK;
-  m_textColourName = "BLACK";
+  m_textColourName = wxT("BLACK");
   m_visible = FALSE;
   m_selected = FALSE;
   m_attachmentMode = ATTACHMENT_MODE_NONE;
@@ -305,7 +299,7 @@ wxShape::wxShape(wxShapeCanvas *can)
   m_shadowBrush = wxBLACK_BRUSH;
   m_textMarginX = 5;
   m_textMarginY = 5;
-  m_regionName = "0";
+  m_regionName = wxT("0");
   m_centreResize = TRUE;
   m_maintainAspectRatio = FALSE;
   m_highlighted = FALSE;
@@ -319,10 +313,10 @@ wxShape::wxShape(wxShapeCanvas *can)
   // the region eventually (the duplication is for compatibility)
   wxShapeRegion *region = new wxShapeRegion;
   m_regions.Append(region);
-  region->SetName("0");
+  region->SetName(wxT("0"));
   region->SetFont(g_oglNormalFont);
   region->SetFormatMode(FORMAT_CENTRE_HORIZ | FORMAT_CENTRE_VERT);
-  region->SetColour("BLACK");
+  region->SetColour(wxT("BLACK"));
 }
 
 wxShape::~wxShape()
@@ -345,12 +339,12 @@ void wxShape::SetHighlight(bool hi, bool recurse)
   m_highlighted = hi;
   if (recurse)
   {
-    wxNode *node = m_children.First();
+    wxNode *node = m_children.GetFirst();
     while (node)
     {
-      wxShape *child = (wxShape *)node->Data();
+      wxShape *child = (wxShape *)node->GetData();
       child->SetHighlight(hi, recurse);
-      node = node->Next();
+      node = node->GetNext();
     }
   }
 }
@@ -365,12 +359,12 @@ void wxShape::SetSensitivityFilter(int sens, bool recursive)
   m_sensitivity = sens;
   if (recursive)
   {
-    wxNode *node = m_children.First();
+    wxNode *node = m_children.GetFirst();
     while (node)
     {
-      wxShape *obj = (wxShape *)node->Data();
+      wxShape *obj = (wxShape *)node->GetData();
       obj->SetSensitivityFilter(sens, TRUE);
-      node = node->Next();
+      node = node->GetNext();
     }
   }
 }
@@ -386,12 +380,12 @@ void wxShape::SetDraggable(bool drag, bool recursive)
 
   if (recursive)
   {
-    wxNode *node = m_children.First();
+    wxNode *node = m_children.GetFirst();
     while (node)
     {
-      wxShape *obj = (wxShape *)node->Data();
+      wxShape *obj = (wxShape *)node->GetData();
       obj->SetDraggable(drag, TRUE);
-      node = node->Next();
+      node = node->GetNext();
     }
   }
 }
@@ -399,12 +393,12 @@ void wxShape::SetDraggable(bool drag, bool recursive)
 void wxShape::SetDrawHandles(bool drawH)
 {
   m_drawHandles = drawH;
-  wxNode *node = m_children.First();
+  wxNode *node = m_children.GetFirst();
   while (node)
   {
-    wxShape *obj = (wxShape *)node->Data();
+    wxShape *obj = (wxShape *)node->GetData();
     obj->SetDrawHandles(drawH);
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
@@ -429,27 +423,27 @@ void wxShape::SetShadowMode(int mode, bool redraw)
 void wxShape::SetCanvas(wxShapeCanvas *theCanvas)
 {
   m_canvas = theCanvas;
-  wxNode *node = m_children.First();
+  wxNode *node = m_children.GetFirst();
   while (node)
   {
-    wxShape *child = (wxShape *)node->Data();
+    wxShape *child = (wxShape *)node->GetData();
     child->SetCanvas(theCanvas);
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
 void wxShape::AddToCanvas(wxShapeCanvas *theCanvas, wxShape *addAfter)
 {
   theCanvas->AddShape(this, addAfter);
-  wxNode *node = m_children.First();
+  wxNode *node = m_children.GetFirst();
   wxShape *lastImage = this;
   while (node)
   {
-    wxShape *object = (wxShape *)node->Data();
+    wxShape *object = (wxShape *)node->GetData();
     object->AddToCanvas(theCanvas, lastImage);
     lastImage = object;
 
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
@@ -457,15 +451,15 @@ void wxShape::AddToCanvas(wxShapeCanvas *theCanvas, wxShape *addAfter)
 void wxShape::InsertInCanvas(wxShapeCanvas *theCanvas)
 {
   theCanvas->InsertShape(this);
-  wxNode *node = m_children.First();
+  wxNode *node = m_children.GetFirst();
   wxShape *lastImage = this;
   while (node)
   {
-    wxShape *object = (wxShape *)node->Data();
+    wxShape *object = (wxShape *)node->GetData();
     object->AddToCanvas(theCanvas, lastImage);
     lastImage = object;
 
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
@@ -474,24 +468,24 @@ void wxShape::RemoveFromCanvas(wxShapeCanvas *theCanvas)
   if (Selected())
     Select(FALSE);
   theCanvas->RemoveShape(this);
-  wxNode *node = m_children.First();
+  wxNode *node = m_children.GetFirst();
   while (node)
   {
-    wxShape *object = (wxShape *)node->Data();
+    wxShape *object = (wxShape *)node->GetData();
     object->RemoveFromCanvas(theCanvas);
 
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
 void wxShape::ClearAttachments()
 {
-  wxNode *node = m_attachmentPoints.First();
+  wxNode *node = m_attachmentPoints.GetFirst();
   while (node)
   {
-    wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data();
+    wxAttachmentPoint *point = (wxAttachmentPoint *)node->GetData();
     delete point;
-    node = node->Next();
+    node = node->GetNext();
   }
   m_attachmentPoints.Clear();
 }
@@ -504,20 +498,20 @@ void wxShape::ClearText(int regionId)
     m_text.Clear();
     m_text.DeleteContents(FALSE);
   }
-  wxNode *node = m_regions.Nth(regionId);
+  wxNode *node = m_regions.Item(regionId);
   if (!node)
     return;
-  wxShapeRegion *region = (wxShapeRegion *)node->Data();
+  wxShapeRegion *region = (wxShapeRegion *)node->GetData();
   region->ClearText();
 }
 
 void wxShape::ClearRegions()
 {
-  wxNode *node = m_regions.First();
+  wxNode *node = m_regions.GetFirst();
   while (node)
   {
-    wxShapeRegion *region = (wxShapeRegion *)node->Data();
-    wxNode *next = node->Next();
+    wxShapeRegion *region = (wxShapeRegion *)node->GetData();
+    wxNode *next = node->GetNext();
     delete region;
     delete node;
     node = next;
@@ -531,9 +525,9 @@ void wxShape::AddRegion(wxShapeRegion *region)
 
 void wxShape::SetDefaultRegionSize()
 {
-  wxNode *node = m_regions.First();
+  wxNode *node = m_regions.GetFirst();
   if (!node) return;
-  wxShapeRegion *region = (wxShapeRegion *)node->Data();
+  wxShapeRegion *region = (wxShapeRegion *)node->GetData();
   double w, h;
   GetBoundingBoxMin(&w, &h);
   region->SetSize(w, h);
@@ -600,26 +594,27 @@ void wxShape::FormatText(wxDC& dc, const wxString& s, int i)
   double w, h;
   ClearText(i);
 
-  if (m_regions.Number() < 1)
+  if (m_regions.GetCount() < 1)
     return;
-  wxNode *node = m_regions.Nth(i);
+  wxNode *node = m_regions.Item(i);
   if (!node)
     return;
 
-  wxShapeRegion *region = (wxShapeRegion *)node->Data();
-  region->SetText(s);
+  wxShapeRegion *region = (wxShapeRegion *)node->GetData();
+  // region->SetText(s);  // don't set the formatted text yet, it will be done below
+  region->m_regionText = s;
   dc.SetFont(* region->GetFont());
 
   region->GetSize(&w, &h);
 
   wxStringList *stringList = oglFormatText(dc, s, (w-5), (h-5), region->GetFormatMode());
-  node = stringList->First();
+  node = (wxNode*)stringList->GetFirst();
   while (node)
   {
-    char *s = (char *)node->Data();
+    wxChar *s = (wxChar *)node->GetData();
     wxShapeTextLine *line = new wxShapeTextLine(0.0, 0.0, s);
     region->GetFormattedText().Append((wxObject *)line);
-    node = node->Next();
+    node = node->GetNext();
   }
   delete stringList;
   double actualW = w;
@@ -627,8 +622,8 @@ void wxShape::FormatText(wxDC& dc, const wxString& s, int i)
   // Don't try to resize an object with more than one image (this case should be dealt
   // with by overriden handlers)
   if ((region->GetFormatMode() & FORMAT_SIZE_TO_CONTENTS) &&
-      (region->GetFormattedText().Number() > 0) &&
-      (m_regions.Number() == 1) && !GraphicsInSizeToContents)
+      (region->GetFormattedText().GetCount() > 0) &&
+      (m_regions.GetCount() == 1) && !GraphicsInSizeToContents)
   {
     oglGetCentredTextExtent(dc, &(region->GetFormattedText()), m_xpos, m_ypos, w, h, &actualW, &actualH);
     if ((actualW+m_textMarginX != w ) || (actualH+m_textMarginY != h))
@@ -678,13 +673,13 @@ void wxShape::Recentre(wxDC& dc)
   double w, h;
   GetBoundingBoxMin(&w, &h);
 
-  int noRegions = m_regions.Number();
+  int noRegions = m_regions.GetCount();
   for (int i = 0; i < noRegions; i++)
   {
-    wxNode *node = m_regions.Nth(i);
+    wxNode *node = m_regions.Item(i);
     if (node)
     {
-      wxShapeRegion *region = (wxShapeRegion *)node->Data();
+      wxShapeRegion *region = (wxShapeRegion *)node->GetData();
       oglCentreText(dc, &(region->GetFormattedText()), m_xpos, m_ypos, w, h, region->GetFormatMode());
     }
   }
@@ -725,37 +720,37 @@ wxShape *wxShape::GetTopAncestor()
 void wxShape::SetFont(wxFont *the_font, int regionId)
 {
   m_font = the_font;
-  wxNode *node = m_regions.Nth(regionId);
+  wxNode *node = m_regions.Item(regionId);
   if (!node)
     return;
-  wxShapeRegion *region = (wxShapeRegion *)node->Data();
+  wxShapeRegion *region = (wxShapeRegion *)node->GetData();
   region->SetFont(the_font);
 }
 
 wxFont *wxShape::GetFont(int n) const
 {
-  wxNode *node = m_regions.Nth(n);
+  wxNode *node = m_regions.Item(n);
   if (!node)
     return NULL;
-  wxShapeRegion *region = (wxShapeRegion *)node->Data();
+  wxShapeRegion *region = (wxShapeRegion *)node->GetData();
   return region->GetFont();
 }
 
 void wxShape::SetFormatMode(int mode, int regionId)
 {
-  wxNode *node = m_regions.Nth(regionId);
+  wxNode *node = m_regions.Item(regionId);
   if (!node)
     return;
-  wxShapeRegion *region = (wxShapeRegion *)node->Data();
+  wxShapeRegion *region = (wxShapeRegion *)node->GetData();
   region->SetFormatMode(mode);
 }
 
 int wxShape::GetFormatMode(int regionId) const
 {
-  wxNode *node = m_regions.Nth(regionId);
+  wxNode *node = m_regions.Item(regionId);
   if (!node)
     return 0;
-  wxShapeRegion *region = (wxShapeRegion *)node->Data();
+  wxShapeRegion *region = (wxShapeRegion *)node->GetData();
   return region->GetFormatMode();
 }
 
@@ -765,50 +760,50 @@ void wxShape::SetTextColour(const wxString& the_colour, int regionId)
   m_textColour = wxcolour;
   m_textColourName = the_colour;
 
-  wxNode *node = m_regions.Nth(regionId);
+  wxNode *node = m_regions.Item(regionId);
   if (!node)
     return;
-  wxShapeRegion *region = (wxShapeRegion *)node->Data();
+  wxShapeRegion *region = (wxShapeRegion *)node->GetData();
   region->SetColour(the_colour);
 }
 
 wxString wxShape::GetTextColour(int regionId) const
 {
-  wxNode *node = m_regions.Nth(regionId);
+  wxNode *node = m_regions.Item(regionId);
   if (!node)
-    return wxString("");
-  wxShapeRegion *region = (wxShapeRegion *)node->Data();
+    return wxEmptyString;
+  wxShapeRegion *region = (wxShapeRegion *)node->GetData();
   return region->GetColour();
 }
 
 void wxShape::SetRegionName(const wxString& name, int regionId)
 {
-  wxNode *node = m_regions.Nth(regionId);
+  wxNode *node = m_regions.Item(regionId);
   if (!node)
     return;
-  wxShapeRegion *region = (wxShapeRegion *)node->Data();
+  wxShapeRegion *region = (wxShapeRegion *)node->GetData();
   region->SetName(name);
 }
 
 wxString wxShape::GetRegionName(int regionId)
 {
-  wxNode *node = m_regions.Nth(regionId);
+  wxNode *node = m_regions.Item(regionId);
   if (!node)
-    return wxString("");
-  wxShapeRegion *region = (wxShapeRegion *)node->Data();
+    return wxEmptyString;
+  wxShapeRegion *region = (wxShapeRegion *)node->GetData();
   return region->GetName();
 }
 
 int wxShape::GetRegionId(const wxString& name)
 {
-  wxNode *node = m_regions.First();
+  wxNode *node = m_regions.GetFirst();
   int i = 0;
   while (node)
   {
-    wxShapeRegion *region = (wxShapeRegion *)node->Data();
+    wxShapeRegion *region = (wxShapeRegion *)node->GetData();
     if (region->GetName() == name)
       return i;
-    node = node->Next();
+    node = node->GetNext();
     i ++;
   }
   return -1;
@@ -822,23 +817,23 @@ void wxShape::NameRegions(const wxString& parentName)
   for (int i = 0; i < n; i++)
   {
     if (parentName.Length() > 0)
-      buff << parentName << "." << i;
+      buff << parentName << wxT(".") << i;
     else
       buff << i;
     SetRegionName(buff, i);
   }
-  wxNode *node = m_children.First();
+  wxNode *node = m_children.GetFirst();
   int j = 0;
   while (node)
   {
     buff.Empty();
-    wxShape *child = (wxShape *)node->Data();
+    wxShape *child = (wxShape *)node->GetData();
     if (parentName.Length() > 0)
-      buff << parentName << "." << i;
+      buff << parentName << wxT(".") << j;
     else
-      buff << i;
+      buff << j;
     child->NameRegions(buff);
-    node = node->Next();
+    node = node->GetNext();
     j ++;
   }
 }
@@ -853,14 +848,14 @@ wxShape *wxShape::FindRegion(const wxString& name, int *regionId)
     return this;
   }
 
-  wxNode *node = m_children.First();
+  wxNode *node = m_children.GetFirst();
   while (node)
   {
-    wxShape *child = (wxShape *)node->Data();
+    wxShape *child = (wxShape *)node->GetData();
     wxShape *actualImage = child->FindRegion(name, regionId);
     if (actualImage)
       return actualImage;
-    node = node->Next();
+    node = node->GetNext();
   }
   return NULL;
 }
@@ -876,12 +871,12 @@ void wxShape::FindRegionNames(wxStringList& list)
     list.Add(name);
   }
 
-  wxNode *node = m_children.First();
+  wxNode *node = m_children.GetFirst();
   while (node)
   {
-    wxShape *child = (wxShape *)node->Data();
+    wxShape *child = (wxShape *)node->GetData();
     child->FindRegionNames(list);
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
@@ -889,12 +884,12 @@ void wxShape::AssignNewIds()
 {
 //  if (m_id == 0)
   m_id = wxNewId();
-  wxNode *node = m_children.First();
+  wxNode *node = m_children.GetFirst();
   while (node)
   {
-    wxShape *child = (wxShape *)node->Data();
+    wxShape *child = (wxShape *)node->GetData();
     child->AssignNewIds();
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
@@ -907,12 +902,12 @@ void wxShape::OnMoveLinks(wxDC& dc)
   // Want to set the ends of all attached links
   // to point to/from this object
 
-  wxNode *current = m_lines.First();
+  wxNode *current = m_lines.GetFirst();
   while (current)
   {
-    wxLineShape *line = (wxLineShape *)current->Data();
+    wxLineShape *line = (wxLineShape *)current->GetData();
     line->GetEventHandler()->OnMoveLink(dc);
-    current = current->Next();
+    current = current->GetNext();
   }
 }
 
@@ -921,11 +916,11 @@ void wxShape::OnDrawContents(wxDC& dc)
 {
   double bound_x, bound_y;
   GetBoundingBoxMin(&bound_x, &bound_y);
-    if (m_regions.Number() < 1) return;
+    if (m_regions.GetCount() < 1) return;
 
     if (m_pen) dc.SetPen(* m_pen);
 
-    wxShapeRegion *region = (wxShapeRegion *)m_regions.First()->Data();
+    wxShapeRegion *region = (wxShapeRegion *)m_regions.GetFirst()->GetData();
     if (region->GetFont()) dc.SetFont(* region->GetFont());
 
     dc.SetTextForeground(* (region->GetActualColourObject()));
@@ -965,12 +960,12 @@ void wxShape::OnErase(wxDC& dc)
     return;
 
   // Erase links
-  wxNode *current = m_lines.First();
+  wxNode *current = m_lines.GetFirst();
   while (current)
   {
-    wxLineShape *line = (wxLineShape *)current->Data();
+    wxLineShape *line = (wxLineShape *)current->GetData();
     line->GetEventHandler()->OnErase(dc);
-    current = current->Next();
+    current = current->GetNext();
   }
   GetEventHandler()->OnEraseContents(dc);
 }
@@ -1004,23 +999,23 @@ void wxShape::EraseLinks(wxDC& dc, int attachment, bool recurse)
   if (!m_visible)
     return;
 
-  wxNode *current = m_lines.First();
+  wxNode *current = m_lines.GetFirst();
   while (current)
   {
-    wxLineShape *line = (wxLineShape *)current->Data();
+    wxLineShape *line = (wxLineShape *)current->GetData();
     if (attachment == -1 || ((line->GetTo() == this && line->GetAttachmentTo() == attachment) ||
                              (line->GetFrom() == this && line->GetAttachmentFrom() == attachment)))
       line->GetEventHandler()->OnErase(dc);
-    current = current->Next();
+    current = current->GetNext();
   }
   if (recurse)
   {
-    wxNode *node = m_children.First();
+    wxNode *node = m_children.GetFirst();
     while (node)
     {
-      wxShape *child = (wxShape *)node->Data();
+      wxShape *child = (wxShape *)node->GetData();
       child->EraseLinks(dc, attachment, recurse);
-      node = node->Next();
+      node = node->GetNext();
     }
   }
 }
@@ -1030,24 +1025,24 @@ void wxShape::DrawLinks(wxDC& dc, int attachment, bool recurse)
   if (!m_visible)
     return;
 
-  wxNode *current = m_lines.First();
+  wxNode *current = m_lines.GetFirst();
   while (current)
   {
-    wxLineShape *line = (wxLineShape *)current->Data();
+    wxLineShape *line = (wxLineShape *)current->GetData();
     if (attachment == -1 ||
         (line->GetTo() == this && line->GetAttachmentTo() == attachment) ||
         (line->GetFrom() == this && line->GetAttachmentFrom() == attachment))
       line->Draw(dc);
-    current = current->Next();
+    current = current->GetNext();
   }
   if (recurse)
   {
-    wxNode *node = m_children.First();
+    wxNode *node = m_children.GetFirst();
     while (node)
     {
-      wxShape *child = (wxShape *)node->Data();
+      wxShape *child = (wxShape *)node->GetData();
       child->DrawLinks(dc, attachment, recurse);
-      node = node->Next();
+      node = node->GetNext();
     }
   }
 }
@@ -1105,11 +1100,11 @@ bool wxShape::MoveLineToNewAttachment(wxDC& dc, wxLineShape *to_move,
   wxList newOrdering;
 
   // First, add all links to the new list.
-  wxNode *node = m_lines.First();
+  wxNode *node = m_lines.GetFirst();
   while (node)
   {
-    newOrdering.Append(node->Data());
-    node = node->Next();
+    newOrdering.Append(node->GetData());
+    node = node->GetNext();
   }
 
   // Delete the line object from the list of links; we're going to move
@@ -1119,12 +1114,12 @@ bool wxShape::MoveLineToNewAttachment(wxDC& dc, wxLineShape *to_move,
   double old_x = (double) -99999.9;
   double old_y = (double) -99999.9;
 
-  node = newOrdering.First();
+  node = newOrdering.GetFirst();
   bool found = FALSE;
 
   while (!found && node)
   {
-    wxLineShape *line = (wxLineShape *)node->Data();
+    wxLineShape *line = (wxLineShape *)node->GetData();
     if ((line->GetTo() == this && oldAttachment == line->GetAttachmentTo()) ||
         (line->GetFrom() == this && oldAttachment == line->GetAttachmentFrom()))
     {
@@ -1154,7 +1149,7 @@ bool wxShape::MoveLineToNewAttachment(wxDC& dc, wxLineShape *to_move,
       old_x = xp;
       old_y = yp;
     }
-    node = node->Next();
+    node = node->GetNext();
   }
 
   if (!found)
@@ -1188,36 +1183,36 @@ void wxShape::ApplyAttachmentOrdering(wxList& linesToSort)
   // This is a temporary store of all the lines.
   wxList linesStore;
 
-  wxNode *node = m_lines.First();
+  wxNode *node = m_lines.GetFirst();
   while (node)
   {
-    wxLineShape *line = (wxLineShape *)node->Data();
+    wxLineShape *line = (wxLineShape *)node->GetData();
     linesStore.Append(line);
-    node = node->Next();;
+    node = node->GetNext();;
   }
 
   m_lines.Clear();
 
-  node = linesToSort.First();
+  node = linesToSort.GetFirst();
   while (node)
   {
-    wxLineShape *line = (wxLineShape *)node->Data();
+    wxLineShape *line = (wxLineShape *)node->GetData();
     if (linesStore.Member(line))
     {
       // Done this one
       linesStore.DeleteObject(line);
       m_lines.Append(line);
     }
-    node = node->Next();
+    node = node->GetNext();
   }
 
   // Now add any lines that haven't been listed in linesToSort.
-  node = linesStore.First();
+  node = linesStore.GetFirst();
   while (node)
   {
-    wxLineShape *line = (wxLineShape *)node->Data();
+    wxLineShape *line = (wxLineShape *)node->GetData();
     m_lines.Append(line);
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
@@ -1230,11 +1225,11 @@ void wxShape::SortLines(int attachment, wxList& linesToSort)
   // point. We'll tick them off as we've processed them.
   wxList linesAtThisAttachment;
 
-  wxNode *node = m_lines.First();
+  wxNode *node = m_lines.GetFirst();
   while (node)
   {
-    wxLineShape *line = (wxLineShape *)node->Data();
-    wxNode *next = node->Next();
+    wxLineShape *line = (wxLineShape *)node->GetData();
+    wxNode *next = node->GetNext();
     if ((line->GetTo() == this && line->GetAttachmentTo() == attachment) ||
         (line->GetFrom() == this && line->GetAttachmentFrom() == attachment))
     {
@@ -1242,29 +1237,29 @@ void wxShape::SortLines(int attachment, wxList& linesToSort)
       delete node;
       node = next;
     }
-    else node = node->Next();
+    else node = node->GetNext();
   }
 
-  node = linesToSort.First();
+  node = linesToSort.GetFirst();
   while (node)
   {
-    wxLineShape *line = (wxLineShape *)node->Data();
+    wxLineShape *line = (wxLineShape *)node->GetData();
     if (linesAtThisAttachment.Member(line))
     {
       // Done this one
       linesAtThisAttachment.DeleteObject(line);
       m_lines.Append(line);
     }
-    node = node->Next();
+    node = node->GetNext();
   }
 
   // Now add any lines that haven't been listed in linesToSort.
-  node = linesAtThisAttachment.First();
+  node = linesAtThisAttachment.GetFirst();
   while (node)
   {
-    wxLineShape *line = (wxLineShape *)node->Data();
+    wxLineShape *line = (wxLineShape *)node->GetData();
     m_lines.Append(line);
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
@@ -1545,12 +1540,12 @@ void wxShape::Flash()
 void wxShape::Show(bool show)
 {
   m_visible = show;
-  wxNode *node = m_children.First();
+  wxNode *node = m_children.GetFirst();
   while (node)
   {
-    wxShape *image = (wxShape *)node->Data();
+    wxShape *image = (wxShape *)node->GetData();
     image->Show(show);
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
@@ -1568,10 +1563,10 @@ void wxShape::EraseContents(wxDC& dc)
 
 void wxShape::AddText(const wxString& string)
 {
-  wxNode *node = m_regions.First();
+  wxNode *node = m_regions.GetFirst();
   if (!node)
     return;
-  wxShapeRegion *region = (wxShapeRegion *)node->Data();
+  wxShapeRegion *region = (wxShapeRegion *)node->GetData();
   region->ClearText();
   wxShapeTextLine *new_line =
       new wxShapeTextLine(0.0, 0.0, string);
@@ -1599,13 +1594,13 @@ void wxShape::SetAttachmentSize(double w, double h)
     scaleY = 1.0;
   else scaleY = h/height;
 
-  wxNode *node = m_attachmentPoints.First();
+  wxNode *node = m_attachmentPoints.GetFirst();
   while (node)
   {
-    wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data();
+    wxAttachmentPoint *point = (wxAttachmentPoint *)node->GetData();
     point->m_x = (double)(point->m_x * scaleX);
     point->m_y = (double)(point->m_y * scaleY);
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
@@ -1624,9 +1619,9 @@ void wxShape::AddLine(wxLineShape *line, wxShape *other,
     {
         // Don't preserve old ordering if we have new ordering instructions
         m_lines.DeleteObject(line);
-        if (positionFrom < m_lines.Number())
+        if (positionFrom < m_lines.GetCount())
         {
-            wxNode* node = m_lines.Nth(positionFrom);
+            wxNode* node = m_lines.Item(positionFrom);
             m_lines.Insert(node, line);
         }
         else
@@ -1642,9 +1637,9 @@ void wxShape::AddLine(wxLineShape *line, wxShape *other,
     {
         // Don't preserve old ordering if we have new ordering instructions
         other->m_lines.DeleteObject(line);
-        if (positionTo < other->m_lines.Number())
+        if (positionTo < other->m_lines.GetCount())
         {
-            wxNode* node = other->m_lines.Nth(positionTo);
+            wxNode* node = other->m_lines.Item(positionTo);
             other->m_lines.Insert(node, line);
         }
         else
@@ -1659,9 +1654,9 @@ void wxShape::AddLine(wxLineShape *line, wxShape *other,
         m_lines.Append(line);
     else
     {
-        if (positionFrom < m_lines.Number())
+        if (positionFrom < m_lines.GetCount())
         {
-            wxNode* node = m_lines.Nth(positionFrom);
+            wxNode* node = m_lines.Item(positionFrom);
             m_lines.Insert(node, line);
         }
         else
@@ -1672,9 +1667,9 @@ void wxShape::AddLine(wxLineShape *line, wxShape *other,
         other->m_lines.Append(line);
     else
     {
-        if (positionTo < other->m_lines.Number())
+        if (positionTo < other->m_lines.GetCount())
         {
-            wxNode* node = other->m_lines.Nth(positionTo);
+            wxNode* node = other->m_lines.Item(positionTo);
             other->m_lines.Insert(node, line);
         }
         else
@@ -1697,7 +1692,7 @@ void wxShape::RemoveLine(wxLineShape *line)
   m_lines.DeleteObject(line);
 }
 
-#ifdef PROLOGIO
+#if wxUSE_PROLOGIO
 void wxShape::WriteAttributes(wxExpr *clause)
 {
   clause->AddAttributeValueString("type", GetClassInfo()->GetClassName());
@@ -1742,17 +1737,17 @@ void wxShape::WriteAttributes(wxExpr *clause)
 
   // Output line ids
 
-  int n_lines = m_lines.Number();
+  int n_lines = m_lines.GetCount();
   if (n_lines > 0)
   {
     wxExpr *list = new wxExpr(wxExprList);
-    wxNode *node = m_lines.First();
+    wxNode *node = m_lines.GetFirst();
     while (node)
     {
-      wxShape *line = (wxShape *)node->Data();
+      wxShape *line = (wxShape *)node->GetData();
       wxExpr *id_expr = new wxExpr(line->GetId());
       list->Append(id_expr);
-      node = node->Next();
+      node = node->GetNext();
     }
     clause->AddAttributeValue("arcs", list);
   }
@@ -1791,19 +1786,19 @@ void wxShape::WriteAttributes(wxExpr *clause)
   }
 
   // Write user-defined attachment points, if any
-  if (m_attachmentPoints.Number() > 0)
+  if (m_attachmentPoints.GetCount() > 0)
   {
     wxExpr *attachmentList = new wxExpr(wxExprList);
-    wxNode *node = m_attachmentPoints.First();
+    wxNode *node = m_attachmentPoints.GetFirst();
     while (node)
     {
-      wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data();
+      wxAttachmentPoint *point = (wxAttachmentPoint *)node->GetData();
       wxExpr *pointExpr = new wxExpr(wxExprList);
       pointExpr->Append(new wxExpr((long)point->m_id));
       pointExpr->Append(new wxExpr(point->m_x));
       pointExpr->Append(new wxExpr(point->m_y));
       attachmentList->Append(pointExpr);
-      node = node->Next();
+      node = node->GetNext();
     }
     clause->AddAttributeValue("user_attachments", attachmentList);
   }
@@ -1819,10 +1814,10 @@ void wxShape::WriteRegions(wxExpr *clause)
   int regionNo = 1;
   char regionNameBuf[20];
   char textNameBuf[20];
-  wxNode *node = m_regions.First();
+  wxNode *node = m_regions.GetFirst();
   while (node)
   {
-    wxShapeRegion *region = (wxShapeRegion *)node->Data();
+    wxShapeRegion *region = (wxShapeRegion *)node->GetData();
     sprintf(regionNameBuf, "region%d", regionNo);
     sprintf(textNameBuf, "text%d", regionNo);
 
@@ -1859,23 +1854,23 @@ void wxShape::WriteRegions(wxExpr *clause)
     // text1 = ((x y string) (x y string) ...)
     wxExpr *textExpr = new wxExpr(wxExprList);
 
-    wxNode *textNode = region->m_formattedText.First();
+    wxNode *textNode = region->m_formattedText.GetFirst();
     while (textNode)
     {
-      wxShapeTextLine *line = (wxShapeTextLine *)textNode->Data();
+      wxShapeTextLine *line = (wxShapeTextLine *)textNode->GetData();
       wxExpr *list2 = new wxExpr(wxExprList);
       list2->Append(new wxExpr(line->GetX()));
       list2->Append(new wxExpr(line->GetY()));
       list2->Append(new wxExpr(wxExprString, line->GetText()));
       textExpr->Append(list2);
-      textNode = textNode->Next();
+      textNode = textNode->GetNext();
     }
 
     // Now add both attributes to the clause
     clause->AddAttributeValue(regionNameBuf, regionExpr);
     clause->AddAttributeValue(textNameBuf, textExpr);
 
-    node = node->Next();
+    node = node->GetNext();
     regionNo ++;
   }
 }
@@ -2242,21 +2237,21 @@ void wxShape::ReadRegions(wxExpr *clause)
   // Compatibility: check for no regions (old file).
   // Lines and divided rectangles must deal with this compatibility
   // theirselves. Composites _may_ not have any regions anyway.
-  if ((m_regions.Number() == 0) &&
+  if ((m_regions.GetCount() == 0) &&
       !this->IsKindOf(CLASSINFO(wxLineShape)) && !this->IsKindOf(CLASSINFO(wxDividedShape)) &&
       !this->IsKindOf(CLASSINFO(wxCompositeShape)))
   {
     wxShapeRegion *newRegion = new wxShapeRegion;
     newRegion->SetName("0");
     m_regions.Append((wxObject *)newRegion);
-    if (m_text.Number() > 0)
+    if (m_text.GetCount() > 0)
     {
       newRegion->ClearText();
-      wxNode *node = m_text.First();
+      wxNode *node = m_text.GetFirst();
       while (node)
       {
-        wxShapeTextLine *textLine = (wxShapeTextLine *)node->Data();
-        wxNode *next = node->Next();
+        wxShapeTextLine *textLine = (wxShapeTextLine *)node->GetData();
+        wxNode *next = node->GetNext();
         newRegion->GetFormattedText().Append((wxObject *)textLine);
         delete node;
         node = next;
@@ -2303,37 +2298,37 @@ void wxShape::Copy(wxShape& copy)
 
   // Copy text regions
   copy.ClearRegions();
-  wxNode *node = m_regions.First();
+  wxNode *node = m_regions.GetFirst();
   while (node)
   {
-    wxShapeRegion *region = (wxShapeRegion *)node->Data();
+    wxShapeRegion *region = (wxShapeRegion *)node->GetData();
     wxShapeRegion *newRegion = new wxShapeRegion(*region);
     copy.m_regions.Append(newRegion);
-    node = node->Next();
+    node = node->GetNext();
   }
 
   // Copy attachments
   copy.ClearAttachments();
-  node = m_attachmentPoints.First();
+  node = m_attachmentPoints.GetFirst();
   while (node)
   {
-    wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data();
+    wxAttachmentPoint *point = (wxAttachmentPoint *)node->GetData();
     wxAttachmentPoint *newPoint = new wxAttachmentPoint;
     newPoint->m_id = point->m_id;
     newPoint->m_x = point->m_x;
     newPoint->m_y = point->m_y;
     copy.m_attachmentPoints.Append((wxObject *)newPoint);
-    node = node->Next();
+    node = node->GetNext();
   }
 
   // Copy lines
   copy.m_lines.Clear();
-  node = m_lines.First();
+  node = m_lines.GetFirst();
   while (node)
   {
-    wxLineShape* line = (wxLineShape*) node->Data();
+    wxLineShape* line = (wxLineShape*) node->GetData();
     copy.m_lines.Append(line);
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
@@ -2441,23 +2436,23 @@ void wxShape::MakeControlPoints()
 
 void wxShape::MakeMandatoryControlPoints()
 {
-  wxNode *node = m_children.First();
+  wxNode *node = m_children.GetFirst();
   while (node)
   {
-    wxShape *child = (wxShape *)node->Data();
+    wxShape *child = (wxShape *)node->GetData();
     child->MakeMandatoryControlPoints();
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
 void wxShape::ResetMandatoryControlPoints()
 {
-  wxNode *node = m_children.First();
+  wxNode *node = m_children.GetFirst();
   while (node)
   {
-    wxShape *child = (wxShape *)node->Data();
+    wxShape *child = (wxShape *)node->GetData();
     child->ResetMandatoryControlPoints();
-    node = node->Next();
+    node = node->GetNext();
   }
 }
 
@@ -2465,7 +2460,7 @@ void wxShape::ResetControlPoints()
 {
   ResetMandatoryControlPoints();
 
-  if (m_controlPoints.Number() < 1)
+  if (m_controlPoints.GetCount() < 1)
     return;
 
   double maxX, maxY, minX, minY;
@@ -2482,55 +2477,55 @@ void wxShape::ResetControlPoints()
   double left = (double)(- (widthMin / 2.0));
   double right = (double)(widthMin / 2.0 + (maxX - minX));
 
-  wxNode *node = m_controlPoints.First();
-  wxControlPoint *control = (wxControlPoint *)node->Data();
+  wxNode *node = m_controlPoints.GetFirst();
+  wxControlPoint *control = (wxControlPoint *)node->GetData();
   control->m_xoffset = left; control->m_yoffset = top;
 
-  node = node->Next(); control = (wxControlPoint *)node->Data();
+  node = node->GetNext(); control = (wxControlPoint *)node->GetData();
   control->m_xoffset = 0; control->m_yoffset = top;
 
-  node = node->Next(); control = (wxControlPoint *)node->Data();
+  node = node->GetNext(); control = (wxControlPoint *)node->GetData();
   control->m_xoffset = right; control->m_yoffset = top;
 
-  node = node->Next(); control = (wxControlPoint *)node->Data();
+  node = node->GetNext(); control = (wxControlPoint *)node->GetData();
   control->m_xoffset = right; control->m_yoffset = 0;
 
-  node = node->Next(); control = (wxControlPoint *)node->Data();
+  node = node->GetNext(); control = (wxControlPoint *)node->GetData();
   control->m_xoffset = right; control->m_yoffset = bottom;
 
-  node = node->Next(); control = (wxControlPoint *)node->Data();
+  node = node->GetNext(); control = (wxControlPoint *)node->GetData();
   control->m_xoffset = 0; control->m_yoffset = bottom;
 
-  node = node->Next(); control = (wxControlPoint *)node->Data();
+  node = node->GetNext(); control = (wxControlPoint *)node->GetData();
   control->m_xoffset = left; control->m_yoffset = bottom;
 
-  node = node->Next(); control = (wxControlPoint *)node->Data();
+  node = node->GetNext(); control = (wxControlPoint *)node->GetData();
   control->m_xoffset = left; control->m_yoffset = 0;
 }
 
 void wxShape::DeleteControlPoints(wxDC *dc)
 {
-  wxNode *node = m_controlPoints.First();
+  wxNode *node = m_controlPoints.GetFirst();
   while (node)
   {
-    wxControlPoint *control = (wxControlPoint *)node->Data();
+    wxControlPoint *control = (wxControlPoint *)node->GetData();
     if (dc)
         control->GetEventHandler()->OnErase(*dc);
     m_canvas->RemoveShape(control);
     delete control;
     delete node;
-    node = m_controlPoints.First();
+    node = m_controlPoints.GetFirst();
   }
   // Children of divisions are contained objects,
   // so stop here
   if (!IsKindOf(CLASSINFO(wxDivisionShape)))
   {
-    node = m_children.First();
+    node = m_children.GetFirst();
     while (node)
     {
-      wxShape *child = (wxShape *)node->Data();
+      wxShape *child = (wxShape *)node->GetData();
       child->DeleteControlPoints(dc);
-      node = node->Next();
+      node = node->GetNext();
     }
   }
 }
@@ -2543,12 +2538,12 @@ void wxShape::OnDrawControlPoints(wxDC& dc)
   dc.SetBrush(* wxBLACK_BRUSH);
   dc.SetPen(* wxBLACK_PEN);
 
-  wxNode *node = m_controlPoints.First();
+  wxNode *node = m_controlPoints.GetFirst();
   while (node)
   {
-    wxControlPoint *control = (wxControlPoint *)node->Data();
+    wxControlPoint *control = (wxControlPoint *)node->GetData();
     control->Draw(dc);
-    node = node->Next();
+    node = node->GetNext();
   }
   // Children of divisions are contained objects,
   // so stop here.
@@ -2556,33 +2551,33 @@ void wxShape::OnDrawControlPoints(wxDC& dc)
   // (critical when drawing)
   if (!IsKindOf(CLASSINFO(wxDivisionShape)))
   {
-    node = m_children.First();
+    node = m_children.GetFirst();
     while (node)
     {
-      wxShape *child = (wxShape *)node->Data();
+      wxShape *child = (wxShape *)node->GetData();
       child->GetEventHandler()->OnDrawControlPoints(dc);
-      node = node->Next();
+      node = node->GetNext();
     }
   }
 }
 
 void wxShape::OnEraseControlPoints(wxDC& dc)
 {
-  wxNode *node = m_controlPoints.First();
+  wxNode *node = m_controlPoints.GetFirst();
   while (node)
   {
-    wxControlPoint *control = (wxControlPoint *)node->Data();
+    wxControlPoint *control = (wxControlPoint *)node->GetData();
     control->Erase(dc);
-    node = node->Next();
+    node = node->GetNext();
   }
   if (!IsKindOf(CLASSINFO(wxDivisionShape)))
   {
-    node = m_children.First();
+    node = m_children.GetFirst();
     while (node)
     {
-      wxShape *child = (wxShape *)node->Data();
+      wxShape *child = (wxShape *)node->GetData();
       child->GetEventHandler()->OnEraseControlPoints(dc);
-      node = node->Next();
+      node = node->GetNext();
     }
   }
 }
@@ -2597,12 +2592,12 @@ void wxShape::Select(bool select, wxDC* dc)
     // so stop here
     if (!IsKindOf(CLASSINFO(wxDivisionShape)))
     {
-      wxNode *node = m_children.First();
+      wxNode *node = m_children.GetFirst();
       while (node)
       {
-        wxShape *child = (wxShape *)node->Data();
+        wxShape *child = (wxShape *)node->GetData();
         child->MakeMandatoryControlPoints();
-        node = node->Next();
+        node = node->GetNext();
       }
     }
     if (dc)
@@ -2613,12 +2608,12 @@ void wxShape::Select(bool select, wxDC* dc)
     DeleteControlPoints(dc);
     if (!IsKindOf(CLASSINFO(wxDivisionShape)))
     {
-      wxNode *node = m_children.First();
+      wxNode *node = m_children.GetFirst();
       while (node)
       {
-        wxShape *child = (wxShape *)node->Data();
+        wxShape *child = (wxShape *)node->GetData();
         child->DeleteControlPoints(dc);
-        node = node->Next();
+        node = node->GetNext();
       }
     }
   }
@@ -2643,18 +2638,18 @@ int wxShape::GetNumberOfAttachments() const
   // Should return the MAXIMUM attachment point id here,
   // so higher-level functions can iterate through all attachments,
   // even if they're not contiguous.
-  if (m_attachmentPoints.Number() == 0)
+  if (m_attachmentPoints.GetCount() == 0)
     return 4;
   else
   {
     int maxN = 3;
-    wxNode *node = m_attachmentPoints.First();
+    wxNode *node = m_attachmentPoints.GetFirst();
     while (node)
     {
-      wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data();
+      wxAttachmentPoint *point = (wxAttachmentPoint *)node->GetData();
       if (point->m_id > maxN)
         maxN = point->m_id;
-      node = node->Next();
+      node = node->GetNext();
     }
     return maxN+1;;
   }
@@ -2662,18 +2657,18 @@ int wxShape::GetNumberOfAttachments() const
 
 bool wxShape::AttachmentIsValid(int attachment) const
 {
-  if (m_attachmentPoints.Number() == 0)
+  if (m_attachmentPoints.GetCount() == 0)
   {
     return ((attachment >= 0) && (attachment < 4)) ;
   }
 
-  wxNode *node = m_attachmentPoints.First();
+  wxNode *node = m_attachmentPoints.GetFirst();
   while (node)
   {
-    wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data();
+    wxAttachmentPoint *point = (wxAttachmentPoint *)node->GetData();
     if (point->m_id == attachment)
       return TRUE;
-    node = node->Next();
+    node = node->GetNext();
   }
   return FALSE;
 }
@@ -2696,19 +2691,19 @@ bool wxShape::GetAttachmentPosition(int attachment, double *x, double *y,
     }
     else if (m_attachmentMode == ATTACHMENT_MODE_EDGE)
     {
-        if (m_attachmentPoints.Number() > 0)
+        if (m_attachmentPoints.GetCount() > 0)
         {
-            wxNode *node = m_attachmentPoints.First();
+            wxNode *node = m_attachmentPoints.GetFirst();
             while (node)
             {
-                wxAttachmentPoint *point = (wxAttachmentPoint *)node->Data();
+                wxAttachmentPoint *point = (wxAttachmentPoint *)node->GetData();
                 if (point->m_id == attachment)
                 {
                     *x = (double)(m_xpos + point->m_x);
                     *y = (double)(m_ypos + point->m_y);
                     return TRUE;
                 }
-                node = node->Next();
+                node = node->GetNext();
             }
             *x = m_xpos; *y = m_ypos;
             return FALSE;
@@ -2792,14 +2787,14 @@ bool wxShape::HasDescendant(wxShape *image)
 {
   if (image == this)
     return TRUE;
-  wxNode *node = m_children.First();
+  wxNode *node = m_children.GetFirst();
   while (node)
   {
-    wxShape *child = (wxShape *)node->Data();
+    wxShape *child = (wxShape *)node->GetData();
     bool ans = child->HasDescendant(image);
     if (ans)
       return TRUE;
-    node = node->Next();
+    node = node->GetNext();
   }
   return FALSE;
 }
@@ -2807,13 +2802,13 @@ bool wxShape::HasDescendant(wxShape *image)
 // Clears points from a list of wxRealPoints, and clears list
 void wxShape::ClearPointList(wxList& list)
 {
-    wxNode* node = list.First();
+    wxNode* node = list.GetFirst();
     while (node)
     {
-        wxRealPoint* pt = (wxRealPoint*) node->Data();
+        wxRealPoint* pt = (wxRealPoint*) node->GetData();
         delete pt;
 
-        node = node->Next();
+        node = node->GetNext();
     }
     list.Clear();
 }
@@ -2908,8 +2903,8 @@ wxRealPoint wxShape::CalcSimpleAttachment(const wxRealPoint& pt1, const wxRealPo
 int wxShape::GetLinePosition(wxLineShape* line)
 {
     int i = 0;
-    for (i = 0; i < m_lines.Number(); i++)
-        if ((wxLineShape*) (m_lines.Nth(i)->Data()) == line)
+    for (i = 0; i < m_lines.GetCount(); i++)
+        if ((wxLineShape*) (m_lines.Item(i)->GetData()) == line)
             return i;
 
     return 0;
@@ -3064,16 +3059,16 @@ bool wxShape::GetBranchingAttachmentPoint(int attachment, int n, wxRealPoint& pt
 int wxShape::GetAttachmentLineCount(int attachment) const
 {
     int count = 0;
-    wxNode* node = m_lines.First();
+    wxNode* node = m_lines.GetFirst();
     while (node)
     {
-        wxLineShape* lineShape = (wxLineShape*) node->Data();
+        wxLineShape* lineShape = (wxLineShape*) node->GetData();
         if ((lineShape->GetFrom() == this) && (lineShape->GetAttachmentFrom() == attachment))
             count ++;
         else if ((lineShape->GetTo() == this) && (lineShape->GetAttachmentTo() == attachment))
             count ++;
 
-        node = node->Next();
+        node = node->GetNext();
     }
     return count;
 }