diff options
Diffstat (limited to 'src/GipfelWidget.cxx')
-rw-r--r-- | src/GipfelWidget.cxx | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/src/GipfelWidget.cxx b/src/GipfelWidget.cxx index bfa61dd..df07113 100644 --- a/src/GipfelWidget.cxx +++ b/src/GipfelWidget.cxx @@ -67,6 +67,7 @@ GipfelWidget::GipfelWidget(int X,int Y,int W, int H): Fl_Widget(X, Y, W, H) { m2 = NULL; img_file = NULL; track_width = 500.0; + show_hidden = 0; for (i=0; i<=3; i++) { marker->add(new Hill(i * 10, 0)); @@ -309,7 +310,11 @@ GipfelWidget::draw() { for (i=0; i<mnts->get_num(); i++) { m = mnts->get(i); - if (m->flags & (Hill::DUPLICATE | Hill::TRACK_POINT)) { + if (m->flags & (Hill::DUPLICATE|Hill::TRACK_POINT)) { + continue; + } + + if (!show_hidden && (m->flags & Hill::HIDDEN)) { continue; } @@ -319,6 +324,8 @@ GipfelWidget::draw() { } else if (m == m2) { fl_color(FL_RED); draw_flag(center_x + m->x + x(), center_y + m->y + y(), "2"); + } else if (m->flags & Hill::HIDDEN) { + fl_color(FL_BLUE); } else { fl_color(FL_BLACK); } @@ -345,12 +352,17 @@ GipfelWidget::draw() { if (track_points && track_points->get_num() > 0) { int last_x, last_y, last_initialized = 0; - fl_color(FL_RED); for (i=1; i<track_points->get_num(); i++) { if (!(track_points->get(i)->flags & Hill::VISIBLE)) { continue; } + if (track_points->get(i)->flags & Hill::HIDDEN) { + fl_color(FL_BLUE); + } else { + fl_color(FL_RED); + } + fl_line_style(FL_SOLID|FL_CAP_ROUND|FL_JOIN_ROUND, get_rel_track_width(track_points->get(i))); if (last_initialized) { @@ -388,7 +400,11 @@ GipfelWidget::set_labels(Hills *v) { for (i=0; i<v->get_num(); i++) { m = v->get(i); - if (m->flags & (Hill::DUPLICATE | Hill::TRACK_POINT)) { + if (m->flags & (Hill::DUPLICATE|Hill::TRACK_POINT)) { + continue; + } + + if (!show_hidden && (m->flags & Hill::HIDDEN)) { continue; } @@ -608,6 +624,22 @@ GipfelWidget::set_height_dist_ratio(double r) { } void +GipfelWidget::set_hide_value(double h) { + pan->set_hide_value(h); + set_labels(pan->get_visible_mountains()); + + redraw(); +} + +void +GipfelWidget::set_show_hidden(int h) { + show_hidden = h; + set_labels(pan->get_visible_mountains()); + + redraw(); + +} +void GipfelWidget::set_view_lat(double v) { pan->set_view_lat(v); set_labels(pan->get_visible_mountains()); |