Commit 0221f7f1 authored by Sergey.Luzyanin's avatar Sergey.Luzyanin Committed by Alexander.Trofimov

добавлено свойство AutoColor в CDocumentColor чтобы не было рассинхронизации...

добавлено свойство AutoColor в CDocumentColor чтобы не было рассинхронизации при чтении и записи из бинарника

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@52125 954022d7-b5bf-4e40-9824-e11837661b57
parent 201be8e5
...@@ -2607,18 +2607,20 @@ CStyles.prototype = ...@@ -2607,18 +2607,20 @@ CStyles.prototype =
} }
}; };
function CDocumentColor(r,g,b) function CDocumentColor(r,g,b, Auto)
{ {
this.r = r; this.r = r;
this.g = g; this.g = g;
this.b = b; this.b = b;
this.Auto = ( Auto === undefined ? false : Auto );
} }
CDocumentColor.prototype = CDocumentColor.prototype =
{ {
Copy : function() Copy : function()
{ {
return new CDocumentColor(this.r, this.g, this.b); return new CDocumentColor(this.r, this.g, this.b, this.Auto);
}, },
Write_ToBinary : function(Writer) Write_ToBinary : function(Writer)
...@@ -2626,10 +2628,12 @@ CDocumentColor.prototype = ...@@ -2626,10 +2628,12 @@ CDocumentColor.prototype =
// Byte : r // Byte : r
// Byte : g // Byte : g
// Byte : b // Byte : b
// Bool : Auto
Writer.WriteByte( this.r ); Writer.WriteByte( this.r );
Writer.WriteByte( this.g ); Writer.WriteByte( this.g );
Writer.WriteByte( this.b ); Writer.WriteByte( this.b );
Writer.WriteBool( this.Auto );
}, },
Read_FromBinary : function(Reader) Read_FromBinary : function(Reader)
...@@ -2637,25 +2641,39 @@ CDocumentColor.prototype = ...@@ -2637,25 +2641,39 @@ CDocumentColor.prototype =
// Byte : r // Byte : r
// Byte : g // Byte : g
// Byte : b // Byte : b
// Bool : Auto
this.r = Reader.GetByte(); this.r = Reader.GetByte();
this.g = Reader.GetByte(); this.g = Reader.GetByte();
this.b = Reader.GetByte(); this.b = Reader.GetByte();
this.Auto = Reader.GetBool();
}, },
Set : function(r, g, b) Set : function(r, g, b, Auto)
{ {
this.r = r; this.r = r;
this.g = g; this.g = g;
this.b = b; this.b = b;
this.Auto = ( Auto === undefined ? false : Auto );
}, },
Compare : function(Color) Compare : function(Color)
{ {
if ( this.r === Color.r && this.g === Color.g && this.b === Color.b ) if ( this.r === Color.r && this.g === Color.g && this.b === Color.b && ( this.Auto === Color.Auto || ( false === this.Auto && Color.Auto === undefined ) ) )
return true; return true;
return false; return false;
},
Check_BlackAutoColor : function()
{
// TODO: Коэффициенты подобраны опытным путем. В некоторых "пограничных" случаях
// может быть несовпадение с Word (когда изменение на 1 одного из каналов
// меняет цвет), чтобы такого не было надо более точно подобрать коэффициенты.
if ( 0.5 * this.r + this.g + 0.195 * this.b < 103 )
return false;
return true;
} }
}; };
......
...@@ -2666,18 +2666,20 @@ CStyles.prototype = ...@@ -2666,18 +2666,20 @@ CStyles.prototype =
} }
}; };
function CDocumentColor(r,g,b) function CDocumentColor(r,g,b, Auto)
{ {
this.r = r; this.r = r;
this.g = g; this.g = g;
this.b = b; this.b = b;
this.Auto = ( Auto === undefined ? false : Auto );
} }
CDocumentColor.prototype = CDocumentColor.prototype =
{ {
Copy : function() Copy : function()
{ {
return new CDocumentColor(this.r, this.g, this.b); return new CDocumentColor(this.r, this.g, this.b, this.Auto);
}, },
Write_ToBinary : function(Writer) Write_ToBinary : function(Writer)
...@@ -2685,10 +2687,12 @@ CDocumentColor.prototype = ...@@ -2685,10 +2687,12 @@ CDocumentColor.prototype =
// Byte : r // Byte : r
// Byte : g // Byte : g
// Byte : b // Byte : b
// Bool : Auto
Writer.WriteByte( this.r ); Writer.WriteByte( this.r );
Writer.WriteByte( this.g ); Writer.WriteByte( this.g );
Writer.WriteByte( this.b ); Writer.WriteByte( this.b );
Writer.WriteBool( this.Auto );
}, },
Read_FromBinary : function(Reader) Read_FromBinary : function(Reader)
...@@ -2696,25 +2700,39 @@ CDocumentColor.prototype = ...@@ -2696,25 +2700,39 @@ CDocumentColor.prototype =
// Byte : r // Byte : r
// Byte : g // Byte : g
// Byte : b // Byte : b
// Bool : Auto
this.r = Reader.GetByte(); this.r = Reader.GetByte();
this.g = Reader.GetByte(); this.g = Reader.GetByte();
this.b = Reader.GetByte(); this.b = Reader.GetByte();
this.Auto = Reader.GetBool();
}, },
Set : function(r, g, b) Set : function(r, g, b, Auto)
{ {
this.r = r; this.r = r;
this.g = g; this.g = g;
this.b = b; this.b = b;
this.Auto = ( Auto === undefined ? false : Auto );
}, },
Compare : function(Color) Compare : function(Color)
{ {
if ( this.r === Color.r && this.g === Color.g && this.b === Color.b ) if ( this.r === Color.r && this.g === Color.g && this.b === Color.b && ( this.Auto === Color.Auto || ( false === this.Auto && Color.Auto === undefined ) ) )
return true; return true;
return false; return false;
},
Check_BlackAutoColor : function()
{
// TODO: Коэффициенты подобраны опытным путем. В некоторых "пограничных" случаях
// может быть несовпадение с Word (когда изменение на 1 одного из каналов
// меняет цвет), чтобы такого не было надо более точно подобрать коэффициенты.
if ( 0.5 * this.r + this.g + 0.195 * this.b < 103 )
return false;
return true;
} }
}; };
......
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