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

Annotation of /trunk/3rdparty/wxWidgets/src/common/ctrlcmn.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: 5268 byte(s)
committing r3113 initial commit again...
1 william 31 /////////////////////////////////////////////////////////////////////////////
2     // Name: src/common/ctrlcmn.cpp
3     // Purpose: wxControl common interface
4     // Author: Vadim Zeitlin
5     // Modified by:
6     // Created: 26.07.99
7     // RCS-ID: $Id: ctrlcmn.cpp 40329 2006-07-25 18:40:04Z VZ $
8     // Copyright: (c) wxWidgets team
9     // Licence: wxWindows licence
10     /////////////////////////////////////////////////////////////////////////////
11    
12     // ============================================================================
13     // declarations
14     // ============================================================================
15    
16     // ----------------------------------------------------------------------------
17     // headers
18     // ----------------------------------------------------------------------------
19    
20     // For compilers that support precompilation, includes "wx.h".
21     #include "wx/wxprec.h"
22    
23     #ifdef __BORLANDC__
24     #pragma hdrstop
25     #endif
26    
27     #if wxUSE_CONTROLS
28    
29     #include "wx/control.h"
30    
31     #ifndef WX_PRECOMP
32     #include "wx/log.h"
33     #include "wx/radiobut.h"
34     #include "wx/statbmp.h"
35     #include "wx/bitmap.h"
36     #include "wx/utils.h" // for wxStripMenuCodes()
37     #endif
38    
39     const wxChar wxControlNameStr[] = wxT("control");
40    
41     // ============================================================================
42     // implementation
43     // ============================================================================
44    
45     wxControlBase::~wxControlBase()
46     {
47     // this destructor is required for Darwin
48     }
49    
50     bool wxControlBase::Create(wxWindow *parent,
51     wxWindowID id,
52     const wxPoint &pos,
53     const wxSize &size,
54     long style,
55     const wxValidator& wxVALIDATOR_PARAM(validator),
56     const wxString &name)
57     {
58     bool ret = wxWindow::Create(parent, id, pos, size, style, name);
59    
60     #if wxUSE_VALIDATORS
61     if ( ret )
62     SetValidator(validator);
63     #endif // wxUSE_VALIDATORS
64    
65     return ret;
66     }
67    
68     bool wxControlBase::CreateControl(wxWindowBase *parent,
69     wxWindowID id,
70     const wxPoint& pos,
71     const wxSize& size,
72     long style,
73     const wxValidator& validator,
74     const wxString& name)
75     {
76     // even if it's possible to create controls without parents in some port,
77     // it should surely be discouraged because it doesn't work at all under
78     // Windows
79     wxCHECK_MSG( parent, false, wxT("all controls must have parents") );
80    
81     if ( !CreateBase(parent, id, pos, size, style, validator, name) )
82     return false;
83    
84     parent->AddChild(this);
85    
86     return true;
87     }
88    
89     /* static */
90     wxString wxControlBase::GetLabelText(const wxString& label)
91     {
92     // we don't want strip the TABs here, just the mnemonics
93     return wxStripMenuCodes(label, wxStrip_Mnemonics);
94     }
95    
96     void wxControlBase::Command(wxCommandEvent& event)
97     {
98     (void)GetEventHandler()->ProcessEvent(event);
99     }
100    
101     void wxControlBase::InitCommandEvent(wxCommandEvent& event) const
102     {
103     event.SetEventObject((wxControlBase *)this); // const_cast
104    
105     // event.SetId(GetId()); -- this is usuall done in the event ctor
106    
107     switch ( m_clientDataType )
108     {
109     case wxClientData_Void:
110     event.SetClientData(GetClientData());
111     break;
112    
113     case wxClientData_Object:
114     event.SetClientObject(GetClientObject());
115     break;
116    
117     case wxClientData_None:
118     // nothing to do
119     ;
120     }
121     }
122    
123    
124     void wxControlBase::SetLabel( const wxString &label )
125     {
126     InvalidateBestSize();
127     wxWindow::SetLabel(label);
128     }
129    
130     bool wxControlBase::SetFont(const wxFont& font)
131     {
132     InvalidateBestSize();
133     return wxWindow::SetFont(font);
134     }
135    
136     // wxControl-specific processing after processing the update event
137     void wxControlBase::DoUpdateWindowUI(wxUpdateUIEvent& event)
138     {
139     // call inherited
140     wxWindowBase::DoUpdateWindowUI(event);
141    
142     // update label
143     if ( event.GetSetText() )
144     {
145     if ( event.GetText() != GetLabel() )
146     SetLabel(event.GetText());
147     }
148    
149     // Unfortunately we don't yet have common base class for
150     // wxRadioButton, so we handle updates of radiobuttons here.
151     // TODO: If once wxRadioButtonBase will exist, move this code there.
152     #if wxUSE_RADIOBTN
153     if ( event.GetSetChecked() )
154     {
155     wxRadioButton *radiobtn = wxDynamicCastThis(wxRadioButton);
156     if ( radiobtn )
157     radiobtn->SetValue(event.GetChecked());
158     }
159     #endif // wxUSE_RADIOBTN
160     }
161    
162     // ----------------------------------------------------------------------------
163     // wxStaticBitmap
164     // ----------------------------------------------------------------------------
165    
166     #if wxUSE_STATBMP
167    
168     wxStaticBitmapBase::~wxStaticBitmapBase()
169     {
170     // this destructor is required for Darwin
171     }
172    
173     wxSize wxStaticBitmapBase::DoGetBestSize() const
174     {
175     wxSize best;
176     wxBitmap bmp = GetBitmap();
177     if ( bmp.Ok() )
178     best = wxSize(bmp.GetWidth(), bmp.GetHeight());
179     else
180     // this is completely arbitrary
181     best = wxSize(16, 16);
182     CacheBestSize(best);
183     return best;
184     }
185    
186     #endif // wxUSE_STATBMP
187    
188     #endif // wxUSE_CONTROLS

  ViewVC Help
Powered by ViewVC 1.1.22