X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/655719367ac5e131d9642e5783f3ecf64d1a3385..59abfcf813ccca7366bfb6d830e1251be5514ac7:/src/mac/carbon/control.cpp diff --git a/src/mac/carbon/control.cpp b/src/mac/carbon/control.cpp index ba7d6a7a3c..7dff26019e 100644 --- a/src/mac/carbon/control.cpp +++ b/src/mac/carbon/control.cpp @@ -9,11 +9,7 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "control.h" -#endif - -#include "wx/defs.h" +#include "wx/wxprec.h" #include "wx/control.h" #include "wx/panel.h" @@ -31,83 +27,68 @@ #include "wx/sizer.h" #include "wx/stattext.h" -#if !USE_SHARED_LIBRARY -IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) -#endif - #include "wx/mac/uma.h" #include "wx/mac/private.h" -// Item members +IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) + wxControl::wxControl() { } -bool wxControl::Create(wxWindow *parent, wxWindowID id, - const wxPoint& pos, - const wxSize& size, long style, - const wxValidator& validator, - const wxString& name) +bool wxControl::Create( wxWindow *parent, + wxWindowID id, + const wxPoint& pos, + const wxSize& size, + long style, + const wxValidator& validator, + const wxString& name ) { - bool rval = wxWindow::Create(parent, id, pos, size, style, name); + bool rval = wxWindow::Create( parent, id, pos, size, style, name ); #if 0 // no automatic inheritance as we most often need transparent backgrounds if ( parent ) { - m_backgroundColour = parent->GetBackgroundColour() ; - m_foregroundColour = parent->GetForegroundColour() ; + m_backgroundColour = parent->GetBackgroundColour(); + m_foregroundColour = parent->GetForegroundColour(); } #endif - if (rval) - { #if wxUSE_VALIDATORS - SetValidator(validator); + if (rval) + SetValidator( validator ); #endif - } + return rval; } wxControl::~wxControl() { - m_isBeingDeleted = TRUE; + m_isBeingDeleted = true; } -bool wxControl::ProcessCommand (wxCommandEvent & event) +bool wxControl::ProcessCommand( wxCommandEvent &event ) { // Tries: // 1) OnCommand, starting at this window and working up parent hierarchy // 2) OnCommand then calls ProcessEvent to search the event tables. - return GetEventHandler()->ProcessEvent(event); + return GetEventHandler()->ProcessEvent( event ); } -void wxControl::OnKeyDown( wxKeyEvent &event ) +void wxControl::OnKeyDown( wxKeyEvent &event ) { - if ( (ControlRef) m_macControl == NULL ) - return ; - -#if TARGET_CARBON - - char charCode ; - UInt32 keyCode ; - UInt32 modifiers ; - - GetEventParameter( (EventRef) wxTheApp->MacGetCurrentEvent(), kEventParamKeyMacCharCodes, typeChar, NULL,sizeof(char), NULL,&charCode ); - GetEventParameter( (EventRef) wxTheApp->MacGetCurrentEvent(), kEventParamKeyCode, typeUInt32, NULL, sizeof(UInt32), NULL, &keyCode ); - GetEventParameter((EventRef) wxTheApp->MacGetCurrentEvent(), kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers); - - ::HandleControlKey( (ControlRef) m_macControl , keyCode , charCode , modifiers ) ; - -#else - EventRecord *ev = (EventRecord*) wxTheApp->MacGetCurrentEvent() ; - short keycode ; - short keychar ; - keychar = short(ev->message & charCodeMask); - keycode = short(ev->message & keyCodeMask) >> 8 ; - - ::HandleControlKey( (ControlRef) m_macControl , keycode , keychar , ev->modifiers ) ; -#endif + if ( m_peer == NULL || !m_peer->Ok() ) + return; + + UInt32 keyCode, modifiers; + char charCode; + + GetEventParameter( (EventRef)wxTheApp->MacGetCurrentEvent(), kEventParamKeyCode, typeUInt32, NULL, sizeof(UInt32), NULL, &keyCode ); + GetEventParameter( (EventRef)wxTheApp->MacGetCurrentEvent(), kEventParamKeyMacCharCodes, typeChar, NULL, sizeof(char), NULL, &charCode ); + GetEventParameter( (EventRef)wxTheApp->MacGetCurrentEvent(), kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers ); + + m_peer->HandleKey( keyCode, charCode, modifiers ); }