]> git.saurik.com Git - wxWidgets.git/blob - src/mac/carbon/control.cpp
using a dynamic cast to wxFrame in order to get the MenuBar correctly from the frontm...
[wxWidgets.git] / src / mac / carbon / control.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: control.cpp
3 // Purpose: wxControl class
4 // Author: Stefan Csomor
5 // Modified by:
6 // Created: 1998-01-01
7 // RCS-ID: $Id$
8 // Copyright: (c) Stefan Csomor
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #include "wx/wxprec.h"
13
14 #include "wx/control.h"
15 #include "wx/panel.h"
16 #include "wx/app.h"
17 #include "wx/dc.h"
18 #include "wx/dcclient.h"
19 #include "wx/notebook.h"
20 #include "wx/tabctrl.h"
21 #include "wx/radiobox.h"
22 #include "wx/spinbutt.h"
23 #include "wx/scrolbar.h"
24 #include "wx/button.h"
25 #include "wx/dialog.h"
26 #include "wx/statbox.h"
27 #include "wx/sizer.h"
28 #include "wx/stattext.h"
29
30 IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow)
31
32 #include "wx/mac/uma.h"
33 #include "wx/mac/private.h"
34
35 // Item members
36
37 wxControl::wxControl()
38 {
39 }
40
41 bool wxControl::Create(wxWindow *parent,
42 wxWindowID id,
43 const wxPoint& pos,
44 const wxSize& size,
45 long style,
46 const wxValidator& validator,
47 const wxString& name)
48 {
49 bool rval = wxWindow::Create(parent, id, pos, size, style, name);
50
51 #if 0
52 // no automatic inheritance as we most often need transparent backgrounds
53 if ( parent )
54 {
55 m_backgroundColour = parent->GetBackgroundColour() ;
56 m_foregroundColour = parent->GetForegroundColour() ;
57 }
58 #endif
59
60 #if wxUSE_VALIDATORS
61 if (rval)
62 SetValidator(validator);
63 #endif
64
65 return rval;
66 }
67
68 wxControl::~wxControl()
69 {
70 m_isBeingDeleted = true;
71 }
72
73 bool wxControl::ProcessCommand (wxCommandEvent & event)
74 {
75 // Tries:
76 // 1) OnCommand, starting at this window and working up parent hierarchy
77 // 2) OnCommand then calls ProcessEvent to search the event tables.
78 return GetEventHandler()->ProcessEvent(event);
79 }
80
81 void wxControl::OnKeyDown( wxKeyEvent &event )
82 {
83 if ( m_peer == NULL || !m_peer->Ok() )
84 return ;
85
86 char charCode ;
87 UInt32 keyCode, modifiers ;
88
89 GetEventParameter( (EventRef) wxTheApp->MacGetCurrentEvent(), kEventParamKeyMacCharCodes, typeChar, NULL, sizeof(char), NULL,&charCode );
90 GetEventParameter( (EventRef) wxTheApp->MacGetCurrentEvent(), kEventParamKeyCode, typeUInt32, NULL, sizeof(UInt32), NULL, &keyCode );
91 GetEventParameter( (EventRef) wxTheApp->MacGetCurrentEvent(), kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers );
92
93 m_peer->HandleKey( keyCode , charCode , modifiers ) ;
94 }
95