summaryrefslogtreecommitdiff
path: root/sfx2/inc/sfx2/sfxbasecontroller.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sfx2/inc/sfx2/sfxbasecontroller.hxx')
-rw-r--r--sfx2/inc/sfx2/sfxbasecontroller.hxx418
1 files changed, 418 insertions, 0 deletions
diff --git a/sfx2/inc/sfx2/sfxbasecontroller.hxx b/sfx2/inc/sfx2/sfxbasecontroller.hxx
new file mode 100644
index 000000000000..ca30d243bbac
--- /dev/null
+++ b/sfx2/inc/sfx2/sfxbasecontroller.hxx
@@ -0,0 +1,418 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * 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 _SFX_SFXBASECONTROLLER_HXX_
+#define _SFX_SFXBASECONTROLLER_HXX_
+
+#include "sal/config.h"
+#include "sfx2/dllapi.h"
+#include "sal/types.h"
+#include <com/sun/star/frame/XDispatch.hpp>
+#include <com/sun/star/frame/XDispatchProvider.hpp>
+#include <com/sun/star/frame/DispatchDescriptor.hpp>
+#include <com/sun/star/frame/XDispatchInformationProvider.hpp>
+#include <com/sun/star/frame/XController2.hpp>
+#include <com/sun/star/frame/XControllerBorder.hpp>
+#include <com/sun/star/frame/XModel.hpp>
+#include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/frame/XTitle.hpp>
+#include <com/sun/star/frame/XTitleChangeBroadcaster.hpp>
+#include <com/sun/star/util/URL.hpp>
+#include <com/sun/star/lang/XTypeProvider.hpp>
+#include <cppuhelper/implbase9.hxx>
+#include <cppuhelper/basemutex.hxx>
+#include <osl/mutex.hxx>
+#include <com/sun/star/task/XStatusIndicatorSupplier.hpp>
+#include <com/sun/star/ui/XContextMenuInterception.hpp>
+#include <com/sun/star/ui/XContextMenuInterceptor.hpp>
+#include <com/sun/star/awt/XMouseClickHandler.hpp>
+#include <com/sun/star/awt/XKeyHandler.hpp>
+#include <com/sun/star/awt/XUserInputInterception.hpp>
+
+//________________________________________________________________________________________________________
+// include of my own project
+//________________________________________________________________________________________________________
+#include <sfx2/viewsh.hxx>
+#include <sfx2/sfxuno.hxx>
+
+//________________________________________________________________________________________________________
+// defines
+//________________________________________________________________________________________________________
+
+// Some defines to write better code :-)
+#define REFERENCE ::com::sun::star::uno::Reference
+#define ANY ::com::sun::star::uno::Any
+#define SEQUENCE ::com::sun::star::uno::Sequence
+#define XDISPATCH ::com::sun::star::frame::XDispatch
+#define DISPATCHDESCRIPTOR ::com::sun::star::frame::DispatchDescriptor
+#define XMODEL ::com::sun::star::frame::XModel
+#define XFRAME ::com::sun::star::frame::XFrame
+#define XEVENTLISTENER ::com::sun::star::lang::XEventListener
+#define MUTEX ::osl::Mutex
+#define RUNTIMEEXCEPTION ::com::sun::star::uno::RuntimeException
+#define UNOTYPE ::com::sun::star::uno::Type
+#define UNOURL ::com::sun::star::util::URL
+#define OUSTRING ::rtl::OUString
+#define XCONTEXTMENUINTERCEPTOR ::com::sun::star::ui::XContextMenuInterceptor
+
+//________________________________________________________________________________________________________
+// forwards
+//________________________________________________________________________________________________________
+
+struct IMPL_SfxBaseController_DataContainer ; // impl. struct to hold member of class SfxBaseController
+
+class SfxViewFrame;
+
+sal_Int16 MapGroupIDToCommandGroup( sal_Int16 nGroupID );
+sal_Bool SupportsCommandGroup( sal_Int16 nCommandGroup );
+sal_Int16 MapCommandGroupToGroupID( sal_Int16 nCommandGroup );
+
+//________________________________________________________________________________________________________
+// class declarations
+//________________________________________________________________________________________________________
+
+typedef ::cppu::WeakImplHelper9 < ::com::sun::star::frame::XController2
+ , ::com::sun::star::frame::XControllerBorder
+ , ::com::sun::star::frame::XDispatchProvider
+ , ::com::sun::star::task::XStatusIndicatorSupplier
+ , ::com::sun::star::ui::XContextMenuInterception
+ , ::com::sun::star::awt::XUserInputInterception
+ , ::com::sun::star::frame::XDispatchInformationProvider
+ , ::com::sun::star::frame::XTitle
+ , ::com::sun::star::frame::XTitleChangeBroadcaster
+ > SfxBaseController_Base;
+
+class SFX2_DLLPUBLIC SfxBaseController :public SfxBaseController_Base
+ ,public ::cppu::BaseMutex
+{
+//________________________________________________________________________________________________________
+// public methods
+//________________________________________________________________________________________________________
+
+public:
+
+ //____________________________________________________________________________________________________
+ // constructor/destructor
+ //____________________________________________________________________________________________________
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ SfxBaseController( SfxViewShell* pView ) ;
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ ~SfxBaseController() ;
+
+ SAL_DLLPRIVATE void ReleaseShell_Impl();
+ SAL_DLLPRIVATE void BorderWidthsChanged_Impl();
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::task::XStatusIndicator > SAL_CALL getStatusIndicator( ) throw (::com::sun::star::uno::RuntimeException);
+
+ //____________________________________________________________________________________________________
+ // XController2
+ //____________________________________________________________________________________________________
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > SAL_CALL getComponentWindow() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getViewControllerName() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > SAL_CALL getCreationArguments() throw (::com::sun::star::uno::RuntimeException);
+
+ //____________________________________________________________________________________________________
+ // XController
+ //____________________________________________________________________________________________________
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL attachFrame( const REFERENCE< XFRAME >& xFrame ) throw( RUNTIMEEXCEPTION ) ;
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual sal_Bool SAL_CALL attachModel( const REFERENCE< XMODEL >& xModel ) throw( RUNTIMEEXCEPTION ) ;
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual sal_Bool SAL_CALL suspend( sal_Bool bSuspend ) throw( RUNTIMEEXCEPTION ) ;
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ ANY SAL_CALL getViewData() throw( RUNTIMEEXCEPTION ) ;
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ void SAL_CALL restoreViewData( const ANY& aValue ) throw( RUNTIMEEXCEPTION ) ;
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ REFERENCE< XFRAME > SAL_CALL getFrame() throw( RUNTIMEEXCEPTION ) ;
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ REFERENCE< XMODEL > SAL_CALL getModel() throw( RUNTIMEEXCEPTION ) ;
+
+ //____________________________________________________________________________________________________
+ // XDispatchProvider
+ //____________________________________________________________________________________________________
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual REFERENCE< XDISPATCH > SAL_CALL queryDispatch( const UNOURL & aURL ,
+ const OUSTRING & sTargetFrameName,
+ FrameSearchFlags eSearchFlags ) throw( RUNTIMEEXCEPTION ) ;
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual SEQUENCE< REFERENCE< XDISPATCH > > SAL_CALL queryDispatches( const SEQUENCE< DISPATCHDESCRIPTOR >& seqDescriptor ) throw( RUNTIMEEXCEPTION ) ;
+
+ //____________________________________________________________________________________________________
+ // XControllerBorder
+ //____________________________________________________________________________________________________
+
+ virtual ::com::sun::star::frame::BorderWidths SAL_CALL getBorder() throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addBorderResizeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XBorderResizeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeBorderResizeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XBorderResizeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::awt::Rectangle SAL_CALL queryBorderedArea( const ::com::sun::star::awt::Rectangle& aPreliminaryRectangle ) throw (::com::sun::star::uno::RuntimeException);
+
+ //____________________________________________________________________________________________________
+ // XComponent
+ //____________________________________________________________________________________________________
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL dispose() throw( RUNTIMEEXCEPTION ) ;
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL addEventListener( const REFERENCE< XEVENTLISTENER >& aListener ) throw( RUNTIMEEXCEPTION ) ;
+
+ /**___________________________________________________________________________________________________
+ @short -
+ @descr -
+
+ @seealso -
+
+ @param -
+
+ @return -
+
+ @onerror -
+ */
+
+ virtual void SAL_CALL removeEventListener( const REFERENCE< XEVENTLISTENER >& aListener ) throw( RUNTIMEEXCEPTION ) ;
+ virtual void SAL_CALL registerContextMenuInterceptor( const REFERENCE< XCONTEXTMENUINTERCEPTOR >& xInterceptor ) throw( RUNTIMEEXCEPTION );
+ virtual void SAL_CALL releaseContextMenuInterceptor( const REFERENCE< XCONTEXTMENUINTERCEPTOR >& xInterceptor ) throw( RUNTIMEEXCEPTION );
+
+ virtual void SAL_CALL addKeyHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyHandler >& xHandler ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeKeyHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XKeyHandler >& xHandler ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL addMouseClickHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseClickHandler >& xHandler ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeMouseClickHandler( const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XMouseClickHandler >& xHandler ) throw (::com::sun::star::uno::RuntimeException);
+
+ //____________________________________________________________________________________________________
+ // XDispatchInformationProvider
+ //____________________________________________________________________________________________________
+ virtual ::com::sun::star::uno::Sequence< sal_Int16 > SAL_CALL getSupportedCommandGroups() throw (::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::frame::DispatchInformation > SAL_CALL getConfigurableDispatchInformation( sal_Int16 nCommandGroup ) throw (::com::sun::star::uno::RuntimeException);
+
+ // css::frame::XTitle
+ virtual ::rtl::OUString SAL_CALL getTitle( ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL setTitle( const ::rtl::OUString& sTitle ) throw (::com::sun::star::uno::RuntimeException);
+
+ // css::frame::XTitleChangeBroadcaster
+ virtual void SAL_CALL addTitleChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XTitleChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL removeTitleChangeListener( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XTitleChangeListener >& xListener ) throw (::com::sun::star::uno::RuntimeException);
+
+//#if 0 // _SOLAR__PRIVATE
+ // FIXME: TL needs this in sw/source/ui/uno/unotxdoc.cxx now;
+ // either the _Impl name should vanish or there should be an "official" API
+ SfxViewShell* GetViewShell_Impl() const;
+ SAL_DLLPRIVATE BOOL HandleEvent_Impl( NotifyEvent& rEvent );
+ SAL_DLLPRIVATE BOOL HasKeyListeners_Impl();
+ SAL_DLLPRIVATE BOOL HasMouseClickListeners_Impl();
+ SAL_DLLPRIVATE void SetCreationArguments_Impl( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& i_rCreationArgs );
+ SAL_DLLPRIVATE ::com::sun::star::uno::Reference< ::com::sun::star::frame::XTitle > impl_getTitleHelper ();
+//#endif
+private:
+ enum ConnectSfxFrame
+ {
+ E_CONNECT,
+ E_DISCONNECT,
+ E_RECONNECT
+ };
+ SAL_DLLPRIVATE void ConnectSfxFrame_Impl( const ConnectSfxFrame i_eConnect );
+ SAL_DLLPRIVATE SfxViewFrame& GetViewFrame_Impl() const;
+
+//________________________________________________________________________________________________________
+// private variables
+//________________________________________________________________________________________________________
+
+private:
+
+ IMPL_SfxBaseController_DataContainer* m_pData ;
+
+} ; // class SfxBaseController
+
+#endif // _SFX_SFXBASECONTROLLER_HXX