LibreOffice Module slideshow (master) 1
animationnode.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
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/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
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 .
18 */
19#ifndef INCLUDED_SLIDESHOW_SOURCE_INC_ANIMATIONNODE_HXX
20#define INCLUDED_SLIDESHOW_SOURCE_INC_ANIMATIONNODE_HXX
21
22#include "disposable.hxx"
23
24#include <com/sun/star/animations/XAnimationNode.hpp>
25#include <memory>
26
27namespace slideshow::internal
28{
29class AnimationNode;
30typedef ::std::shared_ptr<AnimationNode> AnimationNodeSharedPtr;
31
36{
37public:
41 {
49 ACTIVE = 4,
51 FROZEN = 8,
54 ENDED = 16
55 };
56
59 virtual css::uno::Reference<css::animations::XAnimationNode> getXAnimationNode() const = 0;
60
71 virtual bool init() = 0;
72
85 virtual bool resolve() = 0;
86
92 virtual void activate() = 0;
93
100 virtual void deactivate() = 0;
101
110 virtual void end() = 0;
111
116 virtual NodeState getState() const = 0;
117
127 virtual bool registerDeactivatingListener(const AnimationNodeSharedPtr& rNotifee) = 0;
128
133 virtual void notifyDeactivating(const AnimationNodeSharedPtr& rNotifier) = 0;
134
140 virtual void removeEffect() = 0;
141
148 virtual bool hasPendingAnimation() const = 0;
149};
150
151} // namespace presentation::internal
152
153#endif // INCLUDED_SLIDESHOW_SOURCE_INC_ANIMATIONNODE_HXX
154
155/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
This interface is used to mirror every XAnimateNode object in the presentation core.
virtual void notifyDeactivating(const AnimationNodeSharedPtr &rNotifier)=0
Called to notify another AnimationNode's deactivation.
virtual void end()=0
End the animation on this node.
virtual bool hasPendingAnimation() const =0
Query node whether it has an animation pending.
NodeState
The current state of this AnimationNode.
@ UNRESOLVED
Unresolved start time.
@ FROZEN
Node is frozen (no longer active, but changes remain in place)
@ RESOLVED
Resolved start time, node will start eventually.
@ INVALID
Invalid state, node is disposed or otherwise invalid.
@ ENDED
Node has completed an active lifecycle, and any effect is removed from the document.
virtual bool resolve()=0
Resolve node start time.
virtual NodeState getState() const =0
Query node state.
virtual bool registerDeactivatingListener(const AnimationNodeSharedPtr &rNotifee)=0
Register a deactivating listener.
virtual void deactivate()=0
Immediately stop this node.
virtual css::uno::Reference< css::animations::XAnimationNode > getXAnimationNode() const =0
Query the corresponding XAnimationNode.
virtual void activate()=0
Immediately start this node.
virtual bool init()=0
Init this node.
virtual void removeEffect()=0
Called by the container to remove the animation effect to make the painted shape correct if it restar...
Disposable interface.
Definition: disposable.hxx:48
::std::shared_ptr< AnimationNode > AnimationNodeSharedPtr