Commit 6299e7c4 authored by Anna.Pavlova's avatar Anna.Pavlova Committed by Alexander.Trofimov

1. Поправила баг : не пересчитывались Gaps у элементов на быстром пересчете

2. Сокращение времени выполнения функций, свзанных с выставлением Gaps за счет :
   a. сокращения числа вызовов (на обычном пересчете вызвается один раз в начале пересчета, на быстром соответствующие функции вызваются исключительно для строк, которые пересчитываются на Recalculate_Range, а Gaps пересчитываются только для тех элементов, где произошли изменения)
   b. убрала функцию округления ceil

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@62887 954022d7-b5bf-4e40-9824-e11837661b57
parent b1fb488a
...@@ -1092,30 +1092,26 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -1092,30 +1092,26 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
var MathSettings = Get_WordDocumentDefaultMathSettings(); var MathSettings = Get_WordDocumentDefaultMathSettings();
// информация о пересчете
var RPI = new CRPI();
RPI.MergeMathInfo(this.ParaMathRPI);
var ArgSize = new CMathArgSize();
// первый пересчет // первый пересчет
if(PrevLineObject == null && true == bStartLine && PRS.bFastRecalculate == false) if(PrevLineObject == null && true == bStartLine && PRS.bFastRecalculate == false)
{ {
this.PageInfo.Reset(); this.PageInfo.Reset();
this.PageInfo.SetStartPos(Page, ParaLine); this.PageInfo.SetStartPos(Page, ParaLine);
this.Root.PreRecalc(null, this, ArgSize, RPI);
} }
// пока будем каждый раз обновлять информацию (т.к. когда не inline формула становиться inline может получиться так, что пересчет для первой строки не придет) // пока будем каждый раз обновлять информацию (т.к. когда не inline формула становиться inline может получиться так, что пересчет для первой строки не придет)
// когда пересчет всегда будет приходить для первой строки, эта часть будет выполняться только при первом пересчете первой строки // когда пересчет всегда будет приходить для первой строки, эта часть будет выполняться только при первом пересчете первой строки
// информация о пересчете
var RPI = new CRPI();
RPI.MergeMathInfo(this.ParaMathRPI);
var ArgSize = new CMathArgSize();
this.Root.Set_Paragraph(Para); this.Root.Set_Paragraph(Para);
this.Root.Set_ParaMath(this, null); this.Root.Set_ParaMath(this, null);
// в случае если нужно сделать для пересчета каждой строки этот блоки, необходимо переделать PreRecalc, чтобы не перезаписывались Gaps, которые были уже рассчитаны на UpdateOperators
if(this.Root.IsFirstRange(ParaLine, ParaRange))
{
this.Root.PreRecalc(null, this, ArgSize, RPI);
}
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
this.PageInfo.UpdateCurrentPage(Page); this.PageInfo.UpdateCurrentPage(Page);
...@@ -1153,6 +1149,14 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth) ...@@ -1153,6 +1149,14 @@ ParaMath.prototype.Recalculate_Range = function(PRS, ParaPr, Depth)
PRS.PrevLineRecalcInfo.Object = null; PRS.PrevLineRecalcInfo.Object = null;
} }
// заглушка для пересчета Gaps элементов в текущей строке
// если быстрый пересчет проверим нужно ли пересчитывать gaps у элементов текущей строки
if(PRS.bFastRecalculate == true)
{
this.Root.Math_UpdateGaps(ParaLine, ParaRange);
}
this.Root.Recalculate_Range(PRS, ParaPr, Depth); this.Root.Recalculate_Range(PRS, ParaPr, Depth);
if(PRS.NewRange == false) if(PRS.NewRange == false)
...@@ -1351,9 +1355,6 @@ ParaMath.prototype.Recalculate_MinMaxContentWidth = function(MinMax) ...@@ -1351,9 +1355,6 @@ ParaMath.prototype.Recalculate_MinMaxContentWidth = function(MinMax)
var RPI = new CRPI(); var RPI = new CRPI();
RPI.MergeMathInfo(this.ParaMathRPI); RPI.MergeMathInfo(this.ParaMathRPI);
RPI.NeedResize = true;
RPI.PRS = this.Paragraph.m_oPRSW;
this.Root.PreRecalc(null, this, new CMathArgSize(), RPI); this.Root.PreRecalc(null, this, new CMathArgSize(), RPI);
this.Root.Resize(g_oTextMeasurer, RPI); this.Root.Resize(g_oTextMeasurer, RPI);
...@@ -3194,10 +3195,6 @@ function MatGetKoeffArgSize(FontSize, ArgSize) ...@@ -3194,10 +3195,6 @@ function MatGetKoeffArgSize(FontSize, ArgSize)
return FontKoef; return FontKoef;
} }
function MatReverseFontSize(FontSize, FontKoef)
{
return (((FontSize/FontKoef * 2 + 0.5) | 0) / 2) ;
}
function CMathRecalculateInfo() function CMathRecalculateInfo()
{ {
...@@ -3249,6 +3246,7 @@ CMathRecalculateObject.prototype.Compare = function(PageInfo) ...@@ -3249,6 +3246,7 @@ CMathRecalculateObject.prototype.Compare = function(PageInfo)
{ {
var result = true; var result = true;
if(this.bFastRecalculate == false) if(this.bFastRecalculate == false)
result = false; result = false;
......
...@@ -1911,11 +1911,16 @@ ParaRun.prototype.Recalculate_MeasureContent = function() ...@@ -1911,11 +1911,16 @@ ParaRun.prototype.Recalculate_MeasureContent = function()
var InfoMathText; var InfoMathText;
if(para_Math_Run == this.Type) if(para_Math_Run == this.Type)
{ {
var ArgSize = this.Parent.Compiled_ArgSz.value, var InfoTextPr =
bNormalText = this.IsNormalText(), {
bEqArray = this.Parent.IsEqArray(); TextPr: Pr,
ArgSize: this.Parent.Compiled_ArgSz.value,
bNormalText: this.IsNormalText(),
bEqArray: this.Parent.IsEqArray()
};
InfoMathText = new CMathInfoTextPr(Pr, ArgSize, bNormalText, bEqArray); InfoMathText = new CMathInfoTextPr(InfoTextPr);
} }
for ( var Pos = 0; Pos < ContentLength; Pos++ ) for ( var Pos = 0; Pos < ContentLength; Pos++ )
...@@ -3950,7 +3955,15 @@ ParaRun.prototype.Draw_Elements = function(PDSE) ...@@ -3950,7 +3955,15 @@ ParaRun.prototype.Draw_Elements = function(PDSE)
var ArgSize = this.Parent.Compiled_ArgSz.value, var ArgSize = this.Parent.Compiled_ArgSz.value,
bNormalText = this.IsNormalText(); bNormalText = this.IsNormalText();
InfoMathText = new CMathInfoTextPr(CurTextPr, ArgSize, bNormalText, this.bEqArray); var InfoTextPr =
{
TextPr: CurTextPr,
ArgSize: ArgSize,
bNormalText: bNormalText,
bEqArray: this.bEqArray
};
InfoMathText = new CMathInfoTextPr(InfoTextPr);
} }
if ( undefined !== CurTextPr.Shd && shd_Nil !== CurTextPr.Shd.Value ) if ( undefined !== CurTextPr.Shd && shd_Nil !== CurTextPr.Shd.Value )
...@@ -8682,6 +8695,7 @@ ParaRun.prototype.Math_Is_End = function(_CurLine, _CurRange) ...@@ -8682,6 +8695,7 @@ ParaRun.prototype.Math_Is_End = function(_CurLine, _CurRange)
return EndPos == this.Content.length; return EndPos == this.Content.length;
}; };
ParaRun.prototype.IsEmptyLine = function(_CurLine, _CurRange) ParaRun.prototype.IsEmptyLine = function(_CurLine, _CurRange)
{ {
var CurLine = _CurLine - this.StartLine; var CurLine = _CurLine - this.StartLine;
...@@ -8826,7 +8840,7 @@ ParaRun.prototype.Math_PreRecalc = function(Parent, ParaMath, ArgSize, RPI, Gaps ...@@ -8826,7 +8840,7 @@ ParaRun.prototype.Math_PreRecalc = function(Parent, ParaMath, ArgSize, RPI, Gaps
if(this.Pr.FontSize !== null && this.Pr.FontSize !== undefined) if(this.Pr.FontSize !== null && this.Pr.FontSize !== undefined)
{ {
FontKoef = MatGetKoeffArgSize(this.Pr.FontSize, ArgSize); FontKoef = MatGetKoeffArgSize(this.Pr.FontSize, ArgSize);
Pr.FontSize = MatReverseFontSize(this.Pr.FontSize, FontKoef); Pr.FontSize = (((this.Pr.FontSize/FontKoef * 2 + 0.5) | 0) / 2);
this.RecalcInfo.TextPr = true; this.RecalcInfo.TextPr = true;
this.RecalcInfo.Measure = true; this.RecalcInfo.Measure = true;
} }
...@@ -8834,7 +8848,7 @@ ParaRun.prototype.Math_PreRecalc = function(Parent, ParaMath, ArgSize, RPI, Gaps ...@@ -8834,7 +8848,7 @@ ParaRun.prototype.Math_PreRecalc = function(Parent, ParaMath, ArgSize, RPI, Gaps
if(this.Pr.FontSizeCS !== null && this.Pr.FontSizeCS !== undefined) if(this.Pr.FontSizeCS !== null && this.Pr.FontSizeCS !== undefined)
{ {
FontKoef = MatGetKoeffArgSize( this.Pr.FontSizeCS, ArgSize); FontKoef = MatGetKoeffArgSize( this.Pr.FontSizeCS, ArgSize);
Pr.FontSizeCS = MatReverseFontSize(this.Pr.FontSizeCS, FontKoef); Pr.FontSizeCS = (((this.Pr.FontSizeCS/FontKoef * 2 + 0.5) | 0) / 2);
this.RecalcInfo.TextPr = true; this.RecalcInfo.TextPr = true;
this.RecalcInfo.Measure = true; this.RecalcInfo.Measure = true;
} }
...@@ -8848,8 +8862,49 @@ ParaRun.prototype.Math_PreRecalc = function(Parent, ParaMath, ArgSize, RPI, Gaps ...@@ -8848,8 +8862,49 @@ ParaRun.prototype.Math_PreRecalc = function(Parent, ParaMath, ArgSize, RPI, Gaps
if( !this.Content[Pos].IsAlignPoint() ) if( !this.Content[Pos].IsAlignPoint() )
GapsInfo.setGaps(this.Content[Pos], FontSize); GapsInfo.setGaps(this.Content[Pos], FontSize);
this.Content[Pos].PreRecalc(this); this.Content[Pos].PreRecalc(this, ParaMath);
this.Content[Pos].SetUpdateGaps(false);
} }
};
ParaRun.prototype.Math_UpdateGaps = function(_CurLine, _CurRange, GapsInfo)
{
var CurLine = _CurLine - this.StartLine;
var CurRange = ( 0 === CurLine ? _CurRange - this.StartRange : _CurRange );
var StartPos = this.protected_GetRangeStartPos(CurLine, CurRange);
var EndPos = this.protected_GetRangeEndPos(CurLine, CurRange);
var FontSize = this.Get_CompiledPr(false).FontSize;
for(var Pos = StartPos; Pos < EndPos; Pos++)
{
GapsInfo.updateCurrentObject(this.Content[Pos], FontSize);
var bUpdateCurrent = this.Content[Pos].IsNeedUpdateGaps();
if(bUpdateCurrent || GapsInfo.bUpdate)
{
GapsInfo.updateGaps();
}
GapsInfo.bUpdate = bUpdateCurrent;
this.Content[Pos].SetUpdateGaps(false);
}
};
ParaRun.prototype.UpdLastElementForGaps = function(_CurLine, _CurRange, GapsInfo)
{
var CurLine = _CurLine - this.StartLine;
var CurRange = ( 0 === CurLine ? _CurRange - this.StartRange : _CurRange );
var EndPos = this.protected_GetRangeEndPos(CurLine, CurRange);
var FontSize = this.Get_CompiledPr(false).FontSize;
var Last = this.Content[EndPos];
GapsInfo.updateCurrentObject(Last, FontSize);
}; };
ParaRun.prototype.IsPlaceholder = function() ParaRun.prototype.IsPlaceholder = function()
{ {
......
...@@ -462,6 +462,25 @@ CMathBase.prototype.PreRecalc = function(Parent, ParaMath, ArgSize, RPI, GapsInf ...@@ -462,6 +462,25 @@ CMathBase.prototype.PreRecalc = function(Parent, ParaMath, ArgSize, RPI, GapsInf
this.elements[i][j].PreRecalc(this, ParaMath, ArgSize, RPI); this.elements[i][j].PreRecalc(this, ParaMath, ArgSize, RPI);
}; };
CMathBase.prototype.Math_UpdateGaps = function(_CurLine, _CurRange, GapsInfo)
{
GapsInfo.updateCurrentObject(this, this.TextPrControlLetter.FontSize);
if(GapsInfo.bUpdate == true)
{
GapsInfo.updateGaps();
}
if(this.bOneLine == false)
{
var BrPos = this.NumBreakContent;
this.Content[BrPos].Math_UpdateGaps(_CurLine, _CurRange);
}
};
CMathBase.prototype.UpdLastElementForGaps = function(CurLine, CurRange, GapsInfo)
{
GapsInfo.updateCurrentObject(this, this.TextPrControlLetter.FontSize);
};
CMathBase.prototype.recalculateSize = function(oMeasure, RPI) CMathBase.prototype.recalculateSize = function(oMeasure, RPI)
{ {
var width = 0; var width = 0;
......
...@@ -9,8 +9,6 @@ function CRPI() ...@@ -9,8 +9,6 @@ function CRPI()
this.bEqArray = false; /*для амперсанда*/ this.bEqArray = false; /*для амперсанда*/
this.bMathFunc = false; this.bMathFunc = false;
this.bRecalcCtrPrp = false; // пересчет ctrPrp нужен, когда на Undo и тп изменился размер первого Run, а ctrPrp уже для мат объектов пересчитались this.bRecalcCtrPrp = false; // пересчет ctrPrp нужен, когда на Undo и тп изменился размер первого Run, а ctrPrp уже для мат объектов пересчитались
this.PRS = null;
this.bCorrect_FontSize = false; this.bCorrect_FontSize = false;
} }
CRPI.prototype.Copy = function() CRPI.prototype.Copy = function()
...@@ -24,7 +22,6 @@ CRPI.prototype.Copy = function() ...@@ -24,7 +22,6 @@ CRPI.prototype.Copy = function()
RPI.bEqArray = this.bEqArray; RPI.bEqArray = this.bEqArray;
RPI.bMathFunc = this.bMathFunc; RPI.bMathFunc = this.bMathFunc;
RPI.bRecalcCtrPrp = this.bRecalcCtrPrp; RPI.bRecalcCtrPrp = this.bRecalcCtrPrp;
RPI.PRS = this.PRS;
RPI.bCorrect_FontSize = this.bCorrect_FontSize; RPI.bCorrect_FontSize = this.bCorrect_FontSize;
return RPI; return RPI;
...@@ -32,7 +29,6 @@ CRPI.prototype.Copy = function() ...@@ -32,7 +29,6 @@ CRPI.prototype.Copy = function()
CRPI.prototype.MergeMathInfo = function(MathInfo) CRPI.prototype.MergeMathInfo = function(MathInfo)
{ {
this.bInline = MathInfo.bInline; this.bInline = MathInfo.bInline;
this.bRecalcCtrPrp = MathInfo.bRecalcCtrPrp; this.bRecalcCtrPrp = MathInfo.bRecalcCtrPrp;
this.bChangeInline = MathInfo.bChangeInline; this.bChangeInline = MathInfo.bChangeInline;
this.bCorrect_FontSize = MathInfo.bCorrect_FontSize; this.bCorrect_FontSize = MathInfo.bCorrect_FontSize;
...@@ -196,7 +192,6 @@ function CGeneralObjectGaps(Left, Right) ...@@ -196,7 +192,6 @@ function CGeneralObjectGaps(Left, Right)
this.right = Right; this.right = Right;
} }
function CGaps(oSign, oEqual, oZeroOper, oLett) function CGaps(oSign, oEqual, oZeroOper, oLett)
{ {
this.sign = oSign; this.sign = oSign;
...@@ -361,18 +356,25 @@ function CMathGapsInfo(argSize) ...@@ -361,18 +356,25 @@ function CMathGapsInfo(argSize)
this.LeftFontSize = null; this.LeftFontSize = null;
this.CurrentFontSize = null; this.CurrentFontSize = null;
this.bUpdate = false;
} }
CMathGapsInfo.prototype = CMathGapsInfo.prototype =
{ {
setGaps: function(Current, CurrentFontSize) setGaps: function(Current, CurrentFontSize)
{
this.updateCurrentObject(Current, CurrentFontSize);
this.updateGaps();
},
updateCurrentObject: function(Current, CurrentFontSize)
{ {
this.Left = this.Current; this.Left = this.Current;
this.LeftFontSize = this.CurrentFontSize; this.LeftFontSize = this.CurrentFontSize;
this.Current = Current; this.Current = Current;
this.CurrentFontSize = CurrentFontSize; this.CurrentFontSize = CurrentFontSize;
},
updateGaps: function()
{
if(this.argSize < 0) if(this.argSize < 0)
{ {
this.Current.GapLeft = 0; this.Current.GapLeft = 0;
...@@ -445,16 +447,13 @@ CMathGapsInfo.prototype = ...@@ -445,16 +447,13 @@ CMathGapsInfo.prototype =
leftCoeff = 0; leftCoeff = 0;
} }
leftCoeff = Math.ceil(leftCoeff*10)/10;
rightCoeff = Math.ceil(rightCoeff*10)/10;
var LGapSign = 0.1513*this.CurrentFontSize; var LGapSign = 0.1513*this.CurrentFontSize;
this.Current.GapLeft = Math.ceil(leftCoeff*LGapSign*10)/10; // если ни один случай не выполнился, выставляем "нулевые" gaps (default): необходимо, если что-то удалили и объект стал первый или последним в контенте this.Current.GapLeft = (leftCoeff*LGapSign*100 | 0)/100; // если ни один случай не выполнился, выставляем "нулевые" gaps (default): необходимо, если что-то удалили и объект стал первый или последним в контенте
if(this.Left != null) if(this.Left != null)
{ {
var RGapSign = 0.1513*this.LeftFontSize; var RGapSign = 0.1513*this.LeftFontSize;
this.Left.GapRight = Math.ceil(rightCoeff*RGapSign*10)/10; this.Left.GapRight = (rightCoeff*RGapSign*100 | 0)/100;
} }
} }
}, },
...@@ -507,7 +506,6 @@ CMathGapsInfo.prototype = ...@@ -507,7 +506,6 @@ CMathGapsInfo.prototype =
return {bEmptyGaps: bEmptyGaps, bChildGaps: bChildGaps}; return {bEmptyGaps: bEmptyGaps, bChildGaps: bChildGaps};
} }
}; };
function CMPrp() function CMPrp()
...@@ -634,7 +632,6 @@ CMPrp.prototype = ...@@ -634,7 +632,6 @@ CMPrp.prototype =
}; };
function CMathContent() function CMathContent()
{ {
CMathContent.superclass.constructor.call(this); CMathContent.superclass.constructor.call(this);
...@@ -750,6 +747,31 @@ CMathContent.prototype.PreRecalc = function(Parent, ParaMath, ArgSize, RPI) ...@@ -750,6 +747,31 @@ CMathContent.prototype.PreRecalc = function(Parent, ParaMath, ArgSize, RPI)
GapsInfo.Current.GapRight = 0; GapsInfo.Current.GapRight = 0;
}; };
CMathContent.prototype.Math_UpdateGaps = function(_CurLine, _CurRange)
{
var CurLine = _CurLine - this.StartLine;
var CurRange = ( 0 === CurLine ? _CurRange - this.StartRange : _CurRange );
var StartPos = this.protected_GetRangeStartPos(CurLine, CurRange);
var EndPos = this.protected_GetRangeEndPos(CurLine, CurRange);
var GapsInfo = new CMathGapsInfo(this.Compiled_ArgSz.value);
if(StartPos !== undefined && EndPos !== undefined && CurLine < this.protected_GetLinesCount())
{
if(CurLine > 0 && StartPos !== EndPos) // выставим объект, который будет Left для первого элемента в текущей строке
{
var EndPosPrev = this.protected_GetRangeEndPos(CurLine - 1, CurRange);
this.Content[EndPosPrev].UpdLastElementForGaps(_CurLine - 1, _CurRange, GapsInfo);
}
for(var Pos = StartPos; Pos <= EndPos; Pos++)
{
this.Content[Pos].Math_UpdateGaps(_CurLine, _CurRange, GapsInfo);
}
}
};
CMathContent.prototype.Resize = function(oMeasure, RPI) // пересчитываем всю формулу CMathContent.prototype.Resize = function(oMeasure, RPI) // пересчитываем всю формулу
{ {
if ( false === this.RecalcInfo.Measure ) if ( false === this.RecalcInfo.Measure )
...@@ -2051,8 +2073,6 @@ CMathContent.prototype.Insert_MathContent = function(oMathContent, Pos, bSelect) ...@@ -2051,8 +2073,6 @@ CMathContent.prototype.Insert_MathContent = function(oMathContent, Pos, bSelect)
this.Correct_Content(true); this.Correct_Content(true);
this.Correct_ContentPos(-1); this.Correct_ContentPos(-1);
}; };
CMathContent.prototype.Set_Paragraph = ParaHyperlink.prototype.Set_Paragraph;
CMathContent.prototype.Get_ElementByPos = ParaHyperlink.prototype.Get_ElementByPos;
CMathContent.prototype.Set_ParaMath = function(ParaMath, Parent) CMathContent.prototype.Set_ParaMath = function(ParaMath, Parent)
{ {
this.Parent = Parent; this.Parent = Parent;
......
...@@ -14,9 +14,12 @@ ...@@ -14,9 +14,12 @@
// http://www.dpva.info/Guide/GuideMathematics/GuideMathematicsNumericalSystems/TableCodeEquivalent/ // http://www.dpva.info/Guide/GuideMathematics/GuideMathematicsNumericalSystems/TableCodeEquivalent/
var DIV_CENT = 0.1386; var DIV_CENT = 0.1386;
var StartTextElement = 0x2B1A; // Cambria Math var StartTextElement = 0x2B1A; // Cambria Math
var MathTextInfo_MathText = 1;
var MathTextInfo_SpecialOperator = 2;
var MathTextInfo_NormalText = 3;
function CMathSize() function CMathSize()
{ {
this.Type = MATH_SIZE; this.Type = MATH_SIZE;
...@@ -139,6 +142,7 @@ function CMathText(bJDraw) ...@@ -139,6 +142,7 @@ function CMathText(bJDraw)
this.Type = para_Math_Text; this.Type = para_Math_Text;
this.bJDraw = (undefined === bJDraw ? false : bJDraw); this.bJDraw = (undefined === bJDraw ? false : bJDraw);
this.bUpdateGaps = true;
this.RecalcInfo = this.RecalcInfo =
{ {
...@@ -658,7 +662,7 @@ CMathText.prototype.Measure = function(oMeasure, TextPr, InfoMathText) ...@@ -658,7 +662,7 @@ CMathText.prototype.Measure = function(oMeasure, TextPr, InfoMathText)
this.RecalcInfo.StyleCode = this.value; this.RecalcInfo.StyleCode = this.value;
metricsTxt = oMeasure.Measure2Code(this.value); metricsTxt = oMeasure.Measure2Code(this.value);
} }
else else
{ {
var ascent, width, height, descent; var ascent, width, height, descent;
...@@ -726,13 +730,23 @@ CMathText.prototype.Measure = function(oMeasure, TextPr, InfoMathText) ...@@ -726,13 +730,23 @@ CMathText.prototype.Measure = function(oMeasure, TextPr, InfoMathText)
this.Width = (this.size.width * TEXTWIDTH_DIVIDER) | 0; this.Width = (this.size.width * TEXTWIDTH_DIVIDER) | 0;
}; };
CMathText.prototype.PreRecalc = function(Parent, ParaMath, ArgSize, RPI) CMathText.prototype.PreRecalc = function(Parent, ParaMath)
{ {
this.ParaMath = ParaMath; this.ParaMath = ParaMath;
if(!this.bJDraw) if(!this.bJDraw)
this.Parent = Parent; this.Parent = Parent;
else else
this.Parent = null; this.Parent = null;
this.bUpdateGaps = false;
};
CMathText.prototype.SetUpdateGaps = function(bUpd)
{
this.bUpdateGaps = bUpd;
};
CMathText.prototype.IsNeedUpdateGaps = function()
{
return this.bUpdateGaps;
}; };
CMathText.prototype.Draw = function(x, y, pGraphics, InfoTextPr) CMathText.prototype.Draw = function(x, y, pGraphics, InfoTextPr)
{ {
...@@ -1011,25 +1025,21 @@ CMathAmp.prototype.Read_FromBinary = function(Reader) ...@@ -1011,25 +1025,21 @@ CMathAmp.prototype.Read_FromBinary = function(Reader)
{ {
}; };
var MathTextInfo_MathText = 1; function CMathInfoTextPr(InfoTextPr)
var MathTextInfo_SpecialOperator = 2;
var MathTextInfo_NormalText = 3;
function CMathInfoTextPr(TextPr, ArgSize, bNormalText, bEqArray)
{ {
this.CurrType = -1; // в первый раз Font всегда выставляем this.CurrType = -1; // в первый раз Font всегда выставляем
this.TextPr = TextPr; this.TextPr = InfoTextPr.TextPr;
this.ArgSize = ArgSize; this.ArgSize = InfoTextPr.ArgSize;
this.Font = this.Font =
{ {
FontFamily: {Name: "Cambria Math", Index : -1}, FontFamily: {Name: "Cambria Math", Index : -1},
FontSize: TextPr.FontSize, FontSize: this.TextPr.FontSize,
Italic: false, Italic: false,
Bold: false Bold: false
}; };
this.bNormalText = bNormalText; this.bNormalText = InfoTextPr.bNormalText;
this.bEqArray = bEqArray; this.bEqArray = InfoTextPr.bEqArray;
this.RFontsCompare = []; this.RFontsCompare = [];
...@@ -1095,4 +1105,4 @@ CMathInfoTextPr.prototype.IsSpecilalOperator = function(val) ...@@ -1095,4 +1105,4 @@ CMathInfoTextPr.prototype.IsSpecilalOperator = function(val)
// отдельно Cambria Math 0x27 // отдельно Cambria Math 0x27
return bSpecialOperator || bSpecialArrow || bSpecialSymbols || bOtherArrows; return bSpecialOperator || bSpecialArrow || bSpecialSymbols || bOtherArrows;
}; };
\ No newline at end of file
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