summaryrefslogtreecommitdiffstats
path: root/offapi/com/sun/star/presentation/XSlideShow.idl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--offapi/com/sun/star/presentation/XSlideShow.idl344
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: */