LibreOffice Module uui (master) 1
iahndl.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
22#include <rtl/ustring.hxx>
23
24#include <com/sun/star/uno/Reference.hxx>
25#include <com/sun/star/uno/Sequence.hxx>
26#include <com/sun/star/uno/XComponentContext.hpp>
27
28#include <com/sun/star/beans/Optional.hpp>
29#include <com/sun/star/task/InteractionClassification.hpp>
30
32#include <unotools/resmgr.hxx>
33
34#include <unordered_map>
35#include <vector>
36
37namespace com::sun::star {
38 namespace awt {
39 class XWindow;
40 }
41 namespace embed {
42 class XStorage;
43 }
44 namespace lang {
45 class XMultiServiceFactory;
46 }
47 namespace security {
48 struct DocumentSignatureInformation;
49 }
50 namespace task {
51 class XInteractionContinuation;
53 class XInteractionRequest;
54 }
55 namespace ucb {
56 class NameClashResolveRequest;
57 }
58}
59
61{
64 OUString ServiceName;
65};
66
67typedef std::vector< InteractionHandlerData > InteractionHandlerDataList;
68
69typedef std::unordered_map< OUString, OUString > StringHashMap;
70
72{
73private:
74 css::uno::Reference< css::uno::XComponentContext > m_xContext;
75 css::uno::Reference< css::awt::XWindow > m_xWindowParam;
80
81public:
83 css::uno::Reference< css::uno::XComponentContext > xContext);
84
85 const css::uno::Reference<css::awt::XWindow> & GetParentWindow() const { return m_xWindowParam; }
86 void SetParentWindow(const css::uno::Reference<css::awt::XWindow>& rWindow) { m_xWindowParam = rWindow; }
87
88 void setContext(OUString const & context) { m_aContextParam = context; }
89
91
92 bool handleRequest( css::uno::Reference< css::task::XInteractionRequest > const & rRequest);
93
94 css::beans::Optional< OUString >
96 css::uno::Reference< css::task::XInteractionRequest > const & rRequest);
97
98 // Helper.
99 static OUString
101 const OUString& aMessage,
102 std::vector< OUString > const & rArguments );
103
104private:
105 bool
107 css::uno::Reference< css::task::XInteractionRequest > const & rRequest,
108 bool bObtainErrorStringOnly,
109 bool & bHasErrorString,
110 OUString & rErrorString);
111
112 static void handlerequest(void* pHandleData, void* pInteractionHandler);
113
114 css::beans::Optional< OUString >
116 css::uno::Reference< css::task::XInteractionRequest > const & rRequest);
117
118 static void getstringfromrequest(void* pHandleData, void* pInteractionHandler);
119
120 const css::uno::Reference< css::awt::XWindow>&
121 getParentXWindow() const;
122
123 css::uno::Reference< css::task::XInteractionHandler2 >
124 getInteractionHandler() const;
125
127 css::uno::Reference< css::task::XInteractionRequest > const & rRequest
128 );
129
130 bool
132 css::uno::Reference< css::task::XInteractionRequest > const & rRequest);
133
134 void
136
137 static bool
139 css::uno::Sequence<
140 css::uno::Reference< css::task::XInteractionContinuation > > const & rContinuations);
141
142 bool
144 css::uno::Reference< css::task::XInteractionRequest > const & rRequest,
145 bool bObtainErrorStringOnly,
146 bool & bHasErrorString,
147 OUString & rErrorString);
148
149 bool
151 css::uno::Reference< css::task::XInteractionRequest > const & rRequest);
152
153 bool
155 css::uno::Reference< css::task::XInteractionRequest > const & rRequest);
156
157 void
159 css::ucb::NameClashResolveRequest const & rRequest,
160 css::uno::Sequence<
161 css::uno::Reference< css::task::XInteractionContinuation > > const & rContinuations);
162
163 bool
165 css::uno::Reference< css::task::XInteractionRequest > const & rRequest);
166
167 bool
169 css::uno::Reference< css::task::XInteractionRequest > const & rRequest);
170
171 bool
173 css::uno::Reference< css::task::XInteractionRequest > const & rRequest);
174
175 bool
177 css::uno::Reference<
178 css::task::XInteractionRequest > const & rRequest);
179
180 void
182 css::task::InteractionClassification eClassification,
183 ErrCode nErrorCode,
184 std::vector< OUString > const & rArguments,
185 css::uno::Sequence<
186 css::uno::Reference< css::task::XInteractionContinuation > > const & rContinuations,
187 bool bObtainErrorStringOnly,
188 bool & bHasErrorString,
189 OUString & rErrorString);
190
191 void
193 ErrCode nErrorCode,
194 css::uno::Sequence<
195 css::uno::Reference< css::task::XInteractionContinuation > > const & rContinuations,
196 bool bObtainErrorStringOnly,
197 bool & bHasErrorString,
198 OUString & rErrorString);
199
200 void
202 const OUString& aDocumentURL,
203 const css::uno::Reference< css::embed::XStorage >& xZipStorage,
204 const OUString& aDocumentVersion,
205 const css::uno::Sequence< css::security::DocumentSignatureInformation >& aSignInfo,
206 css::uno::Sequence<
207 css::uno::Reference< css::task::XInteractionContinuation > > const & rContinuations);
208
209 void
211 std::vector< OUString > const & rArguments,
212 css::uno::Sequence<
213 css::uno::Reference< css::task::XInteractionContinuation > > const & rContinuations,
214 bool bObtainErrorStringOnly,
215 bool & bHasErrorString,
216 OUString & rErrorString);
217
219 css::uno::Reference< css::task::XInteractionRequest > const & rRequest);
220
222 css::uno::Reference<
223 css::task::XInteractionRequest > const & rRequest);
224
226 css::uno::Reference< css::task::XInteractionRequest > const & rRequest);
227
229 css::uno::Reference<css::task::XInteractionRequest> const& rRequest);
230
232 const css::uno::Reference< css::task::XInteractionRequest >& i_rRequest,
233 const OUString& i_rServiceName
234 ) const;
235
236 void
238 const OUString & instructions,
239 const OUString & url,
240 css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const & rContinuations );
241};
242
244{
245 const std::pair<TranslateId, ErrCode>* m_pStringArray;
246 const std::locale& m_rResLocale;
247public:
248 explicit ErrorResource(const std::pair<TranslateId, ErrCode>* pStringArray, const std::locale& rResLocale)
249 : m_pStringArray(pStringArray)
250 , m_rResLocale(rResLocale)
251 {
252 }
253 bool getString(ErrCode nErrorCode, OUString &rString) const;
254};
255
256/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
std::unordered_map< OUString, OUString > StringHashMap
ErrorResource(const std::pair< TranslateId, ErrCode > *pStringArray, const std::locale &rResLocale)
Definition: iahndl.hxx:248
const std::locale & m_rResLocale
Definition: iahndl.hxx:246
bool getString(ErrCode nErrorCode, OUString &rString) const
Definition: iahndl.cxx:1217
const std::pair< TranslateId, ErrCode > * m_pStringArray
Definition: iahndl.hxx:245
void handleErrorHandlerRequest(css::task::InteractionClassification eClassification, ErrCode nErrorCode, std::vector< OUString > const &rArguments, css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations, bool bObtainErrorStringOnly, bool &bHasErrorString, OUString &rErrorString)
UUIInteractionHelper & operator=(UUIInteractionHelper const &)=delete
bool handleInteractiveIOException(css::uno::Reference< css::task::XInteractionRequest > const &rRequest, bool bObtainErrorStringOnly, bool &bHasErrorString, OUString &rErrorString)
const css::uno::Reference< css::awt::XWindow > & GetParentWindow() const
Definition: iahndl.hxx:85
void setContext(OUString const &context)
Definition: iahndl.hxx:88
bool handleRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
Definition: iahndl.cxx:150
bool handleReloadEditableRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
void getInteractionHandlerList(InteractionHandlerDataList &rdataList)
Definition: iahndl.cxx:833
css::beans::Optional< OUString > getStringFromRequest_impl(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
Definition: iahndl.cxx:184
static void getstringfromrequest(void *pHandleData, void *pInteractionHandler)
Definition: iahndl.cxx:174
css::uno::Reference< css::awt::XWindow > m_xWindowParam
Definition: iahndl.hxx:75
bool handleLockedDocumentRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
bool handlePasswordRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
UUIInteractionHelper(css::uno::Reference< css::uno::XComponentContext > xContext)
bool handleFilterOptionsRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
css::beans::Optional< OUString > getStringFromRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
Definition: iahndl.cxx:201
void handleNameClashResolveRequest(css::ucb::NameClashResolveRequest const &rRequest, css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations)
Definition: iahndl.cxx:976
bool handleAuthenticationRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
bool handleChangedByOthersRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
css::uno::Reference< css::task::XInteractionHandler2 > getInteractionHandler() const
Definition: iahndl.cxx:913
bool handleTypedHandlerImplementations(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
Definition: iahndl.cxx:319
bool tryOtherInteractionHandler(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
Definition: iahndl.cxx:261
static bool isInformationalErrorMessageRequest(css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations)
Definition: iahndl.cxx:239
static void handlerequest(void *pHandleData, void *pInteractionHandler)
Definition: iahndl.cxx:135
bool handleCertificateValidationRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
Definition: iahndl-ssl.cxx:346
css::uno::Reference< css::uno::XComponentContext > m_xContext
Definition: iahndl.hxx:74
OUString m_aContextParam
Definition: iahndl.hxx:76
UUIInteractionHelper(UUIInteractionHelper const &)=delete
StringHashMap m_aTypedCustomHandlers
Definition: iahndl.hxx:77
static OUString replaceMessageWithArguments(const OUString &aMessage, std::vector< OUString > const &rArguments)
Definition: iahndl.cxx:222
bool handleNoSuchFilterRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
bool handleLockFileProblemRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
bool handleMasterPasswordRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
void handleMacroConfirmRequest(const OUString &aDocumentURL, const css::uno::Reference< css::embed::XStorage > &xZipStorage, const OUString &aDocumentVersion, const css::uno::Sequence< css::security::DocumentSignatureInformation > &aSignInfo, css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations)
Definition: iahndl.cxx:1093
bool handleRequest_impl(css::uno::Reference< css::task::XInteractionRequest > const &rRequest, bool bObtainErrorStringOnly, bool &bHasErrorString, OUString &rErrorString)
Definition: iahndl.cxx:369
void handleAuthFallbackRequest(const OUString &instructions, const OUString &url, css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations)
void handleBrokenPackageRequest(std::vector< OUString > const &rArguments, css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations, bool bObtainErrorStringOnly, bool &bHasErrorString, OUString &rErrorString)
Definition: iahndl.cxx:1130
bool handleCustomRequest(const css::uno::Reference< css::task::XInteractionRequest > &i_rRequest, const OUString &i_rServiceName) const
Definition: iahndl.cxx:294
const css::uno::Reference< css::awt::XWindow > & getParentXWindow() const
Definition: iahndl.cxx:907
void SetParentWindow(const css::uno::Reference< css::awt::XWindow > &rWindow)
Definition: iahndl.hxx:86
void handleGenericErrorRequest(ErrCode nErrorCode, css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations, bool bObtainErrorStringOnly, bool &bHasErrorString, OUString &rErrorString)
Definition: iahndl.cxx:1031
std::vector< InteractionHandlerData > InteractionHandlerDataList
Definition: iahndl.hxx:67
std::unordered_map< OUString, OUString > StringHashMap
Definition: iahndl.hxx:69
OUString ServiceName
The UNO service name to use to instantiate the content provider.
Definition: iahndl.hxx:64