Changeset 168


Ignore:
Timestamp:
Aug 22, 2010, 7:52:13 PM (10 years ago)
Author:
sam
Message:

Remove duplicate code in the GL map viewer.

Location:
trunk/src/gtk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/gtk/glmapview.cpp

    r167 r168  
    142142}
    143143
     144gboolean GlMapView::Scroll(double dx, double dy)
     145{
     146    gtk_adjustment_set_value(hadj, gtk_adjustment_get_value(hadj) + dx);
     147    gtk_adjustment_set_value(vadj, gtk_adjustment_get_value(vadj) + dy);
     148
     149    UpdateAdjustments();
     150
     151    return TRUE;
     152}
     153
    144154gboolean GlMapView::UpdateAdjustments()
    145155{
     
    174184}
    175185
    176 gboolean GlMapView::MoveAdjustments(double dx, double dy)
    177 {
    178     if (dx)
    179         gtk_adjustment_set_value(hadj, gtk_adjustment_get_value(hadj) + dx);
    180 
    181     if (dy)
    182         gtk_adjustment_set_value(vadj, gtk_adjustment_get_value(vadj) + dy);
    183 
    184     UpdateAdjustments();
    185 
    186     return TRUE;
    187 }
    188 
    189186gboolean GlMapView::MouseButton(GdkEventButton *e)
    190187{
     
    213210    if (panning)
    214211    {
    215         if (e->x != xpan)
    216         {
    217             double val = gtk_adjustment_get_value(hadj);
    218             int map_width = mapviewer->GetWidth();
    219             val += xpan - e->x;
    220             xpan = e->x;
    221             if (val + glarea->allocation.width > map_width)
    222                 val = map_width - glarea->allocation.width;
    223             gtk_adjustment_set_value(hadj, val);
    224             gtk_adjustment_value_changed(hadj);
    225         }
    226 
    227         if (e->y != ypan)
    228         {
    229             double val = gtk_adjustment_get_value(vadj);
    230             int map_height = mapviewer->GetHeight();
    231             val += ypan - e->y;
    232             ypan = e->y;
    233             if (val + glarea->allocation.height > map_height)
    234                 val = map_height - glarea->allocation.height;
    235             gtk_adjustment_set_value(vadj, val);
    236             gtk_adjustment_value_changed(vadj);
    237         }
     212        Scroll(xpan - e->x, ypan - e->y);
     213        xpan = e->x;
     214        ypan = e->y;
    238215    }
    239216
     
    245222    switch (e->keyval)
    246223    {
    247     case GDK_Up:    MoveAdjustments(  0.0, -10.0); break;
    248     case GDK_Down:  MoveAdjustments(  0.0,  10.0); break;
    249     case GDK_Left:  MoveAdjustments(-10.0,  0.0); break;
    250     case GDK_Right: MoveAdjustments( 10.0,  0.0); break;
     224    case GDK_Up:    Scroll(  0.0, -10.0); break;
     225    case GDK_Down:  Scroll(  0.0,  10.0); break;
     226    case GDK_Left:  Scroll(-10.0,  0.0); break;
     227    case GDK_Right: Scroll( 10.0,  0.0); break;
    251228    default: return FALSE;
    252229    }
  • trunk/src/gtk/glmapview.h

    r167 r168  
    2222    gboolean Destroy();
    2323    gboolean Draw(GdkEventExpose *e);
     24    gboolean Scroll(double dx, double dy);
    2425    gboolean UpdateAdjustments();
    25     gboolean MoveAdjustments(double dx, double dy);
    2626    gboolean MouseButton(GdkEventButton *e);
    2727    gboolean MouseMotion(GdkEventMotion *e);
Note: See TracChangeset for help on using the changeset viewer.