]> err.no Git - mapper/commitdiff
Autorefresh once a second.
authorKaj-Michael Lang <milang@tal.org>
Tue, 30 Oct 2007 20:03:01 +0000 (22:03 +0200)
committerKaj-Michael Lang <milang@tal.org>
Tue, 30 Oct 2007 20:03:01 +0000 (22:03 +0200)
src/gtkgps.c
src/gtkgps.h

index 06660ce894459a32b8a9c2cb9e8b4ab1668acc6d..c68e4bdfab9ec634248a09daf4af88c4da020a66 100644 (file)
@@ -33,6 +33,7 @@ static void gtk_gps_realize (GtkWidget *widget);
 static void gtk_gps_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
 static void gtk_gps_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
 static void gtk_gps_paint_by_mode(GtkGps *gps);
+static gboolean gtk_gps_refresh_cb(GtkWidget *widget);
 
 G_DEFINE_TYPE(GtkGps, gtk_gps, GTK_TYPE_WIDGET);
 
@@ -103,6 +104,7 @@ gps->gc_sf=NULL;
 gps->width=300;
 gps->height=300;
 gps->size=300;
+gps->esid=0;
 }
 
 static gboolean 
@@ -152,6 +154,8 @@ pango_font_description_set_size(gps->fontdesc, 10*PANGO_SCALE);
 pango_layout_set_font_description(gps->layout, gps->fontdesc);
 pango_layout_set_alignment(gps->layout, PANGO_ALIGN_CENTER);
 
+gps->esid=g_timeout_add(1000,(GSourceFunc)gtk_gps_refresh_cb, gps);
+
 return GTK_WIDGET(gps);
 }
 
@@ -163,6 +167,7 @@ GtkGps *gps;
 g_return_if_fail(GTK_IS_GPS(object));
 gps=GTK_GPS(object);
 
+g_source_remove(gps->esid);
 if (GTK_WIDGET(object)->parent && GTK_WIDGET_MAPPED(object)) {
        gtk_widget_unmap(GTK_WIDGET(object));
 }
@@ -181,9 +186,15 @@ g_return_if_fail(requisition!=NULL);
 gps = GTK_GPS (widget);
        
 requisition->width=300;
-requisition->height=300;
 gps->width=300;
-gps->height=300;
+
+if (gps->display_mode==GTK_GPS_MODE_SKY) {
+       requisition->height=300;
+       gps->height=300;
+} else {
+       requisition->height=200;
+       gps->height=200;        
+}
 gps->size=300;
 }
 
@@ -484,6 +495,21 @@ switch (gps->display_mode) {
 }
 }
 
+static gboolean
+gtk_gps_refresh_cb(GtkWidget *widget)
+{
+GtkGps *gps;
+
+g_return_val_if_fail(GTK_IS_GPS(widget), FALSE);
+
+if ((GTK_WIDGET_MAPPED(widget)==FALSE) || (GTK_WIDGET_VISIBLE(widget)==FALSE))
+       return TRUE;
+
+gps=GTK_GPS(widget);
+gtk_widget_queue_draw_area(widget, 0, 0, gps->width, gps->height);
+return TRUE;
+}
+
 static gboolean
 gtk_gps_expose(GtkWidget *widget, GdkEventExpose *event)
 {
index 7a0b36376de123cea50fd6ea1bbe5895fafd8c2e..74ae5258961e3fd0736266e9c1c837c769591b67 100644 (file)
@@ -55,6 +55,7 @@ struct _GtkGps {
        PangoFontDescription *fontdesc;
 
        GpsData *data;
+       gint esid;
 };
 
 struct _GtkGpsClass {