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