summaryrefslogtreecommitdiffstats
path: root/ksvg/impl/SVGColorImpl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ksvg/impl/SVGColorImpl.cc')
-rw-r--r--ksvg/impl/SVGColorImpl.cc540
1 files changed, 0 insertions, 540 deletions
diff --git a/ksvg/impl/SVGColorImpl.cc b/ksvg/impl/SVGColorImpl.cc
deleted file mode 100644
index 799c43ec..00000000
--- a/ksvg/impl/SVGColorImpl.cc
+++ /dev/null
@@ -1,540 +0,0 @@
-/*
- Copyright (C) 2001-2003 KSVG Team
- This file is part of the KDE project
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option); any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#include <kdebug.h>
-
-#include <tqstringlist.h>
-
-#include "SVGColor.h"
-
-#include "SVGColorImpl.h"
-#include "SVGNumberImpl.h"
-#include "SVGICCColorImpl.h"
-#include "SVGDocumentImpl.h"
-#include "SVGSVGElementImpl.h"
-#include "SVGNumberListImpl.h"
-#include "SVGURIReferenceImpl.h"
-#include "SVGColorProfileElementImpl.h"
-
-using namespace KSVG;
-
-#include "SVGColorImpl.lut.h"
-#include "ksvg_scriptinterpreter.h"
-#include "ksvg_bridge.h"
-#include "ksvg_cacheimpl.h"
-
-SVGColorImpl::SVGColorImpl(SVGElementImpl *object) : m_object(object)
-{
- m_colorType = SVG_COLORTYPE_UNKNOWN;
- m_iccColor = 0;
-}
-
-SVGColorImpl::SVGColorImpl(const SVGColorImpl &other) : DOM::DomShared()
-{
- (*this) = other;
-}
-
-SVGColorImpl::~SVGColorImpl()
-{
- if(m_iccColor)
- m_iccColor->deref();
-}
-
-SVGColorImpl &SVGColorImpl::operator=(const SVGColorImpl &other)
-{
- m_colorType = other.m_colorType;
- m_rgbColor = other.m_rgbColor;
-
- if(m_iccColor && other.m_iccColor)
- *m_iccColor = *(other.m_iccColor);
-
- return *this;
-}
-
-unsigned short SVGColorImpl::colorType() const
-{
- return m_colorType;
-}
-
-DOM::RGBColor SVGColorImpl::rgbColor() const
-{
- return m_rgbColor;
-}
-
-SVGICCColorImpl *SVGColorImpl::iccColor() const
-{
- return m_iccColor;
-}
-
-void SVGColorImpl::setRGBColor(TQColor color)
-{
- m_colorType = SVG_COLORTYPE_RGBCOLOR;
- m_rgbColor = DOM::RGBColor(color.rgb());
-}
-
-void SVGColorImpl::setRGBColor(int r, int g, int b)
-{
- m_colorType = SVG_COLORTYPE_RGBCOLOR;
- m_rgbColor = DOM::RGBColor(TQColor(r, g, b).rgb());
-}
-
-void SVGColorImpl::setRGBColor(const DOM::DOMString &rgbColor)
-{
- if(rgbColor == "aliceblue")
- setRGBColor(240, 248, 255);
- else if(rgbColor == "antiquewhite")
- setRGBColor(250, 235, 215);
- else if(rgbColor == "aqua")
- setRGBColor(0, 255, 255);
- else if(rgbColor == "aquamarine")
- setRGBColor(127, 255, 212);
- else if(rgbColor == "azure")
- setRGBColor(240, 255, 255);
- else if(rgbColor == "beige")
- setRGBColor(245, 245, 220);
- else if(rgbColor == "bisque")
- setRGBColor(255, 228, 196);
- else if(rgbColor == "black")
- setRGBColor(0, 0, 0);
- else if(rgbColor == "blanchedalmond")
- setRGBColor(255, 235, 205);
- else if(rgbColor == "blue")
- setRGBColor(0, 0, 255);
- else if(rgbColor == "blueviolet")
- setRGBColor(138, 43, 226);
- else if(rgbColor == "brown")
- setRGBColor(165, 42, 42);
- else if(rgbColor == "burlywood")
- setRGBColor(222, 184, 135);
- else if(rgbColor == "cadetblue")
- setRGBColor(95, 158, 160);
- else if(rgbColor == "chartreuse")
- setRGBColor(127, 255, 0);
- else if(rgbColor == "chocolate")
- setRGBColor(210, 105, 30);
- else if(rgbColor == "coral")
- setRGBColor(255, 127, 80);
- else if(rgbColor == "cornflowerblue")
- setRGBColor(100, 149, 237);
- else if(rgbColor == "cornsilk")
- setRGBColor(255, 248, 220);
- else if(rgbColor == "crimson")
- setRGBColor(220, 20, 60);
- else if(rgbColor == "cyan")
- setRGBColor(0, 255, 255);
- else if(rgbColor == "darkblue")
- setRGBColor(0, 0, 139);
- else if(rgbColor == "darkcyan")
- setRGBColor(0, 139, 139);
- else if(rgbColor == "darkgoldenrod")
- setRGBColor(184, 134, 11);
- else if(rgbColor == "darkgray")
- setRGBColor(169, 169, 169);
- else if(rgbColor == "darkgrey")
- setRGBColor(169, 169, 169);
- else if(rgbColor == "darkgreen")
- setRGBColor(0, 100, 0);
- else if(rgbColor == "darkkhaki")
- setRGBColor(189, 183, 107);
- else if(rgbColor == "darkmagenta")
- setRGBColor(139, 0, 139);
- else if(rgbColor == "darkolivegreen")
- setRGBColor(85, 107, 47);
- else if(rgbColor == "darkorange")
- setRGBColor(255, 140, 0);
- else if(rgbColor == "darkorchid")
- setRGBColor(153, 50, 204);
- else if(rgbColor == "darkred")
- setRGBColor(139, 0, 0);
- else if(rgbColor == "darksalmon")
- setRGBColor(233, 150, 122);
- else if(rgbColor == "darkseagreen")
- setRGBColor(143, 188, 143);
- else if(rgbColor == "darkslateblue")
- setRGBColor(72, 61, 139);
- else if(rgbColor == "darkslategray")
- setRGBColor(47, 79, 79);
- else if(rgbColor == "darkslategrey")
- setRGBColor(47, 79, 79);
- else if(rgbColor == "darkturquoise")
- setRGBColor(0, 206, 209);
- else if(rgbColor == "darkviolet")
- setRGBColor(148, 0, 211);
- else if(rgbColor == "deeppink")
- setRGBColor(255, 20, 147);
- else if(rgbColor == "deepskyblue")
- setRGBColor(0, 191, 255);
- else if(rgbColor == "dimgray")
- setRGBColor(105, 105, 105);
- else if(rgbColor == "dimgrey")
- setRGBColor(105, 105, 105);
- else if(rgbColor == "dodgerblue")
- setRGBColor(30, 144, 255);
- else if(rgbColor == "firebrick")
- setRGBColor(178, 34, 34);
- else if(rgbColor == "floralwhite")
- setRGBColor(255, 250, 240);
- else if(rgbColor == "forestgreen")
- setRGBColor(34, 139, 34);
- else if(rgbColor == "fuchsia")
- setRGBColor(255, 0, 255);
- else if(rgbColor == "gainsboro")
- setRGBColor(220, 220, 220);
- else if(rgbColor == "ghostwhite")
- setRGBColor(248, 248, 255);
- else if(rgbColor == "gold")
- setRGBColor(255, 215, 0);
- else if(rgbColor == "goldenrod")
- setRGBColor(218, 165, 32);
- else if(rgbColor == "gray")
- setRGBColor(128, 128, 128);
- else if(rgbColor == "grey")
- setRGBColor(128, 128, 128);
- else if(rgbColor == "green")
- setRGBColor(0, 128, 0);
- else if(rgbColor == "greenyellow")
- setRGBColor(173, 255, 47);
- else if(rgbColor == "honeydew")
- setRGBColor(240, 255, 240);
- else if(rgbColor == "hotpink")
- setRGBColor(255, 105, 180);
- else if(rgbColor == "indianred")
- setRGBColor(205, 92, 92);
- else if(rgbColor == "indigo")
- setRGBColor(75, 0, 130);
- else if(rgbColor == "ivory")
- setRGBColor(255, 255, 240);
- else if(rgbColor == "khaki")
- setRGBColor(240, 230, 140);
- else if(rgbColor == "lavender")
- setRGBColor(230, 230, 250);
- else if(rgbColor == "lavenderblush")
- setRGBColor(255, 240, 245);
- else if(rgbColor == "lawngreen")
- setRGBColor(124, 252, 0);
- else if(rgbColor == "lemonchiffon")
- setRGBColor(255, 250, 205);
- else if(rgbColor == "lightblue")
- setRGBColor(173, 216, 230);
- else if(rgbColor == "lightcoral")
- setRGBColor(240, 128, 128);
- else if(rgbColor == "lightcyan")
- setRGBColor(224, 255, 255);
- else if(rgbColor == "lightgoldenrodyellow")
- setRGBColor(250, 250, 210);
- else if(rgbColor == "lightgray")
- setRGBColor(211, 211, 211);
- else if(rgbColor == "lightgrey")
- setRGBColor(211, 211, 211);
- else if(rgbColor == "lightgreen")
- setRGBColor(144, 238, 144);
- else if(rgbColor == "lightpink")
- setRGBColor(255, 182, 193);
- else if(rgbColor == "lightsalmon")
- setRGBColor(255, 160, 122);
- else if(rgbColor == "lightseagreen")
- setRGBColor(32, 178, 170);
- else if(rgbColor == "lightskyblue")
- setRGBColor(135, 206, 250);
- else if(rgbColor == "lightslategray")
- setRGBColor(119, 136, 153);
- else if(rgbColor == "lightslategrey")
- setRGBColor(119, 136, 153);
- else if(rgbColor == "lightsteelblue")
- setRGBColor(176, 196, 222);
- else if(rgbColor == "lightyellow")
- setRGBColor(255, 255, 224);
- else if(rgbColor == "lime")
- setRGBColor(0, 255, 0);
- else if(rgbColor == "limegreen")
- setRGBColor(50, 205, 50);
- else if(rgbColor == "linen")
- setRGBColor(250, 240, 230);
- else if(rgbColor == "magenta")
- setRGBColor(255, 0, 255);
- else if(rgbColor == "maroon")
- setRGBColor(128, 0, 0);
- else if(rgbColor == "mediumaquamarine")
- setRGBColor(102, 205, 170);
- else if(rgbColor == "mediumblue")
- setRGBColor(0, 0, 205);
- else if(rgbColor == "mediumorchid")
- setRGBColor(186, 85, 211);
- else if(rgbColor == "mediumpurple")
- setRGBColor(147, 112, 219);
- else if(rgbColor == "mediumseagreen")
- setRGBColor(60, 179, 113);
- else if(rgbColor == "mediumslateblue")
- setRGBColor(123, 104, 238);
- else if(rgbColor == "mediumspringgreen")
- setRGBColor(0, 250, 154);
- else if(rgbColor == "mediumturquoise")
- setRGBColor(72, 209, 204);
- else if(rgbColor == "mediumvioletred")
- setRGBColor(199, 21, 133);
- else if(rgbColor == "midnightblue")
- setRGBColor(25, 25, 112);
- else if(rgbColor == "mintcream")
- setRGBColor(245, 255, 250);
- else if(rgbColor == "mistyrose")
- setRGBColor(255, 228, 225);
- else if(rgbColor == "moccasin")
- setRGBColor(255, 228, 181);
- else if(rgbColor == "navajowhite")
- setRGBColor(255, 222, 173);
- else if(rgbColor == "navy")
- setRGBColor(0, 0, 128);
- else if(rgbColor == "oldlace")
- setRGBColor(253, 245, 230);
- else if(rgbColor == "olive")
- setRGBColor(128, 128, 0);
- else if(rgbColor == "olivedrab")
- setRGBColor(107, 142, 35);
- else if(rgbColor == "orange")
- setRGBColor(255, 165, 0);
- else if(rgbColor == "orangered")
- setRGBColor(255, 69, 0);
- else if(rgbColor == "orchid")
- setRGBColor(218, 112, 214);
- else if(rgbColor == "palegoldenrod")
- setRGBColor(238, 232, 170);
- else if(rgbColor == "palegreen")
- setRGBColor(152, 251, 152);
- else if(rgbColor == "paleturquoise")
- setRGBColor(175, 238, 238);
- else if(rgbColor == "palevioletred")
- setRGBColor(219, 112, 147);
- else if(rgbColor == "papayawhip")
- setRGBColor(255, 239, 213);
- else if(rgbColor == "peachpuff")
- setRGBColor(255, 218, 185);
- else if(rgbColor == "peru")
- setRGBColor(205, 133, 63);
- else if(rgbColor == "pink")
- setRGBColor(255, 192, 203);
- else if(rgbColor == "plum")
- setRGBColor(221, 160, 221);
- else if(rgbColor == "powderblue")
- setRGBColor(176, 224, 230);
- else if(rgbColor == "purple")
- setRGBColor(128, 0, 128);
- else if(rgbColor == "red")
- setRGBColor(255, 0, 0);
- else if(rgbColor == "rosybrown")
- setRGBColor(188, 143, 143);
- else if(rgbColor == "royalblue")
- setRGBColor(65, 105, 225);
- else if(rgbColor == "saddlebrown")
- setRGBColor(139, 69, 19);
- else if(rgbColor == "salmon")
- setRGBColor(250, 128, 114);
- else if(rgbColor == "sandybrown")
- setRGBColor(244, 164, 96);
- else if(rgbColor == "seagreen")
- setRGBColor(46, 139, 87);
- else if(rgbColor == "seashell")
- setRGBColor(255, 245, 238);
- else if(rgbColor == "sienna")
- setRGBColor(160, 82, 45);
- else if(rgbColor == "silver")
- setRGBColor(192, 192, 192);
- else if(rgbColor == "skyblue")
- setRGBColor(135, 206, 235);
- else if(rgbColor == "slateblue")
- setRGBColor(106, 90, 205);
- else if(rgbColor == "slategray")
- setRGBColor(112, 128, 144);
- else if(rgbColor == "slategrey")
- setRGBColor(112, 128, 144);
- else if(rgbColor == "snow")
- setRGBColor(255, 250, 250);
- else if(rgbColor == "springgreen")
- setRGBColor(0, 255, 127);
- else if(rgbColor == "steelblue")
- setRGBColor(70, 130, 180);
- else if(rgbColor == "tan")
- setRGBColor(210, 180, 140);
- else if(rgbColor == "teal")
- setRGBColor(0, 128, 128);
- else if(rgbColor == "thistle")
- setRGBColor(216, 191, 216);
- else if(rgbColor == "tomato")
- setRGBColor(255, 99, 71);
- else if(rgbColor == "turquoise")
- setRGBColor(64, 224, 208);
- else if(rgbColor == "violet")
- setRGBColor(238, 130, 238);
- else if(rgbColor == "wheat")
- setRGBColor(245, 222, 179);
- else if(rgbColor == "white")
- setRGBColor(255, 255, 255);
- else if(rgbColor == "whitesmoke")
- setRGBColor(245, 245, 245);
- else if(rgbColor == "yellow")
- setRGBColor(255, 255, 0);
- else if(rgbColor == "yellowgreen")
- setRGBColor(154, 205, 50);
-}
-
-void SVGColorImpl::setRGBColorICCColor(const DOM::DOMString &rgbColor, const DOM::DOMString &iccColor)
-{
- TQColor color;
-
- TQString content = iccColor.string().right(iccColor.string().length() - 10);
- TQString iccTarget = content.mid(0, content.find(','));
-
- TQStringList colors = TQStringList::split(',', content);
- TQString r = colors[1];
- TQString g = colors[2];
- TQString b = colors[3].left(colors[3].length() - 1);
-
- iccTarget = SVGURIReferenceImpl::getTarget(iccTarget);
-
- SVGColorProfileElementImpl *handle = 0;
- if(m_object)
- handle = static_cast<SVGColorProfileElementImpl *>(dynamic_cast<SVGElementImpl *>(m_object)->ownerDoc()->rootElement()->getElementById(iccTarget));
-
- if(iccTarget.isEmpty() || !handle)
- {
- color.setNamedColor(rgbColor.string().stripWhiteSpace());
- setRGBColor(color);
- }
- else
- {
- color.setRgb(handle->correctPixel(r.toFloat() * 257, g.toFloat() * 257, b.toFloat() * 257));
- setRGBColor(color);
-
- m_colorType = SVG_COLORTYPE_RGBCOLOR_ICCCOLOR;
-
- if(!m_iccColor)
- {
- m_iccColor = new SVGICCColorImpl();
- m_iccColor->ref();
- }
-
- m_iccColor->setColorProfile(DOM::DOMString(content));
-
- SVGNumberImpl *rnumber = SVGSVGElementImpl::createSVGNumber();
- rnumber->setValue(r.toFloat());
-
- SVGNumberImpl *gnumber = SVGSVGElementImpl::createSVGNumber();
- gnumber->setValue(g.toFloat());
-
- SVGNumberImpl *bnumber = SVGSVGElementImpl::createSVGNumber();
- bnumber->setValue(b.toFloat());
-
- m_iccColor->colors()->clear();
- m_iccColor->colors()->appendItem(bnumber);
- m_iccColor->colors()->appendItem(gnumber);
- m_iccColor->colors()->appendItem(rnumber);
- }
-}
-
-void SVGColorImpl::setColor(unsigned short colorType, const DOM::DOMString &rgbColor, const DOM::DOMString &iccColor)
-{
- m_colorType = colorType;
-
- if(m_colorType == SVG_COLORTYPE_UNKNOWN || m_colorType == SVG_COLORTYPE_CURRENTCOLOR)
- return;
-
- setRGBColorICCColor(rgbColor, iccColor);
-}
-
-// Ecma stuff
-/*
-@namespace KSVG
-@begin SVGColorImpl::s_hashTable 5
- colorType SVGColorImpl::ColorType DontDelete|ReadOnly
- RGBColor SVGColorImpl::RGBColor DontDelete|ReadOnly
- ICCColor SVGColorImpl::ICCColor DontDelete|ReadOnly
-@end
-@namespace KSVG
-@begin SVGColorImplProto::s_hashTable 5
- setRGBColor SVGColorImpl::SetRGBColor DontDelete|Function 1
- setRGBColorICCColor SVGColorImpl::SetRGBColorICCColor DontDelete|Function 2
- setColor SVGColorImpl::SetColor DontDelete|Function 3
-@end
-*/
-
-KSVG_IMPLEMENT_PROTOTYPE("SVGColor", SVGColorImplProto, SVGColorImplProtoFunc)
-
-Value SVGColorImpl::getValueProperty(ExecState *exec, int token) const
-{
- switch(token)
- {
- case ColorType:
- return Number(colorType());
-#ifdef __GNUC__
-#warning FIXME bridge stuff
-#endif
- case RGBColor:
- return Undefined();
- case ICCColor:
- return m_iccColor->cache(exec);
- default:
- kdWarning() << "Unhandled token in " << k_funcinfo << " : " << token << endl;
- return Undefined();
- }
-}
-
-Value SVGColorImplProtoFunc::call(ExecState *exec, Object &thisObj, const List &args)
-{
- KSVG_CHECK_THIS(SVGColorImpl)
-
- switch(id)
- {
- case SVGColorImpl::SetRGBColor:
- obj->setRGBColor(args[0].toString(exec).string());
- break;
- case SVGColorImpl::SetRGBColorICCColor:
- obj->setRGBColorICCColor(args[0].toString(exec).string(), args[1].toString(exec).string());
- break;
- case SVGColorImpl::SetColor:
- obj->setColor(static_cast<unsigned short>(args[0].toNumber(exec)), args[1].toString(exec).string(), args[2].toString(exec).string());
- break;
- default:
- kdWarning() << "Unhandled function id in " << k_funcinfo << " : " << id << endl;
- break;
- }
-
- return Undefined();
-}
-
-/*
-@namespace KSVG
-@begin SVGColorImplConstructor::s_hashTable 5
- SVG_COLORTYPE_UNKNOWN KSVG::SVG_COLORTYPE_UNKNOWN DontDelete|ReadOnly
- SVG_COLORTYPE_RGBCOLOR KSVG::SVG_COLORTYPE_RGBCOLOR DontDelete|ReadOnly
- SVG_COLORTYPE_RGBCOLOR_ICCCOLOR KSVG::SVG_COLORTYPE_RGBCOLOR_ICCCOLOR DontDelete|ReadOnly
- SVG_COLORTYPE_CURRENTCOLOR KSVG::SVG_COLORTYPE_CURRENTCOLOR DontDelete|ReadOnly
-@end
-*/
-
-Value SVGColorImplConstructor::getValueProperty(ExecState *, int token) const
-{
- return Number(token);
-}
-
-Value KSVG::getSVGColorImplConstructor(ExecState *exec)
-{
- return cacheGlobalBridge<SVGColorImplConstructor>(exec, "[[svgcolor.constructor]]");
-}
-
-// vim:ts=4:noet