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

Реализовано добавление заливки текста. Сделано, чтобы AutoColor правильно...

Реализовано добавление заливки текста. Сделано, чтобы AutoColor правильно отрабатывал, когда есть заливка у текста.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@55925 954022d7-b5bf-4e40-9824-e11837661b57
parent 68a3e08a
......@@ -5710,48 +5710,57 @@ CDocument.prototype =
{
var StartPos = this.Selection.StartPos;
var EndPos = this.Selection.EndPos;
if ( EndPos < StartPos )
if ( StartPos === EndPos && type_Paragraph === this.Content[StartPos].GetType() && false === this.Content[StartPos].Selection_CheckParaEnd() )
{
var Temp = StartPos;
StartPos = EndPos;
EndPos = Temp;
this.Paragraph_Add( new ParaTextPr( { Shd : Shd } ) );
this.Recalculate();
}
for ( var Index = StartPos; Index <= EndPos; Index++ )
else
{
// При изменении цвета фона параграфа, не надо ничего пересчитывать
var Item = this.Content[Index];
if ( type_Paragraph == Item.GetType() )
Item.Set_Shd( Shd );
else if ( type_Table == Item.GetType() )
if ( EndPos < StartPos )
{
Item.TurnOff_RecalcEvent();
Item.Set_ParagraphShd( Shd );
Item.TurnOn_RecalcEvent();
var Temp = StartPos;
StartPos = EndPos;
EndPos = Temp;
}
}
// Нам надо определить какие страницы мы должны перерисовать
var PageStart = -1;
var PageEnd = -1;
for ( var Index = 0; Index < this.Pages.length - 1; Index++ )
{
if ( PageStart == -1 && StartPos <= this.Pages[Index + 1].Pos )
PageStart = Index;
for ( var Index = StartPos; Index <= EndPos; Index++ )
{
// При изменении цвета фона параграфа, не надо ничего пересчитывать
var Item = this.Content[Index];
if ( type_Paragraph == Item.GetType() )
Item.Set_Shd( Shd );
else if ( type_Table == Item.GetType() )
{
Item.TurnOff_RecalcEvent();
Item.Set_ParagraphShd( Shd );
Item.TurnOn_RecalcEvent();
}
}
if ( PageEnd == -1 && EndPos < this.Pages[Index + 1].Pos )
PageEnd = Index;
}
// Нам надо определить какие страницы мы должны перерисовать
var PageStart = -1;
var PageEnd = -1;
for ( var Index = 0; Index < this.Pages.length - 1; Index++ )
{
if ( PageStart == -1 && StartPos <= this.Pages[Index + 1].Pos )
PageStart = Index;
if ( -1 === PageStart )
PageStart = this.Pages.length - 1;
if ( -1 === PageEnd )
PageEnd = this.Pages.length - 1;
if ( PageEnd == -1 && EndPos < this.Pages[Index + 1].Pos )
PageEnd = Index;
}
if ( -1 === PageStart )
PageStart = this.Pages.length - 1;
if ( -1 === PageEnd )
PageEnd = this.Pages.length - 1;
for ( var Index = PageStart; Index <= PageEnd; Index++ )
this.DrawingDocument.OnRecalculatePage( Index, this.Pages[Index] );
for ( var Index = PageStart; Index <= PageEnd; Index++ )
this.DrawingDocument.OnRecalculatePage( Index, this.Pages[Index] );
this.DrawingDocument.OnEndRecalculate(false, true);
this.DrawingDocument.OnEndRecalculate(false, true);
}
break;
}
......
......@@ -5271,28 +5271,37 @@ CDocumentContent.prototype =
{
var StartPos = this.Selection.StartPos;
var EndPos = this.Selection.EndPos;
if ( EndPos < StartPos )
if ( StartPos === EndPos && type_Paragraph === this.Content[StartPos].GetType() && false === this.Content[StartPos].Selection_CheckParaEnd() )
{
var Temp = StartPos;
StartPos = EndPos;
EndPos = Temp;
this.Paragraph_Add( new ParaTextPr( { Shd : Shd } ) );
this.Parent.OnContentRecalculate( false );
}
for ( var Index = StartPos; Index <= EndPos; Index++ )
else
{
// При изменении цвета фона параграфа, не надо ничего пересчитывать
var Item = this.Content[Index];
if ( type_Paragraph == Item.GetType() )
Item.Set_Shd( Shd );
else if ( type_Table == Item.GetType() )
if ( EndPos < StartPos )
{
Item.TurnOff_RecalcEvent();
Item.Set_ParagraphShd( Shd );
Item.TurnOn_RecalcEvent();
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_Shd( Shd );
else if ( type_Table == Item.GetType() )
{
Item.TurnOff_RecalcEvent();
Item.Set_ParagraphShd( Shd );
Item.TurnOn_RecalcEvent();
}
}
}
this.Parent.OnContentRecalculate( false );
this.Parent.OnContentRecalculate( false );
}
break;
}
......
This diff is collapsed.
......@@ -678,6 +678,9 @@ ParaRun.prototype =
{
// Нам надо выяснить заливку у родительского класса (возможно мы находимся в ячейке таблицы с забивкой)
BgColor = Para.Parent.Get_TextBackGroundColor();
if ( undefined !== CurTextPr.Shd && shd_Nil !== CurTextPr.Shd.Value )
BgColor = CurTextPr.Shd.Get_Color( this.Paragraph );
}
// Определим автоцвет относительно заливки
......@@ -2929,16 +2932,21 @@ ParaRun.prototype =
var Para = PDSE.Paragraph;
var pGraphics = PDSE.Graphics;
var AutoColor = PDSE.AutoColor;
var BgColor = PDSE.BgColor;
var Theme = PDSE.Theme;
var FontScheme = Theme.themeElements.fontScheme;
var X = PDSE.X;
var Y = PDSE.Y;
var CurTextPr = this.Get_CompiledPr( false );
pGraphics.SetTextPr( CurTextPr, Theme );
if ( undefined !== CurTextPr.Shd && shd_Nil !== CurTextPr.Shd.Value )
BgColor = CurTextPr.Shd.Get_Color( Para );
var AutoColor = ( undefined != BgColor && false === BgColor.Check_BlackAutoColor() ? new CDocumentColor( 255, 255, 255, false ) : new CDocumentColor( 0, 0, 0, false ) );
var RGBA;
if(CurTextPr.Unifill)
{
......@@ -3119,7 +3127,13 @@ ParaRun.prototype =
var UnderlineY = Y + UndOff;
var LineW = (CurTextPr.FontSize / 18) * g_dKoef_pt_to_mm;
var AutoColor = PDSL.AutoColor;
var BgColor = PDSL.BgColor;
if ( undefined !== CurTextPr.Shd && shd_Nil !== CurTextPr.Shd.Value )
BgColor = CurTextPr.Shd.Get_Color( Para );
var AutoColor = ( undefined != BgColor && false === BgColor.Check_BlackAutoColor() ? new CDocumentColor( 255, 255, 255, false ) : new CDocumentColor( 0, 0, 0, false ) );
var CurColor = new CDocumentColor( 0, 0, 0, false );
// Выставляем цвет обводки
......
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