summaryrefslogtreecommitdiff
path: root/framework/inc
diff options
context:
space:
mode:
Diffstat (limited to 'framework/inc')
-rw-r--r--framework/inc/dispatch/dispatchprovider.hxx5
-rw-r--r--framework/inc/dispatch/startmoduledispatcher.hxx200
-rw-r--r--framework/inc/dispatchcommands.h55
3 files changed, 257 insertions, 3 deletions
diff --git a/framework/inc/dispatch/dispatchprovider.hxx b/framework/inc/dispatch/dispatchprovider.hxx
index 52d44e0230..20f0d5becc 100644
--- a/framework/inc/dispatch/dispatchprovider.hxx
+++ b/framework/inc/dispatch/dispatchprovider.hxx
@@ -76,8 +76,6 @@ namespace framework{
@descr We know some special dispatch objects with diffrent functionality.
The can be created internaly by the following DispatchProvider.
Here we define some identifier to force creation of the right one.
-
- @modified 20.08.2003 08:34, as96863
*/
enum EDispatchHelper
{
@@ -87,7 +85,8 @@ enum EDispatchHelper
E_CREATEDISPATCHER ,
E_BLANKDISPATCHER ,
E_SELFDISPATCHER ,
- E_CLOSEDISPATCHER
+ E_CLOSEDISPATCHER ,
+ E_STARTMODULEDISPATCHER
};
//_________________________________________________________________________________________________________________
diff --git a/framework/inc/dispatch/startmoduledispatcher.hxx b/framework/inc/dispatch/startmoduledispatcher.hxx
new file mode 100644
index 0000000000..4d084f9f2b
--- /dev/null
+++ b/framework/inc/dispatch/startmoduledispatcher.hxx
@@ -0,0 +1,200 @@
+/*************************************************************************
+ *
+ * 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: closedispatcher.hxx,v $
+ * $Revision: 1.14 $
+ *
+ * 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 __FRAMEWORK_DISPATCH_STARTMODULEDISPATCHER_HXX_
+#define __FRAMEWORK_DISPATCH_STARTMODULEDISPATCHER_HXX_
+
+//_______________________________________________
+// my own includes
+
+#include <threadhelp/threadhelpbase.hxx>
+#include <macros/xinterface.hxx>
+#include <macros/xtypeprovider.hxx>
+#include <macros/debug.hxx>
+#include <macros/generic.hxx>
+#include <stdtypes.h>
+#include <general.h>
+
+//_______________________________________________
+// interface includes
+#include <com/sun/star/lang/XTypeProvider.hpp>
+#include <com/sun/star/frame/XFrame.hpp>
+#include <com/sun/star/frame/XStatusListener.hpp>
+#include <com/sun/star/frame/XNotifyingDispatch.hpp>
+#include <com/sun/star/frame/XDispatchInformationProvider.hpp>
+#include <com/sun/star/util/URL.hpp>
+#include <com/sun/star/frame/XDispatchResultListener.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/frame/DispatchResultState.hpp>
+
+//_______________________________________________
+// other includes
+#include <cppuhelper/weak.hxx>
+#include <vcl/evntpost.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace framework{
+
+//-----------------------------------------------
+/**
+ @short helper to handle all URLs related to the StartModule
+ */
+class StartModuleDispatcher : public css::lang::XTypeProvider
+ , public css::frame::XNotifyingDispatch // => XDispatch
+ , public css::frame::XDispatchInformationProvider
+ // baseclasses ... order is neccessary for right initialization!
+ , private ThreadHelpBase
+ , public ::cppu::OWeakObject
+{
+ //-------------------------------------------
+ // member
+
+ private:
+
+ //---------------------------------------
+ /** @short reference to an uno service manager,
+ which can be used to create own needed
+ uno resources. */
+ css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR;
+
+ //---------------------------------------
+ /** @short our "context" frame. */
+ css::uno::WeakReference< css::frame::XFrame > m_xOwner;
+
+ //---------------------------------------
+ /** @short the original queryDispatch() target. */
+ ::rtl::OUString m_sDispatchTarget;
+
+ //---------------------------------------
+ /** @short list of registered status listener */
+ ListenerHash m_lStatusListener;
+
+ //-------------------------------------------
+ // native interface
+
+ public:
+
+ //---------------------------------------
+ /** @short connect a new StartModuleDispatcher instance to its "owner frame".
+
+ @descr Such "owner frame" is used as context for all related operations.
+
+ @param xSMGR
+ an uno service manager, which is needed to create uno resource
+ internaly.
+
+ @param xFrame
+ the frame where the corresponding dispatch was started.
+
+ @param sTarget
+ the original target information used for the related queryDispatch() call.
+ */
+ StartModuleDispatcher(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ,
+ const css::uno::Reference< css::frame::XFrame >& xFrame ,
+ const ::rtl::OUString& sTarget);
+
+ //---------------------------------------
+ /** @short does nothing real. */
+ virtual ~StartModuleDispatcher();
+
+ //-------------------------------------------
+ // uno interface
+
+ public:
+
+ //---------------------------------------
+ FWK_DECLARE_XINTERFACE
+ FWK_DECLARE_XTYPEPROVIDER
+
+ //---------------------------------------
+ // XNotifyingDispatch
+ virtual void SAL_CALL dispatchWithNotification( const css::util::URL& aURL ,
+ const css::uno::Sequence< css::beans::PropertyValue >& lArguments,
+ const css::uno::Reference< css::frame::XDispatchResultListener >& xListener ) throw(css::uno::RuntimeException);
+
+ //---------------------------------------
+ // XDispatch
+ virtual void SAL_CALL dispatch ( const css::util::URL& aURL ,
+ const css::uno::Sequence< css::beans::PropertyValue >& lArguments) throw(css::uno::RuntimeException);
+ virtual void SAL_CALL addStatusListener ( const css::uno::Reference< css::frame::XStatusListener >& xListener ,
+ const css::util::URL& aURL ) throw(css::uno::RuntimeException);
+ virtual void SAL_CALL removeStatusListener( const css::uno::Reference< css::frame::XStatusListener >& xListener ,
+ const css::util::URL& aURL ) throw(css::uno::RuntimeException);
+
+ //---------------------------------------
+ // XDispatchInformationProvider
+ virtual css::uno::Sequence< sal_Int16 > SAL_CALL getSupportedCommandGroups ( ) throw (css::uno::RuntimeException);
+ virtual css::uno::Sequence< css::frame::DispatchInformation > SAL_CALL getConfigurableDispatchInformation( sal_Int16 nCommandGroup ) throw (css::uno::RuntimeException);
+
+ //-------------------------------------------
+ // internal helper
+
+ private:
+
+ //---------------------------------------
+ /** @short check if StartModule can be shown.
+ */
+ ::sal_Bool implts_isBackingModePossible();
+
+ //---------------------------------------
+ /** @short open the special BackingComponent (now StartModule)
+
+ @return [bool]
+ TRUE if operation was successfully.
+ */
+ ::sal_Bool implts_establishBackingMode();
+
+ //---------------------------------------
+ /** @short notify a DispatchResultListener.
+
+ @descr We check the listener reference before we use it.
+ So this method can be called everytimes!
+
+ @parama xListener
+ the listener, which should be notified.
+ Can be null!
+
+ @param nState
+ directly used as css::frame::DispatchResultState value.
+
+ @param aResult
+ not used yet realy ...
+ */
+ void implts_notifyResultListener(const css::uno::Reference< css::frame::XDispatchResultListener >& xListener,
+ sal_Int16 nState ,
+ const css::uno::Any& aResult );
+
+}; // class StartModuleDispatcher
+
+} // namespace framework
+
+#endif // #ifndef __FRAMEWORK_DISPATCH_STARTMODULEDISPATCHER_HXX_
diff --git a/framework/inc/dispatchcommands.h b/framework/inc/dispatchcommands.h
new file mode 100644
index 0000000000..714558edc8
--- /dev/null
+++ b/framework/inc/dispatchcommands.h
@@ -0,0 +1,55 @@
+/*************************************************************************
+ *
+ * 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: targets.h,v $
+ * $Revision: 1.10 $
+ *
+ * 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 __FRAMEWORK_DISPATCHCOMMANDS_H_
+#define __FRAMEWORK_DISPATCHCOMMANDS_H_
+
+//_________________________________________________________________________________________________________________
+// includes
+//_________________________________________________________________________________________________________________
+
+#include <macros/generic.hxx>
+
+//_________________________________________________________________________________________________________________
+// namespace
+//_________________________________________________________________________________________________________________
+
+namespace framework{
+
+//_________________________________________________________________________________________________________________
+
+static ::rtl::OUString CMD_UNO_SHOWSTARTMODULE = ::rtl::OUString::createFromAscii(".uno:ShowStartModule");
+static ::rtl::OUString CMD_UNO_CLOSEDOC = ::rtl::OUString::createFromAscii(".uno:CloseDoc" );
+static ::rtl::OUString CMD_UNO_CLOSEWIN = ::rtl::OUString::createFromAscii(".uno:CloseWin" );
+static ::rtl::OUString CMD_UNO_CLOSEFRAME = ::rtl::OUString::createFromAscii(".uno:CloseFrame" );
+
+} // namespace framework
+
+#endif // #ifndef __FRAMEWORK_DISPATCHCOMMANDS_H_