added MacOpenURL() (patch 1235957)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45306 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -112,6 +112,7 @@ public:
|
|||||||
bool MacSendCharEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey , wxChar uniChar ) ;
|
bool MacSendCharEvent( wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey , wxChar uniChar ) ;
|
||||||
void MacCreateKeyEvent( wxKeyEvent& event, wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey , wxChar uniChar ) ;
|
void MacCreateKeyEvent( wxKeyEvent& event, wxWindow* focus , long keymessage , long modifiers , long when , short wherex , short wherey , wxChar uniChar ) ;
|
||||||
virtual short MacHandleAEODoc(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ;
|
virtual short MacHandleAEODoc(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ;
|
||||||
|
virtual short MacHandleAEGURL(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ;
|
||||||
virtual short MacHandleAEPDoc(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ;
|
virtual short MacHandleAEPDoc(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ;
|
||||||
virtual short MacHandleAEOApp(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ;
|
virtual short MacHandleAEOApp(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ;
|
||||||
virtual short MacHandleAEQuit(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ;
|
virtual short MacHandleAEQuit(const WXAPPLEEVENTREF event , WXAPPLEEVENTREF reply) ;
|
||||||
@@ -119,6 +120,8 @@ public:
|
|||||||
|
|
||||||
// in response of an open-document apple event
|
// in response of an open-document apple event
|
||||||
virtual void MacOpenFile(const wxString &fileName) ;
|
virtual void MacOpenFile(const wxString &fileName) ;
|
||||||
|
// in response of a get-url apple event
|
||||||
|
virtual void MacOpenURL(const wxString &url) ;
|
||||||
// in response of a print-document apple event
|
// in response of a print-document apple event
|
||||||
virtual void MacPrintFile(const wxString &fileName) ;
|
virtual void MacPrintFile(const wxString &fileName) ;
|
||||||
// in response of a open-application apple event
|
// in response of a open-application apple event
|
||||||
|
@@ -133,6 +133,12 @@ pascal OSErr AEHandleRApp( const AppleEvent *event , AppleEvent *reply , SRefCon
|
|||||||
return wxTheApp->MacHandleAERApp( (AppleEvent*) event , reply) ;
|
return wxTheApp->MacHandleAERApp( (AppleEvent*) event , reply) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pascal OSErr AEHandleGURL( const AppleEvent *event , AppleEvent *reply , long WXUNUSED(refcon) )
|
||||||
|
{
|
||||||
|
return wxTheApp->MacHandleAEGURL((WXEVENTREF *)event , reply) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// AEODoc Calls MacOpenFile on each of the files passed
|
// AEODoc Calls MacOpenFile on each of the files passed
|
||||||
|
|
||||||
short wxApp::MacHandleAEODoc(const WXEVENTREF event, WXEVENTREF WXUNUSED(reply))
|
short wxApp::MacHandleAEODoc(const WXEVENTREF event, WXEVENTREF WXUNUSED(reply))
|
||||||
@@ -174,6 +180,31 @@ short wxApp::MacHandleAEODoc(const WXEVENTREF event, WXEVENTREF WXUNUSED(reply))
|
|||||||
return noErr;
|
return noErr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AEODoc Calls MacOpenURL on the url passed
|
||||||
|
|
||||||
|
short wxApp::MacHandleAEGURL(const WXEVENTREF event, WXEVENTREF WXUNUSED(reply))
|
||||||
|
{
|
||||||
|
DescType returnedType;
|
||||||
|
Size actualSize;
|
||||||
|
char url[255];
|
||||||
|
OSErr err = AEGetParamPtr((AppleEvent *)event, keyDirectObject, typeChar,
|
||||||
|
&returnedType, url, sizeof(url)-1,
|
||||||
|
&actualSize);
|
||||||
|
if (err != noErr)
|
||||||
|
return err;
|
||||||
|
|
||||||
|
url[actualSize] = '\0'; // Terminate the C string
|
||||||
|
|
||||||
|
ProcessSerialNumber PSN ;
|
||||||
|
PSN.highLongOfPSN = 0 ;
|
||||||
|
PSN.lowLongOfPSN = kCurrentProcess ;
|
||||||
|
SetFrontProcess( &PSN ) ;
|
||||||
|
|
||||||
|
MacOpenURL(wxString(url, wxConvUTF8));
|
||||||
|
|
||||||
|
return noErr;
|
||||||
|
}
|
||||||
|
|
||||||
// AEPDoc Calls MacPrintFile on each of the files passed
|
// AEPDoc Calls MacPrintFile on each of the files passed
|
||||||
|
|
||||||
short wxApp::MacHandleAEPDoc(const WXEVENTREF event , WXEVENTREF WXUNUSED(reply))
|
short wxApp::MacHandleAEPDoc(const WXEVENTREF event , WXEVENTREF WXUNUSED(reply))
|
||||||
@@ -264,6 +295,9 @@ void wxApp::MacOpenFile(const wxString & fileName )
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxApp::MacOpenURL(const wxString & url )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void wxApp::MacPrintFile(const wxString & fileName )
|
void wxApp::MacPrintFile(const wxString & fileName )
|
||||||
{
|
{
|
||||||
@@ -860,6 +894,7 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
AEEventHandlerUPP sODocHandler = NULL ;
|
AEEventHandlerUPP sODocHandler = NULL ;
|
||||||
|
AEEventHandlerUPP sGURLHandler = NULL ;
|
||||||
AEEventHandlerUPP sOAppHandler = NULL ;
|
AEEventHandlerUPP sOAppHandler = NULL ;
|
||||||
AEEventHandlerUPP sPDocHandler = NULL ;
|
AEEventHandlerUPP sPDocHandler = NULL ;
|
||||||
AEEventHandlerUPP sRAppHandler = NULL ;
|
AEEventHandlerUPP sRAppHandler = NULL ;
|
||||||
@@ -882,6 +917,7 @@ bool wxApp::OnInitGui()
|
|||||||
if (!sm_isEmbedded)
|
if (!sm_isEmbedded)
|
||||||
{
|
{
|
||||||
sODocHandler = NewAEEventHandlerUPP(AEHandleODoc) ;
|
sODocHandler = NewAEEventHandlerUPP(AEHandleODoc) ;
|
||||||
|
sGURLHandler = NewAEEventHandlerUPP(AEHandleGURL) ;
|
||||||
sOAppHandler = NewAEEventHandlerUPP(AEHandleOApp) ;
|
sOAppHandler = NewAEEventHandlerUPP(AEHandleOApp) ;
|
||||||
sPDocHandler = NewAEEventHandlerUPP(AEHandlePDoc) ;
|
sPDocHandler = NewAEEventHandlerUPP(AEHandlePDoc) ;
|
||||||
sRAppHandler = NewAEEventHandlerUPP(AEHandleRApp) ;
|
sRAppHandler = NewAEEventHandlerUPP(AEHandleRApp) ;
|
||||||
@@ -889,6 +925,8 @@ bool wxApp::OnInitGui()
|
|||||||
|
|
||||||
AEInstallEventHandler( kCoreEventClass , kAEOpenDocuments ,
|
AEInstallEventHandler( kCoreEventClass , kAEOpenDocuments ,
|
||||||
sODocHandler , 0 , FALSE ) ;
|
sODocHandler , 0 , FALSE ) ;
|
||||||
|
AEInstallEventHandler( kInternetEventClass, kAEGetURL,
|
||||||
|
sGURLHandler , 0 , FALSE ) ;
|
||||||
AEInstallEventHandler( kCoreEventClass , kAEOpenApplication ,
|
AEInstallEventHandler( kCoreEventClass , kAEOpenApplication ,
|
||||||
sOAppHandler , 0 , FALSE ) ;
|
sOAppHandler , 0 , FALSE ) ;
|
||||||
AEInstallEventHandler( kCoreEventClass , kAEPrintDocuments ,
|
AEInstallEventHandler( kCoreEventClass , kAEPrintDocuments ,
|
||||||
@@ -937,6 +975,8 @@ void wxApp::CleanUp()
|
|||||||
{
|
{
|
||||||
AERemoveEventHandler( kCoreEventClass , kAEOpenDocuments ,
|
AERemoveEventHandler( kCoreEventClass , kAEOpenDocuments ,
|
||||||
sODocHandler , FALSE ) ;
|
sODocHandler , FALSE ) ;
|
||||||
|
AERemoveEventHandler( kInternetEventClass, kAEGetURL,
|
||||||
|
sGURLHandler , FALSE ) ;
|
||||||
AERemoveEventHandler( kCoreEventClass , kAEOpenApplication ,
|
AERemoveEventHandler( kCoreEventClass , kAEOpenApplication ,
|
||||||
sOAppHandler , FALSE ) ;
|
sOAppHandler , FALSE ) ;
|
||||||
AERemoveEventHandler( kCoreEventClass , kAEPrintDocuments ,
|
AERemoveEventHandler( kCoreEventClass , kAEPrintDocuments ,
|
||||||
@@ -947,6 +987,7 @@ void wxApp::CleanUp()
|
|||||||
sQuitHandler , FALSE ) ;
|
sQuitHandler , FALSE ) ;
|
||||||
|
|
||||||
DisposeAEEventHandlerUPP( sODocHandler ) ;
|
DisposeAEEventHandlerUPP( sODocHandler ) ;
|
||||||
|
DisposeAEEventHandlerUPP( sGURLHandler ) ;
|
||||||
DisposeAEEventHandlerUPP( sOAppHandler ) ;
|
DisposeAEEventHandlerUPP( sOAppHandler ) ;
|
||||||
DisposeAEEventHandlerUPP( sPDocHandler ) ;
|
DisposeAEEventHandlerUPP( sPDocHandler ) ;
|
||||||
DisposeAEEventHandlerUPP( sRAppHandler ) ;
|
DisposeAEEventHandlerUPP( sRAppHandler ) ;
|
||||||
|
Reference in New Issue
Block a user