|
|
|
/* PageTransition.h
|
|
|
|
* Copyright (C) 2005, Net Integration Technologies, Inc.
|
|
|
|
* Copyright (C) 2005, Brad Hards <bradh@frogmouth.net>
|
|
|
|
*
|
|
|
|
* 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__
|
|
|
|
|
|
|
|
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 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
|
|
|
|
};
|
|
|
|
|
|
|
|
/** \brief Construct a new PageTransition object from a page dictionary.
|
|
|
|
|
|
|
|
Users of the library will rarely need to construct a
|
|
|
|
PageTransition object themselves. Instead, the method
|
|
|
|
Poppler::Page::transition() can be used to find out if a certain
|
|
|
|
transition effect is specified.
|
|
|
|
|
|
|
|
@warning In case or error, this method will print an error message to stderr,
|
|
|
|
and construct a default object.
|
|
|
|
|
|
|
|
@param params an object whose dictionary will be read and
|
|
|
|
parsed. This must be a valid object, whose dictionaries are
|
|
|
|
accessed by the constructor. The object is only accessed by this
|
|
|
|
constructor, and may be deleted after the constructor returns.
|
|
|
|
*/
|
|
|
|
PageTransition(const PageTransitionParams ¶ms);
|
|
|
|
|
|
|
|
/** \brief copy constructor */
|
|
|
|
PageTransition(const PageTransition &pt);
|
|
|
|
|
|
|
|
/**
|
|
|
|
Destructor
|
|
|
|
*/
|
|
|
|
~PageTransition();
|
|
|
|
|
|
|
|
/**
|
|
|
|
\brief Get type of the transition.
|
|
|
|
*/
|
|
|
|
Type type() const;
|
|
|
|
|
|
|
|
/**
|
|
|
|
\brief Get duration of the transition in seconds.
|
|
|
|
*/
|
|
|
|
int duration() 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
|