/////////////////////////////////////////////////////////////////////////////
-// Name: control.cpp
+// Name: src/mac/carbon/control.cpp
// Purpose: wxControl class
// Author: Stefan Csomor
// Modified by:
// 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"
-#include "wx/app.h"
-#include "wx/dc.h"
-#include "wx/dcclient.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/app.h"
+ #include "wx/panel.h"
+ #include "wx/dc.h"
+ #include "wx/dcclient.h"
+ #include "wx/button.h"
+ #include "wx/dialog.h"
+#endif // WX_PRECOMP
+
#include "wx/notebook.h"
#include "wx/tabctrl.h"
#include "wx/radiobox.h"
#include "wx/spinbutt.h"
#include "wx/scrolbar.h"
-#include "wx/button.h"
-#include "wx/dialog.h"
#include "wx/statbox.h"
#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 );
+}