/** * Paints the radar circle on the given canvas * @param canvas The canvas to paint on */ void FlarmTrafficWindow::PaintRadarBackground(Canvas &canvas) const { canvas.SelectHollowBrush(); canvas.Select(look.radar_pen); canvas.SetTextColor(look.radar_color); // Paint circles canvas.circle(radar_mid.x, radar_mid.y, radius); canvas.circle(radar_mid.x, radar_mid.y, radius / 2); PaintRadarPlane(canvas); if (small) return; // Paint zoom strings canvas.Select(look.label_font); canvas.SetBackgroundOpaque(); canvas.SetBackgroundColor(look.background_color); TCHAR distance_string[10]; FormatUserDistanceSmart(distance, distance_string, ARRAY_SIZE(distance_string)); PixelSize s = canvas.CalcTextSize(distance_string); canvas.text(radar_mid.x - s.cx / 2, radar_mid.y + radius - s.cy * 0.75, distance_string); FormatUserDistanceSmart(distance / 2, distance_string, ARRAY_SIZE(distance_string)); s = canvas.CalcTextSize(distance_string); canvas.text(radar_mid.x - s.cx / 2, radar_mid.y + radius / 2 - s.cy * 0.75, distance_string); canvas.SetBackgroundTransparent(); PaintNorth(canvas); }
/** * Paints the radar circle on the given canvas * @param canvas The canvas to paint on */ void FlarmTrafficWindow::PaintRadarBackground(Canvas &canvas) const { canvas.hollow_brush(); canvas.select(hpRadar); canvas.set_text_color(hcRadar); // Paint circles canvas.circle(radar_mid.x, radar_mid.y, radius); canvas.circle(radar_mid.x, radar_mid.y, radius / 2); PaintRadarPlane(canvas); if (small) return; // Paint zoom strings canvas.select(hfLabels); canvas.background_opaque(); TCHAR distance_string[10]; Units::FormatUserDistance(distance, distance_string, sizeof(distance_string) / sizeof(distance_string[0])); SIZE s = canvas.text_size(distance_string); canvas.text(radar_mid.x - s.cx / 2, radar_mid.y + radius - s.cy * 0.75, distance_string); Units::FormatUserDistance(distance / 2, distance_string, sizeof(distance_string) / sizeof(distance_string[0])); s = canvas.text_size(distance_string); canvas.text(radar_mid.x - s.cx / 2, radar_mid.y + radius / 2 - s.cy * 0.75, distance_string); canvas.background_transparent(); PaintNorth(canvas); }