loleaflet/src/layer/tile/TileLayer.js | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-)
New commits: commit d170ee598e72b99dbfeb654ffd78d2fde4863e0a Author: Henry Castro <hcas...@collabora.com> Date: Mon Jun 15 20:44:11 2015 -0400 loleaflet: Add graphics selection. diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js index 31e3bbd..b22ba9f 100644 --- a/loleaflet/src/layer/tile/TileLayer.js +++ b/loleaflet/src/layer/tile/TileLayer.js @@ -60,8 +60,12 @@ L.TileLayer = L.GridLayer.extend({ this._bCursorOverlayVisible = false; // Cursor is visible or hidden (e.g. for graphic selection). this._bCursorVisible = true; - // Marker cursor + // Rectangle graphic selection + this._aGraphicSelection = new L.LatLngBounds( new L.LatLng(0, 0), new L.LatLng(0, 0) ); + // Cursor marker this._cursorMarker = null; + // Graphic marker + this._graphicMarker = null; }, _initDocument: function () { @@ -164,6 +168,21 @@ L.TileLayer = L.GridLayer.extend({ this._bCursorOverlayVisible = true; this._onUpdateCursor(); } + else if (textMsg.startsWith('graphicselection:')) { + if (textMsg.match('EMPTY')) { + this._aGraphicSelection = new L.LatLngBounds( new L.LatLng(0, 0), new L.LatLng(0, 0) ); + } + else { + strTwips = textMsg.match(/\d+/g); + var topLeftTwips = new L.Point(parseInt(strTwips[0]), parseInt(strTwips[1])); + var offset = new L.Point(parseInt(strTwips[2]), parseInt(strTwips[3])); + var bottomRightTwips = topLeftTwips.add(offset); + this._aGraphicSelection = new L.LatLngBounds( + this._twipsToLatLng(topLeftTwips, this._map.getZoom()), + this._twipsToLatLng(bottomRightTwips, this._map.getZoom())); + } + this._onUpdateGraphicSelection(); + } else if (textMsg.startsWith('invalidatetiles:')) { if (textMsg.match('EMPTY')) { // invalidate everything @@ -760,6 +779,17 @@ L.TileLayer = L.GridLayer.extend({ this._bCursorOverlayVisible = false; } } + }, + + _onUpdateGraphicSelection: function () { + if (!this._isEmptyRectangle(this._aGraphicSelection)) { + this._graphicMarker = L.rectangle(this._aGraphicSelection, {color: 'red', fill: false}); + this._map.addLayer(this._graphicMarker); + } + else { + if (this._graphicMarker) + this._map.removeLayer(this._graphicMarker); + } } }); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits