/[pcsx2_0.9.7]/trunk/3rdparty/wxWidgets/src/common/animatecmn.cpp
ViewVC logotype

Annotation of /trunk/3rdparty/wxWidgets/src/common/animatecmn.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 31 - (hide annotations) (download)
Tue Sep 7 03:24:11 2010 UTC (10 years, 4 months ago) by william
File size: 3473 byte(s)
committing r3113 initial commit again...
1 william 31 /////////////////////////////////////////////////////////////////////////////
2     // Name: src/common/animatecmn.cpp
3     // Purpose: wxAnimation and wxAnimationCtrl
4     // Author: Francesco Montorsi
5     // Modified By:
6     // Created: 24/09/2006
7     // Id: $Id: animatecmn.cpp 43494 2006-11-18 17:46:29Z RR $
8     // Copyright: (c) Francesco Montorsi
9     // Licence: wxWindows licence
10     /////////////////////////////////////////////////////////////////////////////
11    
12    
13     // ----------------------------------------------------------------------------
14     // headers
15     // ----------------------------------------------------------------------------
16    
17     // For compilers that support precompilation, includes "wx.h".
18     #include "wx/wxprec.h"
19    
20     #if wxUSE_ANIMATIONCTRL
21    
22     #include "wx/animate.h"
23     #include "wx/bitmap.h"
24     #include "wx/log.h"
25     #include "wx/brush.h"
26     #include "wx/image.h"
27     #include "wx/dcmemory.h"
28    
29     const wxChar wxAnimationCtrlNameStr[] = wxT("animationctrl");
30    
31     // global object
32     wxAnimation wxNullAnimation;
33    
34     IMPLEMENT_ABSTRACT_CLASS(wxAnimationBase, wxObject)
35     IMPLEMENT_ABSTRACT_CLASS(wxAnimationCtrlBase, wxControl)
36    
37    
38     // ----------------------------------------------------------------------------
39     // wxAnimationCtrlBase
40     // ----------------------------------------------------------------------------
41    
42     void wxAnimationCtrlBase::UpdateStaticImage()
43     {
44     if (!m_bmpStaticReal.IsOk() || !m_bmpStatic.IsOk())
45     return;
46    
47     // if given bitmap is not of the right size, recreate m_bmpStaticReal accordingly
48     const wxSize &sz = GetClientSize();
49     if (sz.GetWidth() != m_bmpStaticReal.GetWidth() ||
50     sz.GetHeight() != m_bmpStaticReal.GetHeight())
51     {
52     if (!m_bmpStaticReal.IsOk() ||
53     m_bmpStaticReal.GetWidth() != sz.GetWidth() ||
54     m_bmpStaticReal.GetHeight() != sz.GetHeight())
55     {
56     // need to (re)create m_bmpStaticReal
57     if (!m_bmpStaticReal.Create(sz.GetWidth(), sz.GetHeight(),
58     m_bmpStatic.GetDepth()))
59     {
60     wxLogDebug(wxT("Cannot create the static bitmap"));
61     m_bmpStatic = wxNullBitmap;
62     return;
63     }
64     }
65    
66     if (m_bmpStatic.GetWidth() <= sz.GetWidth() &&
67     m_bmpStatic.GetHeight() <= sz.GetHeight())
68     {
69     // clear the background of m_bmpStaticReal
70     wxBrush brush(GetBackgroundColour());
71     wxMemoryDC dc;
72     dc.SelectObject(m_bmpStaticReal);
73     dc.SetBackground(brush);
74     dc.Clear();
75    
76     // center the user-provided bitmap in m_bmpStaticReal
77     dc.DrawBitmap(m_bmpStatic,
78     (sz.GetWidth()-m_bmpStatic.GetWidth())/2,
79     (sz.GetHeight()-m_bmpStatic.GetHeight())/2,
80     true /* use mask */ );
81     }
82     else
83     {
84     // the user-provided bitmap is bigger than our control, strech it
85     wxImage temp(m_bmpStatic.ConvertToImage());
86     temp.Rescale(sz.GetWidth(), sz.GetHeight(), wxIMAGE_QUALITY_HIGH);
87     m_bmpStaticReal = wxBitmap(temp);
88     }
89     }
90     }
91    
92     void wxAnimationCtrlBase::SetInactiveBitmap(const wxBitmap &bmp)
93     {
94     m_bmpStatic = bmp;
95     m_bmpStaticReal = bmp;
96    
97     // if not playing, update the control now
98     // NOTE: DisplayStaticImage() will call UpdateStaticImage automatically
99     if ( !IsPlaying() )
100     DisplayStaticImage();
101     }
102    
103     #endif // wxUSE_ANIMATIONCTRL

  ViewVC Help
Powered by ViewVC 1.1.22