Line data Source code
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 : #include "fmscriptingenv.hxx"
21 : #include "svx/fmmodel.hxx"
22 :
23 : #include <com/sun/star/lang/IllegalArgumentException.hpp>
24 : #include <com/sun/star/script/XScriptListener.hpp>
25 : #include <com/sun/star/container/XHierarchicalNameAccess.hpp>
26 : #include <com/sun/star/reflection/XInterfaceMethodTypeDescription.hpp>
27 : #include <com/sun/star/lang/DisposedException.hpp>
28 : #include <com/sun/star/lang/EventObject.hpp>
29 : #include <com/sun/star/awt/XControl.hpp>
30 :
31 : #include <tools/diagnose_ex.h>
32 : #include <cppuhelper/implbase1.hxx>
33 : #include <comphelper/implementationreference.hxx>
34 : #include <comphelper/processfactory.hxx>
35 : #include <vcl/svapp.hxx>
36 : #include <osl/mutex.hxx>
37 : #include <sfx2/objsh.hxx>
38 : #include <sfx2/app.hxx>
39 : #include <basic/basmgr.hxx>
40 :
41 : #include <boost/shared_ptr.hpp>
42 : #include <boost/assign/list_of.hpp>
43 : #include <utility>
44 : using std::pair;
45 : #include <set>
46 :
47 : //........................................................................
48 : namespace svxform
49 : {
50 : //........................................................................
51 :
52 : using ::com::sun::star::uno::Reference;
53 : using ::com::sun::star::script::XEventAttacherManager;
54 : using ::com::sun::star::lang::IllegalArgumentException;
55 : using ::com::sun::star::script::XScriptListener;
56 : using ::com::sun::star::script::ScriptEvent;
57 : using ::com::sun::star::lang::EventObject;
58 : using ::com::sun::star::reflection::InvocationTargetException;
59 : using ::com::sun::star::uno::Any;
60 : using ::com::sun::star::container::XHierarchicalNameAccess;
61 : using ::com::sun::star::reflection::XInterfaceMethodTypeDescription;
62 : using ::com::sun::star::uno::UNO_QUERY_THROW;
63 : using ::com::sun::star::lang::DisposedException;
64 : using ::com::sun::star::uno::RuntimeException;
65 : using ::com::sun::star::uno::Exception;
66 : using ::com::sun::star::uno::Sequence;
67 : using ::com::sun::star::uno::XInterface;
68 : using ::com::sun::star::awt::XControl;
69 : using ::com::sun::star::beans::XPropertySet;
70 :
71 : class FormScriptingEnvironment;
72 :
73 : //====================================================================
74 : //= FormScriptListener
75 : //====================================================================
76 : typedef ::cppu::WeakImplHelper1 < XScriptListener
77 : > FormScriptListener_Base;
78 :
79 : /** implements the XScriptListener interface, is used by FormScriptingEnvironment
80 : */
81 : class FormScriptListener :public FormScriptListener_Base
82 : {
83 : private:
84 : ::osl::Mutex m_aMutex;
85 : FormScriptingEnvironment *m_pScriptExecutor;
86 :
87 : public:
88 : FormScriptListener( FormScriptingEnvironment * pScriptExecutor );
89 :
90 : // XScriptListener
91 : virtual void SAL_CALL firing( const ScriptEvent& aEvent ) throw (RuntimeException);
92 : virtual Any SAL_CALL approveFiring( const ScriptEvent& aEvent ) throw (InvocationTargetException, RuntimeException);
93 : // XEventListener
94 : virtual void SAL_CALL disposing( const EventObject& Source ) throw (RuntimeException);
95 :
96 : // lifetime control
97 : void SAL_CALL dispose();
98 :
99 : protected:
100 : ~FormScriptListener();
101 :
102 : private:
103 : /** determines whether calling a given method at a given listener interface can be done asynchronously
104 :
105 : @param _rListenerType
106 : the name of the UNO type whose method is to be checked
107 : @param _rMethodName
108 : the name of the method at the interface determined by _rListenerType
109 :
110 : @return
111 : <TRUE/> if and only if the method is declared <code>oneway</code>, i.e. can be called asynchronously
112 : */
113 : bool impl_allowAsynchronousCall_nothrow( const OUString& _rListenerType, const OUString& _rMethodName ) const;
114 :
115 : /** determines whether the instance is already disposed
116 : */
117 2 : bool impl_isDisposed_nothrow() const { return !m_pScriptExecutor; }
118 :
119 : /** fires the given script event in a thread-safe manner
120 :
121 : This methods calls our script executor's doFireScriptEvent, with previously releasing the given mutex guard,
122 : but ensuring that our script executor is not deleted between this release and the actual call.
123 :
124 : @param _rGuard
125 : a clearable guard to our mutex. Must be the only active guard to our mutex.
126 : @param _rEvent
127 : the event to fire
128 : @param _pSyncronousResult
129 : a place to take a possible result of the script call.
130 :
131 : @precond
132 : m_pScriptExecutor is not <NULL/>.
133 : */
134 : void impl_doFireScriptEvent_nothrow( ::osl::ClearableMutexGuard& _rGuard, const ScriptEvent& _rEvent, Any* _pSyncronousResult );
135 :
136 : private:
137 : DECL_LINK( OnAsyncScriptEvent, ScriptEvent* );
138 : };
139 :
140 : //====================================================================
141 : //= FormScriptingEnvironment
142 : //====================================================================
143 : class FormScriptingEnvironment : public IFormScriptingEnvironment
144 : {
145 : private:
146 : typedef ::comphelper::ImplementationReference< FormScriptListener, XScriptListener > ListenerImplementation;
147 :
148 : private:
149 : ::osl::Mutex m_aMutex;
150 : oslInterlockedCount m_refCount;
151 : ListenerImplementation m_pScriptListener;
152 : FmFormModel& m_rFormModel;
153 : bool m_bDisposed;
154 :
155 : public:
156 : FormScriptingEnvironment( FmFormModel& _rModel );
157 : virtual ~FormScriptingEnvironment();
158 :
159 : // callback for FormScriptListener
160 : void doFireScriptEvent( const ScriptEvent& _rEvent, Any* _pSyncronousResult );
161 :
162 : // IFormScriptingEnvironment
163 : virtual void registerEventAttacherManager( const Reference< XEventAttacherManager >& _rxManager );
164 : virtual void revokeEventAttacherManager( const Reference< XEventAttacherManager >& _rxManager );
165 : virtual void dispose();
166 :
167 : // IReference
168 : virtual oslInterlockedCount SAL_CALL acquire();
169 : virtual oslInterlockedCount SAL_CALL release();
170 :
171 : private:
172 : void impl_registerOrRevoke_throw( const Reference< XEventAttacherManager >& _rxManager, bool _bRegister );
173 :
174 : private:
175 : FormScriptingEnvironment(); // never implemented
176 : FormScriptingEnvironment( const FormScriptingEnvironment& ); // never implemented
177 : FormScriptingEnvironment& operator=( const FormScriptingEnvironment& ); // never implemented
178 : };
179 :
180 : //====================================================================
181 : //= FormScriptListener
182 : //====================================================================
183 : //--------------------------------------------------------------------
184 1180 : FormScriptListener::FormScriptListener( FormScriptingEnvironment* pScriptExecutor )
185 1180 : :m_pScriptExecutor( pScriptExecutor )
186 : {
187 1180 : }
188 :
189 : //--------------------------------------------------------------------
190 2330 : FormScriptListener::~FormScriptListener()
191 : {
192 2330 : }
193 :
194 : //--------------------------------------------------------------------
195 1 : bool FormScriptListener::impl_allowAsynchronousCall_nothrow( const OUString& _rListenerType, const OUString& _rMethodName ) const
196 : {
197 : // This used to be implemented as:
198 : // is (_rListenerType + "::" + _rMethodName) a oneway function?
199 : // since we got rid of the notion of oneway, this is the list
200 : // of oneway methods, autogenerated by postprocessing of
201 : // commitdiff 90eac3e69749a9227c4b6902b1f3cef1e338c6d1
202 : static std::set< pair< OUString, OUString > > delayed_event_listeners =
203 : boost::assign::list_of
204 : (pair<OUString,OUString>("com.sun.star.accessibility.XAccessibleComponent","grabFocus"))
205 2 : (pair<OUString,OUString>("com.sun.star.accessibility.XAccessibleEventBroadcaster","addAccessibleEventListener"))
206 3 : (pair<OUString,OUString>("com.sun.star.accessibility.XAccessibleEventBroadcaster","removeAccessibleEventListener"))
207 3 : (pair<OUString,OUString>("com.sun.star.accessibility.XAccessibleSelection","clearAccessibleSelection"))
208 3 : (pair<OUString,OUString>("com.sun.star.accessibility.XAccessibleSelection","selectAllAccessibleChildren"))
209 3 : (pair<OUString,OUString>("com.sun.star.awt.XActionListener","actionPerformed"))
210 3 : (pair<OUString,OUString>("com.sun.star.awt.XActivateListener","windowActivated"))
211 3 : (pair<OUString,OUString>("com.sun.star.awt.XActivateListener","windowDeactivated"))
212 3 : (pair<OUString,OUString>("com.sun.star.awt.XAdjustmentListener","adjustmentValueChanged"))
213 3 : (pair<OUString,OUString>("com.sun.star.awt.XButton","addActionListener"))
214 3 : (pair<OUString,OUString>("com.sun.star.awt.XButton","removeActionListener"))
215 3 : (pair<OUString,OUString>("com.sun.star.awt.XButton","setLabel"))
216 3 : (pair<OUString,OUString>("com.sun.star.awt.XButton","setActionCommand"))
217 3 : (pair<OUString,OUString>("com.sun.star.awt.XCheckBox","addItemListener"))
218 3 : (pair<OUString,OUString>("com.sun.star.awt.XCheckBox","removeItemListener"))
219 3 : (pair<OUString,OUString>("com.sun.star.awt.XCheckBox","setState"))
220 3 : (pair<OUString,OUString>("com.sun.star.awt.XCheckBox","setLabel"))
221 3 : (pair<OUString,OUString>("com.sun.star.awt.XCheckBox","enableTriState"))
222 3 : (pair<OUString,OUString>("com.sun.star.awt.XComboBox","addItemListener"))
223 3 : (pair<OUString,OUString>("com.sun.star.awt.XComboBox","removeItemListener"))
224 3 : (pair<OUString,OUString>("com.sun.star.awt.XComboBox","addActionListener"))
225 3 : (pair<OUString,OUString>("com.sun.star.awt.XComboBox","removeActionListener"))
226 3 : (pair<OUString,OUString>("com.sun.star.awt.XComboBox","addItem"))
227 3 : (pair<OUString,OUString>("com.sun.star.awt.XComboBox","addItems"))
228 3 : (pair<OUString,OUString>("com.sun.star.awt.XComboBox","removeItems"))
229 3 : (pair<OUString,OUString>("com.sun.star.awt.XComboBox","setDropDownLineCount"))
230 3 : (pair<OUString,OUString>("com.sun.star.awt.XControl","setContext"))
231 3 : (pair<OUString,OUString>("com.sun.star.awt.XControl","createPeer"))
232 3 : (pair<OUString,OUString>("com.sun.star.awt.XControl","setDesignMode"))
233 3 : (pair<OUString,OUString>("com.sun.star.awt.XControlContainer","setStatusText"))
234 3 : (pair<OUString,OUString>("com.sun.star.awt.XControlContainer","addControl"))
235 3 : (pair<OUString,OUString>("com.sun.star.awt.XControlContainer","removeControl"))
236 3 : (pair<OUString,OUString>("com.sun.star.awt.XCurrencyField","setValue"))
237 3 : (pair<OUString,OUString>("com.sun.star.awt.XCurrencyField","setMin"))
238 3 : (pair<OUString,OUString>("com.sun.star.awt.XCurrencyField","setMax"))
239 3 : (pair<OUString,OUString>("com.sun.star.awt.XCurrencyField","setFirst"))
240 3 : (pair<OUString,OUString>("com.sun.star.awt.XCurrencyField","setLast"))
241 3 : (pair<OUString,OUString>("com.sun.star.awt.XCurrencyField","setSpinSize"))
242 3 : (pair<OUString,OUString>("com.sun.star.awt.XCurrencyField","setDecimalDigits"))
243 3 : (pair<OUString,OUString>("com.sun.star.awt.XCurrencyField","setStrictFormat"))
244 3 : (pair<OUString,OUString>("com.sun.star.awt.XDateField","setDate"))
245 3 : (pair<OUString,OUString>("com.sun.star.awt.XDateField","setMin"))
246 3 : (pair<OUString,OUString>("com.sun.star.awt.XDateField","setMax"))
247 3 : (pair<OUString,OUString>("com.sun.star.awt.XDateField","setFirst"))
248 3 : (pair<OUString,OUString>("com.sun.star.awt.XDateField","setLast"))
249 3 : (pair<OUString,OUString>("com.sun.star.awt.XDateField","setLongFormat"))
250 3 : (pair<OUString,OUString>("com.sun.star.awt.XDateField","setStrictFormat"))
251 3 : (pair<OUString,OUString>("com.sun.star.awt.XDialog","setTitle"))
252 3 : (pair<OUString,OUString>("com.sun.star.awt.XDisplayConnection","addEventHandler"))
253 3 : (pair<OUString,OUString>("com.sun.star.awt.XDisplayConnection","removeEventHandler"))
254 3 : (pair<OUString,OUString>("com.sun.star.awt.XDisplayConnection","addErrorHandler"))
255 3 : (pair<OUString,OUString>("com.sun.star.awt.XDisplayConnection","removeErrorHandler"))
256 3 : (pair<OUString,OUString>("com.sun.star.awt.XExtendedToolkit","addTopWindowListener"))
257 3 : (pair<OUString,OUString>("com.sun.star.awt.XExtendedToolkit","removeTopWindowListener"))
258 3 : (pair<OUString,OUString>("com.sun.star.awt.XExtendedToolkit","addKeyHandler"))
259 3 : (pair<OUString,OUString>("com.sun.star.awt.XExtendedToolkit","removeKeyHandler"))
260 3 : (pair<OUString,OUString>("com.sun.star.awt.XExtendedToolkit","addFocusListener"))
261 3 : (pair<OUString,OUString>("com.sun.star.awt.XExtendedToolkit","removeFocusListener"))
262 3 : (pair<OUString,OUString>("com.sun.star.awt.XExtendedToolkit","fireFocusGained"))
263 3 : (pair<OUString,OUString>("com.sun.star.awt.XExtendedToolkit","fireFocusLost"))
264 3 : (pair<OUString,OUString>("com.sun.star.awt.XFileDialog","setPath"))
265 3 : (pair<OUString,OUString>("com.sun.star.awt.XFileDialog","setFilters"))
266 3 : (pair<OUString,OUString>("com.sun.star.awt.XFileDialog","setCurrentFilter"))
267 3 : (pair<OUString,OUString>("com.sun.star.awt.XFixedHyperlink","setText"))
268 3 : (pair<OUString,OUString>("com.sun.star.awt.XFixedHyperlink","setURL"))
269 3 : (pair<OUString,OUString>("com.sun.star.awt.XFixedHyperlink","setAlignment"))
270 3 : (pair<OUString,OUString>("com.sun.star.awt.XFixedHyperlink","addActionListener"))
271 3 : (pair<OUString,OUString>("com.sun.star.awt.XFixedHyperlink","removeActionListener"))
272 3 : (pair<OUString,OUString>("com.sun.star.awt.XFixedText","setText"))
273 3 : (pair<OUString,OUString>("com.sun.star.awt.XFixedText","setAlignment"))
274 3 : (pair<OUString,OUString>("com.sun.star.awt.XFocusListener","focusGained"))
275 3 : (pair<OUString,OUString>("com.sun.star.awt.XFocusListener","focusLost"))
276 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","setFont"))
277 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","selectFont"))
278 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","setTextColor"))
279 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","setTextFillColor"))
280 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","setLineColor"))
281 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","setFillColor"))
282 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","setRasterOp"))
283 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","setClipRegion"))
284 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","intersectClipRegion"))
285 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","push"))
286 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","pop"))
287 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","copy"))
288 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","draw"))
289 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawPixel"))
290 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawLine"))
291 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawRect"))
292 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawRoundedRect"))
293 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawPolyLine"))
294 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawPolygon"))
295 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawPolyPolygon"))
296 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawEllipse"))
297 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawArc"))
298 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawPie"))
299 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawChord"))
300 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawGradient"))
301 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawText"))
302 3 : (pair<OUString,OUString>("com.sun.star.awt.XGraphics","drawTextArray"))
303 3 : (pair<OUString,OUString>("com.sun.star.awt.XImageButton","addActionListener"))
304 3 : (pair<OUString,OUString>("com.sun.star.awt.XImageButton","removeActionListener"))
305 3 : (pair<OUString,OUString>("com.sun.star.awt.XImageButton","setActionCommand"))
306 3 : (pair<OUString,OUString>("com.sun.star.awt.XImageConsumer","init"))
307 3 : (pair<OUString,OUString>("com.sun.star.awt.XImageConsumer","setColorModel"))
308 3 : (pair<OUString,OUString>("com.sun.star.awt.XImageConsumer","setPixelsByBytes"))
309 3 : (pair<OUString,OUString>("com.sun.star.awt.XImageConsumer","setPixelsByLongs"))
310 3 : (pair<OUString,OUString>("com.sun.star.awt.XImageConsumer","complete"))
311 3 : (pair<OUString,OUString>("com.sun.star.awt.XImageProducer","addConsumer"))
312 3 : (pair<OUString,OUString>("com.sun.star.awt.XImageProducer","removeConsumer"))
313 3 : (pair<OUString,OUString>("com.sun.star.awt.XImageProducer","startProduction"))
314 3 : (pair<OUString,OUString>("com.sun.star.awt.XItemEventBroadcaster","addItemListener"))
315 3 : (pair<OUString,OUString>("com.sun.star.awt.XItemEventBroadcaster","removeItemListener"))
316 3 : (pair<OUString,OUString>("com.sun.star.awt.XItemListener","itemStateChanged"))
317 3 : (pair<OUString,OUString>("com.sun.star.awt.XKeyListener","keyPressed"))
318 3 : (pair<OUString,OUString>("com.sun.star.awt.XKeyListener","keyReleased"))
319 3 : (pair<OUString,OUString>("com.sun.star.awt.XListBox","addItemListener"))
320 3 : (pair<OUString,OUString>("com.sun.star.awt.XListBox","removeItemListener"))
321 3 : (pair<OUString,OUString>("com.sun.star.awt.XListBox","addActionListener"))
322 3 : (pair<OUString,OUString>("com.sun.star.awt.XListBox","removeActionListener"))
323 3 : (pair<OUString,OUString>("com.sun.star.awt.XListBox","addItem"))
324 3 : (pair<OUString,OUString>("com.sun.star.awt.XListBox","addItems"))
325 3 : (pair<OUString,OUString>("com.sun.star.awt.XListBox","removeItems"))
326 3 : (pair<OUString,OUString>("com.sun.star.awt.XListBox","selectItemPos"))
327 3 : (pair<OUString,OUString>("com.sun.star.awt.XListBox","selectItemsPos"))
328 3 : (pair<OUString,OUString>("com.sun.star.awt.XListBox","selectItem"))
329 3 : (pair<OUString,OUString>("com.sun.star.awt.XListBox","setMultipleMode"))
330 3 : (pair<OUString,OUString>("com.sun.star.awt.XListBox","setDropDownLineCount"))
331 3 : (pair<OUString,OUString>("com.sun.star.awt.XListBox","makeVisible"))
332 3 : (pair<OUString,OUString>("com.sun.star.awt.XMenu","addMenuListener"))
333 3 : (pair<OUString,OUString>("com.sun.star.awt.XMenu","removeMenuListener"))
334 3 : (pair<OUString,OUString>("com.sun.star.awt.XMenu","insertItem"))
335 3 : (pair<OUString,OUString>("com.sun.star.awt.XMenu","removeItem"))
336 3 : (pair<OUString,OUString>("com.sun.star.awt.XMenu","enableItem"))
337 3 : (pair<OUString,OUString>("com.sun.star.awt.XMenu","setItemText"))
338 3 : (pair<OUString,OUString>("com.sun.star.awt.XMenu","setPopupMenu"))
339 3 : (pair<OUString,OUString>("com.sun.star.awt.XMenuListener","highlight"))
340 3 : (pair<OUString,OUString>("com.sun.star.awt.XMenuListener","select"))
341 3 : (pair<OUString,OUString>("com.sun.star.awt.XMenuListener","activate"))
342 3 : (pair<OUString,OUString>("com.sun.star.awt.XMenuListener","deactivate"))
343 3 : (pair<OUString,OUString>("com.sun.star.awt.XMessageBox","setCaptionText"))
344 3 : (pair<OUString,OUString>("com.sun.star.awt.XMessageBox","setMessageText"))
345 3 : (pair<OUString,OUString>("com.sun.star.awt.XMouseListener","mousePressed"))
346 3 : (pair<OUString,OUString>("com.sun.star.awt.XMouseListener","mouseReleased"))
347 3 : (pair<OUString,OUString>("com.sun.star.awt.XMouseListener","mouseEntered"))
348 3 : (pair<OUString,OUString>("com.sun.star.awt.XMouseListener","mouseExited"))
349 3 : (pair<OUString,OUString>("com.sun.star.awt.XNumericField","setValue"))
350 3 : (pair<OUString,OUString>("com.sun.star.awt.XNumericField","setMin"))
351 3 : (pair<OUString,OUString>("com.sun.star.awt.XNumericField","setMax"))
352 3 : (pair<OUString,OUString>("com.sun.star.awt.XNumericField","setFirst"))
353 3 : (pair<OUString,OUString>("com.sun.star.awt.XNumericField","setLast"))
354 3 : (pair<OUString,OUString>("com.sun.star.awt.XNumericField","setSpinSize"))
355 3 : (pair<OUString,OUString>("com.sun.star.awt.XNumericField","setDecimalDigits"))
356 3 : (pair<OUString,OUString>("com.sun.star.awt.XNumericField","setStrictFormat"))
357 3 : (pair<OUString,OUString>("com.sun.star.awt.XPaintListener","windowPaint"))
358 3 : (pair<OUString,OUString>("com.sun.star.awt.XPatternField","setMasks"))
359 3 : (pair<OUString,OUString>("com.sun.star.awt.XPatternField","setString"))
360 3 : (pair<OUString,OUString>("com.sun.star.awt.XPatternField","setStrictFormat"))
361 3 : (pair<OUString,OUString>("com.sun.star.awt.XPointer","setType"))
362 3 : (pair<OUString,OUString>("com.sun.star.awt.XPopupMenu","insertSeparator"))
363 3 : (pair<OUString,OUString>("com.sun.star.awt.XPopupMenu","setDefaultItem"))
364 3 : (pair<OUString,OUString>("com.sun.star.awt.XPopupMenu","checkItem"))
365 3 : (pair<OUString,OUString>("com.sun.star.awt.XProgressBar","setForegroundColor"))
366 3 : (pair<OUString,OUString>("com.sun.star.awt.XProgressBar","setBackgroundColor"))
367 3 : (pair<OUString,OUString>("com.sun.star.awt.XProgressBar","setRange"))
368 3 : (pair<OUString,OUString>("com.sun.star.awt.XProgressBar","setValue"))
369 3 : (pair<OUString,OUString>("com.sun.star.awt.XProgressMonitor","addText"))
370 3 : (pair<OUString,OUString>("com.sun.star.awt.XProgressMonitor","removeText"))
371 3 : (pair<OUString,OUString>("com.sun.star.awt.XProgressMonitor","updateText"))
372 3 : (pair<OUString,OUString>("com.sun.star.awt.XRadioButton","addItemListener"))
373 3 : (pair<OUString,OUString>("com.sun.star.awt.XRadioButton","removeItemListener"))
374 3 : (pair<OUString,OUString>("com.sun.star.awt.XRadioButton","setState"))
375 3 : (pair<OUString,OUString>("com.sun.star.awt.XRadioButton","setLabel"))
376 3 : (pair<OUString,OUString>("com.sun.star.awt.XRegion","clear"))
377 3 : (pair<OUString,OUString>("com.sun.star.awt.XRegion","move"))
378 3 : (pair<OUString,OUString>("com.sun.star.awt.XRegion","unionRectangle"))
379 3 : (pair<OUString,OUString>("com.sun.star.awt.XRegion","intersectRectangle"))
380 3 : (pair<OUString,OUString>("com.sun.star.awt.XRegion","excludeRectangle"))
381 3 : (pair<OUString,OUString>("com.sun.star.awt.XRegion","xOrRectangle"))
382 3 : (pair<OUString,OUString>("com.sun.star.awt.XRegion","unionRegion"))
383 3 : (pair<OUString,OUString>("com.sun.star.awt.XRegion","intersectRegion"))
384 3 : (pair<OUString,OUString>("com.sun.star.awt.XRegion","excludeRegion"))
385 3 : (pair<OUString,OUString>("com.sun.star.awt.XRegion","xOrRegion"))
386 3 : (pair<OUString,OUString>("com.sun.star.awt.XScrollBar","addAdjustmentListener"))
387 3 : (pair<OUString,OUString>("com.sun.star.awt.XScrollBar","removeAdjustmentListener"))
388 3 : (pair<OUString,OUString>("com.sun.star.awt.XScrollBar","setValue"))
389 3 : (pair<OUString,OUString>("com.sun.star.awt.XScrollBar","setValues"))
390 3 : (pair<OUString,OUString>("com.sun.star.awt.XScrollBar","setMaximum"))
391 3 : (pair<OUString,OUString>("com.sun.star.awt.XScrollBar","setLineIncrement"))
392 3 : (pair<OUString,OUString>("com.sun.star.awt.XScrollBar","setBlockIncrement"))
393 3 : (pair<OUString,OUString>("com.sun.star.awt.XScrollBar","setVisibleSize"))
394 3 : (pair<OUString,OUString>("com.sun.star.awt.XScrollBar","setOrientation"))
395 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinField","addSpinListener"))
396 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinField","removeSpinListener"))
397 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinField","up"))
398 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinField","down"))
399 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinField","first"))
400 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinField","last"))
401 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinField","enableRepeat"))
402 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinListener","up"))
403 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinListener","down"))
404 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinListener","first"))
405 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinListener","last"))
406 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinValue","addAdjustmentListener"))
407 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinValue","removeAdjustmentListener"))
408 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinValue","setValue"))
409 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinValue","setValues"))
410 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinValue","setMinimum"))
411 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinValue","setMaximum"))
412 3 : (pair<OUString,OUString>("com.sun.star.awt.XSpinValue","setSpinIncrement"))
413 3 : (pair<OUString,OUString>("com.sun.star.awt.XTabController","setModel"))
414 3 : (pair<OUString,OUString>("com.sun.star.awt.XTabController","setContainer"))
415 3 : (pair<OUString,OUString>("com.sun.star.awt.XTabController","autoTabOrder"))
416 3 : (pair<OUString,OUString>("com.sun.star.awt.XTabController","activateTabOrder"))
417 3 : (pair<OUString,OUString>("com.sun.star.awt.XTabController","activateFirst"))
418 3 : (pair<OUString,OUString>("com.sun.star.awt.XTabController","activateLast"))
419 3 : (pair<OUString,OUString>("com.sun.star.awt.XTabControllerModel","setGroupControl"))
420 3 : (pair<OUString,OUString>("com.sun.star.awt.XTabControllerModel","setControlModels"))
421 3 : (pair<OUString,OUString>("com.sun.star.awt.XTabControllerModel","setGroup"))
422 3 : (pair<OUString,OUString>("com.sun.star.awt.XTextComponent","addTextListener"))
423 3 : (pair<OUString,OUString>("com.sun.star.awt.XTextComponent","removeTextListener"))
424 3 : (pair<OUString,OUString>("com.sun.star.awt.XTextComponent","setText"))
425 3 : (pair<OUString,OUString>("com.sun.star.awt.XTextComponent","insertText"))
426 3 : (pair<OUString,OUString>("com.sun.star.awt.XTextComponent","setSelection"))
427 3 : (pair<OUString,OUString>("com.sun.star.awt.XTextComponent","setEditable"))
428 3 : (pair<OUString,OUString>("com.sun.star.awt.XTextComponent","setMaxTextLen"))
429 3 : (pair<OUString,OUString>("com.sun.star.awt.XTextEditField","setEchoChar"))
430 3 : (pair<OUString,OUString>("com.sun.star.awt.XTextListener","textChanged"))
431 3 : (pair<OUString,OUString>("com.sun.star.awt.XTimeField","setTime"))
432 3 : (pair<OUString,OUString>("com.sun.star.awt.XTimeField","setMin"))
433 3 : (pair<OUString,OUString>("com.sun.star.awt.XTimeField","setMax"))
434 3 : (pair<OUString,OUString>("com.sun.star.awt.XTimeField","setFirst"))
435 3 : (pair<OUString,OUString>("com.sun.star.awt.XTimeField","setLast"))
436 3 : (pair<OUString,OUString>("com.sun.star.awt.XTimeField","setStrictFormat"))
437 3 : (pair<OUString,OUString>("com.sun.star.awt.XTopWindow","addTopWindowListener"))
438 3 : (pair<OUString,OUString>("com.sun.star.awt.XTopWindow","removeTopWindowListener"))
439 3 : (pair<OUString,OUString>("com.sun.star.awt.XTopWindow","toFront"))
440 3 : (pair<OUString,OUString>("com.sun.star.awt.XTopWindow","toBack"))
441 3 : (pair<OUString,OUString>("com.sun.star.awt.XTopWindow","setMenuBar"))
442 3 : (pair<OUString,OUString>("com.sun.star.awt.XTopWindowListener","windowOpened"))
443 3 : (pair<OUString,OUString>("com.sun.star.awt.XTopWindowListener","windowClosing"))
444 3 : (pair<OUString,OUString>("com.sun.star.awt.XTopWindowListener","windowClosed"))
445 3 : (pair<OUString,OUString>("com.sun.star.awt.XTopWindowListener","windowMinimized"))
446 3 : (pair<OUString,OUString>("com.sun.star.awt.XTopWindowListener","windowNormalized"))
447 3 : (pair<OUString,OUString>("com.sun.star.awt.XTopWindowListener","windowActivated"))
448 3 : (pair<OUString,OUString>("com.sun.star.awt.XTopWindowListener","windowDeactivated"))
449 3 : (pair<OUString,OUString>("com.sun.star.awt.XUnoControlContainer","setTabControllers"))
450 3 : (pair<OUString,OUString>("com.sun.star.awt.XUnoControlContainer","addTabController"))
451 3 : (pair<OUString,OUString>("com.sun.star.awt.XUnoControlContainer","removeTabController"))
452 3 : (pair<OUString,OUString>("com.sun.star.awt.XUserInputInterception","addKeyHandler"))
453 3 : (pair<OUString,OUString>("com.sun.star.awt.XUserInputInterception","removeKeyHandler"))
454 3 : (pair<OUString,OUString>("com.sun.star.awt.XUserInputInterception","addMouseClickHandler"))
455 3 : (pair<OUString,OUString>("com.sun.star.awt.XUserInputInterception","removeMouseClickHandler"))
456 3 : (pair<OUString,OUString>("com.sun.star.awt.XVclContainer","addVclContainerListener"))
457 3 : (pair<OUString,OUString>("com.sun.star.awt.XVclContainer","removeVclContainerListener"))
458 3 : (pair<OUString,OUString>("com.sun.star.awt.XVclContainerListener","windowAdded"))
459 3 : (pair<OUString,OUString>("com.sun.star.awt.XVclContainerListener","windowRemoved"))
460 3 : (pair<OUString,OUString>("com.sun.star.awt.XVclContainerPeer","enableDialogControl"))
461 3 : (pair<OUString,OUString>("com.sun.star.awt.XVclContainerPeer","setTabOrder"))
462 3 : (pair<OUString,OUString>("com.sun.star.awt.XVclContainerPeer","setGroup"))
463 3 : (pair<OUString,OUString>("com.sun.star.awt.XVclWindowPeer","setDesignMode"))
464 3 : (pair<OUString,OUString>("com.sun.star.awt.XVclWindowPeer","enableClipSiblings"))
465 3 : (pair<OUString,OUString>("com.sun.star.awt.XVclWindowPeer","setForeground"))
466 3 : (pair<OUString,OUString>("com.sun.star.awt.XVclWindowPeer","setControlFont"))
467 3 : (pair<OUString,OUString>("com.sun.star.awt.XView","draw"))
468 3 : (pair<OUString,OUString>("com.sun.star.awt.XView","setZoom"))
469 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","setPosSize"))
470 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","setVisible"))
471 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","setEnable"))
472 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","setFocus"))
473 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","addWindowListener"))
474 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","removeWindowListener"))
475 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","addFocusListener"))
476 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","removeFocusListener"))
477 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","addKeyListener"))
478 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","removeKeyListener"))
479 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","addMouseListener"))
480 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","removeMouseListener"))
481 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","addMouseMotionListener"))
482 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","removeMouseMotionListener"))
483 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","addPaintListener"))
484 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindow","removePaintListener"))
485 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindowListener","windowResized"))
486 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindowListener","windowMoved"))
487 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindowListener","windowShown"))
488 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindowListener","windowHidden"))
489 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindowListener2","windowEnabled"))
490 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindowListener2","windowDisabled"))
491 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindowPeer","setPointer"))
492 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindowPeer","setBackground"))
493 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindowPeer","invalidate"))
494 3 : (pair<OUString,OUString>("com.sun.star.awt.XWindowPeer","invalidateRect"))
495 3 : (pair<OUString,OUString>("com.sun.star.awt.grid.XGridSelectionListener","selectionChanged"))
496 3 : (pair<OUString,OUString>("com.sun.star.awt.tab.XTabPageContainer","addTabPageContainerListener"))
497 3 : (pair<OUString,OUString>("com.sun.star.awt.tab.XTabPageContainer","removeTabPageContainerListener"))
498 3 : (pair<OUString,OUString>("com.sun.star.awt.tab.XTabPageContainerListener","tabPageActivated"))
499 3 : (pair<OUString,OUString>("com.sun.star.configuration.backend.XBackendChangesNotifier","addChangesListener"))
500 3 : (pair<OUString,OUString>("com.sun.star.configuration.backend.XBackendChangesNotifier","removeChangesListener"))
501 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.clipboard.XClipboard","setContents"))
502 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.clipboard.XClipboardListener","changedContents"))
503 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.clipboard.XClipboardNotifier","addClipboardListener"))
504 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.clipboard.XClipboardNotifier","removeClipboardListener"))
505 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.clipboard.XClipboardOwner","lostOwnership"))
506 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XAutoscroll","autoscroll"))
507 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDragGestureListener","dragGestureRecognized"))
508 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDragGestureRecognizer","addDragGestureListener"))
509 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDragGestureRecognizer","removeDragGestureListener"))
510 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDragSource","startDrag"))
511 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDragSourceContext","setCursor"))
512 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDragSourceContext","setImage"))
513 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDragSourceContext","transferablesFlavorsChanged"))
514 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDragSourceListener","dragDropEnd"))
515 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDragSourceListener","dragEnter"))
516 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDragSourceListener","dragExit"))
517 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDragSourceListener","dragOver"))
518 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDragSourceListener","dropActionChanged"))
519 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDropTarget","addDropTargetListener"))
520 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDropTarget","removeDropTargetListener"))
521 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDropTarget","setDefaultActions"))
522 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDropTargetDragContext","acceptDrag"))
523 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDropTargetDragContext","rejectDrag"))
524 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDropTargetDropContext","acceptDrop"))
525 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDropTargetDropContext","rejectDrop"))
526 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDropTargetDropContext","dropComplete"))
527 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDropTargetListener","dragEnter"))
528 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDropTargetListener","dragExit"))
529 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDropTargetListener","dragOver"))
530 3 : (pair<OUString,OUString>("com.sun.star.datatransfer.dnd.XDropTargetListener","dropActionChanged"))
531 3 : (pair<OUString,OUString>("com.sun.star.document.XEventBroadcaster","addEventListener"))
532 3 : (pair<OUString,OUString>("com.sun.star.document.XEventBroadcaster","removeEventListener"))
533 3 : (pair<OUString,OUString>("com.sun.star.document.XEventListener","notifyEvent"))
534 3 : (pair<OUString,OUString>("com.sun.star.document.XStorageChangeListener","notifyStorageChange"))
535 3 : (pair<OUString,OUString>("com.sun.star.drawing.XControlShape","setControl"))
536 3 : (pair<OUString,OUString>("com.sun.star.form.XApproveActionBroadcaster","addApproveActionListener"))
537 3 : (pair<OUString,OUString>("com.sun.star.form.XApproveActionBroadcaster","removeApproveActionListener"))
538 3 : (pair<OUString,OUString>("com.sun.star.form.XBoundControl","setLock"))
539 3 : (pair<OUString,OUString>("com.sun.star.form.XChangeBroadcaster","addChangeListener"))
540 3 : (pair<OUString,OUString>("com.sun.star.form.XChangeBroadcaster","removeChangeListener"))
541 3 : (pair<OUString,OUString>("com.sun.star.form.XChangeListener","changed"))
542 3 : (pair<OUString,OUString>("com.sun.star.form.XConfirmDeleteBroadcaster","addConfirmDeleteListener"))
543 3 : (pair<OUString,OUString>("com.sun.star.form.XConfirmDeleteBroadcaster","removeConfirmDeleteListener"))
544 3 : (pair<OUString,OUString>("com.sun.star.form.XDatabaseParameterBroadcaster","addParameterListener"))
545 3 : (pair<OUString,OUString>("com.sun.star.form.XDatabaseParameterBroadcaster","removeParameterListener"))
546 3 : (pair<OUString,OUString>("com.sun.star.form.XDatabaseParameterBroadcaster2","addDatabaseParameterListener"))
547 3 : (pair<OUString,OUString>("com.sun.star.form.XDatabaseParameterBroadcaster2","removeDatabaseParameterListener"))
548 3 : (pair<OUString,OUString>("com.sun.star.form.XErrorBroadcaster","addErrorListener"))
549 3 : (pair<OUString,OUString>("com.sun.star.form.XErrorBroadcaster","removeErrorListener"))
550 3 : (pair<OUString,OUString>("com.sun.star.form.XFormController","addActivateListener"))
551 3 : (pair<OUString,OUString>("com.sun.star.form.XFormController","removeActivateListener"))
552 3 : (pair<OUString,OUString>("com.sun.star.form.XFormControllerListener","formActivated"))
553 3 : (pair<OUString,OUString>("com.sun.star.form.XFormControllerListener","formDeactivated"))
554 3 : (pair<OUString,OUString>("com.sun.star.form.XGrid","setCurrentColumnPosition"))
555 3 : (pair<OUString,OUString>("com.sun.star.form.XGridPeer","setColumns"))
556 3 : (pair<OUString,OUString>("com.sun.star.form.XLoadListener","loaded"))
557 3 : (pair<OUString,OUString>("com.sun.star.form.XLoadListener","unloading"))
558 3 : (pair<OUString,OUString>("com.sun.star.form.XLoadListener","unloaded"))
559 3 : (pair<OUString,OUString>("com.sun.star.form.XLoadListener","reloading"))
560 3 : (pair<OUString,OUString>("com.sun.star.form.XLoadListener","reloaded"))
561 3 : (pair<OUString,OUString>("com.sun.star.form.XLoadable","load"))
562 3 : (pair<OUString,OUString>("com.sun.star.form.XLoadable","unload"))
563 3 : (pair<OUString,OUString>("com.sun.star.form.XLoadable","reload"))
564 3 : (pair<OUString,OUString>("com.sun.star.form.XLoadable","addLoadListener"))
565 3 : (pair<OUString,OUString>("com.sun.star.form.XLoadable","removeLoadListener"))
566 3 : (pair<OUString,OUString>("com.sun.star.form.XPositioningListener","positioned"))
567 3 : (pair<OUString,OUString>("com.sun.star.form.XReset","reset"))
568 3 : (pair<OUString,OUString>("com.sun.star.form.XReset","addResetListener"))
569 3 : (pair<OUString,OUString>("com.sun.star.form.XReset","removeResetListener"))
570 3 : (pair<OUString,OUString>("com.sun.star.form.XResetListener","resetted"))
571 3 : (pair<OUString,OUString>("com.sun.star.form.XSubmit","submit"))
572 3 : (pair<OUString,OUString>("com.sun.star.form.XSubmit","addSubmitListener"))
573 3 : (pair<OUString,OUString>("com.sun.star.form.XSubmit","removeSubmitListener"))
574 3 : (pair<OUString,OUString>("com.sun.star.form.XUpdateBroadcaster","addUpdateListener"))
575 3 : (pair<OUString,OUString>("com.sun.star.form.XUpdateBroadcaster","removeUpdateListener"))
576 3 : (pair<OUString,OUString>("com.sun.star.frame.XBrowseHistoryRegistry","updateViewData"))
577 3 : (pair<OUString,OUString>("com.sun.star.frame.XBrowseHistoryRegistry","createNewEntry"))
578 3 : (pair<OUString,OUString>("com.sun.star.frame.XConfigManager","addPropertyChangeListener"))
579 3 : (pair<OUString,OUString>("com.sun.star.frame.XConfigManager","removePropertyChangeListener"))
580 3 : (pair<OUString,OUString>("com.sun.star.frame.XConfigManager","flush"))
581 3 : (pair<OUString,OUString>("com.sun.star.frame.XDesktop","addTerminateListener"))
582 3 : (pair<OUString,OUString>("com.sun.star.frame.XDesktop","removeTerminateListener"))
583 3 : (pair<OUString,OUString>("com.sun.star.frame.XDispatch","dispatch"))
584 3 : (pair<OUString,OUString>("com.sun.star.frame.XDispatch","addStatusListener"))
585 3 : (pair<OUString,OUString>("com.sun.star.frame.XDispatch","removeStatusListener"))
586 3 : (pair<OUString,OUString>("com.sun.star.frame.XDocumentTemplates","update"))
587 3 : (pair<OUString,OUString>("com.sun.star.frame.XFrame","setCreator"))
588 3 : (pair<OUString,OUString>("com.sun.star.frame.XFrame","setName"))
589 3 : (pair<OUString,OUString>("com.sun.star.frame.XFrame","activate"))
590 3 : (pair<OUString,OUString>("com.sun.star.frame.XFrame","deactivate"))
591 3 : (pair<OUString,OUString>("com.sun.star.frame.XFrame","addFrameActionListener"))
592 3 : (pair<OUString,OUString>("com.sun.star.frame.XFrame","removeFrameActionListener"))
593 3 : (pair<OUString,OUString>("com.sun.star.frame.XFrameActionListener","frameAction"))
594 3 : (pair<OUString,OUString>("com.sun.star.frame.XFrameLoader","load"))
595 3 : (pair<OUString,OUString>("com.sun.star.frame.XFrameLoader","cancel"))
596 3 : (pair<OUString,OUString>("com.sun.star.frame.XLoadEventListener","loadFinished"))
597 3 : (pair<OUString,OUString>("com.sun.star.frame.XLoadEventListener","loadCancelled"))
598 3 : (pair<OUString,OUString>("com.sun.star.frame.XModel","connectController"))
599 3 : (pair<OUString,OUString>("com.sun.star.frame.XModel","disconnectController"))
600 3 : (pair<OUString,OUString>("com.sun.star.frame.XModel","lockControllers"))
601 3 : (pair<OUString,OUString>("com.sun.star.frame.XModel","unlockControllers"))
602 3 : (pair<OUString,OUString>("com.sun.star.frame.XNotifyingDispatch","dispatchWithNotification"))
603 3 : (pair<OUString,OUString>("com.sun.star.frame.XRecordableDispatch","dispatchAndRecord"))
604 3 : (pair<OUString,OUString>("com.sun.star.frame.XSessionManagerClient","addSessionManagerListener"))
605 3 : (pair<OUString,OUString>("com.sun.star.frame.XSessionManagerClient","removeSessionManagerListener"))
606 3 : (pair<OUString,OUString>("com.sun.star.frame.XSessionManagerClient","queryInteraction"))
607 3 : (pair<OUString,OUString>("com.sun.star.frame.XSessionManagerClient","interactionDone"))
608 3 : (pair<OUString,OUString>("com.sun.star.frame.XSessionManagerClient","saveDone"))
609 3 : (pair<OUString,OUString>("com.sun.star.frame.XSessionManagerListener","doSave"))
610 3 : (pair<OUString,OUString>("com.sun.star.frame.XSessionManagerListener","approveInteraction"))
611 3 : (pair<OUString,OUString>("com.sun.star.frame.XSessionManagerListener","shutdownCanceled"))
612 3 : (pair<OUString,OUString>("com.sun.star.frame.XSessionManagerListener2","doQuit"))
613 3 : (pair<OUString,OUString>("com.sun.star.frame.XStatusListener","statusChanged"))
614 3 : (pair<OUString,OUString>("com.sun.star.frame.XTask","tileWindows"))
615 3 : (pair<OUString,OUString>("com.sun.star.frame.XTask","arrangeWindowsVertical"))
616 3 : (pair<OUString,OUString>("com.sun.star.frame.XTask","arrangeWindowsHorizontal"))
617 3 : (pair<OUString,OUString>("com.sun.star.frame.XWindowArranger","arrange"))
618 3 : (pair<OUString,OUString>("com.sun.star.inspection.XPropertyControlContext","activateNextControl"))
619 3 : (pair<OUString,OUString>("com.sun.star.inspection.XPropertyControlObserver","focusGained"))
620 3 : (pair<OUString,OUString>("com.sun.star.inspection.XPropertyControlObserver","valueChanged"))
621 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XCloseSessionListener","sessionClosed"))
622 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XMenuProxy","addMenuProxyListener"))
623 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XMenuProxy","removeMenuProxyListener"))
624 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XPluginInstance","start"))
625 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XPluginInstance","stop"))
626 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XPluginInstance","destroy"))
627 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XPluginInstance","createWindow"))
628 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XPluginInstance","newStream"))
629 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XPluginInstance","newURL"))
630 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XPluginInstanceNotifySink","notifyURL"))
631 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XPluginInstancePeer","showStatusMessage"))
632 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XPluginInstancePeer","enableScripting"))
633 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XPluginInstancePeer","newStream"))
634 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XPluginInstancePeer","getURL"))
635 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XPluginInstancePeer","postURL"))
636 3 : (pair<OUString,OUString>("com.sun.star.mozilla.XPluginWindowPeer","setChildWindow"))
637 3 : (pair<OUString,OUString>("com.sun.star.script.vba.XVBACompatibility","addVBAScriptListener"))
638 3 : (pair<OUString,OUString>("com.sun.star.script.vba.XVBACompatibility","removeVBAScriptListener"))
639 3 : (pair<OUString,OUString>("com.sun.star.sdb.XDatabaseAccess","addDatabaseAccessListener"))
640 3 : (pair<OUString,OUString>("com.sun.star.sdb.XDatabaseAccess","removeDatabaseAccessListener"))
641 3 : (pair<OUString,OUString>("com.sun.star.sdb.XDatabaseAccessListener","connectionChanged"))
642 3 : (pair<OUString,OUString>("com.sun.star.sdb.XDatabaseAccessListener","connectionClosing"))
643 3 : (pair<OUString,OUString>("com.sun.star.sdb.XRowSetApproveBroadcaster","addRowSetApproveListener"))
644 3 : (pair<OUString,OUString>("com.sun.star.sdb.XRowSetApproveBroadcaster","removeRowSetApproveListener"))
645 3 : (pair<OUString,OUString>("com.sun.star.sdb.XRowSetChangeListener","onRowSetChanged"))
646 3 : (pair<OUString,OUString>("com.sun.star.sdb.XRowSetSupplier","setRowSet"))
647 3 : (pair<OUString,OUString>("com.sun.star.sdb.XRowsChangeListener","rowsChanged"))
648 3 : (pair<OUString,OUString>("com.sun.star.sdb.XSQLErrorBroadcaster","addSQLErrorListener"))
649 3 : (pair<OUString,OUString>("com.sun.star.sdb.XSQLErrorBroadcaster","removeSQLErrorListener"))
650 3 : (pair<OUString,OUString>("com.sun.star.sdbc.XRowSet","addRowSetListener"))
651 3 : (pair<OUString,OUString>("com.sun.star.sdbc.XRowSet","removeRowSetListener"))
652 3 : (pair<OUString,OUString>("com.sun.star.sdbc.XRowSetListener","cursorMoved"))
653 3 : (pair<OUString,OUString>("com.sun.star.sdbc.XRowSetListener","rowChanged"))
654 3 : (pair<OUString,OUString>("com.sun.star.sdbc.XRowSetListener","rowSetChanged"))
655 3 : (pair<OUString,OUString>("com.sun.star.sheet.XCalculatable","enableAutomaticCalculation"))
656 3 : (pair<OUString,OUString>("com.sun.star.sheet.XVolatileResult","addResultListener"))
657 3 : (pair<OUString,OUString>("com.sun.star.sheet.XVolatileResult","removeResultListener"))
658 3 : (pair<OUString,OUString>("com.sun.star.task.XJobExecutor","trigger"))
659 3 : (pair<OUString,OUString>("com.sun.star.task.XStatusIndicator","start"))
660 3 : (pair<OUString,OUString>("com.sun.star.task.XStatusIndicator","end"))
661 3 : (pair<OUString,OUString>("com.sun.star.task.XStatusIndicator","setText"))
662 3 : (pair<OUString,OUString>("com.sun.star.task.XStatusIndicator","setValue"))
663 3 : (pair<OUString,OUString>("com.sun.star.task.XStatusIndicator","reset"))
664 3 : (pair<OUString,OUString>("com.sun.star.text.XSimpleText","insertString"))
665 3 : (pair<OUString,OUString>("com.sun.star.text.XTextCursor","collapseToStart"))
666 3 : (pair<OUString,OUString>("com.sun.star.text.XTextCursor","collapseToEnd"))
667 3 : (pair<OUString,OUString>("com.sun.star.text.XTextRange","setString"))
668 3 : (pair<OUString,OUString>("com.sun.star.text.XTextViewCursor","setVisible"))
669 3 : (pair<OUString,OUString>("com.sun.star.ucb.XCommandProcessor","abort"))
670 3 : (pair<OUString,OUString>("com.sun.star.ucb.XCommandProcessor2","releaseCommandIdentifier"))
671 3 : (pair<OUString,OUString>("com.sun.star.ucb.XContent","addContentEventListener"))
672 3 : (pair<OUString,OUString>("com.sun.star.ucb.XContent","removeContentEventListener"))
673 3 : (pair<OUString,OUString>("com.sun.star.ucb.XContentProviderManager","deregisterContentProvider"))
674 3 : (pair<OUString,OUString>("com.sun.star.ucb.XContentTransmitter","transmit"))
675 3 : (pair<OUString,OUString>("com.sun.star.ucb.XPropertySetRegistry","removePropertySet"))
676 3 : (pair<OUString,OUString>("com.sun.star.ui.XUIConfigurationListener","elementInserted"))
677 3 : (pair<OUString,OUString>("com.sun.star.ui.XUIConfigurationListener","elementRemoved"))
678 3 : (pair<OUString,OUString>("com.sun.star.ui.XUIConfigurationListener","elementReplaced"))
679 3 : (pair<OUString,OUString>("com.sun.star.ui.dialogs.XFilePickerNotifier","addFilePickerListener"))
680 3 : (pair<OUString,OUString>("com.sun.star.ui.dialogs.XFilePickerNotifier","removeFilePickerListener"))
681 3 : (pair<OUString,OUString>("com.sun.star.util.XBroadcaster","lockBroadcasts"))
682 3 : (pair<OUString,OUString>("com.sun.star.util.XBroadcaster","unlockBroadcasts"))
683 3 : (pair<OUString,OUString>("com.sun.star.util.XChangesListener","changesOccurred"))
684 3 : (pair<OUString,OUString>("com.sun.star.util.XChangesNotifier","addChangesListener"))
685 3 : (pair<OUString,OUString>("com.sun.star.util.XChangesNotifier","removeChangesListener"))
686 3 : (pair<OUString,OUString>("com.sun.star.util.XCloseBroadcaster","addCloseListener"))
687 3 : (pair<OUString,OUString>("com.sun.star.util.XCloseBroadcaster","removeCloseListener"))
688 3 : (pair<OUString,OUString>("com.sun.star.util.XFlushable","addFlushListener"))
689 3 : (pair<OUString,OUString>("com.sun.star.util.XFlushable","removeFlushListener"))
690 3 : (pair<OUString,OUString>("com.sun.star.util.XModeChangeListener","modeChanged"))
691 3 : (pair<OUString,OUString>("com.sun.star.util.XModifyBroadcaster","addModifyListener"))
692 3 : (pair<OUString,OUString>("com.sun.star.util.XModifyBroadcaster","removeModifyListener"))
693 3 : (pair<OUString,OUString>("com.sun.star.util.XRefreshable","addRefreshListener"))
694 3 : (pair<OUString,OUString>("com.sun.star.util.XRefreshable","removeRefreshListener"))
695 3 : (pair<OUString,OUString>("com.sun.star.util.XSearchDescriptor","setSearchString"))
696 3 : (pair<OUString,OUString>("com.sun.star.view.XPrintJobBroadcaster","addPrintJobListener"))
697 3 : (pair<OUString,OUString>("com.sun.star.view.XPrintJobBroadcaster","removePrintJobListener"))
698 3 : (pair<OUString,OUString>("com.sun.star.view.XPrintJobListener","printJobEvent"))
699 3 : (pair<OUString,OUString>("com.sun.star.view.XPrintableBroadcaster","addPrintableListener"))
700 3 : (pair<OUString,OUString>("com.sun.star.view.XPrintableBroadcaster","removePrintableListener"))
701 3 : (pair<OUString,OUString>("com.sun.star.view.XPrintableListener","stateChanged"))
702 3 : (pair<OUString,OUString>("com.sun.star.view.XSelectionChangeListener","selectionChanged"))
703 3 : (pair<OUString,OUString>("com.sun.star.beans.XMultiPropertySet","addPropertiesChangeListener"))
704 3 : (pair<OUString,OUString>("com.sun.star.beans.XMultiPropertySet","removePropertiesChangeListener"))
705 3 : (pair<OUString,OUString>("com.sun.star.beans.XMultiPropertySet","firePropertiesChangeEvent"))
706 3 : (pair<OUString,OUString>("com.sun.star.beans.XPropertiesChangeNotifier","addPropertiesChangeListener"))
707 3 : (pair<OUString,OUString>("com.sun.star.beans.XPropertiesChangeNotifier","removePropertiesChangeListener"))
708 3 : (pair<OUString,OUString>("com.sun.star.container.XContainer","addContainerListener"))
709 3 : (pair<OUString,OUString>("com.sun.star.container.XContainer","removeContainerListener"))
710 3 : (pair<OUString,OUString>("com.sun.star.container.XContainerListener","elementInserted"))
711 3 : (pair<OUString,OUString>("com.sun.star.container.XContainerListener","elementRemoved"))
712 3 : (pair<OUString,OUString>("com.sun.star.container.XContainerListener","elementReplaced"))
713 3 : (pair<OUString,OUString>("com.sun.star.container.XNamed","setName"))
714 3 : (pair<OUString,OUString>("com.sun.star.io.XDataExporter","exportData"))
715 3 : (pair<OUString,OUString>("com.sun.star.io.XDataExporter","cancel"))
716 3 : (pair<OUString,OUString>("com.sun.star.io.XDataImporter","importData"))
717 3 : (pair<OUString,OUString>("com.sun.star.io.XDataImporter","cancel"))
718 3 : (pair<OUString,OUString>("com.sun.star.io.XDataTransferEventListener","finished"))
719 3 : (pair<OUString,OUString>("com.sun.star.io.XDataTransferEventListener","cancelled"))
720 3 : (pair<OUString,OUString>("com.sun.star.lang.XConnectionPointContainer","advise"))
721 3 : (pair<OUString,OUString>("com.sun.star.lang.XConnectionPointContainer","unadvise"))
722 3 : (pair<OUString,OUString>("com.sun.star.script.XAllListener","firing"))
723 3 : (pair<OUString,OUString>("com.sun.star.uno.XInterface","acquire"))
724 3 : (pair<OUString,OUString>("com.sun.star.uno.XInterface","release"))
725 3 : (pair<OUString,OUString>("com.sun.star.uno.XReference","dispose"));
726 :
727 1 : pair<OUString,OUString> k(_rListenerType, _rMethodName);
728 1 : return delayed_event_listeners.find(k) != delayed_event_listeners.end();
729 : }
730 :
731 : //--------------------------------------------------------------------
732 1 : void FormScriptListener::impl_doFireScriptEvent_nothrow( ::osl::ClearableMutexGuard& _rGuard, const ScriptEvent& _rEvent, Any* _pSyncronousResult )
733 : {
734 : OSL_PRECOND( m_pScriptExecutor, "FormScriptListener::impl_doFireScriptEvent_nothrow: this will crash!" );
735 :
736 1 : _rGuard.clear();
737 1 : m_pScriptExecutor->doFireScriptEvent( _rEvent, _pSyncronousResult );
738 1 : }
739 :
740 : //--------------------------------------------------------------------
741 1 : void SAL_CALL FormScriptListener::firing( const ScriptEvent& _rEvent ) throw (RuntimeException)
742 : {
743 1 : ::osl::ClearableMutexGuard aGuard( m_aMutex );
744 1 : static const OUString vbaInterOp("VBAInterop");
745 1 : if ( _rEvent.ScriptType.equals(vbaInterOp) )
746 0 : return; // not handled here
747 :
748 1 : if ( impl_isDisposed_nothrow() )
749 0 : return;
750 :
751 1 : if ( !impl_allowAsynchronousCall_nothrow( _rEvent.ListenerType.getTypeName(), _rEvent.MethodName ) )
752 : {
753 0 : impl_doFireScriptEvent_nothrow( aGuard, _rEvent, NULL );
754 0 : return;
755 : }
756 :
757 1 : acquire();
758 1 : Application::PostUserEvent( LINK( this, FormScriptListener, OnAsyncScriptEvent ), new ScriptEvent( _rEvent ) );
759 : }
760 :
761 : //--------------------------------------------------------------------
762 0 : Any SAL_CALL FormScriptListener::approveFiring( const ScriptEvent& _rEvent ) throw (InvocationTargetException, RuntimeException)
763 : {
764 0 : Any aResult;
765 :
766 0 : ::osl::ClearableMutexGuard aGuard( m_aMutex );
767 0 : if ( !impl_isDisposed_nothrow() )
768 0 : impl_doFireScriptEvent_nothrow( aGuard, _rEvent, &aResult );
769 :
770 0 : return aResult;
771 : }
772 :
773 : //--------------------------------------------------------------------
774 0 : void SAL_CALL FormScriptListener::disposing( const EventObject& /*Source*/ ) throw (RuntimeException)
775 : {
776 : // not interested in
777 0 : }
778 :
779 : //--------------------------------------------------------------------
780 1165 : void SAL_CALL FormScriptListener::dispose()
781 : {
782 1165 : ::osl::MutexGuard aGuard( m_aMutex );
783 1165 : m_pScriptExecutor = NULL;
784 1165 : }
785 :
786 : //--------------------------------------------------------------------
787 2 : IMPL_LINK( FormScriptListener, OnAsyncScriptEvent, ScriptEvent*, _pEvent )
788 : {
789 : OSL_PRECOND( _pEvent != NULL, "FormScriptListener::OnAsyncScriptEvent: invalid event!" );
790 1 : if ( !_pEvent )
791 0 : return 1L;
792 :
793 : {
794 1 : ::osl::ClearableMutexGuard aGuard( m_aMutex );
795 :
796 1 : if ( !impl_isDisposed_nothrow() )
797 1 : impl_doFireScriptEvent_nothrow( aGuard, *_pEvent, NULL );
798 : }
799 :
800 1 : delete _pEvent;
801 : // we acquired ourself immediately before posting the event
802 1 : release();
803 1 : return 0L;
804 : }
805 :
806 : //====================================================================
807 : //= FormScriptingEnvironment
808 : //====================================================================
809 : //--------------------------------------------------------------------
810 1180 : FormScriptingEnvironment::FormScriptingEnvironment( FmFormModel& _rModel )
811 : :m_refCount( 0 )
812 : ,m_pScriptListener( NULL )
813 : ,m_rFormModel( _rModel )
814 1180 : ,m_bDisposed( false )
815 : {
816 1180 : m_pScriptListener = ListenerImplementation( new FormScriptListener( this ) );
817 : // note that this is a cyclic reference between the FormScriptListener and the FormScriptingEnvironment
818 : // This cycle is broken up when our instance is disposed.
819 1180 : }
820 :
821 : //--------------------------------------------------------------------
822 2330 : FormScriptingEnvironment::~FormScriptingEnvironment()
823 : {
824 2330 : }
825 :
826 : //--------------------------------------------------------------------
827 754 : void FormScriptingEnvironment::impl_registerOrRevoke_throw( const Reference< XEventAttacherManager >& _rxManager, bool _bRegister )
828 : {
829 754 : ::osl::MutexGuard aGuard( m_aMutex );
830 :
831 754 : if ( !_rxManager.is() )
832 0 : throw IllegalArgumentException();
833 754 : if ( m_bDisposed )
834 0 : throw DisposedException();
835 :
836 : try
837 : {
838 754 : if ( _bRegister )
839 378 : _rxManager->addScriptListener( m_pScriptListener.getRef() );
840 : else
841 376 : _rxManager->removeScriptListener( m_pScriptListener.getRef() );
842 : }
843 0 : catch( const RuntimeException& ) { throw; }
844 0 : catch( const Exception& )
845 : {
846 : DBG_UNHANDLED_EXCEPTION();
847 754 : }
848 754 : }
849 :
850 : //--------------------------------------------------------------------
851 378 : void FormScriptingEnvironment::registerEventAttacherManager( const Reference< XEventAttacherManager >& _rxManager )
852 : {
853 378 : impl_registerOrRevoke_throw( _rxManager, true );
854 378 : }
855 :
856 : //--------------------------------------------------------------------
857 376 : void FormScriptingEnvironment::revokeEventAttacherManager( const Reference< XEventAttacherManager >& _rxManager )
858 : {
859 376 : impl_registerOrRevoke_throw( _rxManager, false );
860 376 : }
861 :
862 : //--------------------------------------------------------------------
863 1180 : oslInterlockedCount SAL_CALL FormScriptingEnvironment::acquire()
864 : {
865 1180 : return osl_atomic_increment( &m_refCount );
866 : }
867 :
868 : //--------------------------------------------------------------------
869 1165 : oslInterlockedCount SAL_CALL FormScriptingEnvironment::release()
870 : {
871 1165 : if ( 0 == osl_atomic_decrement( &m_refCount ) )
872 : {
873 1165 : delete this;
874 1165 : return 0;
875 : }
876 0 : return m_refCount;
877 : }
878 :
879 : //--------------------------------------------------------------------
880 1165 : IFormScriptingEnvironment::~IFormScriptingEnvironment()
881 : {
882 1165 : }
883 :
884 : //--------------------------------------------------------------------
885 : namespace
886 : {
887 : //................................................................
888 : //. NewStyleUNOScript
889 : //................................................................
890 1 : class SAL_NO_VTABLE IScript
891 : {
892 : public:
893 : virtual void invoke( const Sequence< Any >& _rArguments, Any& _rSynchronousResult ) = 0;
894 :
895 1 : virtual ~IScript() { }
896 : };
897 : typedef ::boost::shared_ptr< IScript > PScript;
898 :
899 : //................................................................
900 : //. NewStyleUNOScript
901 : //................................................................
902 2 : class NewStyleUNOScript : public IScript
903 : {
904 : SfxObjectShell& m_rObjectShell;
905 : const OUString m_sScriptCode;
906 :
907 : public:
908 1 : NewStyleUNOScript( SfxObjectShell& _rObjectShell, const OUString& _rScriptCode )
909 : :m_rObjectShell( _rObjectShell )
910 1 : ,m_sScriptCode( _rScriptCode )
911 : {
912 1 : }
913 :
914 : // IScript
915 : virtual void invoke( const Sequence< Any >& _rArguments, Any& _rSynchronousResult );
916 : };
917 :
918 : //................................................................
919 1 : void NewStyleUNOScript::invoke( const Sequence< Any >& _rArguments, Any& _rSynchronousResult )
920 : {
921 1 : Sequence< sal_Int16 > aOutArgsIndex;
922 2 : Sequence< Any > aOutArgs;
923 2 : EventObject aEvent;
924 2 : Any aCaller;
925 1 : if ( ( _rArguments.getLength() > 0 ) && ( _rArguments[ 0 ] >>= aEvent ) )
926 : {
927 : try
928 : {
929 1 : Reference< XControl > xControl( aEvent.Source, UNO_QUERY_THROW );
930 2 : Reference< XPropertySet > xProps( xControl->getModel(), UNO_QUERY_THROW );
931 2 : aCaller = xProps->getPropertyValue("Name");
932 : }
933 0 : catch( Exception& ) {}
934 : }
935 2 : m_rObjectShell.CallXScript( m_sScriptCode, _rArguments, _rSynchronousResult, aOutArgsIndex, aOutArgs, true, aCaller.hasValue() ? &aCaller : 0 );
936 1 : }
937 : }
938 :
939 : //--------------------------------------------------------------------
940 1 : void FormScriptingEnvironment::doFireScriptEvent( const ScriptEvent& _rEvent, Any* _pSyncronousResult )
941 : {
942 : #ifdef DISABLE_SCRIPTING
943 : (void) _rEvent;
944 : (void) _pSyncronousResult;
945 : #else
946 1 : SolarMutexClearableGuard aSolarGuard;
947 2 : ::osl::ClearableMutexGuard aGuard( m_aMutex );
948 :
949 1 : if ( m_bDisposed )
950 0 : return;
951 :
952 : // SfxObjectShellRef is good here since the model controls the lifetime of the object
953 2 : SfxObjectShellRef xObjectShell = m_rFormModel.GetObjectShell();
954 1 : if( !xObjectShell.Is() )
955 0 : return;
956 :
957 : // the script to execute
958 2 : PScript pScript;
959 :
960 1 : if ( _rEvent.ScriptType != "StarBasic" )
961 : {
962 1 : pScript.reset( new NewStyleUNOScript( *xObjectShell, _rEvent.ScriptCode ) );
963 : }
964 : else
965 : {
966 0 : OUString sScriptCode = _rEvent.ScriptCode;
967 0 : OUString sMacroLocation;
968 :
969 : // is there a location in the script name ("application" or "document")?
970 0 : sal_Int32 nPrefixLen = sScriptCode.indexOf( ':' );
971 : DBG_ASSERT( 0 <= nPrefixLen, "FormScriptingEnvironment::doFireScriptEvent: Basic script name in old format encountered!" );
972 :
973 0 : if ( 0 <= nPrefixLen )
974 : {
975 : // and it has such a prefix
976 0 : sMacroLocation = sScriptCode.copy( 0, nPrefixLen );
977 : DBG_ASSERT( 0 == sMacroLocation.compareToAscii( "document" )
978 : || 0 == sMacroLocation.compareToAscii( "application" ),
979 : "FormScriptingEnvironment::doFireScriptEvent: invalid (unknown) prefix!" );
980 :
981 : // strip the prefix: the SfxObjectShell::CallScript knows nothing about such prefixes
982 0 : sScriptCode = sScriptCode.copy( nPrefixLen + 1 );
983 : }
984 :
985 0 : if ( sMacroLocation.isEmpty() )
986 : {
987 : // legacy format: use the app-wide Basic, if it has a respective method, otherwise fall back to the doc's Basic
988 0 : if ( SFX_APP()->GetBasicManager()->HasMacro( sScriptCode ) )
989 0 : sMacroLocation = OUString( "application" );
990 : else
991 0 : sMacroLocation = OUString( "document" );
992 : }
993 :
994 0 : OUStringBuffer aScriptURI;
995 0 : aScriptURI.appendAscii( "vnd.sun.star.script:" );
996 0 : aScriptURI.append( sScriptCode );
997 0 : aScriptURI.appendAscii( "?language=Basic" );
998 0 : aScriptURI.appendAscii( "&location=" );
999 0 : aScriptURI.append( sMacroLocation );
1000 :
1001 0 : const OUString sScriptURI( aScriptURI.makeStringAndClear() );
1002 0 : pScript.reset( new NewStyleUNOScript( *xObjectShell, sScriptURI ) );
1003 : }
1004 :
1005 : OSL_ENSURE( pScript.get(), "FormScriptingEnvironment::doFireScriptEvent: no script to execute!" );
1006 1 : if ( !pScript.get() )
1007 : // this is an internal error in the above code
1008 0 : throw RuntimeException();
1009 :
1010 1 : aGuard.clear();
1011 1 : aSolarGuard.clear();
1012 :
1013 2 : Any aIgnoreResult;
1014 1 : pScript->invoke( _rEvent.Arguments, _pSyncronousResult ? *_pSyncronousResult : aIgnoreResult );
1015 1 : pScript.reset();
1016 :
1017 : {
1018 : // object shells are not thread safe, so guard the destruction
1019 1 : SolarMutexGuard aSolarGuarsReset;
1020 1 : xObjectShell = NULL;
1021 1 : }
1022 : #endif
1023 : }
1024 :
1025 : //--------------------------------------------------------------------
1026 1165 : void FormScriptingEnvironment::dispose()
1027 : {
1028 1165 : ::osl::MutexGuard aGuard( m_aMutex );
1029 1165 : m_bDisposed = true;
1030 1165 : m_pScriptListener->dispose();
1031 1165 : }
1032 :
1033 : //--------------------------------------------------------------------
1034 1180 : PFormScriptingEnvironment createDefaultFormScriptingEnvironment( FmFormModel& _rModel )
1035 : {
1036 1180 : return new FormScriptingEnvironment( _rModel );
1037 : }
1038 :
1039 : //........................................................................
1040 258 : } // namespace svxform
1041 : //........................................................................
1042 :
1043 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|