Commit ac56d067 authored by Alexey.Musinov's avatar Alexey.Musinov Committed by Alexander.Trofimov

[ios] paste image's

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@65053 954022d7-b5bf-4e40-9824-e11837661b57
parent 57732e28
...@@ -261,7 +261,7 @@ document.createElement = function(type) ...@@ -261,7 +261,7 @@ document.createElement = function(type)
return _null_object; return _null_object;
}; };
function _return_empty_html_element() { return _null_object; }; function _return_empty_html_element() { return _null_object; }
document.createDocumentFragment = _return_empty_html_element; document.createDocumentFragment = _return_empty_html_element;
document.getElementsByTagName = function(tag) { document.getElementsByTagName = function(tag) {
...@@ -622,6 +622,15 @@ window.native.Call_Menu_Event = function(type, _params) ...@@ -622,6 +622,15 @@ window.native.Call_Menu_Event = function(type, _params)
return _api.Call_Menu_Event(type, _params); return _api.Call_Menu_Event(type, _params);
}; };
window["NativeCorrectImageUrlOnPaste"] = function(url)
{
return window["native"]["CorrectImageUrlOnPaste"](url);
};
window["NativeCorrectImageUrlOnCopy"] = function(url)
{
return window["native"]["CorrectImageUrlOnCopy"](url);
};
// FT_Common // FT_Common
function _FT_Common() function _FT_Common()
{ {
...@@ -2160,6 +2169,129 @@ function OfflineEditor () { ...@@ -2160,6 +2169,129 @@ function OfflineEditor () {
var str = pdfWriter.DocumentRenderer.Memory.GetBase64Memory(); var str = pdfWriter.DocumentRenderer.Memory.GetBase64Memory();
return str; return str;
}; };
this.offline_addImageDrawingObject = function(imageUrl, options) {
var worksheet = _api.wb.getWorksheet();
var objectRender = worksheet.objectRender;
var _this = objectRender;
function ascCvtRatio(fromUnits, toUnits) {
return asc.getCvtRatio(fromUnits, toUnits, objectRender.getContext().getPPIX());
}
function ptToMm(val) {
return val * ascCvtRatio(1, 3);
}
function pxToPt(val) {
return val * ascCvtRatio(0, 1);
}
function pxToMm(val) {
return val * ascCvtRatio(0, 3);
}
if (imageUrl && !objectRender.isViewerMode()) {
var _image = _api.ImageLoader.LoadImage(imageUrl, 1);
var isOption = true;//options && options.cell;
var calculateObjectMetrics = function (object, width, height) {
// Обработка картинок большого разрешения
var metricCoeff = 1;
var coordsFrom = _this.coordsManager.calculateCoords(object.from);
var realTopOffset = coordsFrom.y;
var realLeftOffset = coordsFrom.x;
var areaWidth = worksheet.getCellLeft(worksheet.getLastVisibleCol(), 0) - worksheet.getCellLeft(worksheet.getFirstVisibleCol(true), 0); // по ширине
if (areaWidth < width) {
metricCoeff = width / areaWidth;
width = areaWidth;
height /= metricCoeff;
}
var areaHeight = worksheet.getCellTop(worksheet.getLastVisibleRow(), 0) - worksheet.getCellTop(worksheet.getFirstVisibleRow(true), 0); // по высоте
if (areaHeight < height) {
metricCoeff = height / areaHeight;
height = areaHeight;
width /= metricCoeff;
}
var findVal = pxToPt(realLeftOffset + width);
var toCell = worksheet.findCellByXY(findVal, 0, true, false, true);
while (toCell.col === null && worksheet.cols.length < gc_nMaxCol) {
worksheet.expandColsOnScroll(true);
toCell = worksheet.findCellByXY(findVal, 0, true, false, true);
}
object.to.col = toCell.col;
object.to.colOff = ptToMm(toCell.colOff);
findVal = pxToPt(realTopOffset + height);
toCell = worksheet.findCellByXY(0, findVal, true, true, false);
while (toCell.row === null && worksheet.rows.length < gc_nMaxRow) {
worksheet.expandRowsOnScroll(true);
toCell = worksheet.findCellByXY(0, findVal, true, true, false);
}
object.to.row = toCell.row;
object.to.rowOff = ptToMm(toCell.rowOff);
// worksheet.handlers.trigger("reinitializeScroll");
};
var addImageObject = function (_image) {
//if (!_image.Image) {
// worksheet.model.workbook.handlers.trigger("asc_onError", c_oAscError.ID.UplImageUrl, c_oAscError.Level.NoCritical);
//} else {
var drawingObject = _this.createDrawingObject();
drawingObject.worksheet = worksheet;
drawingObject.from.col = //isOption ? options.cell.col :
worksheet.getSelectedColumnIndex();
drawingObject.from.row = //isOption ? options.cell.row :
worksheet.getSelectedRowIndex();
// Проверяем начальные координаты при вставке
while (!worksheet.cols[drawingObject.from.col]) {
worksheet.expandColsOnScroll(true);
}
worksheet.expandColsOnScroll(true); // для colOff
while (!worksheet.rows[drawingObject.from.row]) {
worksheet.expandRowsOnScroll(true);
}
worksheet.expandRowsOnScroll(true); // для rowOff
//calculateObjectMetrics(drawingObject, isOption ? options.width : _image.Image.width, isOption ? options.height : _image.Image.height);
calculateObjectMetrics(drawingObject, options.width, options.height);
var coordsFrom = _this.coordsManager.calculateCoords(drawingObject.from);
var coordsTo = _this.coordsManager.calculateCoords(drawingObject.to);
// CImage
_this.objectLocker.reset();
_this.objectLocker.addObjectId(g_oIdCounter.Get_NewId());
_this.objectLocker.checkObjects(function (bLock) {
if (bLock !== true)
return;
_this.controller.resetSelection();
_this.controller.addImageFromParams(imageUrl,
// _image.src,
pxToMm(coordsFrom.x) + MOVE_DELTA, pxToMm(coordsFrom.y) + MOVE_DELTA, pxToMm(coordsTo.x - coordsFrom.x), pxToMm(coordsTo.y - coordsFrom.y));
});
//}
worksheet.setSelectionShape(true);
};
addImageObject(new Image());
}
};
} }
var _s = new OfflineEditor(); var _s = new OfflineEditor();
...@@ -2182,6 +2314,9 @@ function offline_mouse_down(x, y, pin) { ...@@ -2182,6 +2314,9 @@ function offline_mouse_down(x, y, pin) {
wb._onUpdateSelectionShape(true); wb._onUpdateSelectionShape(true);
_s.isShapeAction = true; _s.isShapeAction = true;
// _s.selectShapeWidth = graphicsInfo.object.graphicObject.extX;
// _s.selectShapeHeight = graphicsInfo.object.graphicObject.extY;
return {id:graphicsInfo.id}; return {id:graphicsInfo.id};
} }
...@@ -2430,9 +2565,8 @@ function offline_copy() { ...@@ -2430,9 +2565,8 @@ function offline_copy() {
return _stream; return _stream;
} }
// text format _stream["WriteByte"](0);
// _stream["WriteByte"](0); _stream["WriteString2"](sBase64.text);
// _stream["WriteString2"](sBase64.text);
// image // image
if (null != sBase64.drawingUrls && sBase64.drawingUrls.length > 0) if (null != sBase64.drawingUrls && sBase64.drawingUrls.length > 0)
...@@ -2440,36 +2574,34 @@ function offline_copy() { ...@@ -2440,36 +2574,34 @@ function offline_copy() {
_stream["WriteByte"](1); _stream["WriteByte"](1);
_stream["WriteStringA"](sBase64.drawingUrls[0]); _stream["WriteStringA"](sBase64.drawingUrls[0]);
} }
else // else
{ //{
_stream["WriteByte"](0); // owner format
_stream["WriteString2"](sBase64.text); _stream["WriteByte"](2);
} _stream["WriteStringA"](sBase64.sBase64);
// }
// owner format
_stream["WriteByte"](2);
_stream["WriteStringA"](sBase64.sBase64);
_stream["WriteByte"](3); // _stream["WriteByte"](3);
_stream["WriteString2"](sBase64.html); // _stream["WriteString2"](sBase64.html);
_stream["WriteByte"](255); _stream["WriteByte"](255);
return _stream; return _stream;
} }
function offline_paste(type, param) { function offline_paste(params) {
var type = params[0];
if (0 == type) if (0 == type)
{ {
// TEXT // TEXT
} }
else if (1 == type) else if (1 == type)
{ {
// IMAGE _s.offline_addImageDrawingObject(params[1], {width: params[2], height: params[3]});
} }
else if (2 == type) else if (2 == type)
{ {
var worksheet = _api.wb.getWorksheet(); var worksheet = _api.wb.getWorksheet();
_api.wb.clipboard._pasteFromBinaryExcel(worksheet, param); _api.wb.clipboard._pasteFromBinaryExcel(worksheet, params[1]);
} }
} }
function offline_cut() { function offline_cut() {
...@@ -2628,7 +2760,7 @@ function offline_apply_event(type,params) { ...@@ -2628,7 +2760,7 @@ function offline_apply_event(type,params) {
} }
case 112: // ASC_MENU_EVENT_TYPE_CONTEXTMENU_PASTE case 112: // ASC_MENU_EVENT_TYPE_CONTEXTMENU_PASTE
{ {
offline_paste(params[0], params[1]); offline_paste(params);
break; break;
} }
case 113: // ASC_MENU_EVENT_TYPE_CONTEXTMENU_DELETE case 113: // ASC_MENU_EVENT_TYPE_CONTEXTMENU_DELETE
......
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