Move to use an array for selected elements. Still only single-select mode.
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@229 eee81c28-f429-11dd-99c0-75d572ba1ddd
This commit is contained in:
@@ -314,7 +314,10 @@ function SvgCanvas(c)
|
|||||||
var freehand_max_x = null;
|
var freehand_max_x = null;
|
||||||
var freehand_min_y = null;
|
var freehand_min_y = null;
|
||||||
var freehand_max_y = null;
|
var freehand_max_y = null;
|
||||||
var selected = null;
|
// this will hold all the currently selected elements
|
||||||
|
// default size of 1 until it needs to grow bigger
|
||||||
|
var selectedElements = new Array(1);
|
||||||
|
// var selected = null;
|
||||||
var selectedBBox = null;
|
var selectedBBox = null;
|
||||||
var selectedOperation = 'resize'; // could be {resize,rotate}
|
var selectedOperation = 'resize'; // could be {resize,rotate}
|
||||||
var selectorManager = new SelectorManager();
|
var selectorManager = new SelectorManager();
|
||||||
@@ -426,6 +429,7 @@ function SvgCanvas(c)
|
|||||||
} // end svgToString()
|
} // end svgToString()
|
||||||
|
|
||||||
function recalculateSelectedDimensions() {
|
function recalculateSelectedDimensions() {
|
||||||
|
var selected = selectedElements[0];
|
||||||
var box = selected.getBBox();
|
var box = selected.getBBox();
|
||||||
|
|
||||||
// if we have not moved/resized, then immediately leave
|
// if we have not moved/resized, then immediately leave
|
||||||
@@ -529,6 +533,7 @@ function SvgCanvas(c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
var recalculateSelectedOutline = function() {
|
var recalculateSelectedOutline = function() {
|
||||||
|
var selected = selectedElements[0];
|
||||||
if (selected != null && theSelector != null) {
|
if (selected != null && theSelector != null) {
|
||||||
theSelector.resize(selectedBBox);
|
theSelector.resize(selectedBBox);
|
||||||
}
|
}
|
||||||
@@ -539,6 +544,7 @@ function SvgCanvas(c)
|
|||||||
// call this function with null to clear the selected element
|
// call this function with null to clear the selected element
|
||||||
var selectElement = function(newSelected)
|
var selectElement = function(newSelected)
|
||||||
{
|
{
|
||||||
|
var selected = selectedElements[0];
|
||||||
if (selected == newSelected) return;
|
if (selected == newSelected) return;
|
||||||
|
|
||||||
// remove selected outline from previously selected element
|
// remove selected outline from previously selected element
|
||||||
@@ -546,7 +552,8 @@ function SvgCanvas(c)
|
|||||||
selectorManager.releaseSelector(theSelector);
|
selectorManager.releaseSelector(theSelector);
|
||||||
}
|
}
|
||||||
|
|
||||||
selected = newSelected;
|
selectedElements[0] = newSelected;
|
||||||
|
selected = selectedElements[0];
|
||||||
|
|
||||||
if (selected != null) {
|
if (selected != null) {
|
||||||
selectedBBox = selected.getBBox();
|
selectedBBox = selected.getBBox();
|
||||||
@@ -741,6 +748,7 @@ function SvgCanvas(c)
|
|||||||
var mouseMove = function(evt)
|
var mouseMove = function(evt)
|
||||||
{
|
{
|
||||||
if (!started) return;
|
if (!started) return;
|
||||||
|
var selected = selectedElements[0];
|
||||||
var x = evt.pageX - container.parentNode.offsetLeft + container.parentNode.scrollLeft;
|
var x = evt.pageX - container.parentNode.offsetLeft + container.parentNode.scrollLeft;
|
||||||
var y = evt.pageY - container.parentNode.offsetTop + container.parentNode.scrollTop;
|
var y = evt.pageY - container.parentNode.offsetTop + container.parentNode.scrollTop;
|
||||||
var shape = svgdoc.getElementById(getId());
|
var shape = svgdoc.getElementById(getId());
|
||||||
@@ -871,6 +879,7 @@ function SvgCanvas(c)
|
|||||||
{
|
{
|
||||||
if (!started) return;
|
if (!started) return;
|
||||||
|
|
||||||
|
var selected = selectedElements[0];
|
||||||
started = false;
|
started = false;
|
||||||
var element = svgdoc.getElementById(getId());
|
var element = svgdoc.getElementById(getId());
|
||||||
var keep = false;
|
var keep = false;
|
||||||
@@ -1128,6 +1137,7 @@ function SvgCanvas(c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.getText = function() {
|
this.getText = function() {
|
||||||
|
var selected = selectedElements[0];
|
||||||
if (selected == null) { return ""; }
|
if (selected == null) { return ""; }
|
||||||
return selected.textContent;
|
return selected.textContent;
|
||||||
}
|
}
|
||||||
@@ -1137,6 +1147,7 @@ function SvgCanvas(c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.setRectRadius = function(val) {
|
this.setRectRadius = function(val) {
|
||||||
|
var selected = selectedElements[0];
|
||||||
if (selected != null && selected.tagName == "rect") {
|
if (selected != null && selected.tagName == "rect") {
|
||||||
var r = selected.getAttribute("rx");
|
var r = selected.getAttribute("rx");
|
||||||
if (r != val) {
|
if (r != val) {
|
||||||
@@ -1149,6 +1160,7 @@ function SvgCanvas(c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.changeSelectedAttribute = function(attr, val) {
|
this.changeSelectedAttribute = function(attr, val) {
|
||||||
|
var selected = selectedElements[0];
|
||||||
if (selected != null) {
|
if (selected != null) {
|
||||||
var oldval = (attr == "#text" ? selected.textContent : selected.getAttribute(attr));
|
var oldval = (attr == "#text" ? selected.textContent : selected.getAttribute(attr));
|
||||||
if (oldval != val) {
|
if (oldval != val) {
|
||||||
@@ -1177,6 +1189,7 @@ function SvgCanvas(c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.deleteSelectedElement = function() {
|
this.deleteSelectedElement = function() {
|
||||||
|
var selected = selectedElements[0];
|
||||||
if (selected != null) {
|
if (selected != null) {
|
||||||
var parent = selected.parentNode;
|
var parent = selected.parentNode;
|
||||||
var t = selected;
|
var t = selected;
|
||||||
@@ -1188,6 +1201,7 @@ function SvgCanvas(c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.moveToTopSelectedElement = function() {
|
this.moveToTopSelectedElement = function() {
|
||||||
|
var selected = selectedElements[0];
|
||||||
if (selected != null) {
|
if (selected != null) {
|
||||||
var t = selected;
|
var t = selected;
|
||||||
var oldParent = t.parentNode;
|
var oldParent = t.parentNode;
|
||||||
@@ -1199,6 +1213,7 @@ function SvgCanvas(c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.moveToBottomSelectedElement = function() {
|
this.moveToBottomSelectedElement = function() {
|
||||||
|
var selected = selectedElements[0];
|
||||||
if (selected != null) {
|
if (selected != null) {
|
||||||
var t = selected;
|
var t = selected;
|
||||||
var oldParent = t.parentNode;
|
var oldParent = t.parentNode;
|
||||||
@@ -1210,6 +1225,7 @@ function SvgCanvas(c)
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.moveSelectedElement = function(dx,dy) {
|
this.moveSelectedElement = function(dx,dy) {
|
||||||
|
var selected = selectedElements[0];
|
||||||
if (selected != null) {
|
if (selected != null) {
|
||||||
selectedBBox = selected.getBBox();
|
selectedBBox = selected.getBBox();
|
||||||
selectedBBox.x += dx;
|
selectedBBox.x += dx;
|
||||||
|
|||||||
Reference in New Issue
Block a user