LCOV - code coverage report
Current view: top level - svx/source/inc - formcontroller.hxx (source / functions) Hit Total Coverage
Test: commit c8344322a7af75b84dd3ca8f78b05543a976dfd5 Lines: 3 6 50.0 %
Date: 2015-06-13 12:38:46 Functions: 3 5 60.0 %
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             : #ifndef INCLUDED_SVX_SOURCE_INC_FORMCONTROLLER_HXX
      20             : #define INCLUDED_SVX_SOURCE_INC_FORMCONTROLLER_HXX
      21             : 
      22             : #include <sal/config.h>
      23             : 
      24             : #include <vector>
      25             : 
      26             : #include "delayedevent.hxx"
      27             : #include "formdispatchinterceptor.hxx"
      28             : #include "sqlparserclient.hxx"
      29             : 
      30             : #include <com/sun/star/awt/XControl.hpp>
      31             : #include <com/sun/star/awt/XControlModel.hpp>
      32             : #include <com/sun/star/awt/XFocusListener.hpp>
      33             : #include <com/sun/star/awt/XItemListener.hpp>
      34             : #include <com/sun/star/awt/XMouseListener.hpp>
      35             : #include <com/sun/star/awt/XTabController.hpp>
      36             : #include <com/sun/star/awt/XTextComponent.hpp>
      37             : #include <com/sun/star/container/XContainerListener.hpp>
      38             : #include <com/sun/star/container/XEnumerationAccess.hpp>
      39             : #include <com/sun/star/container/XIndexContainer.hpp>
      40             : #include <com/sun/star/form/DatabaseDeleteEvent.hpp>
      41             : #include <com/sun/star/form/DatabaseParameterEvent.hpp>
      42             : #include <com/sun/star/form/ErrorEvent.hpp>
      43             : #include <com/sun/star/form/validation/XFormComponentValidityListener.hpp>
      44             : #include <com/sun/star/form/XConfirmDeleteBroadcaster.hpp>
      45             : #include <com/sun/star/form/XConfirmDeleteListener.hpp>
      46             : #include <com/sun/star/form/XDatabaseParameterBroadcaster2.hpp>
      47             : #include <com/sun/star/form/XDatabaseParameterListener.hpp>
      48             : #include <com/sun/star/form/runtime/XFormController.hpp>
      49             : #include <com/sun/star/form/runtime/XFilterController.hpp>
      50             : #include <com/sun/star/form/XFormControllerListener.hpp>
      51             : #include <com/sun/star/form/XGridControlListener.hpp>
      52             : #include <com/sun/star/form/XLoadListener.hpp>
      53             : #include <com/sun/star/form/XResetListener.hpp>
      54             : #include <com/sun/star/frame/DispatchDescriptor.hpp>
      55             : #include <com/sun/star/frame/XDispatch.hpp>
      56             : #include <com/sun/star/frame/XDispatchProvider.hpp>
      57             : #include <com/sun/star/frame/XDispatchProviderInterception.hpp>
      58             : #include <com/sun/star/frame/XDispatchProviderInterceptor.hpp>
      59             : #include <com/sun/star/frame/XModel.hpp>
      60             : #include <com/sun/star/lang/XMultiServiceFactory.hpp>
      61             : #include <com/sun/star/lang/XServiceInfo.hpp>
      62             : #include <com/sun/star/script/XEventAttacherManager.hpp>
      63             : #include <com/sun/star/sdb/XRowSetApproveBroadcaster.hpp>
      64             : #include <com/sun/star/sdb/XRowSetApproveListener.hpp>
      65             : #include <com/sun/star/sdb/XSingleSelectQueryComposer.hpp>
      66             : #include <com/sun/star/sdb/XSQLErrorBroadcaster.hpp>
      67             : #include <com/sun/star/sdb/XSQLErrorListener.hpp>
      68             : #include <com/sun/star/sdbc/XRowSetListener.hpp>
      69             : #include <com/sun/star/task/XInteractionHandler.hpp>
      70             : #include <com/sun/star/util/XModeSelector.hpp>
      71             : #include <com/sun/star/util/XModifyBroadcaster.hpp>
      72             : #include <com/sun/star/util/XModifyListener.hpp>
      73             : 
      74             : #include <comphelper/broadcasthelper.hxx>
      75             : #include <comphelper/proparrhlp.hxx>
      76             : #include <cppuhelper/propshlp.hxx>
      77             : #include <vcl/timer.hxx>
      78             : #include <vcl/idle.hxx>
      79             : 
      80             : #include <cppuhelper/compbase.hxx>
      81             : 
      82             : struct FmXTextComponentLess : public ::std::binary_function< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >, ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent> , bool>
      83             : {
      84           0 :     bool operator() (const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >& x, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >& y) const
      85             :     {
      86           0 :         return reinterpret_cast<sal_Int64>(x.get()) < reinterpret_cast<sal_Int64>(y.get());
      87             :     }
      88             : };
      89             : 
      90             : typedef ::std::map< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >, OUString, FmXTextComponentLess> FmFilterRow;
      91             : typedef ::std::vector< FmFilterRow > FmFilterRows;
      92             : typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController > > FmFormControllers;
      93             : 
      94             : namespace vcl { class Window; }
      95             : 
      96             : namespace svxform
      97             : {
      98             :     typedef ::std::vector< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent > >    FilterComponents;
      99             :     class ControlBorderManager;
     100             :     struct FmFieldInfo;
     101             : 
     102             :     typedef cppu::WeakComponentImplHelper           <   ::com::sun::star::form::runtime::XFormController
     103             :                                                     ,   ::com::sun::star::form::runtime::XFilterController
     104             :                                                     ,   ::com::sun::star::awt::XFocusListener
     105             :                                                     ,   ::com::sun::star::form::XLoadListener
     106             :                                                     ,   ::com::sun::star::beans::XPropertyChangeListener
     107             :                                                     ,   ::com::sun::star::awt::XTextListener
     108             :                                                     ,   ::com::sun::star::awt::XItemListener
     109             :                                                     ,   ::com::sun::star::container::XContainerListener
     110             :                                                     ,   ::com::sun::star::util::XModifyListener
     111             :                                                     ,   ::com::sun::star::form::XConfirmDeleteListener
     112             :                                                     ,   ::com::sun::star::sdb::XSQLErrorListener
     113             :                                                     ,   ::com::sun::star::sdbc::XRowSetListener
     114             :                                                     ,   ::com::sun::star::sdb::XRowSetApproveListener
     115             :                                                     ,   ::com::sun::star::form::XDatabaseParameterListener
     116             :                                                     ,   ::com::sun::star::lang::XServiceInfo
     117             :                                                     ,   ::com::sun::star::form::XResetListener
     118             :                                                     ,   ::com::sun::star::frame::XDispatch
     119             :                                                     ,   ::com::sun::star::awt::XMouseListener
     120             :                                                     ,   ::com::sun::star::form::validation::XFormComponentValidityListener
     121             :                                                     ,   ::com::sun::star::task::XInteractionHandler
     122             :                                                     ,   ::com::sun::star::form::XGridControlListener
     123             :                                                     ,   ::com::sun::star::form::runtime::XFeatureInvalidation
     124             :                                                     >   FormController_BASE;
     125             : 
     126             :     class ColumnInfoCache;
     127             :     class FormController :public ::comphelper::OBaseMutex
     128             :                                         ,public FormController_BASE
     129             :                                         ,public ::cppu::OPropertySetHelper
     130             :                                         ,public DispatchInterceptor
     131             :                                         ,public ::comphelper::OAggregationArrayUsageHelper< FormController >
     132             :                                         ,public ::svxform::OSQLParserClient
     133             :     {
     134             :         typedef ::std::map  <   sal_Int16,
     135             :                                 ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch >
     136             :                             >   DispatcherContainer;
     137             : 
     138             :         ::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation>              m_xAggregate;
     139             :         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabController>            m_xTabController;
     140             :         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>                  m_xActiveControl, m_xCurrentControl;
     141             :         ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess>        m_xModelAsIndex;
     142             :         ::com::sun::star::uno::Reference< ::com::sun::star::script::XEventAttacherManager>  m_xModelAsManager;
     143             :         ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>                m_xParent;
     144             :         ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext>         m_xComponentContext;
     145             :         // Composer used for checking filter conditions
     146             :         ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSingleSelectQueryComposer >       m_xComposer;
     147             :         ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >             m_xInteractionHandler;
     148             :         ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormControllerContext > m_xFormControllerContext;
     149             : 
     150             :         ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> >   m_aControls;
     151             :         ::cppu::OInterfaceContainerHelper
     152             :                                     m_aActivateListeners,
     153             :                                     m_aModifyListeners,
     154             :                                     m_aErrorListeners,
     155             :                                     m_aDeleteListeners,
     156             :                                     m_aRowSetApproveListeners,
     157             :                                     m_aParameterListeners,
     158             :                                     m_aFilterListeners;
     159             : 
     160             :         FmFormControllers           m_aChildren;
     161             :         FilterComponents            m_aFilterComponents;
     162             :         FmFilterRows                m_aFilterRows;
     163             : 
     164             :         Idle                        m_aTabActivationIdle;
     165             :         Timer                       m_aFeatureInvalidationTimer;
     166             : 
     167             :         ::svxform::ControlBorderManager*
     168             :                                     m_pControlBorderManager;
     169             : 
     170             :         ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormOperations >
     171             :                                     m_xFormOperations;
     172             :         DispatcherContainer         m_aFeatureDispatchers;
     173             :         ::std::set< sal_Int16 >     m_aInvalidFeatures;     // for asynchronous feature invalidation
     174             : 
     175             :         OUString             m_aMode;
     176             : 
     177             :         ::svxform::DelayedEvent     m_aLoadEvent;
     178             :         ::svxform::DelayedEvent     m_aToggleEvent;
     179             :         ::svxform::DelayedEvent     m_aActivationEvent;
     180             :         ::svxform::DelayedEvent     m_aDeactivationEvent;
     181             : 
     182             :         ::std::unique_ptr< ColumnInfoCache >
     183             :                                     m_pColumnInfoCache;
     184             : 
     185             :         sal_Int32                   m_nCurrentFilterPosition;   // current level for filtering (or-criteria)
     186             : 
     187             :         bool                        m_bCurrentRecordModified    : 1;
     188             :         bool                        m_bCurrentRecordNew         : 1;
     189             :         bool                        m_bLocked                   : 1;
     190             :         bool                        m_bDBConnection             : 1;    // Focuslistener nur fuer Datenbankformulare
     191             :         bool                        m_bCycle                    : 1;
     192             :         bool                        m_bCanInsert                : 1;
     193             :         bool                        m_bCanUpdate                : 1;
     194             :         bool                        m_bCommitLock               : 1;    // lock the committing of controls see focusGained
     195             :         bool                        m_bModified                 : 1;    // ist der Inhalt eines Controls modifiziert ?
     196             :         bool                        m_bControlsSorted           : 1;
     197             :         bool                        m_bFiltering                : 1;
     198             :         bool                        m_bAttachEvents             : 1;
     199             :         bool                        m_bDetachEvents             : 1;
     200             :         bool                        m_bAttemptedHandlerCreation : 1;
     201             :         bool                        m_bSuspendFilterTextListening;          // no bit field, passed around as reference
     202             : 
     203             :         // as we want to intercept dispatches of _all_ controls we're responsible for, and an object implementing
     204             :         // the ::com::sun::star::frame::XDispatchProviderInterceptor interface can intercept only _one_ objects dispatches, we need a helper class
     205             :         typedef std::vector<DispatchInterceptionMultiplexer*> Interceptors;
     206             :         Interceptors    m_aControlDispatchInterceptors;
     207             : 
     208             :     public:
     209             :         FormController( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > & _rxORB );
     210             : 
     211             :     protected:
     212             :         virtual ~FormController();
     213             : 
     214             :     // XInterface
     215             :         virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& type) throw ( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     216             :         virtual void SAL_CALL acquire() throw () SAL_OVERRIDE;
     217             :         virtual void SAL_CALL release() throw () SAL_OVERRIDE;
     218             : 
     219             :     // XTypeProvider
     220             :         virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     221             :         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes(  ) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     222             : 
     223             :     // XDispatch
     224             :         virtual void SAL_CALL dispatch( const ::com::sun::star::util::URL& _rURL, const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& _rArgs ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     225             :         virtual void SAL_CALL addStatusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener >& _rxListener, const ::com::sun::star::util::URL& _rURL ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     226             :         virtual void SAL_CALL removeStatusListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XStatusListener >& _rxListener, const ::com::sun::star::util::URL& _rURL ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     227             : 
     228             :     // ::com::sun::star::container::XChild
     229             :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> SAL_CALL getParent() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     230             :         virtual void SAL_CALL setParent(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface>& Parent) throw( ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     231             : 
     232             :     // ::com::sun::star::lang::XEventListener
     233             :         virtual void SAL_CALL disposing(const ::com::sun::star::lang::EventObject& Source) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     234             : 
     235             :     // OComponentHelper
     236             :         virtual void SAL_CALL disposing() SAL_OVERRIDE;
     237             : 
     238             :     // OPropertySetHelper
     239             :         virtual sal_Bool SAL_CALL convertFastPropertyValue( ::com::sun::star::uno::Any & rConvertedValue, ::com::sun::star::uno::Any & rOldValue,
     240             :                                                 sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue )
     241             :                     throw( ::com::sun::star::lang::IllegalArgumentException ) SAL_OVERRIDE;
     242             : 
     243             :         virtual void SAL_CALL setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const ::com::sun::star::uno::Any& rValue ) throw( ::com::sun::star::uno::Exception, std::exception ) SAL_OVERRIDE;
     244             :         virtual void SAL_CALL getFastPropertyValue( ::com::sun::star::uno::Any& rValue, sal_Int32 nHandle ) const SAL_OVERRIDE;
     245             : 
     246             :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     247             :         virtual ::cppu::IPropertyArrayHelper & SAL_CALL getInfoHelper() SAL_OVERRIDE;
     248             : 
     249             :         using OPropertySetHelper::getFastPropertyValue;
     250             : 
     251             :         // XFilterController
     252             :         virtual ::sal_Int32 SAL_CALL getFilterComponents() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     253             :         virtual ::sal_Int32 SAL_CALL getDisjunctiveTerms() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     254             :         virtual void SAL_CALL addFilterControllerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFilterControllerListener >& _Listener ) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     255             :         virtual void SAL_CALL removeFilterControllerListener( const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFilterControllerListener >& _Listener ) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     256             :         virtual void SAL_CALL setPredicateExpression( ::sal_Int32 _Component, ::sal_Int32 _Term, const OUString& _PredicateExpression ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     257             :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl > SAL_CALL getFilterComponent( ::sal_Int32 _Component ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     258             :         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< OUString > > SAL_CALL getPredicateExpressions() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     259             :         virtual void SAL_CALL removeDisjunctiveTerm( ::sal_Int32 _Term ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     260             :         virtual void SAL_CALL appendEmptyDisjunctiveTerm() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     261             :         virtual ::sal_Int32 SAL_CALL getActiveTerm() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     262             :         virtual void SAL_CALL setActiveTerm( ::sal_Int32 _ActiveTerm ) throw (::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     263             : 
     264             :     // XElementAccess
     265             :         virtual ::com::sun::star::uno::Type SAL_CALL getElementType() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     266             :         virtual sal_Bool SAL_CALL hasElements() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     267             : 
     268             :     // ::com::sun::star::container::XEnumerationAccess
     269             :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration> SAL_CALL createEnumeration() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     270             : 
     271             :     // ::com::sun::star::container::XContainerListener
     272             :         virtual void SAL_CALL elementInserted(const ::com::sun::star::container::ContainerEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     273             :         virtual void SAL_CALL elementReplaced(const ::com::sun::star::container::ContainerEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     274             :         virtual void SAL_CALL elementRemoved(const ::com::sun::star::container::ContainerEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     275             : 
     276             :     // XLoadListener
     277             :         virtual void SAL_CALL loaded(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     278             :         virtual void SAL_CALL unloaded(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     279             :         virtual void SAL_CALL unloading(const ::com::sun::star::lang::EventObject& aEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     280             :         virtual void SAL_CALL reloading(const ::com::sun::star::lang::EventObject& aEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     281             :         virtual void SAL_CALL reloaded(const ::com::sun::star::lang::EventObject& aEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     282             : 
     283             :     // XModeSelector
     284             :         virtual void SAL_CALL setMode(const OUString& Mode) throw( ::com::sun::star::lang::NoSupportException, ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     285             :         virtual OUString SAL_CALL getMode() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     286             :         virtual ::com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedModes() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     287             :         virtual sal_Bool SAL_CALL supportsMode(const OUString& Mode) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     288             : 
     289             :     // ::com::sun::star::container::XIndexAccess
     290             :         virtual sal_Int32 SAL_CALL getCount() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     291             :         virtual ::com::sun::star::uno::Any SAL_CALL getByIndex(sal_Int32 Index) throw( ::com::sun::star::lang::IndexOutOfBoundsException, ::com::sun::star::lang::WrappedTargetException, ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     292             : 
     293             :     // XModifyBroadcaster
     294             :         virtual void SAL_CALL addModifyListener(const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener>& l) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     295             :         virtual void SAL_CALL removeModifyListener(const ::com::sun::star::uno::Reference< ::com::sun::star::util::XModifyListener>& l) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     296             : 
     297             :     // XFocusListener
     298             :         virtual void SAL_CALL focusGained(const  ::com::sun::star::awt::FocusEvent& e) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     299             :         virtual void SAL_CALL focusLost(const  ::com::sun::star::awt::FocusEvent& e) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     300             : 
     301             :     // XMouseListener
     302             :         virtual void SAL_CALL mousePressed( const ::com::sun::star::awt::MouseEvent& _rEvent ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     303             :         virtual void SAL_CALL mouseReleased( const ::com::sun::star::awt::MouseEvent& _rEvent ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     304             :         virtual void SAL_CALL mouseEntered( const ::com::sun::star::awt::MouseEvent& _rEvent ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     305             :         virtual void SAL_CALL mouseExited( const ::com::sun::star::awt::MouseEvent& _rEvent ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     306             : 
     307             :     // XFormComponentValidityListener
     308             :         virtual void SAL_CALL componentValidityChanged( const ::com::sun::star::lang::EventObject& _rSource ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     309             : 
     310             :     // XInteractionHandler
     311             :         virtual void SAL_CALL handle( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionRequest >& Request ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     312             : 
     313             :     // XGridControlListener
     314             :         virtual void SAL_CALL columnChanged( const ::com::sun::star::lang::EventObject& _event ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     315             : 
     316             :     // ::com::sun::star::beans::XPropertyChangeListener -> change of states
     317             :         virtual void SAL_CALL propertyChange(const  ::com::sun::star::beans::PropertyChangeEvent& evt) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     318             : 
     319             :     // XTextListener           -> modify setzen
     320             :         virtual void SAL_CALL textChanged(const  ::com::sun::star::awt::TextEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     321             : 
     322             :     // XItemListener            -> modify setzen
     323             :         virtual void SAL_CALL itemStateChanged(const  ::com::sun::star::awt::ItemEvent& rEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     324             : 
     325             :     // XModifyListener   -> modify setzen
     326             :         virtual void SAL_CALL modified(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     327             : 
     328             :     // XFormController
     329             :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormOperations > SAL_CALL getFormOperations() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     330             :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> SAL_CALL getCurrentControl() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     331             :         virtual void SAL_CALL addActivateListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormControllerListener>& l) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     332             :         virtual void SAL_CALL removeActivateListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XFormControllerListener>& l) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     333             :         virtual void SAL_CALL addChildController( const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormController >& _ChildController ) throw( ::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::IllegalArgumentException, std::exception ) SAL_OVERRIDE;
     334             : 
     335             :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormControllerContext > SAL_CALL getContext() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     336             :         virtual void SAL_CALL setContext( const ::com::sun::star::uno::Reference< ::com::sun::star::form::runtime::XFormControllerContext >& _context ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     337             :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler > SAL_CALL getInteractionHandler() throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     338             :         virtual void SAL_CALL setInteractionHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler >& _interactionHandler ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     339             : 
     340             :     // XTabController
     341             :         virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> > SAL_CALL getControls() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     342             : 
     343             :         virtual void SAL_CALL setModel(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabControllerModel>& Model) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     344             :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTabControllerModel> SAL_CALL getModel() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     345             : 
     346             :         virtual void SAL_CALL setContainer(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer>& Container) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     347             :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer> SAL_CALL getContainer() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     348             : 
     349             :         virtual void SAL_CALL autoTabOrder() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     350             :         virtual void SAL_CALL activateTabOrder() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     351             : 
     352             :         virtual void SAL_CALL activateFirst() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     353             :         virtual void SAL_CALL activateLast() throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     354             : 
     355             :     // com::sun::star::sdbc::XRowSetListener
     356             :         virtual void SAL_CALL cursorMoved(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     357             :         virtual void SAL_CALL rowChanged(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     358             :         virtual void SAL_CALL rowSetChanged(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     359             : 
     360             :     // XRowSetApproveListener
     361             :         virtual sal_Bool SAL_CALL approveCursorMove(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     362             :         virtual sal_Bool SAL_CALL approveRowChange(const  ::com::sun::star::sdb::RowChangeEvent& event) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     363             :         virtual sal_Bool SAL_CALL approveRowSetChange(const ::com::sun::star::lang::EventObject& event) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     364             : 
     365             :     // XRowSetApproveBroadcaster
     366             :         virtual void SAL_CALL addRowSetApproveListener(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XRowSetApproveListener>& listener) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     367             :         virtual void SAL_CALL removeRowSetApproveListener(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XRowSetApproveListener>& listener) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     368             : 
     369             :     // XSQLErrorBroadcaster
     370             :         virtual void SAL_CALL errorOccured(const ::com::sun::star::sdb::SQLErrorEvent& aEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     371             : 
     372             :     // XSQLErrorListener
     373             :         virtual void SAL_CALL addSQLErrorListener(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSQLErrorListener>& _rListener) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     374             :         virtual void SAL_CALL removeSQLErrorListener(const ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSQLErrorListener>& _rListener) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     375             : 
     376             :     // XDatabaseParameterBroadcaster2
     377             :         virtual void SAL_CALL addDatabaseParameterListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XDatabaseParameterListener>& aListener) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     378             :         virtual void SAL_CALL removeDatabaseParameterListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XDatabaseParameterListener>& aListener) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     379             : 
     380             :     // XDatabaseParameterBroadcaster
     381             :         virtual void SAL_CALL addParameterListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XDatabaseParameterListener>& aListener) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     382             :         virtual void SAL_CALL removeParameterListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XDatabaseParameterListener>& aListener) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     383             : 
     384             :     // XDatabaseParameterListener
     385             :         virtual sal_Bool SAL_CALL approveParameter(const ::com::sun::star::form::DatabaseParameterEvent& aEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     386             : 
     387             :     // XConfirmDeleteBroadcaster
     388             :         virtual void SAL_CALL addConfirmDeleteListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XConfirmDeleteListener>& aListener) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     389             :         virtual void SAL_CALL removeConfirmDeleteListener(const ::com::sun::star::uno::Reference< ::com::sun::star::form::XConfirmDeleteListener>& aListener) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     390             : 
     391             :     // XConfirmDeleteListener
     392             :         virtual sal_Bool SAL_CALL confirmDelete(const  ::com::sun::star::sdb::RowChangeEvent& aEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     393             : 
     394             :     // XServiceInfo
     395             :         virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     396             :         virtual OUString SAL_CALL getImplementationName() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     397             :         virtual ::com::sun::star::uno::Sequence< OUString >  SAL_CALL getSupportedServiceNames() throw(::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     398             : 
     399             :     // XResetListener
     400             :         virtual sal_Bool SAL_CALL approveReset(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     401             :         virtual void SAL_CALL resetted(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException, std::exception ) SAL_OVERRIDE;
     402             : 
     403             :         // XFeatureInvalidation
     404             :         virtual void SAL_CALL invalidateFeatures( const ::com::sun::star::uno::Sequence< ::sal_Int16 >& Features ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     405             :         virtual void SAL_CALL invalidateAllFeatures(  ) throw (::com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
     406             : 
     407             : // method for registration
     408             :         static  ::com::sun::star::uno::Sequence< OUString >  getSupportedServiceNames_Static();
     409             : 
     410             :         // comphelper::OPropertyArrayUsageHelper
     411             :         virtual void fillProperties(
     412             :             ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property >& /* [out] */ _rProps,
     413             :             ::com::sun::star::uno::Sequence< ::com::sun::star::beans::Property >& /* [out] */ _rAggregateProps
     414             :             ) const SAL_OVERRIDE;
     415             : 
     416             :     protected:
     417             :         // DispatchInterceptor
     418             :         virtual ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch>
     419             :             interceptedQueryDispatch(
     420             :                     const ::com::sun::star::util::URL& aURL,
     421             :                     const OUString& aTargetFrameName,
     422             :                     sal_Int32 nSearchFlags
     423             :                 )   throw( ::com::sun::star::uno::RuntimeException ) SAL_OVERRIDE;
     424             : 
     425         124 :         virtual ::osl::Mutex* getInterceptorMutex() SAL_OVERRIDE { return &m_aMutex; }
     426             : 
     427             :         /// update all our dispatchers
     428             :         void    updateAllDispatchers() const;
     429             : 
     430             :         /** disposes all dispatchers in m_aFeatureDispatchers, and empties m_aFeatureDispatchers
     431             :         */
     432             :         void    disposeAllFeaturesAndDispatchers();
     433             : 
     434             :         void startFiltering();
     435             :         void stopFiltering();
     436             :         void setFilter(::std::vector<FmFieldInfo>&);
     437             :         void startListening();
     438             :         void stopListening();
     439             : 
     440             :         /** ensures that we have an interaction handler, if possible
     441             : 
     442             :             If an interaction handler was provided at creation time (<member>initialize</member>), this
     443             :             one will be used. Else, an attempt is made to create an <type scope="com::sun::star::sdb">InteractionHandler</type>
     444             :             is made.
     445             : 
     446             :             @return <TRUE/>
     447             :                 if and only if <member>m_xInteractionHandler</member> is valid when the method returns
     448             :         */
     449             :         bool ensureInteractionHandler();
     450             : 
     451             :         /** replaces one of our controls with another one
     452             : 
     453             :             Upon successful replacing, the old control will be disposed. Also, internal members pointing
     454             :             to the current or active control will be adjusted. Yet more, if the replaced control was
     455             :             the active control, the new control will be made active.
     456             : 
     457             :             @param _rxExistentControl
     458             :                 The control to replace. Must be one of the controls in our ControlContainer.
     459             :             @param _rxNewControl
     460             :                 The control which should replace the existent control.
     461             :             @return
     462             :                 <TRUE/> if and only if the control was successfully replaced
     463             :         */
     464             :         bool    replaceControl(
     465             :             const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& _rxExistentControl,
     466             :             const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& _rxNewControl
     467             :         );
     468             : 
     469             :         // we're listening at all bound controls for modifications
     470             :         void startControlModifyListening(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
     471             :         void stopControlModifyListening(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
     472             : 
     473             :         void setLocks();
     474             :         void setControlLock(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
     475             :         void addToEventAttacher(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
     476             :         void removeFromEventAttacher(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
     477             :         void toggleAutoFields(bool bAutoFields);
     478             :         void unload() throw( ::com::sun::star::uno::RuntimeException );
     479             :         void removeBoundFieldListener();
     480             : 
     481             :         void startFormListening( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxForm, bool _bPropertiesOnly  );
     482             :         void stopFormListening( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxForm, bool _bPropertiesOnly );
     483             : 
     484             :         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> findControl( ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> >& rCtrls, const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel>& rxCtrlModel, bool _bRemove, bool _bOverWrite ) const;
     485             : 
     486             :         void insertControl(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
     487             :         void removeControl(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& xControl);
     488             : 
     489             :         /// called when a new control is to be handled by the controller
     490             :         void implControlInserted( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& _rxControl, bool _bAddToEventAttacher );
     491             :         /// called when a control is not to be handled by the controller anymore
     492             :         void implControlRemoved( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl>& _rxControl, bool _bRemoveFromEventAttacher );
     493             : 
     494             :         /** sets m_xCurrentControl, plus does administrative tasks depending on it
     495             :         */
     496             :         void    implSetCurrentControl( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >& _rxControl );
     497             : 
     498             :         /** invalidates the FormFeatures which depend on the current control
     499             :         */
     500             :         void    implInvalidateCurrentControlDependentFeatures();
     501             : 
     502        1418 :         bool    impl_isDisposed_nofail() const { return FormController_BASE::rBHelper.bDisposed; }
     503             :         void    impl_checkDisposed_throw() const;
     504             : 
     505             :         void    impl_onModify();
     506             : 
     507             :         /** adds the given filter row to m_aFilterRows, setting m_nCurrentFilterPosition to 0 if the newly added
     508             :             row is the first one.
     509             : 
     510             :             @precond
     511             :                 our mutex is locked
     512             :         */
     513             :         void    impl_addFilterRow( const FmFilterRow& _row );
     514             : 
     515             :         /** adds an empty filter row to m_aFilterRows, and notifies our listeners
     516             :         */
     517             :         void    impl_appendEmptyFilterRow( ::osl::ClearableMutexGuard& _rClearBeforeNotify );
     518             : 
     519           0 :         bool isLocked() const {return m_bLocked;}
     520             :         bool determineLockState() const;
     521             : 
     522             :         vcl::Window* getDialogParentWindow();
     523             :             // returns the window which should be used as parent window for dialogs
     524             : 
     525             :         ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterceptor>    createInterceptor(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterception>& _xInterception);
     526             :             // create a new interceptor, register it on the given object
     527             :         void                            deleteInterceptor(const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterception>& _xInterception);
     528             :             // if createInterceptor was called for the given object the according interceptor will be removed
     529             :             // from the objects interceptor chain and released
     530             : 
     531             :         /** checks all form controls belonging to our form for validity
     532             : 
     533             :             If a form control supports the XValidatableFormComponent interface, this is used to determine
     534             :             the validity of the control. If the interface is not supported, the control is supposed to be
     535             :             valid.
     536             : 
     537             :             @param _rFirstInvalidityExplanation
     538             :                 if the method returns <FALSE/> (i.e. if there is an invalid control), this string contains
     539             :                 the explanation for the invalidity, as obtained from the validator.
     540             : 
     541             :             @param _rxFirstInvalidModel
     542             :                 if the method returns <FALSE/> (i.e. if there is an invalid control), this contains
     543             :                 the control model
     544             : 
     545             :             @return
     546             :                 <TRUE/> if and only if all controls belonging to our form are valid
     547             :         */
     548             :         bool    checkFormComponentValidity(
     549             :                     OUString& /* [out] */ _rFirstInvalidityExplanation,
     550             :                     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& /* [out] */ _rxFirstInvalidModel
     551             :                 );
     552             : 
     553             :         /** locates the control which belongs to a given model
     554             :         */
     555             :         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl >
     556             :                 locateControl( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel >& _rxModel );
     557             : 
     558             :         // set the text for all filters
     559             :         void impl_setTextOnAllFilter_throw();
     560             : 
     561             :         // in filter mode we do not listen for changes
     562          54 :         bool isListeningForChanges() const {return m_bDBConnection && !m_bFiltering && !isLocked();}
     563             :         ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> isInList(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer>& xPeer) const;
     564             : 
     565             :         DECL_LINK_TYPED( OnActivateTabOrder, Idle*, void );
     566             :         DECL_LINK_TYPED( OnInvalidateFeatures, Timer*, void );
     567             :         DECL_LINK( OnLoad, void* );
     568             :         DECL_LINK( OnToggleAutoFields, void* );
     569             :         DECL_LINK( OnActivated, void* );
     570             :         DECL_LINK( OnDeactivated, void* );
     571             :     };
     572             : 
     573             : }
     574             : 
     575             : #endif // INCLUDED_SVX_SOURCE_INC_FORMCONTROLLER_HXX
     576             : 
     577             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.11