[libchamplain] local-rendering-demo: Add loading icon for the NetworkMapDataSource
- From: Pierre-Luc Beaudoin <plbeaudoin src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [libchamplain] local-rendering-demo: Add loading icon for the NetworkMapDataSource
- Date: Sun, 24 Jan 2010 20:11:56 +0000 (UTC)
commit 67652a262782b88ec71e75b6d33627e986281ce2
Author: Simon Wenner <simon wenner ch>
Date: Mon Jul 27 23:00:48 2009 +0200
local-rendering-demo: Add loading icon for the NetworkMapDataSource
demos/local-rendering.c | 28 +++++++++++++++++++++++++++-
1 files changed, 27 insertions(+), 1 deletions(-)
---
diff --git a/demos/local-rendering.c b/demos/local-rendering.c
index a1b4148..7885667 100644
--- a/demos/local-rendering.c
+++ b/demos/local-rendering.c
@@ -31,7 +31,7 @@ static const char *maps[] = { "schaffhausen.osm", "las_palmas.osm" };
static const char *rules[] = { "default-rules.xml", "high-contrast.xml" };
static GtkWidget *memphis_box, *memphis_net_box, *memphis_local_box;
-static GtkWidget *rules_tree_view, *bg_button;
+static GtkWidget *rules_tree_view, *bg_button, *map_data_state_img;
/*
* Terminate the main loop.
@@ -43,6 +43,26 @@ on_destroy (GtkWidget *widget, gpointer data)
}
static void
+data_source_state_changed (ChamplainView *view,
+ GParamSpec *gobject,
+ GtkImage *image)
+{
+ ChamplainState state;
+
+ g_object_get (G_OBJECT (view), "state", &state, NULL);
+ if (state == CHAMPLAIN_STATE_LOADING)
+ {
+ gtk_image_set_from_stock (image, GTK_STOCK_NETWORK, GTK_ICON_SIZE_BUTTON);
+ g_print("NET DATA SOURCE STATE: loading\n");
+ }
+ else
+ {
+ gtk_image_clear (image);
+ g_print("NET DATA SOURCE STATE: done\n");
+ }
+}
+
+static void
load_local_map_data (ChamplainMapSource *source)
{
ChamplainLocalMapDataSource *map_data_source;
@@ -65,6 +85,9 @@ load_network_map_data (ChamplainMapSource *source, ChamplainView *view)
champlain_memphis_map_source_get_map_data_source (
CHAMPLAIN_MEMPHIS_MAP_SOURCE (source)));
+ g_signal_connect (map_data_source, "notify::state", G_CALLBACK (data_source_state_changed),
+ map_data_state_img);
+
g_object_get (G_OBJECT (view), "latitude", &lat, "longitude", &lon, NULL);
champlain_network_map_data_source_load_map_data (map_data_source,
@@ -485,6 +508,9 @@ main (int argc,
g_signal_connect (button, "clicked", G_CALLBACK (request_osm_data_cb), view);
gtk_box_pack_start (GTK_BOX (memphis_net_box), button, FALSE, FALSE, 0);
+ map_data_state_img = gtk_image_new ();
+ gtk_box_pack_start (GTK_BOX (memphis_net_box), map_data_state_img, FALSE, FALSE, 0);
+
gtk_box_pack_start (GTK_BOX (memphis_box), memphis_net_box, FALSE, FALSE, 0);
/* rules chooser */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]