summaryrefslogtreecommitdiff
path: root/src/GipfelWidget.cxx
diff options
context:
space:
mode:
authorJohannes Hofmann <johannes.hofmann@gmx.de>2005-05-03 18:04:14 +0000
committerJohannes Hofmann <johannes.hofmann@gmx.de>2005-05-03 18:04:14 +0000
commit16c6d891d2236a30bb742c5bd4d0ac4e56bb901e (patch)
treed19f0961d42bbfb228b72cf16152c7665bf39e80 /src/GipfelWidget.cxx
parent279fa2391a9bdff90d0fcf5c2d160aa11bfc4ac9 (diff)
use class Mountains
use class Mountains
Diffstat (limited to 'src/GipfelWidget.cxx')
-rw-r--r--src/GipfelWidget.cxx41
1 files changed, 21 insertions, 20 deletions
diff --git a/src/GipfelWidget.cxx b/src/GipfelWidget.cxx
index 3ad141d..eeba2fa 100644
--- a/src/GipfelWidget.cxx
+++ b/src/GipfelWidget.cxx
@@ -1,5 +1,5 @@
//
-// "$Id: GipfelWidget.cxx,v 1.16 2005/05/02 16:36:45 hofmann Exp $"
+// "$Id: GipfelWidget.cxx,v 1.17 2005/05/03 20:04:14 hofmann Exp $"
//
// PSEditWidget routines.
//
@@ -54,9 +54,9 @@ GipfelWidget::GipfelWidget(int X,int Y,int W, int H): Fl_Widget(X, Y, W, H) {
pan = new Panorama();
cur_mountain = NULL;
mb = NULL;
- marker = new Mountain(0,0);
- for (i=1; i<=3; i++) {
- marker->append(new Mountain(i * 10, 0));
+ marker = new Mountains();
+ for (i=0; i<=3; i++) {
+ marker->add(new Mountain(i * 10, 0));
}
fl_register_images();
}
@@ -92,9 +92,11 @@ GipfelWidget::set_viewpoint(const char *pos) {
void
GipfelWidget::draw() {
+ Mountains *mnts;
Mountain *m;
int center_x = w() / 2;
int center_y = h() / 2;
+ int i;
if (img == NULL) {
return;
@@ -104,8 +106,10 @@ GipfelWidget::draw() {
img->draw(x(),y(),w(),h(),0,0);
fl_font(FL_HELVETICA, 8);
- m = pan->get_visible_mountains();
- while (m) {
+ mnts = pan->get_visible_mountains();
+ for (i=0; i<mnts->get_num(); i++) {
+ m = mnts->get(i);
+
if (m == cur_mountain) {
fl_color(FL_RED);
} else {
@@ -118,18 +122,14 @@ GipfelWidget::draw() {
fl_draw(m->name,
center_x + m->x + x(),
center_y + m->y + y());
- m = m->get_next_visible();
}
+ for (i=0; i<marker->get_num(); i++) {
+ m = marker->get(i);
- m = marker;
- while (m) {
fl_color(FL_GREEN);
-
fl_xyline(center_x + m->x + x() - 3, center_y + m->y + y(), center_x + m->x + x() + 3);
fl_yxline(center_x + m->x + x(), center_y + m->y + y() - 3, center_y + m->y + y() + 3);
-
- m = m->get_next();
}
fl_pop_clip();
@@ -137,28 +137,29 @@ GipfelWidget::draw() {
int
GipfelWidget::set_cur_mountain(int m_x, int m_y) {
- Mountain *m = pan->get_visible_mountains();
+ Mountains *mnts = pan->get_visible_mountains();
+ Mountain *m;
int center = w() / 2;
+ int i;
+
+ for (i=0; i<mnts->get_num(); i++) {
+ m = mnts->get(i);
- while (m) {
if (m_x - center >= m->x - 2 && m_x - center < m->x + 2) {
cur_mountain = m;
redraw();
return 0;
}
-
- m = m->get_next_visible();
}
- m = marker;
- while (m) {
+ for (i=0; i<marker->get_num(); i++) {
+ m = marker->get(i);
+
if (m_x - center >= m->x - 2 && m_x - center < m->x + 2) {
cur_mountain = m;
redraw();
return 0;
}
-
- m = m->get_next();
}
cur_mountain = NULL;