summaryrefslogtreecommitdiff
path: root/sfx2/inc
diff options
context:
space:
mode:
authorKurt Zenker <kz@openoffice.org>2008-06-25 12:05:08 +0000
committerKurt Zenker <kz@openoffice.org>2008-06-25 12:05:08 +0000
commit98cbca8751a4e3487dbbbc3ef10c6b94b0d6dbeb (patch)
treea1b5c78766645bc51ff42e325d399083bd0068f1 /sfx2/inc
parent5ba271d4d69f6e9fe4124d1af0b0321db5e84f08 (diff)
INTEGRATION: CWS dba30d (1.1.2); FILE ADDED
2008/05/28 21:33:28 fs 1.1.2.1: moved the SfxBaseController's implementation for XUserInputInterception into a dedicated class
Diffstat (limited to 'sfx2/inc')
-rw-r--r--sfx2/inc/sfx2/userinputinterception.hxx85
1 files changed, 85 insertions, 0 deletions
diff --git a/sfx2/inc/sfx2/userinputinterception.hxx b/sfx2/inc/sfx2/userinputinterception.hxx
new file mode 100644
index 0000000000..5b4d075953
--- /dev/null
+++ b/sfx2/inc/sfx2/userinputinterception.hxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2008 by Sun Microsystems, Inc.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* $RCSfile: userinputinterception.hxx,v $
+*
+* $Revision: 1.2 $
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+************************************************************************/
+
+#ifndef USERINPUTINTERCEPTION_HXX
+#define USERINPUTINTERCEPTION_HXX
+
+#include "sfx2/dllapi.h"
+
+/** === begin UNO includes === **/
+#include <com/sun/star/awt/XUserInputInterception.hpp>
+/** === end UNO includes === **/
+
+#include <boost/noncopyable.hpp>
+#include <memory>
+
+class NotifyEvent;
+
+namespace cppu { class OWeakObject; }
+
+//........................................................................
+namespace sfx2
+{
+//........................................................................
+
+ //====================================================================
+ //= UserInputInterception
+ //====================================================================
+ struct UserInputInterception_Data;
+ /** helper class for implementing the XUserInputInterception interface
+ for a controller implementation
+ */
+ class SFX2_DLLPUBLIC UserInputInterception : public ::boost::noncopyable
+ {
+ public:
+ UserInputInterception( ::cppu::OWeakObject& _rControllerImpl, ::osl::Mutex& _rMutex );
+ ~UserInputInterception();
+
+ // delegator functions for your XUserInputInterception implementation
+ void addKeyHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyHandler >& xHandler ) throw (::com::sun::star::uno::RuntimeException);
+ void removeKeyHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyHandler >& xHandler ) throw (::com::sun::star::uno::RuntimeException);
+ void addMouseClickHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseClickHandler >& xHandler ) throw (::com::sun::star::uno::RuntimeException);
+ void removeMouseClickHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseClickHandler >& xHandler ) throw (::com::sun::star::uno::RuntimeException);
+
+ // state
+ bool hasKeyHandlers() const;
+ bool hasMouseClickListeners() const;
+
+ // forwarding a NotifyEvent to the KeyListeners respectively MouseClickListeners
+ bool handleNotifyEvent( const NotifyEvent& _rEvent );
+
+ private:
+ ::std::auto_ptr< UserInputInterception_Data > m_pData;
+ };
+
+//........................................................................
+} // namespace sfx2
+//........................................................................
+
+#endif // USERINPUTINTERCEPTION_HXX