diff options
Diffstat (limited to 'offapi/com/sun/star/presentation/XSlideShow.idl')
-rw-r--r-- | offapi/com/sun/star/presentation/XSlideShow.idl | 378 |
1 files changed, 378 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 000000000000..2bbce811c00f --- /dev/null +++ b/offapi/com/sun/star/presentation/XSlideShow.idl @@ -0,0 +1,378 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ +#ifndef _com_sun_star_presentation_XSlideShow_idl +#define _com_sun_star_presentation_XSlideShow_idl + +#ifndef __com_sun_star_uno_XInterface_idl__ +#include <com/sun/star/uno/XInterface.idl> +#endif +#ifndef __com_sun_star_beans_PropertyValue_idl__ +#include <com/sun/star/beans/PropertyValue.idl> +#endif +#ifndef __com_sun_star_geometry_RealRectangle2D_idl__ +#include <com/sun/star/geometry/RealRectangle2D.idl> +#endif +#ifndef __com_sun_star_rendering_XSpriteCanvas_idl__ +#include <com/sun/star/rendering/XSpriteCanvas.idl> +#endif +#ifndef __com_sun_star_animations_XAnimationNode_idl__ +#include <com/sun/star/animations/XAnimationNode.idl> +#endif +#endif +#ifndef __com_sun_star_lang_XMultiServiceFactory_idl__ +#include <com/sun/star/lang/XMultiServiceFactory.idl> +#ifndef __com_sun_star_drawing_XDrawPage_idl__ +#include <com/sun/star/drawing/XDrawPage.idl> +#endif +#ifndef __com_sun_star_drawing_XDrawPagesSupplier_idl__ +#include <com/sun/star/drawing/XDrawPagesSupplier.idl> +#endif +#ifndef __com_sun_star_drawing_XShape_idl__ +#include <com/sun/star/drawing/XShape.idl> +#endif +#ifndef __com_sun_star_presentation_XSlideShowView_idl__ +#include <com/sun/star/presentation/XSlideShowView.idl> +#endif +#ifndef __com_sun_star_presentation_XSlideShowListener_idl__ +#include <com/sun/star/presentation/XSlideShowListener.idl> +#endif +#ifndef __com_sun_star_presentation_XShapeEventListener_idl__ +#include <com/sun/star/presentation/XShapeEventListener.idl> +#endif + +module com { module sun { module star { module presentation { + +/** Slideshow interface to perform slideshow presentations.<p> + + This interface provides the necessary methods to run and control a + slideshow from a given set of XDrawPage slides. The slideshow can + be displayed simultaneously on multiple targets.<p> + + Note: To controll a running slideshow inside a presentation, please + use <type>XPresentation2</type> and <type>XSlideShowController</type>. + + @since OOo 3.0 + */ +interface XSlideShow : ::com::sun::star::uno::XInterface +{ + /** Trigger the next effect of the slideshow.<p> + + This method triggers the next effect on the currently + displayed slide. If there is currently no slideshow 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 slideshow.<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 slideshow 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 xPage + The slide to display. + + @param xDrawPages + For future use. + This parameter can be NULL when the ENABLE_PRESENTER_EXTRA_UI feature is disabled. + + @param xAnimationNode + 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 prefatching. 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 + travelling. + 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 aAnimationNode, + [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 + slideshow 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 slideshow.<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 registerend 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 ); + +}; + +service SlideShow : XSlideShow; + +}; }; }; }; + +#endif + |