]> www.fi.muni.cz Git - evince.git/blobdiff - backend/ev-link.c
Updated Norwegian bokmål translation. Same.
[evince.git] / backend / ev-link.c
index 071d6af5edbcceaf83afdbd603dc586ce75d6315..b8721d9b5841c349a7d7cf56d234e2d5dae4de85 100644 (file)
@@ -32,7 +32,11 @@ enum {
        PROP_URI,
        PROP_LEFT,
        PROP_TOP,
        PROP_URI,
        PROP_LEFT,
        PROP_TOP,
-       PROP_ZOOM
+       PROP_BOTTOM,
+       PROP_RIGHT,
+       PROP_ZOOM,
+       PROP_FILENAME,
+       PROP_PARAMS
 };
 
 
 };
 
 
@@ -48,10 +52,14 @@ struct _EvLinkClass {
 struct _EvLinkPrivate {
        char *title;
        char *uri;
 struct _EvLinkPrivate {
        char *title;
        char *uri;
+       char *filename;
+       char *params;
        EvLinkType type;
        int page;
        double top;
        double left;
        EvLinkType type;
        int page;
        double top;
        double left;
+       double bottom;
+       double right;
        double zoom;
 };
 
        double zoom;
 };
 
@@ -72,7 +80,10 @@ ev_link_type_get_type (void)
                        { EV_LINK_TYPE_PAGE_XYZ, "EV_LINK_TYPE_PAGE_XYZ", "page-xyz" },
                        { EV_LINK_TYPE_PAGE_FIT, "EV_LINK_TYPE_PAGE_FIT", "page-fit" },
                        { EV_LINK_TYPE_PAGE_FITH, "EV_LINK_TYPE_PAGE_FITH", "page-fith" },
                        { EV_LINK_TYPE_PAGE_XYZ, "EV_LINK_TYPE_PAGE_XYZ", "page-xyz" },
                        { EV_LINK_TYPE_PAGE_FIT, "EV_LINK_TYPE_PAGE_FIT", "page-fit" },
                        { EV_LINK_TYPE_PAGE_FITH, "EV_LINK_TYPE_PAGE_FITH", "page-fith" },
+                       { EV_LINK_TYPE_PAGE_FITV, "EV_LINK_TYPE_PAGE_FITV", "page-fitv" },
+                       { EV_LINK_TYPE_PAGE_FITR, "EV_LINK_TYPE_PAGE_FITR", "page-fitr" },
                        { EV_LINK_TYPE_EXTERNAL_URI, "EV_LINK_TYPE_EXTERNAL_URI", "external" },
                        { EV_LINK_TYPE_EXTERNAL_URI, "EV_LINK_TYPE_EXTERNAL_URI", "external" },
+                       { EV_LINK_TYPE_LAUNCH, "EV_LINK_TYPE_LAUNCH", "launch" },
                        { 0, NULL, NULL }
                 };
 
                        { 0, NULL, NULL }
                 };
 
@@ -130,6 +141,38 @@ ev_link_get_left (EvLink *self)
        return self->priv->left;
 }
 
        return self->priv->left;
 }
 
+double
+ev_link_get_bottom (EvLink *self)
+{
+       g_return_val_if_fail (EV_IS_LINK (self), 0);
+       
+       return self->priv->bottom;
+}
+
+double
+ev_link_get_right (EvLink *self)
+{
+       g_return_val_if_fail (EV_IS_LINK (self), 0);
+       
+       return self->priv->right;
+}
+
+const char *
+ev_link_get_filename (EvLink *link)
+{
+       g_return_val_if_fail (EV_IS_LINK (link), NULL);
+
+       return link->priv->filename;
+}
+
+const char *
+ev_link_get_params (EvLink *link)
+{
+       g_return_val_if_fail (EV_IS_LINK (link), NULL);
+
+       return link->priv->params;
+}
+
 double
 ev_link_get_zoom (EvLink *self)
 {
 double
 ev_link_get_zoom (EvLink *self)
 {
@@ -165,9 +208,19 @@ ev_link_get_property (GObject *object, guint prop_id, GValue *value,
        case PROP_LEFT:
                g_value_set_double (value, self->priv->left);
                break;
        case PROP_LEFT:
                g_value_set_double (value, self->priv->left);
                break;
+       case PROP_BOTTOM:
+               g_value_set_double (value, self->priv->bottom);
+               break;
+       case PROP_RIGHT:
+               g_value_set_double (value, self->priv->left);
+               break;
        case PROP_ZOOM:
                g_value_set_double (value, self->priv->zoom);
                break;
        case PROP_ZOOM:
                g_value_set_double (value, self->priv->zoom);
                break;
+       case PROP_FILENAME:
+               g_value_set_string (value, self->priv->filename);
+       case PROP_PARAMS:
+               g_value_set_string (value, self->priv->params);
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
                                                   prop_id,
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
                                                   prop_id,
@@ -201,9 +254,23 @@ ev_link_set_property (GObject *object, guint prop_id, const GValue *value,
        case PROP_LEFT:
                link->priv->left = g_value_get_double (value);
                break;
        case PROP_LEFT:
                link->priv->left = g_value_get_double (value);
                break;
+       case PROP_BOTTOM:
+               link->priv->bottom = g_value_get_double (value);
+               break;
+       case PROP_RIGHT:
+               link->priv->right = g_value_get_double (value);
+               break;
        case PROP_ZOOM:
                link->priv->zoom = g_value_get_double (value);
                break;
        case PROP_ZOOM:
                link->priv->zoom = g_value_get_double (value);
                break;
+       case PROP_FILENAME:
+               g_free (link->priv->filename);
+               link->priv->filename = g_strdup (g_value_get_string (value));
+               break;
+       case PROP_PARAMS:
+               g_free (link->priv->params);
+               link->priv->params = g_strdup (g_value_get_string (value));
+               break;
 
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
 
        default:
                G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
@@ -232,6 +299,16 @@ ev_window_dispose (GObject *object)
                priv->uri = NULL;
        }
 
                priv->uri = NULL;
        }
 
+       if (priv->filename) {
+               g_free (priv->filename);
+               priv->filename = NULL;
+       }
+
+       if (priv->params) {
+               g_free (priv->params);
+               priv->params = NULL;
+       }
+
        G_OBJECT_CLASS (ev_link_parent_class)->dispose (object);
 }
 
        G_OBJECT_CLASS (ev_link_parent_class)->dispose (object);
 }
 
@@ -271,6 +348,22 @@ ev_link_class_init (EvLinkClass *ev_window_class)
                                                              NULL,
                                                              G_PARAM_READWRITE |
                                                              G_PARAM_CONSTRUCT_ONLY));
                                                              NULL,
                                                              G_PARAM_READWRITE |
                                                              G_PARAM_CONSTRUCT_ONLY));
+       g_object_class_install_property (g_object_class,
+                                        PROP_FILENAME,
+                                        g_param_spec_string ("filename",
+                                                             "Filename",
+                                                             "The link filename",
+                                                             NULL,
+                                                             G_PARAM_READWRITE |
+                                                             G_PARAM_CONSTRUCT_ONLY));
+       g_object_class_install_property (g_object_class,
+                                        PROP_PARAMS,
+                                        g_param_spec_string ("params",
+                                                             "Params",
+                                                             "The link params",
+                                                             NULL,
+                                                             G_PARAM_READWRITE |
+                                                             G_PARAM_CONSTRUCT_ONLY));
        g_object_class_install_property (g_object_class,
                                         PROP_TYPE,
                                         g_param_spec_enum  ("type",
        g_object_class_install_property (g_object_class,
                                         PROP_TYPE,
                                         g_param_spec_enum  ("type",
@@ -310,6 +403,27 @@ ev_link_class_init (EvLinkClass *ev_window_class)
                                                              0,
                                                              G_PARAM_READWRITE |
                                                              G_PARAM_CONSTRUCT_ONLY));
                                                              0,
                                                              G_PARAM_READWRITE |
                                                              G_PARAM_CONSTRUCT_ONLY));
+       g_object_class_install_property (g_object_class,
+                                        PROP_BOTTOM,
+                                        g_param_spec_double ("bottom",
+                                                             "Bottom coordinate",
+                                                             "The bottom coordinate",
+                                                             -G_MAXDOUBLE,
+                                                             G_MAXDOUBLE,
+                                                             0,
+                                                             G_PARAM_READWRITE |
+                                                             G_PARAM_CONSTRUCT_ONLY));
+       g_object_class_install_property (g_object_class,
+                                        PROP_RIGHT,
+                                        g_param_spec_double ("right",
+                                                             "Right coordinate",
+                                                             "The right coordinate",
+                                                             -G_MAXDOUBLE,
+                                                             G_MAXDOUBLE,
+                                                             0,
+                                                             G_PARAM_READWRITE |
+                                                             G_PARAM_CONSTRUCT_ONLY));
+
        g_object_class_install_property (g_object_class,
                                         PROP_ZOOM,
                                         g_param_spec_double ("zoom",
        g_object_class_install_property (g_object_class,
                                         PROP_ZOOM,
                                         g_param_spec_double ("zoom",
@@ -382,6 +496,38 @@ ev_link_new_page_fith (const char *title,
                                      NULL));
 }
 
                                      NULL));
 }
 
+EvLink *
+ev_link_new_page_fitv (const char *title,
+                      int         page,
+                      double      left)
+{
+       return EV_LINK (g_object_new (EV_TYPE_LINK,
+                                     "title", title,
+                                     "page", page,
+                                     "type", EV_LINK_TYPE_PAGE_FITV,
+                                     "left", left,
+                                     NULL));
+}
+
+EvLink *
+ev_link_new_page_fitr (const char     *title,
+                      int             page,
+                      double          left,
+                      double          bottom,
+                      double          right,
+                      double          top)
+{
+       return EV_LINK (g_object_new (EV_TYPE_LINK,
+                                     "title", title,
+                                     "page", page,
+                                     "type", EV_LINK_TYPE_PAGE_FITR,
+                                     "left", left,
+                                     "bottom", bottom,
+                                     "right", right,
+                                     "top", top,
+                                     NULL));
+}
+
 EvLink *
 ev_link_new_external (const char *title, const char *uri)
 {
 EvLink *
 ev_link_new_external (const char *title, const char *uri)
 {
@@ -392,7 +538,18 @@ ev_link_new_external (const char *title, const char *uri)
                                      NULL));
 }
 
                                      NULL));
 }
 
-
+EvLink *
+ev_link_new_launch (const char *title,
+                   const char *filename,
+                   const char *params)
+{
+       return EV_LINK (g_object_new (EV_TYPE_LINK,
+                                     "title", title,
+                                     "filename", filename,
+                                     "params", params,
+                                     "type", EV_LINK_TYPE_LAUNCH,
+                                     NULL));
+}
 
 static void
 ev_link_mapping_free_foreach (EvLinkMapping *mapping)
 
 static void
 ev_link_mapping_free_foreach (EvLinkMapping *mapping)