Automatically adjust toolbar's tool size if the provided bitmaps

don't fit into the default size.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58444 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2009-01-26 23:20:17 +00:00
parent 51181d2911
commit 26dd7154d5
2 changed files with 24 additions and 0 deletions

View 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)

View 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