1 L.OSM.Zoom = L.Control.extend({
6 onAdd: function (map) {
8 container = L.DomUtil.create('div', zoomName);
12 this._zoomInButton = this._createButton(
13 '', I18n.t('javascripts.map.zoom.in'), zoomName + 'in', container, this._zoomIn, this);
14 this._zoomOutButton = this._createButton(
15 '', I18n.t('javascripts.map.zoom.out'), zoomName + 'out', container, this._zoomOut, this);
17 map.on('zoomend zoomlevelschange', this._updateDisabled, this);
22 onRemove: function (map) {
23 map.off('zoomend zoomlevelschange', this._updateDisabled, this);
26 _zoomIn: function (e) {
27 this._map.zoomIn(e.shiftKey ? 3 : 1);
30 _zoomOut: function (e) {
31 this._map.zoomOut(e.shiftKey ? 3 : 1);
34 _createButton: function (html, title, className, container, fn, context) {
35 var link = L.DomUtil.create('a', 'control-button ' + className, container);
36 link.innerHTML = html;
40 var sprite = L.DomUtil.create('span', 'icon ' + className, link);
42 var stop = L.DomEvent.stopPropagation;
45 .on(link, 'click', stop)
46 .on(link, 'mousedown', stop)
47 .on(link, 'dblclick', stop)
48 .on(link, 'click', L.DomEvent.preventDefault)
49 .on(link, 'click', fn, context);
54 _updateDisabled: function () {
56 className = 'leaflet-disabled';
58 L.DomUtil.removeClass(this._zoomInButton, className);
59 L.DomUtil.removeClass(this._zoomOutButton, className);
61 if (map._zoom === map.getMinZoom()) {
62 L.DomUtil.addClass(this._zoomOutButton, className);
64 if (map._zoom === map.getMaxZoom()) {
65 L.DomUtil.addClass(this._zoomInButton, className);
70 L.OSM.zoom = function (options) {
71 return new L.OSM.Zoom(options);