loleaflet/dist/leaflet.css                                        |    2 
 loleaflet/plugins/draw-0.2.4/src/edit/handler/Edit.Rectangle.js   |   22 +++++-
 loleaflet/plugins/draw-0.2.4/src/edit/handler/Edit.SimpleShape.js |    8 +-
 loleaflet/src/layer/marker/Marker.js                              |    2 
 loleaflet/src/layer/tile/TileLayer.js                             |   32 
+++++++++-
 5 files changed, 53 insertions(+), 13 deletions(-)

New commits:
commit f9b012ae45ed8ac27033a54ff3080d435b5b5d5d
Author: Henry Castro <hcas...@collabora.com>
Date:   Wed Jun 17 20:59:33 2015 -0400

    loleaflet: grow / shrink the graphic selection.

diff --git a/loleaflet/dist/leaflet.css b/loleaflet/dist/leaflet.css
index 346d9e5..a6a6007 100644
--- a/loleaflet/dist/leaflet.css
+++ b/loleaflet/dist/leaflet.css
@@ -178,11 +178,9 @@
 
 .leaflet-interactive {
        cursor: pointer;
-       pointer-events: none;
        }
 .leaflet-container {
        cursor: text;
-       cursor: text;
        }
 .leaflet-crosshair,
 .leaflet-crosshair .leaflet-interactive {
diff --git a/loleaflet/plugins/draw-0.2.4/src/edit/handler/Edit.Rectangle.js 
b/loleaflet/plugins/draw-0.2.4/src/edit/handler/Edit.Rectangle.js
index e65e5a4..4ce5a2e 100644
--- a/loleaflet/plugins/draw-0.2.4/src/edit/handler/Edit.Rectangle.js
+++ b/loleaflet/plugins/draw-0.2.4/src/edit/handler/Edit.Rectangle.js
@@ -6,6 +6,7 @@ L.Edit.Rectangle = L.Edit.SimpleShape.extend({
                        center = bounds.getCenter();
 
                this._moveMarker = this._createMarker(center, 
this.options.moveIcon);
+               this._moveMarker.setOpacity(0);
        },
 
        _createResizeMarker: function () {
@@ -26,9 +27,12 @@ L.Edit.Rectangle = L.Edit.SimpleShape.extend({
                // Save a reference to the opposite point
                var corners = this._getCorners(),
                        marker = e.target,
-                       currentCornerIndex = marker._cornerIndex;
+                       currentCornerIndex  = marker._cornerIndex,
+                       oppositeCornerIndex = (currentCornerIndex + 4) % 8;
 
-               this._oppositeCorner = corners[(currentCornerIndex + 2) % 4];
+               this._oppositeCorner = corners[ oppositeCornerIndex % 2 ?  
(oppositeCornerIndex + 1) % 8 : oppositeCornerIndex ];
+               this._currentCorner  = corners[ currentCornerIndex  % 2 ?  
(currentCornerIndex  + 1) % 8 : currentCornerIndex ];
+               this._currentIndex = currentCornerIndex;
 
                this._toggleCornerMarkers(0, currentCornerIndex);
        },
@@ -73,6 +77,11 @@ L.Edit.Rectangle = L.Edit.SimpleShape.extend({
        _resize: function (latlng) {
                var bounds;
 
+               if (this._currentIndex == 1 || this._currentIndex == 5 )
+                       latlng.lng = this._currentCorner.lng;
+               else if (this._currentIndex == 3 || this._currentIndex == 7)
+                       latlng.lat = this._currentCorner.lat;
+
                // Update the shape based on the current position of this 
corner and the opposite point
                this._shape.setBounds(L.latLngBounds(latlng, 
this._oppositeCorner));
 
@@ -86,9 +95,14 @@ L.Edit.Rectangle = L.Edit.SimpleShape.extend({
                        nw = bounds.getNorthWest(),
                        ne = bounds.getNorthEast(),
                        se = bounds.getSouthEast(),
-                       sw = bounds.getSouthWest();
+                       sw = bounds.getSouthWest(),
+                       center = bounds.getCenter(),
+                       north  = L.latLng(nw.lat, center.lng),
+                       south  = L.latLng(sw.lat, center.lng),
+                       west   = L.latLng(center.lat, nw.lng),
+                       east   = L.latLng(center.lat, ne.lng);
 
-               return [nw, ne, se, sw];
+               return [nw, north, ne, east, se, south, sw, west];
        },
 
        _toggleCornerMarkers: function (opacity) {
diff --git a/loleaflet/plugins/draw-0.2.4/src/edit/handler/Edit.SimpleShape.js 
b/loleaflet/plugins/draw-0.2.4/src/edit/handler/Edit.SimpleShape.js
index f00ce31..7b44351 100644
--- a/loleaflet/plugins/draw-0.2.4/src/edit/handler/Edit.SimpleShape.js
+++ b/loleaflet/plugins/draw-0.2.4/src/edit/handler/Edit.SimpleShape.js
@@ -109,12 +109,12 @@ L.Edit.SimpleShape = L.Handler.extend({
                var marker = e.target;
                marker.setOpacity(0);
 
-               this._shape.fire('editstart');
+               this._shape.fire('editstart', { handle: e.target });
        },
 
-       _fireEdit: function () {
+       _fireEdit: function (e) {
                this._shape.edited = true;
-               this._shape.fire('edit');
+               this._shape.fire('editend', { handle: e.target });
        },
 
        _onMarkerDrag: function (e) {
@@ -134,7 +134,7 @@ L.Edit.SimpleShape = L.Handler.extend({
                var marker = e.target;
                marker.setOpacity(1);
 
-               this._fireEdit();
+               this._fireEdit(e);
        },
 
        _move: function () {
diff --git a/loleaflet/src/layer/marker/Marker.js 
b/loleaflet/src/layer/marker/Marker.js
index 4f242d8..1d29485 100644
--- a/loleaflet/src/layer/marker/Marker.js
+++ b/loleaflet/src/layer/marker/Marker.js
@@ -11,7 +11,7 @@ L.Marker = L.Layer.extend({
                // title: '',
                // alt: '',
                interactive: true,
-               // draggable: false,
+               draggable: false,
                keyboard: true,
                zIndexOffset: 0,
                opacity: 1,
diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index c8957d5..a84ee45 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -181,6 +181,7 @@ L.TileLayer = L.GridLayer.extend({
                                                                
this._twipsToLatLng(topLeftTwips, this._map.getZoom()),
                                                                
this._twipsToLatLng(bottomRightTwips, this._map.getZoom()));
                        }
+
                        this._onUpdateGraphicSelection();
                }
                else if (textMsg.startsWith('invalidatetiles:')) {
@@ -530,6 +531,11 @@ L.TileLayer = L.GridLayer.extend({
                                ' char=' + charcode + ' key=' + keycode);
        },
 
+       _postSelectGraphicEvent: function(type, x, y) {
+               this._map.socket.send('selectgraphic type=' + type +
+                               ' x=' + x + ' y=' + y);
+       },
+
        _onMouseEvent: function (e) {
                if (e.type === 'mousedown') {
                        this._selecting = true;
@@ -783,14 +789,36 @@ L.TileLayer = L.GridLayer.extend({
                }
        },
 
+       // Update graphics resize.
+       _onGraphicEdit: function (e) {
+               if ( !e.handle ) return;
+
+               var aPos = this._latLngToTwips(e.handle.getLatLng());
+               if ( e.type === 'editstart' ) {
+                       this._postSelectGraphicEvent('start', aPos.x, aPos.y);
+               }
+               else if ( e.type === 'editend' ) {
+                       this._postSelectGraphicEvent('end', aPos.x, aPos.y);
+               }
+       },
+
+       // Update group layer selection handler.
        _onUpdateGraphicSelection: function () {
                if (!this._isEmptyRectangle(this._aGraphicSelection)) {
-                       this._graphicMarker = 
L.rectangle(this._aGraphicSelection, {color: 'red', fill: false});
+                       if (this._graphicMarker) {
+                               this._graphicMarker.off('editstart editend', 
this._onGraphicEdit, this);
+                               this._map.removeLayer(this._graphicMarker);
+                       }
+                       this._graphicMarker = 
L.rectangle(this._aGraphicSelection, {fill: false});
+                       this._graphicMarker.editing.enable();
+                       this._graphicMarker.on('editstart editend', 
this._onGraphicEdit, this);
                        this._map.addLayer(this._graphicMarker);
                }
                else {
-                       if (this._graphicMarker)
+                       if (this._graphicMarker) {
+                               this._graphicMarker.off('editstart editend', 
this._onGraphicEdit, this);
                                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