|
@@ -377,7 +377,10 @@ let JpcCanvasOutput = {
|
|
|
const rst = [0, 0, 0, 0]; // left, top, right, bottom
|
|
|
if (cell && cell[JV.PROP_AREA]) {
|
|
|
let width = cell[JV.PROP_AREA][JV.PROP_RIGHT] - cell[JV.PROP_AREA][JV.PROP_LEFT],
|
|
|
- height = cell[JV.PROP_AREA][JV.PROP_BOTTOM] - cell[JV.PROP_AREA][JV.PROP_TOP];
|
|
|
+ height = cell[JV.PROP_AREA][JV.PROP_BOTTOM] - cell[JV.PROP_AREA][JV.PROP_TOP],
|
|
|
+ centerPh = (cell[JV.PROP_AREA][JV.PROP_RIGHT] + cell[JV.PROP_AREA][JV.PROP_LEFT]) / 2,
|
|
|
+ centerPv = (cell[JV.PROP_AREA][JV.PROP_BOTTOM] + cell[JV.PROP_AREA][JV.PROP_TOP]) / 2
|
|
|
+ ;
|
|
|
if (width > height * 2) {
|
|
|
width = height * 2;
|
|
|
} else {
|
|
@@ -385,23 +388,32 @@ let JpcCanvasOutput = {
|
|
|
}
|
|
|
switch (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_HORIZON]]) {
|
|
|
case 'left':
|
|
|
- rst[0] = cell[JV.PROP_AREA][JV.PROP_LEFT];
|
|
|
- rst[1] = cell[JV.PROP_AREA][JV.PROP_TOP];
|
|
|
- rst[2] = rst[0] + width;
|
|
|
- rst[3] = rst[1] + height;
|
|
|
+ rst[JV.IDX_LEFT] = cell[JV.PROP_AREA][JV.PROP_LEFT];
|
|
|
+ rst[JV.IDX_RIGHT] = rst[0] + width;
|
|
|
break;
|
|
|
case 'right':
|
|
|
- rst[2] = cell[JV.PROP_AREA][JV.PROP_RIGHT];
|
|
|
- rst[3] = cell[JV.PROP_AREA][JV.PROP_BOTTOM];
|
|
|
- rst[0] = rst[2] - width;
|
|
|
- rst[1] = rst[3] - height;
|
|
|
+ rst[JV.IDX_RIGHT] = cell[JV.PROP_AREA][JV.PROP_RIGHT];
|
|
|
+ rst[JV.IDX_LEFT] = rst[JV.IDX_RIGHT] - width;
|
|
|
break;
|
|
|
default:
|
|
|
//center
|
|
|
- rst[0] = (cell[JV.PROP_AREA][JV.PROP_LEFT] + cell[JV.PROP_AREA][JV.PROP_RIGHT] - width) / 2;
|
|
|
- rst[1] = cell[JV.PROP_AREA][JV.PROP_TOP];
|
|
|
- rst[2] = rst[0] + width;
|
|
|
- rst[3] = rst[1] + height;
|
|
|
+ rst[JV.IDX_LEFT] = centerPh - width / 2;
|
|
|
+ rst[JV.IDX_RIGHT] = centerPh + width / 2;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ switch (control[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_VERTICAL]]) {
|
|
|
+ case 'top':
|
|
|
+ rst[JV.IDX_TOP] = cell[JV.PROP_AREA][JV.PROP_TOP];
|
|
|
+ rst[JV.IDX_BOTTOM] = rst[JV.IDX_TOP] + height;
|
|
|
+ break;
|
|
|
+ case 'bottom':
|
|
|
+ rst[JV.IDX_BOTTOM] = cell[JV.PROP_AREA][JV.PROP_BOTTOM];
|
|
|
+ rst[JV.IDX_TOP] = rst[JV.IDX_BOTTOM] - height;
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ //center
|
|
|
+ rst[JV.IDX_TOP] = centerPv - height / 2;
|
|
|
+ rst[JV.IDX_BOTTOM] = centerPv + height / 2;
|
|
|
break;
|
|
|
}
|
|
|
}
|