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

Reply via email to