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/branches/WX_2_8_BRANCH@58446 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2009-01-26 23:32:16 +00:00
parent 0e15ad7d4d
commit e31dc22ee4
3 changed files with 27 additions and 0 deletions

View File

@@ -147,6 +147,9 @@ wxMSW:
- Fix handling of abandoned mutexes in wxMutex (David Heffernan).
- Avoid warnings about deprecated localtime with MSVC8/9 (Chris Stankevitz).
- Fixed invisible CHM tooltip text bug when window text colour is black.
- Automatically adjust toolbar's tool size if the provided bitmaps
don't fit into the default size.
wxMSW/CE:

View File

@@ -142,6 +142,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

@@ -574,6 +574,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(wxSize(bmp.GetWidth(), bmp.GetHeight()));
}
if ( s != orig_s )
SetToolBitmapSize(s);
}
bool wxToolBar::Realize()
{
const size_t nTools = GetToolsCount();
@@ -581,6 +598,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