]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/tbar95.cpp
fixed missing Idle events
[wxWidgets.git] / src / msw / tbar95.cpp
index 836a79ee2f6ead96bc210745ed5c7c3c319fea73..50b56666d4db1caa0b3372899459a5e6d556eb89 100644 (file)
@@ -5,8 +5,8 @@
 // Modified by:
 // Created:     04/01/98
 // RCS-ID:      $Id$
 // Modified by:
 // Created:     04/01/98
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:     wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
 /////////////////////////////////////////////////////////////////////////////
 
 // ============================================================================
@@ -59,7 +59,6 @@
 
 #endif // __TWIN32__
 
 
 #endif // __TWIN32__
 
-#include "wx/msw/dib.h"
 #include "wx/app.h"         // for GetComCtl32Version
 
 #if defined(__MWERKS__) && defined(__WXMSW__)
 #include "wx/app.h"         // for GetComCtl32Version
 
 #if defined(__MWERKS__) && defined(__WXMSW__)
@@ -238,7 +237,7 @@ bool wxToolBar::Create(wxWindow *parent,
         return FALSE;
 
     // MSW-specific initialisation
         return FALSE;
 
     // MSW-specific initialisation
-    if ( !MSWCreateToolbar(pos, size, style) )
+    if ( !MSWCreateToolbar(pos, size) )
         return FALSE;
 
     // set up the colors and fonts
         return FALSE;
 
     // set up the colors and fonts
@@ -248,11 +247,9 @@ bool wxToolBar::Create(wxWindow *parent,
     return TRUE;
 }
 
     return TRUE;
 }
 
-bool wxToolBar::MSWCreateToolbar(const wxPoint& pos,
-                                 const wxSize& size,
-                                 long style)
+bool wxToolBar::MSWCreateToolbar(const wxPoint& pos, const wxSize& size)
 {
 {
-    if ( !MSWCreateControl(TOOLBARCLASSNAME, _T(""), pos, size, style) )
+    if ( !MSWCreateControl(TOOLBARCLASSNAME, _T(""), pos, size) )
         return FALSE;
 
     // toolbar-specific post initialisation
         return FALSE;
 
     // toolbar-specific post initialisation
@@ -276,7 +273,7 @@ void wxToolBar::Recreate()
 
     UnsubclassWin();
 
 
     UnsubclassWin();
 
-    if ( !MSWCreateToolbar(pos, size, GetWindowStyle()) )
+    if ( !MSWCreateToolbar(pos, size) )
     {
         // what can we do?
         wxFAIL_MSG( _T("recreating the toolbar failed") );
     {
         // what can we do?
         wxFAIL_MSG( _T("recreating the toolbar failed") );
@@ -472,9 +469,19 @@ bool wxToolBar::Realize()
 
     const bool isVertical = HasFlag(wxTB_VERTICAL);
 
 
     const bool isVertical = HasFlag(wxTB_VERTICAL);
 
+    // delete all old buttons, if any
+    for ( size_t pos = 0; pos < m_nButtons; pos++ )
+    {
+        if ( !::SendMessage(GetHwnd(), TB_DELETEBUTTON, 0, 0) )
+        {
+            wxLogDebug(wxT("TB_DELETEBUTTON failed"));
+        }
+    }
+
     // First, add the bitmap: we use one bitmap for all toolbar buttons
     // ----------------------------------------------------------------
 
     // First, add the bitmap: we use one bitmap for all toolbar buttons
     // ----------------------------------------------------------------
 
+    wxToolBarToolsList::Node *node;
     int bitmapId = 0;
 
     wxSize sizeBmp;
     int bitmapId = 0;
 
     wxSize sizeBmp;
@@ -531,9 +538,7 @@ bool wxToolBar::Realize()
         // the number of buttons (not separators)
         int nButtons = 0;
 
         // the number of buttons (not separators)
         int nButtons = 0;
 
-        for ( wxToolBarToolsList::Node *node = m_tools.GetFirst();
-              node;
-              node = node->GetNext() )
+        for ( node = m_tools.GetFirst(); node; node = node->GetNext() )
         {
             wxToolBarToolBase *tool = node->GetData();
             if ( tool->IsButton() )
         {
             wxToolBarToolBase *tool = node->GetData();
             if ( tool->IsButton() )
@@ -613,15 +618,6 @@ bool wxToolBar::Realize()
 
                 bitmapId = m_nButtons;
             }
 
                 bitmapId = m_nButtons;
             }
-
-            // Now delete all the buttons
-            for ( size_t pos = 0; pos < m_nButtons; pos++ )
-            {
-                if ( !::SendMessage(GetHwnd(), TB_DELETEBUTTON, 0, 0) )
-                {
-                    wxLogDebug(wxT("TB_DELETEBUTTON failed"));
-                }
-            }
         }
 
         if ( addBitmap ) // no old bitmap or we can't replace it
         }
 
         if ( addBitmap ) // no old bitmap or we can't replace it
@@ -655,9 +651,7 @@ bool wxToolBar::Realize()
 
     bool lastWasRadio = FALSE;
     int i = 0;
 
     bool lastWasRadio = FALSE;
     int i = 0;
-    for ( wxToolBarToolsList::Node *node = m_tools.GetFirst();
-          node;
-          node = node->GetNext() )
+    for ( node = m_tools.GetFirst(); node; node = node->GetNext() )
     {
         wxToolBarToolBase *tool = node->GetData();
 
     {
         wxToolBarToolBase *tool = node->GetData();
 
@@ -1200,7 +1194,7 @@ bool wxToolBar::HandleSize(WXWPARAM wParam, WXLPARAM lParam)
                 // FIXME: 6 is hardcoded separator line height...
                 //h += 6;
                 if (HasFlag(wxTB_NODIVIDER))
                 // FIXME: 6 is hardcoded separator line height...
                 //h += 6;
                 if (HasFlag(wxTB_NODIVIDER))
-                    h += 3;
+                    h += 4;
                 else
                     h += 6;
                 h *= m_maxRows;
                 else
                     h += 6;
                 h *= m_maxRows;