1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef INCLUDED_SLIDESHOW_SLIDESHOWCONTEXT_HXX
29 #define INCLUDED_SLIDESHOW_SLIDESHOWCONTEXT_HXX
30 
31 #include <com/sun/star/uno/Reference.hxx>
32 #include <boost/shared_ptr.hpp>
33 
34 namespace com{ namespace sun{ namespace star{ namespace uno
35 {
36     class XComponentContext;
37 }}}}
38 
39 
40 namespace slideshow
41 {
42     namespace internal
43     {
44         class ShapeManager;
45         class EventQueue;
46         class ActivitiesQueue;
47         class UserEventQueue;
48         class EventMultiplexer;
49         class ScreenUpdater;
50         class UnoViewContainer;
51         class CursorManager;
52         class SubsettableShapeManager;
53 
54         /** Common arguments for slideshow objects.
55 
56         	This struct combines a number of object references
57         	ubiquituously needed throughout the slideshow.
58          */
59 		struct SlideShowContext
60         {
61             /** Common context for node creation
62 
63 	            @param rShapeManager
64                 ShapeManager, which handles all shapes
65 
66                 @param rEventQueue
67                 Event queue, where time-based events are to be
68                 scheduled. A node must not schedule events there
69                 before it's not resolved.
70 
71                 @param rEventMultiplexer
72                 Event multiplexer. Clients can register there for
73                 about any event that happens in the slideshow
74 
75                 @param rScreenUpdater
76                 Screen updater. Gets notified of necessary screen
77                 updates.
78 
79                 @param rActivitiesQueue
80                 Activities queue, where repeating activities are
81                 to be scheduled.
82 
83                 @param rUserEventQueue
84                 User event queue
85 
86                 @param rViewContainer
87                 Holds all views added to slideshow
88 
89                 @param rComponentContext
90                 To create UNO services from
91             */
92             SlideShowContext( boost::shared_ptr<SubsettableShapeManager>&       rSubsettableShapeManager,
93                               EventQueue&                                       rEventQueue,
94                               EventMultiplexer&                                 rEventMultiplexer,
95                               ScreenUpdater&                                    rScreenUpdater,
96                               ActivitiesQueue&                                  rActivitiesQueue,
97                               UserEventQueue&                                   rUserEventQueue,
98                               CursorManager&                                    rCursorManager,
99                               const UnoViewContainer&                           rViewContainer,
100                               const ::com::sun::star::uno::Reference<
101                                   ::com::sun::star::uno::XComponentContext>&    rComponentContext );
102             void dispose();
103 
104             boost::shared_ptr<SubsettableShapeManager>&     mpSubsettableShapeManager;
105             EventQueue&										mrEventQueue;
106             EventMultiplexer&								mrEventMultiplexer;
107             ScreenUpdater&                                  mrScreenUpdater;
108             ActivitiesQueue&								mrActivitiesQueue;
109             UserEventQueue&									mrUserEventQueue;
110             CursorManager&                                  mrCursorManager;
111             const UnoViewContainer&                         mrViewContainer;
112             ::com::sun::star::uno::Reference<
113                 ::com::sun::star::uno::XComponentContext>	mxComponentContext;
114         };
115     }
116 }
117 
118 #endif /* INCLUDED_SLIDESHOW_SLIDESHOWCONTEXT_HXX */
119