fix baseline build (old cairo) - 'cairo_rectangle_int_t' does not name a type
[LibreOffice.git] / slideshow / source / inc / animatableshape.hxx
blob2573eff985a53daf8af7c1f96fa719346eca0cfe
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #ifndef INCLUDED_SLIDESHOW_SOURCE_INC_ANIMATABLESHAPE_HXX
21 #define INCLUDED_SLIDESHOW_SOURCE_INC_ANIMATABLESHAPE_HXX
23 #include <boost/shared_ptr.hpp>
25 #include "shape.hxx"
28 namespace slideshow
30 namespace internal
32 /** Represents an animatable shape.
34 This interface adds animation handling methods to a
35 shape. It allows transparent switching between
36 sprite-based viewing and static painting, depending on
37 whether animations are currently running.
39 class AnimatableShape : public Shape
41 public:
42 // Animation methods
45 /** Notify the Shape that an animation starts now
47 This method enters animation mode on all registered
48 views.
50 @attention This method is supposed to be called only
51 from the LayerManager, since it might involve shifting
52 shapes between different layers (and removing this
53 shape from the background layer in the first place)
55 virtual void enterAnimationMode() = 0;
57 /** Notify the Shape that it is no longer animated
59 This methods requests the Shape to end animation mode
60 on all registered views, if called more or equal the
61 times enterAnimationMode() was called. That is, the
62 Shape only leaves animation mode, if all requested
63 enterAnimationMode() call sites have issued their
64 matching leaveAnimationMode().
66 @attention This method is supposed to be called only
67 from the LayerManager, since it might involve shifting
68 shapes between different layers (and adding this
69 shape to the background layer again)
71 virtual void leaveAnimationMode() = 0;
75 typedef ::boost::shared_ptr< AnimatableShape > AnimatableShapeSharedPtr;
80 #endif // INCLUDED_SLIDESHOW_SOURCE_INC_ANIMATABLESHAPE_HXX
82 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */