--- trunk/src/osm-gps-map.c 2009/08/18 14:32:45 61 +++ trunk/src/osm-gps-map.c 2009/08/18 20:33:08 62 @@ -112,8 +112,6 @@ struct { GdkPixmap *backup; gint backup_x, backup_y; - - // GdkPixbuf *pixbuf; } osd; #endif @@ -915,7 +913,9 @@ } else { - g_warning("Error creating tile download directory: %s", dl->folder); + g_warning("Error creating tile download directory: %s", + dl->folder); + perror("perror:"); } } @@ -1422,7 +1422,7 @@ /* backup previous contents */ if(!priv->osd.backup) - priv->osd.backup = gdk_pixmap_new(priv->pixmap, OSD_W, OSD_H, -1); + priv->osd.backup = gdk_pixmap_new(priv->pixmap, OSD_W+2, OSD_H+2, -1); gint x = OSD_X + EXTRA_BORDER + xoffset; gint y = OSD_Y + EXTRA_BORDER + yoffset; @@ -1430,9 +1430,9 @@ /* create backup of background */ gdk_draw_drawable(priv->osd.backup, GTK_WIDGET(map)->style->fg_gc[GTK_WIDGET_STATE(GTK_WIDGET(map))], - priv->pixmap, x, y, 0, 0, OSD_W, OSD_H); - priv->osd.backup_x = x; - priv->osd.backup_y = y; + priv->pixmap, x-1, y-1, 0, 0, OSD_W+2, OSD_H+2); + priv->osd.backup_x = x-1; + priv->osd.backup_y = y-1; #if 0 /* create pixbuf for osd */ @@ -1462,32 +1462,60 @@ #define LEN 15 #define WID 15 +#define Z_STEP -5 +#define Z_RAD 15 +#define Z_TOP 2*RAD+Z_STEP +#define Z_MID Z_TOP+Z_RAD +#define Z_BOT Z_MID+Z_RAD +#define Z_LEFT Z_RAD +#define Z_RIGHT 2*RAD-Z_RAD + /* --------- the direction "pad" shape and shadow ----------- */ + + cairo_move_to (cr, x+Z_LEFT+5, y+Z_TOP+5); + cairo_line_to (cr, x+Z_RIGHT+5, y+Z_TOP+5); + cairo_arc (cr, x+Z_RIGHT+5, y+Z_MID+5, Z_RAD, -M_PI/2, M_PI/2); + cairo_line_to (cr, x+Z_LEFT+5, y+Z_BOT+5); + cairo_arc (cr, x+Z_LEFT+5, y+Z_MID+5, Z_RAD, M_PI/2, -M_PI/2); + cairo_close_path (cr); + + cairo_set_source_rgba (cr, 0, 0, 0, 0.2); + cairo_fill (cr); + cairo_stroke (cr); + cairo_arc (cr, x+RAD+5, y+RAD+5, RAD, 0, 2 * M_PI); + cairo_close_path (cr); + cairo_set_source_rgba (cr, 0, 0, 0, 0.2); cairo_fill (cr); cairo_stroke (cr); + + + cairo_move_to (cr, x+Z_LEFT, y+Z_TOP); + cairo_line_to (cr, x+Z_RIGHT, y+Z_TOP); + cairo_arc (cr, x+Z_RIGHT, y+Z_MID, Z_RAD, -M_PI/2, M_PI/2); + cairo_line_to (cr, x+Z_LEFT, y+Z_BOT); + cairo_arc (cr, x+Z_LEFT, y+Z_MID, Z_RAD, M_PI/2, -M_PI/2); + cairo_close_path (cr); - cairo_arc (cr, x+RAD, y+RAD, RAD, 0, 2 * M_PI); cairo_set_source_rgb (cr, 1, 1, 1); cairo_fill_preserve (cr); cairo_set_source_rgb (cr, 0.6, 0.6, 1); cairo_set_line_width (cr, 1); cairo_stroke (cr); - /* ---------- the zoom pad shape and shadow -------------- */ - cairo_move_to (cr, x, y+2*RAD); - cairo_line_to (cr, x+2*RAD-10, y+2*RAD); - cairo_curve_to (cr, x+2*RAD, y+2*RAD, - x+2*RAD, y+3*RAD, - x+2*RAD-10, y+3*RAD); + cairo_arc (cr, x+RAD, y+RAD, RAD, 0, 2 * M_PI); cairo_close_path (cr); - - cairo_set_source_rgba (cr, 1, 1, 1, 1.0); - cairo_fill (cr); + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_fill_preserve (cr); + cairo_set_source_rgb (cr, 0.6, 0.6, 1); + cairo_set_line_width (cr, 1); cairo_stroke (cr); + /* ---------- the zoom pad shape and shadow -------------- */ + + /* left arrow/triangle */ cairo_move_to (cr, x+RAD-TIP, y+RAD); @@ -1542,7 +1570,7 @@ gdk_draw_drawable(priv->pixmap, GTK_WIDGET(map)->style->fg_gc[GTK_WIDGET_STATE(GTK_WIDGET(map))], priv->osd.backup, 0, 0, - priv->osd.backup_x, priv->osd.backup_y, OSD_W, OSD_H); + priv->osd.backup_x, priv->osd.backup_y, OSD_W+2, OSD_H+2); } }