104 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        wx/msw/statbmp.h
 | |
| // Purpose:     wxStaticBitmap class for wxMSW
 | |
| // Author:      Julian Smart
 | |
| // Modified by:
 | |
| // Created:     01/02/97
 | |
| // Copyright:   (c) Julian Smart
 | |
| // Licence:     wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_STATBMP_H_
 | |
| #define _WX_STATBMP_H_
 | |
| 
 | |
| #include "wx/control.h"
 | |
| #include "wx/icon.h"
 | |
| #include "wx/bitmap.h"
 | |
| 
 | |
| extern WXDLLIMPEXP_DATA_CORE(const char) wxStaticBitmapNameStr[];
 | |
| 
 | |
| // a control showing an icon or a bitmap
 | |
| class WXDLLIMPEXP_CORE wxStaticBitmap : public wxStaticBitmapBase
 | |
| {
 | |
| public:
 | |
|     wxStaticBitmap() { Init(); }
 | |
| 
 | |
|     wxStaticBitmap(wxWindow *parent,
 | |
|                    wxWindowID id,
 | |
|                    const wxGDIImage& label,
 | |
|                    const wxPoint& pos = wxDefaultPosition,
 | |
|                    const wxSize& size = wxDefaultSize,
 | |
|                    long style = 0,
 | |
|                    const wxString& name = wxStaticBitmapNameStr)
 | |
|     {
 | |
|         Init();
 | |
| 
 | |
|         Create(parent, id, label, pos, size, style, name);
 | |
|     }
 | |
| 
 | |
|     bool Create(wxWindow *parent,
 | |
|                 wxWindowID id,
 | |
|                 const wxGDIImage& label,
 | |
|                 const wxPoint& pos = wxDefaultPosition,
 | |
|                 const wxSize& size = wxDefaultSize,
 | |
|                 long style = 0,
 | |
|                 const wxString& name = wxStaticBitmapNameStr);
 | |
| 
 | |
|     virtual ~wxStaticBitmap() { Free(); }
 | |
| 
 | |
|     virtual void SetIcon(const wxIcon& icon) wxOVERRIDE { SetImage(&icon); }
 | |
|     virtual void SetBitmap(const wxBitmap& bitmap) wxOVERRIDE { SetImage(&bitmap); }
 | |
|     virtual wxBitmap GetBitmap() const wxOVERRIDE;
 | |
|     virtual wxIcon GetIcon() const wxOVERRIDE;
 | |
| 
 | |
|     virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const wxOVERRIDE;
 | |
| 
 | |
|     // returns true if the platform should explicitly apply a theme border
 | |
|     virtual bool CanApplyThemeBorder() const wxOVERRIDE { return false; }
 | |
| 
 | |
| protected:
 | |
|     virtual wxSize DoGetBestClientSize() const wxOVERRIDE;
 | |
| 
 | |
|     // ctor/dtor helpers
 | |
|     void Init();
 | |
|     void Free();
 | |
| 
 | |
|     // true if icon/bitmap is valid
 | |
|     bool ImageIsOk() const;
 | |
| 
 | |
|     void SetImage(const wxGDIImage* image);
 | |
|     void SetImageNoCopy( wxGDIImage* image );
 | |
| 
 | |
|     // 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);
 | |
| 
 | |
|     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:
 | |
|     // Flag indicating whether we own m_currentHandle, i.e. should delete it.
 | |
|     bool m_ownsCurrentHandle;
 | |
| 
 | |
|     // Replace the image at the native control level with the given HBITMAP or
 | |
|     // HICON (which can be 0) and destroy the previous image if necessary.
 | |
|     void MSWReplaceImageHandle(WXLPARAM handle);
 | |
| 
 | |
|     // Delete the current handle only if we own it.
 | |
|     void DeleteCurrentHandleIfNeeded();
 | |
| 
 | |
| 
 | |
|     wxDECLARE_DYNAMIC_CLASS(wxStaticBitmap);
 | |
|     wxDECLARE_EVENT_TABLE();
 | |
|     wxDECLARE_NO_COPY_CLASS(wxStaticBitmap);
 | |
| };
 | |
| 
 | |
| #endif
 | |
|     // _WX_STATBMP_H_
 |