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) ...@@ -233,6 +233,7 @@ ParaMath.prototype.Add = function(Item)
EndPos: StartPos + lng2 - lng EndPos: StartPos + lng2 - lng
}; };
TextPr.RFonts.Set_All("Cambria Math", -1);
oContent.Apply_TextPr(TextPr, undefined, false, Pos_ApplyTextPr); oContent.Apply_TextPr(TextPr, undefined, false, Pos_ApplyTextPr);
//oContent.Set_MathTextPr2(MathTxtPr.TextPr, MathTxtPr.MathPr, false, StartPos + 1, lng2 - lng); //oContent.Set_MathTextPr2(MathTxtPr.TextPr, MathTxtPr.MathPr, false, StartPos + 1, lng2 - lng);
} }
...@@ -2782,19 +2783,26 @@ CChangesMathEqArrayPr.prototype.Load_Changes = function(Reader, Class) ...@@ -2782,19 +2783,26 @@ CChangesMathEqArrayPr.prototype.Load_Changes = function(Reader, Class)
this.Redo(Class); this.Redo(Class);
}; };
function MathApplyArgSize(FontSize, argSize)
function MatGetKoeffArgSize(FontSize, ArgSize)
{ {
var ResultFontSize = FontSize; var FontKoef = 1;
if(argSize == -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() function CMathRecalculateInfo()
......
...@@ -1195,15 +1195,19 @@ ParaRun.prototype.Create_FontMap = function(Map, ArgSize) ...@@ -1195,15 +1195,19 @@ ParaRun.prototype.Create_FontMap = function(Map, ArgSize)
if ( undefined !== this.Paragraph && null !== this.Paragraph ) if ( undefined !== this.Paragraph && null !== this.Paragraph )
{ {
var TextPr; var TextPr;
var FontSize; var FontSize, FontSizeCS;
if(this.Type === para_Math_Run) if(this.Type === para_Math_Run)
{ {
TextPr = this.Get_CompiledPr(false); TextPr = this.Get_CompiledPr(false);
FontSize = TextPr.FontSize; FontSize = TextPr.FontSize;
FontSizeCS = TextPr.FontSizeCS;
if(null !== this.Parent && undefined !== this.Parent && null !== this.Parent.ParaMath && undefined !== this.Parent.ParaMath) 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 else
TextPr = this.Get_CompiledPr(false); TextPr = this.Get_CompiledPr(false);
...@@ -1221,6 +1225,7 @@ ParaRun.prototype.Create_FontMap = function(Map, ArgSize) ...@@ -1221,6 +1225,7 @@ ParaRun.prototype.Create_FontMap = function(Map, ArgSize)
if(this.Type === para_Math_Run) 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) ...@@ -3326,10 +3331,13 @@ ParaRun.prototype.Draw_Elements = function(PDSE)
{ {
Y += this.size.ascent; Y += this.size.ascent;
//var ArgSize = this.Parent.Compiled_ArgSz.value,
// bNormalText = this.IsNormalText();
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, Theme); InfoMathText = new CMathInfoTextPr_2(CurTextPr, ArgSize, bNormalText);
//NewMathTextPr = GetMathModifiedFont(MathFont_ForMathText, CurTextPr, this); //NewMathTextPr = GetMathModifiedFont(MathFont_ForMathText, CurTextPr, this);
//pGraphics.SetTextPr( NewMathTextPr, Theme ); //pGraphics.SetTextPr( NewMathTextPr, Theme );
} }
...@@ -7878,16 +7886,17 @@ ParaRun.prototype.Math_Recalculate = function(oMeasure, RPI, WidthPoints) ...@@ -7878,16 +7886,17 @@ ParaRun.prototype.Math_Recalculate = function(oMeasure, RPI, WidthPoints)
if(RPI.NeedResize) if(RPI.NeedResize)
{ {
var oWPrp = this.Get_CompiledPr(false); 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); //var NewMathTextPr = GetMathModifiedFont(MathFont_ForMathText, oWPrp, this);
//g_oTextMeasurer.SetTextPr( NewMathTextPr, Theme ); //g_oTextMeasurer.SetTextPr( NewMathTextPr, Theme );
var ArgSize = this.Parent.Compiled_ArgSz.value, g_oTextMeasurer.SetTextPr( oWPrp, Theme );
bNormalText = this.IsNormalText();
var Theme = this.Paragraph.Get_Theme();
var InfoMathText = new CMathInfoTextPr(oWPrp, ArgSize, bNormalText, Theme); var InfoMathText = new CMathInfoTextPr_2(oWPrp, ArgSize, bNormalText);
this.bEqqArray = RPI.bEqqArray; this.bEqqArray = RPI.bEqqArray;
......
...@@ -123,11 +123,11 @@ CMathBase.prototype = ...@@ -123,11 +123,11 @@ CMathBase.prototype =
CompiledCtrPrp = this.Get_CompiledCtrPrp_2(); CompiledCtrPrp = this.Get_CompiledCtrPrp_2();
if(bAllowInline !== false && this.ParaMath) 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) 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; return CompiledCtrPrp;
}, },
...@@ -459,12 +459,12 @@ CMathBase.prototype = ...@@ -459,12 +459,12 @@ CMathBase.prototype =
{ {
var TxtPr = Parent.Get_TxtPrControlLetter(RPI); var TxtPr = Parent.Get_TxtPrControlLetter(RPI);
FontSize = TxtPr.FontSize; FontSize = TxtPr.FontSize;
FontSize = MathApplyArgSize(FontSize, this.ArgSize.value); FontSize *= MatGetKoeffArgSize(FontSize, this.ArgSize.value);
} }
else else
{ {
FontSize = MathApplyArgSize(FontSize, Parent.Get_CompiledArgSize().value); FontSize *= MatGetKoeffArgSize(FontSize, Parent.Get_CompiledArgSize().value);
FontSize = MathApplyArgSize(FontSize, this.ArgSize.value); FontSize *= MatGetKoeffArgSize(FontSize, this.ArgSize.value);
} }
this.TextPrControlLetter.FontSize = FontSize; 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