1*b1cdbd2cSJim Jagielski/**************************************************************
2*b1cdbd2cSJim Jagielski *
3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski *
11*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski * under the License.
19*b1cdbd2cSJim Jagielski *
20*b1cdbd2cSJim Jagielski *************************************************************/
21*b1cdbd2cSJim Jagielski
22*b1cdbd2cSJim Jagielski
23*b1cdbd2cSJim Jagielski#ifndef _com_sun_star_presentation_XSlideShow_idl
24*b1cdbd2cSJim Jagielski#define _com_sun_star_presentation_XSlideShow_idl
25*b1cdbd2cSJim Jagielski
26*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_uno_XInterface_idl__
27*b1cdbd2cSJim Jagielski#include <com/sun/star/uno/XInterface.idl>
28*b1cdbd2cSJim Jagielski#endif
29*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_beans_PropertyValue_idl__
30*b1cdbd2cSJim Jagielski#include <com/sun/star/beans/PropertyValue.idl>
31*b1cdbd2cSJim Jagielski#endif
32*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_geometry_RealRectangle2D_idl__
33*b1cdbd2cSJim Jagielski#include <com/sun/star/geometry/RealRectangle2D.idl>
34*b1cdbd2cSJim Jagielski#endif
35*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_rendering_XSpriteCanvas_idl__
36*b1cdbd2cSJim Jagielski#include <com/sun/star/rendering/XSpriteCanvas.idl>
37*b1cdbd2cSJim Jagielski#endif
38*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_animations_XAnimationNode_idl__
39*b1cdbd2cSJim Jagielski#include <com/sun/star/animations/XAnimationNode.idl>
40*b1cdbd2cSJim Jagielski#endif
41*b1cdbd2cSJim Jagielski#endif
42*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_lang_XMultiServiceFactory_idl__
43*b1cdbd2cSJim Jagielski#include <com/sun/star/lang/XMultiServiceFactory.idl>
44*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_drawing_XDrawPage_idl__
45*b1cdbd2cSJim Jagielski#include <com/sun/star/drawing/XDrawPage.idl>
46*b1cdbd2cSJim Jagielski#endif
47*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_drawing_XDrawPagesSupplier_idl__
48*b1cdbd2cSJim Jagielski#include <com/sun/star/drawing/XDrawPagesSupplier.idl>
49*b1cdbd2cSJim Jagielski#endif
50*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_drawing_XShape_idl__
51*b1cdbd2cSJim Jagielski#include <com/sun/star/drawing/XShape.idl>
52*b1cdbd2cSJim Jagielski#endif
53*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_presentation_XSlideShowView_idl__
54*b1cdbd2cSJim Jagielski#include <com/sun/star/presentation/XSlideShowView.idl>
55*b1cdbd2cSJim Jagielski#endif
56*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_presentation_XSlideShowListener_idl__
57*b1cdbd2cSJim Jagielski#include <com/sun/star/presentation/XSlideShowListener.idl>
58*b1cdbd2cSJim Jagielski#endif
59*b1cdbd2cSJim Jagielski#ifndef __com_sun_star_presentation_XShapeEventListener_idl__
60*b1cdbd2cSJim Jagielski#include <com/sun/star/presentation/XShapeEventListener.idl>
61*b1cdbd2cSJim Jagielski#endif
62*b1cdbd2cSJim Jagielski
63*b1cdbd2cSJim Jagielskimodule com {  module sun {  module star {  module presentation {
64*b1cdbd2cSJim Jagielski
65*b1cdbd2cSJim Jagielski/** Slideshow interface to perform slideshow presentations.<p>
66*b1cdbd2cSJim Jagielski
67*b1cdbd2cSJim Jagielski    This interface provides the necessary methods to run and control a
68*b1cdbd2cSJim Jagielski    slideshow from a given set of XDrawPage slides. The slideshow can
69*b1cdbd2cSJim Jagielski    be displayed simultaneously on multiple targets.<p>
70*b1cdbd2cSJim Jagielski
71*b1cdbd2cSJim Jagielski    Note: To controll a running slideshow inside a presentation, please
72*b1cdbd2cSJim Jagielski    use <type>XPresentation2</type> and <type>XSlideShowController</type>.
73*b1cdbd2cSJim Jagielski
74*b1cdbd2cSJim Jagielski	@since OpenOffice 3.0
75*b1cdbd2cSJim Jagielski */
76*b1cdbd2cSJim Jagielskiinterface XSlideShow : ::com::sun::star::uno::XInterface
77*b1cdbd2cSJim Jagielski{
78*b1cdbd2cSJim Jagielski    /** Trigger the next effect of the slideshow.<p>
79*b1cdbd2cSJim Jagielski
80*b1cdbd2cSJim Jagielski        This method triggers the next effect on the currently
81*b1cdbd2cSJim Jagielski        displayed slide. If there is currently no slideshow running,
82*b1cdbd2cSJim Jagielski        this method does nothing. If there are no more effects on the
83*b1cdbd2cSJim Jagielski        current slide, a possible slide transition effect is issued
84*b1cdbd2cSJim Jagielski        and the next slide is displayed.<p>
85*b1cdbd2cSJim Jagielski
86*b1cdbd2cSJim Jagielski        @return <TRUE>, if the next effect was successfully
87*b1cdbd2cSJim Jagielski        triggered. This method returns <FALSE>, if there is no show
88*b1cdbd2cSJim Jagielski        running, the last effect on the last slide was already
89*b1cdbd2cSJim Jagielski        triggered, or the implementation failed to trigger the next
90*b1cdbd2cSJim Jagielski        effect.
91*b1cdbd2cSJim Jagielski     */
92*b1cdbd2cSJim Jagielski    boolean nextEffect();
93*b1cdbd2cSJim Jagielski
94*b1cdbd2cSJim Jagielski    /** Undo the last effect in the main sequence of the slideshow.<p>
95*b1cdbd2cSJim Jagielski
96*b1cdbd2cSJim Jagielski        The current slide is displayed as if the last user-triggered effect
97*b1cdbd2cSJim Jagielski        has never been triggered.  If there is no previous effect on the
98*b1cdbd2cSJim Jagielski        current slide then slideEnded(true) is called at the registered
99*b1cdbd2cSJim Jagielski        XSlideShowListener objects, which can then trigger a change to the
100*b1cdbd2cSJim Jagielski        previous slide.  Note that this command is executed asynchronously.
101*b1cdbd2cSJim Jagielski        Multiple calls to update() may be necessary to complete its execution.
102*b1cdbd2cSJim Jagielski        If there is currently no slideshow running, this method does
103*b1cdbd2cSJim Jagielski        nothing.<p>
104*b1cdbd2cSJim Jagielski
105*b1cdbd2cSJim Jagielski        @return <TRUE/>, if the previous effect was successfully
106*b1cdbd2cSJim Jagielski        triggered. This method returns <FALSE/>, if there is no show
107*b1cdbd2cSJim Jagielski        running, the first effect on the first slide was not yet
108*b1cdbd2cSJim Jagielski        triggered, or the implementation failed to trigger the previous
109*b1cdbd2cSJim Jagielski        effect.
110*b1cdbd2cSJim Jagielski     */
111*b1cdbd2cSJim Jagielski    boolean previousEffect();
112*b1cdbd2cSJim Jagielski
113*b1cdbd2cSJim Jagielski    /** Start a shape-intrinsic animation or activity.<p>
114*b1cdbd2cSJim Jagielski
115*b1cdbd2cSJim Jagielski        This method starts an animation or activity intrinsic to the
116*b1cdbd2cSJim Jagielski        given shape. Shape-intrinsic activities are things like video
117*b1cdbd2cSJim Jagielski        playback for multimedia shapes, sounds, GIF animations and
118*b1cdbd2cSJim Jagielski        drawing layer animations (flipping between shapes in a group,
119*b1cdbd2cSJim Jagielski        or scroll text).<p>
120*b1cdbd2cSJim Jagielski
121*b1cdbd2cSJim Jagielski        @param xShape
122*b1cdbd2cSJim Jagielski        The shape to start the activity for
123*b1cdbd2cSJim Jagielski     */
124*b1cdbd2cSJim Jagielski    boolean startShapeActivity( [in] ::com::sun::star::drawing::XShape xShape );
125*b1cdbd2cSJim Jagielski
126*b1cdbd2cSJim Jagielski    /** Stop a shape-intrinsic animation or activity.<p>
127*b1cdbd2cSJim Jagielski
128*b1cdbd2cSJim Jagielski        This method stops an animation or activity intrinsic to the
129*b1cdbd2cSJim Jagielski        given shape. Shape-intrinsic activities are things like video
130*b1cdbd2cSJim Jagielski        playback for multimedia shapes, sounds, GIF animations and
131*b1cdbd2cSJim Jagielski        drawing layer animations (flipping between shapes in a group,
132*b1cdbd2cSJim Jagielski        or scroll text).<p>
133*b1cdbd2cSJim Jagielski
134*b1cdbd2cSJim Jagielski        @param xShape
135*b1cdbd2cSJim Jagielski        The shape to stop the activity for
136*b1cdbd2cSJim Jagielski     */
137*b1cdbd2cSJim Jagielski    boolean stopShapeActivity( [in] ::com::sun::star::drawing::XShape xShape );
138*b1cdbd2cSJim Jagielski
139*b1cdbd2cSJim Jagielski    /** Jump to the given slide.<p>
140*b1cdbd2cSJim Jagielski
141*b1cdbd2cSJim Jagielski        This method ends all effects on the current slide, displays a
142*b1cdbd2cSJim Jagielski        possible slide transition, followed by the given slide. If the
143*b1cdbd2cSJim Jagielski        current slide is equal to the requested slide here, this
144*b1cdbd2cSJim Jagielski        method does nothing (this especially means, that any currently
145*b1cdbd2cSJim Jagielski        active effects will remain running).<p>
146*b1cdbd2cSJim Jagielski
147*b1cdbd2cSJim Jagielski        @param xPage
148*b1cdbd2cSJim Jagielski        The slide to display.
149*b1cdbd2cSJim Jagielski
150*b1cdbd2cSJim Jagielski        @param xDrawPages
151*b1cdbd2cSJim Jagielski        For future use.
152*b1cdbd2cSJim Jagielski
153*b1cdbd2cSJim Jagielski        @param xAnimationNode
154*b1cdbd2cSJim Jagielski        The animation node determine the animations to display.
155*b1cdbd2cSJim Jagielski
156*b1cdbd2cSJim Jagielski        @param aProperties
157*b1cdbd2cSJim Jagielski        Sequence of property values, which influence the way the
158*b1cdbd2cSJim Jagielski        slide is displayed. Currently, the
159*b1cdbd2cSJim Jagielski        following values are recognized:
160*b1cdbd2cSJim Jagielski        <ul>
161*b1cdbd2cSJim Jagielski            <li>name: Prefetch, value: ::com::sun::star::drawing::XDrawPage. When given,
162*b1cdbd2cSJim Jagielski                this slide is prepared in the background to be displayed next. The next
163*b1cdbd2cSJim Jagielski                call to displaySlide() with the given slide may be faster if there was
164*b1cdbd2cSJim Jagielski                enough time for prefatching. If the next call to displaySlide() uses
165*b1cdbd2cSJim Jagielski                a different slide, this will still work but will not have any performance
166*b1cdbd2cSJim Jagielski                improvements
167*b1cdbd2cSJim Jagielski                </li>
168*b1cdbd2cSJim Jagielski            <li>name: SkipAllMainSequenceEffects, value: boolean.
169*b1cdbd2cSJim Jagielski                When <TRUE/> then all main sequence effects on the new slide
170*b1cdbd2cSJim Jagielski                are triggered.  This is typically used when going back one
171*b1cdbd2cSJim Jagielski                effect leads to the previous slide.  On that slide all
172*b1cdbd2cSJim Jagielski                effects have to be shown in order to continue the backward
173*b1cdbd2cSJim Jagielski                travelling.
174*b1cdbd2cSJim Jagielski                When <FALSE/>, the default, then no main sequence effect is
175*b1cdbd2cSJim Jagielski                triggered.
176*b1cdbd2cSJim Jagielski                </li>
177*b1cdbd2cSJim Jagielski            <li>name: SkipSlideTransition, value: boolean.
178*b1cdbd2cSJim Jagielski                When <TRUE/> then the slide transition animation, if there
179*b1cdbd2cSJim Jagielski                is any, is not displayed.  This is typically used when going
180*b1cdbd2cSJim Jagielski                back one effect leads to the previous slide.  Typically used
181*b1cdbd2cSJim Jagielski                together with SkipAllMainSequenceEffects also being <TRUE/>.
182*b1cdbd2cSJim Jagielski                When <FALSE/>, the default, then the slide transition
183*b1cdbd2cSJim Jagielski                effect, if it exists, is played.
184*b1cdbd2cSJim Jagielski                </li>
185*b1cdbd2cSJim Jagielski        </ul>
186*b1cdbd2cSJim Jagielski    */
187*b1cdbd2cSJim Jagielski    void displaySlide(
188*b1cdbd2cSJim Jagielski        [in] ::com::sun::star::drawing::XDrawPage xSlide,
189*b1cdbd2cSJim Jagielski        [in] ::com::sun::star::drawing::XDrawPagesSupplier xDrawPages,
190*b1cdbd2cSJim Jagielski        [in] ::com::sun::star::animations::XAnimationNode aAnimationNode,
191*b1cdbd2cSJim Jagielski        [in] sequence< ::com::sun::star::beans::PropertyValue > aProperties );
192*b1cdbd2cSJim Jagielski
193*b1cdbd2cSJim Jagielski    /** Change the pause state of the slide show.<p>
194*b1cdbd2cSJim Jagielski
195*b1cdbd2cSJim Jagielski        This method either pauses the slide show (all currently
196*b1cdbd2cSJim Jagielski        running effects are stopped), or starts a previously stopped
197*b1cdbd2cSJim Jagielski        show again (all paused effects start again).<p>
198*b1cdbd2cSJim Jagielski
199*b1cdbd2cSJim Jagielski        @param bPauseShow
200*b1cdbd2cSJim Jagielski        When <TRUE>, the show is paused. When <FALSE>, and the show
201*b1cdbd2cSJim Jagielski        was paused, it starts running at the paused position again.
202*b1cdbd2cSJim Jagielski
203*b1cdbd2cSJim Jagielski        @return <TRUE>, if the requested action was successfully
204*b1cdbd2cSJim Jagielski        performed.
205*b1cdbd2cSJim Jagielski     */
206*b1cdbd2cSJim Jagielski    boolean pause( [in] boolean bPauseShow );
207*b1cdbd2cSJim Jagielski
208*b1cdbd2cSJim Jagielski    /** Query the currently displayed slide.<p>
209*b1cdbd2cSJim Jagielski
210*b1cdbd2cSJim Jagielski        @return the instance of the current slide. If there's no
211*b1cdbd2cSJim Jagielski        slideshow running at the moment, this method returns an
212*b1cdbd2cSJim Jagielski        empty reference.
213*b1cdbd2cSJim Jagielski     */
214*b1cdbd2cSJim Jagielski    ::com::sun::star::drawing::XDrawPage getCurrentSlide();
215*b1cdbd2cSJim Jagielski
216*b1cdbd2cSJim Jagielski    /** Register drawn polygons in presentation mode
217*b1cdbd2cSJim Jagielski
218*b1cdbd2cSJim Jagielski	 @param xDocFactory
219*b1cdbd2cSJim Jagielski
220*b1cdbd2cSJim Jagielski     */
221*b1cdbd2cSJim Jagielski
222*b1cdbd2cSJim Jagielski    void registerUserPaintPolygons([in] ::com::sun::star::lang::XMultiServiceFactory xDocFactory);
223*b1cdbd2cSJim Jagielski
224*b1cdbd2cSJim Jagielski    /** Change a property of the slideshow.<p>
225*b1cdbd2cSJim Jagielski
226*b1cdbd2cSJim Jagielski        @param aShowProperty
227*b1cdbd2cSJim Jagielski        Property values, which influence the way the slides are
228*b1cdbd2cSJim Jagielski        shown. Note that this might possibly be a subset of what is
229*b1cdbd2cSJim Jagielski        supported on show(). Currently, the following values
230*b1cdbd2cSJim Jagielski        are recognized:
231*b1cdbd2cSJim Jagielski        <ul>
232*b1cdbd2cSJim Jagielski            <li>name: AutomaticAdvancement, value: double. When given, effects
233*b1cdbd2cSJim Jagielski                and slides are advanced automatically. The double value specifies
234*b1cdbd2cSJim Jagielski                the timeout between the end of one effect until the start of the
235*b1cdbd2cSJim Jagielski                next one. Negative values are truncated to zero here. When given,
236*b1cdbd2cSJim Jagielski                but with empty value, automatic advancement is disabled again.</li>
237*b1cdbd2cSJim Jagielski            <li>name: UserPaintColor, value: long. When given, the slide show
238*b1cdbd2cSJim Jagielski                will display a small stylus as the mouse cursor. When pressing the
239*b1cdbd2cSJim Jagielski                left mouse key, the user can paint a thin line in the given color.</li>
240*b1cdbd2cSJim Jagielski        </ul>
241*b1cdbd2cSJim Jagielski        A changed property is effective immediately.
242*b1cdbd2cSJim Jagielski     */
243*b1cdbd2cSJim Jagielski    boolean setProperty(
244*b1cdbd2cSJim Jagielski        [in] ::com::sun::star::beans::PropertyValue aShowProperty );
245*b1cdbd2cSJim Jagielski
246*b1cdbd2cSJim Jagielski    /** Add a view to the slide show.<p>
247*b1cdbd2cSJim Jagielski
248*b1cdbd2cSJim Jagielski        This method adds a view to the slide show. After successful
249*b1cdbd2cSJim Jagielski        completion of this method, the slide show will be visible on
250*b1cdbd2cSJim Jagielski        the added view, scaled according to the view's output area.<p>
251*b1cdbd2cSJim Jagielski
252*b1cdbd2cSJim Jagielski        @param xView
253*b1cdbd2cSJim Jagielski        The view to add
254*b1cdbd2cSJim Jagielski
255*b1cdbd2cSJim Jagielski        @return <TRUE>, if the view has been successfully
256*b1cdbd2cSJim Jagielski        added. Otherwise, <FALSE> is returned (e.g. if the view is
257*b1cdbd2cSJim Jagielski        already added).
258*b1cdbd2cSJim Jagielski     */
259*b1cdbd2cSJim Jagielski    boolean addView( [in] XSlideShowView xView );
260*b1cdbd2cSJim Jagielski
261*b1cdbd2cSJim Jagielski    /** Remove view from the slide show.<p>
262*b1cdbd2cSJim Jagielski
263*b1cdbd2cSJim Jagielski        This method removes the given view from the slide show. After
264*b1cdbd2cSJim Jagielski        successful completion of this method, the slide show will
265*b1cdbd2cSJim Jagielski        cease to display on this view.<p>
266*b1cdbd2cSJim Jagielski
267*b1cdbd2cSJim Jagielski        @param xView
268*b1cdbd2cSJim Jagielski        View to remove
269*b1cdbd2cSJim Jagielski
270*b1cdbd2cSJim Jagielski        @return <TRUE>, if the view was successfully removed, <FALSE>
271*b1cdbd2cSJim Jagielski        otherwise (e.g. if the view was not added in the first place).
272*b1cdbd2cSJim Jagielski     */
273*b1cdbd2cSJim Jagielski    boolean removeView( [in] XSlideShowView xView );
274*b1cdbd2cSJim Jagielski
275*b1cdbd2cSJim Jagielski    /** Update the animations.<p>
276*b1cdbd2cSJim Jagielski
277*b1cdbd2cSJim Jagielski        This method updates all currently active slide animations. The
278*b1cdbd2cSJim Jagielski        XSlideShow implementations do not render animations
279*b1cdbd2cSJim Jagielski        automatically, but must be called from their clients. This
280*b1cdbd2cSJim Jagielski        allows for various update mechanisms to be employed, ranging
281*b1cdbd2cSJim Jagielski        from a dedicated rendering thread, over timer-based updates,
282*b1cdbd2cSJim Jagielski        to rendering in an idle function. Either way, the client of
283*b1cdbd2cSJim Jagielski        this interface decide about the details.<p>
284*b1cdbd2cSJim Jagielski
285*b1cdbd2cSJim Jagielski        @param nNextTimeout
286*b1cdbd2cSJim Jagielski        Via this value, the implementation can return a timeout value,
287*b1cdbd2cSJim Jagielski        denoting the maximal time span that must not be exceeded from
288*b1cdbd2cSJim Jagielski        the return of this method to the next update call. Otherwise,
289*b1cdbd2cSJim Jagielski        the animations might show visible jerks.
290*b1cdbd2cSJim Jagielski
291*b1cdbd2cSJim Jagielski        @return <TRUE>, if further update calls are required. If
292*b1cdbd2cSJim Jagielski        <FALSE> is returned, no further update calls are necessary,
293*b1cdbd2cSJim Jagielski        until anyone of the other interface methods is called (most
294*b1cdbd2cSJim Jagielski        notably, the next/previousSlide(), nextEffect() and show()
295*b1cdbd2cSJim Jagielski        methods will nearly always make further update() calls
296*b1cdbd2cSJim Jagielski        necessary).
297*b1cdbd2cSJim Jagielski     */
298*b1cdbd2cSJim Jagielski    boolean update( [out] double nNextTimeout );
299*b1cdbd2cSJim Jagielski
300*b1cdbd2cSJim Jagielski    /** Add a slide show listener.<p>
301*b1cdbd2cSJim Jagielski
302*b1cdbd2cSJim Jagielski        This method adds a listener to the slide show, which will get
303*b1cdbd2cSJim Jagielski        notified when a registerend shape is clicked upon, or a new
304*b1cdbd2cSJim Jagielski        slide is about to be displayed. Note that the listeners will
305*b1cdbd2cSJim Jagielski        <em>not</em> be notified, when the slide change is directly
306*b1cdbd2cSJim Jagielski        requested by one of the nextSlide(), previousSlide() or
307*b1cdbd2cSJim Jagielski        displaySlide() methods.
308*b1cdbd2cSJim Jagielski
309*b1cdbd2cSJim Jagielski        @param xListener
310*b1cdbd2cSJim Jagielski        Listener to add.
311*b1cdbd2cSJim Jagielski     */
312*b1cdbd2cSJim Jagielski    void addSlideShowListener( [in] XSlideShowListener xListener );
313*b1cdbd2cSJim Jagielski
314*b1cdbd2cSJim Jagielski    /** Revoke a previously registered slide show listener.<p>
315*b1cdbd2cSJim Jagielski
316*b1cdbd2cSJim Jagielski        @param xListener
317*b1cdbd2cSJim Jagielski        Listener interface to revoke from being called.
318*b1cdbd2cSJim Jagielski     */
319*b1cdbd2cSJim Jagielski    void removeSlideShowListener( [in] XSlideShowListener xListener );
320*b1cdbd2cSJim Jagielski
321*b1cdbd2cSJim Jagielski    /** Add a shape event listener.<p>
322*b1cdbd2cSJim Jagielski
323*b1cdbd2cSJim Jagielski        This method adds a listener to the slide show, which will get
324*b1cdbd2cSJim Jagielski        notified when a mouse click is performed on the given
325*b1cdbd2cSJim Jagielski        shape. This can be used by clients of the slide show to
326*b1cdbd2cSJim Jagielski        trigger external actions, such as jumps to different slides.<p>
327*b1cdbd2cSJim Jagielski
328*b1cdbd2cSJim Jagielski        @param xListener
329*b1cdbd2cSJim Jagielski        Listener to add.
330*b1cdbd2cSJim Jagielski
331*b1cdbd2cSJim Jagielski        @param xShape
332*b1cdbd2cSJim Jagielski        Shape to register a listener for.
333*b1cdbd2cSJim Jagielski     */
334*b1cdbd2cSJim Jagielski    void addShapeEventListener(
335*b1cdbd2cSJim Jagielski        [in] XShapeEventListener xListener,
336*b1cdbd2cSJim Jagielski        [in] ::com::sun::star::drawing::XShape xShape );
337*b1cdbd2cSJim Jagielski
338*b1cdbd2cSJim Jagielski    /** Revoke a previously registered shape event listener.<p>
339*b1cdbd2cSJim Jagielski
340*b1cdbd2cSJim Jagielski        @param xListener
341*b1cdbd2cSJim Jagielski        Listener interface to revoke from being called.
342*b1cdbd2cSJim Jagielski
343*b1cdbd2cSJim Jagielski        @param xShape
344*b1cdbd2cSJim Jagielski        Shape for which the listener should be revoked.
345*b1cdbd2cSJim Jagielski     */
346*b1cdbd2cSJim Jagielski    void removeShapeEventListener(
347*b1cdbd2cSJim Jagielski        [in] XShapeEventListener xListener,
348*b1cdbd2cSJim Jagielski        [in] ::com::sun::star::drawing::XShape xShape );
349*b1cdbd2cSJim Jagielski
350*b1cdbd2cSJim Jagielski    /** Set a special mouse cursor for a shape.<p>
351*b1cdbd2cSJim Jagielski
352*b1cdbd2cSJim Jagielski        This method requests the slide show to display a special
353*b1cdbd2cSJim Jagielski        cursor, whenever the mouse is hovering over the given shape.<p>
354*b1cdbd2cSJim Jagielski
355*b1cdbd2cSJim Jagielski        @param xShape
356*b1cdbd2cSJim Jagielski        Shape to display a special mouse cursor.
357*b1cdbd2cSJim Jagielski
358*b1cdbd2cSJim Jagielski        @param nPointerShape
359*b1cdbd2cSJim Jagielski        Type of mouse cursor to display. Must be one of the
360*b1cdbd2cSJim Jagielski        ::com::sun::star::awt::SystemPointer values.
361*b1cdbd2cSJim Jagielski     */
362*b1cdbd2cSJim Jagielski    void setShapeCursor(
363*b1cdbd2cSJim Jagielski        [in] ::com::sun::star::drawing::XShape xShape,
364*b1cdbd2cSJim Jagielski        [in] short nPointerShape );
365*b1cdbd2cSJim Jagielski
366*b1cdbd2cSJim Jagielski};
367*b1cdbd2cSJim Jagielski
368*b1cdbd2cSJim Jagielskiservice SlideShow : XSlideShow;
369*b1cdbd2cSJim Jagielski
370*b1cdbd2cSJim Jagielski}; }; }; };
371*b1cdbd2cSJim Jagielski
372*b1cdbd2cSJim Jagielski#endif
373*b1cdbd2cSJim Jagielski
374