Commit 53d96e25 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@53859 954022d7-b5bf-4e40-9824-e11837661b57
parent 1e1e960c
...@@ -4738,7 +4738,7 @@ Paragraph.prototype = ...@@ -4738,7 +4738,7 @@ Paragraph.prototype =
return true; return true;
}, },
Internal_GetTabPos : function(X, ParaPr) Internal_GetTabPos : function(X, ParaPr, CurPage)
{ {
var PageStart = this.Parent.Get_PageContentStartPos( this.PageNum + CurPage ); var PageStart = this.Parent.Get_PageContentStartPos( this.PageNum + CurPage );
if ( undefined != this.Get_FramePr() ) if ( undefined != this.Get_FramePr() )
...@@ -4810,7 +4810,7 @@ Paragraph.prototype = ...@@ -4810,7 +4810,7 @@ Paragraph.prototype =
} }
} }
return NewX; return { NewX : NewX, TabValue : ( null === Tab ? tab_Left : Tab.Value ) };
}, },
// Проверяем не пустые ли границы // Проверяем не пустые ли границы
......
...@@ -107,7 +107,7 @@ function ParaText(value) ...@@ -107,7 +107,7 @@ function ParaText(value)
// this.TextDescent = 0; // this.TextDescent = 0;
// this.TextHeight = 0; // this.TextHeight = 0;
// this.TextAscent2 = 0; // this.TextAscent2 = 0;
this.YOffset = 0; // this.YOffset = 0;
// this.CurPage = 0; // this.CurPage = 0;
// this.CurLines = 0; // this.CurLines = 0;
...@@ -242,7 +242,7 @@ function ParaSpace(Count) ...@@ -242,7 +242,7 @@ function ParaSpace(Count)
// this.TextDescent = 0; // this.TextDescent = 0;
// this.TextHeight = 0; // this.TextHeight = 0;
// this.TextAscent2 = 0; // this.TextAscent2 = 0;
this.YOffset = 0; // this.YOffset = 0;
// this.CurPage = 0; // this.CurPage = 0;
// this.CurLines = 0; // this.CurLines = 0;
...@@ -2260,7 +2260,7 @@ function ParaEnd() ...@@ -2260,7 +2260,7 @@ function ParaEnd()
// this.TextDescent = 0; // this.TextDescent = 0;
// this.TextHeight = 0; // this.TextHeight = 0;
// this.TextAscent2 = 0; // this.TextAscent2 = 0;
this.YOffset = 0; // this.YOffset = 0;
this.Width = 0; this.Width = 0;
} }
......
...@@ -994,7 +994,8 @@ ParaRun.prototype = ...@@ -994,7 +994,8 @@ ParaRun.prototype =
{ {
// Сначала проверяем, если у нас уже есть таб, которым мы должны рассчитать, тогда высчитываем // Сначала проверяем, если у нас уже есть таб, которым мы должны рассчитать, тогда высчитываем
// его ширину. // его ширину.
this.Internal_Recalculate_LastTab(PRS);
X = this.Internal_Recalculate_LastTab(PRS.LastTab, X, XEnd, Word, WordLen, SpaceLen);
// Добавляем длину пробелов до слова + длина самого слова. Не надо проверять // Добавляем длину пробелов до слова + длина самого слова. Не надо проверять
// убирается ли слово, мы это проверяем при добавленнии букв. // убирается ли слово, мы это проверяем при добавленнии букв.
...@@ -1002,16 +1003,16 @@ ParaRun.prototype = ...@@ -1002,16 +1003,16 @@ ParaRun.prototype =
Word = false; Word = false;
SpaceLen = 0; SpaceLen = 0;
WordLen = 0; WordLen = 0;
//SpacesCount = 0;
var NewX = Para.Internal_GetTabPos(X, ParaPr); var TabPos = Para.Internal_GetTabPos(X, ParaPr, PRS.CurPage);
var NewX = TabPos.NewX;
// Если таб не левый (NewX < 0), значит он не может быть сразу рассчитан, а если левый, тогда // Если таб не левый (NewX < 0), значит он не может быть сразу рассчитан, а если левый, тогда
// рассчитываем его сразу здесь // рассчитываем его сразу здесь
if ( NewX < 0 ) if ( NewX < 0 )
{ {
PRS.LastTab.TabPos = -NewX; PRS.LastTab.TabPos = -NewX;
PRS.LastTab.Value = Tab.Value; PRS.LastTab.Value = TabPos.TabValue;
PRS.LastTab.X = X; PRS.LastTab.X = X;
PRS.LastTab.Item = Item; PRS.LastTab.Item = Item;
...@@ -1112,7 +1113,7 @@ ParaRun.prototype = ...@@ -1112,7 +1113,7 @@ ParaRun.prototype =
WordLen = 0; WordLen = 0;
} }
this.Internal_Recalculate_LastTab(PRS); X = this.Internal_Recalculate_LastTab(PRS.LastTab, X, XEnd, Word, WordLen, SpaceLen);
} }
NewRange = true; NewRange = true;
...@@ -1293,7 +1294,7 @@ ParaRun.prototype = ...@@ -1293,7 +1294,7 @@ ParaRun.prototype =
case para_Tab: case para_Tab:
{ {
PRSC.Range.W += Item.Width; PRSC.Range.W += Item.Width;
PRSC.Range.W += PRS2.SpaceLen; PRSC.Range.W += PRSC.SpaceLen;
// Учитываем только слова и пробелы, идущие после последнего таба // Учитываем только слова и пробелы, идущие после последнего таба
...@@ -1745,20 +1746,20 @@ ParaRun.prototype = ...@@ -1745,20 +1746,20 @@ ParaRun.prototype =
} }
}, },
Internal_Recalculate_LastTab : function(PRS) Internal_Recalculate_LastTab : function(LastTab, X, XEnd, Word, WordLen, SpaceLen)
{ {
if ( -1 !== PRS.LastTab.Value ) if ( -1 !== LastTab.Value )
{ {
var TempXPos = PRS.X; var TempXPos = X;
if ( true === PRS.Word || PRS.WordLen > 0 ) if ( true === Word || WordLen > 0 )
TempXPos += PRS.SpaceLen + PRS.WordLen; TempXPos += SpaceLen + WordLen;
var TabItem = PRS.LastTab.Item; var TabItem = LastTab.Item;
var TabStartX = PRS.LastTab.X; var TabStartX = LastTab.X;
var TabRangeW = TempXPos - TabStartX; var TabRangeW = TempXPos - TabStartX;
var TabValue = PRS.LastTab.Value; var TabValue = LastTab.Value;
var TabPos = PRS.LastTab.TabPos; var TabPos = LastTab.TabPos;
var TabCalcW = 0; var TabCalcW = 0;
if ( tab_Right === TabValue ) if ( tab_Right === TabValue )
...@@ -1766,16 +1767,18 @@ ParaRun.prototype = ...@@ -1766,16 +1767,18 @@ ParaRun.prototype =
else if ( tab_Center === TabValue ) else if ( tab_Center === TabValue )
TabCalcW = Math.max( TabPos - (TabStartX + TabRangeW / 2), 0 ); TabCalcW = Math.max( TabPos - (TabStartX + TabRangeW / 2), 0 );
if ( PRS.X + TabCalcW > PRS.XEnd ) if ( X + TabCalcW > XEnd )
TabCalcW = PRS.XEnd - PRS.X; TabCalcW = XEnd - X;
TabItem.Width = TabCalcW; TabItem.Width = TabCalcW;
TabItem.WidthVisible = TabCalcW; TabItem.WidthVisible = TabCalcW;
PRS.LastTab.Reset(); LastTab.Reset();
PRS.X += TabCalcW; return X + TabCalcW;
} }
return X;
}, },
Refresh_RecalcData : function(Data) Refresh_RecalcData : function(Data)
...@@ -2192,9 +2195,9 @@ ParaRun.prototype = ...@@ -2192,9 +2195,9 @@ ParaRun.prototype =
bFirstLineItem = false; bFirstLineItem = false;
if ( para_PageNum != Item.Type ) if ( para_PageNum != Item.Type )
Item.Draw( X, Y - Item.YOffset, pGraphics ); Item.Draw( X, Y - this.YOffset, pGraphics );
else else
Item.Draw( X, Y - Item.YOffset, pGraphics, Para.Get_StartPage_Absolute() + CurPage, Pr.ParaPr.Jc ); Item.Draw( X, Y - this.YOffset, pGraphics, Para.Get_StartPage_Absolute() + CurPage, Pr.ParaPr.Jc );
X += Item.WidthVisible; X += Item.WidthVisible;
} }
...@@ -2220,7 +2223,7 @@ ParaRun.prototype = ...@@ -2220,7 +2223,7 @@ ParaRun.prototype =
} }
case para_Space: case para_Space:
{ {
Item.Draw( X, Y - Item.YOffset, pGraphics ); Item.Draw( X, Y - this.YOffset, pGraphics );
X += Item.WidthVisible; X += Item.WidthVisible;
...@@ -2244,14 +2247,14 @@ ParaRun.prototype = ...@@ -2244,14 +2247,14 @@ ParaRun.prototype =
if ( null === Para.Get_DocumentNext() && true === Para.Parent.Is_TableCellContent() ) if ( null === Para.Get_DocumentNext() && true === Para.Parent.Is_TableCellContent() )
bEndCell = true; bEndCell = true;
Item.Draw( X, Y - Item.YOffset, pGraphics, bEndCell ); Item.Draw( X, Y - this.YOffset, pGraphics, bEndCell );
X += Item.Width; X += Item.Width;
break; break;
} }
case para_NewLine: case para_NewLine:
{ {
Item.Draw( X, Y - Item.YOffset, pGraphics ); Item.Draw( X, Y - this.YOffset, pGraphics );
X += Item.WidthVisible; X += Item.WidthVisible;
break; break;
} }
......
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