LibreOffice Module sd (master) 1
EventMultiplexer.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
22#include <sal/config.h>
23
24#include <rtl/ref.hxx>
25
26template <typename Arg, typename Ret> class Link;
27
28namespace sd
29{
30class ViewShellBase;
31}
32
34{
40
44
49
53
58
62
68
73
77
81
85
89
93
97
102
107
111
115};
116
117namespace sd::tools
118{
120{
121public:
123 const void* mpUserData;
124
125 EventMultiplexerEvent(EventMultiplexerEventId eEventId, const void* pUserData);
126};
127
136{
137public:
142
150
154
163 void MultiplexEvent(EventMultiplexerEventId eEventId, void const* pUserData);
164
165private:
166 class Implementation;
168};
169
170} // end of namespace ::sd::tools
171
172/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
EventMultiplexerEventId
@ EditViewSelection
The selection in the center pane has changed.
@ ControllerDetached
A UNO controller has been detached to the UNO frame.
@ ShapeRemoved
A shape has been removed from a page.
@ PageOrder
One or more pages have been inserted into or deleted from the model.
@ EditModeNormal
Edit mode was (or is being) switched to normal mode.
@ SlideSortedSelection
The selection in the slide sorter has changed, regardless of whether the slide sorter is displayed in...
@ EditModeMaster
Edit mode was (or is being) switched to master mode.
@ ViewAdded
A new ViewShell is being displayed in one of the panes.
@ Disposing
The EventMultiplexer itself is being disposed.
@ EndTextEdit
Text editing in one of the shapes in the MainViewShell has ended.
@ MainViewRemoved
The current MainViewShell (the ViewShell displayed in the center pane) has been removed.
@ ShapeChanged
The state of a shape has changed.
@ MainViewAdded
A new ViewShell has been made the MainViewShell.
@ ConfigurationUpdated
A configuration update has been completed.
@ CurrentPageChanged
The current page has changed.
@ ShapeInserted
A shape has been inserted to a page.
@ ControllerAttached
A UNO controller has been attached to the UNO frame.
SfxViewShell descendant that the stacked Draw/Impress shells are based on.
EventMultiplexerEvent(EventMultiplexerEventId eEventId, const void *pUserData)
EventMultiplexerEventId meEventId
This convenience class makes it easy to listen to various events that originally are broadcasted via ...
void MultiplexEvent(EventMultiplexerEventId eEventId, void const *pUserData)
This method is used for out-of-line events.
rtl::Reference< Implementation > mpImpl
void RemoveEventListener(const Link< EventMultiplexerEvent &, void > &rCallback)
Remove an event listener for the specified event types.
EventMultiplexer(ViewShellBase &rBase)
Create new EventMultiplexer for the given ViewShellBase object.
void AddEventListener(const Link< EventMultiplexerEvent &, void > &rCallback)
Add an event listener that will be informed about the specified event types.