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