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

убрала вызовы функции update_cursor для всех функций редактирования и...

убрала вызовы функции update_cursor для всех функций редактирования и изменений логического положения курсора (for Edit)

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@52800 954022d7-b5bf-4e40-9824-e11837661b57
parent a48e6a7f
//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 old_CLogarithm()
{
CSubMathBase.call(this,1,2);
}
extend(old_CLogarithm, CSubMathBase);
old_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();
old_CLogarithm.superclass.setContent.call(this, oFunc, oArg);
}
old_CLogarithm.prototype.getFunction = function()
{
return this.elements[0][0].getBase();
}
old_CLogarithm.prototype.getBase = function()
{
return this.elements[0][0].getIterator();
}
old_CLogarithm.prototype.getArgument = function()
{
return this.elements[0][1];
}
function CLimit() function CLimit()
{ {
this.type = LIMIT_LOW; this.type = LIMIT_LOW;
...@@ -105,39 +57,6 @@ CLimit.prototype.setDistance = function() ...@@ -105,39 +57,6 @@ CLimit.prototype.setDistance = function()
} }
function old_CMinimax()
{
CSubMathBase.call(this);
}
extend(old_CMinimax, CSubMathBase);
old_CMinimax.prototype.init = function()
{
this.setDimension(1, 2);
var oFunc = new old_CMinimaxFunc();
oFunc.init();
var oArg = new CMathContent();
this.addMCToContent(oFunc, oArg);
}
old_CMinimax.prototype.getFName = function()
{
return this.elements[0][0].getBase();
}
old_CMinimax.prototype.getIterator = function()
{
return this.elements[0][0].getIterator();
}
old_CMinimax.prototype.getArgument = function()
{
return this.elements[0][1];
}
old_CMinimax.prototype.setDistance = function()
{
this.dW = this.getTxtPrp().FontSize/6*g_dKoef_pt_to_mm;
this.dH = 0;
}
function CMathFunc() function CMathFunc()
{ {
CMathBase.call(this); CMathBase.call(this);
...@@ -162,60 +81,3 @@ CMathFunc.prototype.getArgument = function() ...@@ -162,60 +81,3 @@ CMathFunc.prototype.getArgument = function()
} }
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];
}
...@@ -16,9 +16,14 @@ ...@@ -16,9 +16,14 @@
// При удаление из начала контента элемента, у всех остальных автоматом 11 размер шрифта // При удаление из начала контента элемента, у всех остальных автоматом 11 размер шрифта
/// TODO /// TODO
// 1. убрать slashWidth // 1. properties для записи в файл
// 2. переделать remove_internal // 2. плейсхолдер на чтение
// 3. убрать set_StartSelection // 3. убрать slashWidth
// 4. центр => baseline
// 5. сделать gaps для мат. объектов, +, - в зависимости от расположения в контенте
// 6. объединение формул на remove и add
// 7. ctr + shift
/// TODO /// TODO
// !!! Проверить типы для groupCharacter, delimiters и accent // !!! Проверить типы для groupCharacter, delimiters и accent
...@@ -3832,29 +3837,37 @@ CMathContent.prototype = ...@@ -3832,29 +3837,37 @@ CMathContent.prototype =
var start = this.RealSelect.start, var start = this.RealSelect.start,
end = this.RealSelect.end; end = this.RealSelect.end;
var posLeft = null; // позиция курсора, стартовая позиция селекта
var posStart = start > end ? end : start; // для CurPos, стартовая и конечная позиции совпадают var posStart = start > end ? end : start; // для CurPos, стартовая и конечная позиции совпадают
var posLeft;
var currType = this.content[posStart].value.typeObj; var currType = this.content[this.CurPos].value.typeObj;
var bFirstRunPrp = posStart == 1 && currType == MATH_RUN_PRP; var bFirstRunPrp = this.CurPos == 1 && currType == MATH_RUN_PRP;
var bComposition = this.CurPos == 0 && !this.bRoot; var bComposition = this.CurPos == 0;
var bPlh = this.IsPlaceholder(),
bStartPos = bFirstRunPrp || bComposition;
if(this.IsPlaceholder()) var bStartRoot = bStartPos && this.bRoot;
{ var bUpperLevel = (bPlh || bStartPos) && !this.bRoot;
var movement = this.Parent.getPos_toMoveLeft();
SelectContent = movement.SelectContent; if(bUpperLevel)
}
else if(bFirstRunPrp && bComposition)
{ {
var movement = this.Parent.getPos_toMoveLeft(); var movement = this.Parent.cursor_moveLeft();
SelectContent = movement.SelectContent; SelectContent = movement.SelectContent;
//state = false; // перешли вверх по иерархии
} }
else if(posStart!=0 || this.selectUse()) // не в начале else if(!bStartRoot || this.selectUse()) // не в начале
{ {
if(this.selectUse()) if(this.selectUse())
{ {
var start = this.RealSelect.start,
end = this.RealSelect.end;
if(start > end)
{
var tmp = start;
start = end;
end = tmp;
}
// select move left // select move left
...@@ -3868,6 +3881,7 @@ CMathContent.prototype = ...@@ -3868,6 +3881,7 @@ CMathContent.prototype =
{ {
this.CurPos = start - 1; this.CurPos = start - 1;
SelectContent = this; SelectContent = this;
CurrContent = this;
}*/ }*/
this.CurPos = start - 1; this.CurPos = start - 1;
...@@ -3890,6 +3904,7 @@ CMathContent.prototype = ...@@ -3890,6 +3904,7 @@ CMathContent.prototype =
{ {
this.CurPos--; this.CurPos--;
SelectContent = this; SelectContent = this;
CurrContent = this;
}*/ }*/
this.CurPos--; this.CurPos--;
...@@ -3920,10 +3935,12 @@ CMathContent.prototype = ...@@ -3920,10 +3935,12 @@ CMathContent.prototype =
} }
this.setLogicalPosition(this.CurPos); this.setLogicalPosition(this.CurPos);
//this.setStart_Selection(this.CurPos);
} }
else else
state = false; state = false; // bRoot, в начале
//return {state: state, SelectContent: SelectContent, CurrContent: CurrContent };
return {state: state, SelectContent: SelectContent, pos: pos}; return {state: state, SelectContent: SelectContent, pos: pos};
...@@ -4030,24 +4047,11 @@ CMathContent.prototype = ...@@ -4030,24 +4047,11 @@ CMathContent.prototype =
} }
this.setLogicalPosition(this.CurPos); this.setLogicalPosition(this.CurPos);
//this.setStart_Selection(this.CurPos);
//this.selection_End(this.CurPos);
} }
else else
state = false; // bRoot, в начале state = false; // bRoot, в начале
/*else
{
if( ! this.bRoot )
{
var movement = this.Parent.cursor_moveLeft();
SelectContent = CurrContent = movement.SelectContent;
}
else
state = false;
}*/
return {state: state, SelectContent: SelectContent, CurrContent: CurrContent }; return {state: state, SelectContent: SelectContent, CurrContent: CurrContent };
}, },
goToLastElement: function() goToLastElement: function()
...@@ -4294,7 +4298,6 @@ CMathContent.prototype = ...@@ -4294,7 +4298,6 @@ CMathContent.prototype =
// выставить курсор в начало конента // выставить курсор в начало конента
cursor_MoveToStartPos: function() // home => cursor_MoveToStartPos cursor_MoveToStartPos: function() // home => cursor_MoveToStartPos
{ {
console.log("cursor_MoveToStartPos");
if( !this.IsEmpty() ) if( !this.IsEmpty() )
{ {
if(!this.IsPlaceholder()) if(!this.IsPlaceholder())
...@@ -4312,7 +4315,6 @@ CMathContent.prototype = ...@@ -4312,7 +4315,6 @@ CMathContent.prototype =
// выставить курсор в конец конента // выставить курсор в конец конента
cursor_MoveToEndPos: function() // end => cursor_MoveToEndPos cursor_MoveToEndPos: function() // end => cursor_MoveToEndPos
{ {
console.log("cursor_MoveToEndPos");
if( !this.IsEmpty() ) if( !this.IsEmpty() )
{ {
if(!this.IsPlaceholder()) if(!this.IsPlaceholder())
...@@ -4627,7 +4629,6 @@ CMathContent.prototype = ...@@ -4627,7 +4629,6 @@ CMathContent.prototype =
}, },
remove: function(order) remove: function(order)
{ {
console.log("Order of remove: " + order);
var state = var state =
{ {
bDelete: false, /* нужно ли пересчитывать позицию или нет, работает при backspace */ bDelete: false, /* нужно ли пересчитывать позицию или нет, работает при backspace */
...@@ -4739,9 +4740,11 @@ CMathContent.prototype = ...@@ -4739,9 +4740,11 @@ CMathContent.prototype =
} }
else if(!bNotRemove) else if(!bNotRemove)
{ {
var start, end;
if(bSelect) if(bSelect)
{ {
var start = this.RealSelect.startPos, start = this.RealSelect.startPos;
end = this.RealSelect.endPos; end = this.RealSelect.endPos;
var tmp; var tmp;
...@@ -4752,16 +4755,10 @@ CMathContent.prototype = ...@@ -4752,16 +4755,10 @@ CMathContent.prototype =
end = tmp; end = tmp;
} }
items = this.content.splice(start, end - start);
this.CurPos = start - 1;
/*if(!this.IsEmpty() && this.CurPos == 0 && this.content[this.CurPos+1].value.typeObj === MATH_RUN_PRP) // если удалили мат. объект и стоим в начале, то позиция курсора будет перед RunPrp, а нужно после
this.CurPos++;*/
} }
else else
{ {
var start = order == 1 ? this.CurPos : this.CurPos + 1; // позиция, с которой будем удалять start = order == 1 ? this.CurPos : this.CurPos + 1; // позиция, с которой будем удалять
if(this.content[start].value.typeObj === MATH_RUN_PRP) // встали на RunPrp if(this.content[start].value.typeObj === MATH_RUN_PRP) // встали на RunPrp
start -= order; start -= order;
...@@ -4778,26 +4775,11 @@ CMathContent.prototype = ...@@ -4778,26 +4775,11 @@ CMathContent.prototype =
} }
else else
end = start + 1; end = start + 1;
}
this.CurPos = start - 1; this.CurPos = start - 1;
console.log("Remove: " + " CurPos = " + this.CurPos);
var type = "";
var currType = this.content[this.CurPos].value.typeObj;
if(currType === MATH_EMPTY)
type = "Empty";
else if(currType === MATH_RUN_PRP)
type = "Run properties";
else if(currType == MATH_TEXT)
type = "Text";
else if(currType == MATH_COMP)
type = "Composition";
else
type = "Placeholder";
console.log("Remove: " + " typeObj of Current is " + type);
items = this.content.splice(start, end - start); items = this.content.splice(start, end - start);
}
if(!this.IsEmpty() && this.CurPos == 0 && this.content[this.CurPos+1].value.typeObj === MATH_RUN_PRP) // если удалили мат. объект и стоим в начале, то позиция курсора будет перед RunPrp, а нужно после if(!this.IsEmpty() && this.CurPos == 0 && this.content[this.CurPos+1].value.typeObj === MATH_RUN_PRP) // если удалили мат. объект и стоим в начале, то позиция курсора будет перед RunPrp, а нужно после
this.CurPos++; this.CurPos++;
...@@ -5923,19 +5905,6 @@ CMathContent.prototype = ...@@ -5923,19 +5905,6 @@ CMathContent.prototype =
this.RealSelect.startPos -= 2; this.RealSelect.startPos -= 2;
} }
if(selectStart == MATH_COMP)
console.log("Select is composition");
else if(selectStart == MATH_EMPTY)
console.log("Select is empty-object");
else
console.log("Select is other object");
if(current == MATH_COMP)
console.log("Current is composition");
else if(current == MATH_EMPTY)
console.log("Current is empty-object");
else
console.log("Current is other object");
} }
}, },
selection_check: function(X, Y) selection_check: function(X, Y)
...@@ -5945,8 +5914,8 @@ CMathContent.prototype = ...@@ -5945,8 +5914,8 @@ CMathContent.prototype =
var x = X - this.pos.x, var x = X - this.pos.x,
y = Y - this.pos.y; y = Y - this.pos.y;
var bWidth = x >=0 && x <= this.size.width, // попали в контент по ширине var bWidth = x >= 0 && x <= this.size.width, // попали в контент по ширине
bHeight = y >=0 && y <= this.size.height, // попали в контент по высоте bHeight = y >= 0 && y <= this.size.height, // попали в контент по высоте
bSelect = this.selectUse(); bSelect = this.selectUse();
if(this.IsPlaceholder()) if(this.IsPlaceholder())
...@@ -6183,76 +6152,34 @@ CMathComposition.prototype = ...@@ -6183,76 +6152,34 @@ CMathComposition.prototype =
this.pos = {x: x, y: y - this.Root.size.center}; this.pos = {x: x, y: y - this.Root.size.center};
this.Root.setPosition({x: x, y: y - this.Root.size.center}); this.Root.setPosition({x: x, y: y - this.Root.size.center});
this.Root.draw(pGraphics); this.Root.draw(pGraphics);
this.UpdateCursor(); //this.UpdateCursor();
} }
}, },
GetFirstPrp: function() GetFirstPrp: function()
{ {
return this.Root.getFirstPrp(); return this.Root.getFirstPrp();
}, },
Cursor_MoveRight_2: function()
{
this.ClearSelect();
var move = this.SelectContent.cursor_moveRight();
//передаем состояние, т.к. можем выйти за пределы формулы
if(move.state)
{
// SelectContent == CurrentContent
this.SelectContent = move.SelectContent;
this.CurrentContent = move.CurrContent;
this.CheckTarget();
}
return move.state;
},
Cursor_MoveLeft_2: function()
{
this.ClearSelect();
var move = this.SelectContent.cursor_moveLeft();
if(move.state)
{
this.SelectContent = move.SelectContent;
this.CurrentContent = move.CurrContent;
this.CheckTarget();
}
return move.state;
},
Cursor_MoveLeft: function() Cursor_MoveLeft: function()
{ {
//this.ClearSelect();
var move = this.SelectContent.cursor_moveLeft(); var move = this.SelectContent.cursor_moveLeft();
if(move.state) if(move.state)
{ {
this.SelectContent = move.SelectContent; this.SelectContent = move.SelectContent;
this.CurrentContent = move.CurrContent; this.CurrentContent = move.CurrContent;
//this.CheckTarget();
} }
//console.log("Cursor_MoveLeft: " + move.state);
return move.state; return move.state;
}, },
Cursor_MoveRight: function() Cursor_MoveRight: function()
{ {
//this.ClearSelect();
var move = this.SelectContent.cursor_moveRight(); var move = this.SelectContent.cursor_moveRight();
//передаем состояние, т.к. можем выйти за пределы формулы //передаем состояние, т.к. можем выйти за пределы формулы
if(move.state) if(move.state)
{ {
// SelectContent == CurrentContent
this.SelectContent = move.SelectContent; this.SelectContent = move.SelectContent;
this.CurrentContent = move.CurrContent; this.CurrentContent = move.CurrContent;
//this.CheckTarget();
} }
return move.state; return move.state;
...@@ -6262,26 +6189,21 @@ CMathComposition.prototype = ...@@ -6262,26 +6189,21 @@ CMathComposition.prototype =
//TODO !!! //TODO !!!
//сделать как в Cursor_MoveLeft/Right //сделать как в Cursor_MoveLeft/Right
// в зависимости от пришедшего флага выставлять/не выставлять контент // в зависимости от пришедшего флага выставлять/не выставлять контент
this.ClearSelect();
var move = this.SelectContent.cursor_moveUp(); var move = this.SelectContent.cursor_moveUp();
this.CurrentContent = move.CurrContent; this.CurrentContent = move.CurrContent;
this.SelectContent = move.SelectContent; this.SelectContent = move.SelectContent;
this.CheckTarget();
return move.state; return move.state;
}, },
Cursor_MoveDown: function() Cursor_MoveDown: function()
{ {
this.ClearSelect();
var move = this.SelectContent.cursor_moveDown(); var move = this.SelectContent.cursor_moveDown();
this.CurrentContent = move.CurrContent; this.CurrentContent = move.CurrContent;
this.SelectContent = move.SelectContent; this.SelectContent = move.SelectContent;
this.CheckTarget();
return move.state; return move.state;
}, },
Cursor_MoveToStartPos: function() Cursor_MoveToStartPos: function()
...@@ -6294,31 +6216,7 @@ CMathComposition.prototype = ...@@ -6294,31 +6216,7 @@ CMathComposition.prototype =
this.Root.cursor_MoveToEndPos(); this.Root.cursor_MoveToEndPos();
this.CurrentContent = this.SelectContent = this.Root; this.CurrentContent = this.SelectContent = this.Root;
}, },
MouseDown: function(mouseX, mouseY)
{
this.ClearSelect();
this.CurrentContent = this.SelectContent = this.Root.mouseDown({x: mouseX, y: mouseY}, -1);
this.TEST_SELECT_ACTIVE = true;
this.CheckTarget();
},
MouseMove: function(mouseX, mouseY)
{
if(this.TEST_SELECT_ACTIVE)
{
this.ClearSelect();
var movement = this.Root.mouseMove({x: mouseX, y: mouseY});
this.SelectContent = movement.SelectContent;
this.CheckTarget();
}
},
MouseUp: function()
{
this.TEST_SELECT_ACTIVE = false;
},
getSize: function() getSize: function()
{ {
/*return this.Root.size;*/ /*return this.Root.size;*/
...@@ -6384,51 +6282,7 @@ CMathComposition.prototype = ...@@ -6384,51 +6282,7 @@ CMathComposition.prototype =
return removeMComp; return removeMComp;
}, },
Remove_2: function(order)
{
if(TEST)
{
History.Create_NewPoint();
/*var start = this.SelectContent.selection.startPos,
end = this.SelectContent.selection.endPos;*/
var start = this.SelectContent.RealSelect.startPos,
end = this.SelectContent.RealSelect.endPos;
var Pos;
if(start !== end)
Pos = start < end ? start: end;
else if(order == 1)
Pos = this.SelectContent.CurPos;
else
Pos = this.SelectContent.CurPos + 1;
}
this.ClearSelect();
var result = this.SelectContent.remove(order);
this.CurrentContent = result.CurrContent;
this.SelectContent = result.SelectContent;
this.CurrentContent.setPlaceholderAfterRemove(); // чтобы не выставлялся тагет при вставке, когда заселекчен весь контент и мы добавляем, например, другой мат элемент
if( result.state.bDelete )
{
if(TEST)
{
History.Add(this.CurrentContent, {Type: historyitem_Math_RemoveItem, Items: result.items, Pos: Pos});
}
// временно
//this.CurrentContent.RecalculateReverse();
this.Resize(g_oTextMeasurer);
this.UpdatePosition();
}
this.CheckTarget();
return result.state.bDelete;
},
UpdatePosition: function() UpdatePosition: function()
{ {
this.Root.setPosition(this.pos); this.Root.setPosition(this.pos);
...@@ -6557,7 +6411,7 @@ CMathComposition.prototype = ...@@ -6557,7 +6411,7 @@ CMathComposition.prototype =
this.SelectContent = this.Root.getContent( stackSelect, false ); this.SelectContent = this.Root.getContent( stackSelect, false );
this.CurrentContent = this.Root.getContent( stackCurrent, true ); this.CurrentContent = this.Root.getContent( stackCurrent, true );
if(this.SelectContent.IsPlaceholder()) /*if(this.SelectContent.IsPlaceholder())
this.CheckTarget(); this.CheckTarget();
else if( State.Select.StartSelect !== State.Select.EndSelect ) else if( State.Select.StartSelect !== State.Select.EndSelect )
{ {
...@@ -6570,7 +6424,7 @@ CMathComposition.prototype = ...@@ -6570,7 +6424,7 @@ CMathComposition.prototype =
this.SelectContent.setStart_Selection(State.Select.StartSelect - 1); this.SelectContent.setStart_Selection(State.Select.StartSelect - 1);
//this.SelectContent.selection.active = false; //this.SelectContent.selection.active = false;
this.UpdateCursor(); this.UpdateCursor();
} }*/
}, },
ClearSelect: function() ClearSelect: function()
...@@ -6612,19 +6466,6 @@ CMathComposition.prototype = ...@@ -6612,19 +6466,6 @@ CMathComposition.prototype =
{ {
this.Root.setFont(font); this.Root.setFont(font);
}, },
////
////// ///////
HideCursor: function()
{
editor.WordControl.m_oLogicDocument.DrawingDocument.TargetEnd();
},
ShowCursor: function()
{
//узнать зачем обе функции вызывать
editor.WordControl.m_oLogicDocument.DrawingDocument.TargetStart();
editor.WordControl.m_oLogicDocument.DrawingDocument.TargetShow();
},
CheckTarget: function() CheckTarget: function()
{ {
var bSelect = this.SelectContent.selectUse(), var bSelect = this.SelectContent.selectUse(),
...@@ -6653,84 +6494,66 @@ CMathComposition.prototype = ...@@ -6653,84 +6494,66 @@ CMathComposition.prototype =
this.CurrentContent.update_Cursor(); this.CurrentContent.update_Cursor();
}, },
//////// Cursor_MoveRight_2: function()
//// open ////
/*FillPlaceholder: function()
{ {
this.CurrentContent.fillPlaceholder(); this.ClearSelect();
this.GToUp(); //переходим на уровен выше, пересчитываем размер var move = this.SelectContent.cursor_moveRight();
//позицию рассчитаем позже //передаем состояние, т.к. можем выйти за пределы формулы
}, if(move.state)
FillText: function()
{
this.CurrentContent.fillText(); // CurrentContent не меняем, остается текущий
},
FillMComponent: function()
{
this.CurrentContent = this.CurrentContent.fillMComponent(type); // переходим в мат. компонент
this.SelectContent = this.CurrentContent;
},
GToUp: function()
{ {
this.CurrentContent = this.CurrentContent.gToUp(); // пересчитываем размер текущего контента в gToUp, в контенте уровнем выше пересчитаем в аналогичной ф-ии, когда достигнем конца контента // SelectContent == CurrentContent
this.SelectContent = this.CurrentContent; this.SelectContent = move.SelectContent;
this.CurrentContent = move.CurrContent;
this.CheckTarget();
}
return move.state;
}, },
SetEnd: function() Cursor_MoveLeft_2: function()
{ {
this.SelectContent = this.Root; this.ClearSelect();
this.CurrentContent = this.Root; var move = this.SelectContent.cursor_moveLeft();
this.Root.recalculateSize();
},*/ if(move.state)
////
DrawSelect2: function()
{ {
this.SelectContent.drawSelect2(); this.SelectContent = move.SelectContent;
this.CurrentContent = move.CurrContent;
this.CheckTarget();
}
return move.state;
}, },
Refresh: function() Cursor_MoveUp_2: function()
{ {
//TODO !!!
//сделать как в Cursor_MoveLeft/Right
// в зависимости от пришедшего флага выставлять/не выставлять контент
this.ClearSelect(); this.ClearSelect();
var move = this.SelectContent.cursor_moveUp();
this.CurrentContent = move.CurrContent;
this.SelectContent = move.SelectContent;
// временно
//this.RecalculateReverse();
//this.Root.Resize();
this.Resize(g_oTextMeasurer);
this.UpdatePosition();
//this.SelectContent.drawSelect();
this.CheckTarget(); this.CheckTarget();
},
Refresh_RecalcData2: function()
{
this.Parent.Refresh_RecalcData2();
},
//test
// из MathControl
IsRect: function(x, y)
{
var size = this.Root.size;
return ( x > 0 && x < size.width && y > 0 && y < size.height);
},
GetCoordComp: function(x, y)
{
var _x = x - this.pos.x;
var _y = y - this.pos.y;
return {x: _x, y: _y}; return move.state;
}, },
OnKeyDown: function(e) OnKeyDown: function(e)
{ {
//стрелка вверх //стрелка вверх
if(e.KeyCode==38) if(e.KeyCode==38)
{ {
this.Cursor_MoveUp(); this.Cursor_MoveUp_2();
return true; return true;
} }
//стрелка вниз //стрелка вниз
else if(e.KeyCode==40) else if(e.KeyCode==40)
{ {
this.Cursor_MoveDown(); this.Cursor_MoveDown_2();
return true; return true;
} }
...@@ -6838,14 +6661,75 @@ CMathComposition.prototype = ...@@ -6838,14 +6661,75 @@ CMathComposition.prototype =
{ {
this.MouseUp(); this.MouseUp();
}, },
CreateEquation: function(indef) MouseDown: function(mouseX, mouseY)
{ {
this.CreateEquation2(indef); this.ClearSelect();
this.CurrentContent = this.SelectContent = this.Root.mouseDown({x: mouseX, y: mouseY}, -1);
this.TEST_SELECT_ACTIVE = true;
this.CheckTarget();
},
MouseMove: function(mouseX, mouseY)
{
if(this.TEST_SELECT_ACTIVE)
{
this.ClearSelect();
var movement = this.Root.mouseMove({x: mouseX, y: mouseY});
this.SelectContent = movement.SelectContent;
this.CheckTarget();
}
},
MouseUp: function()
{
this.TEST_SELECT_ACTIVE = false;
},
Remove_2: function(order)
{
if(TEST)
{
History.Create_NewPoint();
/*var start = this.SelectContent.selection.startPos,
end = this.SelectContent.selection.endPos;*/
var start = this.SelectContent.RealSelect.startPos,
end = this.SelectContent.RealSelect.endPos;
var Pos;
if(start !== end)
Pos = start < end ? start: end;
else if(order == 1)
Pos = this.SelectContent.CurPos;
else
Pos = this.SelectContent.CurPos + 1;
}
this.ClearSelect();
var result = this.SelectContent.remove(order);
this.CurrentContent = result.CurrContent;
this.SelectContent = result.SelectContent;
this.CurrentContent.setPlaceholderAfterRemove(); // чтобы не выставлялся тагет при вставке, когда заселекчен весь контент и мы добавляем, например, другой мат элемент
if( result.state.bDelete )
{
if(TEST)
{
History.Add(this.CurrentContent, {Type: historyitem_Math_RemoveItem, Items: result.items, Pos: Pos});
}
// временно // временно
//this.RecalculateReverse(); //this.CurrentContent.RecalculateReverse();
//this.Root.Resize();
this.Resize(g_oTextMeasurer); this.Resize(g_oTextMeasurer);
this.UpdatePosition(); this.UpdatePosition();
}
this.CheckTarget();
return result.state.bDelete;
}, },
RecalculateComposition_2: function(oMeasure) RecalculateComposition_2: function(oMeasure)
{ {
...@@ -6855,6 +6739,54 @@ CMathComposition.prototype = ...@@ -6855,6 +6739,54 @@ CMathComposition.prototype =
this.Root.setPosition(this.pos); this.Root.setPosition(this.pos);
this.UpdateCursor(); this.UpdateCursor();
}, },
////
////// ///////
HideCursor: function()
{
editor.WordControl.m_oLogicDocument.DrawingDocument.TargetEnd();
},
ShowCursor: function()
{
//узнать зачем обе функции вызывать
editor.WordControl.m_oLogicDocument.DrawingDocument.TargetStart();
editor.WordControl.m_oLogicDocument.DrawingDocument.TargetShow();
},
////////
DrawSelect2: function()
{
this.SelectContent.drawSelect2();
},
Refresh_RecalcData2: function()
{
this.Parent.Refresh_RecalcData2();
},
//test
// из MathControl
IsRect: function(x, y)
{
var size = this.Root.size;
return ( x > 0 && x < size.width && y > 0 && y < size.height);
},
GetCoordComp: function(x, y)
{
var _x = x - this.pos.x;
var _y = y - this.pos.y;
return {x: _x, y: _y};
},
CreateEquation: function(indef)
{
this.CreateEquation2(indef);
// временно
//this.RecalculateReverse();
//this.Root.Resize();
this.Resize(g_oTextMeasurer);
this.UpdatePosition();
},
RecalculateComposition: function(oMeasure, TextPr) // textPrp в тестовом режиме, просто отрисуем с ними формулу RecalculateComposition: function(oMeasure, TextPr) // textPrp в тестовом режиме, просто отрисуем с ними формулу
{ {
////* test *//// ////* test *////
......
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