summaryrefslogtreecommitdiff
path: root/uui/source/iahndl.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'uui/source/iahndl.hxx')
-rw-r--r--uui/source/iahndl.hxx26
1 files changed, 20 insertions, 6 deletions
diff --git a/uui/source/iahndl.hxx b/uui/source/iahndl.hxx
index dc1a3e8b8834..6402653d3bda 100644
--- a/uui/source/iahndl.hxx
+++ b/uui/source/iahndl.hxx
@@ -68,6 +68,8 @@ namespace com { namespace sun { namespace star {
}
} } }
+#include <hash_map>
+
class Window;
//============================================================================
@@ -84,15 +86,18 @@ struct InteractionHandlerData
typedef std::vector< InteractionHandlerData > InteractionHandlerDataList;
+typedef ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > Continuations;
+
+typedef ::std::hash_map< ::rtl::OUString, ::rtl::OUString, ::rtl::OUStringHash > StringHashMap;
+
//============================================================================
class UUIInteractionHelper
{
private:
- osl::Mutex m_aPropertyMutex;
- com::sun::star::uno::Reference<
- com::sun::star::lang::XMultiServiceFactory > m_xServiceFactory;
- com::sun::star::uno::Sequence< com::sun::star::uno::Any > m_aProperties;
-
+ mutable osl::Mutex m_aPropertyMutex;
+ ::com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > m_xServiceFactory;
+ ::com::sun::star::uno::Sequence< com::sun::star::uno::Any > m_aProperties;
+ StringHashMap m_aTypedCustomHandlers;
UUIInteractionHelper(UUIInteractionHelper &); // not implemented
void operator =(UUIInteractionHelper); // not implemented
@@ -155,7 +160,7 @@ private:
SAL_THROW(());
::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow>
- getParentXWindow()
+ getParentXWindow() const
SAL_THROW(());
rtl::OUString
@@ -166,6 +171,10 @@ private:
getInteractionHandler()
SAL_THROW((com::sun::star::uno::RuntimeException));
+ bool handleTypedHandlerImplementations(
+ ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionRequest > const & rRequest
+ );
+
bool
tryOtherInteractionHandler(
com::sun::star::uno::Reference<
@@ -328,6 +337,11 @@ private:
com::sun::star::uno::Reference<
com::sun::star::task::XInteractionRequest > const & rRequest)
SAL_THROW((::com::sun::star::uno::RuntimeException));
+
+ bool handleCustomRequest(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionRequest >& i_rRequest,
+ const ::rtl::OUString& i_rServiceName
+ ) const;
};
class ErrorResource: private Resource