]> git.saurik.com Git - wxWidgets.git/blobdiff - src/os2/toolbar.cpp
using backward compatible calls for HitTest hack
[wxWidgets.git] / src / os2 / toolbar.cpp
index 1d296bda352325ba9a4cd6ea23543287780b985f..ea8d5f8480b4421105eab0ffdb2daac8db377319 100644 (file)
@@ -84,7 +84,7 @@ public:
 // wxWin macros
 // ----------------------------------------------------------------------------
 
 // wxWin macros
 // ----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarBase)
+IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl)
 
 BEGIN_EVENT_TABLE(wxToolBar, wxToolBarBase)
     EVT_SIZE(wxToolBar::OnSize)
 
 BEGIN_EVENT_TABLE(wxToolBar, wxToolBarBase)
     EVT_SIZE(wxToolBar::OnSize)
@@ -366,7 +366,7 @@ bool wxToolBar::Create(
         wxClientDC                  vDC(this);
 
         vDC.SetFont(GetFont());
         wxClientDC                  vDC(this);
 
         vDC.SetFont(GetFont());
-        vDC.GetTextExtent( "XXXX"
+        vDC.GetTextExtent( wxT("XXXX")
                           ,&m_vTextX
                           ,&m_vTextY
                          );
                           ,&m_vTextX
                           ,&m_vTextY
                          );
@@ -379,7 +379,6 @@ bool wxToolBar::Create(
     int                             nY      = rPos.y;
     int                             nWidth  = rSize.x;
     int                             nHeight = rSize.y;
     int                             nY      = rPos.y;
     int                             nWidth  = rSize.x;
     int                             nHeight = rSize.y;
-    wxFrame*                        pFrame = wxDynamicCast(GetParent(), wxFrame);
 
     if (lStyle & wxTB_HORIZONTAL)
     {
 
     if (lStyle & wxTB_HORIZONTAL)
     {
@@ -435,8 +434,6 @@ bool wxToolBar::Realize()
 {
     int                             nMaxToolWidth  = 0;
     int                             nMaxToolHeight = 0;
 {
     int                             nMaxToolWidth  = 0;
     int                             nMaxToolHeight = 0;
-    int                             nX;
-    int                             nY;
 
     m_nCurrentRowsOrColumns = 0;
     m_vLastX               = m_xMargin;
 
     m_nCurrentRowsOrColumns = 0;
     m_vLastX               = m_xMargin;
@@ -448,13 +445,13 @@ bool wxToolBar::Realize()
     //
     // Find the maximum tool width and height
     //
     //
     // Find the maximum tool width and height
     //
-    wxToolBarToolsList::Node*       pNode = m_tools.GetFirst();
+    wxToolBarToolsList::compatibility_iterator     node = m_tools.GetFirst();
 
 
-    while (pNode )
+    while (node )
     {
     {
-        wxToolBarTool*              pTool = (wxToolBarTool *)pNode->GetData();
+        wxToolBarTool*              pTool = (wxToolBarTool *)node->GetData();
 
 
-        if (HasFlag(wxTB_TEXT) && !pTool->GetLabel().IsEmpty())
+        if (HasFlag(wxTB_TEXT) && !pTool->GetLabel().empty())
         {
             //
             // Set the height according to the font and the border size
         {
             //
             // Set the height according to the font and the border size
@@ -473,7 +470,7 @@ bool wxToolBar::Realize()
             if (pTool->GetHeight() > nMaxToolHeight)
                 nMaxToolHeight = pTool->GetHeight();
         }
             if (pTool->GetHeight() > nMaxToolHeight)
                 nMaxToolHeight = pTool->GetHeight();
         }
-        pNode = pNode->GetNext();
+        node = node->GetNext();
     }
 
     wxCoord                         vTbWidth = 0L;
     }
 
     wxCoord                         vTbWidth = 0L;
@@ -500,10 +497,10 @@ bool wxToolBar::Realize()
 
     int                             nSeparatorSize = m_toolSeparation;
 
 
     int                             nSeparatorSize = m_toolSeparation;
 
-    pNode = m_tools.GetFirst();
-    while (pNode)
+    node = m_tools.GetFirst();
+    while (node)
     {
     {
-        wxToolBarTool*              pTool = (wxToolBarTool *)pNode->GetData();
+        wxToolBarTool*              pTool = (wxToolBarTool *)node->GetData();
 
         if (pTool->IsSeparator())
         {
 
         if (pTool->IsSeparator())
         {
@@ -570,7 +567,7 @@ bool wxToolBar::Realize()
         if (m_vLastY > m_maxHeight)
             m_maxHeight = m_vLastY;
 
         if (m_vLastY > m_maxHeight)
             m_maxHeight = m_vLastY;
 
-        pNode = pNode->GetNext();
+        node = node->GetNext();
     }
 
     if ( GetWindowStyleFlag() & wxTB_HORIZONTAL )
     }
 
     if ( GetWindowStyleFlag() & wxTB_HORIZONTAL )
@@ -606,24 +603,22 @@ void wxToolBar::OnPaint (
     nCount++;
 
     ::WinFillRect(vDc.GetHPS(), &vDc.m_vRclPaint, GetBackgroundColour().GetPixel());
     nCount++;
 
     ::WinFillRect(vDc.GetHPS(), &vDc.m_vRclPaint, GetBackgroundColour().GetPixel());
-    for ( wxToolBarToolsList::Node* pNode = m_tools.GetFirst();
-          pNode;
-          pNode = pNode->GetNext() )
+    for ( wxToolBarToolsList::compatibility_iterator node = m_tools.GetFirst();
+          node;
+          node = node->GetNext() )
     {
     {
-        wxToolBarTool*              pTool = (wxToolBarTool*)pNode->GetData();
+        wxToolBarTool*              pTool = (wxToolBarTool*)node->GetData();
 
         if (pTool->IsButton() )
             DrawTool(vDc, pTool);
         if (pTool->IsSeparator())
         {
 
         if (pTool->IsButton() )
             DrawTool(vDc, pTool);
         if (pTool->IsSeparator())
         {
-            wxPen                   vDarkGreyPen( wxColour(85, 85, 85)
-                                                 ,1
-                                                 ,wxSOLID
-                                                );
-            int                     nX;
-            int                     nY;
-            int                     nHeight = 0;
-            int                     nWidth = 0;
+            wxColour gray85(85, 85, 85);
+            wxPen vDarkGreyPen( gray85, 1, wxSOLID );
+            int nX;
+            int nY;
+            int nHeight = 0;
+            int nWidth = 0;
 
             vDc.SetPen(vDarkGreyPen);
             if (HasFlag(wxTB_TEXT))
 
             vDc.SetPen(vDarkGreyPen);
             if (HasFlag(wxTB_TEXT))
@@ -755,7 +750,7 @@ void wxToolBar::OnMouseEvent(
                          );
             m_nCurrentTool = pTool->GetId();
             OnMouseEnter(m_nCurrentTool);
                          );
             m_nCurrentTool = pTool->GetId();
             OnMouseEnter(m_nCurrentTool);
-            if (!pTool->GetShortHelp().IsEmpty())
+            if (!pTool->GetShortHelp().empty())
             {
                 if (m_pToolTip)
                     delete m_pToolTip;
             {
                 if (m_pToolTip)
                     delete m_pToolTip;
@@ -831,23 +826,12 @@ void wxToolBar::DrawTool(
 , wxToolBarToolBase*                pToolBase
 )
 {
 , wxToolBarToolBase*                pToolBase
 )
 {
-    wxToolBarTool*                  pTool = (wxToolBarTool *)pToolBase;
-    wxPen                           vDarkGreyPen( wxColour( 85,85,85 )
-                                                 ,1
-                                                 ,wxSOLID
-                                                );
-    wxPen                           vWhitePen( wxT("WHITE")
-                                              ,1
-                                              ,wxSOLID
-                                             );
-    wxPen                           vBlackPen( wxT("BLACK")
-                                              ,1
-                                              ,wxSOLID
-                                             );
-    wxBitmap                        vBitmap = pTool->GetNormalBitmap();
-    bool                            bUseMask = FALSE;
-    wxMask*                         pMask = NULL;
-    RECTL                           vRect;
+    wxToolBarTool* pTool = (wxToolBarTool *)pToolBase;
+    wxColour gray85( 85,85,85 );
+    wxPen vDarkGreyPen( gray85, 1, wxSOLID );
+    wxBitmap vBitmap = pTool->GetNormalBitmap();
+    bool bUseMask = FALSE;
+    wxMask* pMask = NULL;
 
     PrepareDC(rDc);
 
 
     PrepareDC(rDc);
 
@@ -862,7 +846,7 @@ void wxToolBar::DrawTool(
         LowerTool(pTool, FALSE);
         if (!pTool->IsEnabled())
         {
         LowerTool(pTool, FALSE);
         if (!pTool->IsEnabled())
         {
-            wxColour                vColor("GREY");
+            wxColour vColor(wxT("GREY"));
 
             rDc.SetTextForeground(vColor);
             if (!pTool->GetDisabledBitmap().Ok())
 
             rDc.SetTextForeground(vColor);
             if (!pTool->GetDisabledBitmap().Ok())
@@ -877,9 +861,7 @@ void wxToolBar::DrawTool(
         }
         else
         {
         }
         else
         {
-            wxColour                vColor("BLACK");
-
-            rDc.SetTextForeground(vColor);
+            rDc.SetTextForeground(*wxBLACK);
             rDc.DrawBitmap( vBitmap
                            ,pTool->m_vX
                            ,pTool->m_vY
             rDc.DrawBitmap( vBitmap
                            ,pTool->m_vX
                            ,pTool->m_vY
@@ -922,7 +904,7 @@ void wxToolBar::DrawTool(
     }
     else
     {
     }
     else
     {
-        wxColour                    vColor("GREY");
+        wxColour vColor(wxT("GREY"));
 
         LowerTool(pTool);
         rDc.SetTextForeground(vColor);
 
         LowerTool(pTool);
         rDc.SetTextForeground(vColor);
@@ -974,18 +956,16 @@ wxToolBarToolBase* wxToolBar::FindToolForPosition(
 , wxCoord                           vY
 ) const
 {
 , wxCoord                           vY
 ) const
 {
-    wxCoord                         vTextX = 0;
-    wxCoord                         vTextY = 0;
     wxCoord                         vTBarHeight = 0;
 
     GetSize( NULL
             ,&vTBarHeight
            );
     vY = vTBarHeight - vY;
     wxCoord                         vTBarHeight = 0;
 
     GetSize( NULL
             ,&vTBarHeight
            );
     vY = vTBarHeight - vY;
-    wxToolBarToolsList::Node* pNode = m_tools.GetFirst();
-    while (pNode)
+    wxToolBarToolsList::compatibility_iterator node = m_tools.GetFirst();
+    while (node)
     {
     {
-        wxToolBarTool*              pTool = (wxToolBarTool *)pNode->GetData();
+        wxToolBarTool*              pTool = (wxToolBarTool *)node->GetData();
 
         if (HasFlag(wxTB_TEXT) && !pTool->GetLabel().IsNull())
         {
 
         if (HasFlag(wxTB_TEXT) && !pTool->GetLabel().IsNull())
         {
@@ -1007,7 +987,7 @@ wxToolBarToolBase* wxToolBar::FindToolForPosition(
                 return pTool;
             }
         }
                 return pTool;
             }
         }
-        pNode = pNode->GetNext();
+        node = node->GetNext();
     }
     return (wxToolBarToolBase *)NULL;
 } // end of wxToolBar::FindToolForPosition
     }
     return (wxToolBarToolBase *)NULL;
 } // end of wxToolBar::FindToolForPosition
@@ -1064,29 +1044,18 @@ void wxToolBar::SpringUpButton(
 // private helpers
 // ----------------------------------------------------------------------------
 
 // private helpers
 // ----------------------------------------------------------------------------
 
-void wxToolBar::LowerTool (
-  wxToolBarToolBase*                pToolBase
-, bool                              bLower
-)
+void wxToolBar::LowerTool ( wxToolBarToolBase* pToolBase,
+                            bool               bLower )
 {
     wxToolBarTool*                  pTool = (wxToolBarTool*)pToolBase;
 {
     wxToolBarTool*                  pTool = (wxToolBarTool*)pToolBase;
-    wxCoord                         vX;
-    wxCoord                         vY;
-    wxCoord                         vWidth;
-    wxCoord                         vHeight;
-    wxPen                           vDarkGreyPen( wxColour(85, 85, 85)
-                                                 ,1
-                                                 ,wxSOLID
-                                                );
-    wxPen                           vWhitePen( "WHITE"
-                                              ,1
-                                              ,wxSOLID
-                                             );
-    wxPen                           vClearPen( GetBackgroundColour()
-                                              ,1
-                                              ,wxSOLID
-                                             );
-    wxClientDC                      vDC(this);
+    wxCoord vX;
+    wxCoord vY;
+    wxCoord vWidth;
+    wxCoord vHeight;
+    wxColour gray85( 85,85,85 );
+    wxPen vDarkGreyPen( gray85, 1, wxSOLID );
+    wxPen vClearPen( GetBackgroundColour(), 1, wxSOLID );
+    wxClientDC vDC(this);
 
     if (!pTool)
         return;
 
     if (!pTool)
         return;
@@ -1100,7 +1069,7 @@ void wxToolBar::LowerTool (
     if (!HasFlag(wxTB_FLAT))
         return;
 
     if (!HasFlag(wxTB_FLAT))
         return;
 
-    if (HasFlag(wxTB_TEXT) && !pTool->GetLabel().IsEmpty())
+    if (HasFlag(wxTB_TEXT) && !pTool->GetLabel().empty())
     {
         if (pTool->GetWidth() > m_vTextX)
         {
     {
         if (pTool->GetWidth() > m_vTextX)
         {
@@ -1124,7 +1093,7 @@ void wxToolBar::LowerTool (
     }
     if (bLower)
     {
     }
     if (bLower)
     {
-        vDC.SetPen(vWhitePen);
+        vDC.SetPen(*wxWHITE_PEN);
         vDC.DrawLine(vX + vWidth, vY + vHeight, vX, vY + vHeight);
         vDC.DrawLine(vX + vWidth, vY, vX + vWidth, vY + vHeight);
         vDC.SetPen(vDarkGreyPen);
         vDC.DrawLine(vX + vWidth, vY + vHeight, vX, vY + vHeight);
         vDC.DrawLine(vX + vWidth, vY, vX + vWidth, vY + vHeight);
         vDC.SetPen(vDarkGreyPen);
@@ -1141,29 +1110,18 @@ void wxToolBar::LowerTool (
     }
 } // end of WinGuiBase_CToolBarTool::LowerTool
 
     }
 } // end of WinGuiBase_CToolBarTool::LowerTool
 
-void wxToolBar::RaiseTool (
-  wxToolBarToolBase*                pToolBase
-, bool                              bRaise
-)
+void wxToolBar::RaiseTool ( wxToolBarToolBase* pToolBase,
+                            bool bRaise )
 {
 {
-    wxToolBarTool*                  pTool = (wxToolBarTool*)pToolBase;
-    wxCoord                         vX;
-    wxCoord                         vY;
-    wxCoord                         vWidth;
-    wxCoord                         vHeight;
-    wxPen                           vDarkGreyPen( wxColour(85, 85, 85)
-                                                 ,1
-                                                 ,wxSOLID
-                                                );
-    wxPen                           vWhitePen( "WHITE"
-                                              ,1
-                                              ,wxSOLID
-                                             );
-    wxPen                           vClearPen( GetBackgroundColour()
-                                              ,1
-                                              ,wxSOLID
-                                             );
-    wxClientDC                      vDC(this);
+    wxToolBarTool* pTool = (wxToolBarTool*)pToolBase;
+    wxCoord vX;
+    wxCoord vY;
+    wxCoord vWidth;
+    wxCoord vHeight;
+    wxColour gray85( 85,85,85 );
+    wxPen vDarkGreyPen( gray85, 1, wxSOLID );
+    wxPen vClearPen( GetBackgroundColour(), 1, wxSOLID );
+    wxClientDC vDC(this);
 
     if (!pTool)
         return;
 
     if (!pTool)
         return;
@@ -1180,7 +1138,7 @@ void wxToolBar::RaiseTool (
     if (!HasFlag(wxTB_FLAT))
         return;
 
     if (!HasFlag(wxTB_FLAT))
         return;
 
-    if (HasFlag(wxTB_TEXT) && !pTool->GetLabel().IsEmpty())
+    if (HasFlag(wxTB_TEXT) && !pTool->GetLabel().empty())
     {
         if (pTool->GetWidth() > m_vTextX)
         {
     {
         if (pTool->GetWidth() > m_vTextX)
         {
@@ -1207,7 +1165,7 @@ void wxToolBar::RaiseTool (
         vDC.SetPen(vDarkGreyPen);
         vDC.DrawLine(vX + vWidth, vY + vHeight, vX, vY + vHeight);
         vDC.DrawLine(vX + vWidth, vY, vX + vWidth, vY + vHeight);
         vDC.SetPen(vDarkGreyPen);
         vDC.DrawLine(vX + vWidth, vY + vHeight, vX, vY + vHeight);
         vDC.DrawLine(vX + vWidth, vY, vX + vWidth, vY + vHeight);
-        vDC.SetPen(vWhitePen);
+        vDC.SetPen(*wxWHITE_PEN);
         vDC.DrawLine(vX, vY, vX + vWidth, vY);
         vDC.DrawLine(vX, vY + vHeight, vX, vY);
     }
         vDC.DrawLine(vX, vY, vX + vWidth, vY);
         vDC.DrawLine(vX, vY + vHeight, vX, vY);
     }