Commit af86c5a0 authored by Sergey Luzyanin's avatar Sergey Luzyanin

build mobile sdk only for slide;

fix typos in chartsdrawer;
selecting plotarea;
control for changing angles in 3d-charts;
creating group of shapes instead shape with txXfrm
parent dfc185c3
CD /D %~dp0
call npm install -g grunt-cli
call npm install
call grunt --level=WHITESPACE_ONLY --mobile=true --formatting=PRETTY_PRINT
call grunt build_webpowerpoint --level=WHITESPACE_ONLY --mobile=true --formatting=PRETTY_PRINT
copy /b ..\slide\sdk-all-min.js + ..\slide\sdk-all.js ..\..\core\test_mobile\script.bin
pause
\ No newline at end of file
This diff is collapsed.
......@@ -532,6 +532,59 @@ function handleInternalChart(drawing, drawingObjectsController, e, x, y, group,
}
}
//todo gridlines
//plotArea
var oChartSizes = drawing.getChartSizes();
var oInvertTransform = drawing.invertTransform;
var dTx = oInvertTransform.TransformPointX(x, y);
var dTy = oInvertTransform.TransformPointY(x, y);
if(dTx >= oChartSizes.startX && dTx <= oChartSizes.startX + oChartSizes.w
&& dTy >= oChartSizes.startY && dTy <= oChartSizes.startY + oChartSizes.h)
{
if(drawingObjectsController.handleEventMode === HANDLE_EVENT_MODE_HANDLE)
{
if(drawing.selection.plotArea == null || !AscFormat.CChartsDrawer.prototype._isSwitchCurrent3DChart(drawing))
{
drawingObjectsController.checkChartTextSelection();
selector.resetSelection();
selector.selectObject(drawing, pageIndex);
selector.selection.chartSelection = drawing;
drawing.selection.plotArea = drawing.chart.plotArea;
}
else
{
drawing.selection.plotArea = drawing.chart.plotArea;
drawing.selection.rotatePlotArea = true;
drawingObjectsController.updateSelectionState();
drawingObjectsController.updateOverlay();
drawingObjectsController.arrPreTrackObjects.length = 0;
drawingObjectsController.arrPreTrackObjects.push(new AscFormat.Chart3dAdjustTrack(drawing, 0, x, y));
if(!isRealObject(group))
{
drawingObjectsController.changeCurrentState(new AscFormat.PreChangeAdjState(drawingObjectsController, drawing));
}
else
{
drawingObjectsController.changeCurrentState(new AscFormat.PreChangeAdjInGroupState(drawingObjectsController, group));
}
return true;
}
drawingObjectsController.updateSelectionState();
drawingObjectsController.updateOverlay();
return true;
}
else
{
return {objectId: drawing.Get_Id(), cursorType: "default", bMarker: false};
}
}
}
return ret;
}
......
......@@ -552,6 +552,7 @@ function CChartSpace()
dataLbls: null,
dataLbl: null,
plotArea: null,
rotatePlotArea: null,
gridLines: null,
series: null,
datPoint: null,
......@@ -638,6 +639,31 @@ CChartSpace.prototype.drawSelect = function(drawingDocument, nPageIndex)
var oLabels = this.selection.axisLbls.labels;
drawingDocument.DrawTrack(AscFormat.TYPE_TRACK.CHART_TEXT, this.transform, oLabels.x, oLabels.y, oLabels.extX, oLabels.extY, false, false);
}
else if(this.selection.plotArea)
{
var oChartSize = this.getChartSizes();
drawingDocument.DrawTrack(AscFormat.TYPE_TRACK.CHART_TEXT, this.transform, oChartSize.startX, oChartSize.startY, oChartSize.w, oChartSize.h, false, false);
/*if(!this.selection.rotatePlotArea)
{
drawingDocument.DrawTrack(AscFormat.TYPE_TRACK.CHART_TEXT, this.transform, oChartSize.startX, oChartSize.startY, oChartSize.w, oChartSize.h, false, false);
}
else
{
var arr = [
{x: oChartSize.startX, y: oChartSize.startY},
{x: oChartSize.startX + oChartSize.w/2, y: oChartSize.startY},
{x: oChartSize.startX + oChartSize.w, y: oChartSize.startY},
{x: oChartSize.startX + oChartSize.w, y: oChartSize.startY + oChartSize.h/2},
{x: oChartSize.startX + oChartSize.w, y: oChartSize.startY + oChartSize.h},
{x: oChartSize.startX + oChartSize.w/2, y: oChartSize.startY + oChartSize.h},
{x: oChartSize.startX, y: oChartSize.startY + oChartSize.h},
{x: oChartSize.startX, y: oChartSize.startY + oChartSize.h/2},
{x: oChartSize.startX, y: oChartSize.startY}
];
drawingDocument.AutoShapesTrack.DrawEditWrapPointsPolygon(arr, this.transform);
}*/
}
}
};
CChartSpace.prototype.recalculateTextPr = function()
......@@ -666,6 +692,7 @@ CChartSpace.prototype.getSelectionState = function()
dataLbl: this.selection.dataLbl,
textSelection: this.selection.textSelection,
plotArea: this.selection.plotArea,
rotatePlotArea: this.selection.rotatePlotArea,
contentSelection: content_selection,
recalcTitle: this.recalcInfo.recalcTitle,
bRecalculatedTitle: this.recalcInfo.bRecalculatedTitle
......@@ -679,6 +706,7 @@ CChartSpace.prototype.setSelectionState = function(state)
this.selection.axisLbls = state.axisLbls;
this.selection.dataLbls = state.dataLbls;
this.selection.dataLbl = state.dataLbl;
this.selection.rotatePlotArea = state.rotatePlotArea;
this.selection.textSelection = state.textSelection;
this.selection.plotArea = state.plotArea;
if(isRealObject(state.recalcTitle))
......@@ -705,6 +733,7 @@ CChartSpace.prototype.loadDocumentStateAfterLoadChanges = function(state)
this.selection.dataLbls = null;
this.selection.dataLbl = null;
this.selection.plotArea = null;
this.selection.rotatePlotArea = null;
this.selection.gridLine = null;
this.selection.series = null;
this.selection.datPoint = null;
......@@ -742,6 +771,7 @@ CChartSpace.prototype.resetSelection = function(noResetContentSelect)
this.selection.dataLbl = null;
this.selection.textSelection = null;
this.selection.plotArea = null;
this.selection.rotatePlotArea = null;
};
CChartSpace.prototype.getStyles = function()
{
......@@ -1075,6 +1105,7 @@ CChartSpace.prototype.selectTitle = function(title, pageIndex)
this.selection.dataLbl = null;
this.selection.textSelection = null;
this.selection.plotArea = null;
this.selection.rotatePlotArea = null;
};
CChartSpace.prototype.recalculateCurPos = AscFormat.DrawingObjectsController.prototype.recalculateCurPos;
CChartSpace.prototype.documentUpdateSelectionState = function()
......@@ -1683,6 +1714,7 @@ CChartSpace.prototype.clearFormatting = function(bNoClearShapeProps)
this.selection.dataLbls = null;
this.selection.dataLbl = null;
this.selection.plotArea = null;
this.selection.rotatePlotArea = null;
this.selection.gridLine = null;
this.selection.series = null;
this.selection.datPoint = null;
......
......@@ -596,10 +596,188 @@ function RotateTrackGroup(originalObject)
}
}
function Chart3dAdjustTrack(oChartSpace, numHandle, startX, startY)
{
this.chartSpace = oChartSpace;
this.numHandle = numHandle;
this.originalObject = oChartSpace;
this.originalShape = oChartSpace;
this.transform = this.originalObject.transform;
this.processor3D = oChartSpace.chartObj.processor3D;
this.depthPerspective = oChartSpace.chartObj.processor3D.depthPerspective;
this.startX = oChartSpace.invertTransform.TransformPointX(startX, startY);
this.startY = oChartSpace.invertTransform.TransformPointY(startX, startY);
AscFormat.ExecuteNoHistory(function(){
this.view3D = oChartSpace.chart.view3D.createDuplicate();
this.chartSizes = this.chartSpace.getChartSizes();
this.cX = this.chartSizes.startX + this.chartSizes.w/2;
this.cY = this.chartSizes.startY + this.chartSizes.h/2;
this.geometry = new AscFormat.Geometry();
var oPen = new AscFormat.CLn();
oPen.w = 50000;
oPen.Fill = AscFormat.CreateSolidFillRGBA(0xcc, 0xe5, 0xff, 255);
this.objectToDraw = new OverlayObject(this.geometry, oChartSpace.extX, oChartSpace.extY, null, oPen, oChartSpace.transform );
var oPen2 = new AscFormat.CLn();
oPen2.w = 12400;
oPen2.Fill = AscFormat.CreateSolidFillRGBA(0, 0, 0, 255);
oPen2.prstDash = 0;
this.objectToDraw2 = new OverlayObject(this.geometry, oChartSpace.extX, oChartSpace.extY, null, oPen2, oChartSpace.transform );
var pxToMM = this.chartSpace.chartObj.calcProp.pxToMM;
var oChSz = this.chartSizes;
this.centerPoint = this.processor3D.convertAndTurnPoint((oChSz.startX + oChSz.w/2)*pxToMM, (oChSz.startY + oChSz.h/2)*pxToMM, this.depthPerspective/2);
}, this, []);
this.draw = function(overlay, transform)
{
if(AscFormat.isRealNumber(this.chartSpace.selectStartPage) && overlay.SetCurrentPage)
{
overlay.SetCurrentPage(this.chartSpace.selectStartPage);
}
this.objectToDraw.draw(overlay, transform);
this.objectToDraw2.draw(overlay, transform);
};
this.calculateGeometry = function()
{
AscFormat.ExecuteNoHistory(function(){
this.geometry.pathLst.length = 0;
var path = new AscFormat.Path();
path.pathW = this.chartSpace.extX;
path.pathH = this.chartSpace.extY;
path.stroke = true;
var pxToMM = this.chartSpace.chartObj.calcProp.pxToMM;
this.geometry.pathLst.push(path);
var oChSz = this.chartSizes;
var centerPoint2 = this.processor3D.convertAndTurnPoint((oChSz.startX + oChSz.w/2)*pxToMM, (oChSz.startY + oChSz.h/2)*pxToMM, this.depthPerspective/2);
var deltaX = (this.centerPoint.x - centerPoint2.x)/pxToMM;
var deltaY = (this.centerPoint.y - centerPoint2.y)/pxToMM;
var point1 = this.processor3D.convertAndTurnPoint(oChSz.startX*pxToMM, oChSz.startY*pxToMM, 0);
path.moveTo(point1.x/pxToMM + deltaX, point1.y/pxToMM + deltaY);
var point2 = this.processor3D.convertAndTurnPoint((oChSz.startX + oChSz.w) *pxToMM, oChSz.startY*pxToMM, 0);
path.lnTo(point2.x/pxToMM + deltaX, point2.y/pxToMM + deltaY);
var point3 = this.processor3D.convertAndTurnPoint((oChSz.startX + oChSz.w)*pxToMM, (oChSz.startY + oChSz.h)*pxToMM, 0);
path.lnTo(point3.x/pxToMM + deltaX, point3.y/pxToMM + deltaY);
var point4 = this.processor3D.convertAndTurnPoint((oChSz.startX)*pxToMM, (oChSz.startY + oChSz.h)*pxToMM, 0);
path.lnTo(point4.x/pxToMM + deltaX, point4.y/pxToMM + deltaY);
path.close();
var point1d = this.processor3D.convertAndTurnPoint(oChSz.startX*pxToMM, oChSz.startY*pxToMM, this.depthPerspective);
path.moveTo(point1d.x/pxToMM + deltaX, point1d.y/pxToMM + deltaY);
var point2d = this.processor3D.convertAndTurnPoint((oChSz.startX + oChSz.w) *pxToMM, oChSz.startY*pxToMM, this.depthPerspective);
path.lnTo(point2d.x/pxToMM + deltaX, point2d.y/pxToMM + deltaY);
var point3d = this.processor3D.convertAndTurnPoint((oChSz.startX + oChSz.w)*pxToMM, (oChSz.startY + oChSz.h)*pxToMM, this.depthPerspective);
path.lnTo(point3d.x/pxToMM + deltaX, point3d.y/pxToMM + deltaY);
var point4d = this.processor3D.convertAndTurnPoint((oChSz.startX)*pxToMM, (oChSz.startY + oChSz.h)*pxToMM, this.depthPerspective);
path.lnTo(point4d.x/pxToMM + deltaX, point4d.y/pxToMM + deltaY);
path.close();
path.moveTo(point1.x/pxToMM + deltaX, point1.y/pxToMM + deltaY);
path.lnTo(point1d.x/pxToMM + deltaX, point1d.y/pxToMM + deltaY);
path.moveTo(point2.x/pxToMM + deltaX, point2.y/pxToMM + deltaY);
path.lnTo(point2d.x/pxToMM + deltaX, point2d.y/pxToMM + deltaY);
path.moveTo(point3.x/pxToMM + deltaX, point3.y/pxToMM + deltaY);
path.lnTo(point3d.x/pxToMM + deltaX, point3d.y/pxToMM + deltaY);
path.moveTo(point4.x/pxToMM + deltaX, point4.y/pxToMM + deltaY);
path.lnTo(point4d.x/pxToMM + deltaX, point4d.y/pxToMM + deltaY);
this.geometry.Recalculate(this.chartSpace.extX, this.chartSpace.extY);
}, this, []);
};
this.getBounds = function()
{
var boundsChecker = new AscFormat.CSlideBoundsChecker();
this.draw(boundsChecker);
var tr = this.transform;
var arr_p_x = [];
var arr_p_y = [];
arr_p_x.push(tr.TransformPointX(0,0));
arr_p_y.push(tr.TransformPointY(0,0));
arr_p_x.push(tr.TransformPointX(this.originalObject.extX,0));
arr_p_y.push(tr.TransformPointY(this.originalObject.extX,0));
arr_p_x.push(tr.TransformPointX(this.originalObject.extX,this.originalObject.extY));
arr_p_y.push(tr.TransformPointY(this.originalObject.extX,this.originalObject.extY));
arr_p_x.push(tr.TransformPointX(0,this.originalObject.extY));
arr_p_y.push(tr.TransformPointY(0,this.originalObject.extY));
arr_p_x.push(boundsChecker.Bounds.min_x);
arr_p_x.push(boundsChecker.Bounds.max_x);
arr_p_y.push(boundsChecker.Bounds.min_y);
arr_p_y.push(boundsChecker.Bounds.max_y);
boundsChecker.Bounds.min_x = Math.min.apply(Math, arr_p_x);
boundsChecker.Bounds.max_x = Math.max.apply(Math, arr_p_x);
boundsChecker.Bounds.min_y = Math.min.apply(Math, arr_p_y);
boundsChecker.Bounds.max_y = Math.max.apply(Math, arr_p_y);
boundsChecker.Bounds.posX = this.originalObject.x;
boundsChecker.Bounds.posY = this.originalObject.y;
boundsChecker.Bounds.extX = this.originalObject.extX;
boundsChecker.Bounds.extY = this.originalObject.extY;
return boundsChecker.Bounds;
};
this.track = function(x, y)
{
var tx = this.chartSpace.invertTransform.TransformPointX(x, y);
var ty = this.chartSpace.invertTransform.TransformPointY(x, y);
var deltaAng = 0;
var StratRotY = oChartSpace.chart.view3D && oChartSpace.chart.view3D.rotY ? oChartSpace.chart.view3D.rotY : 0;
deltaAng = -90*(tx - this.startX)/(this.chartSizes.w/2);
this.view3D.rotY = StratRotY + deltaAng;
while(this.view3D.rotY < 0){
this.view3D.rotY += 360;
}
while(this.view3D.rotY > 360){
this.view3D.rotY -= 360;
}
var StratRotX = oChartSpace.chart.view3D && oChartSpace.chart.view3D.rotX ? oChartSpace.chart.view3D.rotX : 0;
deltaAng = 90*(ty - this.startY)/(this.chartSizes.h/2);
this.view3D.rotX = StratRotX + deltaAng;
while(this.view3D.rotX < 0){
this.view3D.rotX += 360;
}
while(this.view3D.rotX > 360){
this.view3D.rotX -= 360;
}
this.processor3D.angleOx = this.view3D && this.view3D.rotX ? (- this.view3D.rotX / 360) * (Math.PI * 2) : 0;
this.processor3D.angleOy = this.view3D && this.view3D.rotY ? (- this.view3D.rotY / 360) * (Math.PI * 2) : 0;
this.processor3D.angleOz = this.view3D && this.view3D.rotZ ? (- this.view3D.rotZ / 360) * (Math.PI * 2) : 0;
this.calculateGeometry();
};
this.trackEnd = function()
{
oChartSpace.chart.setView3D(this.view3D.createDuplicate());
oChartSpace.setRecalculateInfo();
}
}
//--------------------------------------------------------export----------------------------------------------------
window['AscFormat'] = window['AscFormat'] || {};
window['AscFormat'].OverlayObject = OverlayObject;
window['AscFormat'].ObjectToDraw = ObjectToDraw;
window['AscFormat'].RotateTrackShapeImage = RotateTrackShapeImage;
window['AscFormat'].RotateTrackGroup = RotateTrackGroup;
window['AscFormat'].Chart3dAdjustTrack = Chart3dAdjustTrack;
})(window);
\ No newline at end of file
......@@ -8730,6 +8730,7 @@ function CPres()
}
}
var oXFRM = null;
while (s.cur < _end_rec)
{
var _at = s.GetUChar();
......@@ -8804,7 +8805,7 @@ function CPres()
}
case 6:
{
var oXFRM = this.Reader.ReadXfrm();
oXFRM = this.Reader.ReadXfrm();
break;
}
default:
......@@ -8814,6 +8815,68 @@ function CPres()
}
}
if(oXFRM)
{
var oRet = new AscFormat.CGroupShape();
shape.setParent(null);
oRet.setParent(this.TempMainObject == null ? this.ParaDrawing : null);
oRet.setBDeleted(false);
var oSpPr = new AscFormat.CSpPr();
var oXfrm = new AscFormat.CXfrm();
oXfrm.setOffX(shape.spPr.xfrm.offX);
oXfrm.setOffY(shape.spPr.xfrm.offY);
oXfrm.setExtX(shape.spPr.xfrm.extX);
oXfrm.setExtY(shape.spPr.xfrm.extY);
oXfrm.setChExtX(shape.spPr.xfrm.extX);
oXfrm.setChExtY(shape.spPr.xfrm.extY);
oXfrm.setChOffX(0);
oXfrm.setChOffY(0);
oSpPr.setXfrm(oXfrm);
oXfrm.setParent(oSpPr);
shape.spPr.xfrm.setOffX(0);
shape.spPr.xfrm.setOffY(0);
oRet.setSpPr(oSpPr);
oSpPr.setParent(oRet);
oRet.addToSpTree(0, shape);
var oShape2 = new AscFormat.CShape();
var oSpPr2 = new AscFormat.CSpPr();
oShape2.setSpPr(oSpPr2);
oSpPr2.setParent(oShape2);
var oXfrm2 = oXFRM;
oXfrm2.setParent(oSpPr2);
oSpPr2.setXfrm(oXfrm2);
oXfrm2.setOffX(oXfrm2.offX - oXfrm.offX);
oXfrm2.setOffY(oXfrm2.offY - oXfrm.offY);
oSpPr2.setFill(AscFormat.CreateNoFillUniFill());
oSpPr2.setLn(AscFormat.CreateNoFillLine());
oShape2.setTxBody(shape.txBody);
shape.setTxBody(null);
shape.setGroup(oRet);
oShape2.setBDeleted(false);
oShape2.setWordShape(true);
if(shape.spPr.xfrm && AscFormat.isRealNumber(shape.spPr.xfrm.rot))
{
oXfrm2.setRot((AscFormat.isRealNumber(oXfrm2.rot) ? oXfrm2.rot : 0) + shape.spPr.xfrm.rot);
}
if(oShape2.txBody)
{
oShape2.txBody.setParent(oShape2);
}
if(shape.textBoxContent)
{
oShape2.setTextBoxContent(shape.textBoxContent.Copy(oShape2, shape.textBoxContent.DrawingDocument));
shape.setTextBoxContent(null);
}
if(shape.bodyPr)
{
oShape2.setBodyPr(shape.bodyPr);
shape.setBodyPr(null);
}
oRet.addToSpTree(1, oShape2);
oShape2.setGroup(oRet);
s.Seek2(_end_rec);
return oRet;
}
s.Seek2(_end_rec);
return shape;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment