glib/demo/utils.c      |   25 +++++++++++++++++++++++++
 glib/poppler-action.cc |   24 ++++++++++++++++++++++++
 glib/poppler-action.h  |   14 +++++++++++++-
 3 files changed, 62 insertions(+), 1 deletion(-)

New commits:
commit c4774fecfe3d523f32d5980f50e31daa798c9692
Author: Carlos Garcia Campos <[email protected]>
Date:   Wed Mar 30 15:08:59 2011 +0200

    glib-demo: show javascript actions in actions view

diff --git a/glib/demo/utils.c b/glib/demo/utils.c
index 14262b9..1e59e10 100644
--- a/glib/demo/utils.c
+++ b/glib/demo/utils.c
@@ -438,6 +438,31 @@ pgd_action_view_set_action (GtkWidget     *action_view,
                gtk_widget_show (button);
        }
                break;
+        case POPPLER_ACTION_JAVASCRIPT: {
+                GtkTextBuffer *buffer;
+                GtkWidget     *textview;
+                GtkWidget     *swindow;
+
+                pgd_table_add_property (GTK_TABLE (table), "<b>Type:</b>", 
"JavaScript", &row);
+
+                buffer = gtk_text_buffer_new (NULL);
+                if (action->javascript.script)
+                        gtk_text_buffer_set_text (buffer, 
action->javascript.script, -1);
+
+                textview = gtk_text_view_new_with_buffer (buffer);
+                gtk_text_view_set_editable (GTK_TEXT_VIEW (textview), FALSE);
+                g_object_unref (buffer);
+
+                swindow = gtk_scrolled_window_new (NULL, NULL);
+                gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow),
+                                                GTK_POLICY_AUTOMATIC, 
GTK_POLICY_AUTOMATIC);
+                gtk_container_add (GTK_CONTAINER (swindow), textview);
+                gtk_widget_show (textview);
+
+                pgd_table_add_property_with_custom_widget (GTK_TABLE (table), 
NULL, swindow, &row);
+                gtk_widget_show (swindow);
+        }
+                break;
        default:
                g_assert_not_reached ();
        }
commit 68bbbe1a3f68d242b35027ae41f5751b02a2a700
Author: José Aliste <[email protected]>
Date:   Tue Mar 29 04:56:37 2011 -0400

    glib: add JavaScript actions

diff --git a/glib/poppler-action.cc b/glib/poppler-action.cc
index ca88ca4..c7ebcdd 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;
        }
@@ -214,6 +218,10 @@ poppler_action_copy (PopplerAction *action)
                }
 
                break;
+       case POPPLER_ACTION_JAVASCRIPT:
+               if (action->javascript.script)
+                       new_action->javascript.script = g_strdup 
(action->javascript.script);
+               break;
        default:
                break;
        }
@@ -514,6 +522,18 @@ build_movie (PopplerDocument *document,
 }
 
 static void
+build_javascript (PopplerAction *action,
+                 LinkJavaScript *link)
+{
+       GooString *script;
+
+       script = link->getScript();
+       if (script)
+               action->javascript.script = _poppler_goo_string_to_utf8 
(script);
+
+}
+
+static void
 build_rendition (PopplerAction *action,
                 LinkRendition *link)
 {
@@ -650,6 +670,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 ())
_______________________________________________
poppler mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to