1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #ifndef INCLUDED_SLIDESHOW_SOURCE_INC_SLIDESHOWCONTEXT_HXX
21 #define INCLUDED_SLIDESHOW_SOURCE_INC_SLIDESHOWCONTEXT_HXX
23 #include <com/sun/star/uno/Reference.hxx>
26 namespace com::sun::star::uno
{ class XComponentContext
; }
27 namespace box2d::utils
{ class box2DWorld
;
28 typedef ::std::shared_ptr
< box2DWorld
> Box2DWorldSharedPtr
; }
32 namespace slideshow::internal
36 class ActivitiesQueue
;
38 class EventMultiplexer
;
40 class UnoViewContainer
;
42 class MediaFileManager
;
43 class SubsettableShapeManager
;
44 typedef ::std::shared_ptr
< SubsettableShapeManager
> SubsettableShapeManagerSharedPtr
;
46 /** Common arguments for slideshow objects.
48 This struct combines a number of object references
49 ubiquitously needed throughout the slideshow.
51 struct SlideShowContext
53 /** Common context for node creation
56 ShapeManager, which handles all shapes
59 Event queue, where time-based events are to be
60 scheduled. A node must not schedule events there
61 before it's not resolved.
63 @param rEventMultiplexer
64 Event multiplexer. Clients can register there for
65 about any event that happens in the slideshow
68 Screen updater. Gets notified of necessary screen
71 @param rActivitiesQueue
72 Activities queue, where repeating activities are
75 @param rMediaFileManager
76 To handle media file with package urls.
78 @param rUserEventQueue
82 Holds all views added to slideshow
84 @param rComponentContext
85 To create UNO services from
87 SlideShowContext( SubsettableShapeManagerSharedPtr
& rSubsettableShapeManager
,
88 EventQueue
& rEventQueue
,
89 EventMultiplexer
& rEventMultiplexer
,
90 ScreenUpdater
& rScreenUpdater
,
91 ActivitiesQueue
& rActivitiesQueue
,
92 UserEventQueue
& rUserEventQueue
,
93 CursorManager
& rCursorManager
,
94 MediaFileManager
& rMediaFileManager
,
95 const UnoViewContainer
& rViewContainer
,
96 css::uno::Reference
< css::uno::XComponentContext
> xComponentContext
,
97 box2d::utils::Box2DWorldSharedPtr
& rBox2DWorldPtr
);
100 std::shared_ptr
<SubsettableShapeManager
>& mpSubsettableShapeManager
;
101 EventQueue
& mrEventQueue
;
102 EventMultiplexer
& mrEventMultiplexer
;
103 ScreenUpdater
& mrScreenUpdater
;
104 ActivitiesQueue
& mrActivitiesQueue
;
105 UserEventQueue
& mrUserEventQueue
;
106 CursorManager
& mrCursorManager
;
107 MediaFileManager
& mrMediaFileManager
;
108 const UnoViewContainer
& mrViewContainer
;
109 css::uno::Reference
< css::uno::XComponentContext
> mxComponentContext
;
110 box2d::utils::Box2DWorldSharedPtr
& mpBox2DWorld
;
111 OUString maFallbackDir
;
116 #endif // INCLUDED_SLIDESHOW_SOURCE_INC_SLIDESHOWCONTEXT_HXX
118 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */