Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-history.c
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@gnome.org>2005-01-11 11:21:52 (GMT)
committer Marco Pesenti Gritti <marco@src.gnome.org>2005-01-11 11:21:52 (GMT)
commitdbe299f7b2412d318f0eda7c401feba68c8663e3 (patch)
tree3f591b2a03498dc29e62335046c9f8f1d43f33a0 /shell/ev-history.c
parent2ab647bef73e49d2327172c7593a49887c60ff8f (diff)
Implement history dropdowns
2005-01-11 Marco Pesenti Gritti <marco@gnome.org> * shell/ev-history.c: (ev_history_get_property), (ev_history_set_property), (ev_history_class_init), (ev_history_add_page), (ev_history_set_current_index): * shell/ev-navigation-action.c: (ev_navigation_action_set_history), (activate_menu_item_cb), (new_history_menu_item), (build_menu), (ev_navigation_action_finalize): * shell/ev-navigation-action.h: * shell/ev-view.c: (ev_view_set_document), (ev_view_go_back), (ev_view_go_forward), (ev_view_get_find_status_message), (history_index_changed_cb), (ev_view_set_history): * shell/ev-view.h: * shell/ev-window.c: (update_total_pages), (ev_window_open), (update_current_page), (register_custom_actions): Implement history dropdowns
Diffstat (limited to 'shell/ev-history.c')
-rw-r--r--shell/ev-history.c61
1 files changed, 60 insertions, 1 deletions
diff --git a/shell/ev-history.c b/shell/ev-history.c
index a1e7954..08e2d1c 100644
--- a/shell/ev-history.c
+++ b/shell/ev-history.c
@@ -30,6 +30,11 @@ struct _EvHistoryPrivate
int current_index;
};
+enum {
+ PROP_0,
+ PROP_INDEX
+};
+
static void ev_history_init (EvHistory *history);
static void ev_history_class_init (EvHistoryClass *class);
@@ -66,14 +71,66 @@ ev_history_finalize (GObject *object)
}
static void
+ev_history_get_property (GObject *object, guint prop_id, GValue *value,
+ GParamSpec *param_spec)
+{
+ EvHistory *self;
+
+ self = EV_HISTORY (object);
+
+ switch (prop_id) {
+ case PROP_INDEX:
+ g_value_set_int (value, self->priv->current_index);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
+ prop_id,
+ param_spec);
+ break;
+ }
+}
+
+static void
+ev_history_set_property (GObject *object, guint prop_id, const GValue *value,
+ GParamSpec *param_spec)
+{
+ EvHistory *self;
+
+ self = EV_HISTORY (object);
+
+ switch (prop_id) {
+ case PROP_INDEX:
+ ev_history_set_current_index (self, g_value_get_int (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object,
+ prop_id,
+ param_spec);
+ break;
+ }
+}
+
+static void
ev_history_class_init (EvHistoryClass *class)
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
object_class->finalize = ev_history_finalize;
+ object_class->set_property = ev_history_set_property;
+ object_class->get_property = ev_history_get_property;
parent_class = g_type_class_peek_parent (class);
+ g_object_class_install_property (object_class,
+ PROP_INDEX,
+ g_param_spec_int ("index",
+ "Current Index",
+ "The current index",
+ -1,
+ G_MAXINT,
+ 0,
+ G_PARAM_READWRITE));
+
g_type_class_add_private (object_class, sizeof (EvHistoryPrivate));
}
@@ -115,7 +172,7 @@ ev_history_add_page (EvHistory *history, int page)
g_return_if_fail (EV_IS_HISTORY (history));
- title = g_strdup_printf (_("Page %d\n"), page);
+ title = g_strdup_printf (_("Page %d"), page);
link = ev_link_new_page (title, page);
g_free (title);
@@ -156,6 +213,8 @@ ev_history_set_current_index (EvHistory *history, int index)
g_return_if_fail (EV_IS_HISTORY (history));
history->priv->current_index = index;
+
+ g_object_notify (G_OBJECT (history), "index");
}
EvHistory *