We must call SetInitialSize() in Create() in order to take the size argument passed to ctor/Create() into account -- it was completely ignored previously. But calling SetBitmap() must not change the initial size, as it can also be done later, so just change the current size there instead (which is consistent with wxMSW version and original behaviour, so keep it like this, even though it's not totally clear if all ports do it). Remove the now unused wxGenericStaticBitmap::GetBitmapSize().
67 lines
2.0 KiB
C++
67 lines
2.0 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 = wxASCII_STR(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 = wxASCII_STR(wxStaticBitmapNameStr));
|
|
|
|
virtual void SetBitmap(const wxBitmap& bitmap) wxOVERRIDE
|
|
{
|
|
m_bitmap = bitmap;
|
|
InvalidateBestSize();
|
|
SetSize(GetBestSize());
|
|
Refresh();
|
|
}
|
|
|
|
virtual wxBitmap GetBitmap() const wxOVERRIDE { return m_bitmap; }
|
|
|
|
virtual void SetScaleMode(ScaleMode scaleMode) wxOVERRIDE
|
|
{
|
|
m_scaleMode = scaleMode;
|
|
Refresh();
|
|
}
|
|
|
|
virtual ScaleMode GetScaleMode() const wxOVERRIDE { return m_scaleMode; }
|
|
|
|
private:
|
|
void OnPaint(wxPaintEvent& event);
|
|
|
|
wxBitmap m_bitmap;
|
|
ScaleMode m_scaleMode;
|
|
|
|
wxDECLARE_DYNAMIC_CLASS(wxGenericStaticBitmap);
|
|
};
|
|
|
|
|
|
#endif //_WX_GENERIC_STATBMP_H_
|