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

1. Поправила gaps для ширины радикала, расстояние для степени радикала

2. Поправила ascent для delimiters и позиционирование

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@54979 954022d7-b5bf-4e40-9824-e11837661b57
parent a3ac920a
This diff is collapsed.
...@@ -890,6 +890,8 @@ function CRadical() ...@@ -890,6 +890,8 @@ function CRadical()
this.signRadical = null; this.signRadical = null;
this.gapDegree = 0; this.gapDegree = 0;
this.gapWidth = 0; // в случае со степенью, если ширина степени не нулевая, добавляется расстояние для ширины
CMathBase.call(this); CMathBase.call(this);
} }
...@@ -938,11 +940,10 @@ CRadical.prototype.recalculateSize = function(oMeasure) ...@@ -938,11 +940,10 @@ CRadical.prototype.recalculateSize = function(oMeasure)
var txtPrp = this.getCtrPrp(); var txtPrp = this.getCtrPrp();
var sign = this.signRadical.size, var sign = this.signRadical.size,
gSign = this.signRadical.gapSign, gSign = this.signRadical.gapSign,
// в случае смещения бейзлайн контента тоже смещается, и по высоте артгумент может выйти чуть за пределы (т.о. значок интеграла будет расположен чуть выше, чем следовало бы, и размер аргумента выйде за аграницы) // в случае смещения baseline контента тоже смещается, и по высоте артгумент может выйти чуть за пределы (т.о. значок интеграла будет расположен чуть выше, чем следовало бы, и размер аргумента выйде за аграницы)
gArg = this.signRadical.gapArg > 2*g_dKoef_pt_to_mm ? this.signRadical.gapArg : 2*g_dKoef_pt_to_mm; // делаем смещение, т.к. для fontSize 11, 14 и меньше высота плейсхолдера не совпадает gArg = this.signRadical.gapArg > 2*g_dKoef_pt_to_mm ? this.signRadical.gapArg : 2*g_dKoef_pt_to_mm; // делаем смещение, т.к. для fontSize 11, 14 и меньше высота плейсхолдера не совпадает
// с высотой отрисовки плейсхолдера и происходит наложение черты значка радикала и плейсхолдера // с высотой отрисовки плейсхолдера и происходит наложение черты значка радикала и плейсхолдера
var gapBase = gSign + gArg; var gapBase = gSign + gArg;
if(this.type == SQUARE_RADICAL) if(this.type == SQUARE_RADICAL)
...@@ -966,21 +967,22 @@ CRadical.prototype.recalculateSize = function(oMeasure) ...@@ -966,21 +967,22 @@ CRadical.prototype.recalculateSize = function(oMeasure)
var wTick = this.signRadical.measure.widthTick, var wTick = this.signRadical.measure.widthTick,
hTick = this.signRadical.measure.heightTick; hTick = this.signRadical.measure.heightTick;
var plH = 9.877777777777776 * txtPrp.FontSize /36;
// общие gaps
var gapHeight = 0.011*txtPrp.FontSize; // добавляем это расстояние к общей высоте радикала, также как и gapWidth
this.gapWidth = 0.011*txtPrp.FontSize;
var wDegree = degr.width > wTick ? degr.width - wTick : 0; var wDegree = degr.width > wTick ? degr.width - wTick : 0;
var width = wDegree + sign.width; var width = wDegree + sign.width + this.gapWidth;
//var width = degr.width - wTick + sign.width;
var plH = 9.877777777777776 * txtPrp.FontSize /36;
var gapDegree; var gapDegree;
var shTop = 0.011*txtPrp.FontSize;
if( base.height < plH ) if( base.height < plH )
gapDegree = 1.5*txtPrp.FontSize/36; gapDegree = 1.5*txtPrp.FontSize/36;
else else
gapDegree = 3*txtPrp.FontSize/36; gapDegree = 3*txtPrp.FontSize/36;
var h1 = gapHeight + degr.height + gapDegree + hTick,
var h1 = degr.height + gapDegree + hTick + shTop,
h2 = sign.height; h2 = sign.height;
...@@ -998,7 +1000,7 @@ CRadical.prototype.recalculateSize = function(oMeasure) ...@@ -998,7 +1000,7 @@ CRadical.prototype.recalculateSize = function(oMeasure)
ascent = gapBase + shTop + base.ascent; ascent = gapBase + shTop + base.ascent;
} }
this.gapDegree = height - gapDegree - hTick - degr.height; this.gapDegree = height - h1 + gapHeight;
this.size = {width: width, height: height, ascent: ascent}; this.size = {width: width, height: height, ascent: ascent};
} }
...@@ -1009,7 +1011,6 @@ CRadical.prototype.setPosition = function(pos) ...@@ -1009,7 +1011,6 @@ CRadical.prototype.setPosition = function(pos)
if(this.type == SQUARE_RADICAL) if(this.type == SQUARE_RADICAL)
{ {
var gapLeft = this.size.width - this.elements[0][0].size.width; var gapLeft = this.size.width - this.elements[0][0].size.width;
var gapTop = this.size.ascent - this.elements[0][0].size.ascent; var gapTop = this.size.ascent - this.elements[0][0].size.ascent;
...@@ -1027,12 +1028,7 @@ CRadical.prototype.setPosition = function(pos) ...@@ -1027,12 +1028,7 @@ CRadical.prototype.setPosition = function(pos)
var wTick = this.signRadical.measure.widthTick; var wTick = this.signRadical.measure.widthTick;
/*var hTick = this.signRadical.measure.heightTick; var x1 = this.pos.x + this.gapWidth,
var hDg = degr.height + this.gap + hTick;
this.topDegr = this.size.height - hDg;*/
var x1 = this.pos.x,
y1 = this.pos.y + this.gapDegree; y1 = this.pos.y + this.gapDegree;
this.elements[0][0].setPosition({x: x1, y: y1}); this.elements[0][0].setPosition({x: x1, y: y1});
...@@ -1109,9 +1105,14 @@ CRadical.prototype.findDisposition = function(mCoord) ...@@ -1109,9 +1105,14 @@ CRadical.prototype.findDisposition = function(mCoord)
mouseCoord.x = degr.width; mouseCoord.x = degr.width;
inside_flag = 1; inside_flag = 1;
} }
else if(mCoord.x < this.gapWidth)
{
mouseCoord.x = 0;
inside_flag = 0;
}
else else
{ {
mouseCoord.x = mCoord.x; mouseCoord.x = mCoord.x - this.gapWidth;
} }
mouseCoord.x = mCoord.x; mouseCoord.x = mCoord.x;
......
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