diff options
Diffstat (limited to 'uui/source/iahndl.hxx')
-rw-r--r-- | uui/source/iahndl.hxx | 452 |
1 files changed, 184 insertions, 268 deletions
diff --git a/uui/source/iahndl.hxx b/uui/source/iahndl.hxx index bea53e436c6d..c479bc95c5fc 100644 --- a/uui/source/iahndl.hxx +++ b/uui/source/iahndl.hxx @@ -31,419 +31,335 @@ #ifndef UUI_IAHNDL_HXX #define UUI_IAHNDL_HXX -#ifndef INCLUDED_VECTOR #include <vector> -#define INCLUDED_VECTOR -#endif + #include "osl/mutex.hxx" +#include "rtl/ustring.hxx" + #include "com/sun/star/uno/Reference.hxx" #include "com/sun/star/uno/Sequence.hxx" #include "com/sun/star/beans/Optional.hpp" -#include "com/sun/star/embed/XStorage.hpp" #include "com/sun/star/task/InteractionClassification.hpp" -#include "com/sun/star/task/PasswordRequestMode.hpp" -#include "com/sun/star/task/FutureDocumentVersionProductUpdateRequest.hpp" -#include "com/sun/star/security/DocumentSignatureInformation.hpp" -#include "tools/solar.h" -#include "tools/errcode.hxx" -#include "vcl/wintypes.hxx" -#include "fltdlg.hxx" -#include <com/sun/star/security/XCertificate.hpp> -#ifndef _COM_SUN_STAR_XML_CRYPTO_XXSECURITYENVIRONMENT_HPP_ -#include <com/sun/star/xml/crypto/XSecurityEnvironment.hpp> -#endif - -class Window; -class LoginErrorInfo; -struct CntHTTPCookieRequest; - -#define DESCRIPTION_1 1 -#define DESCRIPTION_2 2 -#define TITLE 3 - -#define UUI_DOC_LOAD_LOCK 0 -#define UUI_DOC_OWN_LOAD_LOCK 1 -#define UUI_DOC_SAVE_LOCK 2 -#define UUI_DOC_OWN_SAVE_LOCK 3 - -//============================================================================ -/** Information about a InteractionHandler - */ -struct InteractionHandlerData -{ - /** The UNO service name to use to instanciate the content provider. - */ - rtl::OUString ServiceName; - InteractionHandlerData() {}; - InteractionHandlerData( const rtl::OUString & rService) - : ServiceName( rService ){} -}; - -typedef std::vector< InteractionHandlerData > InteractionHandlerDataList; - -namespace cssu = com::sun::star::uno; -namespace dcss = ::com::sun::star; +#include "tools/solar.h" // USHORT +#include "tools/errcode.hxx" // ErrCode +#include "tools/rc.hxx" // Resource +#include "vcl/wintypes.hxx" // WinBits namespace com { namespace sun { namespace star { - namespace document { - class AmbigousFilterRequest; - class FilterOptionsRequest; - class NoSuchFilterRequest; + namespace awt { + class XWindow; + } + namespace embed { + class XStorage; } namespace lang { class XMultiServiceFactory; } + namespace security { + class DocumentSignatureInformation; + } namespace task { + class FutureDocumentVersionProductUpdateRequest; class XInteractionContinuation; class XInteractionHandler; class XInteractionRequest; - class XPasswordContainer; - class XUrlContainer; } namespace ucb { - class AuthenticationRequest; - class HandleCookiesRequest; class NameClashResolveRequest; - class CertificateValidationRequest; - } - namespace uno { - class RuntimeException; } } } } +class Window; + +//============================================================================ +struct InteractionHandlerData +{ + /** The UNO service name to use to instanciate the content provider. + */ + rtl::OUString ServiceName; + + InteractionHandlerData() {}; + InteractionHandlerData(const rtl::OUString & rService) + : ServiceName( rService ){} +}; + +typedef std::vector< InteractionHandlerData > InteractionHandlerDataList; + +//============================================================================ class UUIInteractionHelper { private: osl::Mutex m_aPropertyMutex; com::sun::star::uno::Reference< - com::sun::star::lang::XMultiServiceFactory > - m_xServiceFactory; + com::sun::star::lang::XMultiServiceFactory > m_xServiceFactory; com::sun::star::uno::Sequence< com::sun::star::uno::Any > m_aProperties; UUIInteractionHelper(UUIInteractionHelper &); // not implemented void operator =(UUIInteractionHelper); // not implemented public: - UUIInteractionHelper(com::sun::star::uno::Reference< - com::sun::star::lang::XMultiServiceFactory > - const & rServiceFactory, - com::sun::star::uno::Sequence< - com::sun::star::uno::Any > const & rArguments) + UUIInteractionHelper( + com::sun::star::uno::Reference< + com::sun::star::lang::XMultiServiceFactory > const & rServiceFactory, + com::sun::star::uno::Sequence< + com::sun::star::uno::Any > const & rArguments) SAL_THROW(()); - UUIInteractionHelper(com::sun::star::uno::Reference< - com::sun::star::lang::XMultiServiceFactory > - const & rServiceFactory) + UUIInteractionHelper( + com::sun::star::uno::Reference< + com::sun::star::lang::XMultiServiceFactory > const & rServiceFactory) SAL_THROW(()); ~UUIInteractionHelper() SAL_THROW(()); bool - handleRequest(com::sun::star::uno::Reference< - com::sun::star::task::XInteractionRequest > const & - rRequest) - throw (com::sun::star::uno::RuntimeException); + handleRequest( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest) + SAL_THROW((com::sun::star::uno::RuntimeException)); com::sun::star::beans::Optional< rtl::OUString > - getStringFromRequest(com::sun::star::uno::Reference< - com::sun::star::task::XInteractionRequest > const & - rRequest) - throw (com::sun::star::uno::RuntimeException); + getStringFromRequest( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest) + SAL_THROW((com::sun::star::uno::RuntimeException)); + + // Helper. + static ::rtl::OUString + replaceMessageWithArguments( + ::rtl::OUString aMessage, + std::vector< rtl::OUString > const & rArguments ); private: bool - handle_impl(com::sun::star::uno::Reference< - com::sun::star::task::XInteractionRequest > const & - rRequest) - throw (com::sun::star::uno::RuntimeException); - - void - GetInteractionHandlerList(InteractionHandlerDataList &rdataList); + handleRequest_impl( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest, + bool bObtainErrorStringOnly, + bool & bHasErrorString, + rtl::OUString & rErrorString) + SAL_THROW((com::sun::star::uno::RuntimeException)); - sal_Bool - isDomainMatch( rtl::OUString hostName, rtl::OUString certHostName); static long handlerequest(void* pHandleData, void* pInteractionHandler); com::sun::star::beans::Optional< rtl::OUString > - getStringFromRequest_impl(com::sun::star::uno::Reference< - com::sun::star::task::XInteractionRequest > const & - rRequest) - throw (com::sun::star::uno::RuntimeException); + getStringFromRequest_impl( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest) + SAL_THROW((com::sun::star::uno::RuntimeException)); static long getstringfromrequest(void* pHandleData, void* pInteractionHandler); - Window * getParentProperty() SAL_THROW(()); - - ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow> getParentXWindow() SAL_THROW(()); + Window * + getParentProperty() + SAL_THROW(()); - rtl::OUString getContextProperty() SAL_THROW(()); + ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow> + getParentXWindow() + SAL_THROW(()); - bool - initPasswordContainer(com::sun::star::uno::Reference< - com::sun::star::task::XPasswordContainer > * - pContainer, - com::sun::star::uno::Reference< - com::sun::star::task::XUrlContainer > * - pUrlContainer) - const SAL_THROW(()); + rtl::OUString + getContextProperty() + SAL_THROW(()); com::sun::star::uno::Reference< com::sun::star::task::XInteractionHandler > - getInteractionHandler() const - SAL_THROW((com::sun::star::uno::RuntimeException)); - - void executeLoginDialog(LoginErrorInfo & rInfo, - rtl::OUString const & rRealm) + getInteractionHandler() SAL_THROW((com::sun::star::uno::RuntimeException)); - void - executeMasterPasswordDialog(LoginErrorInfo & rInfo, - com::sun::star::task::PasswordRequestMode nMode) - SAL_THROW((com::sun::star::uno::RuntimeException)); - - void - executePasswordDialog(LoginErrorInfo & rInfo, - com::sun::star::task::PasswordRequestMode nMode, - ::rtl::OUString aDocumentName) + bool + tryOtherInteractionHandler( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest) SAL_THROW((com::sun::star::uno::RuntimeException)); void - executeMSPasswordDialog(LoginErrorInfo & rInfo, - com::sun::star::task::PasswordRequestMode nMode, - ::rtl::OUString aDocumentName) - SAL_THROW((com::sun::star::uno::RuntimeException)); - - void executeCookieDialog(CntHTTPCookieRequest & rRequest) + getInteractionHandlerList(InteractionHandlerDataList &rdataList) SAL_THROW((com::sun::star::uno::RuntimeException)); - void executeFilterDialog(rtl::OUString const & rURL , - uui::FilterNameList const & rFilters, - rtl::OUString & rFilter ) - SAL_THROW((com::sun::star::uno::RuntimeException)); - - sal_Bool executeUnknownAuthDialog( const cssu::Reference< dcss::security::XCertificate >& rXCert ) - SAL_THROW((com::sun::star::uno::RuntimeException)); - - sal_Bool executeSSLWarnDialog( const cssu::Reference< dcss::security::XCertificate >& rXCert, - sal_Int32 const & failures, - const rtl::OUString & hostName) - SAL_THROW((com::sun::star::uno::RuntimeException)); + static bool + isInformationalErrorMessageRequest( + com::sun::star::uno::Sequence< + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations); - rtl::OUString - getLocalizedDatTimeStr( ::com::sun::star::util::DateTime aDateTime ); - - USHORT - executeErrorDialog(com::sun::star::task::InteractionClassification - eClassification, - rtl::OUString const & rContext, - rtl::OUString const & rMessage, - WinBits nButtonMask ) - SAL_THROW((com::sun::star::uno::RuntimeException)); + //===================================================================== - USHORT - executeMessageBox( rtl::OUString const & rTitle, - rtl::OUString const & rMessage, - WinBits nButtonMask ) + bool + handleInteractiveIOException( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest, + bool bObtainErrorStringOnly, + bool & bHasErrorString, + rtl::OUString & rErrorString) SAL_THROW((com::sun::star::uno::RuntimeException)); - void + bool handleAuthenticationRequest( - com::sun::star::ucb::AuthenticationRequest const & rRequest, - com::sun::star::uno::Sequence< com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations, - rtl::OUString const & rURL) + com::sun::star::task::XInteractionRequest > const & rRequest) SAL_THROW((com::sun::star::uno::RuntimeException)); - void + bool handleCertificateValidationRequest( - com::sun::star::ucb::CertificateValidationRequest const & rRequest, - com::sun::star::uno::Sequence< com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::task::XInteractionRequest > const & rRequest) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleNameClashResolveRequest( com::sun::star::ucb::NameClashResolveRequest const & rRequest, - com::sun::star::uno::Sequence< com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::uno::Sequence< + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations) SAL_THROW((com::sun::star::uno::RuntimeException)); - void + bool handleMasterPasswordRequest( - com::sun::star::task::PasswordRequestMode nMode, - com::sun::star::uno::Sequence< com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::task::XInteractionRequest > const & rRequest) SAL_THROW((com::sun::star::uno::RuntimeException)); - - void + bool handlePasswordRequest( - com::sun::star::task::PasswordRequestMode nMode, - com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations, - ::rtl::OUString aDocumentName = ::rtl::OUString()) - SAL_THROW((com::sun::star::uno::RuntimeException)); - - void - handleMSPasswordRequest( - com::sun::star::task::PasswordRequestMode nMode, - com::sun::star::uno::Sequence< com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations, - ::rtl::OUString aDocumentName = ::rtl::OUString()) + com::sun::star::task::XInteractionRequest > const & rRequest) SAL_THROW((com::sun::star::uno::RuntimeException)); - void + bool handleCookiesRequest( - com::sun::star::ucb::HandleCookiesRequest const & rRequest, - com::sun::star::uno::Sequence< com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::task::XInteractionRequest > const & rRequest) SAL_THROW((com::sun::star::uno::RuntimeException)); - void + bool handleNoSuchFilterRequest( - com::sun::star::document::NoSuchFilterRequest const & rRequest, - com::sun::star::uno::Sequence< com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::task::XInteractionRequest > const & rRequest) SAL_THROW((com::sun::star::uno::RuntimeException)); - void + bool handleAmbigousFilterRequest( - com::sun::star::document::AmbigousFilterRequest const & rRequest, - com::sun::star::uno::Sequence< com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::task::XInteractionRequest > const & rRequest) SAL_THROW((com::sun::star::uno::RuntimeException)); - void + bool handleFilterOptionsRequest( - com::sun::star::document::FilterOptionsRequest const & rRequest, - com::sun::star::uno::Sequence< com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations) + com::sun::star::task::XInteractionRequest > const & rRequest) SAL_THROW((com::sun::star::uno::RuntimeException)); void - handleErrorRequest( + handleErrorHandlerRequest( com::sun::star::task::InteractionClassification eClassification, ErrCode nErrorCode, std::vector< rtl::OUString > const & rArguments, com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations, - bool bObtainErrorStringOnly, - bool & bHasErrorString, - rtl::OUString & rErrorString) + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations, + bool bObtainErrorStringOnly, + bool & bHasErrorString, + rtl::OUString & rErrorString) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleGenericErrorRequest( - sal_Int32 nErrorCode, + sal_Int32 nErrorCode, com::sun::star::uno::Sequence< - com::sun::star::uno::Reference< - com::sun::star::task::XInteractionContinuation > > const & - rContinuations, - bool bObtainErrorStringOnly, - bool & bHasErrorString, - rtl::OUString & rErrorString) + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionContinuation > > const & + rContinuations, + bool bObtainErrorStringOnly, + bool & bHasErrorString, + rtl::OUString & rErrorString) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleMacroConfirmRequest( const ::rtl::OUString& aDocumentURL, - const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >& xZipStorage, + const ::com::sun::star::uno::Reference< + ::com::sun::star::embed::XStorage >& xZipStorage, const ::rtl::OUString& aDocumentVersion, - const ::com::sun::star::uno::Sequence< ::com::sun::star::security::DocumentSignatureInformation > aSignInfo, + const ::com::sun::star::uno::Sequence< + ::com::sun::star::security::DocumentSignatureInformation > + aSignInfo, com::sun::star::uno::Sequence< com::sun::star::uno::Reference< com::sun::star::task::XInteractionContinuation > > const & - rContinuations - ) + rContinuations) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleFutureDocumentVersionUpdateRequest( - const ::com::sun::star::task::FutureDocumentVersionProductUpdateRequest& _rRequest, + const ::com::sun::star::task::FutureDocumentVersionProductUpdateRequest& + _rRequest, com::sun::star::uno::Sequence< com::sun::star::uno::Reference< com::sun::star::task::XInteractionContinuation > > const & - rContinuations - ) + rContinuations) SAL_THROW((com::sun::star::uno::RuntimeException)); void handleBrokenPackageRequest( - std::vector< rtl::OUString > const & rArguments, - ::com::sun::star::uno::Sequence< - ::com::sun::star::uno::Reference< - ::com::sun::star::task::XInteractionContinuation > > const & - rContinuations, - bool bObtainErrorStringOnly, - bool & bHasErrorString, - rtl::OUString & rErrorString) + std::vector< rtl::OUString > const & rArguments, + ::com::sun::star::uno::Sequence< + ::com::sun::star::uno::Reference< + ::com::sun::star::task::XInteractionContinuation > > const & + rContinuations, + bool bObtainErrorStringOnly, + bool & bHasErrorString, + rtl::OUString & rErrorString) SAL_THROW((::com::sun::star::uno::RuntimeException)); - bool handleMessageboxRequests( - ::com::sun::star::uno::Reference< - ::com::sun::star::task::XInteractionRequest > const & - rRequest, - bool bObtainErrorStringOnly, - bool & bHasErrorString, - rtl::OUString & rErrorString); - - bool handleDialogRequests( - ::com::sun::star::uno::Reference< - ::com::sun::star::task::XInteractionRequest > const & - rRequest); - - bool handleErrorHandlerRequests( - ::com::sun::star::uno::Reference< - ::com::sun::star::task::XInteractionRequest > const & - rRequest, - bool bObtainErrorStringOnly, - bool & bHasErrorString, - rtl::OUString & rErrorString); - - void handleLockedDocumentRequest( - const ::rtl::OUString& aDocumentURL, - const ::rtl::OUString& aInfo, - ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< - ::com::sun::star::task::XInteractionContinuation > > const & - rContinuations, - sal_uInt16 nMode ) + bool handleLockedDocumentRequest( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest) SAL_THROW((::com::sun::star::uno::RuntimeException)); - void handleChangedByOthersRequest( - ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< - ::com::sun::star::task::XInteractionContinuation > > const & - rContinuations ) + bool handleChangedByOthersRequest( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest) SAL_THROW((::com::sun::star::uno::RuntimeException)); - void handleLockFileIgnoreRequest( - ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< - ::com::sun::star::task::XInteractionContinuation > > const & - rContinuations ) + bool handleLockFileIgnoreRequest( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest) SAL_THROW((::com::sun::star::uno::RuntimeException)); +}; +class ErrorResource: private Resource +{ +public: + inline ErrorResource(ResId & rResId) SAL_THROW(()): Resource(rResId) {} + + inline ~ErrorResource() SAL_THROW(()) { FreeResource(); } + + bool getString(ErrCode nErrorCode, rtl::OUString * pString) const + SAL_THROW(()); +}; + +/* +class InteractionRequest +{ +public: + InteractionRequest( + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > const & rRequest) + : m_aRequest( rRequest ) {} + + virtual bool toString( rtl::OUString & rString ) = 0; + virtual bool handle( rtl::OUString & rString ) = 0; + +private: + com::sun::star::uno::Reference< + com::sun::star::task::XInteractionRequest > m_aRequest; }; +*/ #endif // UUI_IAHNDL_HXX |