projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added wxIMAGE_OPTION_ORIGINAL_{WIDTH,HEIGHT} wxImage options.
[wxWidgets.git]
/
src
/
common
/
artprov.cpp
diff --git
a/src/common/artprov.cpp
b/src/common/artprov.cpp
index 79c9470e01693d39dd5bea94c8dc19f70b456c33..69c692852870f14460b3b92aa33706dcbc26fca7 100644
(file)
--- a/
src/common/artprov.cpp
+++ b/
src/common/artprov.cpp
@@
-204,11
+204,8
@@
wxArtProvider::~wxArtProvider()
while ( !sm_providers->empty() )
delete *sm_providers->begin();
while ( !sm_providers->empty() )
delete *sm_providers->begin();
- delete sm_providers;
- sm_providers = NULL;
-
- delete sm_cache;
- sm_cache = NULL;
+ wxDELETE(sm_providers);
+ wxDELETE(sm_cache);
}
}
}
}
@@
-234,39
+231,43
@@
wxArtProvider::~wxArtProvider()
node; node = node->GetNext())
{
bmp = node->GetData()->CreateBitmap(id, client, size);
node; node = node->GetNext())
{
bmp = node->GetData()->CreateBitmap(id, client, size);
- if ( bmp.Ok() )
+ if ( bmp.
Is
Ok() )
break;
}
break;
}
- if ( !bmp.Ok() )
+ wxSize sizeNeeded = size;
+ if ( !bmp.IsOk() )
{
// no bitmap created -- as a fallback, try if we can find desired
// icon in a bundle
wxIconBundle iconBundle = DoGetIconBundle(id, client);
if ( iconBundle.IsOk() )
{
{
// no bitmap created -- as a fallback, try if we can find desired
// icon in a bundle
wxIconBundle iconBundle = DoGetIconBundle(id, client);
if ( iconBundle.IsOk() )
{
- wxSize sz(size != wxDefaultSize
- ? size
- : GetNativeSizeHint(client));
- wxIcon icon(iconBundle.GetIcon(s
z
));
+ if ( sizeNeeded == wxDefaultSize )
+ sizeNeeded = GetNativeSizeHint(client);
+
+ wxIcon icon(iconBundle.GetIcon(s
izeNeeded
));
if ( icon.IsOk() )
if ( icon.IsOk() )
+ {
+ // this icon may be not of the correct size, it will be
+ // rescaled below in such case
bmp.CopyFromIcon(icon);
bmp.CopyFromIcon(icon);
+ }
}
}
}
}
- if ( bmp.IsOk() )
- {
- // if we didn't get the correct size, resize the bitmap
+ // if we didn't get the correct size, resize the bitmap
#if wxUSE_IMAGE && (!defined(__WXMSW__) || wxUSE_WXDIB)
#if wxUSE_IMAGE && (!defined(__WXMSW__) || wxUSE_WXDIB)
- if ( size != wxDefaultSize &&
- (bmp.GetWidth() != size.x || bmp.GetHeight() != size.y) )
+ if ( bmp.IsOk() && sizeNeeded != wxDefaultSize )
+ {
+ if ( bmp.GetSize() != sizeNeeded )
{
wxImage img = bmp.ConvertToImage();
{
wxImage img = bmp.ConvertToImage();
- img.Rescale(size
.x, size
.y);
+ img.Rescale(size
Needed.x, sizeNeeded
.y);
bmp = wxBitmap(img);
}
bmp = wxBitmap(img);
}
-#endif
}
}
+#endif // wxUSE_IMAGE
sm_cache->PutBitmap(hashId, bmp);
}
sm_cache->PutBitmap(hashId, bmp);
}
@@
-439,7
+440,12
@@
class wxArtProviderModule: public wxModule
public:
bool OnInit()
{
public:
bool OnInit()
{
+#if wxUSE_ARTPROVIDER_STD
wxArtProvider::InitStdProvider();
wxArtProvider::InitStdProvider();
+#endif // wxUSE_ARTPROVIDER_STD
+#if wxUSE_ARTPROVIDER_TANGO
+ wxArtProvider::InitTangoProvider();
+#endif // wxUSE_ARTPROVIDER_TANGO
wxArtProvider::InitNativeProvider();
return true;
}
wxArtProvider::InitNativeProvider();
return true;
}