+
+// ----------------------------------------------------------------------------
+// CreateBitmap routine
+// ----------------------------------------------------------------------------
+
+wxBitmap wxDefaultArtProvider::CreateBitmap(const wxArtID& id,
+ const wxArtClient& client,
+ const wxSize& reqSize)
+{
+ wxBitmap bmp = wxDefaultArtProvider_CreateBitmap(id);
+
+#if wxUSE_IMAGE
+ if (bmp.Ok())
+ {
+ // fit into transparent image with desired size hint from the client
+ if (reqSize == wxDefaultSize)
+ {
+ // find out if there is a desired size for this client
+ wxSize bestSize = GetSizeHint(client);
+ if (bestSize != wxDefaultSize)
+ {
+ int bmp_w = bmp.GetWidth();
+ int bmp_h = bmp.GetHeight();
+ // want default size but it's smaller, paste into transparent image
+ if ((bmp_h < bestSize.x) && (bmp_w < bestSize.y))
+ {
+ wxPoint offset((bestSize.x - bmp_w)/2, (bestSize.y - bmp_h)/2);
+ wxImage img = bmp.ConvertToImage();
+ img.Resize(bestSize, offset);
+ bmp = wxBitmap(img);
+ }
+ }
+ }
+ }
+#else
+ wxUnusedVar(client);
+ wxUnusedVar(reqSize);
+#endif // wxUSE_IMAGE
+
+ return bmp;
+}