diff options
Diffstat (limited to 'sd/source/ui/inc/EventMultiplexer.hxx')
-rw-r--r-- | sd/source/ui/inc/EventMultiplexer.hxx | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/sd/source/ui/inc/EventMultiplexer.hxx b/sd/source/ui/inc/EventMultiplexer.hxx deleted file mode 100644 index 79615390c..000000000 --- a/sd/source/ui/inc/EventMultiplexer.hxx +++ /dev/null @@ -1,225 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * 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 SD_TOOLS_EVENT_MULTIPLEXER_HXX -#define SD_TOOLS_EVENT_MULTIPLEXER_HXX - -#include <svl/lstner.hxx> - -#include <set> -#include <memory> - -class Link; - -namespace sd { -class ViewShellBase; -} - -namespace sd { namespace tools { - -class EventMultiplexerEvent -{ -public: - typedef sal_uInt32 EventId; - /** The EventMultiplexer itself is being disposed. Called for a live - EventMultiplexer. Removing a listener as response is not necessary, - though. - */ - static const EventId EID_DISPOSING = 0x00000001; - - /** The selection in the center pane has changed. - */ - static const EventId EID_EDIT_VIEW_SELECTION = 0x00000002; - - /** The selection in the slide sorter has changed, regardless of whether - the slide sorter is displayed in the left pane or the center pane. - */ - static const EventId EID_SLIDE_SORTER_SELECTION = 0x00000004; - - /** The current page has changed. - */ - static const EventId EID_CURRENT_PAGE = 0x00000008; - - /** The current MainViewShell (the ViewShell displayed in the center - pane) has been removed. - */ - static const EventId EID_MAIN_VIEW_REMOVED = 0x00000010; - - /** A new ViewShell has been made the MainViewShell. - */ - static const EventId EID_MAIN_VIEW_ADDED = 0x00000020; - - /** A ViewShell has been removed from one of the panes. Note that for - the ViewShell in the center pane bth this event type and - EID_MAIN_VIEW_REMOVED is broadcasted. - */ - static const EventId EID_VIEW_REMOVED = 0x00000040; - - /** A new ViewShell is being displayed in one of the panes. Note that - for the ViewShell in the center pane both this event type and - EID_MAIN_VIEW_ADDED is broadcasted. - */ - static const EventId EID_VIEW_ADDED = 0x00000080; - - /** The PaneManager is being destroyed. - */ - static const EventId EID_PANE_MANAGER_DYING = 0x00000100; - - /** Edit mode was (or is being) switched to normal mode. Find - EID_EDIT_MODE_MASTER below. - */ - static const EventId EID_EDIT_MODE_NORMAL = 0x00000200; - - /** One or more pages have been inserted into or deleted from the model. - */ - static const EventId EID_PAGE_ORDER = 0x00000400; - - /** Text editing in one of the shapes in the MainViewShell has started. - */ - static const EventId EID_BEGIN_TEXT_EDIT = 0x00000800; - - /** Text editing in one of the shapes in the MainViewShell has ended. - */ - static const EventId EID_END_TEXT_EDIT = 0x00001000; - - /** A UNO controller has been attached to the UNO frame. - */ - static const EventId EID_CONTROLLER_ATTACHED = 0x00002000; - - /** A UNO controller has been detached to the UNO frame. - */ - static const EventId EID_CONTROLLER_DETACHED = 0x00004000; - - /** The state of a shape has changed. The page is available in the user data. - */ - static const EventId EID_SHAPE_CHANGED = 0x00008000; - - /** A shape has been inserted to a page. The page is available in the - user data. - */ - static const EventId EID_SHAPE_INSERTED = 0x00010000; - - /** A shape has been removed from a page. The page is available in the - user data. - */ - static const EventId EID_SHAPE_REMOVED = 0x00020000; - - /** A configuration update has been completed. - */ - static const EventId EID_CONFIGURATION_UPDATED = 0x00040000; - - /** Edit mode was (or is being) switched to master mode. - */ - static const EventId EID_EDIT_MODE_MASTER = 0x00080000; - - const ViewShellBase& mrBase; - EventId meEventId; - const void* mpUserData; - - EventMultiplexerEvent ( - const ViewShellBase& rBase, - EventId eEventId, - const void* pUserData); -}; - - -/** This convenience class makes it easy to listen to various events that - originally are broadcasted via different channels. - - There is usually one EventMultiplexer instance per ViewShellBase(). - Call the laters GetEventMultiplexer() method to get access to that - instance. - - When a listener is registered it can specify the events it - wants to be informed of. This can be done with code like the following: - - mrViewShellBase.GetEventMultiplexer().AddEventListener ( - LINK(this,MasterPagesSelector,EventMultiplexerListener), - tools::EventMultiplexerEvent::EID_MAIN_VIEW_ADDED - | tools::EventMultiplexerEvent::EID_MAIN_VIEW_REMOVED); -*/ -class EventMultiplexer -{ -public: - /** Create new EventMultiplexer for the given ViewShellBase object. - */ - EventMultiplexer (ViewShellBase& rBase); - ~EventMultiplexer (void); - - /** Some constants that make it easier to remove a listener for all - event types at once. - */ - static const EventMultiplexerEvent::EventId EID_FULL_SET = 0xffffffff; - static const EventMultiplexerEvent::EventId EID_EMPTY_SET = 0x00000000; - - /** Add an event listener that will be informed about the specified - event types. - @param rCallback - The callback to call as soon as one of the event specified by - aEventTypeSet is received by the EventMultiplexer. - @param aEventTypeSet - A, possibly empty, set of event types that the listener wants to - be informed about. - */ - void AddEventListener ( - Link& rCallback, - EventMultiplexerEvent::EventId aEventTypeSet); - - /** Remove an event listener for the specified event types. - @param aEventTypeSet - The listener will not be called anymore for any of the event - types in this set. Use EID_FULL_SET, the default value, to - remove the listener for all event types it has been registered - for. - */ - void RemoveEventListener ( - Link& rCallback, - EventMultiplexerEvent::EventId aEventTypeSet = EID_FULL_SET); - - /** This method is used for out-of-line events. An event of the - specified type will be sent to all listeners that are registered for - that type. - @param eEventId - The type of the event. - @param pUserData - Some data sent to the listeners along with the event. - */ - void MultiplexEvent( - EventMultiplexerEvent::EventId eEventId, - void* pUserData = 0); - -private: - class Implementation; - ::std::auto_ptr<Implementation> mpImpl; -}; - -} } // end of namespace ::sd::tools - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |