Commit 0ce4aef9 authored by Oleg.Korshul's avatar Oleg.Korshul Committed by Alexander.Trofimov

модификаторы цветов

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@56443 954022d7-b5bf-4e40-9824-e11837661b57
parent 01334540
......@@ -4483,7 +4483,7 @@ function CorrectUniColorEx(asc_color, unicolor) {
if (ret.Mods.Mods.length != 0)
ret.Mods.Mods.splice(0, ret.Mods.Mods.length);
var __mods = g_oThemeColorsDefaultMods;
var __mods = null;
var _editor = window["Asc"]["editor"];
if (_editor && _editor.wbModel)
......@@ -4498,31 +4498,16 @@ function CorrectUniColorEx(asc_color, unicolor) {
var _rgba = {R:0, G:0, B:0, A:255};
_schemeClr.Calculate(_theme, _clrMap.color_map, _rgba);
var __r = _schemeClr.RGBA.R;
var __g = _schemeClr.RGBA.G;
var __b = _schemeClr.RGBA.B;
if (__r > 200 && __g > 200 && __b > 200)
__mods = g_oThemeColorsDefaultMods1;
else if (__r < 40 && __g < 40 && __b < 40)
__mods = g_oThemeColorsDefaultMods2;
}
}
if (1 <= _pos && _pos <= 5)
{
var _mods = __mods[_pos - 1];
var _ind = 0;
for (var k in _mods)
{
var mod = new CColorMod();
mod.setName(k);
mod.setVal(_mods[k]);
ret.addMod(mod);
_ind++;
__mods = GetDefaultMods(_schemeClr.RGBA.R, _schemeClr.RGBA.G, _schemeClr.RGBA.B, _pos, 0);
}
}
if (null != __mods)
{
for (var modInd = 0; modInd < __mods.length; modInd++)
ret.addMod(__mods[modInd]);
}
break;
}
......
......@@ -228,29 +228,144 @@ var g_oStandartColors = [
{R: 0x70, G: 0x30, B: 0xA0}
];
var g_oThemeColorsDefaultMods = [
{lumMod: 20000, lumOff: 80000},
{lumMod: 40000, lumOff: 60000},
{lumMod: 60000, lumOff: 40000},
{lumMod: 75000},
{lumMod: 50000}
var g_oThemeColorsDefaultModsWord = [
[
{ name : "shade", val : 0xF2 },
{ name : "shade", val : 0xD9 },
{ name : "shade", val : 0xBF },
{ name : "shade", val : 0xA6 },
{ name : "shade", val : 0x80 }
],
[
{ name : "shade", val : 0xE6 },
{ name : "shade", val : 0xBF },
{ name : "shade", val : 0x80 },
{ name : "shade", val : 0x40 },
{ name : "shade", val : 0x1A }
],
[
{ name : "tint", val : 0x33 },
{ name : "tint", val : 0x66 },
{ name : "tint", val : 0x99 },
{ name : "shade", val : 0xBF },
{ name : "shade", val : 0x80 }
],
[
{ name : "tint", val : 0x1A },
{ name : "tint", val : 0x40 },
{ name : "tint", val : 0x80 },
{ name : "tint", val : 0xBF },
{ name : "tint", val : 0xE6 }
],
[
{ name : "tint", val : 0x80 },
{ name : "tint", val : 0xA6 },
{ name : "tint", val : 0xBF },
{ name : "tint", val : 0xD9 },
{ name : "tint", val : 0xF2 }
]
];
var g_oThemeColorsDefaultMods1 = [
{lumMod: 95000},
{lumMod: 85000},
{lumMod: 75000},
{lumMod: 65000},
{lumMod: 50000}
var g_oThemeColorsDefaultModsPowerPoint = [
[
{ lumMod : 95000, lumOff : -1 },
{ lumMod : 85000, lumOff : -1 },
{ lumMod : 75000, lumOff : -1 },
{ lumMod : 65000, lumOff : -1 },
{ lumMod : 50000, lumOff : -1 }
],
[
{ lumMod : 90000, lumOff : -1 },
{ lumMod : 75000, lumOff : -1 },
{ lumMod : 50000, lumOff : -1 },
{ lumMod : 25000, lumOff : -1 },
{ lumMod : 10000, lumOff : -1 }
],
[
{ lumMod : 20000, lumOff : 80000 },
{ lumMod : 40000, lumOff : 60000 },
{ lumMod : 60000, lumOff : 40000 },
{ lumMod : 75000, lumOff : -1 },
{ lumMod : 50000, lumOff : -1 }
],
[
{ lumMod : 10000, lumOff : 90000 },
{ lumMod : 25000, lumOff : 75000 },
{ lumMod : 50000, lumOff : 50000 },
{ lumMod : 75000, lumOff : 25000 },
{ lumMod : 90000, lumOff : 10000 }
],
[
{ lumMod : 50000, lumOff : 50000 },
{ lumMod : 65000, lumOff : 35000 },
{ lumMod : 75000, lumOff : 25000 },
{ lumMod : 85000, lumOff : 15000 },
{ lumMod : 90000, lumOff : 5000 }
]
];
var g_oThemeColorsDefaultMods2 = [
{lumMod: 50000, lumOff: 50000},
{lumMod: 65000, lumOff: 35000},
{lumMod: 75000, lumOff: 25000},
{lumMod: 85000, lumOff: 15000},
{lumMod: 95000, lumOff: 5000}
];
/* 0..4 */
function GetDefaultColorModsIndex(r, g, b)
{
var L = (Math.max(r, Math.max(g, b)) + Math.min(r, Math.min(g, b))) / 2;
L /= 255;
if (L == 1)
return 0;
if (L >= 0.8)
return 1;
if (L >= 0.2)
return 2;
if (L > 0)
return 3;
return 4;
}
/* 0 - ppt, 1 - word, 2 - excel */
function GetDefaultMods(r, g, b, pos, editor_id)
{
if (pos < 1 || pos > 5)
return [];
var index = GetDefaultColorModsIndex(r, g, b);
if (editor_id == 0)
{
var _obj = g_oThemeColorsDefaultModsPowerPoint[index][pos - 1];
var _mods = [];
var _mod = null;
if (_obj.lumMod != -1)
{
_mod = new CColorMod();
_mod.name = "lumMod";
_mod.val = _obj.lumMod;
_mods.push(_mod);
}
if (_obj.lumOff != -1)
{
_mod = new CColorMod();
_mod.name = "lumOff";
_mod.val = _obj.lumOff;
_mods.push(_mod);
}
return _mods;
}
if (editor_id == 1)
{
var _obj = g_oThemeColorsDefaultModsWord[index][pos - 1];
var _mods = [];
var _mod = new CColorMod();
_mod.name = _obj.name;
_mod.val = (_obj.val * 100000 / 255) >> 0;
_mods.push(_mod);
return _mods;
}
// TODO: excel
return [];
}
var g_oUserColorScheme = new Array();
g_oUserColorScheme[0] = {
......
......@@ -4211,20 +4211,12 @@ function CDrawingDocument(drawingObjects)
_cur_index++;
// теперь с модификаторами
var _count_mods = g_oThemeColorsDefaultMods.length;
var _count_mods = 5;
for (var j = 0; j < _count_mods; ++j)
{
var _mods = g_oThemeColorsDefaultMods[j];
var dst_mods = new CColorModifiers();
var _ind = 0;
for (var k in _mods)
{
dst_mods.Mods[_ind] = new CColorMod();
dst_mods.Mods[_ind].name = k;
dst_mods.Mods[_ind].val = _mods[k];
_ind++;
}
dst_mods.Mods = GetDefaultMods(_color_src.r, _color_src.g, _color_src.b, j + 1, 0);
var _rgba = {R:_color_src.r, G: _color_src.g, B:_color_src.b, A: 255};
dst_mods.Apply(_rgba);
......
......@@ -2606,20 +2606,12 @@ function CDrawingDocument()
_cur_index++;
// теперь с модификаторами
var _count_mods = g_oThemeColorsDefaultMods.length;
var _count_mods = 5;
for (var j = 0; j < _count_mods; ++j)
{
var _mods = g_oThemeColorsDefaultMods[j];
var dst_mods = new CColorModifiers();
var _ind = 0;
for (var k in _mods)
{
dst_mods.Mods[_ind] = new CColorMod();
dst_mods.Mods[_ind].name = k;
dst_mods.Mods[_ind].val = _mods[k];
_ind++;
}
dst_mods.Mods = GetDefaultMods(_color_src.r, _color_src.g, _color_src.b, j + 1, 0);
var _rgba = {R:_color_src.r, G: _color_src.g, B:_color_src.b, A: 255};
dst_mods.Apply(_rgba);
......
......@@ -367,34 +367,19 @@ function CorrectUniColor(asc_color, unicolor)
if (ret.Mods.Mods.length != 0)
ret.Mods.Mods.splice(0, ret.Mods.Mods.length);
var __mods = g_oThemeColorsDefaultMods;
var __mods = null;
if (editor && editor.WordControl && editor.WordControl.m_oDrawingDocument && editor.WordControl.m_oDrawingDocument.GuiControlColorsMap)
{
var _map = editor.WordControl.m_oDrawingDocument.GuiControlColorsMap;
var __r = _map[_id].r;
var __g = _map[_id].g;
var __b = _map[_id].b;
if (__r > 200 && __g > 200 && __b > 200)
__mods = g_oThemeColorsDefaultMods1;
else if (__r < 40 && __g < 40 && __b < 40)
__mods = g_oThemeColorsDefaultMods2;
}
if (1 <= _pos && _pos <= 5)
{
var _mods = __mods[_pos - 1];
var _ind = 0;
for (var k in _mods)
{
ret.Mods.Mods[_ind] = new CColorMod();
ret.Mods.Mods[_ind].name = k;
ret.Mods.Mods[_ind].val = _mods[k];
_ind++;
}
__mods = GetDefaultMods(_map[_id].r, _map[_id].g, _map[_id].b, _pos, 0);
}
if (null != __mods)
{
for (var modInd = 0; modInd < __mods.length; modInd++)
ret.Mods.Mods[modInd] = __mods[modInd];
}
break;
}
......
......@@ -4571,27 +4571,13 @@ function CDrawingDocument()
_cur_index++;
// теперь с модификаторами
var _count_mods = g_oThemeColorsDefaultMods.length;
var _count_mods = 5;
for (var j = 0; j < _count_mods; ++j)
{
var _rgba = {R:_color_src.r, G: _color_src.g, B:_color_src.b, A: 255};
var _mods = g_oThemeColorsDefaultMods[j];
if (_rgba.R > 200 && _rgba.G > 200 && _rgba.B > 200)
_mods = g_oThemeColorsDefaultMods1[j];
else if (_rgba.R < 40 && _rgba.G < 40 && _rgba.B < 40)
_mods = g_oThemeColorsDefaultMods2[j];
var dst_mods = new CColorModifiers();
var _ind = 0;
for (var k in _mods)
{
dst_mods.Mods[_ind] = new CColorMod();
dst_mods.Mods[_ind].name = k;
dst_mods.Mods[_ind].val = _mods[k];
_ind++;
}
dst_mods.Mods = GetDefaultMods(_color_src.r, _color_src.g, _color_src.b, j + 1, 0);
var _rgba = {R:_color_src.r, G: _color_src.g, B:_color_src.b, A: 255};
dst_mods.Apply(_rgba);
_ret_array[_cur_index] = new CColor(_rgba.R, _rgba.G, _rgba.B);
......
......@@ -195,34 +195,19 @@ function CorrectUniColor(asc_color, unicolor)
if (ret.Mods.Mods.length != 0)
ret.Mods.Mods.splice(0, ret.Mods.Mods.length);
var __mods = g_oThemeColorsDefaultMods;
var __mods = null;
if (editor && editor.WordControl && editor.WordControl.m_oDrawingDocument && editor.WordControl.m_oDrawingDocument.GuiControlColorsMap)
{
var _map = editor.WordControl.m_oDrawingDocument.GuiControlColorsMap;
var __r = _map[_id].r;
var __g = _map[_id].g;
var __b = _map[_id].b;
if (__r > 200 && __g > 200 && __b > 200)
__mods = g_oThemeColorsDefaultMods1;
else if (__r < 40 && __g < 40 && __b < 40)
__mods = g_oThemeColorsDefaultMods2;
}
if (1 <= _pos && _pos <= 5)
{
var _mods = __mods[_pos - 1];
var _ind = 0;
for (var k in _mods)
{
ret.Mods.Mods[_ind] = new CColorMod();
ret.Mods.Mods[_ind].name = k;
ret.Mods.Mods[_ind].val = _mods[k];
_ind++;
}
__mods = GetDefaultMods(_map[_id].r, _map[_id].g, _map[_id].b, _pos, 0);
}
if (null != __mods)
{
for (var modInd = 0; modInd < __mods.length; modInd++)
ret.Mods.Mods[modInd] = __mods[modInd];
}
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