Ignore:
Timestamp:
2006-04-27T01:29:55+02:00 (18 years ago)
Author:
imi
Message:
  • added GeoImage feature (showing images on a tracklog)
  • added zoom slider
  • added Escape cancels selection rectangle
  • added "Save password" option to Auth-dialog
  • fixed that redo/undo buttons were not enabled
  • fixed hotkeys beeing inaccessible when no data is loaded
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/org/openstreetmap/josm/gui/MapView.java

    r98 r99  
    66import java.awt.event.ComponentAdapter;
    77import java.awt.event.ComponentEvent;
     8import java.awt.event.MouseAdapter;
     9import java.awt.event.MouseEvent;
     10import java.beans.PropertyChangeEvent;
     11import java.beans.PropertyChangeListener;
    812import java.util.ArrayList;
    913import java.util.Collection;
     
    1216
    1317import javax.swing.JOptionPane;
     18import javax.swing.JSlider;
     19import javax.swing.event.ChangeEvent;
     20import javax.swing.event.ChangeListener;
    1421
    1522import org.openstreetmap.josm.Main;
     
    7683        private final AutoScaleAction autoScaleAction;
    7784
     85       
     86        private final class Scaler extends JSlider implements PropertyChangeListener, ChangeListener {
     87                boolean hovered = false;
     88                public Scaler() {
     89                        super(0, 20);
     90                        addMouseListener(new MouseAdapter(){
     91                                @Override public void mouseEntered(MouseEvent e) {
     92                        hovered = true;
     93                }
     94                                @Override public void mouseExited(MouseEvent e) {
     95                        hovered = false;
     96                }
     97                        });
     98                        MapView.this.addPropertyChangeListener(this);
     99                        addChangeListener(this);
     100        }
     101                public void propertyChange(PropertyChangeEvent evt) {
     102                        if (evt.getPropertyName().equals("scale") && !getModel().getValueIsAdjusting())
     103                                setValue(zoom());
     104        }
     105                public void stateChanged(ChangeEvent e) {
     106                        if (!hovered)
     107                                return;
     108                        EastNorth pos = world;
     109                        for (int zoom = 0; zoom < getValue(); ++zoom)
     110                                pos = new EastNorth(pos.east()/2, pos.north()/2);
     111                        if (MapView.this.getWidth() < MapView.this.getHeight())
     112                                zoomTo(center, pos.east()*2/(MapView.this.getWidth()-20));
     113                        else
     114                                zoomTo(center, pos.north()*2/(MapView.this.getHeight()-20));
     115        }
     116        }
     117       
    78118        public MapView(AutoScaleAction autoScaleAction) {
    79119                this.autoScaleAction = autoScaleAction;
     
    91131                        }
    92132                });
     133                Scaler zoomScaler = new Scaler();
     134                zoomScaler.setOpaque(false);
     135                add(zoomScaler);
     136                zoomScaler.setBounds(0,0, 100, 30);
    93137        }
    94138
     
    182226                if (x1 > 0 || y1 > 0 || x2 < getWidth() || y2 < getHeight())
    183227                        g.drawRect(x1, y1, x2-x1+1, y2-y1+1);
     228                super.paint(g);
    184229        }
    185230
Note: See TracChangeset for help on using the changeset viewer.