X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-page-action.c;h=9e327077e3a8fefe0789990c4493a18bd2c2f148;hb=d58fdf40717bb64e9967670918a4f3f909bd304f;hp=a13d61e2d05ff834f80762c30c7256e8dec058a2;hpb=d1e23d13d52f06f2aba2ece7ff17091110d8a3bb;p=evince.git diff --git a/shell/ev-page-action.c b/shell/ev-page-action.c index a13d61e2..9e327077 100644 --- a/shell/ev-page-action.c +++ b/shell/ev-page-action.c @@ -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;