Improved retrieving bitmaps from wxArtProvider in propgrid sample.
Retrieve from wxArtProvider bitmaps of required size instead of rescaling them in the application.
This commit is contained in:
		| @@ -1175,35 +1175,6 @@ void FormMain::PopulateWithStandardItems () | ||||
|  | ||||
| // ----------------------------------------------------------------------- | ||||
|  | ||||
| // Helper procedure to rescale bitmaps | ||||
| static void RescaleBitmap(const wxBitmap& srcBmp, wxBitmap& dstBmp) | ||||
| { | ||||
|     // Source bitmap should rescaled to the size of target bitmap. | ||||
|     if ( srcBmp.GetSize() != dstBmp.GetSize() ) | ||||
|     { | ||||
| #if wxUSE_IMAGE | ||||
|         // Use high-quality wxImage scaling functions | ||||
|         wxImage img = srcBmp.ConvertToImage(); | ||||
|         img.Rescale(dstBmp.GetWidth(), dstBmp.GetHeight(), wxIMAGE_QUALITY_HIGH); | ||||
|         dstBmp = wxBitmap(img); | ||||
| #else | ||||
|         // Old method of scaling the image | ||||
|         double scaleX = (double)dstBmp.GetWidth() / (double)srcBmp.GetWidth(); | ||||
|         double scaleY = (double)dstBmp.GetHeight() / (double)srcBmp.GetHeight(); | ||||
|         dstBmp.UseAlpha(srcBmp.HasAlpha()); | ||||
|         { | ||||
|             wxMemoryDC dc(dstBmp); | ||||
|             dc.SetUserScale(scaleX, scaleY); | ||||
|             dc.DrawBitmap(srcBmp, 0, 0); | ||||
|         } | ||||
| #endif | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         dstBmp = srcBmp; | ||||
|     } | ||||
| } | ||||
|  | ||||
| void FormMain::PopulateWithExamples () | ||||
| { | ||||
|     wxPropertyGridManager* pgman = m_pPropGridManager; | ||||
| @@ -1587,21 +1558,12 @@ void FormMain::PopulateWithExamples () | ||||
|     // | ||||
|     // Test adding variable height bitmaps in wxPGChoices | ||||
|     wxPGChoices bc; | ||||
|     wxBitmap smallBmp(16, 16); | ||||
|     wxBitmap bmp = wxArtProvider::GetBitmap(wxART_CDROM); | ||||
|     RescaleBitmap(bmp, smallBmp); | ||||
|  | ||||
|     wxBitmap mediumBmp(32, 32); | ||||
|     bmp = wxArtProvider::GetBitmap(wxART_FLOPPY); | ||||
|     RescaleBitmap(bmp, mediumBmp); | ||||
|  | ||||
|     wxBitmap largeBmp(64, 64); | ||||
|     bmp = wxArtProvider::GetBitmap(wxART_HARDDISK); | ||||
|     RescaleBitmap(bmp, largeBmp); | ||||
|  | ||||
|     bc.Add(wxT("Wee"), smallBmp); | ||||
|     bc.Add(wxT("Not so wee"), mediumBmp); | ||||
|     bc.Add(wxT("Friggin' huge"), largeBmp); | ||||
|     bc.Add(wxT("Wee"), | ||||
|              wxArtProvider::GetBitmap(wxART_CDROM, wxART_OTHER, wxSize(16, 16))); | ||||
|     bc.Add(wxT("Not so wee"), | ||||
|              wxArtProvider::GetBitmap(wxART_FLOPPY, wxART_OTHER, wxSize(32, 32))); | ||||
|     bc.Add(wxT("Friggin' huge"), | ||||
|              wxArtProvider::GetBitmap(wxART_HARDDISK, wxART_OTHER, wxSize(64, 64))); | ||||
|  | ||||
|     pg->Append( new wxEnumProperty(wxT("Variable Height Bitmaps"), | ||||
|                                    wxPG_LABEL, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user