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))
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);
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)
{
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);
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
static void
ev_page_action_finalize (GObject *object)
{
- parent_class->finalize (object);
+ G_OBJECT_CLASS (ev_page_action_parent_class)->finalize (object);
}
static void
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;