Version 5.2.6.1, tag libreoffice-5.2.6.1
[LibreOffice.git] / offapi / com / sun / star / presentation / XSlideShowController.idl
blobe4b353474a640726da116fcd3e57dd32d7c8f02e
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
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 .
19 #ifndef __com_sun_star_presentation_XSlideShowController_idl__
20 #define __com_sun_star_presentation_XSlideShowController_idl__
22 #include <com/sun/star/drawing/XDrawPage.idl>
23 #include <com/sun/star/container/XIndexAccess.idl>
24 #include <com/sun/star/lang/XComponent.idl>
25 #include <com/sun/star/presentation/XSlideShow.idl>
28 module com { module sun { module star { module presentation {
31 /** interface to control a running slide show.
33 @see XPresentation2
34 @since OOo 3.0
36 interface XSlideShowController
39 /** returns true if the slide show is still running.
40 If this returns false, this component is already disposed.
41 You can start a new slide show and get a new instance
42 of XSlideShowController from XPresentation2
44 boolean isRunning();
47 /** @returns
48 the number of slides in this slide show.
50 @see getSlideByIndex
52 long getSlideCount();
55 /** gives access to the slides that will be shown in this slide show.
57 <p>Slides are returned in the order they will be displayed in the
58 presentation which can be different than the orders of slides in
59 the document. Not all slides must be present and each slide can
60 be used more than once.
62 @returns
63 the slide at the specified index.
65 @param Index
66 specifies the position in the list of slides that are displayed
67 in this slide show. The first index is 0.
69 @throws com::sun::star::lang::IndexOutOfBoundException
70 if the index is not valid.
73 ::com::sun::star::drawing::XDrawPage getSlideByIndex( [in] long Index )
74 raises( com::sun::star::lang::IndexOutOfBoundsException );
77 /** adds a listener that receives events while the slide show is running. */
78 void addSlideShowListener( [in] XSlideShowListener Listener );
81 /** removes a listener. */
82 void removeSlideShowListener( [in] XSlideShowListener Listener );
85 /** start next effects that wait on a generic trigger.
86 <p>If no generic triggers are waiting the next
87 slide will be displayed.
89 void gotoNextEffect();
92 /** undo the last effects that where triggered by a generic trigger.
93 <p>If there is no previous effect that can be undone then the
94 previous slide will be displayed.
96 void gotoPreviousEffect();
99 /** goto and display first slide */
100 void gotoFirstSlide();
103 /** goto and display next slide.
104 <p>Remaining effects on the current slide will be skipped.*/
105 void gotoNextSlide();
108 /** goto and display previous slide.
109 <p>Remaining effects on the current slide will be skipped.*/
110 void gotoPreviousSlide();
113 /** goto and display last slide.
114 <p>Remaining effects on the current slide will be skipped.*/
115 void gotoLastSlide();
118 /** goto the given textual bookmark */
119 void gotoBookmark( [in] string Bookmark );
122 /** jumps to the given slide.
123 <p>The slide can also be a slide that would normally not be shown during
124 the current slide show.
126 @throws com::sun::star::lang::IllegalArgumentException
127 if the given page is not a valid slide of the document for
128 which this slide show is started. Also not allowed are master,
129 notes and handout pages.
131 void gotoSlide( [in] com::sun::star::drawing::XDrawPage Page )
132 raises( com::sun::star::lang::IllegalArgumentException );
135 /** jumps to the slide at the given index.
137 void gotoSlideIndex( [in] long Index );
140 /** stop all currently played sounds */
141 void stopSound();
144 /** pauses the slide show. All effects are paused.
145 <p>The slide show continues on next user input or if
146 resume() is called.
148 void pause();
151 /** resumes a paused slide show.
153 void resume();
156 /** returns `TRUE` if the slide show is currently paused.
158 @see pause()
159 @see resume()
161 boolean isPaused();
164 /** pauses the slide show and blanks the screen in the given color.
165 <p>Change attribute Pause to false to unpause
166 the slide show.
168 void blankScreen( [in] long Color );
171 /** activates the user interface of this slide show.
173 @see deactivate()
174 @see isActive()
176 void activate();
178 /** can be called to deactivate the user interface of this slide show.
180 <p>A deactivated
181 @see activate()
182 @see isActive()
184 void deactivate();
187 /** determines if the slide show is active.
189 @return
190 `TRUE` for UI active slide show
191 <br>
192 `FALSE` otherwise
194 boolean isActive();
197 /** returns slide that is currently displayed */
198 com::sun::star::drawing::XDrawPage getCurrentSlide();
201 /** returns the index of the current slide. */
202 long getCurrentSlideIndex();
205 /** the index for the slide that is displayed next. */
206 long getNextSlideIndex();
209 /** returns `TRUE` if the slide show was started to run endlessly.
211 boolean isEndless();
214 /** Returns `TRUE` if the slide show was started in full-screen mode.
216 boolean isFullScreen();
219 /** If this attribute is set to `TRUE`, the window of the slide show is
220 always on top of all other windows.
222 [attribute] boolean AlwaysOnTop;
225 /** If this attribute is `TRUE`, the mouse is visible during the
226 slide show.
228 [attribute] boolean MouseVisible;
231 /** If this is `TRUE`, a pen is shown during presentation.
233 <p>You can draw on the presentation with this pen.</p>
235 [attribute] boolean UsePen;
238 /** This attribute changes the color of the pen. */
239 [attribute] long PenColor;
241 /** This attribute changes the width of the pen.
243 @since LibreOffice 4.2
245 [attribute] double PenWidth;
248 /** returns the actual XSlideShow instance that runs the
249 slide show.
250 <br>Normally all navigation should be done using this controller and
251 not the XSlideShow itself. */
252 XSlideShow getSlideShow();
257 }; }; }; };
259 #endif
261 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */