summaryrefslogtreecommitdiff
path: root/svx/source/inc
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2004-04-13 10:01:04 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2004-04-13 10:01:04 +0000
commitc2817527221976442fc06b691bcf2fa617bdccd6 (patch)
treeff913b352903bf65a978d41d08a24ce0c257b3a2 /svx/source/inc
parentb72d9dac1ae834d0406364cb22b502380ec183ea (diff)
INTEGRATION: CWS frmcontrols02 (1.10.340); FILE MERGED
2004/01/22 10:16:50 fs 1.10.340.1: #i24411# uh - quite some changes
Diffstat (limited to 'svx/source/inc')
-rw-r--r--svx/source/inc/fmctrler.hxx98
1 files changed, 56 insertions, 42 deletions
diff --git a/svx/source/inc/fmctrler.hxx b/svx/source/inc/fmctrler.hxx
index a5ac08c55352..2bdf7b8ade36 100644
--- a/svx/source/inc/fmctrler.hxx
+++ b/svx/source/inc/fmctrler.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: fmctrler.hxx,v $
*
- * $Revision: 1.11 $
+ * $Revision: 1.12 $
*
- * last change: $Author: rt $ $Date: 2004-04-02 10:30:07 $
+ * last change: $Author: hr $ $Date: 2004-04-13 11:01:04 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -239,9 +239,6 @@
#ifndef _CPPUHELPER_PROPSHLP_HXX
#include <cppuhelper/propshlp.hxx>
#endif
-#ifndef _FM_IMPLEMENTATION_IDS_HXX_
-#include <fmimplids.hxx>
-#endif
#ifndef _COMPHELPER_PROPERTY_ARRAY_HELPER_HXX_
#include <comphelper/proparrhlp.hxx>
#endif
@@ -254,6 +251,9 @@
#ifndef _COMPHELPER_BROADCASTHELPER_HXX_
#include <comphelper/broadcasthelper.hxx>
#endif
+#ifndef SVX_FORMCONTROLLING_HXX
+#include "formcontrolling.hxx"
+#endif
struct FmXTextComponentLess : public binary_function< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent >, ::com::sun::star::uno::Reference< ::com::sun::star::awt::XTextComponent> , sal_Bool>
{
@@ -274,46 +274,54 @@ class FmFormView;
class Window;
typedef ::cppu::WeakAggComponentImplHelper12< ::com::sun::star::form::XFormController
- ,::com::sun::star::container::XChild
- ,::com::sun::star::container::XIndexAccess // access of child contoller
- ,::com::sun::star::container::XEnumerationAccess
- ,::com::sun::star::awt::XFocusListener
- ,::com::sun::star::form::XLoadListener
- ,::com::sun::star::beans::XPropertyChangeListener
- ,::com::sun::star::awt::XTextListener
- ,::com::sun::star::awt::XItemListener
- ,::com::sun::star::container::XContainerListener
- ,::com::sun::star::util::XModifyListener
- ,::com::sun::star::util::XModifyBroadcaster> FmXFormController_BASE1;
+ , ::com::sun::star::container::XChild
+ , ::com::sun::star::container::XIndexAccess
+ , ::com::sun::star::container::XEnumerationAccess
+ , ::com::sun::star::awt::XFocusListener
+ , ::com::sun::star::form::XLoadListener
+ , ::com::sun::star::beans::XPropertyChangeListener
+ , ::com::sun::star::awt::XTextListener
+ , ::com::sun::star::awt::XItemListener
+ , ::com::sun::star::container::XContainerListener
+ , ::com::sun::star::util::XModifyListener
+ , ::com::sun::star::util::XModifyBroadcaster
+ > FmXFormController_BASE1;
typedef ::cppu::ImplHelper12< ::com::sun::star::util::XModeSelector
- ,::com::sun::star::form::XConfirmDeleteListener
- ,::com::sun::star::form::XConfirmDeleteBroadcaster
- ,::com::sun::star::sdb::XSQLErrorListener
- ,::com::sun::star::sdb::XSQLErrorBroadcaster
- ,::com::sun::star::sdbc::XRowSetListener
- ,::com::sun::star::sdb::XRowSetApproveListener
- ,::com::sun::star::sdb::XRowSetApproveBroadcaster
- ,::com::sun::star::form::XDatabaseParameterListener
- ,::com::sun::star::form::XDatabaseParameterBroadcaster
- ,::com::sun::star::lang::XServiceInfo
- ,::com::sun::star::form::XResetListener> FmXFormController_BASE2;
-typedef ::cppu::ImplHelper2 < ::com::sun::star::lang::XUnoTunnel
+ , ::com::sun::star::form::XConfirmDeleteListener
+ , ::com::sun::star::form::XConfirmDeleteBroadcaster
+ , ::com::sun::star::sdb::XSQLErrorListener
+ , ::com::sun::star::sdb::XSQLErrorBroadcaster
+ , ::com::sun::star::sdbc::XRowSetListener
+ , ::com::sun::star::sdb::XRowSetApproveListener
+ , ::com::sun::star::sdb::XRowSetApproveBroadcaster
+ , ::com::sun::star::form::XDatabaseParameterListener
+ , ::com::sun::star::form::XDatabaseParameterBroadcaster
+ , ::com::sun::star::lang::XServiceInfo
+ , ::com::sun::star::form::XResetListener
+ > FmXFormController_BASE2;
+
+typedef ::cppu::ImplHelper2< ::com::sun::star::lang::XUnoTunnel
, ::com::sun::star::frame::XDispatch
> FmXFormController_BASE3;
//==================================================================
// FmXFormController
//==================================================================
-class FmXFormController : public ::comphelper::OBaseMutex
+class FmXFormController :public ::comphelper::OBaseMutex
,public FmXFormController_BASE1
,public FmXFormController_BASE2
,public FmXFormController_BASE3
,public ::cppu::OPropertySetHelper
,public FmDispatchInterceptor
- ,public ::comphelper::OAggregationArrayUsageHelper< FmXFormController>
+ ,public ::comphelper::OAggregationArrayUsageHelper< FmXFormController >
,public ::svxform::OSQLParserClient
+ ,public ::svx::IControllerFeatureInvalidation
{
+ typedef ::std::map < sal_Int32,
+ ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatch >
+ > DispatcherContainer;
+
friend class FmXPageViewWinRec;
::com::sun::star::uno::Reference< ::com::sun::star::uno::XAggregation> m_xAggregate;
@@ -324,7 +332,7 @@ class FmXFormController : public ::comphelper::OBaseMutex
::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> m_xParent;
::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xORB;
// Composer used for checking filter conditions
- ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSQLQueryComposer> m_xComposer;
+ ::com::sun::star::uno::Reference< ::com::sun::star::sdb::XSQLQueryComposer > m_xComposer;
::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> > m_aControls;
::cppu::OInterfaceContainerHelper
@@ -338,13 +346,17 @@ class FmXFormController : public ::comphelper::OBaseMutex
FmFormControllers m_aChilds;
FmFilterControls m_aFilterControls;
FmFilterRows m_aFilters;
- ::form::OImplementationIdsRef m_aHoldImplIdHelper;
- Timer m_aInsertTimer;
+ Timer m_aTabActivationTimer;
+ Timer m_aFeatureInvalidationTimer;
FmFormView* m_pView;
Window* m_pWindow;
+ ::svx::ControllerFeatures m_aControllerFeatures;
+ DispatcherContainer m_aFeatureDispatchers;
+ ::std::set< sal_Int32 > m_aInvalidFeatures; // for asynchronous feature invalidation
+
::rtl::OUString m_aMode;
sal_uInt32 m_nLoadEvent;
@@ -352,7 +364,6 @@ class FmXFormController : public ::comphelper::OBaseMutex
sal_uInt32 m_nToggleEvent;
sal_Int32 m_nCurrentFilterPosition; // current level for filtering (or-criteria)
- ::rtl::OUString m_sDispatchPrefix;
sal_Bool m_bCurrentRecordModified : 1;
sal_Bool m_bCurrentRecordNew : 1;
@@ -375,7 +386,7 @@ class FmXFormController : public ::comphelper::OBaseMutex
public:
FmXFormController(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > & _rxORB,
- FmFormView* _pView = NULL, Window* _pWindow = NULL, const UniString& _sDispatchPrefix = UniString());
+ FmFormView* _pView = NULL, Window* _pWindow = NULL );
~FmXFormController();
// UNO Anbindung
@@ -386,10 +397,7 @@ public:
virtual void SAL_CALL release() throw ();
// XTypeProvider
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException)
- {
- return ::form::OImplementationIds::getImplementationId(getTypes());
- }
+ virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw(::com::sun::star::uno::RuntimeException);
virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( ) throw(::com::sun::star::uno::RuntimeException);
// XUnoTunnel
@@ -537,7 +545,7 @@ public:
virtual void SAL_CALL resetted(const ::com::sun::star::lang::EventObject& rEvent) throw( ::com::sun::star::uno::RuntimeException );
// method for registration
- static ::com::sun::star::uno::Sequence< ::rtl::OUString > static_getSupportedServiceNames(void);
+ static ::com::sun::star::uno::Sequence< ::rtl::OUString > getSupportedServiceNames_Static(void);
// comphelper::OPropertyArrayUsageHelper
virtual void fillProperties(
@@ -569,8 +577,14 @@ protected:
const ::rtl::OUString& aTargetFrameName, sal_Int32 nSearchFlags)
throw( ::com::sun::star::uno::RuntimeException );
+ // IControllerFeatureInvalidation
+ virtual void invalidateFeatures( const ::std::vector< sal_Int32 >& _rFeatures );
+
virtual ::osl::Mutex* getInterceptorMutex() { return &m_aMutex; }
+ /// update all our dispatchers
+ void updateAllDispatchers() const;
+
void startFiltering();
void stopFiltering();
void setFilter(vector<FmFieldInfo>&);
@@ -641,10 +655,10 @@ protected:
void addChild(FmXFormController* pChild);
::com::sun::star::uno::Reference< ::com::sun::star::awt::XControl> isInList(const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer>& xPeer) const;
- DECL_LINK( OnTimeout, void* );
+ DECL_LINK( OnActivateTabOrder, void* );
+ DECL_LINK( OnInvalidateFeatures, void* );
DECL_LINK( OnLoad, void* );
DECL_LINK( OnToggleAutoFields, void* );
- DECL_LINK( OnUpdateDispatchers, void* );
};