diff options
Diffstat (limited to 'offapi/com/sun/star/presentation/XSlideShow.idl')
-rw-r--r-- | offapi/com/sun/star/presentation/XSlideShow.idl | 344 |
1 files changed, 344 insertions, 0 deletions
diff --git a/offapi/com/sun/star/presentation/XSlideShow.idl b/offapi/com/sun/star/presentation/XSlideShow.idl new file mode 100644 index 000000000..fe232b372 --- /dev/null +++ b/offapi/com/sun/star/presentation/XSlideShow.idl @@ -0,0 +1,344 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef _com_sun_star_presentation_XSlideShow_idl +#define _com_sun_star_presentation_XSlideShow_idl + +#include <com/sun/star/uno/XInterface.idl> +#include <com/sun/star/beans/PropertyValue.idl> +#include <com/sun/star/geometry/RealRectangle2D.idl> +#include <com/sun/star/rendering/XSpriteCanvas.idl> +#include <com/sun/star/animations/XAnimationNode.idl> +#include <com/sun/star/lang/XMultiServiceFactory.idl> +#include <com/sun/star/drawing/XDrawPage.idl> +#include <com/sun/star/drawing/XDrawPagesSupplier.idl> +#include <com/sun/star/drawing/XShape.idl> +#include <com/sun/star/presentation/XSlideShowView.idl> +#include <com/sun/star/presentation/XSlideShowListener.idl> +#include <com/sun/star/presentation/XShapeEventListener.idl> + +module com { module sun { module star { module presentation { + +/** Slide show interface to perform slide show presentations.<p> + + This interface provides the necessary methods to run and control a + slide show from a given set of XDrawPage slides. The slide show can + be displayed simultaneously on multiple targets.<p> + + Note: To control a running slide show inside a presentation, please + use XPresentation2 and XSlideShowController. + + @since OOo 3.0 + */ +interface XSlideShow : ::com::sun::star::uno::XInterface +{ + /** Trigger the next effect of the slide show.<p> + + This method triggers the next effect on the currently + displayed slide. If there is currently no slide show running, + this method does nothing. If there are no more effects on the + current slide, a possible slide transition effect is issued + and the next slide is displayed.<p> + + @return `TRUE`, if the next effect was successfully + triggered. This method returns `FALSE`, if there is no show + running, the last effect on the last slide was already + triggered, or the implementation failed to trigger the next + effect. + */ + boolean nextEffect(); + + /** Undo the last effect in the main sequence of the slide show.<p> + + The current slide is displayed as if the last user-triggered effect + has never been triggered. If there is no previous effect on the + current slide then slideEnded(true) is called at the registered + XSlideShowListener objects, which can then trigger a change to the + previous slide. Note that this command is executed asynchronously. + Multiple calls to update() may be necessary to complete its execution. + If there is currently no slide show running, this method does + nothing.<p> + + @return `TRUE`, if the previous effect was successfully + triggered. This method returns `FALSE`, if there is no show + running, the first effect on the first slide was not yet + triggered, or the implementation failed to trigger the previous + effect. + */ + boolean previousEffect(); + + /** Start a shape-intrinsic animation or activity.<p> + + This method starts an animation or activity intrinsic to the + given shape. Shape-intrinsic activities are things like video + playback for multimedia shapes, sounds, GIF animations and + drawing layer animations (flipping between shapes in a group, + or scroll text).<p> + + @param xShape + The shape to start the activity for + */ + boolean startShapeActivity( [in] ::com::sun::star::drawing::XShape xShape ); + + /** Stop a shape-intrinsic animation or activity.<p> + + This method stops an animation or activity intrinsic to the + given shape. Shape-intrinsic activities are things like video + playback for multimedia shapes, sounds, GIF animations and + drawing layer animations (flipping between shapes in a group, + or scroll text).<p> + + @param xShape + The shape to stop the activity for + */ + boolean stopShapeActivity( [in] ::com::sun::star::drawing::XShape xShape ); + + /** Jump to the given slide.<p> + + This method ends all effects on the current slide, displays a + possible slide transition, followed by the given slide. If the + current slide is equal to the requested slide here, this + method does nothing (this especially means, that any currently + active effects will remain running).<p> + + @param xSlide + The slide to display. + + @param xDrawPages + For future use. + + @param AnimationNode + The animation node determine the animations to display. + + @param aProperties + Sequence of property values, which influence the way the + slide is displayed. Currently, the + following values are recognized: + <ul> + <li>name: Prefetch, value: ::com::sun::star::drawing::XDrawPage. When given, + this slide is prepared in the background to be displayed next. The next + call to displaySlide() with the given slide may be faster if there was + enough time for prefetching. If the next call to displaySlide() uses + a different slide, this will still work but will not have any performance + improvements + </li> + <li>name: SkipAllMainSequenceEffects, value: boolean. + When `TRUE` then all main sequence effects on the new slide + are triggered. This is typically used when going back one + effect leads to the previous slide. On that slide all + effects have to be shown in order to continue the backward + traveling. + When `FALSE`, the default, then no main sequence effect is + triggered. + </li> + <li>name: SkipSlideTransition, value: boolean. + When `TRUE` then the slide transition animation, if there + is any, is not displayed. This is typically used when going + back one effect leads to the previous slide. Typically used + together with SkipAllMainSequenceEffects also being `TRUE`. + When `FALSE`, the default, then the slide transition + effect, if it exists, is played. + </li> + </ul> + */ + void displaySlide( + [in] ::com::sun::star::drawing::XDrawPage xSlide, + [in] ::com::sun::star::drawing::XDrawPagesSupplier xDrawPages, + [in] ::com::sun::star::animations::XAnimationNode AnimationNode, + [in] sequence< ::com::sun::star::beans::PropertyValue > aProperties ); + + /** Change the pause state of the slide show.<p> + + This method either pauses the slide show (all currently + running effects are stopped), or starts a previously stopped + show again (all paused effects start again).<p> + + @param bPauseShow + When `TRUE`, the show is paused. When `FALSE`, and the show + was paused, it starts running at the paused position again. + + @return `TRUE`, if the requested action was successfully + performed. + */ + boolean pause( [in] boolean bPauseShow ); + + /** Query the currently displayed slide.<p> + + @return the instance of the current slide. If there's no + slide show running at the moment, this method returns an + empty reference. + */ + ::com::sun::star::drawing::XDrawPage getCurrentSlide(); + + /** Register drawn polygons in presentation mode + + @param xDocFactory + + */ + + void registerUserPaintPolygons([in] ::com::sun::star::lang::XMultiServiceFactory xDocFactory); + + /** Change a property of the slide show.<p> + + @param aShowProperty + Property values, which influence the way the slides are + shown. Note that this might possibly be a subset of what is + supported on show(). Currently, the following values + are recognized: + <ul> + <li>name: AutomaticAdvancement, value: double. When given, effects + and slides are advanced automatically. The double value specifies + the timeout between the end of one effect until the start of the + next one. Negative values are truncated to zero here. When given, + but with empty value, automatic advancement is disabled again.</li> + <li>name: UserPaintColor, value: long. When given, the slide show + will display a small stylus as the mouse cursor. When pressing the + left mouse key, the user can paint a thin line in the given color.</li> + </ul> + A changed property is effective immediately. + */ + boolean setProperty( + [in] ::com::sun::star::beans::PropertyValue aShowProperty ); + + /** Add a view to the slide show.<p> + + This method adds a view to the slide show. After successful + completion of this method, the slide show will be visible on + the added view, scaled according to the view's output area.<p> + + @param xView + The view to add + + @return `TRUE`, if the view has been successfully + added. Otherwise, `FALSE` is returned (e.g. if the view is + already added). + */ + boolean addView( [in] XSlideShowView xView ); + + /** Remove view from the slide show.<p> + + This method removes the given view from the slide show. After + successful completion of this method, the slide show will + cease to display on this view.<p> + + @param xView + View to remove + + @return `TRUE`, if the view was successfully removed, `FALSE` + otherwise (e.g. if the view was not added in the first place). + */ + boolean removeView( [in] XSlideShowView xView ); + + /** Update the animations.<p> + + This method updates all currently active slide animations. The + XSlideShow implementations do not render animations + automatically, but must be called from their clients. This + allows for various update mechanisms to be employed, ranging + from a dedicated rendering thread, over timer-based updates, + to rendering in an idle function. Either way, the client of + this interface decide about the details.<p> + + @param nNextTimeout + Via this value, the implementation can return a timeout value, + denoting the maximal time span that must not be exceeded from + the return of this method to the next update call. Otherwise, + the animations might show visible jerks. + + @return `TRUE`, if further update calls are required. If + `FALSE` is returned, no further update calls are necessary, + until anyone of the other interface methods is called (most + notably, the next/previousSlide(), nextEffect() and show() + methods will nearly always make further update() calls + necessary). + */ + boolean update( [out] double nNextTimeout ); + + /** Add a slide show listener.<p> + + This method adds a listener to the slide show, which will get + notified when a registered shape is clicked upon, or a new + slide is about to be displayed. Note that the listeners will + <em>not</em> be notified, when the slide change is directly + requested by one of the nextSlide(), previousSlide() or + displaySlide() methods. + + @param xListener + Listener to add. + */ + void addSlideShowListener( [in] XSlideShowListener xListener ); + + /** Revoke a previously registered slide show listener.<p> + + @param xListener + Listener interface to revoke from being called. + */ + void removeSlideShowListener( [in] XSlideShowListener xListener ); + + /** Add a shape event listener.<p> + + This method adds a listener to the slide show, which will get + notified when a mouse click is performed on the given + shape. This can be used by clients of the slide show to + trigger external actions, such as jumps to different slides.<p> + + @param xListener + Listener to add. + + @param xShape + Shape to register a listener for. + */ + void addShapeEventListener( + [in] XShapeEventListener xListener, + [in] ::com::sun::star::drawing::XShape xShape ); + + /** Revoke a previously registered shape event listener.<p> + + @param xListener + Listener interface to revoke from being called. + + @param xShape + Shape for which the listener should be revoked. + */ + void removeShapeEventListener( + [in] XShapeEventListener xListener, + [in] ::com::sun::star::drawing::XShape xShape ); + + /** Set a special mouse cursor for a shape.<p> + + This method requests the slide show to display a special + cursor, whenever the mouse is hovering over the given shape.<p> + + @param xShape + Shape to display a special mouse cursor. + + @param nPointerShape + Type of mouse cursor to display. Must be one of the + ::com::sun::star::awt::SystemPointer values. + */ + void setShapeCursor( + [in] ::com::sun::star::drawing::XShape xShape, + [in] short nPointerShape ); + +}; + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |