diff options
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/aqua/source/app/vclnsapp.mm | 18 | ||||
-rw-r--r-- | vcl/aqua/source/window/salmenu.cxx | 12 | ||||
-rw-r--r-- | vcl/inc/vcl/svapp.hxx | 114 | ||||
-rw-r--r-- | vcl/ios/source/app/vcluiapp.mm | 3 |
4 files changed, 36 insertions, 111 deletions
diff --git a/vcl/aqua/source/app/vclnsapp.mm b/vcl/aqua/source/app/vclnsapp.mm index 612aca6e37bb..e2da47c8bc5b 100644 --- a/vcl/aqua/source/app/vclnsapp.mm +++ b/vcl/aqua/source/app/vclnsapp.mm @@ -314,8 +314,7 @@ const rtl::OUString aFile( GetOUString( pFile ) ); if( ! AquaSalInstance::isOnCommandLine( aFile ) ) { - const ApplicationEvent* pAppEvent = new ApplicationEvent( String(), ApplicationAddress(), - APPEVENT_OPEN_STRING, aFile ); + const ApplicationEvent* pAppEvent = new ApplicationEvent(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(APPEVENT_OPEN_STRING)), aFile); AquaSalInstance::aAppEventList.push_back( pAppEvent ); } return YES; @@ -335,7 +334,7 @@ if( ! AquaSalInstance::isOnCommandLine( aFile ) ) { if( aFileList.getLength() > 0 ) - aFileList.append( sal_Unicode( APPEVENT_PARAM_DELIMITER ) ); + aFileList.append('\n'); aFileList.append( aFile ); } } @@ -345,8 +344,7 @@ // we have no back channel here, we have to assume success, in which case // replyToOpenOrPrint does not need to be called according to documentation // [app replyToOpenOrPrint: NSApplicationDelegateReplySuccess]; - const ApplicationEvent* pAppEvent = new ApplicationEvent( String(), ApplicationAddress(), - APPEVENT_OPEN_STRING, aFileList.makeStringAndClear() ); + const ApplicationEvent* pAppEvent = new ApplicationEvent(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(APPEVENT_OPEN_STRING)), aFileList.makeStringAndClear()); AquaSalInstance::aAppEventList.push_back( pAppEvent ); } } @@ -355,8 +353,7 @@ { (void)app; const rtl::OUString aFile( GetOUString( pFile ) ); - const ApplicationEvent* pAppEvent = new ApplicationEvent( String(), ApplicationAddress(), - APPEVENT_PRINT_STRING, aFile ); + const ApplicationEvent* pAppEvent = new ApplicationEvent(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(APPEVENT_PRINT_STRING)), aFile); AquaSalInstance::aAppEventList.push_back( pAppEvent ); return YES; } @@ -374,11 +371,10 @@ while( (pFile = [it nextObject]) != nil ) { if( aFileList.getLength() > 0 ) - aFileList.append( sal_Unicode( APPEVENT_PARAM_DELIMITER ) ); + aFileList.append('\n'); aFileList.append( GetOUString( pFile ) ); } - const ApplicationEvent* pAppEvent = new ApplicationEvent( String(), ApplicationAddress(), - APPEVENT_PRINT_STRING, aFileList.makeStringAndClear() ); + const ApplicationEvent* pAppEvent = new ApplicationEvent(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(APPEVENT_PRINT_STRING)), aFileList.makeStringAndClear()); AquaSalInstance::aAppEventList.push_back( pAppEvent ); // we have no back channel here, we have to assume success // correct handling would be NSPrintingReplyLater and then send [app replyToOpenOrPrint] @@ -402,7 +398,7 @@ if( aReply == NSTerminateNow ) { - ApplicationEvent aEv( String(), ApplicationAddress(), ByteString( "PRIVATE:DOSHUTDOWN" ), String() ); + ApplicationEvent aEv(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PRIVATE:DOSHUTDOWN"))); GetpApp()->AppEvent( aEv ); ImplImageTreeSingletonRef()->shutDown(); // DeInitVCL should be called in ImplSVMain - unless someon _exits first which diff --git a/vcl/aqua/source/window/salmenu.cxx b/vcl/aqua/source/window/salmenu.cxx index d719ec5405b4..50aa9a673ed5 100644 --- a/vcl/aqua/source/window/salmenu.cxx +++ b/vcl/aqua/source/window/salmenu.cxx @@ -69,15 +69,13 @@ const AquaSalMenu* AquaSalMenu::pCurrentMenuBar = NULL; } else { - String aDialog; + rtl::OUString aDialog; if( nDialog == SHOWDIALOG_ID_ABOUT ) - aDialog = String( RTL_CONSTASCII_USTRINGPARAM( "ABOUT" ) ); + aDialog = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ABOUT")); else if( nDialog == SHOWDIALOG_ID_PREFERENCES ) - aDialog = String( RTL_CONSTASCII_USTRINGPARAM( "PREFERENCES" ) ); - const ApplicationEvent* pAppEvent = new ApplicationEvent( String(), - ApplicationAddress(), - ByteString( "SHOWDIALOG" ), - aDialog ); + aDialog = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PREFERENCES")); + const ApplicationEvent* pAppEvent = new ApplicationEvent( + rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SHOWDIALOG")), aDialog); AquaSalInstance::aAppEventList.push_back( pAppEvent ); } } diff --git a/vcl/inc/vcl/svapp.hxx b/vcl/inc/vcl/svapp.hxx index 1cc0a404b19c..fb32a8ba245c 100644 --- a/vcl/inc/vcl/svapp.hxx +++ b/vcl/inc/vcl/svapp.hxx @@ -97,105 +97,37 @@ typedef long (*VCLEventHookProc)( NotifyEvent& rEvt, void* pData ); enum Service { SERVICE_OLE, SERVICE_APPEVENT, SERVICE_IPC }; #endif -class VCL_DLLPUBLIC ApplicationAddress -{ -friend class Application; -protected: - UniString aHostName; - UniString aDisplayName; - UniString aDomainName; - int nPID; - -public: - ApplicationAddress(); - ApplicationAddress( const UniString& rDomain ); - ApplicationAddress( const UniString& rHost, - const UniString& rDisp, - const UniString& rDomain ); - ApplicationAddress( const UniString& rHost, int nPID ); - - const UniString& GetHost() const { return aHostName; } - const UniString& GetDisplay() const { return aDisplayName; } - const UniString& GetDomain() const { return aDomainName; } - int GetPID() const { return nPID; } - - sal_Bool IsConnectToSame( const ApplicationAddress& rAdr ) const; -}; - -inline ApplicationAddress::ApplicationAddress() -{ - nPID = 0; -} - -inline ApplicationAddress::ApplicationAddress( const UniString& rDomain ) -{ - aDomainName = rDomain; - nPID = 0; -} - -inline ApplicationAddress::ApplicationAddress( const UniString& rHost, - const UniString& rDisp, - const UniString& rDomain ) -{ - aHostName = rHost; - aDisplayName = rDisp; - aDomainName = rDomain; - nPID = 0; -} - -inline ApplicationAddress::ApplicationAddress( const UniString& rHost, int nPIDPar ) -{ - aHostName = rHost; - nPID = nPIDPar; -} - -inline sal_Bool ApplicationAddress::IsConnectToSame( const ApplicationAddress& rAdr ) const -{ - if ( nPID && ((nPID == rAdr.nPID) && (aHostName.Equals( rAdr.aHostName))) ) - return sal_True; - else - return sal_False; -} - -#define APPEVENT_PARAM_DELIMITER '\n' - #define APPEVENT_OPEN_STRING "Open" #define APPEVENT_PRINT_STRING "Print" class VCL_DLLPUBLIC ApplicationEvent { -private: - UniString aSenderAppName; // Absender Applikationsname - rtl::OString m_aEvent; // Event - UniString aData; // Uebertragene Daten - ApplicationAddress aAppAddr; // Absender Addresse + rtl::OUString aEvent; + rtl::OUString aData; + std::vector<rtl::OUString> aParams; + ApplicationEvent(); public: - ApplicationEvent() {} - ApplicationEvent( const UniString& rSenderAppName, - const ApplicationAddress& rAppAddr, - const rtl::OString& rEvent, - const UniString& rData ); - - const UniString& GetSenderAppName() const { return aSenderAppName; } - const rtl::OString& GetEvent() const { return m_aEvent; } - const UniString& GetData() const { return aData; } - const ApplicationAddress& GetAppAddress() const { return aAppAddr; } - - sal_uInt16 GetParamCount() const { return aData.GetTokenCount( APPEVENT_PARAM_DELIMITER ); } - UniString GetParam( sal_uInt16 nParam ) const { return aData.GetToken( nParam, APPEVENT_PARAM_DELIMITER ); } -}; + ApplicationEvent(const rtl::OUString& rEvent, + const rtl::OUString& rData = rtl::OUString()): + aEvent(rEvent), + aData(rData) + { + sal_Int32 start = 0; + for(sal_Int32 i = 0; i < rData.getLength(); ++i) + { + if(rData[i] == '\n') + { + aParams.push_back(rData.copy(start, i - start)); + start = ++i; + } + } + } -inline ApplicationEvent::ApplicationEvent( const UniString& rSenderAppName, - const ApplicationAddress& rAppAddr, - const rtl::OString& rEvent, - const UniString& rData ) : - aSenderAppName( rSenderAppName ), - m_aEvent( rEvent ), - aData( rData ), - aAppAddr( rAppAddr ) -{ -} + const rtl::OUString& GetEvent() const { return aEvent; } + const rtl::OUString& GetData() const { return aData; } + const std::vector<rtl::OUString>& GetParams() const { return aParams; } +}; class VCL_DLLPUBLIC PropertyHandler { diff --git a/vcl/ios/source/app/vcluiapp.mm b/vcl/ios/source/app/vcluiapp.mm index c7461d9f6b85..c47669e69138 100644 --- a/vcl/ios/source/app/vcluiapp.mm +++ b/vcl/ios/source/app/vcluiapp.mm @@ -79,8 +79,7 @@ // we have no back channel here, we have to assume success, in which case // replyToOpenOrPrint does not need to be called according to documentation // [app replyToOpenOrPrint: NSApplicationDelegateReplySuccess]; - const ApplicationEvent* pAppEvent = new ApplicationEvent( String(), ApplicationAddress(), - APPEVENT_OPEN_STRING, aFileList.makeStringAndClear() ); + const ApplicationEvent* pAppEvent = new ApplicationEvent(::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(APPEVENT_OPEN_STRING)), aFileList.makeStringAndClear()); IosSalInstance::aAppEventList.push_back( pAppEvent ); } } |