boinc/clientgui/sg_ImageLoader.cpp

58 lines
2.0 KiB
C++

// Berkeley Open Infrastructure for Network Computing
// http://boinc.berkeley.edu
// Copyright (C) 2005 University of California
//
// This is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation;
// either version 2.1 of the License, or (at your option) any later version.
//
// This software is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
// See the GNU Lesser General Public License for more details.
//
// To view the GNU Lesser General Public License visit
// http://www.gnu.org/copyleft/lesser.html
// or write to the Free Software Foundation, Inc.,
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma implementation "sg_ImageLoader.h"
#endif
#include "stdwx.h"
#include "sg_ImageLoader.h"
BEGIN_EVENT_TABLE(ImageLoader, wxWindow)
EVT_PAINT(ImageLoader::OnPaint)
END_EVENT_TABLE()
ImageLoader::ImageLoader(wxWindow* parent) : wxWindow(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNO_BORDER)
{
}
void ImageLoader::LoadImage(const wxImage& image)
{
Bitmap = wxBitmap();//delete existing bitmap since we are loading newone
int width = image.GetWidth();
int height = image.GetHeight();
//double X_Ratio = (double) MaxWidth / (double) width;
//double Y_Ratio = (double) MaxHeight / (double) height;
//double Ratio = X_Ratio < Y_Ratio ? X_Ratio : Y_Ratio;
//wxImage Image = image.Scale((int)(Ratio * width), (int)(Ratio * height));
Bitmap = wxBitmap(image);
//width = imageGetWidth();
//height = image.GetHeight();
SetSize(width, height);
}
void ImageLoader::OnPaint(wxPaintEvent& WXUNUSED(event))
{
wxPaintDC dc(this);
if(Bitmap.Ok())
{
dc.DrawBitmap(Bitmap, 0, 0);
}
}