diff options
author | Matúš Kukan <matus.kukan@collabora.com> | 2014-01-22 18:39:49 +0100 |
---|---|---|
committer | Matúš Kukan <matus.kukan@collabora.com> | 2014-02-11 11:28:55 +0100 |
commit | c864bd31056677277919078c4fd04966ef8b14de (patch) | |
tree | c448db016034a15a6e40c6fd4f0b00a9ecafde32 /framework/inc/services | |
parent | 72139db6b421fea2980e9c8df96bc70463777623 (diff) |
fwk: Constructor feature for one instance ContextChangeEventMultiplexer.
Change-Id: Ibb89e4dd46fc5d1f8a85f96b7e4677fa764bb112
Diffstat (limited to 'framework/inc/services')
-rw-r--r-- | framework/inc/services/ContextChangeEventMultiplexer.hxx | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/framework/inc/services/ContextChangeEventMultiplexer.hxx b/framework/inc/services/ContextChangeEventMultiplexer.hxx deleted file mode 100644 index 1d7e2b150973..000000000000 --- a/framework/inc/services/ContextChangeEventMultiplexer.hxx +++ /dev/null @@ -1,139 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ -#ifndef INCLUDED_FRAMEWORK_INC_SERVICES_CONTEXTCHANGEEVENTMULTIPLEXER_HXX -#define INCLUDED_FRAMEWORK_INC_SERVICES_CONTEXTCHANGEEVENTMULTIPLEXER_HXX - -#include <com/sun/star/ui/XContextChangeEventMultiplexer.hpp> - -#include <cppuhelper/compbase4.hxx> -#include <cppuhelper/basemutex.hxx> - -#include "macros/xserviceinfo.hxx" - -#include <map> -#include <boost/noncopyable.hpp> - - -namespace -{ - typedef ::cppu::WeakComponentImplHelper4 < - css::ui::XContextChangeEventMultiplexer, - css::lang::XSingleComponentFactory, - css::lang::XServiceInfo, - css::lang::XEventListener - > ContextChangeEventMultiplexerInterfaceBase; -} - - -namespace cssu = ::com::sun::star::uno; -namespace cssl = ::com::sun::star::lang; - -namespace framework { - -class ContextChangeEventMultiplexer - : private ::boost::noncopyable, - private ::cppu::BaseMutex, - public ContextChangeEventMultiplexerInterfaceBase -{ -public: - ContextChangeEventMultiplexer(const cssu::Reference<css::uno::XComponentContext>& rxContext); - virtual ~ContextChangeEventMultiplexer (void); - - virtual void SAL_CALL disposing (void); - - // XContextChangeEventMultiplexer - virtual void SAL_CALL addContextChangeEventListener ( - const cssu::Reference<css::ui::XContextChangeEventListener>& rxListener, - const cssu::Reference<cssu::XInterface>& rxEventFocus) - throw(cssu::RuntimeException, cssl::IllegalArgumentException); - virtual void SAL_CALL removeContextChangeEventListener ( - const cssu::Reference<css::ui::XContextChangeEventListener>& rxListener, - const cssu::Reference<cssu::XInterface>& rxEventFocus) - throw(cssu::RuntimeException, cssl::IllegalArgumentException); - virtual void SAL_CALL removeAllContextChangeEventListeners ( - const cssu::Reference<css::ui::XContextChangeEventListener>& rxListener) - throw(cssu::RuntimeException, cssl::IllegalArgumentException); - virtual void SAL_CALL broadcastContextChangeEvent ( - const css::ui::ContextChangeEventObject& rContextChangeEventObject, - const cssu::Reference<cssu::XInterface>& rxEventFocus) - throw(cssu::RuntimeException); - - // XSingleComponentFactory - virtual cssu::Reference<cssu::XInterface> SAL_CALL createInstanceWithContext ( - const cssu::Reference<cssu::XComponentContext>& rxContext) - throw (cssu::Exception, cssu::RuntimeException); - virtual cssu::Reference<cssu::XInterface > SAL_CALL createInstanceWithArgumentsAndContext ( - const cssu::Sequence<cssu::Any>& rArguments, - const cssu::Reference<cssu::XComponentContext>& rxContext) - throw (cssu::Exception, cssu::RuntimeException); - - // XServiceInfo - virtual ::rtl::OUString SAL_CALL getImplementationName (void) - throw (cssu::RuntimeException); - virtual sal_Bool SAL_CALL supportsService ( - const ::rtl::OUString& rsServiceName) - throw (cssu::RuntimeException); - virtual cssu::Sequence< ::rtl::OUString> SAL_CALL getSupportedServiceNames (void) - throw (cssu::RuntimeException); - - // XEventListener - virtual void SAL_CALL disposing ( - const css::lang::EventObject& rEvent) - throw (cssu::RuntimeException); - - static ::rtl::OUString SAL_CALL impl_getStaticImplementationName (void); - static cssu::Reference<cssu::XInterface> SAL_CALL impl_createFactory ( - const cssu::Reference<cssl::XMultiServiceFactory>& xServiceManager); - -private: - typedef ::std::vector<cssu::Reference<css::ui::XContextChangeEventListener> > ListenerContainer; - class FocusDescriptor - { - public: - ListenerContainer maListeners; - ::rtl::OUString msCurrentApplicationName; - ::rtl::OUString msCurrentContextName; - }; - typedef ::std::map<cssu::Reference<cssu::XInterface>, FocusDescriptor> ListenerMap; - ListenerMap maListeners; - - /** Notify all listeners in the container that is associated with - the given event focus. - - Typically called twice from broadcastEvent(), once for the - given event focus and onece for NULL. - */ - void BroadcastEventToSingleContainer ( - const css::ui::ContextChangeEventObject& rEventObject, - const cssu::Reference<cssu::XInterface>& rxEventFocus); - FocusDescriptor* GetFocusDescriptor ( - const cssu::Reference<cssu::XInterface>& rxEventFocus, - const bool bCreateWhenMissing); - - static cssu::Sequence< ::rtl::OUString > SAL_CALL static_GetSupportedServiceNames (void); - static cssu::Reference<cssu::XInterface> SAL_CALL static_CreateInstance ( - const cssu::Reference<cssu::XComponentContext>& rxComponentContext) - throw (cssu::Exception); -}; - -} // end of namespace framework - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |