]> git.saurik.com Git - wxWidgets.git/commitdiff
Automatically adjust toolbar's tool size if the provided bitmaps
authorVáclav Slavík <vslavik@fastmail.fm>
Mon, 26 Jan 2009 23:20:17 +0000 (23:20 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Mon, 26 Jan 2009 23:20:17 +0000 (23:20 +0000)
don't fit into the default size.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58444 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/toolbar.h
src/msw/toolbar.cpp

index ce467dad50a33ca585244f0a457f157493fbb46c..7a689eba01d401d620a3986988096f3314a078ee 100644 (file)
@@ -146,6 +146,9 @@ protected:
     wxToolBarToolBase *m_pInTool;
 
 private:
+    // makes sure tool bitmap size is sufficient for all tools
+    void AdjustToolBitmapSize();
+
     DECLARE_EVENT_TABLE()
     DECLARE_DYNAMIC_CLASS(wxToolBar)
     DECLARE_NO_COPY_CLASS(wxToolBar)
index 13d07891169ba434c8d657022c6a7a6053f003e8..c02310686d90d465d49cb5eefc98ef7b560abeb6 100644 (file)
@@ -629,6 +629,23 @@ void wxToolBar::CreateDisabledImageList()
     }
 }
 
+void wxToolBar::AdjustToolBitmapSize()
+{
+    wxSize s(m_defaultWidth, m_defaultHeight);
+    const wxSize orig_s(s);
+
+    for ( wxToolBarToolsList::const_iterator i = m_tools.begin();
+          i != m_tools.end();
+          ++i )
+    {
+        const wxBitmap& bmp = (*i)->GetNormalBitmap();
+        s.IncTo(bmp.GetSize());
+    }
+
+    if ( s != orig_s )
+        SetToolBitmapSize(s);
+}
+
 bool wxToolBar::Realize()
 {
     const size_t nTools = GetToolsCount();
@@ -636,6 +653,10 @@ bool wxToolBar::Realize()
         // nothing to do
         return true;
 
+    // make sure tool size is larger enough for all all bitmaps to fit in
+    // (this is consistent with what other ports do):
+    AdjustToolBitmapSize();
+
 #ifdef wxREMAP_BUTTON_COLOURS
     // don't change the values of these constants, they can be set from the
     // user code via wxSystemOptions