Hi, the following patch add a wrapper for JavascriptActions to the glib bindings. Comments and review welcome.
Greets José
From f4b0e8d9f038e3ef4033e2c9af45bb48adf0c224 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Aliste?= <[email protected]> Date: Tue, 29 Mar 2011 04:56:37 -0400 Subject: [PATCH] glib: add PopplerActionJavaScript wrapper. --- glib/poppler-action.cc | 22 ++++++++++++++++++++++ glib/poppler-action.h | 14 +++++++++++++- 2 files changed, 35 insertions(+), 1 deletions(-) diff --git a/glib/poppler-action.cc b/glib/poppler-action.cc index ca88ca4..8b95543 100644 --- a/glib/poppler-action.cc +++ b/glib/poppler-action.cc @@ -140,6 +140,10 @@ poppler_action_free (PopplerAction *action) g_list_free (action->ocg_state.state_list); } break; + case POPPLER_ACTION_JAVASCRIPT: + if (action->javascript.script) + g_free (action->javascript.script); + break; default: break; } @@ -514,6 +518,20 @@ build_movie (PopplerDocument *document, } static void +build_javascript (PopplerAction *action, + LinkJavaScript *link) +{ + action->javascript.script = NULL; + if (link) { + GooString *script; + + script = link->getScript(); + if (script) + action->javascript.script = g_strdup (script->getCString ()); + } +} + +static void build_rendition (PopplerAction *action, LinkRendition *link) { @@ -650,6 +668,10 @@ _poppler_action_new (PopplerDocument *document, action->type = POPPLER_ACTION_OCG_STATE; build_ocg_state (document, action, dynamic_cast<LinkOCGState*> (link)); break; + case actionJavaScript: + action->type = POPPLER_ACTION_JAVASCRIPT; + build_javascript (action, dynamic_cast<LinkJavaScript*> (link)); + break; case actionUnknown: default: action->type = POPPLER_ACTION_UNKNOWN; diff --git a/glib/poppler-action.h b/glib/poppler-action.h index 6bb87ba..b3df50b 100644 --- a/glib/poppler-action.h +++ b/glib/poppler-action.h @@ -36,6 +36,7 @@ G_BEGIN_DECLS * @POPPLER_ACTION_MOVIE: play movies. Since 0.14 * @POPPLER_ACTION_RENDITION: play multimedia content. Since 0.14 * @POPPLER_ACTION_OCG_STATE: state of layer. Since 0.14 + * @POPPLER_ACTION_JAVASCRIPT: Javascript. Since 0.18 * * Action types */ @@ -50,7 +51,8 @@ typedef enum POPPLER_ACTION_NAMED, /* named action*/ POPPLER_ACTION_MOVIE, /* movie action */ POPPLER_ACTION_RENDITION, /* rendition action */ - POPPLER_ACTION_OCG_STATE /* Set-OCG-State action */ + POPPLER_ACTION_OCG_STATE, /* Set-OCG-State action */ + POPPLER_ACTION_JAVASCRIPT /* Javascript action */ } PopplerActionType; /** @@ -145,6 +147,7 @@ typedef struct _PopplerActionNamed PopplerActionNamed; typedef struct _PopplerActionMovie PopplerActionMovie; typedef struct _PopplerActionRendition PopplerActionRendition; typedef struct _PopplerActionOCGState PopplerActionOCGState; +typedef struct _PopplerActionJavaScript PopplerActionJavaScript; /** * PopplerDest: @@ -265,6 +268,14 @@ struct _PopplerActionOCGState GList *state_list; }; +struct _PopplerActionJavaScript +{ + PopplerActionType type; + gchar *title; + + gchar *script; +}; + /** * PopplerAction: * @@ -282,6 +293,7 @@ union _PopplerAction PopplerActionMovie movie; PopplerActionRendition rendition; PopplerActionOCGState ocg_state; + PopplerActionJavaScript javascript; }; #define POPPLER_TYPE_ACTION (poppler_action_get_type ()) -- 1.7.3.5
_______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
