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 = ...@@ -5710,48 +5710,57 @@ CDocument.prototype =
{ {
var StartPos = this.Selection.StartPos; var StartPos = this.Selection.StartPos;
var EndPos = this.Selection.EndPos; 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; this.Paragraph_Add( new ParaTextPr( { Shd : Shd } ) );
StartPos = EndPos; this.Recalculate();
EndPos = Temp;
} }
else
for ( var Index = StartPos; Index <= EndPos; Index++ )
{ {
// При изменении цвета фона параграфа, не надо ничего пересчитывать if ( EndPos < StartPos )
var Item = this.Content[Index];
if ( type_Paragraph == Item.GetType() )
Item.Set_Shd( Shd );
else if ( type_Table == Item.GetType() )
{ {
Item.TurnOff_RecalcEvent(); var Temp = StartPos;
Item.Set_ParagraphShd( Shd ); StartPos = EndPos;
Item.TurnOn_RecalcEvent(); EndPos = Temp;
} }
}
// Нам надо определить какие страницы мы должны перерисовать for ( var Index = StartPos; Index <= EndPos; Index++ )
var PageStart = -1; {
var PageEnd = -1; // При изменении цвета фона параграфа, не надо ничего пересчитывать
for ( var Index = 0; Index < this.Pages.length - 1; Index++ ) var Item = this.Content[Index];
{ if ( type_Paragraph == Item.GetType() )
if ( PageStart == -1 && StartPos <= this.Pages[Index + 1].Pos ) Item.Set_Shd( Shd );
PageStart = Index; 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 ) if ( PageEnd == -1 && EndPos < this.Pages[Index + 1].Pos )
PageStart = this.Pages.length - 1; PageEnd = Index;
if ( -1 === PageEnd ) }
PageEnd = this.Pages.length - 1;
if ( -1 === PageStart )
PageStart = this.Pages.length - 1;
if ( -1 === PageEnd )
PageEnd = this.Pages.length - 1;
for ( var Index = PageStart; Index <= PageEnd; Index++ ) for ( var Index = PageStart; Index <= PageEnd; Index++ )
this.DrawingDocument.OnRecalculatePage( Index, this.Pages[Index] ); this.DrawingDocument.OnRecalculatePage( Index, this.Pages[Index] );
this.DrawingDocument.OnEndRecalculate(false, true); this.DrawingDocument.OnEndRecalculate(false, true);
}
break; break;
} }
......
...@@ -5271,28 +5271,37 @@ CDocumentContent.prototype = ...@@ -5271,28 +5271,37 @@ CDocumentContent.prototype =
{ {
var StartPos = this.Selection.StartPos; var StartPos = this.Selection.StartPos;
var EndPos = this.Selection.EndPos; 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; this.Paragraph_Add( new ParaTextPr( { Shd : Shd } ) );
StartPos = EndPos; this.Parent.OnContentRecalculate( false );
EndPos = Temp;
} }
else
for ( var Index = StartPos; Index <= EndPos; Index++ )
{ {
// При изменении цвета фона параграфа, не надо ничего пересчитывать if ( EndPos < StartPos )
var Item = this.Content[Index];
if ( type_Paragraph == Item.GetType() )
Item.Set_Shd( Shd );
else if ( type_Table == Item.GetType() )
{ {
Item.TurnOff_RecalcEvent(); var Temp = StartPos;
Item.Set_ParagraphShd( Shd ); StartPos = EndPos;
Item.TurnOn_RecalcEvent(); 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; break;
} }
......
This diff is collapsed.
...@@ -678,6 +678,9 @@ ParaRun.prototype = ...@@ -678,6 +678,9 @@ ParaRun.prototype =
{ {
// Нам надо выяснить заливку у родительского класса (возможно мы находимся в ячейке таблицы с забивкой) // Нам надо выяснить заливку у родительского класса (возможно мы находимся в ячейке таблицы с забивкой)
BgColor = Para.Parent.Get_TextBackGroundColor(); 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 = ...@@ -2929,16 +2932,21 @@ ParaRun.prototype =
var Para = PDSE.Paragraph; var Para = PDSE.Paragraph;
var pGraphics = PDSE.Graphics; var pGraphics = PDSE.Graphics;
var AutoColor = PDSE.AutoColor; var BgColor = PDSE.BgColor;
var Theme = PDSE.Theme; var Theme = PDSE.Theme;
var FontScheme = Theme.themeElements.fontScheme; var FontScheme = Theme.themeElements.fontScheme;
var X = PDSE.X; var X = PDSE.X;
var Y = PDSE.Y; var Y = PDSE.Y;
var CurTextPr = this.Get_CompiledPr( false ); var CurTextPr = this.Get_CompiledPr( false );
pGraphics.SetTextPr( CurTextPr, Theme ); 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; var RGBA;
if(CurTextPr.Unifill) if(CurTextPr.Unifill)
{ {
...@@ -3119,7 +3127,13 @@ ParaRun.prototype = ...@@ -3119,7 +3127,13 @@ ParaRun.prototype =
var UnderlineY = Y + UndOff; var UnderlineY = Y + UndOff;
var LineW = (CurTextPr.FontSize / 18) * g_dKoef_pt_to_mm; 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 ); 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