Commit 561cfb4e authored by Ilya.Kirillov's avatar Ilya.Kirillov Committed by Alexander.Trofimov

Добавлен класс для работы с гиперссылками в новом варианте параграфа.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@54533 954022d7-b5bf-4e40-9824-e11837661b57
parent 0e0e8fc9
This diff is collapsed.
......@@ -7861,6 +7861,23 @@ Paragraph.prototype =
if ( true === this.Content[StartPos].Is_Empty() )
this.Internal_Content_Remove( StartPos );
}
if ( true !== this.Content[this.CurPos.ContentPos].Selection_IsUse() )
{
this.Selection_Remove();
}
else
{
this.Selection.Use = true;
this.Selection.Start = false;
this.Selection.Flag = selectionflag_Common;
this.Selection.StartPos = this.CurPos.ContentPos;
this.Selection.EndPos = this.CurPos.ContentPos;
this.Document_SetThisElementCurrent(true);
return true;
}
}
else
{
......@@ -7883,6 +7900,19 @@ Paragraph.prototype =
}
if ( true === this.Content[ContentPos].Selection_IsUse() )
{
this.Selection.Use = true;
this.Selection.Start = false;
this.Selection.Flag = selectionflag_Common;
this.Selection.StartPos = ContentPos;
this.Selection.EndPos = ContentPos;
this.Document_SetThisElementCurrent(true);
return true;
}
if ( ContentPos < 0 || ContentPos >= this.Content.length )
Result = false;
else
......@@ -9229,7 +9259,9 @@ Paragraph.prototype =
{
this.Content[StartPos].Set_SelectionContentPos( StartContentPos, EndContentPos, Depth + 1, 0, 0 );
}
else if ( StartPos > EndPos )
else
{
if ( StartPos > EndPos )
{
this.Content[StartPos].Set_SelectionContentPos( StartContentPos, null, Depth + 1, 0, 1 );
this.Content[EndPos].Set_SelectionContentPos( null, EndContentPos, Depth + 1, -1, 0 );
......@@ -9245,6 +9277,17 @@ Paragraph.prototype =
for ( var CurPos = StartPos + 1; CurPos < EndPos; CurPos++ )
this.Content[CurPos].Select_All( 1 );
}
// TODO: Реализовать выделение гиперссылки целиком (само выделение тут сделано, но непонятно как
// дальше обрабатывать Shift + влево/вправо)
// Делаем как в Word: гиперссылка выделяется целиком, если выделение выходит за пределы гиперссылки
// if ( para_Hyperlink === this.Content[StartPos].Type && true !== this.Content[StartPos].Selection_IsEmpty(true) )
// this.Content[StartPos].Select_All( StartPos > EndPos ? -1 : 1 );
//
// if ( para_Hyperlink === this.Content[EndPos].Type && true !== this.Content[EndPos].Selection_IsEmpty(true) )
// this.Content[EndPos].Select_All( StartPos > EndPos ? -1 : 1 );
}
},
Get_ParaContentPosByXY : function(X, Y, PageNum, bYLine, StepEnd)
......@@ -11756,6 +11799,12 @@ Paragraph.prototype =
Remove_EmptyRuns : function()
{
// TODO: Надо переделать данную функцию. Надо удалять только спаренные пустые раны и добавлять новые пустые раны
// в места, где нет ранов, например, если параграф начинается не с рана, или заканчивается не раном, или у
// нас идут 2 гиперссылки подряд.
return;
var ContentLen = this.Content.length;
for ( var CurPos = 0; CurPos < ContentLen; CurPos++ )
{
......
......@@ -2851,6 +2851,11 @@ ParaRun.prototype =
Selection.Use = true;
},
Selection_IsUse : function()
{
return this.State.Selection.Use;
},
Selection_Stop : function()
{
},
......
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