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

1. убрала RunPrp из CMathBase

2. поправила баги, связанные c удалением CMathComposition
3. поправила баг на fraction при init (из-за this.Pr)

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@55965 954022d7-b5bf-4e40-9824-e11837661b57
parent bf96f7b3
......@@ -13,6 +13,7 @@ function ParaMath(bAddMenu)
//this.Root = this.Math.Root;
this.Root = new CMathContent();
this.Root.setComposition(this);
this.X = 0;
this.Y = 0;
......@@ -59,7 +60,7 @@ ParaMath.prototype =
var NewMath = new ParaMath();
var NewRoot;
if(Selected)
/*if(Selected)
{
var Content = this.GetSelectContent();
NewRoot = Content.Copy(Selected, this);
......@@ -67,7 +68,7 @@ ParaMath.prototype =
else
{
NewRoot = this.Root.Copy(Selected, this);
}
}*/
return NewMath;
},
......@@ -467,7 +468,7 @@ ParaMath.prototype =
PRS.StartWord = true;
// При проверке, убирается ли слово, мы должны учитывать ширину предшествующих пробелов.
var LetterLen = Size.Width;
var LetterLen = this.Width;
if ( true !== PRS.Word )
{
// Слово только началось. Делаем следующее:
......@@ -847,6 +848,33 @@ ParaMath.prototype =
oWPrp.Merge(tPrp);
},
/*GetDefaultTxtPrp: function()
{
var txtPrp = new CTextPr();
var defaultTxtPr =
{
FontFamily: {Name : "Cambria Math", Index : -1 },
FontSize: 11,
Italic: true,
Bold: false
};
txtPrp.Set_FromObject(defaultTxtPr);
return txtPrp;
},*/
GetFirstRPrp: function()
{
return this.Root.getFirstRPrp();
},
GetShiftCenter: function(oMeasure, font)
{
oMeasure.SetFont(font);
var metrics = oMeasure.Measure2Code(0x2217); // "+"
return 0.6*metrics.Height;
},
//-----------------------------------------------------------------------------------
// Функции отрисовки
//-----------------------------------------------------------------------------------
......@@ -875,7 +903,10 @@ ParaMath.prototype =
if ( EndPos >= 1 )
{
//this.Math.Draw( PDSE.X, PDSE.Y, PDSE.Graphics );
this.Root.draw( PDSE.X, PDSE.Y, PDSE.Graphics );
// CMathComposition => this.Root.draw(this.absPos.x, this.absPos.y , pGraphics);
// this.absPos.x ~> this.X
// this.absPos.y ~> this.Y
this.Root.draw( PDSE.X, PDSE.Y - this.Ascent, PDSE.Graphics );
PDSE.X += this.Width;
}
},
......
......@@ -4263,7 +4263,7 @@ ParaRun.prototype =
TextPr.Merge(MPrp); // bold, italic
}
this.Parent.Composition.Parent.ApplyArgSize(TextPr);
this.Parent.Composition.ApplyArgSize(TextPr);
}
else
TextPr.Merge( this.Pr ); // Мержим прямые настройки данного рана
......@@ -7112,9 +7112,9 @@ ParaRun.prototype.Math_Update_Cursor = function(X, Y, CurPage, UpdateTarget)
ParaRun.prototype.Math_applyArgSize = function(oWPrp)
{
var tPrp = new CTextPr();
var defaultRPrp = this.Parent.Composition.GetDefaultRunPrp();
var gWPrp = defaultRPrp.getMergedWPrp();
tPrp.Merge(gWPrp);
var defaultRPrp = this.Parent.Composition.Get_Default_TPrp();
//var gWPrp = defaultRPrp.getMergedWPrp();
tPrp.Merge(defaultRPrp);
tPrp.Merge(oWPrp);
var FSize = tPrp.FontSize;
......
......@@ -964,8 +964,8 @@ CSign.prototype.fixSize = function(oMeasure, stretch, bIncline)
var ctrPrp = this.Parent.getCtrPrp();
var rPrp = new CMathTextPrp();
var defaultRPrp = this.Parent.Composition.GetDefaultRunPrp();
rPrp.Merge(defaultRPrp.getMergedWPrp());
var defaultRPrp = this.Parent.Composition.Get_Default_TPrp();
rPrp.Merge(defaultRPrp);
rPrp.Merge(ctrPrp);
rPrp.Italic = false; // не меняем значок
rPrp.Bold = false;
......
......@@ -36,7 +36,7 @@ function CMathBase()
this.Composition = null; // ссылка на общую формулу
this.CtrPrp = new CTextPr();
this.RunPrp = new CMathRunPrp();
//this.RunPrp = new CMathRunPrp();
//this.textPrp = new CMathTextPrp(); // для рассчета размера расстояний
......@@ -101,14 +101,14 @@ CMathBase.prototype =
setCtrPrp: function(txtPrp)
{
this.CtrPrp.Merge(txtPrp); // only runPrp for paragraph
this.RunPrp.setTxtPrp(txtPrp);
//this.RunPrp.setTxtPrp(txtPrp);
},
getCtrPrp: function()
{
var ctrPrp = new CTextPr();
var defaultRPrp = this.Composition.GetFirstRPrp();
var gWPrp = defaultRPrp.getMergedWPrp();
ctrPrp.Merge(gWPrp);
//var gWPrp = defaultRPrp.getMergedWPrp();
ctrPrp.Merge(defaultRPrp);
ctrPrp.Merge(this.CtrPrp);
return ctrPrp;
},
......@@ -118,14 +118,15 @@ CMathBase.prototype =
var defaultRPrp = this.Composition.GetFirstRPrp();
runPrp.Merge(defaultRPrp);
runPrp.Merge(this.RunPrp);
return runPrp;
},
getCtrPrpForFirst: function()
{
var ctrPrp = new CTextPr();
var defaultRPrp = this.Composition.GetDefaultRunPrp();
var gWPrp = defaultRPrp.getMergedWPrp();
ctrPrp.Merge(gWPrp);
var defaultRPrp = this.Composition.Get_Default_TPrp();
//var gWPrp = defaultRPrp.getMergedWPrp();
ctrPrp.Merge(defaultRPrp);
ctrPrp.Merge(this.CtrPrp);
return ctrPrp;
......@@ -141,13 +142,12 @@ CMathBase.prototype =
},
setRPrp: function(rPrp)
{
//this.RunPrp.Merge(rPrp);
this.RunPrp.mathPrp.bold = rPrp.mathPrp.bold; // как в Ворде, все остальные стили не поддерживаются
this.RunPrp.setTxtPrp(rPrp.textPrp); // Merge wTxtPrp
//this.RunPrp.mathPrp.bold = rPrp.mathPrp.bold; // как в Ворде, все остальные стили не поддерживаются
//this.RunPrp.setTxtPrp(rPrp.textPrp); // Merge wTxtPrp
this.CtrPrp = new CTextPr();
var gPrp = rPrp.getMergedWPrp();
this.CtrPrp.Merge(gPrp);
//var gPrp = rPrp.getMergedWPrp();
this.CtrPrp.Merge(rPrp);
for(var i=0; i < this.nRow; i++)
for(var j = 0; j < this.nCol; j++)
......@@ -189,7 +189,7 @@ CMathBase.prototype =
mergeCtrTPrp: function()
{
var tPrp = this.getCtrPrp();
this.Composition.Parent.ApplyArgSize(tPrp);
this.Composition.ApplyArgSize(tPrp);
/*if(this.argSize == -1)
//tPrp.FontSize *= 0.8;
......
......@@ -2,11 +2,9 @@ function CFraction()
{
this.kind = MATH_FRACTION;
this.Pr =
{
type: BAR_FRACTION,
bHideBar: false
};
this.type = BAR_FRACTION;
this.bHideBar = false
CMathBase.call(this);
}
......
......@@ -5047,12 +5047,13 @@ CMathContent.prototype =
//var currRPrp = this.content[pos].getRunPrp();
var runPrp = this.content[pos].getRunPrp();
var currRPrp = runPrp.getMergedWPrp();
var runPrp = this.content[pos].getCtrPrp();
//var runPrp = this.content[pos].getRunPrp();
//var currRPrp = runPrp.getMergedWPrp();
//this.applyArgSize(currRPrp);
this.Composition.ApplyArgSize(currRPrp); // в ParaMath
this.Composition.ApplyArgSize(runPrp); // в ParaMath
RecalcInfo.currRunPrp = currRPrp;
RecalcInfo.currRunPrp = runPrp;
RecalcInfo.setGaps();
......@@ -5708,8 +5709,9 @@ CMathContent.prototype =
///////// RunPrp, CtrPrp
getFirstRPrp: function()
{
var rPrp = new CMathRunPrp();
var defaultRPrp = this.Composition.GetDefaultRunPrp();
//var rPrp = new CMathRunPrp();
var rPrp = new CTextPr();
var defaultRPrp = this.Composition.Get_Default_TPrp();
rPrp.Merge(defaultRPrp);
if(this.content.length > 1)
......@@ -6677,7 +6679,7 @@ CMathContent.prototype =
}
/*function CMathComposition()
function CMathComposition()
{
this.Parent = undefined;
......@@ -6728,7 +6730,7 @@ CMathComposition.prototype =
},
SetProperties: function(props)
{
/*//****** FOR FORMULA ******//*/
/***** FOR FORMULA *****/
// В документации везде, где нет примера использования свояства, означает, что Word не поддерживает это свойство !
......@@ -6753,7 +6755,7 @@ CMathComposition.prototype =
if(props.wrapIndent + 0 == props.wrapIndent && isNaN(props.wrapIndent)) // проверка на число
this.props.wrapIndent = props.wrapIndent/1440;
/*//********* check for element 0x1FFD - 0xA721 ********//*/
/******** check for element 0x1FFD - 0xA721 *******/
// This element specifies the right justification of the wrapped line of an instance of mathematical text
// Instance : Arrows 0x2190-0x21B3, 0x21B6, 0x21B7, 0x21BA-0x21E9, 0x21F4-0x21FF,
// 0x3D, 0x2234 - 0x2237, 0x2239, 0x223B - 0x228B, 0x228F - 0x2292, 0x22A2 - 0x22B9,
......@@ -6765,7 +6767,7 @@ CMathComposition.prototype =
this.props.wrapRight = props.wrapRight;
/*//****** FOR DOCUMENT ******//*/
/***** FOR DOCUMENT *****/
// defaultJc
// выравнивание формулы в документе
......@@ -6784,7 +6786,7 @@ CMathComposition.prototype =
this.props.lMargin = props.lMargin;
this.props.rMargin = props.rMargin;
/*//****** НЕПОДДЕРЖИВАЕМЫЕ Вордом свойства ******//*/
/***** НЕПОДДЕРЖИВАЕМЫЕ Вордом свойства *****/
// mathFont: в качестве font поддерживается только Cambria Math
// остальные шрифты возможно будут поддержаны MS в будущем
......@@ -6798,7 +6800,7 @@ CMathComposition.prototype =
// http://blogs.msdn.com/b/murrays/archive/2008/10/27/default-document-math-properties.aspx
/*//****** FOR FORMULA ******//*/
/***** FOR FORMULA *****/
// http://msdn.microsoft.com/en-us/library/ff529906(v=office.12).aspx
// Word ignores the interSp attribute and fails to write it back out.
......@@ -6808,7 +6810,7 @@ CMathComposition.prototype =
// Word does not implement this feature and does not write the intraSp element.
this.props.intraSp = intraSp;
/*//****** FOR DOCUMENT ******//*/
/***** FOR DOCUMENT *****/
// http://msdn.microsoft.com/en-us/library/ff533406(v=office.12).aspx
// Word ignores and discards postSp
......@@ -6826,13 +6828,13 @@ CMathComposition.prototype =
return 0.6*metrics.Height;
},
*//*GetGapSign: function(oMeasure, font)
GetGapSign: function(oMeasure, font)
{
oMeasure.SetFont(font);
var metrics = oMeasure.Measure2Code(0x2217); // "+"
return metrics.Height;
},*//*
},
CheckTarget: function()
{
var bSelect = this.SelectContent.selectUse(),
......@@ -6981,7 +6983,7 @@ CMathComposition.prototype =
var code = e.CharCode;
//
*//*if(code == 42)
if(code == 42)
code = 8727;
else if(code == 45)
code = 8722;
......@@ -6993,11 +6995,11 @@ CMathComposition.prototype =
code = 0x2211;
if(code == 0x0068)
code = 0x210E;*//*
*//*else if(code > 0x0040 && code < 0x005B)
code = 0x210E;
else if(code > 0x0040 && code < 0x005B)
code = code + 0x1D3F3;
else if(code > 0x0060 && code < 0x007b)
code = code + 0x1D3ED;*//*
code = code + 0x1D3ED;
if(code>=0x0020 )
{
......@@ -7076,8 +7078,8 @@ CMathComposition.prototype =
m++;
*//*if(k%10 == 0 && m%10 == 0)
console.log("k: " + k, "m: " + m);*//*
if(k%10 == 0 && m%10 == 0)
console.log("k: " + k, "m: " + m);
// x = 53.10799999999981
// y = 18.008999999999965
......@@ -7091,8 +7093,8 @@ CMathComposition.prototype =
if(TEST)
{
History.Create_NewPoint();
*//*var start = this.SelectContent.selection.startPos,
end = this.SelectContent.selection.endPos;*//*
var start = this.SelectContent.selection.startPos,
end = this.SelectContent.selection.endPos;
var start = this.SelectContent.RealSelect.startPos,
end = this.SelectContent.RealSelect.endPos;
var Pos;
......@@ -7150,8 +7152,8 @@ CMathComposition.prototype =
this.SelectContent.removeAreaSelect();
*//*if(this.Root.IsEmpty())
this.Root.addRunPrp(this.DefaultTxtPrp);*//*
if(this.Root.IsEmpty())
this.Root.addRunPrp(this.DefaultTxtPrp);
var items = this.SelectContent.addLetter(code);
......@@ -7285,11 +7287,11 @@ CMathComposition.prototype =
{
simulatorMComposition(this, MATH_EDIT);
},
*//*RecalculateReverse: function(oMeasure) // for edit
RecalculateReverse: function(oMeasure) // for edit
{
this.SelectContent.RecalculateReverse(oMeasure);
},*//*
/////////////*//* end of test functions *//*/////////////////
},
///////////// end of test functions /////////////////
Init: function()
{
this.Root = new CMathContent();
......@@ -7317,13 +7319,13 @@ CMathComposition.prototype =
// Math Run Properties default прокинуты
},
*//*SetTestRunPrp: function()
SetTestRunPrp: function()
{
var runPrp = new CTextPr();
runPrp.Merge(this.DefaultTxtPrp);
this.Root.addRunPrp(runPrp);
},*//*
},
GetDefaultRunPrp: function()
{
var rPrp = new CMathRunPrp();
......@@ -7427,7 +7429,7 @@ CMathComposition.prototype =
},
old_getSize: function()
{
*//*return this.Root.size;*//*
return this.Root.size;
//
//var sh = 0.2487852283770651*g_oTextMeasurer.GetHeight();
......@@ -7609,7 +7611,7 @@ CMathComposition.prototype =
{
return this.CurrentContent.getRunPrp(this.CurrentContent.CurPos);
}
}*/
}
function CEmpty()
......
......@@ -212,7 +212,7 @@ CNary.prototype.init = function(props)
CNary.prototype.setCtrPrp = function(txtPrp)
{
this.CtrPrp.Merge(txtPrp); // only runPrp for paragraph
this.RunPrp.setTxtPrp(txtPrp);
//this.RunPrp.setTxtPrp(txtPrp);
if(this.elements !== null)
{
......
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