LCOV - code coverage report
Current view: top level - usr/local/src/libreoffice/svx/source/form - fmscriptingenv.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 626 666 94.0 %
Date: 2013-07-09 Functions: 30 34 88.2 %
Legend: Lines: hit not hit

          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: */

Generated by: LCOV version 1.10