]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-page-action.c
Updated German translation.
[evince.git] / shell / ev-page-action.c
index a13d61e2d05ff834f80762c30c7256e8dec058a2..9e327077e3a8fefe0789990c4493a18bd2c2f148 100644 (file)
@@ -54,8 +54,6 @@ enum
 
 static guint signals[LAST_SIGNAL] = { 0 };
 
-static GObjectClass *parent_class = NULL;
-
 G_DEFINE_TYPE (EvPageAction, ev_page_action, GTK_TYPE_ACTION)
 
 #define EV_PAGE_ACTION_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EV_TYPE_PAGE_ACTION, EvPageActionPrivate))
@@ -84,7 +82,7 @@ update_spin (GtkAction *action, gpointer dummy, GtkWidget *proxy)
 
        value = gtk_spin_button_get_value (GTK_SPIN_BUTTON (spin));
 
-       if (value != page->priv->current_page)
+       if (value != page->priv->current_page )
        {
                gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin),
                                           page->priv->current_page);
@@ -101,6 +99,14 @@ value_changed_cb (GtkWidget *spin, GtkAction *action)
        g_signal_emit (action, signals[GOTO_PAGE_SIGNAL], 0, value);
 }
 
+static void
+total_pages_changed_cb (EvPageAction *action, GParamSpec *pspec,
+                       GtkSpinButton *spin)
+{
+       gtk_spin_button_set_range (GTK_SPIN_BUTTON (spin), 1, 
+                                  action->priv->total_pages);
+}
+
 static GtkWidget *
 create_tool_item (GtkAction *action)
 {
@@ -118,6 +124,9 @@ create_tool_item (GtkAction *action)
        g_object_set_data (G_OBJECT (item), "spin", spin);
        gtk_widget_show (spin);
 
+       g_signal_connect (action, "notify::total-pages",
+                         G_CALLBACK (total_pages_changed_cb),
+                         spin);
        g_signal_connect (spin, "value_changed",
                          G_CALLBACK (value_changed_cb),
                          action);
@@ -147,7 +156,7 @@ connect_proxy (GtkAction *action, GtkWidget *proxy)
                                         proxy, 0);
        }
 
-       GTK_ACTION_CLASS (parent_class)->connect_proxy (action, proxy);
+       GTK_ACTION_CLASS (ev_page_action_parent_class)->connect_proxy (action, proxy);
 }
 
 static void
@@ -159,7 +168,7 @@ ev_page_action_init (EvPageAction *action)
 static void
 ev_page_action_finalize (GObject *object)
 {
-       parent_class->finalize (object);
+       G_OBJECT_CLASS (ev_page_action_parent_class)->finalize (object);
 }
 
 static void
@@ -222,8 +231,6 @@ ev_page_action_class_init (EvPageActionClass *class)
        object_class->set_property = ev_page_action_set_property;
        object_class->get_property = ev_page_action_get_property;
 
-       parent_class = g_type_class_peek_parent (class);
-
        action_class->toolbar_item_type = GTK_TYPE_TOOL_ITEM;
        action_class->create_tool_item = create_tool_item;
        action_class->connect_proxy = connect_proxy;