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