| /* PageTransition.h | 
 |  * Copyright (C) 2005, Net Integration Technologies, Inc. | 
 |  * Copyright (C) 2005, Brad Hards <bradh@frogmouth.net> | 
 |  * Copyright (C) 2015, Arseniy Lartsev <arseniy@alumni.chalmers.se> | 
 |  * Copyright (C) 2018, 2021, Albert Astals Cid <aacid@kde.org> | 
 |  * | 
 |  * This program is free software; you can redistribute it and/or modify | 
 |  * it under the terms of the GNU General Public License as published by | 
 |  * the Free Software Foundation; either version 2, or (at your option) | 
 |  * any later version. | 
 |  * | 
 |  * This program is distributed in the hope that it will be useful, | 
 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |  * GNU General Public License for more details. | 
 |  * | 
 |  * You should have received a copy of the GNU General Public License | 
 |  * along with this program; if not, write to the Free Software | 
 |  * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. | 
 |  */ | 
 |  | 
 | #ifndef __PAGETRANSITION_X_H__ | 
 | #define __PAGETRANSITION_X_H__ | 
 |  | 
 | #include "poppler-export.h" | 
 |  | 
 | #include <QtCore/qglobal.h> | 
 |  | 
 | namespace Poppler { | 
 |  | 
 | class PageTransitionParams; | 
 | class PageTransitionData; | 
 |  | 
 | /** | 
 |    \brief Describes how a PDF file viewer shall perform the transition | 
 |    from one page to another | 
 |  | 
 |    In PDF files there is a way to specify if the viewer shall use | 
 |    certain effects to perform the transition from one page to | 
 |    another. This feature can be used, e.g., in a PDF-based beamer | 
 |    presentation. | 
 |  | 
 |    This utility class represents the transition effect, and can be | 
 |    used to extract the information from a PDF object. | 
 | */ | 
 |  | 
 | class POPPLER_QT6_EXPORT PageTransition | 
 | { | 
 | public: | 
 |     /** \brief transition effect that shall be used | 
 |      */ | 
 |     // if changed remember to keep in sync with PageTransition.h enum | 
 |     enum Type | 
 |     { | 
 |         Replace = 0, | 
 |         Split, | 
 |         Blinds, | 
 |         Box, | 
 |         Wipe, | 
 |         Dissolve, | 
 |         Glitter, | 
 |         Fly, | 
 |         Push, | 
 |         Cover, | 
 |         Uncover, | 
 |         Fade | 
 |     }; | 
 |  | 
 |     /** \brief alignment of the transition effect that shall be used | 
 |      */ | 
 |     // if changed remember to keep in sync with PageTransition.h enum | 
 |     enum Alignment | 
 |     { | 
 |         Horizontal = 0, | 
 |         Vertical | 
 |     }; | 
 |  | 
 |     /** \brief direction of the transition effect that shall be used | 
 |      */ | 
 |     // if changed remember to keep in sync with PageTransition.h enum | 
 |     enum Direction | 
 |     { | 
 |         Inward = 0, | 
 |         Outward | 
 |     }; | 
 |  | 
 |     explicit PageTransition(const PageTransitionParams params); | 
 |  | 
 |     /** \brief copy constructor */ | 
 |     PageTransition(const PageTransition &pt); | 
 |  | 
 |     /** \brief assignment operator */ | 
 |     PageTransition &operator=(const PageTransition &other); | 
 |  | 
 |     /** | 
 |        Destructor | 
 |     */ | 
 |     ~PageTransition(); | 
 |  | 
 |     /** | 
 |        \brief Get type of the transition. | 
 |     */ | 
 |     Type type() const; | 
 |  | 
 |     /** | 
 |        \brief Get duration of the transition in seconds | 
 |     */ | 
 |     double durationReal() const; | 
 |  | 
 |     /** | 
 |        \brief Get dimension in which the transition effect occurs. | 
 |     */ | 
 |     Alignment alignment() const; | 
 |  | 
 |     /** | 
 |        \brief Get direction of motion of the transition effect. | 
 |     */ | 
 |     Direction direction() const; | 
 |  | 
 |     /** | 
 |        \brief Get direction in which the transition effect moves. | 
 |     */ | 
 |     int angle() const; | 
 |  | 
 |     /** | 
 |        \brief Get starting or ending scale. | 
 |     */ | 
 |     double scale() const; | 
 |  | 
 |     /** | 
 |        \brief Returns true if the area to be flown is rectangular and | 
 |        opaque. | 
 |     */ | 
 |     bool isRectangular() const; | 
 |  | 
 | private: | 
 |     PageTransitionData *data; | 
 | }; | 
 |  | 
 | } | 
 |  | 
 | #endif |