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

Поправила баг http://bugzserver/show_bug.cgi?id=27921

Баг возникал в связи с тем, что не был выствлен FontSizeCS для текстовых настроек в SetTextPr
Переделала схему выставления шрифтов для математического текста. Теперь выставляю SetTextPr в Run, а если настройки шрифта нужно перебить, то делаю это в MathText, использую при этом SetFont (с каким шрифтом отрисовать разруливается след. способом : если ничего подменять не нужно, то идет ф-ия SetFontSlot и учитываются текстовые настройки те, которые передали в SetTextPr; а если настройки подменяются, то использую ф-ию SetFont и уже учитываются текстовые настройки, которые были переданы в функцию SetFont)

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@60166 954022d7-b5bf-4e40-9824-e11837661b57
parent 6eb14ef7
......@@ -233,6 +233,7 @@ ParaMath.prototype.Add = function(Item)
EndPos: StartPos + lng2 - lng
};
TextPr.RFonts.Set_All("Cambria Math", -1);
oContent.Apply_TextPr(TextPr, undefined, false, Pos_ApplyTextPr);
//oContent.Set_MathTextPr2(MathTxtPr.TextPr, MathTxtPr.MathPr, false, StartPos + 1, lng2 - lng);
}
......@@ -2782,19 +2783,26 @@ CChangesMathEqArrayPr.prototype.Load_Changes = function(Reader, Class)
this.Redo(Class);
};
function MathApplyArgSize(FontSize, argSize)
function MatGetKoeffArgSize(FontSize, ArgSize)
{
var ResultFontSize = FontSize;
if(argSize == -1)
var FontKoef = 1;
if(ArgSize == -1)
{
ResultFontSize *= g_dMathArgSizeKoeff_1;
FontKoef = g_dMathArgSizeKoeff_1;
}
else if(argSize == -2)
else if(ArgSize == -2)
{
FontKoef = g_dMathArgSizeKoeff_2;
}
if (1 !== FontKoef )
{
ResultFontSize *= g_dMathArgSizeKoeff_2;
FontKoef = (((FontSize * FontKoef * 2 + 0.5) | 0) / 2) / FontSize;
}
return ResultFontSize;
return FontKoef;
}
function CMathRecalculateInfo()
......
......@@ -1195,15 +1195,19 @@ ParaRun.prototype.Create_FontMap = function(Map, ArgSize)
if ( undefined !== this.Paragraph && null !== this.Paragraph )
{
var TextPr;
var FontSize;
var FontSize, FontSizeCS;
if(this.Type === para_Math_Run)
{
TextPr = this.Get_CompiledPr(false);
FontSize = TextPr.FontSize;
FontSizeCS = TextPr.FontSizeCS;
if(null !== this.Parent && undefined !== this.Parent && null !== this.Parent.ParaMath && undefined !== this.Parent.ParaMath)
TextPr.FontSize = MathApplyArgSize(TextPr.FontSize, ArgSize.value);
{
TextPr.FontSize *= MatGetKoeffArgSize(TextPr.FontSize, ArgSize.value);
TextPr.FontSizeCS *= MatGetKoeffArgSize(TextPr.FontSizeCS, ArgSize.value);
}
}
else
TextPr = this.Get_CompiledPr(false);
......@@ -1220,7 +1224,8 @@ ParaRun.prototype.Create_FontMap = function(Map, ArgSize)
if(this.Type === para_Math_Run)
{
TextPr.FontSize = FontSize;
TextPr.FontSize = FontSize;
TextPr.FontSizeCS = FontSizeCS;
}
}
};
......@@ -3326,10 +3331,13 @@ ParaRun.prototype.Draw_Elements = function(PDSE)
{
Y += this.size.ascent;
//var ArgSize = this.Parent.Compiled_ArgSz.value,
// bNormalText = this.IsNormalText();
var ArgSize = this.Parent.Compiled_ArgSz.value,
bNormalText = this.IsNormalText();
InfoMathText = new CMathInfoTextPr(CurTextPr, ArgSize, bNormalText, Theme);
InfoMathText = new CMathInfoTextPr_2(CurTextPr, ArgSize, bNormalText);
//NewMathTextPr = GetMathModifiedFont(MathFont_ForMathText, CurTextPr, this);
//pGraphics.SetTextPr( NewMathTextPr, Theme );
}
......@@ -7878,16 +7886,17 @@ ParaRun.prototype.Math_Recalculate = function(oMeasure, RPI, WidthPoints)
if(RPI.NeedResize)
{
var oWPrp = this.Get_CompiledPr(false);
var Theme = this.Paragraph.Get_Theme();
var ArgSize = this.Parent.Compiled_ArgSz.value,
bNormalText = this.IsNormalText();
//var Theme = this.Paragraph.Get_Theme();
//var NewMathTextPr = GetMathModifiedFont(MathFont_ForMathText, oWPrp, this);
//g_oTextMeasurer.SetTextPr( NewMathTextPr, Theme );
var ArgSize = this.Parent.Compiled_ArgSz.value,
bNormalText = this.IsNormalText();
var Theme = this.Paragraph.Get_Theme();
g_oTextMeasurer.SetTextPr( oWPrp, Theme );
var InfoMathText = new CMathInfoTextPr(oWPrp, ArgSize, bNormalText, Theme);
var InfoMathText = new CMathInfoTextPr_2(oWPrp, ArgSize, bNormalText);
this.bEqqArray = RPI.bEqqArray;
......
......@@ -123,11 +123,11 @@ CMathBase.prototype =
CompiledCtrPrp = this.Get_CompiledCtrPrp_2();
if(bAllowInline !== false && this.ParaMath)
CompiledCtrPrp.FontSize = MathApplyArgSize(CompiledCtrPrp.FontSize, this.Parent.Get_CompiledArgSize().value);
CompiledCtrPrp.FontSize *= MatGetKoeffArgSize(CompiledCtrPrp.FontSize, this.Parent.Get_CompiledArgSize().value);
}
if(bAllowInline !== false && this.ParaMath)
CompiledCtrPrp.FontSize = MathApplyArgSize(CompiledCtrPrp.FontSize, this.ArgSize.value);// для настроек inline формул
CompiledCtrPrp.FontSize *= MatGetKoeffArgSize(CompiledCtrPrp.FontSize, this.ArgSize.value);// для настроек inline формул
return CompiledCtrPrp;
},
......@@ -459,12 +459,12 @@ CMathBase.prototype =
{
var TxtPr = Parent.Get_TxtPrControlLetter(RPI);
FontSize = TxtPr.FontSize;
FontSize = MathApplyArgSize(FontSize, this.ArgSize.value);
FontSize *= MatGetKoeffArgSize(FontSize, this.ArgSize.value);
}
else
{
FontSize = MathApplyArgSize(FontSize, Parent.Get_CompiledArgSize().value);
FontSize = MathApplyArgSize(FontSize, this.ArgSize.value);
FontSize *= MatGetKoeffArgSize(FontSize, Parent.Get_CompiledArgSize().value);
FontSize *= MatGetKoeffArgSize(FontSize, this.ArgSize.value);
}
this.TextPrControlLetter.FontSize = FontSize;
......
This diff is collapsed.
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