mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2025-04-10 19:15:13 +00:00
661 lines
17 KiB
Plaintext
661 lines
17 KiB
Plaintext
|
|
/* poppler-link.h: qt interface to poppler
|
||
|
|
* Copyright (C) 2006, 2013, 2016, 2018, 2019, 2021, 2022, Albert Astals Cid <aacid@kde.org>
|
||
|
|
* Copyright (C) 2007-2008, 2010, Pino Toscano <pino@kde.org>
|
||
|
|
* Copyright (C) 2010, 2012, Guillermo Amaral <gamaral@kdab.com>
|
||
|
|
* Copyright (C) 2012, Tobias Koenig <tokoe@kdab.com>
|
||
|
|
* Copyright (C) 2013, Anthony Granger <grangeranthony@gmail.com>
|
||
|
|
* Copyright (C) 2018 Intevation GmbH <intevation@intevation.de>
|
||
|
|
* Copyright (C) 2020, 2021 Oliver Sander <oliver.sander@tu-dresden.de>
|
||
|
|
* Adapting code from
|
||
|
|
* Copyright (C) 2004 by Enrico Ros <eros.kde@email.it>
|
||
|
|
*
|
||
|
|
* 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 _POPPLER_LINK_H_
|
||
|
|
#define _POPPLER_LINK_H_
|
||
|
|
|
||
|
|
#include <QtCore/QString>
|
||
|
|
#include <QtCore/QRectF>
|
||
|
|
#include <QtCore/QSharedDataPointer>
|
||
|
|
#include <QtCore/QVector>
|
||
|
|
#include "poppler-export.h"
|
||
|
|
|
||
|
|
struct Ref;
|
||
|
|
class MediaRendition;
|
||
|
|
|
||
|
|
namespace Poppler {
|
||
|
|
|
||
|
|
class LinkPrivate;
|
||
|
|
class LinkGotoPrivate;
|
||
|
|
class LinkExecutePrivate;
|
||
|
|
class LinkBrowsePrivate;
|
||
|
|
class LinkActionPrivate;
|
||
|
|
class LinkSoundPrivate;
|
||
|
|
class LinkJavaScriptPrivate;
|
||
|
|
class LinkMoviePrivate;
|
||
|
|
class LinkDestinationData;
|
||
|
|
class LinkDestinationPrivate;
|
||
|
|
class LinkRenditionPrivate;
|
||
|
|
class LinkOCGStatePrivate;
|
||
|
|
class LinkHidePrivate;
|
||
|
|
class MediaRendition;
|
||
|
|
class MovieAnnotation;
|
||
|
|
class ScreenAnnotation;
|
||
|
|
class SoundObject;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* \short A destination.
|
||
|
|
*
|
||
|
|
* The LinkDestination class represent a "destination" (in terms of visual
|
||
|
|
* viewport to be displayed) for \link Poppler::LinkGoto GoTo\endlink links,
|
||
|
|
* and items in the table of contents (TOC) of a document.
|
||
|
|
*
|
||
|
|
* Coordinates are in 0..1 range
|
||
|
|
*/
|
||
|
|
class POPPLER_QT6_EXPORT LinkDestination
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
/**
|
||
|
|
* The possible kind of "viewport destination".
|
||
|
|
*/
|
||
|
|
enum Kind
|
||
|
|
{
|
||
|
|
/**
|
||
|
|
* The new viewport is specified in terms of:
|
||
|
|
* - possible new left coordinate (see isChangeLeft() )
|
||
|
|
* - possible new top coordinate (see isChangeTop() )
|
||
|
|
* - possible new zoom level (see isChangeZoom() )
|
||
|
|
*/
|
||
|
|
destXYZ = 1,
|
||
|
|
destFit = 2,
|
||
|
|
destFitH = 3,
|
||
|
|
destFitV = 4,
|
||
|
|
destFitR = 5,
|
||
|
|
destFitB = 6,
|
||
|
|
destFitBH = 7,
|
||
|
|
destFitBV = 8
|
||
|
|
};
|
||
|
|
|
||
|
|
/// \cond PRIVATE
|
||
|
|
explicit LinkDestination(const LinkDestinationData &data);
|
||
|
|
explicit LinkDestination(const QString &description);
|
||
|
|
/// \endcond
|
||
|
|
/**
|
||
|
|
* Copy constructor.
|
||
|
|
*/
|
||
|
|
LinkDestination(const LinkDestination &other);
|
||
|
|
/**
|
||
|
|
* Destructor.
|
||
|
|
*/
|
||
|
|
~LinkDestination();
|
||
|
|
|
||
|
|
// Accessors.
|
||
|
|
/**
|
||
|
|
* The kind of destination.
|
||
|
|
*/
|
||
|
|
Kind kind() const;
|
||
|
|
/**
|
||
|
|
* Which page is the target of this destination.
|
||
|
|
*
|
||
|
|
* \note this number is 1-based, so for a 5 pages document the
|
||
|
|
* valid page numbers go from 1 to 5 (both included).
|
||
|
|
*/
|
||
|
|
int pageNumber() const;
|
||
|
|
/**
|
||
|
|
* The new left for the viewport of the target page, in case
|
||
|
|
* it is specified to be changed (see isChangeLeft() )
|
||
|
|
*/
|
||
|
|
double left() const;
|
||
|
|
double bottom() const;
|
||
|
|
double right() const;
|
||
|
|
/**
|
||
|
|
* The new top for the viewport of the target page, in case
|
||
|
|
* it is specified to be changed (see isChangeTop() )
|
||
|
|
*/
|
||
|
|
double top() const;
|
||
|
|
double zoom() const;
|
||
|
|
/**
|
||
|
|
* Whether the left of the viewport on the target page should
|
||
|
|
* be changed.
|
||
|
|
*
|
||
|
|
* \see left()
|
||
|
|
*/
|
||
|
|
bool isChangeLeft() const;
|
||
|
|
/**
|
||
|
|
* Whether the top of the viewport on the target page should
|
||
|
|
* be changed.
|
||
|
|
*
|
||
|
|
* \see top()
|
||
|
|
*/
|
||
|
|
bool isChangeTop() const;
|
||
|
|
/**
|
||
|
|
* Whether the zoom level should be changed.
|
||
|
|
*
|
||
|
|
* \see zoom()
|
||
|
|
*/
|
||
|
|
bool isChangeZoom() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Return a string repesentation of this destination.
|
||
|
|
*/
|
||
|
|
QString toString() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Return the name of this destination.
|
||
|
|
*/
|
||
|
|
QString destinationName() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Assignment operator.
|
||
|
|
*/
|
||
|
|
LinkDestination &operator=(const LinkDestination &other);
|
||
|
|
|
||
|
|
private:
|
||
|
|
QSharedDataPointer<LinkDestinationPrivate> d;
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* \short Encapsulates data that describes a link.
|
||
|
|
*
|
||
|
|
* This is the base class for links. It makes mandatory for inherited
|
||
|
|
* kind of links to reimplement the linkType() method and return the type of
|
||
|
|
* the link described by the reimplemented class.
|
||
|
|
*/
|
||
|
|
class POPPLER_QT6_EXPORT Link
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
/// \cond PRIVATE
|
||
|
|
explicit Link(const QRectF &linkArea);
|
||
|
|
/// \endcond
|
||
|
|
|
||
|
|
/**
|
||
|
|
* The possible kinds of link.
|
||
|
|
*
|
||
|
|
* Inherited classes must return an unique identifier
|
||
|
|
*/
|
||
|
|
enum LinkType
|
||
|
|
{
|
||
|
|
None, ///< Unknown link
|
||
|
|
Goto, ///< A "Go To" link
|
||
|
|
Execute, ///< A command to be executed
|
||
|
|
Browse, ///< An URL to be browsed (eg "http://poppler.freedesktop.org")
|
||
|
|
Action, ///< A "standard" action to be executed in the viewer
|
||
|
|
Sound, ///< A link representing a sound to be played
|
||
|
|
Movie, ///< An action to be executed on a movie
|
||
|
|
Rendition, ///< A rendition link
|
||
|
|
JavaScript, ///< A JavaScript code to be interpreted
|
||
|
|
OCGState, ///< An Optional Content Group state change
|
||
|
|
Hide, ///< An action to hide a field
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* The type of this link.
|
||
|
|
*/
|
||
|
|
virtual LinkType linkType() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Destructor.
|
||
|
|
*/
|
||
|
|
virtual ~Link();
|
||
|
|
|
||
|
|
/**
|
||
|
|
* The area of a Page where the link should be active.
|
||
|
|
*
|
||
|
|
* \note this can be a null rect, in this case the link represents
|
||
|
|
* a general action. The area is given in 0..1 range
|
||
|
|
*/
|
||
|
|
QRectF linkArea() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Get the next links to be activated / executed after this link.
|
||
|
|
*
|
||
|
|
* \note The caller does not get ownership of the returned objects.
|
||
|
|
*/
|
||
|
|
QVector<Link *> nextLinks() const;
|
||
|
|
|
||
|
|
protected:
|
||
|
|
/// \cond PRIVATE
|
||
|
|
explicit Link(LinkPrivate &dd);
|
||
|
|
Q_DECLARE_PRIVATE(Link)
|
||
|
|
LinkPrivate *d_ptr;
|
||
|
|
/// \endcond
|
||
|
|
|
||
|
|
private:
|
||
|
|
Q_DISABLE_COPY(Link)
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* \brief Viewport reaching request.
|
||
|
|
*
|
||
|
|
* With a LinkGoto link, the document requests the specified viewport to be
|
||
|
|
* reached (aka, displayed in a viewer). Furthermore, if a file name is specified,
|
||
|
|
* then the destination refers to that document (and not to the document the
|
||
|
|
* current LinkGoto belongs to).
|
||
|
|
*/
|
||
|
|
class POPPLER_QT6_EXPORT LinkGoto : public Link
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
/**
|
||
|
|
* Create a new Goto link.
|
||
|
|
*
|
||
|
|
* \param linkArea the active area of the link
|
||
|
|
* \param extFileName if not empty, the file name to be open
|
||
|
|
* \param destination the destination to be reached
|
||
|
|
*/
|
||
|
|
LinkGoto(const QRectF &linkArea, const QString &extFileName, const LinkDestination &destination);
|
||
|
|
/**
|
||
|
|
* Destructor.
|
||
|
|
*/
|
||
|
|
~LinkGoto() override;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Whether the destination is in an external document
|
||
|
|
* (i.e. not the current document)
|
||
|
|
*/
|
||
|
|
bool isExternal() const;
|
||
|
|
// query for goto parameters
|
||
|
|
/**
|
||
|
|
* The file name of the document the destination() refers to,
|
||
|
|
* or an empty string in case it refers to the current document.
|
||
|
|
*/
|
||
|
|
QString fileName() const;
|
||
|
|
/**
|
||
|
|
* The destination to reach.
|
||
|
|
*/
|
||
|
|
LinkDestination destination() const;
|
||
|
|
LinkType linkType() const override;
|
||
|
|
|
||
|
|
private:
|
||
|
|
Q_DECLARE_PRIVATE(LinkGoto)
|
||
|
|
Q_DISABLE_COPY(LinkGoto)
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* \brief Generic execution request.
|
||
|
|
*
|
||
|
|
* The LinkExecute link represent a "file name" execution request. The result
|
||
|
|
* depends on the \link fileName() file name\endlink:
|
||
|
|
* - if it is a document, then it is requested to be open
|
||
|
|
* - otherwise, it represents an executable to be run with the specified parameters
|
||
|
|
*/
|
||
|
|
class POPPLER_QT6_EXPORT LinkExecute : public Link
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
/**
|
||
|
|
* The file name to be executed
|
||
|
|
*/
|
||
|
|
QString fileName() const;
|
||
|
|
/**
|
||
|
|
* The parameters for the command.
|
||
|
|
*/
|
||
|
|
QString parameters() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Create a new Execute link.
|
||
|
|
*
|
||
|
|
* \param linkArea the active area of the link
|
||
|
|
* \param file the file name to be open, or the program to be execute
|
||
|
|
* \param params the parameters for the program to execute
|
||
|
|
*/
|
||
|
|
LinkExecute(const QRectF &linkArea, const QString &file, const QString ¶ms);
|
||
|
|
/**
|
||
|
|
* Destructor.
|
||
|
|
*/
|
||
|
|
~LinkExecute() override;
|
||
|
|
LinkType linkType() const override;
|
||
|
|
|
||
|
|
private:
|
||
|
|
Q_DECLARE_PRIVATE(LinkExecute)
|
||
|
|
Q_DISABLE_COPY(LinkExecute)
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* \brief An URL to browse.
|
||
|
|
*
|
||
|
|
* The LinkBrowse link holds a URL (eg 'http://poppler.freedesktop.org',
|
||
|
|
* 'mailto:john@some.org', etc) to be open.
|
||
|
|
*
|
||
|
|
* The format of the URL is specified by RFC 2396 (http://www.ietf.org/rfc/rfc2396.txt)
|
||
|
|
*/
|
||
|
|
class POPPLER_QT6_EXPORT LinkBrowse : public Link
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
/**
|
||
|
|
* The URL to open
|
||
|
|
*/
|
||
|
|
QString url() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Create a new browse link.
|
||
|
|
*
|
||
|
|
* \param linkArea the active area of the link
|
||
|
|
* \param url the URL to be open
|
||
|
|
*/
|
||
|
|
LinkBrowse(const QRectF &linkArea, const QString &url);
|
||
|
|
/**
|
||
|
|
* Destructor.
|
||
|
|
*/
|
||
|
|
~LinkBrowse() override;
|
||
|
|
LinkType linkType() const override;
|
||
|
|
|
||
|
|
private:
|
||
|
|
Q_DECLARE_PRIVATE(LinkBrowse)
|
||
|
|
Q_DISABLE_COPY(LinkBrowse)
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* \brief "Standard" action request.
|
||
|
|
*
|
||
|
|
* The LinkAction class represents a link that request a "standard" action
|
||
|
|
* to be performed by the viewer on the displayed document.
|
||
|
|
*/
|
||
|
|
class POPPLER_QT6_EXPORT LinkAction : public Link
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
/**
|
||
|
|
* The possible types of actions
|
||
|
|
*/
|
||
|
|
enum ActionType
|
||
|
|
{
|
||
|
|
PageFirst = 1,
|
||
|
|
PagePrev = 2,
|
||
|
|
PageNext = 3,
|
||
|
|
PageLast = 4,
|
||
|
|
HistoryBack = 5,
|
||
|
|
HistoryForward = 6,
|
||
|
|
Quit = 7,
|
||
|
|
Presentation = 8,
|
||
|
|
EndPresentation = 9,
|
||
|
|
Find = 10,
|
||
|
|
GoToPage = 11,
|
||
|
|
Close = 12,
|
||
|
|
Print = 13,
|
||
|
|
SaveAs = 14 ///< \since 22.04
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* The action of the current LinkAction
|
||
|
|
*/
|
||
|
|
ActionType actionType() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Create a new Action link, that executes a specified action
|
||
|
|
* on the document.
|
||
|
|
*
|
||
|
|
* \param linkArea the active area of the link
|
||
|
|
* \param actionType which action should be executed
|
||
|
|
*/
|
||
|
|
LinkAction(const QRectF &linkArea, ActionType actionType);
|
||
|
|
/**
|
||
|
|
* Destructor.
|
||
|
|
*/
|
||
|
|
~LinkAction() override;
|
||
|
|
LinkType linkType() const override;
|
||
|
|
|
||
|
|
private:
|
||
|
|
Q_DECLARE_PRIVATE(LinkAction)
|
||
|
|
Q_DISABLE_COPY(LinkAction)
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Sound: a sound to be played.
|
||
|
|
*/
|
||
|
|
class POPPLER_QT6_EXPORT LinkSound : public Link
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
// create a Link_Sound
|
||
|
|
LinkSound(const QRectF &linkArea, double volume, bool sync, bool repeat, bool mix, SoundObject *sound);
|
||
|
|
/**
|
||
|
|
* Destructor.
|
||
|
|
*/
|
||
|
|
~LinkSound() override;
|
||
|
|
|
||
|
|
LinkType linkType() const override;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* The volume to be used when playing the sound.
|
||
|
|
*
|
||
|
|
* The volume is in the range [ -1, 1 ], where:
|
||
|
|
* - a negative number: no volume (mute)
|
||
|
|
* - 1: full volume
|
||
|
|
*/
|
||
|
|
double volume() const;
|
||
|
|
/**
|
||
|
|
* Whether the playback of the sound should be synchronous
|
||
|
|
* (thus blocking, waiting for the end of the sound playback).
|
||
|
|
*/
|
||
|
|
bool synchronous() const;
|
||
|
|
/**
|
||
|
|
* Whether the sound should be played continuously (that is,
|
||
|
|
* started again when it ends)
|
||
|
|
*/
|
||
|
|
bool repeat() const;
|
||
|
|
/**
|
||
|
|
* Whether the playback of this sound can be mixed with
|
||
|
|
* playbacks with other sounds of the same document.
|
||
|
|
*
|
||
|
|
* \note When false, any other playback must be stopped before
|
||
|
|
* playing the sound.
|
||
|
|
*/
|
||
|
|
bool mix() const;
|
||
|
|
/**
|
||
|
|
* The sound object to be played
|
||
|
|
*/
|
||
|
|
SoundObject *sound() const;
|
||
|
|
|
||
|
|
private:
|
||
|
|
Q_DECLARE_PRIVATE(LinkSound)
|
||
|
|
Q_DISABLE_COPY(LinkSound)
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Rendition: Rendition link.
|
||
|
|
*/
|
||
|
|
class POPPLER_QT6_EXPORT LinkRendition : public Link
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
/**
|
||
|
|
* Describes the possible rendition actions.
|
||
|
|
*/
|
||
|
|
enum RenditionAction
|
||
|
|
{
|
||
|
|
NoRendition,
|
||
|
|
PlayRendition,
|
||
|
|
StopRendition,
|
||
|
|
PauseRendition,
|
||
|
|
ResumeRendition
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Create a new rendition link.
|
||
|
|
*
|
||
|
|
* \param linkArea the active area of the link
|
||
|
|
* \param rendition the media rendition object. Ownership is taken
|
||
|
|
* \param operation the numeric operation (action) (@see ::LinkRendition::RenditionOperation)
|
||
|
|
* \param script the java script code
|
||
|
|
* \param annotationReference the object reference of the screen annotation associated with this rendition action
|
||
|
|
*/
|
||
|
|
LinkRendition(const QRectF &linkArea, ::MediaRendition *rendition, int operation, const QString &script, const Ref annotationReference);
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Destructor.
|
||
|
|
*/
|
||
|
|
~LinkRendition() override;
|
||
|
|
|
||
|
|
LinkType linkType() const override;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns the media rendition object if the redition provides one, @c 0 otherwise
|
||
|
|
*/
|
||
|
|
MediaRendition *rendition() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns the action that should be executed if a rendition object is provided.
|
||
|
|
*/
|
||
|
|
RenditionAction action() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* The JS code that shall be executed or an empty string.
|
||
|
|
*/
|
||
|
|
QString script() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Returns whether the given @p annotation is the referenced screen annotation for this rendition @p link.
|
||
|
|
*/
|
||
|
|
bool isReferencedAnnotation(const ScreenAnnotation *annotation) const;
|
||
|
|
|
||
|
|
private:
|
||
|
|
Q_DECLARE_PRIVATE(LinkRendition)
|
||
|
|
Q_DISABLE_COPY(LinkRendition)
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* JavaScript: a JavaScript code to be interpreted.
|
||
|
|
*/
|
||
|
|
class POPPLER_QT6_EXPORT LinkJavaScript : public Link
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
/**
|
||
|
|
* Create a new JavaScript link.
|
||
|
|
*
|
||
|
|
* \param linkArea the active area of the link
|
||
|
|
* \param js the JS code to be interpreted
|
||
|
|
*/
|
||
|
|
LinkJavaScript(const QRectF &linkArea, const QString &js);
|
||
|
|
/**
|
||
|
|
* Destructor.
|
||
|
|
*/
|
||
|
|
~LinkJavaScript() override;
|
||
|
|
|
||
|
|
LinkType linkType() const override;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* The JS code
|
||
|
|
*/
|
||
|
|
QString script() const;
|
||
|
|
|
||
|
|
private:
|
||
|
|
Q_DECLARE_PRIVATE(LinkJavaScript)
|
||
|
|
Q_DISABLE_COPY(LinkJavaScript)
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Movie: a movie to be played.
|
||
|
|
*/
|
||
|
|
class POPPLER_QT6_EXPORT LinkMovie : public Link
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
/**
|
||
|
|
* Describes the operation to be performed on the movie.
|
||
|
|
*/
|
||
|
|
enum Operation
|
||
|
|
{
|
||
|
|
Play,
|
||
|
|
Stop,
|
||
|
|
Pause,
|
||
|
|
Resume
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Create a new Movie link.
|
||
|
|
*
|
||
|
|
* \param linkArea the active area of the link
|
||
|
|
* \param operation the operation to be performed on the movie
|
||
|
|
* \param annotationTitle the title of the movie annotation identifying the movie to be played
|
||
|
|
* \param annotationReference the object reference of the movie annotation identifying the movie to be played
|
||
|
|
*
|
||
|
|
* Note: This constructor is supposed to be used by Poppler::Page only.
|
||
|
|
*/
|
||
|
|
LinkMovie(const QRectF &linkArea, Operation operation, const QString &annotationTitle, const Ref annotationReference);
|
||
|
|
/**
|
||
|
|
* Destructor.
|
||
|
|
*/
|
||
|
|
~LinkMovie() override;
|
||
|
|
LinkType linkType() const override;
|
||
|
|
/**
|
||
|
|
* Returns the operation to be performed on the movie.
|
||
|
|
*/
|
||
|
|
Operation operation() const;
|
||
|
|
/**
|
||
|
|
* Returns whether the given @p annotation is the referenced movie annotation for this movie @p link.
|
||
|
|
*/
|
||
|
|
bool isReferencedAnnotation(const MovieAnnotation *annotation) const;
|
||
|
|
|
||
|
|
private:
|
||
|
|
Q_DECLARE_PRIVATE(LinkMovie)
|
||
|
|
Q_DISABLE_COPY(LinkMovie)
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* OCGState: an optional content group state change.
|
||
|
|
*/
|
||
|
|
class POPPLER_QT6_EXPORT LinkOCGState : public Link
|
||
|
|
{
|
||
|
|
friend class OptContentModel;
|
||
|
|
|
||
|
|
public:
|
||
|
|
/**
|
||
|
|
* Create a new OCGState link. This is only used by Poppler::Page.
|
||
|
|
*/
|
||
|
|
explicit LinkOCGState(LinkOCGStatePrivate *ocgp);
|
||
|
|
/**
|
||
|
|
* Destructor.
|
||
|
|
*/
|
||
|
|
~LinkOCGState() override;
|
||
|
|
|
||
|
|
LinkType linkType() const override;
|
||
|
|
|
||
|
|
private:
|
||
|
|
Q_DECLARE_PRIVATE(LinkOCGState)
|
||
|
|
Q_DISABLE_COPY(LinkOCGState)
|
||
|
|
};
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Hide: an action to show / hide a field.
|
||
|
|
*/
|
||
|
|
class POPPLER_QT6_EXPORT LinkHide : public Link
|
||
|
|
{
|
||
|
|
public:
|
||
|
|
/**
|
||
|
|
* Create a new Hide link. This is only used by Poppler::Page.
|
||
|
|
*/
|
||
|
|
explicit LinkHide(LinkHidePrivate *lhidep);
|
||
|
|
/**
|
||
|
|
* Destructor.
|
||
|
|
*/
|
||
|
|
~LinkHide() override;
|
||
|
|
|
||
|
|
LinkType linkType() const override;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* The fully qualified target names of the action.
|
||
|
|
*/
|
||
|
|
QVector<QString> targets() const;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Should this action change the visibility of the target to true.
|
||
|
|
*/
|
||
|
|
bool isShowAction() const;
|
||
|
|
|
||
|
|
private:
|
||
|
|
Q_DECLARE_PRIVATE(LinkHide)
|
||
|
|
Q_DISABLE_COPY(LinkHide)
|
||
|
|
};
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif
|