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

1. Переделала remove: поправила баги на delete не выставлялся placeholder в...

1. Переделала remove: поправила баги на delete не выставлялся placeholder в формуле, удаление по селекту
2. Поправила баг на добавление элемента, если находимся в плейсхолдере (сначала приходит Remove в ParagraphContent, где передается флаг, что пришел remove на добавление элемента, а затем Add)
3. Проверка на пустоту формулы
4. Удалила logarithm.js

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@52790 954022d7-b5bf-4e40-9824-e11837661b57
parent e497be48
...@@ -7587,7 +7587,7 @@ ParaMath.prototype = ...@@ -7587,7 +7587,7 @@ ParaMath.prototype =
Is_Empty : function() Is_Empty : function()
{ {
return false; return this.Math.Is_Empty();
}, },
Remove : function(Order, bOnAddText) Remove : function(Order, bOnAddText)
...@@ -7608,12 +7608,18 @@ ParaMath.prototype = ...@@ -7608,12 +7608,18 @@ ParaMath.prototype =
Selection_SetStart : function(X, Y, PageNum) Selection_SetStart : function(X, Y, PageNum)
{ {
//console.log("Selection_SetStart");
this.Math.Selection_SetStart( X, Y, PageNum ); this.Math.Selection_SetStart( X, Y, PageNum );
//console.log("Selection_Draw: IsPlaceholder "+ bPlh);
}, },
Selection_SetEnd : function(X, Y, PageNum, MouseEvent) Selection_SetEnd : function(X, Y, PageNum, MouseEvent)
{ {
console.log("Selection_SetEnd");
var bPlh = this.Math.SelectContent.IsPlaceholder();
this.Math.Selection_SetEnd( X, Y, PageNum, MouseEvent ); this.Math.Selection_SetEnd( X, Y, PageNum, MouseEvent );
console.log("Selection_Draw: IsPlaceholder "+ bPlh);
}, },
Selection_Beginning : function(bStart) Selection_Beginning : function(bStart)
...@@ -7628,12 +7634,14 @@ ParaMath.prototype = ...@@ -7628,12 +7634,14 @@ ParaMath.prototype =
Selection_Draw : function() Selection_Draw : function()
{ {
var bPlh = this.Math.SelectContent.IsPlaceholder();
console.log("Selection_Draw: IsPlaceholder "+ bPlh);
this.Math.Selection_Draw(); this.Math.Selection_Draw();
}, },
Selection_IsEmpty : function() Selection_IsEmpty : function()
{ {
return this.Math.Selection_IsEmpty() return this.Math.Selection_IsEmpty();
}, },
Selection_IsUse : function() Selection_IsUse : function()
...@@ -7681,13 +7689,11 @@ ParaMath.prototype = ...@@ -7681,13 +7689,11 @@ ParaMath.prototype =
Cursor_MoveToStartPos : function() Cursor_MoveToStartPos : function()
{ {
console.log("cursor_MoveToStartPos");
this.Math.Cursor_MoveToStartPos(); this.Math.Cursor_MoveToStartPos();
}, },
Cursor_MoveToEndPos : function() Cursor_MoveToEndPos : function()
{ {
console.log("cursor_MoveToStartPos");
this.Math.Cursor_MoveToEndPos(); this.Math.Cursor_MoveToEndPos();
}, },
......
//var NameFunctions = ["min", "max", "lim", "log", "ln", "sin", "cos", "tg", "ctg", "ch", "sh", "th", "cth", "sec", "csc", "cot", "csch", "sech", "coth"];
//var NameFunctions = ["min", "max", "lim", "log", "ln", "sin", "cos", "tan", "ctg", "cosh", "sinh", "tanh", "cth", "sec", "csc", "cot", "csch", "sech", "coth"];
//var Diff = ["dx","dy","dθ"];
function CLogarithm()
{
CSubMathBase.call(this,1,2);
}
extend(CLogarithm, CSubMathBase);
CLogarithm.prototype.setContent = function()
{
var oBase = new CMathContent();
var GParams = Common_CopyObj(this.params);
GParams.bMText = false;
oBase.init(GParams);
oBase.relate(this);
oBase.addText("log");
//oBase.setContent.apply(oBase, NameFunctions.minimax[3] );
var oFunc = new CDegreeOrdinary(-1);
oFunc.init(this.params);
oFunc.relate(this);
oFunc.setContent(oBase); //здесь выставляется для Base, что родительский класс CDegree...
//todo
//проверить !!!
//var oArg = new CMathBase(1, 1);
var oArg = new CMathContent();
oArg.init(this.params);
oArg.relate(this);
oArg.fillPlaceholders();
CLogarithm.superclass.setContent.call(this, oFunc, oArg);
}
CLogarithm.prototype.getFunction = function()
{
return this.elements[0][0].getBase();
}
CLogarithm.prototype.getBase = function()
{
return this.elements[0][0].getIterator();
}
CLogarithm.prototype.getArgument = function()
{
return this.elements[0][1];
}
function CMinimaxFunc()
{
CMathBase.call(this);
}
extend(CMinimaxFunc, CMathBase);
CMinimaxFunc.prototype.init = function()
{
this.setDimension(2, 1);
var oBase = new CMathContent();
//oBase.mergeTxtPrp({Italic: false});
oBase.setOwnTPrp({Italic: false});
var oIter = new CMathContent();
oIter.setReduct(DEGR_REDUCT);
this.addMCToContent(oBase, oIter);
}
CMinimaxFunc.prototype.getCenter = function()
{
return this.elements[0][0].size.center;
}
CMinimaxFunc.prototype.getBase = function()
{
return this.elements[0][0];
}
CMinimaxFunc.prototype.getIterator = function()
{
return this.elements[1][0];
}
CMinimaxFunc.prototype.old_setDistance = function()
{
var iter = this.elements[1][0].size,
ascent = iter.center + this.params.font.metrics.Placeholder.Height*DIV_CENTER;
this.dH = this.params.font.metrics.Placeholder.Height - ascent;
this.dW = 0;
//this.dH = this.params.font.FontSize/16*g_dKoef_pt_to_mm;
}
CMinimaxFunc.prototype.setDistance = function()
{
this.dH = 0.03674768518518519*this.getTxtPrp().FontSize;
}
function CMinimax()
{
CSubMathBase.call(this);
}
extend(CMinimax, CSubMathBase);
CMinimax.prototype.init = function()
{
this.setDimension(1, 2);
var oFunc = new CMinimaxFunc();
oFunc.init();
var oArg = new CMathContent();
this.addMCToContent(oFunc, oArg);
}
CMinimax.prototype.getFunction = function()
{
return this.elements[0][0].getBase();
}
CMinimax.prototype.getIterator = function()
{
return this.elements[0][0].getIterator();
}
CMinimax.prototype.getArgument = function()
{
return this.elements[0][1];
}
CMinimax.prototype.setDistance = function()
{
this.dW = this.getTxtPrp().FontSize/6*g_dKoef_pt_to_mm;
this.dH = 0;
}
function CMathFunc()
{
CMathBase.call(this);
}
extend(CMathFunc, CMathBase);
CMathFunc.prototype.init = function()
{
this.setDimension(1, 2);
this.setContent();
this.elements[0][0].setOwnTPrp({Italic: false}); // trigonometrical function
//this.elements[0][0].mergeTxtPrp({Italic: false}); // trigonometrical function
}
CMathFunc.prototype.setDistance = function()
{
this.dW = this.getTxtPrp().FontSize/6*g_dKoef_pt_to_mm;
}
CMathFunc.prototype.getFName = function()
{
return this.elements[0][0];
}
CMathFunc.prototype.getArgument = function()
{
return this.elements[0][1];
}
function old_CDifferential(num)
{
this.num = num;
CSubMathBase.call(this, 1,1);
}
extend(old_CDifferential, CSubMathBase);
old_CDifferential.prototype.setContent = function()
{
var oDiff = new CMathContent();
oDiff.init(this.params);
oDiff.addText(Diff[this.num]);
old_CMathFunc.superclass.setContent.call(this, oDiff);
}
function old_CTrigFunc(num)
{
if(num != num + 0 || num < 0 || num > 14)
return;
this.num = num;
//CSubMathBase.call(this, 1, 2);
CMathBase.call(this, 1,2);
}
//extend(old_CTrigFunc,CSubMathBase);
extend(old_CTrigFunc, CMathBase);
old_CTrigFunc.prototype.setContent = function()
{
var oFunc = new CMathContent();
var GParms = Common_CopyObj(this.params);
GParms.bMText = false;
oFunc.init(GParms);
oFunc.setContent.apply(oFunc, NameFunctions.trig[this.num] );
var oArg = new CMathContent();
oArg.init(this.params);
oArg.fillPlaceholders();
old_CTrigFunc.superclass.setContent.call(this, oFunc, oArg);
}
old_CTrigFunc.prototype.setDistance = function()
{
//todo
//переделать!
this.dW = slashWidth(this.params.font);
this.dH = 0;
}
old_CTrigFunc.prototype.getFunction = function()
{
return this.elemens[0][0];
}
old_CTrigFunc.prototype.getArgument = function()
{
return this.elemens[0][1];
}
...@@ -3937,16 +3937,17 @@ CMathContent.prototype = ...@@ -3937,16 +3937,17 @@ CMathContent.prototype =
var bFirstRunPrp = this.CurPos == 1 && currType == MATH_RUN_PRP; var bFirstRunPrp = this.CurPos == 1 && currType == MATH_RUN_PRP;
var bComposition = this.CurPos == 0; var bComposition = this.CurPos == 0;
var bPlh = this.IsPlaceholder(), var bPlh = this.IsPlaceholder(),
bStartPos = (bFirstRunPrp || bComposition) && !this.bRoot; bStartPos = bFirstRunPrp || bComposition;
var bUpperLevel = bPlh || bStartPos; var bStartRoot = bStartPos && this.bRoot;
var bUpperLevel = (bPlh || bStartPos) && !this.bRoot;
if(bUpperLevel) if(bUpperLevel)
{ {
var movement = this.Parent.cursor_moveLeft(); var movement = this.Parent.cursor_moveLeft();
CurrContent = SelectContent = movement.SelectContent; CurrContent = SelectContent = movement.SelectContent;
} }
else if(this.CurPos!=0 || this.selectUse()) // не в начале else if(!bStartRoot || this.selectUse()) // не в начале
{ {
if(this.selectUse()) if(this.selectUse())
...@@ -4316,10 +4317,8 @@ CMathContent.prototype = ...@@ -4316,10 +4317,8 @@ CMathContent.prototype =
{ {
if(!this.IsPlaceholder()) if(!this.IsPlaceholder())
this.setLogicalPosition(this.content.length - 1); this.setLogicalPosition(this.content.length - 1);
//this.CurPos = this.content.length - 1;
else else
this.setLogicalPosition(0); this.setLogicalPosition(0);
//this.CurPos = 0;
} }
}, },
////////////////////////////////////// //////////////////////////////////////
...@@ -4635,7 +4634,7 @@ CMathContent.prototype = ...@@ -4635,7 +4634,7 @@ CMathContent.prototype =
}, },
remove: function(order) remove: function(order)
{ {
console.log("Order of remove: " + order); //console.log("Order of remove: " + order);
var state = var state =
{ {
bDelete: false, /* нужно ли пересчитывать позицию или нет, работает при backspace */ bDelete: false, /* нужно ли пересчитывать позицию или нет, работает при backspace */
...@@ -4711,8 +4710,7 @@ CMathContent.prototype = ...@@ -4711,8 +4710,7 @@ CMathContent.prototype =
prevType = this.CurPos > 1 ? this.content[this.CurPos - 1].value.typeObj : null, prevType = this.CurPos > 1 ? this.content[this.CurPos - 1].value.typeObj : null,
prev2_Type = this.CurPos > 2 ? this.content[this.CurPos - 2].value.typeObj : null, prev2_Type = this.CurPos > 2 ? this.content[this.CurPos - 2].value.typeObj : null,
nextType = this.CurPos + 1 < this.content.length ? this.content[this.CurPos + 1].value.typeObj : null, nextType = this.CurPos + 1 < this.content.length ? this.content[this.CurPos + 1].value.typeObj : null,
next2_Type = this.CurPos + 2 < this.content.length ? this.content[this.CurPos + 2].value.typeObj : null, next2_Type = this.CurPos + 2 < this.content.length ? this.content[this.CurPos + 2].value.typeObj : null;
next3_Type = this.CurPos + 3 < this.content.length ? this.content[this.CurPos + 3].value.typeObj : null;
var bMEDirect = order == 1, var bMEDirect = order == 1,
bMEReverse = order == -1; bMEReverse = order == -1;
...@@ -4734,13 +4732,6 @@ CMathContent.prototype = ...@@ -4734,13 +4732,6 @@ CMathContent.prototype =
var bRemoveFormula = (bDirectly_CurrComp|| bDirectly_RPrpComp || bReverseComp) && !bSelect; var bRemoveFormula = (bDirectly_CurrComp|| bDirectly_RPrpComp || bReverseComp) && !bSelect;
// NB !
// учесть случаи :
// 1. если нажата delete и справа стоят RunPrp
// 2. если все текстовые элементы удалили из Run, нужно удалить RunPrp (delete и backspace)
if(bRemoveFormula) if(bRemoveFormula)
{ {
var pos; var pos;
...@@ -4752,93 +4743,13 @@ CMathContent.prototype = ...@@ -4752,93 +4743,13 @@ CMathContent.prototype =
pos = this.CurPos - 2; pos = this.CurPos - 2;
this.removeFormula(pos); this.removeFormula(pos);
/* var start, end;
if(bDirectly_CurrComp) // directly, only composition
{
start = this.CurPos;
end = this.CurPos - 2;
}
else if(bReverseComp && !bAfterRPrp) // reverse, only composition
{
start = this.CurPos;
end = this.CurPos + 2;
}
else // composition + RunPrp(after)
{
var bSelectRunPrp = false;
var bDirectlySearch = prev3_Type === MATH_TEXT && bDirectly_RPrpComp, // перед мат. объектом текст, а после RunPrp
bReverseSeach = currType === MATH_TEXT && bMEReverse && bAfterRPrp;
if(bDirectlySearch || bReverseSeach)
{
var shift;
if(bMEDirect)
shift = 3;
else
shift = 0;
for(var i = this.CurPos - shift; i > 0; i--)
{
if(this.content[i].value.typeObj === MATH_RUN_PRP)
{
currRPrp = this.content[this.CurPos + shift].value;
prevRPrp = this.content[i].value;
bSelectRunPrp = currRPrp.isEqual(currRPrp, prevRPrp);
break;
}
}
}
if(bMEDirect)
{
if(bSelectRunPrp)
{
start = this.CurPos;
end = this.CurPos - 3;
}
else
{
start = this.CurPos - 1;
end = this.CurPos - 3;
}
}
else
{
if(bSelectRunPrp)
{
start = this.CurPos - 1;
end = this.CurPos + 2;
}
else
{
start = this.CurPos - 1;
end = this.CurPos + 1;
}
}
}
this.setStart_Selection(start);
this.setEnd_Selection(end);
this.selection.active = false;*/
} }
// TO DO
// переделать !
// можно проще, как для случая с формулой
else if(!bNotRemove) else if(!bNotRemove)
{ {
var start, end;
var bDirRPrp = currType === MATH_RUN_PRP && bMEDirect,
bRevRPrp = nextType === MATH_RUN_PRP && bMEReverse;
if(bSelect) if(bSelect)
{ {
start = this.RealSelect.startPos; var start = this.RealSelect.startPos,
end = this.RealSelect.endPos; end = this.RealSelect.endPos;
var tmp; var tmp;
if(start > end) if(start > end)
...@@ -4847,67 +4758,39 @@ CMathContent.prototype = ...@@ -4847,67 +4758,39 @@ CMathContent.prototype =
start = end; start = end;
end = tmp; end = tmp;
} }
}
else if(bDirRPrp) // проверку на начало прошли, не формула (иначе бы зашли в ветку с bRemoveFormula)
{ // то есть стоим перед RunPrp, а слева текст и нет селекта
start = this.CurPos - 1; items = this.content.splice(start, end - start);
end = this.CurPos;
} this.CurPos = start - 1;
else if(bRevRPrp) // на всякий случай, может получится, что после удаления элемента, стоим после RunPrp
{ if(!this.IsEmpty() && this.CurPos == 0 && this.content[this.CurPos+1].value.typeObj === MATH_RUN_PRP) // если удалили мат. объект и стоим в начале, то позиция курсора будет перед RunPrp, а нужно после
start = this.CurPos + 2; this.CurPos++;
end = this.CurPos + 3;
}
else if(bMEReverse)
{
if(nextType == MATH_RUN_PRP && next3_Type !== MATH_TEXT) //единственная буква в Run
{
start = this.CurPos;
end = this.CurPos + 2;
}
else
{
start = this.CurPos + 1;
end = this.CurPos + 2;
}
} }
else else
{ {
if(prevType == MATH_RUN_PRP && nextType !== MATH_TEXT) //единственная буква в Run var start = order == 1 ? this.CurPos : this.CurPos + 1; // позиция, с которой будем удалять
{
start = this.CurPos - 1;
end = this.CurPos + 1;
}
else
{
start = this.CurPos;
end = this.CurPos + 1;
}
} if(this.content[start].value.typeObj === MATH_RUN_PRP) // встали на RunPrp
start -= order;
items = this.content.splice(start, end - start); var bRun = start - 1 > 0 ? this.content[start - 1].value.typeObj === MATH_RUN_PRP : false,
bNotNextText = start + 1 < this.content.length ? this.content[start + 1].value.typeObj !== MATH_TEXT : true; // start < this.content.length - 1, значит последняя буква в контента
/*if(!TEST) var bOnlyLetter = bRun && bNotNextText; // если все текстовые элементы удалили из Run, нужно удалить RunPrp
{
History.Create_NewPoint(); if(bOnlyLetter)
//items = this.content.splice(start, end - start); {
History.Add(this, {Type: historyitem_Math_RemoveItem, Items: items, Pos: start}); start--;
}*/ end = start + 2;
}
else
end = start + 1;
if(bSelect)
{
//this.CurPos = this.selection.startPos - 1;
this.CurPos = start - 1; this.CurPos = start - 1;
if(!this.IsEmpty() && this.CurPos == 0 && this.content[this.CurPos+1].value.typeObj === MATH_RUN_PRP) // если удалили мат. объект и стоим в начале, то поизиция курсор будет перед RunPrp, нужно после items = this.content.splice(start, end - start);
this.CurPos++;
} }
else if(bMEDirect)
this.CurPos -= end - start;
//this.setStart_Selection(this.CurPos);
this.setLogicalPosition(this.CurPos); this.setLogicalPosition(this.CurPos);
bDelete = true; bDelete = true;
...@@ -5253,13 +5136,6 @@ CMathContent.prototype = ...@@ -5253,13 +5136,6 @@ CMathContent.prototype =
{ {
return false; return false;
}, },
old_tgtSelect: function()
{
this.CurPos = 1;
this.setStart_Selection(0);
this.setEnd_Selection(1);
this.selection.active = false;
},
setPosition: function( pos ) setPosition: function( pos )
{ {
this.pos = { x: pos.x + this.g_mContext.left, y: pos.y}; this.pos = { x: pos.x + this.g_mContext.left, y: pos.y};
...@@ -6078,13 +5954,140 @@ CMathContent.prototype = ...@@ -6078,13 +5954,140 @@ CMathContent.prototype =
} }
return flag; return flag;
},
//////////////// Test function for test_math //////////////////
mouseUp: function()
{
/*if( this.selection.active )
{
if( this.content[this.CurPos].value.typeObj === MATH_COMP )
this.content[this.CurPos].value.mouseUp();
}*/
},
mouseDown: function(mouseCoord, inside_flag) // mouseDown идем сверху вниз по иерархии
{
var result = null;
if(typeof(inside_flag) === "undefined")
inside_flag = -1;
if(this.IsPlaceholder())
{
result = this;
}
else
{
var msCoord = this.coordWOGaps(mouseCoord);
if(inside_flag == 0)
this.CurPos = 0;
else if(inside_flag == 1)
this.CurPos = this.content.length - 1;
else
this.CurPos = this.findPosition( msCoord );
if( this.content[this.CurPos].value.typeObj === MATH_COMP )
{
var coord = this.getCoordElem(this.CurPos, msCoord);
result = this.content[this.CurPos].value.mouseDown(coord);
}
else
result = this;
//this.setStart_Selection(this.CurPos);
this.setLogicalPosition(this.CurPos);
}
return result;
},
mouseMove: function(mouseCoord) // mouseMove идем сверху вниз по иерархии
{
var state = true;
var SelectContent = null;
if(this.IsPlaceholder())
{
SelectContent = this;
}
else
{
var msCoord = this.coordWOGaps(mouseCoord);
var pos = this.findPosition( msCoord );
//селект внутри элемента (дроби и пр.)
if(this.CurPos === pos && this.content[pos].value.typeObj === MATH_COMP)
{
//this.setStart_Selection( pos - 1 );
this.setStartPos_Selection(pos - 1);
var coord = this.getCoordElem(this.CurPos, msCoord );
var movement = this.content[pos].value.mouseMove(coord);
if( ! movement.state )
{
this.setEndPos_Selection(pos+1);
//this.setEnd_Selection( pos + 1 );
SelectContent = this;
}
else
SelectContent = movement.SelectContent;
}
//селект элементов контента
else
{
SelectContent = this;
var direction = ( this.CurPos < pos ) ? 1 : -1;
if ( this.content[this.CurPos].value.typeObj === MATH_COMP )
{
if( direction == 1 )
this.setStartPos_Selection(this.CurPos - 1);
//this.setStart_Selection( this.CurPos - 1);
else if( direction == -1 )
this.setStartPos_Selection(this.CurPos + 1);
//this.setStart_Selection( this.CurPos + 1);
}
else
this.setStartPos_Selection(this.CurPos);
//this.setStart_Selection( this.CurPos );
if( this.content[pos].value.typeObj === MATH_COMP )
{
if( direction == 1 )
this.setEndPos_Selection(pos+1);
//this.setEnd_Selection(pos + 1);
else if( direction == -1 )
this.setEndPos_Selection(pos-1);
//this.setEnd_Selection(pos - 1);
}
else
this.setEndPos_Selection( pos );
//this.setEnd_Selection( pos );
}
}
return {state: state, SelectContent: SelectContent }; //для CMathContent state всегда true
},
tgtSelect: function()
{
this.CurPos = 1;
//this.setStart_Selection(0);
this.setStartPos_Selection(0);
this.setEndPos_Selection(1);
//this.setEnd_Selection(1);
//this.selection.active = false;
} }
/////////////////////////////////////////////////////////////////
} }
//todo //todo
//разобраться с gaps //разобраться с gaps
function CMathComposition() function CMathComposition()
{ {
this.TEST_SELECT_ACTIVE = false;
this.pos = null; this.pos = null;
this.Root = null; this.Root = null;
...@@ -6285,11 +6288,13 @@ CMathComposition.prototype = ...@@ -6285,11 +6288,13 @@ CMathComposition.prototype =
this.ClearSelect(); this.ClearSelect();
this.CurrentContent = this.SelectContent = this.Root.mouseDown({x: mouseX, y: mouseY}, -1); this.CurrentContent = this.SelectContent = this.Root.mouseDown({x: mouseX, y: mouseY}, -1);
this.TEST_SELECT_ACTIVE = true;
this.CheckTarget(); this.CheckTarget();
}, },
MouseMove: function(mouseX, mouseY) MouseMove: function(mouseX, mouseY)
{ {
if(this.Root.selection.active) if(this.TEST_SELECT_ACTIVE)
{ {
this.ClearSelect(); this.ClearSelect();
...@@ -6301,7 +6306,7 @@ CMathComposition.prototype = ...@@ -6301,7 +6306,7 @@ CMathComposition.prototype =
}, },
MouseUp: function() MouseUp: function()
{ {
this.Root.mouseUp(); this.TEST_SELECT_ACTIVE = false;
}, },
getSize: function() getSize: function()
{ {
...@@ -6321,7 +6326,7 @@ CMathComposition.prototype = ...@@ -6321,7 +6326,7 @@ CMathComposition.prototype =
return size; return size;
}, },
Remove: function(order) Remove: function(order, bOnAdd)
{ {
////* History *///// ////* History */////
History.Create_NewPoint(); History.Create_NewPoint();
...@@ -6340,22 +6345,36 @@ CMathComposition.prototype = ...@@ -6340,22 +6345,36 @@ CMathComposition.prototype =
/////////////////////////// ///////////////////////////
var result = this.SelectContent.remove(order);
var bRoot = this.SelectContent.bRoot === true, var removeMComp = true;
bToUpper = result.state.bBegin || result.state.bEnd; // наверх нужно ли прокидовать
if(bOnAdd)
{
this.SelectContent.removeAreaSelect();
}
else
{
var result = this.SelectContent.remove(order);
if( result.state.bDelete ) var bRoot = this.SelectContent.bRoot === true,
History.Add(this.CurrentContent, {Type: historyitem_Math_RemoveItem, Items: result.items, Pos: Pos}); bToUpper = result.state.bBegin || result.state.bEnd; // наверх нужно ли прокидовать
this.CurrentContent = result.CurrContent; if( result.state.bDelete )
this.SelectContent = result.SelectContent; History.Add(this.CurrentContent, {Type: historyitem_Math_RemoveItem, Items: result.items, Pos: Pos});
this.CurrentContent.setPlaceholderAfterRemove(); // чтобы не выставлялся тагет при вставке, когда заселекчен весь контент и мы добавляем, например, другой мат элемент
return !(bRoot && bToUpper); // посылаем false, если в начале + backspace или в конце + delete this.CurrentContent = result.CurrContent;
this.SelectContent = result.SelectContent;
this.CurrentContent.setPlaceholderAfterRemove(); // чтобы не выставлялся тагет при вставке, когда заселекчен весь контент и мы добавляем, например, другой мат элемент
/*var bPlh = this.SelectContent.IsPlaceholder();
console.log("After Remove: IsPlaceholder "+ bPlh);*/
removeMComp = !(bRoot && bToUpper); // посылаем false, если в начале + backspace или в конце + delete
}
return removeMComp;
}, },
Remove_2: function(order) Remove_2: function(order)
{ {
...@@ -6427,9 +6446,10 @@ CMathComposition.prototype = ...@@ -6427,9 +6446,10 @@ CMathComposition.prototype =
History.Create_NewPoint(); History.Create_NewPoint();
} }
this.ClearSelect(); //this.ClearSelect();
//this.SelectContent.removeAreaSelect();
this.SelectContent.removeAreaSelect();
/*if(this.Root.IsEmpty()) /*if(this.Root.IsEmpty())
this.Root.addRunPrp(this.DefaultTxtPrp);*/ this.Root.addRunPrp(this.DefaultTxtPrp);*/
...@@ -6464,9 +6484,8 @@ CMathComposition.prototype = ...@@ -6464,9 +6484,8 @@ CMathComposition.prototype =
History.Create_NewPoint(); History.Create_NewPoint();
} }
this.ClearSelect(); //this.ClearSelect();
//this.SelectContent.removeAreaSelect();
this.SelectContent.removeAreaSelect();
if(TEST) if(TEST)
var Pos = this.SelectContent.CurPos + 1; var Pos = this.SelectContent.CurPos + 1;
...@@ -6878,6 +6897,10 @@ CMathComposition.prototype = ...@@ -6878,6 +6897,10 @@ CMathComposition.prototype =
y = Y - this.pos.y; y = Y - this.pos.y;
this.Root.selection_Start(x, y); this.Root.selection_Start(x, y);
var bPlh = this.SelectContent.IsPlaceholder();
console.log("Selection_SetStart: IsPlaceholder "+ bPlh);
//this.SelectContent = result.SelectContent; // если SetEnd придет раньше //this.SelectContent = result.SelectContent; // если SetEnd придет раньше
}, },
Selection_SetEnd: function(X, Y, PageNum, MouseEvent) Selection_SetEnd: function(X, Y, PageNum, MouseEvent)
...@@ -6888,10 +6911,16 @@ CMathComposition.prototype = ...@@ -6888,10 +6911,16 @@ CMathComposition.prototype =
var result = this.Root.selection_End(x, y, MouseEvent); var result = this.Root.selection_End(x, y, MouseEvent);
this.SelectContent = result.SelectContent; this.SelectContent = result.SelectContent;
var bPlh = this.SelectContent.IsPlaceholder();
console.log("Selection_SetEnd: IsPlaceholder "+ bPlh);
}, },
Selection_Draw: function() Selection_Draw: function()
{ {
this.SelectContent.drawSelect2(); this.SelectContent.drawSelect2();
var bPlh = this.SelectContent.IsPlaceholder();
console.log("Selection_Draw: IsPlaceholder "+ bPlh);
}, },
Selection_Beginning: function(bStart) // если приходит bStart = false, то это означает Selection_SetEnd (конец селекта в начале контента) Selection_Beginning: function(bStart) // если приходит bStart = false, то это означает Selection_SetEnd (конец селекта в начале контента)
{ {
...@@ -6913,6 +6942,10 @@ CMathComposition.prototype = ...@@ -6913,6 +6942,10 @@ CMathComposition.prototype =
Selection_Check: function(X, Y) Selection_Check: function(X, Y)
{ {
return this.SelectContent.selection_check(X, Y); return this.SelectContent.selection_check(X, Y);
},
Is_Empty: function()
{
return this.Root.IsEmpty();
} }
} }
......
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