• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/amule/wxWidgets-2.8.12/contrib/include/wx/gizmos/
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
23enum
24{
25    wxSCALE_HORIZONTAL = 0x1,
26    wxSCALE_VERTICAL   = 0x2,
27    wxSCALE_UNIFORM    = 0x4,
28    wxSCALE_CUSTOM     = 0x8
29};
30
31WXDLLIMPEXP_GIZMOS extern const wxChar* wxStaticPictureNameStr;
32
33class WXDLLIMPEXP_GIZMOS wxStaticPicture : public wxControl
34{
35    DECLARE_DYNAMIC_CLASS(wxStaticPicture)
36
37public:
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
115protected:
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_
139