58c7e6d54f
This allows a bitmap to scale with the size of the wxStaticBitmap control. Scaling can be controlled to fill the control with or without changing the bitmaps aspect ratio.
84 lines
2.5 KiB
C++
84 lines
2.5 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/generic/statbmpg.h
|
|
// Purpose: wxGenericStaticBitmap header
|
|
// Author: Marcin Wojdyr, Stefan Csomor
|
|
// Created: 2008-06-16
|
|
// Copyright: wxWidgets developers
|
|
// Licence: wxWindows licence
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GENERIC_STATBMP_H_
|
|
#define _WX_GENERIC_STATBMP_H_
|
|
|
|
#include "wx/statbmp.h"
|
|
|
|
class WXDLLIMPEXP_CORE wxGenericStaticBitmap : public wxStaticBitmapBase
|
|
{
|
|
public:
|
|
wxGenericStaticBitmap() {}
|
|
wxGenericStaticBitmap(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxBitmap& bitmap,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxString& name = wxStaticBitmapNameStr)
|
|
{
|
|
Create(parent, id, bitmap, pos, size, style, name);
|
|
}
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id,
|
|
const wxBitmap& bitmap,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = 0,
|
|
const wxString& name = wxStaticBitmapNameStr);
|
|
|
|
virtual void SetBitmap(const wxBitmap& bitmap) wxOVERRIDE
|
|
{
|
|
m_bitmap = bitmap;
|
|
SetInitialSize(GetBitmapSize());
|
|
Refresh();
|
|
}
|
|
|
|
virtual wxBitmap GetBitmap() const wxOVERRIDE { return m_bitmap; }
|
|
|
|
virtual void SetIcon(const wxIcon& icon) wxOVERRIDE
|
|
{
|
|
m_bitmap.CopyFromIcon(icon);
|
|
SetInitialSize(GetBitmapSize());
|
|
Refresh();
|
|
}
|
|
|
|
#if defined(__WXGTK20__) || defined(__WXMAC__)
|
|
// icons and bitmaps are really the same thing in wxGTK and wxMac
|
|
wxIcon GetIcon() const wxOVERRIDE { return (const wxIcon &)m_bitmap; }
|
|
#endif
|
|
|
|
virtual void SetScaleMode(ScaleMode scaleMode) wxOVERRIDE
|
|
{
|
|
m_scaleMode = scaleMode;
|
|
Refresh();
|
|
}
|
|
|
|
virtual ScaleMode GetScaleMode() const wxOVERRIDE { return m_scaleMode; }
|
|
|
|
private:
|
|
wxSize GetBitmapSize()
|
|
{
|
|
return m_bitmap.IsOk() ? m_bitmap.GetScaledSize()
|
|
: wxSize(16, 16); // this is completely arbitrary
|
|
}
|
|
|
|
void OnPaint(wxPaintEvent& event);
|
|
|
|
wxBitmap m_bitmap;
|
|
ScaleMode m_scaleMode;
|
|
|
|
wxDECLARE_DYNAMIC_CLASS(wxGenericStaticBitmap);
|
|
};
|
|
|
|
|
|
#endif //_WX_GENERIC_STATBMP_H_
|