]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/richedit/wxllist.cpp
Make wxJoystick::GetNumberJoystick a static method, as the number of
[wxWidgets.git] / samples / richedit / wxllist.cpp
index b5625309d22373e29b1e247d4b365a37e194fe2f..1352b8cb19b8e1894e9220b66d3f4ef023d763a7 100644 (file)
 
  */
 
 
  */
 
-#ifdef __GNUG__
-#   pragma implementation "wxllist.h"
-#endif
-
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
 #include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
@@ -66,7 +62,7 @@
 
 
 /// This should never really get created
 
 
 /// This should never really get created
-#define   WXLLIST_TEMPFILE   "__wxllist.tmp"
+#define   WXLLIST_TEMPFILE   _T("__wxllist.tmp")
 
 #ifdef WXLAYOUT_DEBUG
 
 
 #ifdef WXLAYOUT_DEBUG
 
 #define WXLO_MINIMUM_CURSOR_WIDTH   4
 
 /// Use this character to estimate a cursor size when none is available.
 #define WXLO_MINIMUM_CURSOR_WIDTH   4
 
 /// Use this character to estimate a cursor size when none is available.
-#define WXLO_CURSORCHAR   "E"
+#define WXLO_CURSORCHAR   _T("E")
 /** @name Helper functions */
 //@{
 /// allows me to compare to wxPoints
 /** @name Helper functions */
 //@{
 /// allows me to compare to wxPoints
@@ -325,7 +321,7 @@ wxLayoutObjectText::GetOffsetScreen(wxDC &dc, CoordType xpos) const
                        &width, &height, &descent);
       offs++;
    }
                        &width, &height, &descent);
       offs++;
    }
-   /* We have to substract 1 to compensate for the offs++, and another
+   /* We have to subtract 1 to compensate for the offs++, and another
       one because we don't want to position the cursor behind the
       object what we clicked on, but before - otherwise it looks
       funny. */
       one because we don't want to position the cursor behind the
       object what we clicked on, but before - otherwise it looks
       funny. */
@@ -631,36 +627,36 @@ wxLayoutObjectCmd::Read(wxString &istr)
 
     if(obj->m_StyleInfo->m_fg_valid)
     {
 
     if(obj->m_StyleInfo->m_fg_valid)
     {
-        int red, green, blue;
+        unsigned char red, green, blue;
         ReadString(tmp, istr);
         tmp.ToLong(&l);
         ReadString(tmp, istr);
         tmp.ToLong(&l);
-        red = (int) l;
+        red = (unsigned char) l;
 
         ReadString(tmp, istr);
         tmp.ToLong(&l);
 
         ReadString(tmp, istr);
         tmp.ToLong(&l);
-        green = (int) l;
+        green = (unsigned char) l;
 
         ReadString(tmp, istr);
         tmp.ToLong(&l);
 
         ReadString(tmp, istr);
         tmp.ToLong(&l);
-        blue = (int) l;
+        blue = (unsigned char) l;
 
         obj->m_StyleInfo->m_fg = wxColour(red, green, blue);
     }
 
     if(obj->m_StyleInfo->m_bg_valid)
     {
 
         obj->m_StyleInfo->m_fg = wxColour(red, green, blue);
     }
 
     if(obj->m_StyleInfo->m_bg_valid)
     {
-        int red, green, blue;
+        unsigned char red, green, blue;
         ReadString(tmp, istr);
         tmp.ToLong(&l);
         ReadString(tmp, istr);
         tmp.ToLong(&l);
-        red = (int) l;
+        red = (unsigned char) l;
 
         ReadString(tmp, istr);
         tmp.ToLong(&l);
 
         ReadString(tmp, istr);
         tmp.ToLong(&l);
-        green = (int) l;
+        green = (unsigned char) l;
 
         ReadString(tmp, istr);
         tmp.ToLong(&l);
 
         ReadString(tmp, istr);
         tmp.ToLong(&l);
-        blue = (int) l;
+        blue = (unsigned char) l;
 
         obj->m_StyleInfo->m_bg = wxColour(red, green, blue);
     }
 
         obj->m_StyleInfo->m_bg = wxColour(red, green, blue);
     }
@@ -735,11 +731,6 @@ wxLayoutLine::wxLayoutLine(wxLayoutLine *prev, wxLayoutList *llist)
    llist->IncNumLines();
 }
 
    llist->IncNumLines();
 }
 
-wxLayoutLine::~wxLayoutLine()
-{
-   // kbList cleans itself
-}
-
 wxPoint
 wxLayoutLine::RecalculatePosition(wxLayoutList *llist)
 {
 wxPoint
 wxLayoutLine::RecalculatePosition(wxLayoutList *llist)
 {
@@ -777,14 +768,15 @@ wxLayoutLine::FindObject(CoordType xpos, CoordType *offset) const
    wxASSERT(offset);
    wxLayoutObjectList::iterator
       i,
    wxASSERT(offset);
    wxLayoutObjectList::iterator
       i,
-      found = NULLIT;
+      found(NULL),
+      nulled(NULL);
    CoordType x = 0, len;
 
    /* We search through the objects. As we don't like returning the
       object that the cursor is behind, we just remember such an
       object in "found" so we can return it if there is really no
       further object following it. */
    CoordType x = 0, len;
 
    /* We search through the objects. As we don't like returning the
       object that the cursor is behind, we just remember such an
       object in "found" so we can return it if there is really no
       further object following it. */
-   for(i = m_ObjectList.begin(); i != NULLIT; i++)
+   for(i = m_ObjectList.begin(); i != nulled; i++)
    {
       len = (**i).GetLength();
       if( x <= xpos && xpos <= x + len )
    {
       len = (**i).GetLength();
       if( x <= xpos && xpos <= x + len )
@@ -809,10 +801,10 @@ wxLayoutLine::FindObjectScreen(wxDC &dc, wxLayoutList *llist,
 
    llist->ApplyStyle(GetStyleInfo(), dc);
 
 
    llist->ApplyStyle(GetStyleInfo(), dc);
 
-   wxLayoutObjectList::iterator i;
+   wxLayoutObjectList::iterator i, nulled(NULL);
    CoordType x = 0, cx = 0, width;
 
    CoordType x = 0, cx = 0, width;
 
-   for(i = m_ObjectList.begin(); i != NULLIT; i++)
+   for(i = m_ObjectList.begin(); i != nulled; i++)
    {
       wxLayoutObject *obj = *i;
       if ( obj->GetType() == WXLO_TYPE_CMD )
    {
       wxLayoutObject *obj = *i;
       if ( obj->GetType() == WXLO_TYPE_CMD )
@@ -883,7 +875,8 @@ wxLayoutLine::Insert(CoordType xpos, wxLayoutObject *obj)
 
    CoordType offset;
    wxLOiterator i = FindObject(xpos, &offset);
 
    CoordType offset;
    wxLOiterator i = FindObject(xpos, &offset);
-   if(i == NULLIT)
+   wxLayoutObjectList::iterator nulled(NULL);
+   if(i == nulled)
    {
       if(xpos == 0 ) // aha, empty line!
       {
    {
       if(xpos == 0 ) // aha, empty line!
       {
@@ -940,7 +933,8 @@ wxLayoutLine::Insert(CoordType xpos, const wxString& text)
 
    CoordType offset;
    wxLOiterator i = FindObject(xpos, &offset);
 
    CoordType offset;
    wxLOiterator i = FindObject(xpos, &offset);
-   if(i != NULLIT && (**i).GetType() == WXLO_TYPE_TEXT)
+   wxLayoutObjectList::iterator nulled(NULL);
+   if(i != nulled && (**i).GetType() == WXLO_TYPE_TEXT)
    {
       wxLayoutObjectText *tobj = (wxLayoutObjectText *) *i;
       tobj->GetText().insert(offset, text);
    {
       wxLayoutObjectText *tobj = (wxLayoutObjectText *) *i;
       tobj->GetText().insert(offset, text);
@@ -964,9 +958,10 @@ wxLayoutLine::Delete(CoordType xpos, CoordType npos)
    wxASSERT(npos >= 0);
    MarkDirty(xpos);
    wxLOiterator i = FindObject(xpos, &offset);
    wxASSERT(npos >= 0);
    MarkDirty(xpos);
    wxLOiterator i = FindObject(xpos, &offset);
+   wxLayoutObjectList::iterator nulled(NULL);
    while(npos > 0)
    {
    while(npos > 0)
    {
-      if(i == NULLIT)  return npos;
+      if(i == nulled)  return npos;
       // now delete from that object:
       if((**i).GetType() != WXLO_TYPE_TEXT)
       {
       // now delete from that object:
       if((**i).GetType() != WXLO_TYPE_TEXT)
       {
@@ -1020,10 +1015,10 @@ wxLayoutLine::DeleteWord(CoordType xpos)
     MarkDirty(xpos);
 
     wxLOiterator i = FindObject(xpos, &offset);
     MarkDirty(xpos);
 
     wxLOiterator i = FindObject(xpos, &offset);
-
+    wxLayoutObjectList::iterator nulled(NULL);
     for(;;)
     {
     for(;;)
     {
-        if(i == NULLIT) return false;
+        if(i == nulled) return false;
         if((**i).GetType() != WXLO_TYPE_TEXT)
         {
             // This should only happen when at end of line, behind a non-text
         if((**i).GetType() != WXLO_TYPE_TEXT)
         {
             // This should only happen when at end of line, behind a non-text
@@ -1094,13 +1089,13 @@ wxLayoutLine::Draw(wxDC &dc,
                    wxLayoutList *llist,
                    const wxPoint & offset) const
 {
                    wxLayoutList *llist,
                    const wxPoint & offset) const
 {
-   wxLayoutObjectList::iterator i;
+   wxLayoutObjectList::iterator i, nulled(NULL);
    wxPoint pos = offset;
    pos = pos + GetPosition();
 
    pos.y += m_BaseLine;
 
    wxPoint pos = offset;
    pos = pos + GetPosition();
 
    pos.y += m_BaseLine;
 
-   CoordType xpos = 0; // cursorpos, lenght of line
+   CoordType xpos = 0; // cursorpos, length of line
 
    CoordType from, to;
 
 
    CoordType from, to;
 
@@ -1111,7 +1106,7 @@ wxLayoutLine::Draw(wxDC &dc,
    else
       llist->EndHighlighting(dc);
 
    else
       llist->EndHighlighting(dc);
 
-   for(i = m_ObjectList.begin(); i != NULLIT; i++)
+   for(i = m_ObjectList.begin(); i != nulled; i++)
    {
       if(highlight == -1) // partially highlight line
       {
    {
       if(highlight == -1) // partially highlight line
       {
@@ -1142,7 +1137,7 @@ wxLayoutLine::Layout(wxDC &dc,
                      int cx,
                      bool WXUNUSED(suppressSIupdate))
 {
                      int cx,
                      bool WXUNUSED(suppressSIupdate))
 {
-   wxLayoutObjectList::iterator i;
+   wxLayoutObjectList::iterator i, nulled(NULL);
 
    // when a line becomes dirty, we redraw it from the place where it was
    // changed till the end of line (because the following wxLayoutObjects are
 
    // when a line becomes dirty, we redraw it from the place where it was
    // changed till the end of line (because the following wxLayoutObjects are
@@ -1177,7 +1172,7 @@ wxLayoutLine::Layout(wxDC &dc,
    }
 
    m_StyleInfo = llist->GetStyleInfo(); // save current style
    }
 
    m_StyleInfo = llist->GetStyleInfo(); // save current style
-   for(i = m_ObjectList.begin(); i != NULLIT; i++)
+   for(i = m_ObjectList.begin(); i != nulled; i++)
    {
       wxLayoutObject *obj = *i;
       obj->Layout(dc, llist);
    {
       wxLayoutObject *obj = *i;
       obj->Layout(dc, llist);
@@ -1201,7 +1196,7 @@ wxLayoutLine::Layout(wxDC &dc,
                if(len < obj->GetLength())
                   str = (*(wxLayoutObjectText*)*i).GetText().substr(len,1);
                else
                if(len < obj->GetLength())
                   str = (*(wxLayoutObjectText*)*i).GetText().substr(len,1);
                else
-                  str = _T(WXLO_CURSORCHAR);
+                  str = WXLO_CURSORCHAR;
                dc.GetTextExtent(str, &width, &height, &descent);
 
                if(cursorStyle) // set style info
                dc.GetTextExtent(str, &width, &height, &descent);
 
                if(cursorStyle) // set style info
@@ -1274,7 +1269,7 @@ wxLayoutLine::Layout(wxDC &dc,
    if(m_Height == 0)
    {
       CoordType width, height, descent;
    if(m_Height == 0)
    {
       CoordType width, height, descent;
-      dc.GetTextExtent(_T(WXLO_CURSORCHAR), &width, &height, &descent);
+      dc.GetTextExtent(WXLO_CURSORCHAR, &width, &height, &descent);
       m_Height = height;
       m_BaseLine = m_Height - descent;
    }
       m_Height = height;
       m_BaseLine = m_Height - descent;
    }
@@ -1293,7 +1288,7 @@ wxLayoutLine::Layout(wxDC &dc,
       if(cursorSize->x < WXLO_MINIMUM_CURSOR_WIDTH)
       {
          CoordType width, height, descent;
       if(cursorSize->x < WXLO_MINIMUM_CURSOR_WIDTH)
       {
          CoordType width, height, descent;
-         dc.GetTextExtent(_T(WXLO_CURSORCHAR), &width, &height, &descent);
+         dc.GetTextExtent(WXLO_CURSORCHAR, &width, &height, &descent);
          cursorSize->x = width;
          cursorSize->y = height;
       }
          cursorSize->x = width;
          cursorSize->y = height;
       }
@@ -1313,7 +1308,8 @@ wxLayoutLine::Break(CoordType xpos, wxLayoutList *llist)
 
    CoordType offset;
    wxLOiterator i = FindObject(xpos, &offset);
 
    CoordType offset;
    wxLOiterator i = FindObject(xpos, &offset);
-   if(i == NULLIT)
+   wxLayoutObjectList::iterator nulled(NULL);
+   if(i == nulled)
       // must be at the end of the line then
       return new wxLayoutLine(this, llist);
    // split this line:
       // must be at the end of the line then
       return new wxLayoutLine(this, llist);
    // split this line:
@@ -1356,18 +1352,19 @@ wxLayoutLine::Break(CoordType xpos, wxLayoutList *llist)
 bool
 wxLayoutLine::Wrap(CoordType wrapmargin, wxLayoutList *llist)
 {
 bool
 wxLayoutLine::Wrap(CoordType wrapmargin, wxLayoutList *llist)
 {
+   wxLayoutObjectList::iterator nulled(NULL);
    if(GetLength() < wrapmargin)
       return false; // nothing to do
 
    // find the object which covers the wrapmargin:
    CoordType offset;
    wxLOiterator i = FindObject(wrapmargin, &offset);
    if(GetLength() < wrapmargin)
       return false; // nothing to do
 
    // find the object which covers the wrapmargin:
    CoordType offset;
    wxLOiterator i = FindObject(wrapmargin, &offset);
-   wxCHECK_MSG( i != NULLIT, false,
+   wxCHECK_MSG( i != nulled, false,
                 wxT("Cannot find object covering wrapmargin."));
 
    // from this object on, the rest of the line must be copied to the
    // next one:
                 wxT("Cannot find object covering wrapmargin."));
 
    // from this object on, the rest of the line must be copied to the
    // next one:
-   wxLOiterator copyObject = NULLIT;
+   wxLOiterator copyObject = nulled;
    // if we split a text-object, we must pre-pend some text to the
    // next line later on, remember it here:
    wxString prependText = _T("");
    // if we split a text-object, we must pre-pend some text to the
    // next line later on, remember it here:
    wxString prependText = _T("");
@@ -1390,7 +1387,7 @@ wxLayoutLine::Wrap(CoordType wrapmargin, wxLayoutList *llist)
       bool foundSpace = false;
       do
       {
       bool foundSpace = false;
       do
       {
-//         while(i != NULLIT && (**i).GetType() != WXLO_TYPE_TEXT)
+//         while(i != nulled && (**i).GetType() != WXLO_TYPE_TEXT)
 //            i--;
          // try to find a suitable place to split the object:
          wxLayoutObjectText *tobj = (wxLayoutObjectText *)*i;
 //            i--;
          // try to find a suitable place to split the object:
          wxLayoutObjectText *tobj = (wxLayoutObjectText *)*i;
@@ -1431,7 +1428,7 @@ wxLayoutLine::Wrap(CoordType wrapmargin, wxLayoutList *llist)
       if( this == llist->GetCursorLine() && xpos >= breakpos )
       {
          for(wxLOiterator j = m_ObjectList.begin();
       if( this == llist->GetCursorLine() && xpos >= breakpos )
       {
          for(wxLOiterator j = m_ObjectList.begin();
-             j != NULLIT && j != i; j++)
+             j != nulled && j != i; j++)
             objectCursorPos += (**j).GetLength();
       }
       // now we know where to break it:
             objectCursorPos += (**j).GetLength();
       }
       // now we know where to break it:
@@ -1449,7 +1446,7 @@ wxLayoutLine::Wrap(CoordType wrapmargin, wxLayoutList *llist)
    wxASSERT(m_Next);
    // We need to move this and all following objects to the next
    // line. Starting from the end of line, to keep the order right.
    wxASSERT(m_Next);
    // We need to move this and all following objects to the next
    // line. Starting from the end of line, to keep the order right.
-   if(copyObject != NULLIT)
+   if(copyObject != nulled)
    {
       wxLOiterator j;
       for(j = m_ObjectList.tail(); j != copyObject; j--)
    {
       wxLOiterator j;
       for(j = m_ObjectList.tail(); j != copyObject; j--)
@@ -1558,7 +1555,8 @@ wxLayoutLine::GetWrapPosition(CoordType column)
 {
    CoordType offset;
    wxLOiterator i = FindObject(column, &offset);
 {
    CoordType offset;
    wxLOiterator i = FindObject(column, &offset);
-   if(i == NULLIT) return -1; // cannot wrap
+   wxLayoutObjectList::iterator nulled(NULL);
+   if(i == nulled) return -1; // cannot wrap
 
    // go backwards through the list and look for space in text objects
    do
 
    // go backwards through the list and look for space in text objects
    do
@@ -1582,20 +1580,20 @@ wxLayoutLine::GetWrapPosition(CoordType column)
          column -= (**i).GetLength();
          i--;
       }
          column -= (**i).GetLength();
          i--;
       }
-      if( i != NULLIT)
+      if( i != nulled)
          offset = (**i).GetLength();
          offset = (**i).GetLength();
-   }while(i != NULLIT);
+   }while(i != nulled);
    /* If we reached the begin of the list and have more than one
       object, that one is longer than the margin, so break behind
       it. */
    CoordType pos = 0;
    i = m_ObjectList.begin();
    /* If we reached the begin of the list and have more than one
       object, that one is longer than the margin, so break behind
       it. */
    CoordType pos = 0;
    i = m_ObjectList.begin();
-   while(i != NULLIT && (**i).GetType() != WXLO_TYPE_TEXT)
+   while(i != nulled && (**i).GetType() != WXLO_TYPE_TEXT)
    {
       pos += (**i).GetLength();
       i++;
    }
    {
       pos += (**i).GetLength();
       i++;
    }
-   if(i == NULLIT) return -1;  //why should this happen?
+   if(i == nulled) return -1;  //why should this happen?
 
    // now we are behind the one long text object and need to find the
    // first space in it
 
    // now we are behind the one long text object and need to find the
    // first space in it
@@ -1613,6 +1611,7 @@ wxLayoutLine::GetWrapPosition(CoordType column)
 void
 wxLayoutLine::Debug() const
 {
 void
 wxLayoutLine::Debug() const
 {
+   wxLayoutObjectList::iterator nulled(NULL);
    wxPoint pos = GetPosition();
    WXLO_DEBUG((wxT("Line %ld, Pos (%ld,%ld), Height %ld, BL %ld, Font: %d"),
                (long int) GetLineNumber(),
    wxPoint pos = GetPosition();
    WXLO_DEBUG((wxT("Line %ld, Pos (%ld,%ld), Height %ld, BL %ld, Font: %d"),
                (long int) GetLineNumber(),
@@ -1620,7 +1619,7 @@ wxLayoutLine::Debug() const
                (long int) GetHeight(),
                (long int) m_BaseLine,
                (int) m_StyleInfo.family));
                (long int) GetHeight(),
                (long int) m_BaseLine,
                (int) m_StyleInfo.family));
-   if(m_ObjectList.begin() != NULLIT)
+   if(m_ObjectList.begin() != nulled)
    {
       WXLO_DEBUG(((**m_ObjectList.begin()).DebugDump().c_str()));
    }
    {
       WXLO_DEBUG(((**m_ObjectList.begin()).DebugDump().c_str()));
    }
@@ -1633,6 +1632,7 @@ wxLayoutLine::Copy(wxLayoutList *llist,
                    CoordType from,
                    CoordType to)
 {
                    CoordType from,
                    CoordType to)
 {
+   wxLayoutObjectList::iterator nulled(NULL);
    CoordType firstOffset, lastOffset;
 
    if(to == -1) to = GetLength();
    CoordType firstOffset, lastOffset;
 
    if(to == -1) to = GetLength();
@@ -1642,7 +1642,7 @@ wxLayoutLine::Copy(wxLayoutList *llist,
    wxLOiterator last  = FindObject(to, &lastOffset);
 
    // Common special case: only one object
    wxLOiterator last  = FindObject(to, &lastOffset);
 
    // Common special case: only one object
-   if( first != NULLIT && last != NULLIT && *first == *last )
+   if( first != nulled && last != nulled && *first == *last )
    {
       if( (**first).GetType() == WXLO_TYPE_TEXT )
       {
    {
       if( (**first).GetType() == WXLO_TYPE_TEXT )
       {
@@ -1821,16 +1821,10 @@ wxLayoutList::SetFont(int family, int size, int style, int weight,
                       int underline, wxChar const *fg, wxChar const *bg)
 
 {
                       int underline, wxChar const *fg, wxChar const *bg)
 
 {
-   wxColour
-      *cfg = NULL,
-      *cbg = NULL;
-
-   if( fg )
-      cfg = wxTheColourDatabase->FindColour(fg);
-   if( bg )
-      cbg = wxTheColourDatabase->FindColour(bg);
+   wxColour cfg = wxTheColourDatabase->Find((fg)?fg:wxT("BLACK"));
+   wxColour cbg = wxTheColourDatabase->Find((bg)?bg:wxT("WHITE"));
 
 
-   SetFont(family,size,style,weight,underline,cfg,cbg);
+   SetFont(family,size,style,weight,underline,&cfg,&cbg);
 }
 
 void
 }
 
 void
@@ -2009,6 +2003,7 @@ wxLayoutList::MoveCursorHorizontally(int n)
 bool
 wxLayoutList::MoveCursorWord(int n, bool untilNext)
 {
 bool
 wxLayoutList::MoveCursorWord(int n, bool untilNext)
 {
+   wxLayoutObjectList::iterator nulled(NULL);
    wxCHECK_MSG( m_CursorLine, false, wxT("no current line") );
    wxCHECK_MSG( n == -1 || n == +1, false, wxT("not implemented yet") );
 
    wxCHECK_MSG( m_CursorLine, false, wxT("no current line") );
    wxCHECK_MSG( n == -1 || n == +1, false, wxT("not implemented yet") );
 
@@ -2019,7 +2014,7 @@ wxLayoutList::MoveCursorWord(int n, bool untilNext)
          n != 0;
          n > 0 ? i++ : i-- )
    {
          n != 0;
          n > 0 ? i++ : i-- )
    {
-      if ( i == NULLIT )
+      if ( i == nulled )
       {
          if ( n > 0 )
          {
       {
          if ( n > 0 )
          {
@@ -2038,7 +2033,7 @@ wxLayoutList::MoveCursorWord(int n, bool untilNext)
                i = lineCur->GetLastObject();
          }
 
                i = lineCur->GetLastObject();
          }
 
-         if ( i == NULLIT )
+         if ( i == nulled )
          {
             // moved to the end/beginning of text
             return false;
          {
             // moved to the end/beginning of text
             return false;
@@ -2142,7 +2137,7 @@ wxLayoutList::MoveCursorWord(int n, bool untilNext)
             CoordType moveDelta = p - start - offset;
             if ( (n < 0) && (offset == tobj->GetLength() - 1) )
             {
             CoordType moveDelta = p - start - offset;
             if ( (n < 0) && (offset == tobj->GetLength() - 1) )
             {
-               // because we substracted 1 from offset in this case above, now
+               // because we subtracted 1 from offset in this case above, now
                // compensate for it
                moveDelta--;
             }
                // compensate for it
                moveDelta--;
             }
@@ -2215,6 +2210,7 @@ wxLayoutList::Insert(wxLayoutObject *obj)
 bool
 wxLayoutList::Insert(wxLayoutList *llist)
 {
 bool
 wxLayoutList::Insert(wxLayoutList *llist)
 {
+   wxLayoutObjectList::iterator nulled(NULL);
    wxASSERT(llist);
    bool rc = true;
 
    wxASSERT(llist);
    bool rc = true;
 
@@ -2224,7 +2220,7 @@ wxLayoutList::Insert(wxLayoutList *llist)
       )
    {
       for(wxLOiterator i = line->GetFirstObject();
       )
    {
       for(wxLOiterator i = line->GetFirstObject();
-          i != NULLIT;
+          i != nulled;
           i++)
          rc |= Insert(*i);
       LineBreak();
           i++)
          rc |= Insert(*i);
       LineBreak();
@@ -2602,6 +2598,7 @@ wxLayoutObject *
 wxLayoutList::FindObjectScreen(wxDC &dc, wxPoint const pos,
     wxPoint *cursorPos, bool *found)
 {
 wxLayoutList::FindObjectScreen(wxDC &dc, wxPoint const pos,
     wxPoint *cursorPos, bool *found)
 {
+    wxLayoutObjectList::iterator nulled(NULL);
     // First, find the right line:
     wxLayoutLine
         *line = m_FirstLine,
     // First, find the right line:
     wxLayoutLine
         *line = m_FirstLine,
@@ -2652,7 +2649,7 @@ wxLayoutList::FindObjectScreen(wxDC &dc, wxPoint const pos,
     if ( found )
         *found = didFind && foundinline;
 
     if ( found )
         *found = didFind && foundinline;
 
-    return (i == NULLIT) ? NULL : *i;
+    return (i == nulled) ? NULL : *i;
 
 }
 
 
 }
 
@@ -3214,10 +3211,6 @@ wxLayoutPrintout::wxLayoutPrintout(wxLayoutList *llist,
     // layout  is called in ScaleDC() when we have a DC
 }
 
     // layout  is called in ScaleDC() when we have a DC
 }
 
-wxLayoutPrintout::~wxLayoutPrintout()
-{
-}
-
 float
 wxLayoutPrintout::ScaleDC(wxDC *dc)
 {
 float
 wxLayoutPrintout::ScaleDC(wxDC *dc)
 {
@@ -3306,10 +3299,12 @@ void wxLayoutPrintout::GetPageInfo(int *minPage, int *maxPage, int *selPageFrom,
    /* We allocate a temporary wxDC for printing, so that we can
       determine the correct paper size and scaling. We don't actually
       print anything on it. */
    /* We allocate a temporary wxDC for printing, so that we can
       determine the correct paper size and scaling. We don't actually
       print anything on it. */
-#if defined(__WXMSW__)
-   wxPrinterDC *psdc = new wxPrinterDC(wxEmptyString,wxEmptyString,_T(WXLLIST_TEMPFILE),false);
+#if defined(__WXMSW__) || defined(__WXMAC__)
+   wxPrinterDC *psdc = new wxPrinterDC(wxEmptyString,wxEmptyString,WXLLIST_TEMPFILE,false);
 #else
 #else
-   wxPostScriptDC *psdc = new wxPostScriptDC(WXLLIST_TEMPFILE,false);
+   wxPrintData data;
+   data.SetFilename(WXLLIST_TEMPFILE);
+   wxPostScriptDC *psdc = new wxPostScriptDC(data);
 #endif
 
    psdc->StartDoc(m_title);
 #endif
 
    psdc->StartDoc(m_title);
@@ -3338,7 +3333,7 @@ void wxLayoutPrintout::GetPageInfo(int *minPage, int *maxPage, int *selPageFrom,
    *selPageTo = m_NumOfPages;
    psdc->EndDoc();
    delete psdc;
    *selPageTo = m_NumOfPages;
    psdc->EndDoc();
    delete psdc;
-   wxRemoveFile(_T(WXLLIST_TEMPFILE));
+   wxRemoveFile(WXLLIST_TEMPFILE);
 }
 
 bool wxLayoutPrintout::HasPage(int pageNum)
 }
 
 bool wxLayoutPrintout::HasPage(int pageNum)
@@ -3347,7 +3342,7 @@ bool wxLayoutPrintout::HasPage(int pageNum)
 }
 
 /*
 }
 
 /*
-  Stupid wxWindows doesn't draw proper ellipses, so we comment this
+  Stupid wxWidgets doesn't draw proper ellipses, so we comment this
   out. It's a waste of paper anyway.
 */
 #if 0
   out. It's a waste of paper anyway.
 */
 #if 0