Commit 77c4bb6f authored by Ilya.Kirillov's avatar Ilya.Kirillov Committed by Alexander.Trofimov

Добавлены функии в документ для включения/выключение тихой работы, т.е. без...

Добавлены функии в документ для включения/выключение тихой работы, т.е. без пересчета, без обновления курсора и интерфейса. Добавлена функция в апи для добавления картинки на заданную страницу.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@61485 954022d7-b5bf-4e40-9824-e11837661b57
parent 8bd63694
......@@ -13517,32 +13517,22 @@ CDocument.prototype =
{
this.Create_NewHistoryPoint();
if ( undefined === rFonts )
{
// Отключаем пересчет, включим перед последним добавлением. Поскольку,
// у нас все добавляется в 1 параграф, так можно делать.
this.TurnOffRecalc = true;
this.TurnOff_InterfaceEvents();
this.TurnOff_RecalculateCurPos();
this.Start_SilentMode();
if ( undefined === rFonts )
{
var Count = sText.length;
var e = global_keyboardEvent;
for ( var Index = 0; Index < Count; Index++ )
{
if ( Index === Count - 1 )
this.TurnOffRecalc = false;
var _char = sText.charAt(Index);
if (" " == _char)
this.Paragraph_Add(new ParaSpace());
else
this.Paragraph_Add(new ParaText(_char));
}
// На случай, если Count = 0
this.TurnOffRecalc = false;
this.TurnOn_RecalculateCurPos(false);
this.TurnOn_InterfaceEvents(true);
}
else
{
......@@ -13570,11 +13560,9 @@ CDocument.prototype =
}
Para.Add( Run );
this.Recalculate();
}
this.Document_UpdateUndoRedoState();
this.End_SilentMode(true);
}
},
//-----------------------------------------------------------------------------------
......@@ -14504,6 +14492,18 @@ CDocument.prototype.Get_EditingType = function()
{
return this.EditingType;
};
CDocument.prototype.Start_SilentMode = function()
{
this.TurnOff_Recalculate();
this.TurnOff_InterfaceEvents();
this.TurnOff_RecalculateCurPos();
};
CDocument.prototype.End_SilentMode = function(bUpdate)
{
this.TurnOn_Recalculate(bUpdate);
this.TurnOn_RecalculateCurPos(bUpdate);
this.TurnOn_InterfaceEvents(bUpdate);
};
//-----------------------------------------------------------------------------------
//
......
......@@ -4681,6 +4681,43 @@ asc_docs_api.prototype.AddImageUrlAction = function(url, imgProp)
}
}
};
/*
Добавляем картинку на заданную страницу. Преполагаем, что картинка уже доступна по ссылке.
*/
asc_docs_api.prototype.AddImageToPage = function(sUrl, nPageIndex, dX, dY, dW, dH)
{
var LogicDocument = this.WordControl.m_oLogicDocument;
var oldClickCount = global_mouseEvent.ClickCount;
global_mouseEvent.Button = 0;
global_mouseEvent.ClickCount = 1;
LogicDocument.OnMouseDown(global_mouseEvent, dX, dY, nPageIndex);
LogicDocument.OnMouseUp (global_mouseEvent, dX, dY, nPageIndex);
LogicDocument.OnMouseMove(global_mouseEvent, dX, dY, nPageIndex);
global_mouseEvent.ClickCount = oldClickCount;
if (false === LogicDocument.Document_Is_SelectionLocked(changestype_Paragraph_Content))
{
var oPosH = new CImagePositionH();
oPosH.put_RelativeFrom(c_oAscRelativeFromH.Page);
oPosH.put_Align(false);
oPosH.put_Value(dX);
var oPosV = new CImagePositionV();
oPosV.put_RelativeFrom(c_oAscRelativeFromV.Page);
oPosV.put_Align(false);
oPosV.put_Value(dY);
var oImageProps = new asc_CImgProperty();
oImageProps.put_WrappingStyle(c_oAscWrapStyle2.Square);
oImageProps.put_PositionH(oPosH);
oImageProps.put_PositionV(oPosV);
LogicDocument.Create_NewHistoryPoint();
LogicDocument.Start_SilentMode();
LogicDocument.Add_InlineImage(dW, dH, sUrl);
LogicDocument.Set_ImageProps(oImageProps);
LogicDocument.End_SilentMode(true);
}
};
/* В качестве параметра передается объект класса asc_CImgProperty, он же приходит на OnImgProp
asc_CImgProperty заменяет пережнюю структуру:
если параметр не имеет значения то передвать следует null, напримере inline-картинок: в качестве left,top,bottom,right,X,Y,ImageUrl необходимо передавать null.
......
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