]> git.saurik.com Git - wxWidgets.git/blob - contrib/include/wx/gizmos/statpict.h
glibc's vswprintf doesn't nul terminate on truncation.
[wxWidgets.git] / contrib / include / wx / gizmos / statpict.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: statpict.h
3 // Purpose: wxStaticPicture class
4 // Author: Wade Brainerd
5 // Modified by:
6 // Created: 2003-05-01
7 // RCS-ID:
8 // Copyright: (c) Wade Brainerd
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_STATPICT_H_
13 #define _WX_STATPICT_H_
14
15 #include "wx/control.h"
16
17 #include "wx/icon.h"
18 #include "wx/bitmap.h"
19 #include "wx/image.h"
20
21 #include "wx/gizmos/gizmos.h"
22
23 enum
24 {
25 wxSCALE_HORIZONTAL = 0x1,
26 wxSCALE_VERTICAL = 0x2,
27 wxSCALE_UNIFORM = 0x4,
28 wxSCALE_CUSTOM = 0x8
29 };
30
31 WXDLLIMPEXP_GIZMOS extern const wxChar* wxStaticPictureNameStr;
32
33 class WXDLLIMPEXP_GIZMOS wxStaticPicture : public wxControl
34 {
35 DECLARE_DYNAMIC_CLASS(wxStaticPicture)
36
37 public:
38 wxStaticPicture() {}
39
40 wxStaticPicture( wxWindow* parent, wxWindowID id,
41 const wxBitmap& label,
42 const wxPoint& pos = wxDefaultPosition,
43 const wxSize& size = wxDefaultSize,
44 long style = 0,
45 const wxString& name = wxStaticPictureNameStr )
46 {
47 Create( parent, id, label, pos, size, style, name );
48 }
49
50 bool Create( wxWindow* parent, wxWindowID id,
51 const wxBitmap& label,
52 const wxPoint& pos = wxDefaultPosition,
53 const wxSize& size = wxDefaultSize,
54 long style = 0,
55 const wxString& name = wxStaticPictureNameStr );
56
57 virtual void Command(wxCommandEvent& WXUNUSED(event)) {}
58 virtual bool ProcessCommand(wxCommandEvent& WXUNUSED(event)) {return true;}
59 void OnPaint(wxPaintEvent& event);
60
61 void SetBitmap( const wxBitmap& bmp );
62
63 wxBitmap GetBitmap() const
64 {
65 return Bitmap;
66 }
67
68 // Icon interface for compatibility with wxStaticBitmap.
69 void SetIcon( const wxIcon& icon )
70 {
71 wxBitmap bmp;
72 bmp.CopyFromIcon( icon );
73 SetBitmap( bmp );
74 }
75
76 wxIcon GetIcon() const
77 {
78 wxIcon icon;
79 icon.CopyFromBitmap( Bitmap );
80 return icon;
81 }
82
83 void SetAlignment( int align )
84 {
85 Align = align;
86 }
87
88 int GetAlignment() const
89 {
90 return Align;
91 }
92
93 void SetScale( int scale )
94 {
95 Scale = scale;
96 }
97
98 int GetScale() const
99 {
100 return Scale;
101 }
102
103 void SetCustomScale( float sx, float sy )
104 {
105 ScaleX = sx;
106 ScaleY = sy;
107 }
108
109 void GetCustomScale( float* sx, float* sy ) const
110 {
111 *sx = ScaleX;
112 *sy = ScaleY;
113 }
114
115 protected:
116 wxBitmap Bitmap;
117
118 int Align;
119
120 int Scale;
121 float ScaleX;
122 float ScaleY;
123
124 #ifndef __WXMSW__
125 // When scaling is enabled, measures are taken to improve performance on non-Windows platforms.
126 // - The original bitmap is stored as a wxImage, because conversion from wxBitmap to wxImage is slow.
127 // - The latest scaled bitmap is cached, this improves performance when the control is repainted
128 // but the size hasn't changed (overlapping windows, movement, etc).
129 wxImage OriginalImage;
130 float LastScaleX;
131 float LastScaleY;
132 wxBitmap ScaledBitmap;
133 #endif
134
135 DECLARE_EVENT_TABLE()
136 };
137
138 #endif // #ifndef _WX_STATPICT_H_