]> git.saurik.com Git - wxWidgets.git/blobdiff - demos/dbbrowse/tabpgwin.cpp
need to invert offsets for gdk_pixbuf_scale;
[wxWidgets.git] / demos / dbbrowse / tabpgwin.cpp
index 46b40bac50e3d6849ecb60dc32755901bda4e56b..5b1c5b029f104f8996d59b224fd85c9412b072b5 100644 (file)
@@ -1,26 +1,21 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        No names yet.
+// Name:        tabpgwin.cpp
 // Purpose:     Contrib. demo
 // Author:      Aleksandras Gluchovas
-// Modified by: 19990908 : mj10777@gmx.net
+// Modified by: 19990908 : mj
 //              - rename to tabpgwin
 //              - restruction of Variable declaration
 //              - to prevent Warnings under MingW32
-// Modified by: 19990909 : mj10777@gmx.net
-//              - mNoVertScroll TRUE = no / FALSE = Original Code
+// Modified by: 19990909 : mj
+//              - mNoVertScroll true = no / false = Original Code
 //                the Original Code Paints a Vertical Scroll in wxPagedWindow
-//                which is not needed in this Version. Use TRUE for this.
+//                which is not needed in this Version. Use true for this.
 // Created:     07/09/98
 // RCS-ID:      $Id$
 // Copyright:   (c) Aleksandras Gluchovas
 // Licence:    wxWindows license
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
-#pragma implementation
-// #pragma interface
-#endif
-
 // For compilers that support precompilation, includes "wx.h".
 #include "wx/wxprec.h"
 
@@ -32,7 +27,8 @@
 #include "wx/wx.h"
 #endif
 
-#include <math.h>
+#include "wx/math.h"
+
 #include <stdlib.h>
 
 #include "wx/string.h"
@@ -50,12 +46,6 @@ twTabInfo::twTabInfo()
 : mpContent( 0 )
 {}
 
-//---------------------------------------------------------------------------
-twTabInfo::~twTabInfo()
-{
-    // FOR NOW:: nothing
-}
-
 //---------------------------------------------------------------------------
 int twTabInfo::ImgWidth()
 {
@@ -157,72 +147,72 @@ wxTabbedWindow::wxTabbedWindow()
 //---------------------------------------------------------------------------
 wxTabbedWindow::~wxTabbedWindow()
 {
-    wxNode* pTab = mTabs.First();
-    
+    wxObjectList::compatibility_iterator pTab = mTabs.GetFirst();
+
     while( pTab )
     {
-        delete ((twTabInfo*)pTab->Data());
-        pTab = pTab->Next();
+        delete ((twTabInfo*)pTab->GetData());
+        pTab = pTab->GetNext();
     }
 }
 
 //---------------------------------------------------------------------------
-void wxTabbedWindow::SizeTabs(int x,int y, int width, int height, bool repant)
+void wxTabbedWindow::SizeTabs(int x,int y, int width, int height, bool WXUNUSED(repant))
 {
-    wxNode* pTabNode = mTabs.First();
-    int n = 0;
-    
+    wxObjectList::compatibility_iterator pTabNode = mTabs.GetFirst();
+    size_t n = 0;
+
     while( pTabNode )
     {
-        twTabInfo& info = *((twTabInfo*)pTabNode->Data());
-        
+        twTabInfo& info = *((twTabInfo*)pTabNode->GetData());
+
         if ( n == mActiveTab )
         {
             //wxSizeEvent evt;
             //info.mpContent->GetEventHandler()->ProcessEvent( evt );
-            
+
             info.mpContent->SetSize( x, y, width, height, 0 );
-            info.mpContent->Show(TRUE);
+            info.mpContent->Show(true);
             info.mpContent->Refresh();
-            
+
         }
         else
         {
-            info.mpContent->Show(FALSE);
+            info.mpContent->Show(false);
         }
-        
-        pTabNode = pTabNode->Next();
+
+        pTabNode = pTabNode->GetNext();
         ++n;
     }
 }
 
 //---------------------------------------------------------------------------
-void wxTabbedWindow::AddTab( wxWindow* pContent,
-                            wxString  tabText,
-                            wxString  imageFileName,
-                            long      imageType )
+void wxTabbedWindow::AddTab( wxWindow*   pContent,
+                            wxString     tabText,
+                            wxString     imageFileName,
+                            wxBitmapType imageType )
 {
     twTabInfo* pTab = new twTabInfo();
-    
+
     pTab->mpContent = pContent;
     pTab->mText     = tabText;
-    
+
     if ( wxFileExists( imageFileName ) &&
-        
+
         pTab->mBitMap.LoadFile( imageFileName, imageType ) )
     {
         pTab->mImageFile = imageFileName;
         pTab->mImageType = imageType;
     }
-    
-    
+
+
     if ( pContent->GetParent() == NULL )
-        pContent->Create( this, -1 );
-    
+        pContent->Create( this, wxID_ANY );
+
     mTabs.Append( (wxObject*)pTab );
-    
-    RecalcLayout(TRUE);
-    
+
+    RecalcLayout(true);
+
     OnTabAdded( pTab );
 }
 
@@ -231,44 +221,44 @@ void wxTabbedWindow::AddTab( wxWindow* pContent,
                             wxString  tabText, wxBitmap* pImage   )
 {
     twTabInfo* pTab = new twTabInfo();
-    
+
     pTab->mpContent = pContent;
     pTab->mText     = tabText;
-    
+
     if ( pImage )
         pTab->mBitMap = *pImage;
-    
+
     if ( pContent->GetParent() == NULL )
-        pContent->Create( this, -1 );
-    
+        pContent->Create( this, wxID_ANY );
+
     mTabs.Append( (wxObject*)pTab );
-    RecalcLayout(TRUE);
+    RecalcLayout(true);
     OnTabAdded( pTab );
 }
 
 //---------------------------------------------------------------------------
 void wxTabbedWindow::RemoveTab( int tabNo )
 {
-    twTabInfo* pTab = ((twTabInfo*)(mTabs.Nth( tabNo )->Data()));
+    twTabInfo* pTab = ((twTabInfo*)(mTabs.Item( tabNo )->GetData()));
     pTab->mpContent->Destroy();
     delete pTab;
-    mTabs.DeleteNode( mTabs.Nth( tabNo ) );
-    // if ( mActiveTab >= mTabs.Number() );
-    if ( mActiveTab >= mTabs.Number() )
-        mActiveTab = mTabs.Number() - 1;
+    mTabs.Erase( mTabs.Item( tabNo ) );
+    // if ( mActiveTab >= mTabs.GetCount() );
+    if ( mActiveTab >= mTabs.GetCount() )
+        mActiveTab = mTabs.GetCount() - 1;
     SetActiveTab( mActiveTab );
 }
 
 //---------------------------------------------------------------------------
 int wxTabbedWindow::GetTabCount()
 {
-    return mTabs.Number();
+    return mTabs.GetCount();
 }
 
 //---------------------------------------------------------------------------
 wxWindow* wxTabbedWindow::GetTab( int tabNo )
 {
-    return ((twTabInfo*)(mTabs.Nth( tabNo )->Data()))->mpContent;
+    return ((twTabInfo*)(mTabs.Item( tabNo )->GetData()))->mpContent;
 }
 
 //---------------------------------------------------------------------------
@@ -282,7 +272,7 @@ wxWindow* wxTabbedWindow::GetActiveTab()
 void wxTabbedWindow::SetActiveTab( int tabNo )
 {
     mActiveTab = tabNo;
-    RecalcLayout(TRUE);
+    RecalcLayout(true);
     Refresh();
 }
 
@@ -297,13 +287,13 @@ void wxTabbedWindow::DrawShadedRect( int x, int y, int width, int height,
                                     )
 {
     // darw the lightened upper-left sides of the rectangle
-    
+
     dc.SetPen( upperPen );
     dc.DrawLine( x,y, x, y + height - 1 ); // vert
     dc.DrawLine( x,y, x + width - 1,  y ); // horiz
-    
+
     // draw the unenlightened lower-right sides of the rectangle
-    
+
     dc.SetPen( lowerPen );
     dc.DrawLine( x + width - 1,  y, x + width - 1, y + height - 1 ); // vert
     dc.DrawLine( x, y + height - 1, x + width, y + height - 1 );     // horiz
@@ -316,79 +306,79 @@ void wxTabbedWindow::DrawDecorations( wxDC& dc )
     //                     but not including the point specified by last position.
     //                     This way Windows draws lines, not sure how Motif and Gtk
     //                     prots behave...
-    
+
     int width, height;
     GetClientSize( &width, &height );
-    
+
     // check if there's at least a bit of space to draw things
-    
+
     if ( width  < mHorizGap*2 + BORDER_SZ*2+1 ||
         height < mVertGap*2  + BORDER_SZ*2+1 + mTitleHeight
         )
         return;
-    
+
     // step #1 - draw border around the tab content area
-    
+
     // setup position for kind of "pencil"
     int curX = mHorizGap;
     int curY = mVertGap;
-    
+
     int xSize = width  - mHorizGap*2;
     int ySize = height - mVertGap *2  - mTitleHeight;
-    
+
     // layer 1 (upper white)
     DrawShadedRect( curX+0, curY+0, xSize-0, ySize-0,
         mWhitePen, mBlackPen, dc  );
-    
+
     // layer 2 (upper gray)
     DrawShadedRect( curX+1, curY+1, xSize-2-1, ySize-2-1,
         mGrayPen, mGrayPen, dc  );
-    
+
     // layer 3 (upper darkGray)
     DrawShadedRect( curX+2, curY+2, xSize-3-2, ySize-3-2,
         mDarkPen, mWhitePen, dc  );
-    
+
     // layer 4 (upper black)
     DrawShadedRect( curX+3, curY+3, xSize-4-3, ySize-4-3,
         mBlackPen, mGrayPen, dc  );
-    
+
     // add non-siemtric layer from the lower-right side (confroming to MFC-look)
-    
+
     dc.SetPen( mDarkPen );
     dc.DrawLine( curX+1, curY + ySize - 2, curX + xSize - 1, curY + ySize - 2 );   // horiz
     dc.DrawLine( curX + xSize - 2, curY + 1, curX + xSize - 2, curY + ySize - 2 ); // vert
-    
+
     // step #2 - draw tab title bars
-    
+
     curX = mFirstTitleGap;
     curY = height - mVertGap - mTitleHeight;
-    
-    int tabNo = 0;
-    wxNode* pNode = mTabs.First();
-    
+
+    size_t tabNo = 0;
+    wxObjectList::compatibility_iterator pNode = mTabs.GetFirst();
+
     while( pNode )
     {
         // "hard-coded metafile" for decorations
-        
-        twTabInfo& tab = *((twTabInfo*)(pNode->Data()));
-        
+
+        twTabInfo& tab = *((twTabInfo*)(pNode->GetData()));
+
         xSize = tab.mDims.x;
         ySize = mTitleHeight;
-        
+
         if ( tabNo == mActiveTab )
         {
             dc.SetPen( mGrayPen );
             dc.DrawLine( curX+1, curY-2, curX+xSize-2, curY-2 );
             dc.DrawLine( curX+1, curY-1, curX+xSize-2, curY-1 );
         }
-        
+
         dc.SetPen( mWhitePen );
-        
+
         if ( tabNo == mActiveTab )
             dc.DrawLine( curX, curY-2, curX, curY+ySize-2 );
         else
             dc.DrawLine( curX, curY, curX, curY+ySize-2 );
-        
+
         dc.SetPen( mDarkPen );
         dc.DrawLine( curX+1, curY+ySize-3, curX+1, curY+ySize-1 ); // to pix down
         dc.DrawLine( curX+2, curY+ySize-2, curX+xSize-2, curY+ySize-2 );
@@ -397,23 +387,23 @@ void wxTabbedWindow::DrawDecorations( wxDC& dc )
             dc.DrawLine( curX+xSize-2, curY+ySize-3, curX+xSize-2, curY-3 );
         else
             dc.DrawLine( curX+xSize-2, curY+ySize-3, curX+xSize-2, curY-1 );
-        
+
         dc.SetPen( mBlackPen );
         dc.DrawLine( curX+xSize-1, curY, curX+xSize-1, curY+ySize-2 );
         dc.DrawLine( curX+xSize-2, curY+ySize-2, curX+xSize-3, curY+ySize-2 );
         dc.DrawLine( curX+xSize-3, curY+ySize-1, curX+1, curY+ySize-1 );
-        
-        pNode = pNode->Next();
+
+        pNode = pNode->GetNext();
         ++tabNo;
-        
+
         // darw image and (or without) text centered within the
         // title bar rectangle
-        
+
         if ( mLayoutType != wxTITLE_BORDER_ONLY && tab.HasImg() )
         {
             wxMemoryDC tmpDc;
             tmpDc.SelectObject( tab.GetImg() );
-            
+
             dc.Blit( curX + mTitleHorizGap,
                 curY + ( ySize - tab.ImgHeight() ) / 2,
                 tab.ImgWidth(),
@@ -421,25 +411,25 @@ void wxTabbedWindow::DrawDecorations( wxDC& dc )
                 &tmpDc, 0, 0, wxCOPY
                 );
         }
-        
+
         if ( mLayoutType == wxTITLE_IMG_AND_TEXT && tab.HasText() )
         {
             long x,w,h;
-            
+
             // set select default font of the window into it's device context
             //dc.SetFont( GetLabelingFont() );
-            
+
             dc.SetTextBackground( GetBackgroundColour() );
-            
+
             dc.GetTextExtent(tab.mText, &w, &h );
-            
+
             x = curX + mTitleHorizGap +
                 tab.ImgWidth() + tab.ImageToTxtGap(mImageTextGap);
-            
+
             dc.DrawText( tab.GetText(), x, curY + ( ySize - h ) / 2 );
         }
         curX += xSize;
-        
+
     } // end of `while (pNode)'
 }  // wxTabbedWindow::DrawDecorations()
 
@@ -448,20 +438,17 @@ int wxTabbedWindow::HitTest( const wxPoint& pos )
 {
     int width, height;
     GetClientSize( &width, &height );
-    
+
     int curX = mFirstTitleGap;
     int curY = height - mVertGap - mTitleHeight;
-    
+
     int     tabNo = 0;
-    wxNode* pNode = mTabs.First();
-    
+    wxObjectList::compatibility_iterator pNode = mTabs.GetFirst();
+
     while( pNode )
     {
-        twTabInfo& tab = *((twTabInfo*)(pNode->Data()));
-        
-        int w,h;
-        w = tab.mDims.x;
-        h = tab.mDims.y;
+        twTabInfo& tab = *((twTabInfo*)(pNode->GetData()));
+
         // hit test rectangle of the currnet tab title bar
         if ( pos.x >= curX && pos.x < curX + tab.mDims.x  &&
             pos.y >= curY && pos.y < curY + tab.mDims.y
@@ -469,13 +456,13 @@ int wxTabbedWindow::HitTest( const wxPoint& pos )
         {
             return tabNo;
         }
-        
+
         curX += tab.mDims.x;
-        
-        pNode = pNode->Next();
+
+        pNode = pNode->GetNext();
         ++tabNo;
     }
-    
+
     return -1;
 }  // wxTabbedWindow::HitTest()
 
@@ -484,19 +471,19 @@ void wxTabbedWindow::HideInactiveTabs( bool andRepaint )
 {
     if ( !andRepaint )
         return;
-    
-    wxNode* pNode = mTabs.First();
-    int     tabNo = 0;
-    
+
+    wxObjectList::compatibility_iterator pNode = mTabs.GetFirst();
+    size_t  tabNo = 0;
+
     while( pNode )
     {
         if ( tabNo != mActiveTab )
         {
-            twTabInfo& tab = *((twTabInfo*)(pNode->Data()));
-            tab.mpContent->Show(FALSE);
+            twTabInfo& tab = *((twTabInfo*)(pNode->GetData()));
+            tab.mpContent->Show(false);
         }
-        
-        pNode = pNode->Next();
+
+        pNode = pNode->GetNext();
         ++tabNo;
     }
 }  // wxTabbedWindow::HideInactiveTabs()
@@ -506,19 +493,19 @@ wxFont wxTabbedWindow::GetLabelingFont()
 {
     wxFont font;
 #ifdef __WINDOWS__
-    font.SetFaceName("MS Sans Serif");
+    font.SetFaceName(_T("MS Sans Serif"));
 #else
     font.SetFamily( wxSWISS );
 #endif
-    
+
     font.SetStyle(40);
     font.SetWeight(40);
     font.SetPointSize( 8 );
-    
+
 #ifdef __WINDOWS__
     font.RealizeResource();
 #endif
-    
+
     return font;
 }  // wxTabbedWindow::GetLabelingFont()
 
@@ -526,87 +513,87 @@ wxFont wxTabbedWindow::GetLabelingFont()
 void wxTabbedWindow::RecalcLayout(bool andRepaint)
 {
     HideInactiveTabs(andRepaint);
-    
+
     // resetup position of the active tab
-    
+
     int width, height;
     GetClientSize( &width, &height );
-    
+
     int curX = mHorizGap + BORDER_SZ;
     int curY = mVertGap  + BORDER_SZ;
-    
+
     int xSize = width  - mHorizGap*2 - BORDER_SZ*2-1;
     int ySize = height - mVertGap*2  - BORDER_SZ*2-1 - mTitleHeight;
-    
+
     SizeTabs( curX, curY, xSize, ySize, andRepaint );
-    
+
     // pass #1 - try to layout assuming it's wxTITLE_IMG_AND_TEXT
-    
+
     mLayoutType = wxTITLE_IMG_AND_TEXT;
-    
-    wxNode* pNode = mTabs.First();
-    
+
+    wxObjectList::compatibility_iterator pNode = mTabs.GetFirst();
+
     curX = mFirstTitleGap; // the left-side gap
     mTitleHeight = 0;
-    
+
     while( pNode )
     {
-        twTabInfo& tab = *((twTabInfo*)(pNode->Data()));
-        
+        twTabInfo& tab = *((twTabInfo*)(pNode->GetData()));
+
         wxWindowDC dc(this);
-        
+
         long w,h;
-        
+
         // set select default font of the window into it's device context
         //dc.SetFont( GetLabelingFont() );
-        
+
         dc.GetTextExtent(tab.mText, &w, &h );
-        
+
         tab.mDims.x = w + tab.ImageToTxtGap(mImageTextGap) +
             tab.ImgWidth() + mTitleHorizGap*2;
-        
+
         tab.mDims.y  = wxMax( h, tab.ImgHeight() ) + mTitleVertGap*2;
         mTitleHeight = wxMax( mTitleHeight, tab.mDims.y );
-        
+
         curX += tab.mDims.x;
-        
-        pNode = pNode->Next();
+
+        pNode = pNode->GetNext();
     }
-    
+
     curX += mHorizGap; // the right-side gap
-    
+
     // make all title bars of equel height
-    
-    pNode = mTabs.First();
-    
+
+    pNode = mTabs.GetFirst();
+
     while( pNode )
     {
-        ((twTabInfo*)(pNode->Data()))->mDims.y = mTitleHeight;;
-        pNode = pNode->Next();
+        ((twTabInfo*)(pNode->GetData()))->mDims.y = mTitleHeight;;
+        pNode = pNode->GetNext();
     }
-    
+
     // if curX has'nt ran out of bounds, leave TITLE_IMG layout and return
     if ( curX < width - mHorizGap )
         return;
-    
+
     // pass #2 - try to layout assuming wxTITLE_IMG_ONLY
-    
+
     mLayoutType = wxTITLE_IMG_ONLY;
-    
-    pNode = mTabs.First();
-    
+
+    pNode = mTabs.GetFirst();
+
     curX = mFirstTitleGap; // the left-side gap
-    
-    int denomiator = mTabs.Number();
+
+    int denomiator = mTabs.GetCount();
     if ( denomiator == 0 )
         ++denomiator;
-    
+
     mBorderOnlyWidth = (width - mFirstTitleGap - mHorizGap) / denomiator;
-    
+
     while( pNode )
     {
-        twTabInfo& tab = *((twTabInfo*)(pNode->Data()));
-        
+        twTabInfo& tab = *((twTabInfo*)(pNode->GetData()));
+
         if ( tab.HasImg() )
         {
             tab.mDims.x = tab.ImgWidth()  + mTitleHorizGap*2;
@@ -617,53 +604,53 @@ void wxTabbedWindow::RecalcLayout(bool andRepaint)
             tab.mDims.x = mBorderOnlyWidth;
             tab.mDims.y = mTitleHeight;
         }
-        
+
         curX += tab.mDims.x;
-        
-        pNode = pNode->Next();
+
+        pNode = pNode->GetNext();
     }
-    
+
     curX += mHorizGap; // the right-side gap
-    
+
     // if curX has'nt ran out of bounds, leave IMG_ONLY layout and return
     if ( curX < width  - mHorizGap )
         return;
-    
+
     // pass #3 - set the narrowest layout wxTITLE_BORDER_ONLY
-    
+
     mLayoutType = wxTITLE_BORDER_ONLY;
-    
-    pNode = mTabs.First();
-    
+
+    pNode = mTabs.GetFirst();
+
     while( pNode )
     {
-        twTabInfo& tab = *((twTabInfo*)(pNode->Data()));
-        
+        twTabInfo& tab = *((twTabInfo*)(pNode->GetData()));
+
         tab.mDims.x = mBorderOnlyWidth;
         tab.mDims.y = mTitleHeight;
-        
-        pNode = pNode->Next();
+
+        pNode = pNode->GetNext();
     }
 }  // wxTabbedWindow::RecalcLayout()
 
 //---------------------------------------------------------------------------
 // wx event handlers
 //---------------------------------------------------------------------------
-void wxTabbedWindow::OnPaint( wxPaintEvent& event )
+void wxTabbedWindow::OnPaint( wxPaintEvent& WXUNUSED(event) )
 {
     wxPaintDC dc(this);
     DrawDecorations( dc );
 }
 
 //---------------------------------------------------------------------------
-void wxTabbedWindow::OnSize ( wxSizeEvent& event )
+void wxTabbedWindow::OnSize ( wxSizeEvent& WXUNUSED(event) )
 {
     SetBackgroundColour( wxColour( 192,192,192 ) );
-    RecalcLayout(TRUE);
+    RecalcLayout(true);
 }
 
 //---------------------------------------------------------------------------
-void wxTabbedWindow::OnBkErase( wxEraseEvent& event )
+void wxTabbedWindow::OnBkErase( wxEraseEvent& WXUNUSED(event) )
 {
     // do nothing
 }
@@ -674,9 +661,9 @@ void wxTabbedWindow::OnLButtonDown( wxMouseEvent& event )
     // floats, why?
     int x = (int)event.m_x;
     int y = (int)event.m_y;
-    
+
     int tabNo = HitTest( wxPoint(x,y) );
-    
+
     if ( tabNo != -1 )
     {
         SetActiveTab( tabNo );
@@ -707,53 +694,47 @@ END_EVENT_TABLE()
 //---------------------------------------------------------------------------
 wxPagedWindow::wxPagedWindow()
 
-:   mScrollEventInProgress( FALSE ),
+:   mScrollEventInProgress( false ),
     mTabTrianGap(4),
     mWhiteBrush( wxColour(255,255,255), wxSOLID ),
     mGrayBrush ( wxColour(192,192,192), wxSOLID ),
     mCurentRowOfs( 0 ),
     mAdjustableTitleRowLen( 300 ),
-    mIsDragged    ( FALSE ),
+    mIsDragged    ( false ),
     mDagOrigin    ( 0 ),
-    mCursorChanged( FALSE ),
+    mCursorChanged( false ),
     mResizeCursor ( wxCURSOR_SIZEWE ),
     mNormalCursor ( wxCURSOR_ARROW  )
 {
     mTitleVertGap = 2;
     mTitleHorizGap = 10;
-    mNoVertScroll = TRUE;       // Horizontale Scroll abschalten
-}
-
-//---------------------------------------------------------------------------
-wxPagedWindow::~wxPagedWindow()
-{
-    // nothing (base class handles destruction)
+    mNoVertScroll = true;       // Horizontale Scroll abschalten
 }
 
 //---------------------------------------------------------------------------
 wxFont wxPagedWindow::GetLabelingFont()
 {
     wxFont font;
-    
+
 #ifdef __WINDOWS__
-    font.SetFaceName("Comic Sans MS");
+    font.SetFaceName(_T("Comic Sans MS"));
 #else
     font.SetFamily( wxSWISS );
 #endif
-    
+
     font.SetStyle(40);
     font.SetWeight(40);
     font.SetPointSize( 8 );
-    
+
     return font;
 }
 
 //---------------------------------------------------------------------------
-void wxPagedWindow::OnTabAdded( twTabInfo* pInfo )
+void wxPagedWindow::OnTabAdded( twTabInfo* WXUNUSED(pInfo) )
 {
     int units = GetWholeTabRowLen() / 20;
-    
-    mpTabScroll->SetScrollbar( 0, 1, units, 1, FALSE );
+
+    mpTabScroll->SetScrollbar( 0, 1, units, 1, false );
 }
 
 //---------------------------------------------------------------------------
@@ -771,18 +752,18 @@ wxScrollBar& wxPagedWindow::GetHorizontalScrollBar()
 //---------------------------------------------------------------------------
 int wxPagedWindow::GetWholeTabRowLen()
 {
-    wxNode* pNode = mTabs.First();
-    
+    wxObjectList::compatibility_iterator pNode = mTabs.GetFirst();
+
     int len = 0;
-    
+
     while( pNode )
     {
-        twTabInfo& tab = *((twTabInfo*)(pNode->Data()));
-        
+        twTabInfo& tab = *((twTabInfo*)(pNode->GetData()));
+
         len += tab.mDims.x;
-        pNode = pNode->Next();
+        pNode = pNode->GetNext();
     }
-    
+
     return len;
 }  // wxPagedWindow::GetWholeTabRowLen()
 
@@ -791,40 +772,40 @@ void wxPagedWindow::DrawPaperBar( twTabInfo& tab, int x, int y,
                                   wxBrush& brush, wxPen& pen, wxDC& dc )
 {
     wxPoint poly[4];
-    
+
     // draw organizer-style paper outlet
-    
+
     poly[0].x = x - mTabTrianGap;
     poly[0].y = y;
-    
+
     poly[1].x = x + mTabTrianGap;
     poly[1].y = y + tab.mDims.y-1;
-    
+
     poly[2].x = x + tab.mDims.x - mTabTrianGap;
     poly[2].y = y + tab.mDims.y-1;
-    
+
     poly[3].x = x + tab.mDims.x + mTabTrianGap;
     poly[3].y = y;
-    
+
     dc.SetPen( pen );
     dc.SetBrush( brush );
-    
+
     dc.DrawPolygon( 4, poly );
-    
+
     long w,h;
-    
+
     // set select default font of the window into it's device context
     //dc.SetFont( GetLabelingFont() );
-    
+
     dc.SetTextBackground( brush.GetColour() );
-    
+
     dc.GetTextExtent(tab.mText, &w, &h );
-    
+
     if ( tab.HasImg() )
     {
         wxMemoryDC tmpDc;
         tmpDc.SelectObject( tab.GetImg() );
-        
+
         dc.Blit( x + mTitleHorizGap,
             y + ( tab.mDims.y - tab.ImgHeight() ) / 2,
             tab.ImgWidth(),
@@ -832,12 +813,12 @@ void wxPagedWindow::DrawPaperBar( twTabInfo& tab, int x, int y,
             &tmpDc, 0, 0, wxCOPY
             );
     }
-    
+
     if ( tab.HasText() )
     {
         int tx = x + mTitleHorizGap +
             tab.ImgWidth() + tab.ImageToTxtGap(mImageTextGap);
-        
+
         dc.DrawText( tab.GetText(), tx, y + ( tab.mDims.y - h ) / 2 );
     }
 }  // wxPagedWindow::DrawPaperBar()
@@ -864,8 +845,8 @@ void wxPagedWindow::DrawDecorations( wxDC& dc )
 
     // draw inactive tab title bars frist (left-to-right)
 
-    wxNode* pNode = mTabs.First();
-    int     tabNo = 0;
+    wxObjectList::compatibility_iterator pNode = mTabs.GetFirst();
+    size_t  tabNo = 0;
 
     /* OLD STUFF::
     curX = mTitleRowStart;
@@ -892,58 +873,58 @@ void wxPagedWindow::DrawDecorations( wxDC& dc )
 
     while( pNode )
     {
-        twTabInfo& tab = *((twTabInfo*)(pNode->Data()));
+        twTabInfo& tab = *((twTabInfo*)(pNode->GetData()));
 
         if ( tabNo != mActiveTab )
             DrawPaperBar( tab, curX, curY, mGrayBrush, mBlackPen, tmpDc );
 
         curX += tab.mDims.x;
 
-        pNode = pNode->Next();
+        pNode = pNode->GetNext();
         ++tabNo;
     }
-    
+
     // finally, draw the active tab (white-filled)
-    
-    pNode = mTabs.First();
+
+    pNode = mTabs.GetFirst();
     tabNo = 0;
-    
+
     curX = mTabTrianGap;
-    
+
     while( pNode )
     {
-        twTabInfo& tab = *((twTabInfo*)(pNode->Data()));
-        
+        twTabInfo& tab = *((twTabInfo*)(pNode->GetData()));
+
         if ( tabNo == mActiveTab )
         {
             DrawPaperBar( tab, curX, curY, mWhiteBrush, mBlackPen, tmpDc );
-            
+
             tmpDc.SetPen( mWhitePen );
-            
+
             tmpDc.DrawLine( curX - mTabTrianGap+1, curY,
                 curX + tab.mDims.x + mTabTrianGap, curY );
             break;
         }
         curX += tab.mDims.x;
-        
-        pNode = pNode->Next();
+
+        pNode = pNode->GetNext();
         ++tabNo;
     }
-    
+
     // back to initial device origin
-    
+
     tmpDc.SetDeviceOrigin( 0, 0 );
-    
+
     // draw resize-hint-stick
-    
+
     curX = mTitleRowLen - 6;
-    
+
     DrawShadedRect( curX+0, 0+0, 6,   mTitleHeight,   mGrayPen,  mBlackPen, tmpDc );
     DrawShadedRect( curX+1, 0+1, 6-2, mTitleHeight-2, mWhitePen, mDarkPen,  tmpDc );
     DrawShadedRect( curX+2, 0+2, 6-4, mTitleHeight-4, mGrayPen,  mGrayPen,  tmpDc );
-    
-    
-    
+
+
+
     dc.Blit( mTitleRowStart,
         height - mVertGap - BORDER_SZ - mTitleHeight,
         mTitleRowLen, mTitleHeight,
@@ -960,71 +941,71 @@ int wxPagedWindow::HitTest( const wxPoint& pos )
 void wxPagedWindow::RecalcLayout(bool andRepaint)
 {
     mTitleRowLen = mAdjustableTitleRowLen;
-    
+
     if ( int(mpTabScroll) == -1 ) return;
-    
+
     // scroll bars should be created after Create() for this window is called
     if ( !mpTabScroll )
     {
         mpTabScroll   =
-            new wxScrollBar( this, -1, wxDefaultPosition, wxDefaultSize, wxSB_HORIZONTAL );
-        
+            new wxScrollBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSB_HORIZONTAL );
+
         mpHorizScroll =
-            new wxScrollBar( this, -1, wxDefaultPosition, wxDefaultSize, wxSB_HORIZONTAL );
+            new wxScrollBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSB_HORIZONTAL );
         if (!mNoVertScroll)       // Vertical Scroll (Original)
-            mpVertScroll = new wxScrollBar( this, -1, wxDefaultPosition, wxDefaultSize, wxSB_VERTICAL );
+            mpVertScroll = new wxScrollBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSB_VERTICAL );
     }
-    
+
     {
         int units = GetWholeTabRowLen() / 20;
-        
-        mpTabScroll->SetScrollbar( 0, 1, units, 1, FALSE );
+
+        mpTabScroll->SetScrollbar( 0, 1, units, 1, false );
     }
-    
+
     // resetup position of the active tab
-    
+
     int thumbLen = 16; // FOR NOW:: hardcoded
-    
+
     int width, height;
     GetClientSize( &width, &height );
-    
+
     mTitleHeight = thumbLen;
-    
+
     int curX = mHorizGap + BORDER_SZ;
     int curY = mVertGap  + BORDER_SZ;
-    
+
     int xSize;
     if (!mNoVertScroll)       // Vertical Scroll (Original)
         xSize = width  - mHorizGap*2 - BORDER_SZ*2 - thumbLen;
     else
         xSize = width  - mHorizGap*2 - BORDER_SZ*2;
-    
+
     int ySize = height - mVertGap*2  - BORDER_SZ*2 - mTitleHeight;
-    
+
     SizeTabs( curX, curY, xSize, ySize, andRepaint );
-    
+
     // setup title bar LINES's horizontal scroll bar
-    
+
     curY = height - mVertGap - BORDER_SZ - thumbLen;
-    
+
     mpTabScroll->SetSize( curX, curY, thumbLen*2, thumbLen );
-    
+
     // setup view's HORIZONTAL scroll bar
     curX += thumbLen*2;
-    
+
     mTitleRowStart = curX;
     mFirstTitleGap = curX + mCurentRowOfs + mTabTrianGap;
-    
+
     mTitleRowLen = wxMin( mAdjustableTitleRowLen,
         width - mHorizGap - BORDER_SZ - thumbLen*4 - curX );
-    
+
     curX += mTitleRowLen;
-    
+
     if (!mNoVertScroll)       // Vertical Scroll (Original)
         mpHorizScroll->SetSize( curX, curY,width - curX - mHorizGap - BORDER_SZ - thumbLen, thumbLen );
     else
         mpHorizScroll->SetSize( curX, curY,width - curX - mHorizGap - BORDER_SZ-4, thumbLen );
-    
+
     // setup view's VERTICAL scroll bar
     if (!mNoVertScroll)       // Vertical Scroll (Original)
     {
@@ -1033,40 +1014,40 @@ void wxPagedWindow::RecalcLayout(bool andRepaint)
         mpVertScroll->SetSize( curX, curY, thumbLen,height - curY - mVertGap - BORDER_SZ - thumbLen);
     }
     // layout tab title bars
-    
+
     mLayoutType = wxTITLE_IMG_AND_TEXT;
-    
-    wxNode* pNode = mTabs.First();
-    
+
+    wxObjectList::compatibility_iterator pNode = mTabs.GetFirst();
+
     while( pNode )
     {
-        twTabInfo& tab = *((twTabInfo*)(pNode->Data()));
-        
+        twTabInfo& tab = *((twTabInfo*)(pNode->GetData()));
+
         wxWindowDC dc(this);
-        
+
         long w,h;
-        
+
         // set select default font of the window into it's device context
         //dc.SetFont( GetLabelingFont() );
         dc.GetTextExtent(tab.mText, &w, &h );
-        
+
         tab.mDims.x = w + tab.ImageToTxtGap(mImageTextGap) +
             tab.ImgWidth() + mTitleHorizGap*2;
-        
+
         tab.mDims.y  = mTitleHeight;
-        
-        pNode = pNode->Next();
+
+        pNode = pNode->GetNext();
     }
-    
+
     // disable title-bar scroller if there's nowhere to scroll to
-    
+
     mpTabScroll->Enable( mTitleRowLen < GetWholeTabRowLen() || mCurentRowOfs < 0  );
 }
 
 //---------------------------------------------------------------------------
 // event handlers
 //---------------------------------------------------------------------------
-void wxPagedWindow::OnPaint( wxPaintEvent& event )
+void wxPagedWindow::OnPaint( wxPaintEvent& WXUNUSED(event) )
 {
     wxPaintDC dc(this);
     DrawDecorations( dc );
@@ -1083,11 +1064,11 @@ void wxPagedWindow::OnLButtonDown( wxMouseEvent& event )
 {
     if ( mCursorChanged )
     {
-        mIsDragged = TRUE;
+        mIsDragged = true;
         mDagOrigin = event.m_x;
-        
+
         mOriginalTitleRowLen = mAdjustableTitleRowLen;
-        
+
         CaptureMouse();
     }
     else
@@ -1097,14 +1078,14 @@ void wxPagedWindow::OnLButtonDown( wxMouseEvent& event )
 }  // wxPagedWindow::OnLButtonDown()
 
 //---------------------------------------------------------------------------
-void wxPagedWindow::OnLButtonUp( wxMouseEvent& event )
+void wxPagedWindow::OnLButtonUp( wxMouseEvent& WXUNUSED(event) )
 {
     if ( mIsDragged )
     {
-        mIsDragged     = FALSE;
-        mCursorChanged = FALSE;
+        mIsDragged     = false;
+        mCursorChanged = false;
         SetCursor( mNormalCursor );
-        
+
         ReleaseMouse();
     }
 } // wxPagedWindow::OnLButtonUp()
@@ -1114,12 +1095,12 @@ void wxPagedWindow::OnMouseMove( wxMouseEvent& event )
 {
     int width, height;
     GetClientSize( &width, &height );
-    
+
     if ( !mIsDragged )
     {
         int y = height - mVertGap - BORDER_SZ - mTitleHeight;
         int x = mTitleRowStart + mTitleRowLen - 6;
-        
+
         if ( event.m_x >= x && event.m_y >= y &&
             event.m_x <  x + 6               &&
             event.m_y <  y + mTitleHeight
@@ -1128,16 +1109,16 @@ void wxPagedWindow::OnMouseMove( wxMouseEvent& event )
             if ( !mCursorChanged )
             {
                 SetCursor( mResizeCursor );
-                
-                mCursorChanged = TRUE;
+
+                mCursorChanged = true;
             }
         }
         else
             if ( mCursorChanged )
             {
                 SetCursor( mNormalCursor );
-                
-                mCursorChanged = FALSE;
+
+                mCursorChanged = false;
             }
     }
     else
@@ -1145,15 +1126,15 @@ void wxPagedWindow::OnMouseMove( wxMouseEvent& event )
         if ( mIsDragged )
         {
             mAdjustableTitleRowLen = mOriginalTitleRowLen + ( event.m_x - mDagOrigin );
-            
+
             // FOR NOW:: fixed
             if ( mAdjustableTitleRowLen < 6 ) mAdjustableTitleRowLen = 6;
-            
+
             wxWindowDC dc(this);
             DrawDecorations( dc );
-            
-            RecalcLayout(FALSE);
-            
+
+            RecalcLayout(false);
+
             //Refresh();
         }
     }
@@ -1166,16 +1147,16 @@ void wxPagedWindow::OnScroll( wxScrollEvent& event )
     // wxMessageBox("wxPagedWindow::OnScroll","-I->");
     if ( pSender == mpTabScroll )
     {
-        
+
         int maxUnits = GetWholeTabRowLen() / 20;
-        
+
         mCurentRowOfs = -event.GetPosition()*maxUnits;
-        
+
         mFirstTitleGap = mTitleRowStart + mCurentRowOfs + mTabTrianGap;
-        
+
         // let' it automatically disable itself if it's time
         mpTabScroll->Enable( mTitleRowLen < GetWholeTabRowLen() || mCurentRowOfs < 0 );
-        
+
         // repaint title bars
         wxWindowDC dc(this);
         DrawDecorations( dc );
@@ -1184,16 +1165,16 @@ void wxPagedWindow::OnScroll( wxScrollEvent& event )
     {
         if ( !mScrollEventInProgress )
         {
-            mScrollEventInProgress = TRUE;
-            
+            mScrollEventInProgress = true;
+
             GetActiveTab()->GetEventHandler()->ProcessEvent( event );
         }
         else
         {
             // event bounced back to us, from here we
             // know that it has traveled the loop - thus it's processed!
-            
-            mScrollEventInProgress = FALSE;
+
+            mScrollEventInProgress = false;
         }
     }
 }  // wxPagedWindow::OnScroll()