#include "wx/docview.h"
#include "wx/filename.h"
#include "wx/link.h"
+#include "wx/thread.h"
#include <string.h>
{
wxWindow *win = menu->GetInvokingWindow();
if (win)
- win->GetEventHandler()->ProcessEvent(wxevent);
+ win->HandleWindowEvent(wxevent);
}
}
}
return eventNotHandledErr;
}
+#ifndef __LP64__
static pascal OSStatus
wxMacAppCommandEventHandler( EventHandlerCallRef WXUNUSED(handler) ,
EventRef event ,
}
return result ;
}
+#endif
static pascal OSStatus
wxMacAppApplicationEventHandler( EventHandlerCallRef WXUNUSED(handler) ,
OSStatus result = eventNotHandledErr ;
switch ( GetEventClass( event ) )
{
+#ifndef __LP64__
case kEventClassCommand :
result = wxMacAppCommandEventHandler( handler , event , data ) ;
break ;
-
+#endif
case kEventClassApplication :
result = wxMacAppApplicationEventHandler( handler , event , data ) ;
break ;
-
+#ifndef __LP64__
case kEventClassMenu :
result = wxMacAppMenuEventHandler( handler , event , data ) ;
break ;
result = wxMacTopLevelMouseEventHandler( handler , event , NULL ) ;
}
break ;
-
+#endif
case kEventClassAppleEvent :
{
- EventRecord rec ;
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
+ if ( AEProcessEvent != NULL )
+ {
+ result = AEProcessEvent(event);
+ }
+#endif
+#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
+ {
+ EventRecord rec ;
- wxMacConvertEventToRecord( event , &rec ) ;
- result = AEProcessAppleEvent( &rec ) ;
+ wxMacConvertEventToRecord( event , &rec ) ;
+ result = AEProcessAppleEvent( &rec ) ;
+ }
+#endif
}
break ;
#endif
UMAInitToolbox( 4, sm_isEmbedded ) ;
- SetEventMask( everyEvent ) ;
- UMAShowWatchCursor() ;
+// TODO CHECK Can Be Removed SetEventMask( everyEvent ) ;
// Mac OS X passes a process serial number command line argument when
// the application is launched from the Finder. This argument must be
CFRelease( url ) ;
CFStringRef path = CFURLCopyFileSystemPath ( urlParent , kCFURLPOSIXPathStyle ) ;
CFRelease( urlParent ) ;
- wxString cwd = wxMacCFStringHolder(path).AsString(wxLocale::GetSystemEncoding());
+ wxString cwd = wxCFStringRef(path).AsString(wxLocale::GetSystemEncoding());
wxSetWorkingDirectory( cwd ) ;
}
// run loop takes ownership
CFRelease(m_macEventPosted);
- UMAShowArrowCursor() ;
-
return true;
}
{
if ( !wxAppBase::OnInitGui() )
return false ;
-
+#ifndef __LP64__
InstallStandardEventHandler( GetApplicationEventTarget() ) ;
-
if (!sm_isEmbedded)
{
InstallApplicationEventHandler(
GetwxMacAppEventHandlerUPP(),
GetEventTypeCount(eventList), eventList, wxTheApp, (EventHandlerRef *)&(wxTheApp->m_macEventHandler));
}
+#endif
if (!sm_isEmbedded)
{
// One last chance for pending objects to be cleaned up
wxTheApp->DeletePendingObjects();
- UMACleanupToolbox() ;
-
if (!sm_isEmbedded)
RemoveEventHandler( (EventHandlerRef)(wxTheApp->m_macEventHandler) );
// misc initialization stuff
//----------------------------------------------------------------------
+#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
bool wxMacConvertEventToRecord( EventRef event , EventRecord *rec)
{
OSStatus err = noErr ;
UInt32 keyCode ;
unsigned char charCode ;
UInt32 modifiers ;
-#ifndef __LP64__
GetMouse( &rec->where) ;
-#endif
err = GetEventParameter(event, kEventParamKeyModifiers, typeUInt32, NULL, 4, NULL, &modifiers);
err = GetEventParameter(event, kEventParamKeyCode, typeUInt32, NULL, 4, NULL, &keyCode);
err = GetEventParameter(event, kEventParamKeyMacCharCodes, typeChar, NULL, 1, NULL, &charCode);
{
UInt32 keyCode, modifiers;
unsigned char charCode ;
-#ifndef __LP64__
-
GetMouse( &rec->where) ;
-#endif
rec->what = keyDown ;
err = GetEventParameter(rawEvent, kEventParamKeyModifiers, typeUInt32, NULL, 4, NULL, &modifiers);
err = GetEventParameter(rawEvent, kEventParamKeyCode, typeUInt32, NULL, 4, NULL, &keyCode);
return converted ;
}
+#endif
wxApp::wxApp()
{
wxKeyEvent event(wxEVT_KEY_DOWN) ;
MacCreateKeyEvent( event, focus , keymessage , modifiers , when , wherex , wherey , uniChar ) ;
- handled = focus->GetEventHandler()->ProcessEvent( event ) ;
+ handled = focus->HandleWindowEvent( event ) ;
if ( handled && event.GetSkipped() )
handled = false ;
bool handled;
wxKeyEvent event( wxEVT_KEY_UP ) ;
MacCreateKeyEvent( event, focus , keymessage , modifiers , when , wherex , wherey , uniChar ) ;
- handled = focus->GetEventHandler()->ProcessEvent( event ) ;
+ handled = focus->HandleWindowEvent( event ) ;
return handled ;
}
bool handled = false ;
- wxTopLevelWindowMac *tlw = focus->MacGetTopLevelWindow() ;
+ wxNonOwnedWindow *tlw = focus->MacGetTopLevelWindow() ;
if (tlw)
{
event.SetEventType( wxEVT_CHAR_HOOK );
- handled = tlw->GetEventHandler()->ProcessEvent( event );
+ handled = tlw->HandleWindowEvent( event );
if ( handled && event.GetSkipped() )
handled = false ;
}
{
event.SetEventType( wxEVT_CHAR );
event.Skip( false ) ;
- handled = focus->GetEventHandler()->ProcessEvent( event ) ;
+ handled = focus->HandleWindowEvent( event ) ;
}
if ( !handled && (keyval == WXK_TAB) )
/* CTRL-TAB changes the (parent) window, i.e. switch notebook page */
new_event.SetWindowChange( event.ControlDown() );
new_event.SetCurrentFocus( focus );
- handled = focus->GetParent()->GetEventHandler()->ProcessEvent( new_event );
+ handled = focus->GetParent()->HandleWindowEvent( new_event );
if ( handled && new_event.GetSkipped() )
handled = false ;
}
{
// if window is not having a focus still testing for default enter or cancel
// TODO: add the UMA version for ActiveNonFloatingWindow
+#ifndef __LP64__
wxWindow* focus = wxFindWinFromMacWindow( FrontWindow() ) ;
if ( focus )
{
// generate wxID_CANCEL if command-. or <esc> has been pressed (typically in dialogs)
wxCommandEvent new_event(wxEVT_COMMAND_BUTTON_CLICKED,wxID_CANCEL);
new_event.SetEventObject( focus );
- handled = focus->GetEventHandler()->ProcessEvent( new_event );
+ handled = focus->HandleWindowEvent( new_event );
}
}
+#endif
}
return handled ;
}
event.SetTimestamp(when);
event.SetEventObject(focus);
}
+
+
+void wxApp::MacHideApp()
+{
+ wxMacCarbonEvent event( kEventClassCommand , kEventCommandProcess );
+ HICommand command;
+ memset( &command, 0 , sizeof(command) );
+ command.commandID = kHICommandHide ;
+ event.SetParameter<HICommand>(kEventParamDirectObject, command );
+ SendEventToApplication( event );
+}