blob: 24986f1fbe672a986c527f1daacc2b211f31f086 [file] [log] [blame]
/* poppler-action.h: glib interface to poppler
* Copyright (C) 2004, Red Hat, Inc.
*
* 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_ACTION_H__
#define __POPPLER_ACTION_H__
#include <glib-object.h>
#include "poppler.h"
G_BEGIN_DECLS
typedef enum
{
POPPLER_ACTION_UNKNOWN, /* unknown action */
POPPLER_ACTION_NONE, /* no action specified */
POPPLER_ACTION_GOTO_DEST, /* go to destination */
POPPLER_ACTION_GOTO_REMOTE, /* go to destination in new file */
POPPLER_ACTION_LAUNCH, /* launch app (or open document) */
POPPLER_ACTION_URI, /* URI */
POPPLER_ACTION_NAMED, /* named action*/
POPPLER_ACTION_MOVIE, /* movie action */
POPPLER_ACTION_RENDITION, /* rendition action */
POPPLER_ACTION_OCG_STATE /* Set-OCG-State action */
} PopplerActionType;
typedef enum
{
POPPLER_DEST_UNKNOWN,
POPPLER_DEST_XYZ,
POPPLER_DEST_FIT,
POPPLER_DEST_FITH,
POPPLER_DEST_FITV,
POPPLER_DEST_FITR,
POPPLER_DEST_FITB,
POPPLER_DEST_FITBH,
POPPLER_DEST_FITBV,
POPPLER_DEST_NAMED
} PopplerDestType;
typedef enum
{
POPPLER_ACTION_MOVIE_PLAY,
POPPLER_ACTION_MOVIE_PAUSE,
POPPLER_ACTION_MOVIE_RESUME,
POPPLER_ACTION_MOVIE_STOP
} PopplerActionMovieOperation;
typedef enum
{
POPPLER_ACTION_LAYER_ON,
POPPLER_ACTION_LAYER_OFF,
POPPLER_ACTION_LAYER_TOGGLE
} PopplerActionLayerAction;
/* Define the PopplerAction types */
typedef struct _PopplerActionAny PopplerActionAny;
typedef struct _PopplerActionGotoDest PopplerActionGotoDest;
typedef struct _PopplerActionGotoRemote PopplerActionGotoRemote;
typedef struct _PopplerActionLaunch PopplerActionLaunch;
typedef struct _PopplerActionUri PopplerActionUri;
typedef struct _PopplerActionNamed PopplerActionNamed;
typedef struct _PopplerActionMovie PopplerActionMovie;
typedef struct _PopplerActionRendition PopplerActionRendition;
typedef struct _PopplerActionOCGState PopplerActionOCGState;
struct _PopplerDest
{
PopplerDestType type;
int page_num;
double left;
double bottom;
double right;
double top;
double zoom;
gchar *named_dest;
guint change_left : 1;
guint change_top : 1;
guint change_zoom : 1;
};
struct _PopplerActionLayer
{
PopplerActionLayerAction action;
GList *layers;
};
struct _PopplerActionAny
{
PopplerActionType type;
gchar *title;
};
struct _PopplerActionGotoDest
{
PopplerActionType type;
gchar *title;
PopplerDest *dest;
};
struct _PopplerActionGotoRemote
{
PopplerActionType type;
gchar *title;
gchar *file_name;
PopplerDest *dest;
};
struct _PopplerActionLaunch
{
PopplerActionType type;
gchar *title;
gchar *file_name;
gchar *params;
};
struct _PopplerActionUri
{
PopplerActionType type;
gchar *title;
char *uri;
};
struct _PopplerActionNamed
{
PopplerActionType type;
gchar *title;
gchar *named_dest;
};
struct _PopplerActionMovie
{
PopplerActionType type;
gchar *title;
PopplerActionMovieOperation operation;
PopplerMovie *movie;
};
struct _PopplerActionRendition
{
PopplerActionType type;
gchar *title;
gint op;
PopplerMedia *media;
};
struct _PopplerActionOCGState
{
PopplerActionType type;
gchar *title;
GList *state_list;
};
union _PopplerAction
{
PopplerActionType type;
PopplerActionAny any;
PopplerActionGotoDest goto_dest;
PopplerActionGotoRemote goto_remote;
PopplerActionLaunch launch;
PopplerActionUri uri;
PopplerActionNamed named;
PopplerActionMovie movie;
PopplerActionRendition rendition;
PopplerActionOCGState ocg_state;
};
#define POPPLER_TYPE_ACTION (poppler_action_get_type ())
#define POPPLER_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), POPPLER_TYPE_ACTION, PopplerAction))
GType poppler_action_get_type (void) G_GNUC_CONST;
void poppler_action_free (PopplerAction *action);
PopplerAction *poppler_action_copy (PopplerAction *action);
#define POPPLER_TYPE_DEST (poppler_dest_get_type ())
GType poppler_dest_get_type (void) G_GNUC_CONST;
void poppler_dest_free (PopplerDest *dest);
PopplerDest *poppler_dest_copy (PopplerDest *dest);
G_END_DECLS
#endif /* __POPPLER_GLIB_H__ */