1///////////////////////////////////////////////////////////////////////////// 2// Name: wx/msw/statbmp.h 3// Purpose: wxStaticBitmap class for wxMSW 4// Author: Julian Smart 5// Modified by: 6// Created: 01/02/97 7// RCS-ID: $Id: statbmp.h 51824 2008-02-16 01:59:21Z SN $ 8// Copyright: (c) Julian Smart 9// Licence: wxWindows licence 10///////////////////////////////////////////////////////////////////////////// 11 12#ifndef _WX_STATBMP_H_ 13#define _WX_STATBMP_H_ 14 15#include "wx/control.h" 16#include "wx/icon.h" 17#include "wx/bitmap.h" 18 19extern WXDLLEXPORT_DATA(const wxChar) wxStaticBitmapNameStr[]; 20 21// a control showing an icon or a bitmap 22class WXDLLEXPORT wxStaticBitmap : public wxStaticBitmapBase 23{ 24public: 25 wxStaticBitmap() { Init(); } 26 27 wxStaticBitmap(wxWindow *parent, 28 wxWindowID id, 29 const wxGDIImage& label, 30 const wxPoint& pos = wxDefaultPosition, 31 const wxSize& size = wxDefaultSize, 32 long style = 0, 33 const wxString& name = wxStaticBitmapNameStr) 34 { 35 Init(); 36 37 Create(parent, id, label, pos, size, style, name); 38 } 39 40 bool Create(wxWindow *parent, 41 wxWindowID id, 42 const wxGDIImage& label, 43 const wxPoint& pos = wxDefaultPosition, 44 const wxSize& size = wxDefaultSize, 45 long style = 0, 46 const wxString& name = wxStaticBitmapNameStr); 47 48 virtual ~wxStaticBitmap() { Free(); } 49 50 virtual void SetIcon(const wxIcon& icon) { SetImage(&icon); } 51 virtual void SetBitmap(const wxBitmap& bitmap) { SetImage(&bitmap); } 52 virtual wxBitmap GetBitmap() const; 53 virtual wxIcon GetIcon() const; 54 55 virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; 56 57protected: 58 virtual wxBorder GetDefaultBorder() const; 59 virtual wxSize DoGetBestSize() const; 60 61 // ctor/dtor helpers 62 void Init() { m_isIcon = true; m_image = NULL; m_currentHandle = 0; } 63 void Free(); 64 65 // true if icon/bitmap is valid 66 bool ImageIsOk() const; 67 68 void SetImage(const wxGDIImage* image); 69 void SetImageNoCopy( wxGDIImage* image ); 70 71#if wxABI_VERSION >= 20808 72 // draw the bitmap ourselves here if the OS can't do it correctly (if it 73 // can we leave it to it) 74 void DoPaintManually(wxPaintEvent& event); 75#endif 76 77 // we can have either an icon or a bitmap 78 bool m_isIcon; 79 wxGDIImage *m_image; 80 81 // handle used in last call to STM_SETIMAGE 82 WXHANDLE m_currentHandle; 83 84private: 85 DECLARE_DYNAMIC_CLASS(wxStaticBitmap) 86 DECLARE_NO_COPY_CLASS(wxStaticBitmap) 87}; 88 89#endif 90 // _WX_STATBMP_H_ 91