Commit 490e7d7a authored by Anna.Pavlova's avatar Anna.Pavlova Committed by Alexander.Trofimov

1. Поправила баг : не применялись текстовые настройки для добавленной из меню...

1. Поправила баг : не применялись текстовые настройки для добавленной из меню формулы, если ее добавляли в конец контента
2. Добавление амперсанда сделала через класс CMathAmp.
Поправила баги на поиск позиции, отрисовку селекта для обычного текстового амперсанда (реализованного через этот класс)

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@58986 954022d7-b5bf-4e40-9824-e11837661b57
parent 3bf9a2e6
......@@ -166,9 +166,19 @@ ParaMath.prototype.Add = function(Item)
if (para_Text === Type)
{
var oText = new CMathText(false);
oText.add(Item.Value);
Run.Add(oText, true);
if(Item.Value == 38)
{
var Amper = new CMathAmp();
Run.Add(Amper, true);
}
else
{
var oText = new CMathText(false);
oText.add(Item.Value);
Run.Add(oText, true);
}
}
else if (para_Space === Type)
{
......@@ -186,7 +196,6 @@ ParaMath.prototype.Add = function(Item)
this.Get_ParaContentPos(false, false, ContentPos);
var MathTxtPr = this.Root.GetMathTextPr(ContentPos, 0);
var lng = oContent.content.length;
// Нам нужно разделить данный Run на 2 части
var RightRun = Run.Split2(Run.State.ContentPos);
......@@ -194,10 +203,11 @@ ParaMath.prototype.Add = function(Item)
oContent.Internal_Content_Add(StartPos + 1, RightRun, false);
oContent.CurPos = StartPos;
var lng = oContent.content.length;
oContent.Load_FromMenu(Item.Menu, this.Paragraph);
var lng2 = oContent.content.length;
oContent.Set_MathTextPr2(MathTxtPr.TextPr, MathTxtPr.MathPr, false, StartPos, lng2 - lng + 1);
oContent.Set_MathTextPr2(MathTxtPr.TextPr, MathTxtPr.MathPr, false, StartPos + 1, lng2 - lng);
oContent.CurPos = StartPos + 2; // позиция RightRun
RightRun.Cursor_MoveToStartPos();
......
......@@ -681,8 +681,15 @@ ParaRun.prototype.Recalculate_CurPos = function(X, Y, CurrentRun, _CurRange, _Cu
}
case para_Math_Ampersand:
{
PointsInfo.NextAlignRange();
X += PointsInfo.GetAlign();
if(this.bEqqArray)
{
PointsInfo.NextAlignRange();
X += PointsInfo.GetAlign();
}
else
X += Item.Get_WidthVisible();
break;
}
}
}
......@@ -3748,7 +3755,7 @@ ParaRun.prototype.Get_ParaContentPosByXY = function(SearchPos, Depth, _CurLine,
var TempDx = 0;
if(para_Math_Ampersand === ItemType)
if(para_Math_Ampersand === ItemType && this.bEqqArray)
{
if (null !== this.Parent)
{
......@@ -4430,7 +4437,7 @@ ParaRun.prototype.Selection_DrawRange = function(_CurLine, _CurRange, SelectionD
}
else
{
if(para_Math_Ampersand == ItemType)
if(para_Math_Ampersand == ItemType && this.bEqqArray)
{
PointsInfo.NextAlignRange();
SelectionDraw.StartX += PointsInfo.GetAlign();
......@@ -4451,7 +4458,7 @@ ParaRun.prototype.Selection_DrawRange = function(_CurLine, _CurRange, SelectionD
{
if (true === SelectionDraw.Draw && para_Drawing === ItemType && true !== Item.Is_Inline())
Item.Draw_Selection();
else if (para_Math_Ampersand === ItemType)
else if (para_Math_Ampersand === ItemType && this.bEqqArray)
{
PointsInfo.NextAlignRange();
SelectionDraw.W += PointsInfo.GetAlign();
......@@ -4493,7 +4500,7 @@ ParaRun.prototype.Selection_IsEmpty = function(CheckEnd)
for ( var CurPos = StartPos; CurPos < EndPos; CurPos++ )
{
var ItemType = this.Content[CurPos].Type;
if (para_End !== ItemType && para_Math_Ampersand !== ItemType) // para_math_Ampersand имеет нулевую ширину, поэтому чтобы не случилось так что не было ни селекта, ни курсора, не учитываем para_Math_Ampersand
if (para_End !== ItemType && !(para_Math_Ampersand == ItemType && this.bEqqArray)) // para_math_Ampersand имеет нулевую ширину, поэтому чтобы не случилось так что не было ни селекта, ни курсора, не учитываем para_Math_Ampersand
return false;
}
}
......
......@@ -793,7 +793,7 @@ function CMathAmp()
this.pos = new CMathPosition();
this.AmpText = new CMathText(true);
this.AmpText = new CMathText(false);
this.AmpText.add(0x26);
this.size = null;
......@@ -805,7 +805,7 @@ CMathAmp.prototype =
{
this.bEqqArray = RPI.bEqqArray;
this.AmpText.Resize(oMeasure, this, RPI);
this.AmpText.Resize(oMeasure, RPI);
if(this.bEqqArray)
{
......@@ -829,10 +829,9 @@ CMathAmp.prototype =
},
PreRecalc: function(Parent, ParaMath, ArgSize, RPI)
{
if(!this.bJDraw)
this.Parent = Parent;
else
this.Parent = null;
this.Parent = Parent;
this.AmpText.PreRecalc(Parent, ParaMath, ArgSize, RPI);
},
Get_WidthVisible: function()
{
......
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