summaryrefslogtreecommitdiff
path: root/src/GipfelWidget.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/GipfelWidget.cxx')
-rw-r--r--src/GipfelWidget.cxx38
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());