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
...@@ -13516,33 +13516,23 @@ CDocument.prototype = ...@@ -13516,33 +13516,23 @@ CDocument.prototype =
if ( false === this.Document_Is_SelectionLocked(changestype_Paragraph_Content) ) if ( false === this.Document_Is_SelectionLocked(changestype_Paragraph_Content) )
{ {
this.Create_NewHistoryPoint(); this.Create_NewHistoryPoint();
// Отключаем пересчет, включим перед последним добавлением. Поскольку,
// у нас все добавляется в 1 параграф, так можно делать.
this.Start_SilentMode();
if ( undefined === rFonts ) if ( undefined === rFonts )
{ {
// Отключаем пересчет, включим перед последним добавлением. Поскольку,
// у нас все добавляется в 1 параграф, так можно делать.
this.TurnOffRecalc = true;
this.TurnOff_InterfaceEvents();
this.TurnOff_RecalculateCurPos();
var Count = sText.length; var Count = sText.length;
var e = global_keyboardEvent; var e = global_keyboardEvent;
for ( var Index = 0; Index < Count; Index++ ) for ( var Index = 0; Index < Count; Index++ )
{ {
if ( Index === Count - 1 )
this.TurnOffRecalc = false;
var _char = sText.charAt(Index); var _char = sText.charAt(Index);
if (" " == _char) if (" " == _char)
this.Paragraph_Add(new ParaSpace()); this.Paragraph_Add(new ParaSpace());
else else
this.Paragraph_Add(new ParaText(_char)); this.Paragraph_Add(new ParaText(_char));
} }
// На случай, если Count = 0
this.TurnOffRecalc = false;
this.TurnOn_RecalculateCurPos(false);
this.TurnOn_InterfaceEvents(true);
} }
else else
{ {
...@@ -13570,11 +13560,9 @@ CDocument.prototype = ...@@ -13570,11 +13560,9 @@ CDocument.prototype =
} }
Para.Add( Run ); Para.Add( Run );
this.Recalculate();
} }
this.Document_UpdateUndoRedoState(); this.End_SilentMode(true);
} }
}, },
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
...@@ -14504,6 +14492,18 @@ CDocument.prototype.Get_EditingType = function() ...@@ -14504,6 +14492,18 @@ CDocument.prototype.Get_EditingType = function()
{ {
return this.EditingType; 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) ...@@ -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, он же приходит на OnImgProp
asc_CImgProperty заменяет пережнюю структуру: asc_CImgProperty заменяет пережнюю структуру:
если параметр не имеет значения то передвать следует null, напримере inline-картинок: в качестве left,top,bottom,right,X,Y,ImageUrl необходимо передавать null. если параметр не имеет значения то передвать следует 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