Commit 449d1400 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@68205 954022d7-b5bf-4e40-9824-e11837661b57
parent 4fe06fb2
......@@ -1082,6 +1082,7 @@ var historyitem_TableCell_Border_Bottom = 8; // Изменяем нижнюю
var historyitem_TableCell_VAlign = 9; // Изменяем вертикальное выравнивание ячейки
var historyitem_TableCell_W = 10; // Изменяем ширину ячейки
var historyitem_TableCell_Pr = 11; // Изменяем настройки целиком
var historyitem_TableCell_TextDirection = 12; // Изменяем направление текста
// Типы изменений в классе CDocumentContent
var historyitem_DocumentContent_AddItem = 1; // Добавляем элемент в документ
......
......@@ -59,6 +59,13 @@ var styletype_Numbering = 0x02;
var styletype_Table = 0x03;
var styletype_Character = 0x04;
var textdirection_LRTB = 0x00;
var textdirection_TBRL = 0x01;
var textdirection_BTLR = 0x02;
var textdirection_LRTBV = 0x03;
var textdirection_TBRLV = 0x04;
var textdirection_TBLRV = 0x05;
function IsEqualStyleObjects(Object1, Object2)
{
if (undefined === Object1 && undefined === Object2)
......@@ -6435,6 +6442,7 @@ function CTableCellPr()
this.TableCellW = undefined;
this.VAlign = undefined;
this.VMerge = undefined;
this.TextDirection = undefined;
}
CTableCellPr.prototype =
......@@ -6566,6 +6574,7 @@ CTableCellPr.prototype =
this.TableCellW = new CTableMeasurement(tblwidth_Auto, 0);
this.VAlign = vertalignjc_Top;
this.VMerge = vmerge_Restart;
this.TextDirection = textdirection_LRTB;
},
Set_FromObject : function(CellPr)
......@@ -6781,6 +6790,12 @@ CTableCellPr.prototype =
Flags |= 16384;
}
if (undefined !== this.TextDirection)
{
Writer.WriteLong( this.TextDirection );
Flags |= 32768;
}
var EndPos = Writer.GetCurPosition();
Writer.Seek( StartPos );
Writer.WriteLong( Flags );
......@@ -6865,6 +6880,9 @@ CTableCellPr.prototype =
if ( 16384 & Flags )
this.VMerge = Reader.GetLong();
if (32768 & Flags)
this.TextDirection = Reader.GetLong();
}
};
......
......@@ -635,7 +635,20 @@ CTableCell.prototype =
Content_Draw : function(PageIndex, pGraphics)
{
//pGraphics.SaveGrState();
//
//var PageBounds = this.Content.Get_PageBounds(0);
//
//var Transform = new CMatrix();
//global_MatrixTransformer.TranslateAppend(Transform, -this.Content.X, -this.Content.Y);
//global_MatrixTransformer.RotateRadAppend(Transform, 0.5 * Math.PI);
//global_MatrixTransformer.TranslateAppend(Transform, this.Content.X, this.Content.Y);
//global_MatrixTransformer.TranslateAppend(Transform, 0, this.Content.XLimit - this.Content.X);
//pGraphics.transform3(Transform);
this.Content.Draw(PageIndex, pGraphics);
//pGraphics.RestoreGrState();
},
Recalculate : function()
......@@ -1089,6 +1102,21 @@ CTableCell.prototype =
}
},
Get_TextDirection : function()
{
return this.Get_CompiledPr(false).TextDirection;
},
Set_TextDirection : function(Value)
{
if (Value !== this.Pr.TextDirection)
{
History.Add(this, {Type : historyitem_TableCell_TextDirection, Old : this.Pr.TextDirection, New : Value});
this.Pr.TextDirection = Value;
this.Recalc_CompiledPr();
}
},
Get_Borders : function()
{
var CellBorders =
......@@ -1427,6 +1455,13 @@ CTableCell.prototype =
this.Recalc_CompiledPr();
break;
}
case historyitem_TableCell_TextDirection:
{
this.Pr.TextDirection = Data.Old;
this.Recalc_CompiledPr();
break;
}
}
},
......@@ -1552,6 +1587,12 @@ CTableCell.prototype =
this.Recalc_CompiledPr();
break;
}
case historyitem_TableCell_TextDirection:
{
this.Pr.TextDirection = Data.New;
this.Recalc_CompiledPr();
break;
}
}
},
......@@ -1577,6 +1618,7 @@ CTableCell.prototype =
case historyitem_TableCell_VAlign:
case historyitem_TableCell_W:
case historyitem_TableCell_Pr:
case historyitem_TableCell_TextDirection:
{
bNeedRecalc = true;
break;
......@@ -1787,6 +1829,20 @@ CTableCell.prototype =
Data.New.Write_ToBinary( Writer );
break;
}
case historyitem_TableCell_TextDirection:
{
// Bool : IsUndefined
// Если false
// Long : textDirection
if (undefined === Data.New)
Writer.WriteBool(true);
else
{
Writer.WriteBool(false);
Writer.WriteLong(Data.New);
}
}
}
return Writer;
......@@ -2062,6 +2118,20 @@ CTableCell.prototype =
this.Recalc_CompiledPr();
break;
}
case historyitem_TableCell_TextDirection:
{
// Bool : IsUndefined
// Если false
// Long : textDirection
if (true === Reader.GetBool())
this.Pr.TextDirection = undefined;
else
this.Pr.TextDirection = Reader.GetLong();
this.Recalc_CompiledPr();
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