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