Hello Daniel,

Daniel Watkins escribió:
Hello all,

I have come to the conclusion that controlling the slide show, as I am,
using an external timer is pretty stupid, as Impress obviously has
built-in timings.

Before describing what I have found, let me reiterate my requirements.
I'm looking to set up timings such that, per slide, the effects happen
with 'n' seconds between them.  Once the last effect on a slide has
completed, I want to wait 'm' seconds before proceeding to the next
slide.

Unfortunately, I haven't found a way to manipulate these timings in
exactly the way I want.  What I have found are the following things:
      * The AutomaticAdvancement property of XSlideShow[0], which causes
        a new event every 's' seconds.  That is to say, the next effect
        or slide will be shown every 's' seconds.  This doesn't meet my
        requirements, as it requires 'm == n'.
      * The 'Change' and 'Duration' properties on XDrawPage[1], which
        allow me to set each slide (individually) to change
        automatically every 's' seconds.  This doesn't take account of
        individual effects, and seems to only work for slides with
        effects on, but at least gets me some of the way.

Am I missing something, or is there not yet API support for what I want
to do?

I think it may be supported, but it is rather complex. For what I could understand, you'd need to work with the com::sun::star::animations::XAnimationNode.

Because, let's say that instead of counting effects, in XSlideShowListener.slideTransitionStarted you store in a hash
table all shapes that have an effect (see mail "Counting
Effects On A Slide"), order it according to the
PresentationOrder; when the animation ends, you remove it from the hash table, pause the slide the n seconds, and go to the next effect, and so on. But what happens if one effect does not happen *after* another, but together *with* another? This two effects will happen in the same time. Also what if an effect repeats?

So your main problem is accessing all this kind of information.

The com.sun.star.presentation.DrawPage implements the com.sun.star.animations.XAnimationNodeSupplier interface. Use com.sun.star.animations.XAnimationNodeSupplier.getAnimationNode() to access the com.sun.star.animations.XAnimationNode.
You also get an XAnimationNode in XAnimationListener functions.

In short, you may find your way in the animations module (http://api.openoffice.org/docs/common/ref/com/sun/star/animations/module-ix.html). It seems a long and not easy road, as the specification is all the documentation there is. (another way is, if you know C++, study the slideshow module, where the slideshow engine is implemented).

Regards
Ariel.



--
Ariel Constenla-Haile
La Plata, Argentina

[EMAIL PROTECTED]
http://www.ArielConstenlaHaile.com.ar/ooo/



"Aus der Kriegsschule des Lebens
                - Was mich nicht umbringt,
        macht mich härter."
                Nietzsche Götzendämmerung, Sprüche und Pfeile, 8.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to