Commit ae42b7ec authored by Ilya Kirillov's avatar Ilya Kirillov

Рефакторинг функций Cursor_MoveLeft, Cursor_MoveRight. Для этих функций...

Рефакторинг функций Cursor_MoveLeft, Cursor_MoveRight. Для этих функций реализован базовый функционал в сносках.
parent 88cccdf2
...@@ -5392,88 +5392,135 @@ CDocument.prototype.Cursor_MoveLeft = function(AddToSelect, Word) ...@@ -5392,88 +5392,135 @@ CDocument.prototype.Cursor_MoveLeft = function(AddToSelect, Word)
{ {
this.private_UpdateTargetForCollaboration(); this.private_UpdateTargetForCollaboration();
if ("undefined" === typeof(Word) || null === Word) if (undefined === Word || null === Word)
Word = false; Word = false;
// Работаем с колонтитулом this.Controller.Cursor_MoveLeft(AddToSelect, Word);
if (docpostype_HdrFtr === this.CurPos.Type)
{ this.Document_UpdateInterfaceState();
var RetValue = this.HdrFtr.Cursor_MoveLeft(AddToSelect, Word); this.Document_UpdateRulersState();
this.private_UpdateCursorXY(true, true);
};
CDocument.prototype.Cursor_MoveRight = function(AddToSelect, Word, FromPaste)
{
this.private_UpdateTargetForCollaboration();
if (undefined === Word || null === Word)
Word = false;
this.Controller.Cursor_MoveRight(AddToSelect, Word, FromPaste);
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
this.Document_UpdateSelectionState(); this.Document_UpdateSelectionState();
this.private_UpdateCursorXY(true, true); this.private_UpdateCursorXY(true, true);
};
CDocument.prototype.Cursor_MoveUp = function(AddToSelect)
{
this.private_UpdateTargetForCollaboration();
if (docpostype_HdrFtr === this.CurPos.Type && docpostype_DrawingObjects === this.HdrFtr.CurHdrFtr.Content.CurPos.Type)
{
var RetValue = this.HdrFtr.Cursor_MoveUp(AddToSelect);
this.Document_UpdateInterfaceState();
this.Document_UpdateSelectionState();
return RetValue; return RetValue;
} }
else if (docpostype_DrawingObjects === this.CurPos.Type) else if (docpostype_DrawingObjects === this.CurPos.Type)
{ {
var RetValue = this.DrawingObjects.cursorMoveLeft(AddToSelect, Word); var RetValue = this.DrawingObjects.cursorMoveUp(AddToSelect);
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
this.Document_UpdateSelectionState(); this.Document_UpdateSelectionState();
this.private_UpdateCursorXY(true, true);
return RetValue; return RetValue;
} }
else //if ( docpostype_Content === this.CurPos.Type )
{
if (this.CurPos.ContentPos < 0)
return false;
this.Remove_NumberingSelection(); if (true === this.Is_SelectionUse() && true !== AddToSelect)
if (true === this.Selection.Use) this.Cursor_MoveLeft(false, false);
{
if (true === AddToSelect) var bStopSelection = false;
{ if (true !== this.Is_SelectionUse() && true === AddToSelect)
// Добавляем к селекту
if (false === this.Content[this.Selection.EndPos].Cursor_MoveLeft(1, true, Word))
{
// Нужно перейти в конец предыдущего элемента
if (0 != this.Selection.EndPos)
{ {
this.Selection.EndPos--; bStopSelection = true;
this.CurPos.ContentPos = this.Selection.EndPos; this.private_StartSelectionFromCurPos();
}
var Item = this.Content[this.Selection.EndPos]; this.private_UpdateCursorXY(false, true);
var Result = this.private_MoveCursorUp(this.CurPos.RealX, this.CurPos.RealY, AddToSelect);
if (type_Paragraph == Item.GetType()) if (true === AddToSelect && true !== Result)
this.Cursor_MoveToStartPos(true);
if (bStopSelection)
this.private_StopSelection();
};
CDocument.prototype.Cursor_MoveDown = function(AddToSelect)
{
this.private_UpdateTargetForCollaboration();
if (docpostype_HdrFtr === this.CurPos.Type && docpostype_DrawingObjects === this.HdrFtr.CurHdrFtr.Content.CurPos.Type)
{ {
Item.Cursor_MoveToEndPos(true, true); var RetValue = this.HdrFtr.Cursor_MoveDown(AddToSelect);
Item.Cursor_MoveLeft(1, true, Word); this.Document_UpdateInterfaceState();
this.Document_UpdateSelectionState();
return RetValue;
} }
else if (type_Table == Item.GetType()) else if (docpostype_DrawingObjects === this.CurPos.Type)
{
if (false === Item.Is_SelectionUse())
{ {
var LastRow = Item.Content[Item.Content.length - 1]; var RetValue = this.DrawingObjects.cursorMoveDown(AddToSelect);
this.Document_UpdateInterfaceState();
this.Document_UpdateSelectionState();
return RetValue;
}
// Нам нужно выделить последний ряд таблицы if (true === this.Is_SelectionUse() && true !== AddToSelect)
Item.Selection.Use = true; this.Cursor_MoveRight(false, false);
Item.Selection.Type = table_Selection_Cell;
Item.Selection.StartPos.Pos = {
Row : LastRow.Index,
Cell : LastRow.Get_CellsCount() - 1
};
Item.Selection.EndPos.Pos = {Row : LastRow.Index, Cell : 0};
Item.CurCell = LastRow.Get_Cell(0);
Item.Selection.Data = [];
for (var CellIndex = 0; CellIndex < LastRow.Get_CellsCount(); CellIndex++) var bStopSelection = false;
if (true !== this.Is_SelectionUse() && true === AddToSelect)
{ {
Item.Selection.Data.push({Cell : CellIndex, Row : LastRow.Index}); bStopSelection = true;
} this.private_StartSelectionFromCurPos();
}
else
Item.Cursor_MoveLeft(1, true, Word);
} }
this.private_UpdateCursorXY(false, true);
var Result = this.private_MoveCursorDown(this.CurPos.RealX, this.CurPos.RealY, AddToSelect);
if (true === AddToSelect && true !== Result)
this.Cursor_MoveToEndPos(true);
if (bStopSelection)
this.private_StopSelection();
};
CDocument.prototype.Cursor_MoveEndOfLine = function(AddToSelect)
{
this.private_UpdateTargetForCollaboration();
// Работаем с колонтитулом
if (docpostype_HdrFtr === this.CurPos.Type)
{
var RetValue = this.HdrFtr.Cursor_MoveEndOfLine(AddToSelect);
this.Document_UpdateInterfaceState();
this.private_UpdateCursorXY(true, true);
return RetValue;
} }
else if (docpostype_DrawingObjects === this.CurPos.Type)
{
var RetValue = this.DrawingObjects.cursorMoveEndOfLine(AddToSelect);
this.Document_UpdateInterfaceState();
this.private_UpdateCursorXY(true, true);
return RetValue;
} }
else //if ( docpostype_Content === this.CurPos.Type )
{
if (this.CurPos.ContentPos < 0)
return false;
// Проверяем не обнулился ли селект в последнем элементе. Такое могло быть, если была this.Remove_NumberingSelection();
// заселекчена одна буква в последнем параграфе, а мы убрали селект последним действием. if (true === this.Selection.Use)
if (this.Selection.EndPos != this.Selection.StartPos && false === this.Content[this.Selection.EndPos].Is_SelectionUse())
{ {
// Такая ситуация возможна только при прямом селекте (сверху вниз), поэтому вычитаем if (true === AddToSelect)
this.Selection.EndPos--; {
this.CurPos.ContentPos = this.Selection.EndPos; var Item = this.Content[this.Selection.EndPos];
} Item.Cursor_MoveEndOfLine(AddToSelect);
// Проверяем не обнулился ли селект (т.е. ничего не заселекчено) // Проверяем не обнулился ли селект (т.е. ничего не заселекчено)
if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Is_SelectionUse()) if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Is_SelectionUse())
...@@ -5484,13 +5531,11 @@ CDocument.prototype.Cursor_MoveLeft = function(AddToSelect, Word) ...@@ -5484,13 +5531,11 @@ CDocument.prototype.Cursor_MoveLeft = function(AddToSelect, Word)
} }
else else
{ {
// Нам нужно переместить курсор в левый край селекта, и отменить весь селект var Pos = ( this.Selection.EndPos >= this.Selection.StartPos ? this.Selection.EndPos : this.Selection.StartPos );
var Start = this.Selection.StartPos; this.CurPos.ContentPos = Pos;
if (Start > this.Selection.EndPos)
Start = this.Selection.EndPos;
this.CurPos.ContentPos = Start; var Item = this.Content[Pos];
this.Content[this.CurPos.ContentPos].Cursor_MoveLeft(1, false, Word); Item.Cursor_MoveEndOfLine(AddToSelect);
this.Selection_Remove(); this.Selection_Remove();
} }
...@@ -5503,47 +5548,8 @@ CDocument.prototype.Cursor_MoveLeft = function(AddToSelect, Word) ...@@ -5503,47 +5548,8 @@ CDocument.prototype.Cursor_MoveLeft = function(AddToSelect, Word)
this.Selection.StartPos = this.CurPos.ContentPos; this.Selection.StartPos = this.CurPos.ContentPos;
this.Selection.EndPos = this.CurPos.ContentPos; this.Selection.EndPos = this.CurPos.ContentPos;
if (false === this.Content[this.CurPos.ContentPos].Cursor_MoveLeft(1, true, Word))
{
// Нужно перейти в конец предыдущего элемент
if (0 != this.CurPos.ContentPos)
{
this.CurPos.ContentPos--;
var Item = this.Content[this.CurPos.ContentPos]; var Item = this.Content[this.CurPos.ContentPos];
this.Selection.EndPos = this.CurPos.ContentPos; Item.Cursor_MoveEndOfLine(AddToSelect);
if (type_Paragraph == Item.GetType())
{
Item.Cursor_MoveToEndPos(false, true);
Item.Cursor_MoveLeft(1, true, Word);
}
else if (type_Table == Item.GetType())
{
if (false === Item.Is_SelectionUse())
{
var LastRow = Item.Content[Item.Content.length - 1];
// Нам нужно выделить последний ряд таблицы
Item.Selection.Use = true;
Item.Selection.Type = table_Selection_Cell;
Item.Selection.StartPos.Pos = {
Row : LastRow.Index,
Cell : LastRow.Get_CellsCount() - 1
};
Item.Selection.EndPos.Pos = {Row : LastRow.Index, Cell : 0};
Item.CurCell = LastRow.Get_Cell(0);
Item.Selection.Data = [];
for (var CellIndex = 0; CellIndex < LastRow.Get_CellsCount(); CellIndex++)
{
Item.Selection.Data.push({Cell : CellIndex, Row : LastRow.Index});
}
}
else
Item.Cursor_MoveLeft(1, true, Word);
}
}
}
// Проверяем не обнулился ли селект (т.е. ничего не заселекчено) // Проверяем не обнулился ли селект (т.е. ничего не заселекчено)
if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Is_SelectionUse()) if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Is_SelectionUse())
...@@ -5554,44 +5560,31 @@ CDocument.prototype.Cursor_MoveLeft = function(AddToSelect, Word) ...@@ -5554,44 +5560,31 @@ CDocument.prototype.Cursor_MoveLeft = function(AddToSelect, Word)
} }
else else
{ {
if (false === this.Content[this.CurPos.ContentPos].Cursor_MoveLeft(1, false, Word)) var Item = this.Content[this.CurPos.ContentPos];
{ Item.Cursor_MoveEndOfLine(AddToSelect);
// Нужно перейти в конец предыдущего элемент
if (0 != this.CurPos.ContentPos)
{
this.CurPos.ContentPos--;
this.Content[this.CurPos.ContentPos].Cursor_MoveToEndPos();
}
}
} }
} }
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
this.Document_UpdateRulersState();
this.private_UpdateCursorXY(true, true); this.private_UpdateCursorXY(true, true);
} }
}; };
CDocument.prototype.Cursor_MoveRight = function(AddToSelect, Word, FromPaste) CDocument.prototype.Cursor_MoveStartOfLine = function(AddToSelect)
{ {
this.private_UpdateTargetForCollaboration(); this.private_UpdateTargetForCollaboration();
if ("undefined" === typeof(Word) || null === Word)
Word = false;
// Работаем с колонтитулом // Работаем с колонтитулом
if (docpostype_HdrFtr === this.CurPos.Type) if (docpostype_HdrFtr === this.CurPos.Type)
{ {
var RetValue = this.HdrFtr.Cursor_MoveRight(AddToSelect, Word); var RetValue = this.HdrFtr.Cursor_MoveStartOfLine(AddToSelect);
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
this.Document_UpdateSelectionState();
this.private_UpdateCursorXY(true, true); this.private_UpdateCursorXY(true, true);
return RetValue; return RetValue;
} }
else if (docpostype_DrawingObjects === this.CurPos.Type) else if (docpostype_DrawingObjects === this.CurPos.Type)
{ {
var RetValue = this.DrawingObjects.cursorMoveRight(AddToSelect, Word); var RetValue = this.DrawingObjects.cursorMoveStartOfLine(AddToSelect);
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
this.Document_UpdateSelectionState();
this.private_UpdateCursorXY(true, true); this.private_UpdateCursorXY(true, true);
return RetValue; return RetValue;
} }
...@@ -5605,65 +5598,40 @@ CDocument.prototype.Cursor_MoveRight = function(AddToSelect, Word, ...@@ -5605,65 +5598,40 @@ CDocument.prototype.Cursor_MoveRight = function(AddToSelect, Word,
{ {
if (true === AddToSelect) if (true === AddToSelect)
{ {
// Добавляем к селекту
if (false === this.Content[this.Selection.EndPos].Cursor_MoveRight(1, true, Word))
{
// Нужно перейти в начало следующего элемента
if (this.Content.length - 1 != this.Selection.EndPos)
{
this.Selection.EndPos++;
this.CurPos.ContentPos = this.Selection.EndPos;
var Item = this.Content[this.Selection.EndPos]; var Item = this.Content[this.Selection.EndPos];
if (type_Paragraph === Item.GetType()) Item.Cursor_MoveStartOfLine(AddToSelect);
{
if (false === Item.Is_SelectionUse()) // Проверяем не обнулился ли селект (т.е. ничего не заселекчено)
if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Selection.Use)
{ {
var StartPos = Item.Internal_GetStartPos(); this.Selection.Use = false;
Item.CurPos.ContentPos = StartPos; this.CurPos.ContentPos = this.Selection.EndPos;
Item.Selection.Use = true;
Item.Selection.StartPos = StartPos;
Item.Selection.EndPos = StartPos;
} }
Item.Cursor_MoveRight(1, true, Word);
} }
else if (type_Table === Item.GetType()) else
{
if (false === Item.Is_SelectionUse())
{ {
var FirstRow = Item.Content[0]; var Pos = ( this.Selection.StartPos <= this.Selection.EndPos ? this.Selection.StartPos : this.Selection.EndPos );
this.CurPos.ContentPos = Pos;
// Нам нужно выделить первый ряд таблицы var Item = this.Content[Pos];
Item.Selection.Use = true; Item.Cursor_MoveStartOfLine(AddToSelect);
Item.Selection.Type = table_Selection_Cell;
Item.Selection.StartPos.Pos = {Row : 0, Cell : 0};
Item.Selection.EndPos.Pos = {Row : 0, Cell : FirstRow.Get_CellsCount() - 1};
Item.CurCell = FirstRow.Get_Cell(FirstRow.Get_CellsCount() - 1);
Item.Selection.Data = [];
for (var CellIndex = 0; CellIndex < FirstRow.Get_CellsCount(); CellIndex++) this.Selection_Remove();
{
Item.Selection.Data.push({Cell : CellIndex, Row : 0});
} }
} }
else else
Item.Cursor_MoveRight(1, true, Word);
}
}
}
// Проверяем не обнулился ли селект в последнем параграфе. Такое могло быть, если была
// заселекчена одна буква в последнем параграфе, а мы убрали селект последним действием.
if (this.Selection.EndPos != this.Selection.StartPos && false === this.Content[this.Selection.EndPos].Is_SelectionUse())
{ {
// Такая ситуация возможна только при обратном селекте (снизу вверх), поэтому вычитаем if (true === AddToSelect)
this.Selection.EndPos++; {
this.CurPos.ContentPos = this.Selection.EndPos; this.Selection.Use = true;
} this.Selection.StartPos = this.CurPos.ContentPos;
this.Selection.EndPos = this.CurPos.ContentPos;
var Item = this.Content[this.CurPos.ContentPos];
Item.Cursor_MoveStartOfLine(AddToSelect);
// Проверяем не обнулился ли селект (т.е. ничего не заселекчено) // Проверяем не обнулился ли селект (т.е. ничего не заселекчено)
if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Is_SelectionUse()) if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Selection.Use)
{ {
this.Selection.Use = false; this.Selection.Use = false;
this.CurPos.ContentPos = this.Selection.EndPos; this.CurPos.ContentPos = this.Selection.EndPos;
...@@ -5671,31 +5639,47 @@ CDocument.prototype.Cursor_MoveRight = function(AddToSelect, Word, ...@@ -5671,31 +5639,47 @@ CDocument.prototype.Cursor_MoveRight = function(AddToSelect, Word,
} }
else else
{ {
// Нам нужно переместить курсор в правый край селекта, и отменить весь селект var Item = this.Content[this.CurPos.ContentPos];
var End = this.Selection.EndPos; Item.Cursor_MoveStartOfLine(AddToSelect);
if (End < this.Selection.StartPos) }
End = this.Selection.StartPos; }
this.CurPos.ContentPos = End; this.Document_UpdateInterfaceState();
this.private_UpdateCursorXY(true, true);
}
};
CDocument.prototype.Cursor_MoveAt = function(X, Y, AddToSelect)
{
this.private_UpdateTargetForCollaboration();
if (true === FromPaste && type_Table === this.Content[this.CurPos.ContentPos].Get_Type() && true === this.Content[this.CurPos.ContentPos].Selection_IsToEnd() && this.Content.length - 1 !== this.CurPos.ContentPos) // Работаем с колонтитулом
if (docpostype_HdrFtr === this.CurPos.Type)
{ {
this.CurPos.ContentPos = End + 1; return this.HdrFtr.Cursor_MoveAt(X, Y, this.CurPage, AddToSelect);
this.Content[this.CurPos.ContentPos].Cursor_MoveToStartPos(false);
} }
else else if (docpostype_DrawingObjects === this.CurPos.Type)
{ {
if (false === this.Content[this.CurPos.ContentPos].Cursor_MoveRight(1, false, Word, FromPaste)) return this.DrawingObjects.cursorMoveAt(X, Y, AddToSelect);
}
else //if ( docpostype_Content === this.CurPos.Type )
{ {
if (this.Content.length - 1 === this.CurPos.ContentPos) this.Remove_NumberingSelection();
if (true === this.Selection.Use)
{ {
var Item = this.Content[this.CurPos.ContentPos]; if (true === AddToSelect)
Item.Cursor_MoveToEndPos(false); {
} this.Selection_SetEnd(X, Y, true);
}
} }
else
{
this.Selection_Remove(); this.Selection_Remove();
var ContentPos = this.Internal_GetContentPosByXY(X, Y);
this.CurPos.ContentPos = ContentPos;
var ElementPageIndex = this.private_GetElementPageIndexByXY(ContentPos, X, Y, this.CurPage);
this.Content[ContentPos].Cursor_MoveAt(X, Y, false, false, ElementPageIndex);
this.Document_UpdateInterfaceState();
} }
} }
else else
...@@ -5704,539 +5688,364 @@ CDocument.prototype.Cursor_MoveRight = function(AddToSelect, Word, ...@@ -5704,539 +5688,364 @@ CDocument.prototype.Cursor_MoveRight = function(AddToSelect, Word,
{ {
this.Selection.Use = true; this.Selection.Use = true;
this.Selection.StartPos = this.CurPos.ContentPos; this.Selection.StartPos = this.CurPos.ContentPos;
this.Selection.EndPos = this.CurPos.ContentPos; this.Content[this.CurPos.ContentPos].Selection.Use = true;
this.Content[this.CurPos.ContentPos].Selection.StartPos = this.Content[this.CurPos.ContentPos].CurPos.ContentPos;
if (false === this.Content[this.CurPos.ContentPos].Cursor_MoveRight(1, true, Word)) this.Selection_SetEnd(X, Y, true);
{ }
// Нужно перейти в конец предыдущего элемента else
if (this.Content.length - 1 != this.CurPos.ContentPos)
{ {
this.CurPos.ContentPos++; var ContentPos = this.Internal_GetContentPosByXY(X, Y);
var Item = this.Content[this.CurPos.ContentPos]; this.CurPos.ContentPos = ContentPos;
this.Selection.EndPos = this.CurPos.ContentPos; var ElementPageIndex = this.private_GetElementPageIndexByXY(ContentPos, X, Y, this.CurPage);
this.Content[ContentPos].Cursor_MoveAt(X, Y, false, false, ElementPageIndex);
if (type_Paragraph === Item.GetType()) this.Document_UpdateInterfaceState();
{ }
if (false === Item.Is_SelectionUse())
{
var StartPos = Item.Internal_GetStartPos();
Item.CurPos.ContentPos = StartPos;
Item.Selection.Use = true;
Item.Selection.StartPos = StartPos;
Item.Selection.EndPos = StartPos;
} }
}
};
CDocument.prototype.Cursor_MoveToCell = function(bNext)
{
this.private_UpdateTargetForCollaboration();
Item.Cursor_MoveRight(1, true, Word); if (docpostype_HdrFtr === this.CurPos.Type)
{
this.HdrFtr.Cursor_MoveToCell(bNext);
} }
else if (type_Table === Item.GetType()) else if (docpostype_DrawingObjects == this.CurPos.Type)
{ {
if (false === Item.Is_SelectionUse()) this.DrawingObjects.cursorMoveToCell(bNext);
}
else //if ( docpostype_Content == this.CurPos.Type )
{ {
var FirstRow = Item.Content[0]; if (true === this.Selection.Use)
// Нам нужно выделить первый ряд таблицы
Item.Selection.Use = true;
Item.Selection.Type = table_Selection_Cell;
Item.Selection.StartPos.Pos = {Row : 0, Cell : 0};
Item.Selection.EndPos.Pos = {Row : 0, Cell : FirstRow.Get_CellsCount() - 1};
Item.CurCell = FirstRow.Get_Cell(FirstRow.Get_CellsCount() - 1);
Item.Selection.Data = [];
for (var CellIndex = 0; CellIndex < FirstRow.Get_CellsCount(); CellIndex++)
{ {
Item.Selection.Data.push({Cell : CellIndex, Row : 0}); if (this.Selection.StartPos === this.Selection.EndPos && type_Table === this.Content[this.Selection.StartPos].GetType())
} this.Content[this.Selection.StartPos].Cursor_MoveToCell(bNext);
} }
else else
Item.Cursor_MoveRight(1, true, Word); {
} if (type_Table === this.Content[this.CurPos.ContentPos].GetType())
this.Content[this.CurPos.ContentPos].Cursor_MoveToCell(bNext);
} }
} }
};
// Проверяем не обнулился ли селект (т.е. ничего не заселекчено) CDocument.prototype.Set_ParagraphAlign = function(Align)
if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Is_SelectionUse()) {
var SelectedInfo = this.Get_SelectedElementsInfo();
var Math = SelectedInfo.Get_Math();
if (null !== Math && true !== Math.Is_Inline())
{ {
this.Selection.Use = false; Math.Set_Align(Align);
this.CurPos.ContentPos = this.Selection.EndPos;
}
} }
else else
{ {
if (false === this.Content[this.CurPos.ContentPos].Cursor_MoveRight(1, false, Word)) // Работаем с колонтитулом
if (docpostype_HdrFtr === this.CurPos.Type)
{ {
// Нужно перейти в начало следующего элемента this.HdrFtr.Set_ParagraphAlign(Align);
if (this.Content.length - 1 != this.CurPos.ContentPos) }
else if (docpostype_DrawingObjects === this.CurPos.Type)
{ {
this.CurPos.ContentPos++; if (true != this.DrawingObjects.isSelectedText())
this.Content[this.CurPos.ContentPos].Cursor_MoveToStartPos(); {
var ParaDrawing = this.DrawingObjects.getMajorParaDrawing();
if (null != ParaDrawing)
{
var Paragraph = ParaDrawing.Parent;
Paragraph.Set_Align(Align);
} }
} }
else
{
this.DrawingObjects.setParagraphAlign(Align);
} }
} }
else //if ( docpostype_Content === this.CurPos.Type )
{
if (this.CurPos.ContentPos < 0)
return false;
this.Document_UpdateInterfaceState(); if (true === this.Selection.Use)
this.Document_UpdateRulersState(); {
this.private_UpdateCursorXY(true, true); var StartPos = this.Selection.StartPos;
var EndPos = this.Selection.EndPos;
if (EndPos < StartPos)
{
var Temp = StartPos;
StartPos = EndPos;
EndPos = Temp;
} }
};
CDocument.prototype.Cursor_MoveUp = function(AddToSelect)
{
this.private_UpdateTargetForCollaboration();
if (docpostype_HdrFtr === this.CurPos.Type && docpostype_DrawingObjects === this.HdrFtr.CurHdrFtr.Content.CurPos.Type) for (var Index = StartPos; Index <= EndPos; Index++)
{ {
var RetValue = this.HdrFtr.Cursor_MoveUp(AddToSelect); var Item = this.Content[Index];
this.Document_UpdateInterfaceState(); if (type_Paragraph == Item.GetType())
this.Document_UpdateSelectionState(); Item.Set_Align(Align, true);
return RetValue; else if (type_Table == Item.GetType())
{
Item.TurnOff_RecalcEvent();
Item.Set_ParagraphAlign(Align);
Item.TurnOn_RecalcEvent();
} }
else if (docpostype_DrawingObjects === this.CurPos.Type) }
}
else
{ {
var RetValue = this.DrawingObjects.cursorMoveUp(AddToSelect); var Item = this.Content[this.CurPos.ContentPos];
this.Document_UpdateInterfaceState(); if (type_Paragraph == Item.GetType())
this.Document_UpdateSelectionState(); {
return RetValue; Item.Set_Align(Align, true);
} }
else if (type_Table == Item.GetType())
if (true === this.Is_SelectionUse() && true !== AddToSelect)
this.Cursor_MoveLeft(false, false);
var bStopSelection = false;
if (true !== this.Is_SelectionUse() && true === AddToSelect)
{ {
bStopSelection = true; Item.Set_ParagraphAlign(Align);
this.private_StartSelectionFromCurPos(); }
} }
this.private_UpdateCursorXY(false, true); }
var Result = this.private_MoveCursorUp(this.CurPos.RealX, this.CurPos.RealY, AddToSelect); }
if (true === AddToSelect && true !== Result) this.Recalculate();
this.Cursor_MoveToStartPos(true);
if (bStopSelection) this.Document_UpdateSelectionState();
this.private_StopSelection(); this.Document_UpdateInterfaceState();
}; };
CDocument.prototype.Cursor_MoveDown = function(AddToSelect) CDocument.prototype.Set_ParagraphSpacing = function(Spacing)
{ {
this.private_UpdateTargetForCollaboration(); // Работаем с колонтитулом
if (docpostype_HdrFtr === this.CurPos.Type)
if (docpostype_HdrFtr === this.CurPos.Type && docpostype_DrawingObjects === this.HdrFtr.CurHdrFtr.Content.CurPos.Type)
{ {
var RetValue = this.HdrFtr.Cursor_MoveDown(AddToSelect); var bRetValue = this.HdrFtr.Set_ParagraphSpacing(Spacing);
this.Document_UpdateInterfaceState();
this.Document_UpdateSelectionState(); this.Document_UpdateSelectionState();
return RetValue; this.Document_UpdateInterfaceState();
return bRetValue;
} }
else if (docpostype_DrawingObjects === this.CurPos.Type) else if (docpostype_DrawingObjects === this.CurPos.Type)
{ {
var RetValue = this.DrawingObjects.cursorMoveDown(AddToSelect); if (true != this.DrawingObjects.isSelectedText())
this.Document_UpdateInterfaceState();
this.Document_UpdateSelectionState();
return RetValue;
}
if (true === this.Is_SelectionUse() && true !== AddToSelect)
this.Cursor_MoveRight(false, false);
var bStopSelection = false;
if (true !== this.Is_SelectionUse() && true === AddToSelect)
{ {
bStopSelection = true; var ParaDrawing = this.DrawingObjects.getMajorParaDrawing();
this.private_StartSelectionFromCurPos(); if (null != ParaDrawing)
}
this.private_UpdateCursorXY(false, true);
var Result = this.private_MoveCursorDown(this.CurPos.RealX, this.CurPos.RealY, AddToSelect);
if (true === AddToSelect && true !== Result)
this.Cursor_MoveToEndPos(true);
if (bStopSelection)
this.private_StopSelection();
};
CDocument.prototype.Cursor_MoveEndOfLine = function(AddToSelect)
{
this.private_UpdateTargetForCollaboration();
// Работаем с колонтитулом
if (docpostype_HdrFtr === this.CurPos.Type)
{ {
var RetValue = this.HdrFtr.Cursor_MoveEndOfLine(AddToSelect); var Paragraph = ParaDrawing.Parent;
this.Document_UpdateInterfaceState(); Paragraph.Set_Spacing(Spacing, false);
this.private_UpdateCursorXY(true, true); this.Recalculate();
return RetValue;
} }
else if (docpostype_DrawingObjects === this.CurPos.Type) }
else
{ {
var RetValue = this.DrawingObjects.cursorMoveEndOfLine(AddToSelect); this.DrawingObjects.setParagraphSpacing(Spacing);
}
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
this.private_UpdateCursorXY(true, true);
return RetValue;
} }
else //if ( docpostype_Content === this.CurPos.Type ) else //if ( docpostype_Content === this.CurPos.Type )
{ {
if (this.CurPos.ContentPos < 0) if (this.CurPos.ContentPos < 0)
return false; return false;
this.Remove_NumberingSelection();
if (true === this.Selection.Use) if (true === this.Selection.Use)
{ {
if (true === AddToSelect) var StartPos = this.Selection.StartPos;
var EndPos = this.Selection.EndPos;
if (EndPos < StartPos)
{ {
var Item = this.Content[this.Selection.EndPos]; var Temp = StartPos;
Item.Cursor_MoveEndOfLine(AddToSelect); StartPos = EndPos;
EndPos = Temp;
}
// Проверяем не обнулился ли селект (т.е. ничего не заселекчено) for (var Index = StartPos; Index <= EndPos; Index++)
if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Is_SelectionUse())
{ {
this.Selection.Use = false; var Item = this.Content[Index];
this.CurPos.ContentPos = this.Selection.EndPos; if (type_Paragraph == Item.GetType())
Item.Set_Spacing(Spacing, false);
else if (type_Table == Item.GetType())
{
Item.TurnOff_RecalcEvent();
Item.Set_ParagraphSpacing(Spacing);
Item.TurnOn_RecalcEvent();
} }
} }
else // Нам нужно пересчитать все изменения, начиная с первого элемента,
{ // попавшего в селект.
var Pos = ( this.Selection.EndPos >= this.Selection.StartPos ? this.Selection.EndPos : this.Selection.StartPos ); this.ContentLastChangePos = StartPos - 1;
this.CurPos.ContentPos = Pos;
var Item = this.Content[Pos]; this.Recalculate();
Item.Cursor_MoveEndOfLine(AddToSelect);
this.Selection_Remove(); this.Document_UpdateSelectionState();
} this.Document_UpdateInterfaceState();
return;
} }
else
{
if (true === AddToSelect)
{
this.Selection.Use = true;
this.Selection.StartPos = this.CurPos.ContentPos;
this.Selection.EndPos = this.CurPos.ContentPos;
var Item = this.Content[this.CurPos.ContentPos]; var Item = this.Content[this.CurPos.ContentPos];
Item.Cursor_MoveEndOfLine(AddToSelect); if (type_Paragraph == Item.GetType())
// Проверяем не обнулился ли селект (т.е. ничего не заселекчено)
if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Is_SelectionUse())
{ {
this.Selection.Use = false; Item.Set_Spacing(Spacing, false);
this.CurPos.ContentPos = this.Selection.EndPos;
} // Нам нужно пересчитать все изменения, начиная с предыдущего элемента
this.ContentLastChangePos = this.CurPos.ContentPos - 1;
this.Recalculate();
} }
else else if (type_Table == Item.GetType())
{ {
var Item = this.Content[this.CurPos.ContentPos]; Item.Set_ParagraphSpacing(Spacing);
Item.Cursor_MoveEndOfLine(AddToSelect);
}
} }
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
this.private_UpdateCursorXY(true, true);
} }
}; };
CDocument.prototype.Cursor_MoveStartOfLine = function(AddToSelect) CDocument.prototype.Set_ParagraphTabs = function(Tabs)
{ {
this.private_UpdateTargetForCollaboration();
// Работаем с колонтитулом // Работаем с колонтитулом
if (docpostype_HdrFtr === this.CurPos.Type) if (docpostype_HdrFtr === this.CurPos.Type)
{ {
var RetValue = this.HdrFtr.Cursor_MoveStartOfLine(AddToSelect); var bRetValue = this.HdrFtr.Set_ParagraphTabs(Tabs);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
this.private_UpdateCursorXY(true, true); editor.Update_ParaTab(Default_Tab_Stop, Tabs);
return RetValue; return bRetValue;
} }
else if (docpostype_DrawingObjects === this.CurPos.Type) else if (docpostype_DrawingObjects === this.CurPos.Type)
{ {
var RetValue = this.DrawingObjects.cursorMoveStartOfLine(AddToSelect); var bRetValue = this.DrawingObjects.setParagraphTabs(Tabs);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
this.private_UpdateCursorXY(true, true); editor.Update_ParaTab(Default_Tab_Stop, Tabs);
return RetValue; return bRetValue;
} }
else //if ( docpostype_Content === this.CurPos.Type ) else //if ( docpostype_Content === this.CurPos.Type )
{ {
if (this.CurPos.ContentPos < 0) if (this.CurPos.ContentPos < 0)
return false; return false;
this.Remove_NumberingSelection();
if (true === this.Selection.Use) if (true === this.Selection.Use)
{ {
if (true === AddToSelect) var StartPos = this.Selection.StartPos;
var EndPos = this.Selection.EndPos;
if (EndPos < StartPos)
{ {
var Item = this.Content[this.Selection.EndPos]; var Temp = StartPos;
Item.Cursor_MoveStartOfLine(AddToSelect); StartPos = EndPos;
EndPos = Temp;
}
// Проверяем не обнулился ли селект (т.е. ничего не заселекчено) for (var Index = StartPos; Index <= EndPos; Index++)
if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Selection.Use)
{ {
this.Selection.Use = false; var Item = this.Content[Index];
this.CurPos.ContentPos = this.Selection.EndPos; if (type_Paragraph == Item.GetType())
Item.Set_Tabs(Tabs);
else if (type_Table == Item.GetType())
{
Item.TurnOff_RecalcEvent();
Item.Set_ParagraphTabs(Tabs);
Item.TurnOn_RecalcEvent();
} }
} }
else
{
var Pos = ( this.Selection.StartPos <= this.Selection.EndPos ? this.Selection.StartPos : this.Selection.EndPos );
this.CurPos.ContentPos = Pos;
var Item = this.Content[Pos]; // Нам нужно пересчитать все изменения, начиная с первого элемента,
Item.Cursor_MoveStartOfLine(AddToSelect); // попавшего в селект.
this.ContentLastChangePos = StartPos;
this.Selection_Remove(); this.Recalculate();
}
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
editor.Update_ParaTab(Default_Tab_Stop, Tabs);
return;
} }
else
{
if (true === AddToSelect)
{
this.Selection.Use = true;
this.Selection.StartPos = this.CurPos.ContentPos;
this.Selection.EndPos = this.CurPos.ContentPos;
var Item = this.Content[this.CurPos.ContentPos]; var Item = this.Content[this.CurPos.ContentPos];
Item.Cursor_MoveStartOfLine(AddToSelect); if (type_Paragraph == Item.GetType())
// Проверяем не обнулился ли селект (т.е. ничего не заселекчено)
if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Selection.Use)
{ {
this.Selection.Use = false; Item.Set_Tabs(Tabs);
this.CurPos.ContentPos = this.Selection.EndPos;
} // Нам нужно пересчитать все изменения, начиная с текущего элемента
this.ContentLastChangePos = this.CurPos.ContentPos;
this.Recalculate(true);
editor.Update_ParaTab(Default_Tab_Stop, Tabs);
} }
else else if (type_Table == Item.GetType())
{ {
var Item = this.Content[this.CurPos.ContentPos]; Item.Set_ParagraphTabs(Tabs);
Item.Cursor_MoveStartOfLine(AddToSelect); editor.Update_ParaTab(Default_Tab_Stop, Tabs);
}
} }
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
this.private_UpdateCursorXY(true, true);
} }
}; };
CDocument.prototype.Cursor_MoveAt = function(X, Y, AddToSelect) CDocument.prototype.Set_ParagraphIndent = function(Ind)
{ {
this.private_UpdateTargetForCollaboration();
// Работаем с колонтитулом // Работаем с колонтитулом
if (docpostype_HdrFtr === this.CurPos.Type) if (docpostype_HdrFtr === this.CurPos.Type)
{ {
return this.HdrFtr.Cursor_MoveAt(X, Y, this.CurPage, AddToSelect); var bRetValue = this.HdrFtr.Set_ParagraphIndent(Ind);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
return bRetValue;
} }
else if (docpostype_DrawingObjects === this.CurPos.Type) else if (docpostype_DrawingObjects === this.CurPos.Type)
{ {
return this.DrawingObjects.cursorMoveAt(X, Y, AddToSelect); var bRetValue = this.DrawingObjects.setParagraphIndent(Ind);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
return bRetValue;
} }
else //if ( docpostype_Content === this.CurPos.Type ) else //if ( docpostype_Content === this.CurPos.Type )
{ {
this.Remove_NumberingSelection(); if (this.CurPos.ContentPos < 0)
return false;
if (true === this.Selection.Use) if (true === this.Selection.Use)
{ {
if (true === AddToSelect) var StartPos = this.Selection.StartPos;
var EndPos = this.Selection.EndPos;
if (EndPos < StartPos)
{ {
this.Selection_SetEnd(X, Y, true); var Temp = StartPos;
StartPos = EndPos;
EndPos = Temp;
} }
else
{
this.Selection_Remove();
var ContentPos = this.Internal_GetContentPosByXY(X, Y); for (var Index = StartPos; Index <= EndPos; Index++)
this.CurPos.ContentPos = ContentPos;
var ElementPageIndex = this.private_GetElementPageIndexByXY(ContentPos, X, Y, this.CurPage);
this.Content[ContentPos].Cursor_MoveAt(X, Y, false, false, ElementPageIndex);
this.Document_UpdateInterfaceState();
}
}
else
{ {
if (true === AddToSelect) var Item = this.Content[Index];
if (type_Paragraph == Item.GetType())
{ {
this.Selection.Use = true; var NumPr = null;
this.Selection.StartPos = this.CurPos.ContentPos; if ("number" == typeof(Ind.ChangeLevel) && 0 != Ind.ChangeLevel && undefined != ( NumPr = Item.Numbering_Get() ))
this.Content[this.CurPos.ContentPos].Selection.Use = true;
this.Content[this.CurPos.ContentPos].Selection.StartPos = this.Content[this.CurPos.ContentPos].CurPos.ContentPos;
this.Selection_SetEnd(X, Y, true);
}
else
{
var ContentPos = this.Internal_GetContentPosByXY(X, Y);
this.CurPos.ContentPos = ContentPos;
var ElementPageIndex = this.private_GetElementPageIndexByXY(ContentPos, X, Y, this.CurPage);
this.Content[ContentPos].Cursor_MoveAt(X, Y, false, false, ElementPageIndex);
this.Document_UpdateInterfaceState();
}
}
}
};
CDocument.prototype.Cursor_MoveToCell = function(bNext)
{
this.private_UpdateTargetForCollaboration();
if (docpostype_HdrFtr === this.CurPos.Type)
{
this.HdrFtr.Cursor_MoveToCell(bNext);
}
else if (docpostype_DrawingObjects == this.CurPos.Type)
{
this.DrawingObjects.cursorMoveToCell(bNext);
}
else //if ( docpostype_Content == this.CurPos.Type )
{
if (true === this.Selection.Use)
{
if (this.Selection.StartPos === this.Selection.EndPos && type_Table === this.Content[this.Selection.StartPos].GetType())
this.Content[this.Selection.StartPos].Cursor_MoveToCell(bNext);
}
else
{
if (type_Table === this.Content[this.CurPos.ContentPos].GetType())
this.Content[this.CurPos.ContentPos].Cursor_MoveToCell(bNext);
}
}
};
CDocument.prototype.Set_ParagraphAlign = function(Align)
{
var SelectedInfo = this.Get_SelectedElementsInfo();
var Math = SelectedInfo.Get_Math();
if (null !== Math && true !== Math.Is_Inline())
{ {
Math.Set_Align(Align); if (Ind.ChangeLevel > 0)
} Item.Numbering_Add(NumPr.NumId, Math.min(8, NumPr.Lvl + 1));
else else
{ Item.Numbering_Add(NumPr.NumId, Math.max(0, NumPr.Lvl - 1));
// Работаем с колонтитулом
if (docpostype_HdrFtr === this.CurPos.Type)
{
this.HdrFtr.Set_ParagraphAlign(Align);
}
else if (docpostype_DrawingObjects === this.CurPos.Type)
{
if (true != this.DrawingObjects.isSelectedText())
{
var ParaDrawing = this.DrawingObjects.getMajorParaDrawing();
if (null != ParaDrawing)
{
var Paragraph = ParaDrawing.Parent;
Paragraph.Set_Align(Align);
}
} }
else else
{ {
this.DrawingObjects.setParagraphAlign(Align); Item.Set_Ind(Ind, false);
}
} }
else //if ( docpostype_Content === this.CurPos.Type )
{
if (this.CurPos.ContentPos < 0)
return false;
if (true === this.Selection.Use)
{
var StartPos = this.Selection.StartPos;
var EndPos = this.Selection.EndPos;
if (EndPos < StartPos)
{
var Temp = StartPos;
StartPos = EndPos;
EndPos = Temp;
} }
for (var Index = StartPos; Index <= EndPos; Index++)
{
var Item = this.Content[Index];
if (type_Paragraph == Item.GetType())
Item.Set_Align(Align, true);
else if (type_Table == Item.GetType()) else if (type_Table == Item.GetType())
{ {
Item.TurnOff_RecalcEvent(); Item.TurnOff_RecalcEvent();
Item.Set_ParagraphAlign(Align); Item.Set_ParagraphIndent(Ind);
Item.TurnOn_RecalcEvent(); Item.TurnOn_RecalcEvent();
} }
} }
}
else
{
var Item = this.Content[this.CurPos.ContentPos];
if (type_Paragraph == Item.GetType())
{
Item.Set_Align(Align, true);
}
else if (type_Table == Item.GetType())
{
Item.Set_ParagraphAlign(Align);
}
}
}
}
this.Recalculate();
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
};
CDocument.prototype.Set_ParagraphSpacing = function(Spacing)
{
// Работаем с колонтитулом
if (docpostype_HdrFtr === this.CurPos.Type)
{
var bRetValue = this.HdrFtr.Set_ParagraphSpacing(Spacing);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
return bRetValue;
}
else if (docpostype_DrawingObjects === this.CurPos.Type)
{
if (true != this.DrawingObjects.isSelectedText())
{
var ParaDrawing = this.DrawingObjects.getMajorParaDrawing();
if (null != ParaDrawing)
{
var Paragraph = ParaDrawing.Parent;
Paragraph.Set_Spacing(Spacing, false);
this.Recalculate();
}
}
else
{
this.DrawingObjects.setParagraphSpacing(Spacing);
}
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
}
else //if ( docpostype_Content === this.CurPos.Type )
{
if (this.CurPos.ContentPos < 0)
return false;
if (true === this.Selection.Use)
{
var StartPos = this.Selection.StartPos;
var EndPos = this.Selection.EndPos;
if (EndPos < StartPos)
{
var Temp = StartPos;
StartPos = EndPos;
EndPos = Temp;
}
for (var Index = StartPos; Index <= EndPos; Index++)
{
var Item = this.Content[Index];
if (type_Paragraph == Item.GetType())
Item.Set_Spacing(Spacing, false);
else if (type_Table == Item.GetType())
{
Item.TurnOff_RecalcEvent();
Item.Set_ParagraphSpacing(Spacing);
Item.TurnOn_RecalcEvent();
}
}
// Нам нужно пересчитать все изменения, начиная с первого элемента, // Нам нужно пересчитать все изменения, начиная с первого элемента,
// попавшего в селект. // попавшего в селект.
this.ContentLastChangePos = StartPos - 1; this.ContentLastChangePos = StartPos;
this.Recalculate(); this.Recalculate();
...@@ -6249,48 +6058,65 @@ CDocument.prototype.Set_ParagraphSpacing = function(Spacing) ...@@ -6249,48 +6058,65 @@ CDocument.prototype.Set_ParagraphSpacing = function(Spacing)
var Item = this.Content[this.CurPos.ContentPos]; var Item = this.Content[this.CurPos.ContentPos];
if (type_Paragraph == Item.GetType()) if (type_Paragraph == Item.GetType())
{ {
Item.Set_Spacing(Spacing, false); var NumPr = null;
if ("number" == typeof(Ind.ChangeLevel) && 0 != Ind.ChangeLevel && undefined != ( NumPr = Item.Numbering_Get() ))
{
if (Ind.ChangeLevel > 0)
Item.Numbering_Add(NumPr.NumId, Math.min(8, NumPr.Lvl + 1));
else
Item.Numbering_Add(NumPr.NumId, Math.max(0, NumPr.Lvl - 1));
}
else
{
Item.Set_Ind(Ind, false);
}
// Нам нужно пересчитать все изменения, начиная с предыдущего элемента // Нам нужно пересчитать все изменения, начиная с текущего элемента
this.ContentLastChangePos = this.CurPos.ContentPos - 1; this.ContentLastChangePos = this.CurPos.ContentPos;
this.Recalculate(); this.Recalculate();
} }
else if (type_Table == Item.GetType()) else if (type_Table == Item.GetType())
{ {
Item.Set_ParagraphSpacing(Spacing); Item.Set_ParagraphIndent(Ind);
} }
this.Document_UpdateSelectionState(); this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
} }
}; };
CDocument.prototype.Set_ParagraphTabs = function(Tabs) CDocument.prototype.Set_ParagraphNumbering = function(NumInfo)
{ {
// Работаем с колонтитулом // Работаем с колонтитулом
if (docpostype_HdrFtr === this.CurPos.Type) if (docpostype_HdrFtr === this.CurPos.Type)
{ {
var bRetValue = this.HdrFtr.Set_ParagraphTabs(Tabs); var bRetValue = this.HdrFtr.Set_ParagraphNumbering(NumInfo);
this.Document_UpdateSelectionState(); this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
editor.Update_ParaTab(Default_Tab_Stop, Tabs);
return bRetValue; return bRetValue;
} }
else if (docpostype_DrawingObjects === this.CurPos.Type) else if (docpostype_DrawingObjects === this.CurPos.Type)
{ {
var bRetValue = this.DrawingObjects.setParagraphTabs(Tabs); var bRetValue = this.DrawingObjects.setParagraphNumbering(NumInfo);
this.Document_UpdateSelectionState(); this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState(); this.Document_UpdateInterfaceState();
editor.Update_ParaTab(Default_Tab_Stop, Tabs);
return bRetValue; return bRetValue;
} }
else //if ( docpostype_Content === this.CurPos.Type ) else
{ {
if (this.CurPos.ContentPos < 0) if (this.CurPos.ContentPos < 0)
return false; return false;
if (true === this.Selection.Use) if (true === this.Selection.Use && selectionflag_Numbering !== this.Selection.Flag)
{
if (this.Selection.StartPos === this.Selection.EndPos && type_Table === this.Content[this.Selection.StartPos].GetType())
{ {
this.Content[this.Selection.StartPos].Set_ParagraphNumbering(NumInfo);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
return true;
}
var StartPos = this.Selection.StartPos; var StartPos = this.Selection.StartPos;
var EndPos = this.Selection.EndPos; var EndPos = this.Selection.EndPos;
if (EndPos < StartPos) if (EndPos < StartPos)
...@@ -6300,213 +6126,22 @@ CDocument.prototype.Set_ParagraphTabs = function(Tabs) ...@@ -6300,213 +6126,22 @@ CDocument.prototype.Set_ParagraphTabs = function(Tabs)
EndPos = Temp; EndPos = Temp;
} }
if (NumInfo.SubType < 0)
{
// Убираем список из всех параграфов попавших в селект
for (var Index = StartPos; Index <= EndPos; Index++) for (var Index = StartPos; Index <= EndPos; Index++)
{ {
var Item = this.Content[Index]; if (type_Paragraph == this.Content[Index].GetType())
if (type_Paragraph == Item.GetType()) this.Content[Index].Numbering_Remove();
Item.Set_Tabs(Tabs); else if (type_Table == this.Content[Index].GetType())
else if (type_Table == Item.GetType())
{ {
Item.TurnOff_RecalcEvent(); this.Content[Index].TurnOff_RecalcEvent();
Item.Set_ParagraphTabs(Tabs); this.Content[Index].Set_ParagraphNumbering(NumInfo);
Item.TurnOn_RecalcEvent(); this.Content[Index].TurnOn_RecalcEvent();
} }
} }
// Нам нужно пересчитать все изменения, начиная с первого элемента,
// попавшего в селект.
this.ContentLastChangePos = StartPos;
this.Recalculate();
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
editor.Update_ParaTab(Default_Tab_Stop, Tabs);
return;
} }
else
var Item = this.Content[this.CurPos.ContentPos];
if (type_Paragraph == Item.GetType())
{
Item.Set_Tabs(Tabs);
// Нам нужно пересчитать все изменения, начиная с текущего элемента
this.ContentLastChangePos = this.CurPos.ContentPos;
this.Recalculate(true);
editor.Update_ParaTab(Default_Tab_Stop, Tabs);
}
else if (type_Table == Item.GetType())
{
Item.Set_ParagraphTabs(Tabs);
editor.Update_ParaTab(Default_Tab_Stop, Tabs);
}
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
}
};
CDocument.prototype.Set_ParagraphIndent = function(Ind)
{
// Работаем с колонтитулом
if (docpostype_HdrFtr === this.CurPos.Type)
{
var bRetValue = this.HdrFtr.Set_ParagraphIndent(Ind);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
return bRetValue;
}
else if (docpostype_DrawingObjects === this.CurPos.Type)
{
var bRetValue = this.DrawingObjects.setParagraphIndent(Ind);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
return bRetValue;
}
else //if ( docpostype_Content === this.CurPos.Type )
{
if (this.CurPos.ContentPos < 0)
return false;
if (true === this.Selection.Use)
{
var StartPos = this.Selection.StartPos;
var EndPos = this.Selection.EndPos;
if (EndPos < StartPos)
{
var Temp = StartPos;
StartPos = EndPos;
EndPos = Temp;
}
for (var Index = StartPos; Index <= EndPos; Index++)
{
var Item = this.Content[Index];
if (type_Paragraph == Item.GetType())
{
var NumPr = null;
if ("number" == typeof(Ind.ChangeLevel) && 0 != Ind.ChangeLevel && undefined != ( NumPr = Item.Numbering_Get() ))
{
if (Ind.ChangeLevel > 0)
Item.Numbering_Add(NumPr.NumId, Math.min(8, NumPr.Lvl + 1));
else
Item.Numbering_Add(NumPr.NumId, Math.max(0, NumPr.Lvl - 1));
}
else
{
Item.Set_Ind(Ind, false);
}
}
else if (type_Table == Item.GetType())
{
Item.TurnOff_RecalcEvent();
Item.Set_ParagraphIndent(Ind);
Item.TurnOn_RecalcEvent();
}
}
// Нам нужно пересчитать все изменения, начиная с первого элемента,
// попавшего в селект.
this.ContentLastChangePos = StartPos;
this.Recalculate();
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
return;
}
var Item = this.Content[this.CurPos.ContentPos];
if (type_Paragraph == Item.GetType())
{
var NumPr = null;
if ("number" == typeof(Ind.ChangeLevel) && 0 != Ind.ChangeLevel && undefined != ( NumPr = Item.Numbering_Get() ))
{
if (Ind.ChangeLevel > 0)
Item.Numbering_Add(NumPr.NumId, Math.min(8, NumPr.Lvl + 1));
else
Item.Numbering_Add(NumPr.NumId, Math.max(0, NumPr.Lvl - 1));
}
else
{
Item.Set_Ind(Ind, false);
}
// Нам нужно пересчитать все изменения, начиная с текущего элемента
this.ContentLastChangePos = this.CurPos.ContentPos;
this.Recalculate();
}
else if (type_Table == Item.GetType())
{
Item.Set_ParagraphIndent(Ind);
}
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
}
};
CDocument.prototype.Set_ParagraphNumbering = function(NumInfo)
{
// Работаем с колонтитулом
if (docpostype_HdrFtr === this.CurPos.Type)
{
var bRetValue = this.HdrFtr.Set_ParagraphNumbering(NumInfo);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
return bRetValue;
}
else if (docpostype_DrawingObjects === this.CurPos.Type)
{
var bRetValue = this.DrawingObjects.setParagraphNumbering(NumInfo);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
return bRetValue;
}
else
{
if (this.CurPos.ContentPos < 0)
return false;
if (true === this.Selection.Use && selectionflag_Numbering !== this.Selection.Flag)
{
if (this.Selection.StartPos === this.Selection.EndPos && type_Table === this.Content[this.Selection.StartPos].GetType())
{
this.Content[this.Selection.StartPos].Set_ParagraphNumbering(NumInfo);
this.Document_UpdateSelectionState();
this.Document_UpdateInterfaceState();
return true;
}
var StartPos = this.Selection.StartPos;
var EndPos = this.Selection.EndPos;
if (EndPos < StartPos)
{
var Temp = StartPos;
StartPos = EndPos;
EndPos = Temp;
}
if (NumInfo.SubType < 0)
{
// Убираем список из всех параграфов попавших в селект
for (var Index = StartPos; Index <= EndPos; Index++)
{
if (type_Paragraph == this.Content[Index].GetType())
this.Content[Index].Numbering_Remove();
else if (type_Table == this.Content[Index].GetType())
{
this.Content[Index].TurnOff_RecalcEvent();
this.Content[Index].Set_ParagraphNumbering(NumInfo);
this.Content[Index].TurnOn_RecalcEvent();
}
}
}
else
{ {
switch (NumInfo.Type) switch (NumInfo.Type)
{ {
...@@ -17006,6 +16641,339 @@ CDocument.prototype.controller_RecalculateCurPos = function() ...@@ -17006,6 +16641,339 @@ CDocument.prototype.controller_RecalculateCurPos = function()
this.Content[nPos].RecalculateCurPos(); this.Content[nPos].RecalculateCurPos();
} }
}; };
CDocument.prototype.controller_CursorMoveLeft = function(AddToSelect, Word)
{
if (this.CurPos.ContentPos < 0)
return false;
this.Remove_NumberingSelection();
if (true === this.Selection.Use)
{
if (true === AddToSelect)
{
// Добавляем к селекту
if (false === this.Content[this.Selection.EndPos].Cursor_MoveLeft(1, true, Word))
{
// Нужно перейти в конец предыдущего элемента
if (0 != this.Selection.EndPos)
{
this.Selection.EndPos--;
this.CurPos.ContentPos = this.Selection.EndPos;
var Item = this.Content[this.Selection.EndPos];
if (type_Paragraph == Item.GetType())
{
Item.Cursor_MoveToEndPos(true, true);
Item.Cursor_MoveLeft(1, true, Word);
}
else if (type_Table == Item.GetType())
{
if (false === Item.Is_SelectionUse())
{
var LastRow = Item.Content[Item.Content.length - 1];
// Нам нужно выделить последний ряд таблицы
Item.Selection.Use = true;
Item.Selection.Type = table_Selection_Cell;
Item.Selection.StartPos.Pos = {
Row : LastRow.Index,
Cell : LastRow.Get_CellsCount() - 1
};
Item.Selection.EndPos.Pos = {Row : LastRow.Index, Cell : 0};
Item.CurCell = LastRow.Get_Cell(0);
Item.Selection.Data = [];
for (var CellIndex = 0; CellIndex < LastRow.Get_CellsCount(); CellIndex++)
{
Item.Selection.Data.push({Cell : CellIndex, Row : LastRow.Index});
}
}
else
Item.Cursor_MoveLeft(1, true, Word);
}
}
}
// Проверяем не обнулился ли селект в последнем элементе. Такое могло быть, если была
// заселекчена одна буква в последнем параграфе, а мы убрали селект последним действием.
if (this.Selection.EndPos != this.Selection.StartPos && false === this.Content[this.Selection.EndPos].Is_SelectionUse())
{
// Такая ситуация возможна только при прямом селекте (сверху вниз), поэтому вычитаем
this.Selection.EndPos--;
this.CurPos.ContentPos = this.Selection.EndPos;
}
// Проверяем не обнулился ли селект (т.е. ничего не заселекчено)
if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Is_SelectionUse())
{
this.Selection.Use = false;
this.CurPos.ContentPos = this.Selection.EndPos;
}
}
else
{
// Нам нужно переместить курсор в левый край селекта, и отменить весь селект
var Start = this.Selection.StartPos;
if (Start > this.Selection.EndPos)
Start = this.Selection.EndPos;
this.CurPos.ContentPos = Start;
this.Content[this.CurPos.ContentPos].Cursor_MoveLeft(1, false, Word);
this.Selection_Remove();
}
}
else
{
if (true === AddToSelect)
{
this.Selection.Use = true;
this.Selection.StartPos = this.CurPos.ContentPos;
this.Selection.EndPos = this.CurPos.ContentPos;
if (false === this.Content[this.CurPos.ContentPos].Cursor_MoveLeft(1, true, Word))
{
// Нужно перейти в конец предыдущего элемент
if (0 != this.CurPos.ContentPos)
{
this.CurPos.ContentPos--;
var Item = this.Content[this.CurPos.ContentPos];
this.Selection.EndPos = this.CurPos.ContentPos;
if (type_Paragraph == Item.GetType())
{
Item.Cursor_MoveToEndPos(false, true);
Item.Cursor_MoveLeft(1, true, Word);
}
else if (type_Table == Item.GetType())
{
if (false === Item.Is_SelectionUse())
{
var LastRow = Item.Content[Item.Content.length - 1];
// Нам нужно выделить последний ряд таблицы
Item.Selection.Use = true;
Item.Selection.Type = table_Selection_Cell;
Item.Selection.StartPos.Pos = {
Row : LastRow.Index,
Cell : LastRow.Get_CellsCount() - 1
};
Item.Selection.EndPos.Pos = {Row : LastRow.Index, Cell : 0};
Item.CurCell = LastRow.Get_Cell(0);
Item.Selection.Data = [];
for (var CellIndex = 0; CellIndex < LastRow.Get_CellsCount(); CellIndex++)
{
Item.Selection.Data.push({Cell : CellIndex, Row : LastRow.Index});
}
}
else
Item.Cursor_MoveLeft(1, true, Word);
}
}
}
// Проверяем не обнулился ли селект (т.е. ничего не заселекчено)
if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Is_SelectionUse())
{
this.Selection.Use = false;
this.CurPos.ContentPos = this.Selection.EndPos;
}
}
else
{
if (false === this.Content[this.CurPos.ContentPos].Cursor_MoveLeft(1, false, Word))
{
// Нужно перейти в конец предыдущего элемент
if (0 != this.CurPos.ContentPos)
{
this.CurPos.ContentPos--;
this.Content[this.CurPos.ContentPos].Cursor_MoveToEndPos();
}
}
}
}
};
CDocument.prototype.controller_CursorMoveRight = function(AddToSelect, Word, FromPaste)
{
if (this.CurPos.ContentPos < 0)
return false;
this.Remove_NumberingSelection();
if (true === this.Selection.Use)
{
if (true === AddToSelect)
{
// Добавляем к селекту
if (false === this.Content[this.Selection.EndPos].Cursor_MoveRight(1, true, Word))
{
// Нужно перейти в начало следующего элемента
if (this.Content.length - 1 != this.Selection.EndPos)
{
this.Selection.EndPos++;
this.CurPos.ContentPos = this.Selection.EndPos;
var Item = this.Content[this.Selection.EndPos];
if (type_Paragraph === Item.GetType())
{
if (false === Item.Is_SelectionUse())
{
var StartPos = Item.Internal_GetStartPos();
Item.CurPos.ContentPos = StartPos;
Item.Selection.Use = true;
Item.Selection.StartPos = StartPos;
Item.Selection.EndPos = StartPos;
}
Item.Cursor_MoveRight(1, true, Word);
}
else if (type_Table === Item.GetType())
{
if (false === Item.Is_SelectionUse())
{
var FirstRow = Item.Content[0];
// Нам нужно выделить первый ряд таблицы
Item.Selection.Use = true;
Item.Selection.Type = table_Selection_Cell;
Item.Selection.StartPos.Pos = {Row : 0, Cell : 0};
Item.Selection.EndPos.Pos = {Row : 0, Cell : FirstRow.Get_CellsCount() - 1};
Item.CurCell = FirstRow.Get_Cell(FirstRow.Get_CellsCount() - 1);
Item.Selection.Data = [];
for (var CellIndex = 0; CellIndex < FirstRow.Get_CellsCount(); CellIndex++)
{
Item.Selection.Data.push({Cell : CellIndex, Row : 0});
}
}
else
Item.Cursor_MoveRight(1, true, Word);
}
}
}
// Проверяем не обнулился ли селект в последнем параграфе. Такое могло быть, если была
// заселекчена одна буква в последнем параграфе, а мы убрали селект последним действием.
if (this.Selection.EndPos != this.Selection.StartPos && false === this.Content[this.Selection.EndPos].Is_SelectionUse())
{
// Такая ситуация возможна только при обратном селекте (снизу вверх), поэтому вычитаем
this.Selection.EndPos++;
this.CurPos.ContentPos = this.Selection.EndPos;
}
// Проверяем не обнулился ли селект (т.е. ничего не заселекчено)
if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Is_SelectionUse())
{
this.Selection.Use = false;
this.CurPos.ContentPos = this.Selection.EndPos;
}
}
else
{
// Нам нужно переместить курсор в правый край селекта, и отменить весь селект
var End = this.Selection.EndPos;
if (End < this.Selection.StartPos)
End = this.Selection.StartPos;
this.CurPos.ContentPos = End;
if (true === FromPaste && type_Table === this.Content[this.CurPos.ContentPos].Get_Type() && true === this.Content[this.CurPos.ContentPos].Selection_IsToEnd() && this.Content.length - 1 !== this.CurPos.ContentPos)
{
this.CurPos.ContentPos = End + 1;
this.Content[this.CurPos.ContentPos].Cursor_MoveToStartPos(false);
}
else
{
if (false === this.Content[this.CurPos.ContentPos].Cursor_MoveRight(1, false, Word, FromPaste))
{
if (this.Content.length - 1 === this.CurPos.ContentPos)
{
var Item = this.Content[this.CurPos.ContentPos];
Item.Cursor_MoveToEndPos(false);
}
}
}
this.Selection_Remove();
}
}
else
{
if (true === AddToSelect)
{
this.Selection.Use = true;
this.Selection.StartPos = this.CurPos.ContentPos;
this.Selection.EndPos = this.CurPos.ContentPos;
if (false === this.Content[this.CurPos.ContentPos].Cursor_MoveRight(1, true, Word))
{
// Нужно перейти в конец предыдущего элемента
if (this.Content.length - 1 != this.CurPos.ContentPos)
{
this.CurPos.ContentPos++;
var Item = this.Content[this.CurPos.ContentPos];
this.Selection.EndPos = this.CurPos.ContentPos;
if (type_Paragraph === Item.GetType())
{
if (false === Item.Is_SelectionUse())
{
var StartPos = Item.Internal_GetStartPos();
Item.CurPos.ContentPos = StartPos;
Item.Selection.Use = true;
Item.Selection.StartPos = StartPos;
Item.Selection.EndPos = StartPos;
}
Item.Cursor_MoveRight(1, true, Word);
}
else if (type_Table === Item.GetType())
{
if (false === Item.Is_SelectionUse())
{
var FirstRow = Item.Content[0];
// Нам нужно выделить первый ряд таблицы
Item.Selection.Use = true;
Item.Selection.Type = table_Selection_Cell;
Item.Selection.StartPos.Pos = {Row : 0, Cell : 0};
Item.Selection.EndPos.Pos = {Row : 0, Cell : FirstRow.Get_CellsCount() - 1};
Item.CurCell = FirstRow.Get_Cell(FirstRow.Get_CellsCount() - 1);
Item.Selection.Data = [];
for (var CellIndex = 0; CellIndex < FirstRow.Get_CellsCount(); CellIndex++)
{
Item.Selection.Data.push({Cell : CellIndex, Row : 0});
}
}
else
Item.Cursor_MoveRight(1, true, Word);
}
}
}
// Проверяем не обнулился ли селект (т.е. ничего не заселекчено)
if (this.Selection.StartPos == this.Selection.EndPos && false === this.Content[this.Selection.StartPos].Is_SelectionUse())
{
this.Selection.Use = false;
this.CurPos.ContentPos = this.Selection.EndPos;
}
}
else
{
if (false === this.Content[this.CurPos.ContentPos].Cursor_MoveRight(1, false, Word))
{
// Нужно перейти в начало следующего элемента
if (this.Content.length - 1 != this.CurPos.ContentPos)
{
this.CurPos.ContentPos++;
this.Content[this.CurPos.ContentPos].Cursor_MoveToStartPos();
}
}
}
}
};
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
// //
//---------------------------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------------------------
......
...@@ -173,4 +173,18 @@ CDocumentControllerBase.prototype.Get_ParentTextTransform = function() ...@@ -173,4 +173,18 @@ CDocumentControllerBase.prototype.Get_ParentTextTransform = function()
* Пересчитываем текущую позицию. * Пересчитываем текущую позицию.
*/ */
CDocumentControllerBase.prototype.RecalculateCurPos = function(){}; CDocumentControllerBase.prototype.RecalculateCurPos = function(){};
/**
* Смещаем курсор влево
* @param {boolean} AddToSelect Добавлять ли к селекту смещение
* @param {boolean} Word Осуществлять ли переход по целому слову
* @returns {boolean} Получилось ли перемещение, или мы достигли предела.
*/
CDocumentControllerBase.prototype.Cursor_MoveLeft = function(AddToSelect, Word){return false;};
/**
* Смещаем курсор вправо
* @param {boolean} AddToSelect Добавлять ли к селекту смещение
* @param {boolean} Word Осуществлять ли переход по целому слову
* @param {boolean} FromPaste Пришла ли данная комнда после "вставки"
* @returns {boolean} Получилось ли перемещение, или мы достигли предела.
*/
CDocumentControllerBase.prototype.Cursor_MoveRight = function(AddToSelect, Word, FromPaste){return false;};
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
/** /**
* Специальный класс-обработчик команд в автофигурах * Специальный класс-обработчик команд в автофигурах
* @param {CDocument} LogicDocument - Ссылка на главный документ. * @param {CDocument} LogicDocument - Ссылка на главный документ.
* @param {CDrawingsObjects} DrawingsObjects - ССылка на объект, работающий с автофигурами
* @constructor * @constructor
* @extends {CDocumentControllerBase} * @extends {CDocumentControllerBase}
*/ */
...@@ -23,5 +24,13 @@ CDrawingsController.prototype.RecalculateCurPos = function() ...@@ -23,5 +24,13 @@ CDrawingsController.prototype.RecalculateCurPos = function()
{ {
this.DrawingObjects.recalculateCurPos(); this.DrawingObjects.recalculateCurPos();
}; };
CDrawingsController.prototype.Cursor_MoveLeft = function(AddToSelect, Word)
{
return this.DrawingObjects.cursorMoveLeft(AddToSelect, Word);
};
CDrawingsController.prototype.Cursor_MoveRight = function(AddToSelect, Word, FromPaste)
{
return this.DrawingObjects.cursorMoveRight(AddToSelect, Word, FromPaste);
};
...@@ -27,7 +27,8 @@ function CFootnotesController(LogicDocument) ...@@ -27,7 +27,8 @@ function CFootnotesController(LogicDocument)
this.Selection = { this.Selection = {
Use : false, Use : false,
Footnotes : [] Footnotes : [],
Direction : 0
}; };
this.CurFootnote = null; this.CurFootnote = null;
...@@ -238,6 +239,40 @@ CFootnotesController.prototype.RecalculateCurPos = function() ...@@ -238,6 +239,40 @@ CFootnotesController.prototype.RecalculateCurPos = function()
if (null !== this.CurFootnote) if (null !== this.CurFootnote)
this.CurFootnote.RecalculateCurPos(); this.CurFootnote.RecalculateCurPos();
}; };
CFootnotesController.prototype.Cursor_MoveLeft = function(AddToSelect, Word)
{
var bRetValue = false;
// TODO: Доделать селект и курсор
if (true === this.Selection.Use)
{
}
else
{
if (null !== this.CurFootnote)
bRetValue = this.CurFootnote.Cursor_MoveLeft(AddToSelect, Word);
}
return bRetValue;
};
CFootnotesController.prototype.Cursor_MoveRight = function(AddToSelect, Word, FromPaste)
{
var bRetValue = false;
// TODO: Доделать селект и курсор
if (true === this.Selection.Use)
{
}
else
{
if (null !== this.CurFootnote)
bRetValue = this.CurFootnote.Cursor_MoveRight(AddToSelect, Word, FromPaste);
}
return bRetValue;
};
function CFootEndnotePage() function CFootEndnotePage()
{ {
......
...@@ -27,3 +27,11 @@ CHdrFtrController.prototype.RecalculateCurPos = function() ...@@ -27,3 +27,11 @@ CHdrFtrController.prototype.RecalculateCurPos = function()
{ {
this.HdrFtr.RecalculateCurPos(); this.HdrFtr.RecalculateCurPos();
}; };
CHdrFtrController.prototype.Cursor_MoveLeft = function(AddToSelect, Word)
{
return this.HdrFtr.Cursor_MoveLeft(AddToSelect, Word);
};
CHdrFtrController.prototype.Cursor_MoveRight = function(AddToSelect, Word, FromPaste)
{
return this.HdrFtr.Cursor_MoveRight(AddToSelect, Word, FromPaste);
};
\ No newline at end of file
...@@ -21,5 +21,13 @@ CLogicDocumentController.prototype.RecalculateCurPos = function() ...@@ -21,5 +21,13 @@ CLogicDocumentController.prototype.RecalculateCurPos = function()
{ {
this.LogicDocument.controller_RecalculateCurPos(); this.LogicDocument.controller_RecalculateCurPos();
}; };
CLogicDocumentController.prototype.Cursor_MoveLeft = function(AddToSelect, Word)
{
return this.LogicDocument.controller_CursorMoveLeft(AddToSelect, Word);
};
CLogicDocumentController.prototype.Cursor_MoveRight = function(AddToSelect, Word, FromPaste)
{
return this.LogicDocument.controller_CursorMoveRight(AddToSelect, Word, FromPaste);
};
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