|  |  | 
 |  |  |  | 
 |  |  | // Class: svgedit.select.Selector | 
 |  |  | // Private class for DOM element selection boxes | 
 |  |  | //  | 
 |  |  | // | 
 |  |  | // Parameters: | 
 |  |  | // id - integer to internally indentify the selector | 
 |  |  | // elem - DOM element associated with this selector | 
 |  |  | 
 |  |  |       } | 
 |  |  |     }) | 
 |  |  |   ); | 
 |  |  |    | 
 |  |  |  | 
 |  |  |   if (svgedit.browser.isTouch()) { | 
 |  |  |     this.selectorRect.setAttribute("stroke-opacity", 0.3); | 
 |  |  |   } | 
 |  |  | 
 |  |  | }; | 
 |  |  |  | 
 |  |  |  | 
 |  |  | // Function: svgedit.select.Selector.reset  | 
 |  |  | // Function: svgedit.select.Selector.reset | 
 |  |  | // Used to reset the id and element that the selector is attached to | 
 |  |  | // | 
 |  |  | // Parameters:  | 
 |  |  | // Parameters: | 
 |  |  | // e - DOM element associated with this selector | 
 |  |  | svgedit.select.Selector.prototype.reset = function(e) { | 
 |  |  |   this.locked = true; | 
 |  |  | 
 |  |  |   var bbox = svgedit.utilities.getBBox(selected); | 
 |  |  |   if(tagName === 'g' && !$.data(selected, 'gsvg')) { | 
 |  |  |     // The bbox for a group does not include stroke vals, so we | 
 |  |  |     // get the bbox based on its children.  | 
 |  |  |     // get the bbox based on its children. | 
 |  |  |     var stroked_bbox = svgFactory_.getStrokedBBox(selected.childNodes); | 
 |  |  |     if(stroked_bbox) { | 
 |  |  |       bbox = stroked_bbox; | 
 |  |  | 
 |  |  |  | 
 |  |  |   // we need to handle temporary transforms too | 
 |  |  |   // if skewed, get its transformed box, then find its axis-aligned bbox | 
 |  |  |    | 
 |  |  |  | 
 |  |  |   //* | 
 |  |  |   offset *= current_zoom; | 
 |  |  |    | 
 |  |  |  | 
 |  |  |   var nbox = svgedit.math.transformBox(l*current_zoom, t*current_zoom, w*current_zoom, h*current_zoom, m), | 
 |  |  |     aabox = nbox.aabox, | 
 |  |  |     nbax = aabox.x - offset, | 
 |  |  |     nbay = aabox.y - offset, | 
 |  |  |     nbaw = aabox.width + (offset * 2), | 
 |  |  |     nbah = aabox.height + (offset * 2); | 
 |  |  |      | 
 |  |  |  | 
 |  |  |   // now if the shape is rotated, un-rotate it | 
 |  |  |   var cx = nbax + nbaw/2, | 
 |  |  |     cy = nbay + nbah/2; | 
 |  |  | 
 |  |  |         + ' ' + (nbax+nbaw) + ',' + (nbay+nbah) | 
 |  |  |         + ' ' + nbax + ',' + (nbay+nbah) + 'z'; | 
 |  |  |   selectedBox.setAttribute('d', dstr); | 
 |  |  |    | 
 |  |  |  | 
 |  |  |   var xform = angle ? 'rotate(' + [angle,cx,cy].join(',') + ')' : ''; | 
 |  |  |   this.selectorGroup.setAttribute('transform', xform); | 
 |  |  |  | 
 |  |  | 
 |  |  |       selectedGrips[dir].setAttribute('x', coords[0]); | 
 |  |  |       selectedGrips[dir].setAttribute('y', coords[1]); | 
 |  |  |     }; | 
 |  |  |      | 
 |  |  |  | 
 |  |  |     this.rotateCoords = { | 
 |  |  |       'nw': [nbax, nbay], | 
 |  |  |       'ne': [nbax+nbaw+8, nbay], | 
 |  |  |       'sw': [nbax, nbay+nbah+8], | 
 |  |  |       'se': [nbax+nbaw+8, nbay+nbah+8] | 
 |  |  |     }; | 
 |  |  |      | 
 |  |  |  | 
 |  |  |     for(var dir in this.rotateCoords) { | 
 |  |  |       var coords = this.rotateCoords[dir]; | 
 |  |  |       mgr.rotateGrips[dir].setAttribute('cx', coords[0]);  | 
 |  |  |       mgr.rotateGrips[dir].setAttribute('cx', coords[0]); | 
 |  |  |       mgr.rotateGrips[dir].setAttribute('cy', coords[1]); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | 
 |  |  |       } | 
 |  |  |     }); | 
 |  |  |     if (svgedit.browser.isTouch()) { | 
 |  |  |        | 
 |  |  |  | 
 |  |  |       grip.setAttribute("width", 30.5) | 
 |  |  |       grip.setAttribute("height", 30.5) | 
 |  |  |       grip.setAttribute("fill-opacity", 0.3) | 
 |  |  |     } | 
 |  |  |      | 
 |  |  |  | 
 |  |  |     $.data(grip, 'dir', dir); | 
 |  |  |     $.data(grip, 'type', 'resize'); | 
 |  |  |     this.selectorGrips[dir] = this.selectorGripsGroup.appendChild(grip); | 
 |  |  | 
 |  |  |       'id': 'placeholder_defs' | 
 |  |  |     } | 
 |  |  |   }) | 
 |  |  |    | 
 |  |  |  | 
 |  |  |   var pattern = svgFactory_.createSVGElement({ | 
 |  |  |     'element': 'pattern', | 
 |  |  |     'attr': { | 
 |  |  | 
 |  |  |       'viewBox': '0 0 10 10' | 
 |  |  |     } | 
 |  |  |   }) | 
 |  |  |    | 
 |  |  |  | 
 |  |  |   var pattern_bg = svgFactory_.createSVGElement({ | 
 |  |  |     'element': 'rect', | 
 |  |  |     'attr': { | 
 |  |  | 
 |  |  |       'fill': "#eee" | 
 |  |  |     } | 
 |  |  |   }) | 
 |  |  |    | 
 |  |  |  | 
 |  |  |   var pattern_square2 = svgFactory_.createSVGElement({ | 
 |  |  |     'element': 'rect', | 
 |  |  |     'attr': { | 
 |  |  | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | // Function: svgedit.select.SelectorManager.releaseSelector | 
 |  |  | // Removes the selector of the given element (hides selection box)  | 
 |  |  | // Removes the selector of the given element (hides selection box) | 
 |  |  | // | 
 |  |  | // Parameters: | 
 |  |  | // elem - DOM element to remove the selector for | 
 |  |  | 
 |  |  |           'fill': 'none', | 
 |  |  |           'stroke': '#666', | 
 |  |  |           'stroke-width': 1, | 
 |  |  |           'stroke-dasharray': '3,2',  | 
 |  |  |           'stroke-dasharray': '3,2', | 
 |  |  |           'display': 'none', | 
 |  |  |           'style': 'pointer-events:none' | 
 |  |  |         } | 
 |  |  | 
 |  |  |   return selectorManager_; | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | })(); | 
 |  |  | })(); |