1/* PageTransition.cc
2 * Copyright (C) 2005, Net Integration Technologies, Inc.
3 * Copyright (C) 2015, Arseniy Lartsev <arseniy@alumni.chalmers.se>
4 * Copyright (C) 2019, 2021, Albert Astals Cid <aacid@kde.org>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2, or (at your option)
9 * any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
19 */
20
21#ifndef PAGE_TRANSITION_H
22#define PAGE_TRANSITION_H
23
24#include "Object.h"
25
26//------------------------------------------------------------------------
27// PageTransition
28//------------------------------------------------------------------------
29
30// if changed remember to keep in sync with frontend enums
31enum PageTransitionType
32{
33 transitionReplace = 0,
34 transitionSplit,
35 transitionBlinds,
36 transitionBox,
37 transitionWipe,
38 transitionDissolve,
39 transitionGlitter,
40 transitionFly,
41 transitionPush,
42 transitionCover,
43 transitionUncover,
44 transitionFade
45};
46
47// if changed remember to keep in sync with frontend enums
48enum PageTransitionAlignment
49{
50 transitionHorizontal = 0,
51 transitionVertical
52};
53
54// if changed remember to keep in sync with frontend enums
55enum PageTransitionDirection
56{
57 transitionInward = 0,
58 transitionOutward
59};
60
61class POPPLER_PRIVATE_EXPORT PageTransition
62{
63public:
64 // Construct a Page Transition.
65 explicit PageTransition(Object *trans);
66
67 // Destructor.
68 ~PageTransition();
69
70 // Was the Page Transition created successfully?
71 bool isOk() const { return ok; }
72
73 // Get type
74 PageTransitionType getType() const { return type; }
75
76 // Get duration
77 double getDuration() const { return duration; }
78
79 // Get alignment
80 PageTransitionAlignment getAlignment() const { return alignment; }
81
82 // Get direction
83 PageTransitionDirection getDirection() const { return direction; }
84
85 // Get angle
86 int getAngle() const { return angle; }
87
88 // Get scale
89 double getScale() const { return scale; }
90
91 // Is rectangular?
92 bool isRectangular() const { return rectangular; }
93
94private:
95 PageTransitionType type; // transition style
96 double duration; // duration of the effect in seconds
97 PageTransitionAlignment alignment; // dimension of the effect
98 PageTransitionDirection direction; // direction of motion
99 int angle; // direction in degrees
100 double scale; // scale
101 bool rectangular; // is the area to be flown in rectangular?
102 bool ok; // set if created successfully
103};
104
105#endif /* PAGE_TRANSITION_H */
106

source code of poppler/poppler/PageTransition.h