#include "wx/icon.h"
#include "wx/bitmap.h"
-extern WXDLLEXPORT_DATA(const wxChar*) wxStaticBitmapNameStr;
+extern WXDLLIMPEXP_DATA_CORE(const char) wxStaticBitmapNameStr[];
// a control showing an icon or a bitmap
-class WXDLLEXPORT wxStaticBitmap : public wxStaticBitmapBase
+class WXDLLIMPEXP_CORE wxStaticBitmap : public wxStaticBitmapBase
{
public:
wxStaticBitmap() { Init(); }
virtual void SetIcon(const wxIcon& icon) { SetImage(&icon); }
virtual void SetBitmap(const wxBitmap& bitmap) { SetImage(&bitmap); }
+ virtual wxBitmap GetBitmap() const;
+ virtual wxIcon GetIcon() const;
- // can always be used, whether we have a bitmap or an icon in reality
- wxBitmap GetBitmap() const;
-
- // can only be used if an icon had been originally used
- wxIcon GetIcon() const;
+ virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+ // returns true if the platform should explicitly apply a theme border
+ virtual bool CanApplyThemeBorder() const { return false; }
protected:
- virtual wxBorder GetDefaultBorder() const;
- virtual wxSize DoGetBestSize() const;
- virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+ virtual wxSize DoGetBestClientSize() const;
// ctor/dtor helpers
- void Init() { m_isIcon = true; m_image = NULL; }
+ void Init() { m_isIcon = true; m_image = NULL; m_currentHandle = 0; }
void Free();
// true if icon/bitmap is valid
void SetImage(const wxGDIImage* image);
void SetImageNoCopy( wxGDIImage* image );
+#ifndef __WXWINCE__
+ // draw the bitmap ourselves here if the OS can't do it correctly (if it
+ // can we leave it to it)
+ void DoPaintManually(wxPaintEvent& event);
+#endif // !__WXWINCE__
+
+ void WXHandleSize(wxSizeEvent& event);
+
// we can have either an icon or a bitmap
bool m_isIcon;
wxGDIImage *m_image;
+ // handle used in last call to STM_SETIMAGE
+ WXHANDLE m_currentHandle;
+
private:
DECLARE_DYNAMIC_CLASS(wxStaticBitmap)
- DECLARE_NO_COPY_CLASS(wxStaticBitmap)
+ wxDECLARE_EVENT_TABLE();
+ wxDECLARE_NO_COPY_CLASS(wxStaticBitmap);
};
#endif