Fix for broken BCC

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14931 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Mattia Barbon 2002-04-03 19:32:31 +00:00
parent a323d3bda7
commit 8f69665389

View File

@ -79,16 +79,23 @@ const wxIcon& wxIconBundle::GetIcon( const wxSize& size ) const
size_t i, max = m_icons.GetCount(); size_t i, max = m_icons.GetCount();
wxCoord sysX = wxSystemSettings::GetMetric( wxSYS_ICON_X ), wxCoord sysX = wxSystemSettings::GetMetric( wxSYS_ICON_X ),
sysY = wxSystemSettings::GetMetric( wxSYS_ICON_Y ); sysY = wxSystemSettings::GetMetric( wxSYS_ICON_Y );
wxIcon* sysIcon = 0;
for( i = 0; i < max; ++i ) wxIcon *sysIcon = 0;
// temp. variable needed to fix Borland C++ 5.5.1 problem
// with passing a return value through two functions
wxIcon *tmp;
for( i = 0; i < max; i++ )
{ {
if( !m_icons[i].Ok() ) if( !m_icons[i].Ok() )
continue; continue;
wxCoord sx = m_icons[i].GetWidth(), sy = m_icons[i].GetHeight(); wxCoord sx = m_icons[i].GetWidth(), sy = m_icons[i].GetHeight();
// requested size // requested size
if( sx == size.x && sy == size.y ) if( sx == size.x && sy == size.y )
return m_icons[i]; {
tmp = &m_icons[i]; // fix for broken BCC
return *tmp;
}
// keep track if there is a system-size icon // keep track if there is a system-size icon
if( sx == sysX && sy == sysY ) if( sx == sysX && sy == sysY )
sysIcon = &m_icons[i]; sysIcon = &m_icons[i];
@ -97,7 +104,11 @@ const wxIcon& wxIconBundle::GetIcon( const wxSize& size ) const
// return the system-sized icon if we've got one // return the system-sized icon if we've got one
if( sysIcon ) return *sysIcon; if( sysIcon ) return *sysIcon;
// return the first icon, if we have one // return the first icon, if we have one
return max > 0 ? m_icons[0] : wxNullIcon; if( max > 0 ) // fix for broken BCC
tmp = &m_icons[0];
else
tmp = &wxNullIcon;
return *tmp;
} }
void wxIconBundle::AddIcon( const wxIcon& icon ) void wxIconBundle::AddIcon( const wxIcon& icon )