]> err.no Git - mapper/blobdiff - src/gtkcompass.c
Include settings.h so the banner macro hildon version works.
[mapper] / src / gtkcompass.c
index 7d67efe9ca9960c6ef87a597a5114cc9a3d466f6..69b21046089fc133ecce983045b76648cac93d2e 100644 (file)
@@ -45,12 +45,24 @@ static gboolean gtk_compass_refresh_cb(GtkWidget *widget);
 G_DEFINE_TYPE(GtkCompass, gtk_compass, GTK_TYPE_WIDGET);
 
 #define BOUND(x, a, b) { \
-    if((x) < (a)) \
-        (x) = (a); \
-    else if((x) > (b)) \
-        (x) = (b); \
+       if((x) < (a)) \
+               (x) = (a); \
+       else if((x) > (b)) \
+               (x) = (b); \
 }
 
+typedef struct _GtkCompassPriv GtkCompassPriv;
+struct _GtkCompassPriv
+{ 
+PangoContext *context;
+PangoLayout *layout;
+PangoFontDescription *fontdesc;
+};
+
+#define GTK_COMPASS_GET_PRIVATE(o) \
+       (G_TYPE_INSTANCE_GET_PRIVATE ((o), GTK_COMPASS, GtkCompassPriv))
+
 static void
 gtk_compass_class_init (GtkCompassClass *class)
 {
@@ -68,6 +80,8 @@ widget_class->size_request = gtk_compass_size_request;
 widget_class->expose_event = gtk_compass_expose;
 widget_class->realize = gtk_compass_realize;
 widget_class->size_allocate = gtk_compass_size_allocate;
+
+g_type_class_add_private (object_class, sizeof (GtkCompassPriv));
 }
 
 static void
@@ -309,12 +323,12 @@ hsize=size/2;
 hsize=0;
 #endif
 
-fs=size/42;
+fs=size/41;
 BOUND(fs, 1, 16);
 
 pango_context_set_matrix (compass->context, NULL);
 
-g_snprintf(htext, 8, "%3.0f°", compass->heading);
+g_snprintf(htext, 8, "%3.0f°", compass->data->heading);
 pango_font_description_set_size(compass->fontdesc, (10+fs) * PANGO_SCALE);
 pango_layout_set_font_description(compass->layout, compass->fontdesc);
 pango_layout_set_text(compass->layout, htext, -1);