[Layout] Utilize mct-drag

Utilize mct-drag in the layout view to allow editing
of frame position by drag. WTD-535.
This commit is contained in:
Victor Woeltjen
2014-12-05 08:51:41 -08:00
parent b941557b41
commit 847144c630
3 changed files with 91 additions and 13 deletions

View File

@ -0,0 +1,56 @@
/*global define*/
define(
[],
function () {
"use strict";
function LayoutDrag(rawPosition, posFactor, dimFactor, gridSize) {
function toGridDelta(pixelDelta) {
return pixelDelta.map(function (v, i) {
return Math.round(v / gridSize[i]);
});
}
function multiply(array, factors) {
return array.map(function (v, i) {
return v * factors[i];
});
}
function add(array, other) {
return array.map(function (v, i) {
return v + other[i];
});
}
function max(array, other) {
return array.map(function (v, i) {
return Math.max(v, other[i]);
});
}
function getAdjustedPosition(pixelDelta) {
var gridDelta = toGridDelta(pixelDelta);
return {
position: max(add(
rawPosition.position,
multiply(gridDelta, posFactor)
), [0, 0]),
dimensions: max(add(
rawPosition.dimensions,
multiply(gridDelta, dimFactor)
), [1, 1])
};
}
return {
getAdjustedPosition: getAdjustedPosition
};
}
return LayoutDrag;
}
);