Browse Source

Remove duplicate code in the GL map viewer.

legacy
Sam Hocevar sam 14 years ago
parent
commit
0415b2eb5e
2 changed files with 18 additions and 41 deletions
  1. +17
    -40
      src/gtk/glmapview.cpp
  2. +1
    -1
      src/gtk/glmapview.h

+ 17
- 40
src/gtk/glmapview.cpp View File

@@ -141,6 +141,16 @@ gboolean GlMapView::Draw(GdkEventExpose *e)
return TRUE;
}

gboolean GlMapView::Scroll(double dx, double dy)
{
gtk_adjustment_set_value(hadj, gtk_adjustment_get_value(hadj) + dx);
gtk_adjustment_set_value(vadj, gtk_adjustment_get_value(vadj) + dy);

UpdateAdjustments();

return TRUE;
}

gboolean GlMapView::UpdateAdjustments()
{
float w = mapviewer ? mapviewer->GetWidth() : glarea->allocation.width;
@@ -173,19 +183,6 @@ gboolean GlMapView::UpdateAdjustments()
return TRUE;
}

gboolean GlMapView::MoveAdjustments(double dx, double dy)
{
if (dx)
gtk_adjustment_set_value(hadj, gtk_adjustment_get_value(hadj) + dx);

if (dy)
gtk_adjustment_set_value(vadj, gtk_adjustment_get_value(vadj) + dy);

UpdateAdjustments();

return TRUE;
}

gboolean GlMapView::MouseButton(GdkEventButton *e)
{
if (e->type == GDK_BUTTON_PRESS && e->button == 2)
@@ -212,29 +209,9 @@ gboolean GlMapView::MouseMotion(GdkEventMotion *e)
{
if (panning)
{
if (e->x != xpan)
{
double val = gtk_adjustment_get_value(hadj);
int map_width = mapviewer->GetWidth();
val += xpan - e->x;
xpan = e->x;
if (val + glarea->allocation.width > map_width)
val = map_width - glarea->allocation.width;
gtk_adjustment_set_value(hadj, val);
gtk_adjustment_value_changed(hadj);
}

if (e->y != ypan)
{
double val = gtk_adjustment_get_value(vadj);
int map_height = mapviewer->GetHeight();
val += ypan - e->y;
ypan = e->y;
if (val + glarea->allocation.height > map_height)
val = map_height - glarea->allocation.height;
gtk_adjustment_set_value(vadj, val);
gtk_adjustment_value_changed(vadj);
}
Scroll(xpan - e->x, ypan - e->y);
xpan = e->x;
ypan = e->y;
}

return TRUE;
@@ -244,10 +221,10 @@ gboolean GlMapView::KeyPress(GdkEventKey *e)
{
switch (e->keyval)
{
case GDK_Up: MoveAdjustments( 0.0, -10.0); break;
case GDK_Down: MoveAdjustments( 0.0, 10.0); break;
case GDK_Left: MoveAdjustments(-10.0, 0.0); break;
case GDK_Right: MoveAdjustments( 10.0, 0.0); break;
case GDK_Up: Scroll( 0.0, -10.0); break;
case GDK_Down: Scroll( 0.0, 10.0); break;
case GDK_Left: Scroll(-10.0, 0.0); break;
case GDK_Right: Scroll( 10.0, 0.0); break;
default: return FALSE;
}



+ 1
- 1
src/gtk/glmapview.h View File

@@ -21,8 +21,8 @@ private:
gboolean Setup();
gboolean Destroy();
gboolean Draw(GdkEventExpose *e);
gboolean Scroll(double dx, double dy);
gboolean UpdateAdjustments();
gboolean MoveAdjustments(double dx, double dy);
gboolean MouseButton(GdkEventButton *e);
gboolean MouseMotion(GdkEventMotion *e);
gboolean KeyPress(GdkEventKey *e);


Loading…
Cancel
Save