| 1 | /**************************************************************************** | 
| 2 | ** | 
| 3 | ** Copyright (C) 2020 The Qt Company Ltd. | 
| 4 | ** Contact: https://www.qt.io/licensing/ | 
| 5 | ** | 
| 6 | ** This file is part of the QtGui module of the Qt Toolkit. | 
| 7 | ** | 
| 8 | ** $QT_BEGIN_LICENSE:LGPL$ | 
| 9 | ** Commercial License Usage | 
| 10 | ** Licensees holding valid commercial Qt licenses may use this file in | 
| 11 | ** accordance with the commercial license agreement provided with the | 
| 12 | ** Software or, alternatively, in accordance with the terms contained in | 
| 13 | ** a written agreement between you and The Qt Company. For licensing terms | 
| 14 | ** and conditions see https://www.qt.io/terms-conditions. For further | 
| 15 | ** information use the contact form at https://www.qt.io/contact-us. | 
| 16 | ** | 
| 17 | ** GNU Lesser General Public License Usage | 
| 18 | ** Alternatively, this file may be used under the terms of the GNU Lesser | 
| 19 | ** General Public License version 3 as published by the Free Software | 
| 20 | ** Foundation and appearing in the file LICENSE.LGPL3 included in the | 
| 21 | ** packaging of this file. Please review the following information to | 
| 22 | ** ensure the GNU Lesser General Public License version 3 requirements | 
| 23 | ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. | 
| 24 | ** | 
| 25 | ** GNU General Public License Usage | 
| 26 | ** Alternatively, this file may be used under the terms of the GNU | 
| 27 | ** General Public License version 2.0 or (at your option) the GNU General | 
| 28 | ** Public license version 3 or any later version approved by the KDE Free | 
| 29 | ** Qt Foundation. The licenses are as published by the Free Software | 
| 30 | ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 | 
| 31 | ** included in the packaging of this file. Please review the following | 
| 32 | ** information to ensure the GNU General Public License requirements will | 
| 33 | ** be met: https://www.gnu.org/licenses/gpl-2.0.html and | 
| 34 | ** https://www.gnu.org/licenses/gpl-3.0.html. | 
| 35 | ** | 
| 36 | ** $QT_END_LICENSE$ | 
| 37 | ** | 
| 38 | ****************************************************************************/ | 
| 39 |  | 
| 40 | #ifndef QCOLOR_H | 
| 41 | #define QCOLOR_H | 
| 42 |  | 
| 43 | #include <QtGui/qtguiglobal.h> | 
| 44 | #include <QtGui/qrgb.h> | 
| 45 | #include <QtCore/qnamespace.h> | 
| 46 | #include <QtCore/qstringlist.h> | 
| 47 | #include <QtGui/qrgba64.h> | 
| 48 |  | 
| 49 | #include <limits.h> | 
| 50 |  | 
| 51 | QT_BEGIN_NAMESPACE | 
| 52 |  | 
| 53 |  | 
| 54 | class QColor; | 
| 55 | class QColormap; | 
| 56 | class QVariant; | 
| 57 |  | 
| 58 | #ifndef QT_NO_DEBUG_STREAM | 
| 59 | Q_GUI_EXPORT QDebug operator<<(QDebug, const QColor &); | 
| 60 | #endif | 
| 61 | #ifndef QT_NO_DATASTREAM | 
| 62 | Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QColor &); | 
| 63 | Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QColor &); | 
| 64 | #endif | 
| 65 |  | 
| 66 | class Q_GUI_EXPORT QColor | 
| 67 | { | 
| 68 | public: | 
| 69 |     enum Spec { Invalid, Rgb, Hsv, Cmyk, Hsl, ExtendedRgb }; | 
| 70 |     enum NameFormat { HexRgb, HexArgb }; | 
| 71 |  | 
| 72 |     constexpr QColor() noexcept | 
| 73 |         : cspec(Invalid), ct(USHRT_MAX, 0, 0, 0, 0) {} | 
| 74 |     QColor(Qt::GlobalColor color) noexcept; | 
| 75 |     constexpr QColor(int r, int g, int b, int a = 255) noexcept | 
| 76 |         : cspec(isRgbaValid(r, g, b, a) ? Rgb : Invalid), | 
| 77 |           ct(ushort(cspec == Rgb ? a * 0x0101 : 0), | 
| 78 |              ushort(cspec == Rgb ? r * 0x0101 : 0), | 
| 79 |              ushort(cspec == Rgb ? g * 0x0101 : 0), | 
| 80 |              ushort(cspec == Rgb ? b * 0x0101 : 0), | 
| 81 |              0) {} | 
| 82 |     QColor(QRgb rgb) noexcept; | 
| 83 |     QColor(QRgba64 rgba64) noexcept; | 
| 84 | #if QT_STRINGVIEW_LEVEL < 2 | 
| 85 |     inline QColor(const QString& name); | 
| 86 | #endif | 
| 87 |     explicit inline QColor(QStringView name); | 
| 88 |     inline QColor(const char *aname) : QColor(QLatin1String(aname)) {} | 
| 89 |     inline QColor(QLatin1String name); | 
| 90 |     QColor(Spec spec) noexcept; | 
| 91 |  | 
| 92 |     QColor &operator=(Qt::GlobalColor color) noexcept; | 
| 93 |  | 
| 94 |     bool isValid() const noexcept; | 
| 95 |  | 
| 96 |     QString name(NameFormat format = HexRgb) const; | 
| 97 |  | 
| 98 | #if QT_STRINGVIEW_LEVEL < 2 | 
| 99 |     void setNamedColor(const QString& name); | 
| 100 | #endif | 
| 101 |     void setNamedColor(QStringView name); | 
| 102 |     void setNamedColor(QLatin1String name); | 
| 103 |  | 
| 104 |     static QStringList colorNames(); | 
| 105 |  | 
| 106 |     inline Spec spec() const noexcept | 
| 107 |     { return cspec; } | 
| 108 |  | 
| 109 |     int alpha() const noexcept; | 
| 110 |     void setAlpha(int alpha); | 
| 111 |  | 
| 112 |     float alphaF() const noexcept; | 
| 113 |     void setAlphaF(float alpha); | 
| 114 |  | 
| 115 |     int red() const noexcept; | 
| 116 |     int green() const noexcept; | 
| 117 |     int blue() const noexcept; | 
| 118 |     void setRed(int red); | 
| 119 |     void setGreen(int green); | 
| 120 |     void setBlue(int blue); | 
| 121 |  | 
| 122 |     float redF() const noexcept; | 
| 123 |     float greenF() const noexcept; | 
| 124 |     float blueF() const noexcept; | 
| 125 |     void setRedF(float red); | 
| 126 |     void setGreenF(float green); | 
| 127 |     void setBlueF(float blue); | 
| 128 |  | 
| 129 |     void getRgb(int *r, int *g, int *b, int *a = nullptr) const; | 
| 130 |     void setRgb(int r, int g, int b, int a = 255); | 
| 131 |  | 
| 132 |     void getRgbF(float *r, float *g, float *b, float *a = nullptr) const; | 
| 133 |     void setRgbF(float r, float g, float b, float a = 1.0); | 
| 134 |  | 
| 135 |     QRgba64 rgba64() const noexcept; | 
| 136 |     void setRgba64(QRgba64 rgba) noexcept; | 
| 137 |  | 
| 138 |     QRgb rgba() const noexcept; | 
| 139 |     void setRgba(QRgb rgba) noexcept; | 
| 140 |  | 
| 141 |     QRgb rgb() const noexcept; | 
| 142 |     void setRgb(QRgb rgb) noexcept; | 
| 143 |  | 
| 144 |     int hue() const noexcept; // 0 <= hue < 360 | 
| 145 |     int saturation() const noexcept; | 
| 146 |     int hsvHue() const noexcept; // 0 <= hue < 360 | 
| 147 |     int hsvSaturation() const noexcept; | 
| 148 |     int value() const noexcept; | 
| 149 |  | 
| 150 |     float hueF() const noexcept; // 0.0 <= hueF < 360.0 | 
| 151 |     float saturationF() const noexcept; | 
| 152 |     float hsvHueF() const noexcept; // 0.0 <= hueF < 360.0 | 
| 153 |     float hsvSaturationF() const noexcept; | 
| 154 |     float valueF() const noexcept; | 
| 155 |  | 
| 156 |     void getHsv(int *h, int *s, int *v, int *a = nullptr) const; | 
| 157 |     void setHsv(int h, int s, int v, int a = 255); | 
| 158 |  | 
| 159 |     void getHsvF(float *h, float *s, float *v, float *a = nullptr) const; | 
| 160 |     void setHsvF(float h, float s, float v, float a = 1.0); | 
| 161 |  | 
| 162 |     int cyan() const noexcept; | 
| 163 |     int magenta() const noexcept; | 
| 164 |     int yellow() const noexcept; | 
| 165 |     int black() const noexcept; | 
| 166 |  | 
| 167 |     float cyanF() const noexcept; | 
| 168 |     float magentaF() const noexcept; | 
| 169 |     float yellowF() const noexcept; | 
| 170 |     float blackF() const noexcept; | 
| 171 |  | 
| 172 |     void getCmyk(int *c, int *m, int *y, int *k, int *a = nullptr) const; | 
| 173 |     void setCmyk(int c, int m, int y, int k, int a = 255); | 
| 174 |  | 
| 175 |     void getCmykF(float *c, float *m, float *y, float *k, float *a = nullptr) const; | 
| 176 |     void setCmykF(float c, float m, float y, float k, float a = 1.0); | 
| 177 |  | 
| 178 |     int hslHue() const noexcept; // 0 <= hue < 360 | 
| 179 |     int hslSaturation() const noexcept; | 
| 180 |     int lightness() const noexcept; | 
| 181 |  | 
| 182 |     float hslHueF() const noexcept; // 0.0 <= hueF < 360.0 | 
| 183 |     float hslSaturationF() const noexcept; | 
| 184 |     float lightnessF() const noexcept; | 
| 185 |  | 
| 186 |     void getHsl(int *h, int *s, int *l, int *a = nullptr) const; | 
| 187 |     void setHsl(int h, int s, int l, int a = 255); | 
| 188 |  | 
| 189 |     void getHslF(float *h, float *s, float *l, float *a = nullptr) const; | 
| 190 |     void setHslF(float h, float s, float l, float a = 1.0); | 
| 191 |  | 
| 192 |     QColor toRgb() const noexcept; | 
| 193 |     QColor toHsv() const noexcept; | 
| 194 |     QColor toCmyk() const noexcept; | 
| 195 |     QColor toHsl() const noexcept; | 
| 196 |     QColor toExtendedRgb() const noexcept; | 
| 197 |  | 
| 198 |     [[nodiscard]] QColor convertTo(Spec colorSpec) const noexcept; | 
| 199 |  | 
| 200 |     static QColor fromRgb(QRgb rgb) noexcept; | 
| 201 |     static QColor fromRgba(QRgb rgba) noexcept; | 
| 202 |  | 
| 203 |     static QColor fromRgb(int r, int g, int b, int a = 255); | 
| 204 |     static QColor fromRgbF(float r, float g, float b, float a = 1.0); | 
| 205 |  | 
| 206 |     static QColor fromRgba64(ushort r, ushort g, ushort b, ushort a = USHRT_MAX) noexcept; | 
| 207 |     static QColor fromRgba64(QRgba64 rgba) noexcept; | 
| 208 |  | 
| 209 |     static QColor fromHsv(int h, int s, int v, int a = 255); | 
| 210 |     static QColor fromHsvF(float h, float s, float v, float a = 1.0); | 
| 211 |  | 
| 212 |     static QColor fromCmyk(int c, int m, int y, int k, int a = 255); | 
| 213 |     static QColor fromCmykF(float c, float m, float y, float k, float a = 1.0); | 
| 214 |  | 
| 215 |     static QColor fromHsl(int h, int s, int l, int a = 255); | 
| 216 |     static QColor fromHslF(float h, float s, float l, float a = 1.0); | 
| 217 |  | 
| 218 |     [[nodiscard]] QColor lighter(int f = 150) const noexcept; | 
| 219 |     [[nodiscard]] QColor darker(int f = 200) const noexcept; | 
| 220 |  | 
| 221 |     bool operator==(const QColor &c) const noexcept; | 
| 222 |     bool operator!=(const QColor &c) const noexcept; | 
| 223 |  | 
| 224 |     operator QVariant() const; | 
| 225 |  | 
| 226 | #if QT_STRINGVIEW_LEVEL < 2 | 
| 227 |     static bool isValidColor(const QString &name); | 
| 228 | #endif | 
| 229 |     static bool isValidColor(QStringView) noexcept; | 
| 230 |     static bool isValidColor(QLatin1String) noexcept; | 
| 231 |  | 
| 232 | private: | 
| 233 |  | 
| 234 |     void invalidate() noexcept; | 
| 235 |     template <typename String> | 
| 236 |     bool setColorFromString(String name); | 
| 237 |  | 
| 238 |     static constexpr bool isRgbaValid(int r, int g, int b, int a = 255) noexcept Q_DECL_CONST_FUNCTION | 
| 239 |     { | 
| 240 |         return uint(r) <= 255 && uint(g) <= 255 && uint(b) <= 255 && uint(a) <= 255; | 
| 241 |     } | 
| 242 |  | 
| 243 |     Spec cspec; | 
| 244 |     union CT { | 
| 245 | #ifdef Q_COMPILER_UNIFORM_INIT | 
| 246 |         CT() {} // doesn't init anything, thus can't be constexpr | 
| 247 |         constexpr explicit CT(ushort a1, ushort a2, ushort a3, ushort a4, ushort a5) noexcept | 
| 248 |             : array{a1, a2, a3, a4, a5} {} | 
| 249 | #endif | 
| 250 |         struct { | 
| 251 |             ushort alpha; | 
| 252 |             ushort red; | 
| 253 |             ushort green; | 
| 254 |             ushort blue; | 
| 255 |             ushort pad; | 
| 256 |         } argb; | 
| 257 |         struct { | 
| 258 |             ushort alpha; | 
| 259 |             ushort hue; | 
| 260 |             ushort saturation; | 
| 261 |             ushort value; | 
| 262 |             ushort pad; | 
| 263 |         } ahsv; | 
| 264 |         struct { | 
| 265 |             ushort alpha; | 
| 266 |             ushort cyan; | 
| 267 |             ushort magenta; | 
| 268 |             ushort yellow; | 
| 269 |             ushort black; | 
| 270 |         } acmyk; | 
| 271 |         struct { | 
| 272 |             ushort alpha; | 
| 273 |             ushort hue; | 
| 274 |             ushort saturation; | 
| 275 |             ushort lightness; | 
| 276 |             ushort pad; | 
| 277 |         } ahsl; | 
| 278 |         struct { | 
| 279 |             ushort alphaF16; | 
| 280 |             ushort redF16; | 
| 281 |             ushort greenF16; | 
| 282 |             ushort blueF16; | 
| 283 |             ushort pad; | 
| 284 |         } argbExtended; | 
| 285 |         ushort array[5]; | 
| 286 |     } ct; | 
| 287 |  | 
| 288 |     friend class QColormap; | 
| 289 | #ifndef QT_NO_DATASTREAM | 
| 290 |     friend Q_GUI_EXPORT QDataStream &operator<<(QDataStream &, const QColor &); | 
| 291 |     friend Q_GUI_EXPORT QDataStream &operator>>(QDataStream &, QColor &); | 
| 292 | #endif | 
| 293 |  | 
| 294 | #ifdef Q_COMPILER_UNIFORM_INIT | 
| 295 | public: // can't give friendship to a namespace, so it needs to be public | 
| 296 |     constexpr explicit QColor(Spec spec, ushort a1, ushort a2, ushort a3, ushort a4, ushort a5=0) noexcept | 
| 297 |         : cspec(spec), ct(a1, a2, a3, a4, a5) {} | 
| 298 | #endif // Q_COMPILER_UNIFORM_INIT | 
| 299 | }; | 
| 300 | Q_DECLARE_TYPEINFO(QColor, Q_MOVABLE_TYPE); | 
| 301 |  | 
| 302 | inline QColor::QColor(QLatin1String aname) | 
| 303 | { setNamedColor(aname); } | 
| 304 |  | 
| 305 | inline QColor::QColor(QStringView aname) | 
| 306 | { setNamedColor(aname); } | 
| 307 |  | 
| 308 | #if QT_STRINGVIEW_LEVEL < 2 | 
| 309 | inline QColor::QColor(const QString& aname) | 
| 310 | { setNamedColor(aname); } | 
| 311 | #endif | 
| 312 |  | 
| 313 | inline bool QColor::isValid() const noexcept | 
| 314 | { return cspec != Invalid; } | 
| 315 |  | 
| 316 | namespace QColorConstants | 
| 317 | { | 
| 318 |     // Qt::GlobalColor names | 
| 319 |     constexpr inline QColor Color0      {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x00 * 0x101}; | 
| 320 |     constexpr inline QColor Color1      {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101}; | 
| 321 |     constexpr inline QColor Black       {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x00 * 0x101}; | 
| 322 |     constexpr inline QColor White       {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101}; | 
| 323 |     constexpr inline QColor DarkGray    {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x80 * 0x101, 0x80 * 0x101}; | 
| 324 |     constexpr inline QColor Gray        {QColor::Rgb, 0xff * 0x101, 0xa0 * 0x101, 0xa0 * 0x101, 0xa4 * 0x101}; | 
| 325 |     constexpr inline QColor LightGray   {QColor::Rgb, 0xff * 0x101, 0xc0 * 0x101, 0xc0 * 0x101, 0xc0 * 0x101}; | 
| 326 |     constexpr inline QColor Red         {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101}; | 
| 327 |     constexpr inline QColor Green       {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101, 0x00 * 0x101}; | 
| 328 |     constexpr inline QColor Blue        {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0xff * 0x101}; | 
| 329 |     constexpr inline QColor Cyan        {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101, 0xff * 0x101}; | 
| 330 |     constexpr inline QColor Magenta     {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101}; | 
| 331 |     constexpr inline QColor Yellow      {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101}; | 
| 332 |     constexpr inline QColor DarkRed     {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x00 * 0x101, 0x00 * 0x101}; | 
| 333 |     constexpr inline QColor DarkGreen   {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x80 * 0x101, 0x00 * 0x101}; | 
| 334 |     constexpr inline QColor DarkBlue    {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x80 * 0x101}; | 
| 335 |     constexpr inline QColor DarkCyan    {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x80 * 0x101, 0x80 * 0x101}; | 
| 336 |     constexpr inline QColor DarkMagenta {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x00 * 0x101, 0x80 * 0x101}; | 
| 337 |     constexpr inline QColor DarkYellow  {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x80 * 0x101, 0x00 * 0x101}; | 
| 338 |     constexpr inline QColor Transparent {QColor::Rgb, 0x00 * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x00 * 0x101}; | 
| 339 |  | 
| 340 |     // SVG names supported by QColor (see qcolor.cpp). | 
| 341 | namespace Svg { | 
| 342 |     constexpr inline QColor aliceblue                {QColor::Rgb, 0xff * 0x101, 0xf0 * 0x101, 0xf8 * 0x101, 0xff * 0x101}; | 
| 343 |     constexpr inline QColor antiquewhite             {QColor::Rgb, 0xff * 0x101, 0xfa * 0x101, 0xeb * 0x101, 0xd7 * 0x101}; | 
| 344 |     constexpr inline QColor aqua                     {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101, 0xff * 0x101}; | 
| 345 |     constexpr inline QColor aquamarine               {QColor::Rgb, 0xff * 0x101, 0x7f * 0x101, 0xff * 0x101, 0xd4 * 0x101}; | 
| 346 |     constexpr inline QColor azure                    {QColor::Rgb, 0xff * 0x101, 0xf0 * 0x101, 0xff * 0x101, 0xff * 0x101}; | 
| 347 |     constexpr inline QColor beige                    {QColor::Rgb, 0xff * 0x101, 0xf5 * 0x101, 0xf5 * 0x101, 0xdc * 0x101}; | 
| 348 |     constexpr inline QColor bisque                   {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xe4 * 0x101, 0xc4 * 0x101}; | 
| 349 |     constexpr inline QColor black                    {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x00 * 0x101}; | 
| 350 |     constexpr inline QColor blanchedalmond           {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xeb * 0x101, 0xcd * 0x101}; | 
| 351 |     constexpr inline QColor blue                     {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0xff * 0x101}; | 
| 352 |     constexpr inline QColor blueviolet               {QColor::Rgb, 0xff * 0x101, 0x8a * 0x101, 0x2b * 0x101, 0xe2 * 0x101}; | 
| 353 |     constexpr inline QColor brown                    {QColor::Rgb, 0xff * 0x101, 0xa5 * 0x101, 0x2a * 0x101, 0x2a * 0x101}; | 
| 354 |     constexpr inline QColor burlywood                {QColor::Rgb, 0xff * 0x101, 0xde * 0x101, 0xb8 * 0x101, 0x87 * 0x101}; | 
| 355 |     constexpr inline QColor cadetblue                {QColor::Rgb, 0xff * 0x101, 0x5f * 0x101, 0x9e * 0x101, 0xa0 * 0x101}; | 
| 356 |     constexpr inline QColor chartreuse               {QColor::Rgb, 0xff * 0x101, 0x7f * 0x101, 0xff * 0x101, 0x00 * 0x101}; | 
| 357 |     constexpr inline QColor chocolate                {QColor::Rgb, 0xff * 0x101, 0xd2 * 0x101, 0x69 * 0x101, 0x1e * 0x101}; | 
| 358 |     constexpr inline QColor coral                    {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x7f * 0x101, 0x50 * 0x101}; | 
| 359 |     constexpr inline QColor cornflowerblue           {QColor::Rgb, 0xff * 0x101, 0x64 * 0x101, 0x95 * 0x101, 0xed * 0x101}; | 
| 360 |     constexpr inline QColor cornsilk                 {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xf8 * 0x101, 0xdc * 0x101}; | 
| 361 |     constexpr inline QColor crimson                  {QColor::Rgb, 0xff * 0x101, 0xdc * 0x101, 0x14 * 0x101, 0x3c * 0x101}; | 
| 362 |     constexpr inline QColor cyan                     {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101, 0xff * 0x101}; | 
| 363 |     constexpr inline QColor darkblue                 {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x8b * 0x101}; | 
| 364 |     constexpr inline QColor darkcyan                 {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x8b * 0x101, 0x8b * 0x101}; | 
| 365 |     constexpr inline QColor darkgoldenrod            {QColor::Rgb, 0xff * 0x101, 0xb8 * 0x101, 0x86 * 0x101, 0x0b * 0x101}; | 
| 366 |     constexpr inline QColor darkgray                 {QColor::Rgb, 0xff * 0x101, 0xa9 * 0x101, 0xa9 * 0x101, 0xa9 * 0x101}; | 
| 367 |     constexpr inline QColor darkgreen                {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x64 * 0x101, 0x00 * 0x101}; | 
| 368 |     constexpr inline QColor darkgrey                 {QColor::Rgb, 0xff * 0x101, 0xa9 * 0x101, 0xa9 * 0x101, 0xa9 * 0x101}; | 
| 369 |     constexpr inline QColor darkkhaki                {QColor::Rgb, 0xff * 0x101, 0xbd * 0x101, 0xb7 * 0x101, 0x6b * 0x101}; | 
| 370 |     constexpr inline QColor darkmagenta              {QColor::Rgb, 0xff * 0x101, 0x8b * 0x101, 0x00 * 0x101, 0x8b * 0x101}; | 
| 371 |     constexpr inline QColor darkolivegreen           {QColor::Rgb, 0xff * 0x101, 0x55 * 0x101, 0x6b * 0x101, 0x2f * 0x101}; | 
| 372 |     constexpr inline QColor darkorange               {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x8c * 0x101, 0x00 * 0x101}; | 
| 373 |     constexpr inline QColor darkorchid               {QColor::Rgb, 0xff * 0x101, 0x99 * 0x101, 0x32 * 0x101, 0xcc * 0x101}; | 
| 374 |     constexpr inline QColor darkred                  {QColor::Rgb, 0xff * 0x101, 0x8b * 0x101, 0x00 * 0x101, 0x00 * 0x101}; | 
| 375 |     constexpr inline QColor darksalmon               {QColor::Rgb, 0xff * 0x101, 0xe9 * 0x101, 0x96 * 0x101, 0x7a * 0x101}; | 
| 376 |     constexpr inline QColor darkseagreen             {QColor::Rgb, 0xff * 0x101, 0x8f * 0x101, 0xbc * 0x101, 0x8f * 0x101}; | 
| 377 |     constexpr inline QColor darkslateblue            {QColor::Rgb, 0xff * 0x101, 0x48 * 0x101, 0x3d * 0x101, 0x8b * 0x101}; | 
| 378 |     constexpr inline QColor darkslategray            {QColor::Rgb, 0xff * 0x101, 0x2f * 0x101, 0x4f * 0x101, 0x4f * 0x101}; | 
| 379 |     constexpr inline QColor darkslategrey            {QColor::Rgb, 0xff * 0x101, 0x2f * 0x101, 0x4f * 0x101, 0x4f * 0x101}; | 
| 380 |     constexpr inline QColor darkturquoise            {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xce * 0x101, 0xd1 * 0x101}; | 
| 381 |     constexpr inline QColor darkviolet               {QColor::Rgb, 0xff * 0x101, 0x94 * 0x101, 0x00 * 0x101, 0xd3 * 0x101}; | 
| 382 |     constexpr inline QColor deeppink                 {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x14 * 0x101, 0x93 * 0x101}; | 
| 383 |     constexpr inline QColor deepskyblue              {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xbf * 0x101, 0xff * 0x101}; | 
| 384 |     constexpr inline QColor dimgray                  {QColor::Rgb, 0xff * 0x101, 0x69 * 0x101, 0x69 * 0x101, 0x69 * 0x101}; | 
| 385 |     constexpr inline QColor dimgrey                  {QColor::Rgb, 0xff * 0x101, 0x69 * 0x101, 0x69 * 0x101, 0x69 * 0x101}; | 
| 386 |     constexpr inline QColor dodgerblue               {QColor::Rgb, 0xff * 0x101, 0x1e * 0x101, 0x90 * 0x101, 0xff * 0x101}; | 
| 387 |     constexpr inline QColor firebrick                {QColor::Rgb, 0xff * 0x101, 0xb2 * 0x101, 0x22 * 0x101, 0x22 * 0x101}; | 
| 388 |     constexpr inline QColor floralwhite              {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xfa * 0x101, 0xf0 * 0x101}; | 
| 389 |     constexpr inline QColor forestgreen              {QColor::Rgb, 0xff * 0x101, 0x22 * 0x101, 0x8b * 0x101, 0x22 * 0x101}; | 
| 390 |     constexpr inline QColor fuchsia                  {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101}; | 
| 391 |     constexpr inline QColor gainsboro                {QColor::Rgb, 0xff * 0x101, 0xdc * 0x101, 0xdc * 0x101, 0xdc * 0x101}; | 
| 392 |     constexpr inline QColor ghostwhite               {QColor::Rgb, 0xff * 0x101, 0xf8 * 0x101, 0xf8 * 0x101, 0xff * 0x101}; | 
| 393 |     constexpr inline QColor gold                     {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xd7 * 0x101, 0x00 * 0x101}; | 
| 394 |     constexpr inline QColor goldenrod                {QColor::Rgb, 0xff * 0x101, 0xda * 0x101, 0xa5 * 0x101, 0x20 * 0x101}; | 
| 395 |     constexpr inline QColor gray                     {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x80 * 0x101, 0x80 * 0x101}; | 
| 396 |     constexpr inline QColor green                    {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x80 * 0x101, 0x00 * 0x101}; | 
| 397 |     constexpr inline QColor greenyellow              {QColor::Rgb, 0xff * 0x101, 0xad * 0x101, 0xff * 0x101, 0x2f * 0x101}; | 
| 398 |     constexpr inline QColor grey                     {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x80 * 0x101, 0x80 * 0x101}; | 
| 399 |     constexpr inline QColor honeydew                 {QColor::Rgb, 0xff * 0x101, 0xf0 * 0x101, 0xff * 0x101, 0xf0 * 0x101}; | 
| 400 |     constexpr inline QColor hotpink                  {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x69 * 0x101, 0xb4 * 0x101}; | 
| 401 |     constexpr inline QColor indianred                {QColor::Rgb, 0xff * 0x101, 0xcd * 0x101, 0x5c * 0x101, 0x5c * 0x101}; | 
| 402 |     constexpr inline QColor indigo                   {QColor::Rgb, 0xff * 0x101, 0x4b * 0x101, 0x00 * 0x101, 0x82 * 0x101}; | 
| 403 |     constexpr inline QColor ivory                    {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0xf0 * 0x101}; | 
| 404 |     constexpr inline QColor khaki                    {QColor::Rgb, 0xff * 0x101, 0xf0 * 0x101, 0xe6 * 0x101, 0x8c * 0x101}; | 
| 405 |     constexpr inline QColor lavender                 {QColor::Rgb, 0xff * 0x101, 0xe6 * 0x101, 0xe6 * 0x101, 0xfa * 0x101}; | 
| 406 |     constexpr inline QColor lavenderblush            {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xf0 * 0x101, 0xf5 * 0x101}; | 
| 407 |     constexpr inline QColor lawngreen                {QColor::Rgb, 0xff * 0x101, 0x7c * 0x101, 0xfc * 0x101, 0x00 * 0x101}; | 
| 408 |     constexpr inline QColor lemonchiffon             {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xfa * 0x101, 0xcd * 0x101}; | 
| 409 |     constexpr inline QColor lightblue                {QColor::Rgb, 0xff * 0x101, 0xad * 0x101, 0xd8 * 0x101, 0xe6 * 0x101}; | 
| 410 |     constexpr inline QColor lightcoral               {QColor::Rgb, 0xff * 0x101, 0xf0 * 0x101, 0x80 * 0x101, 0x80 * 0x101}; | 
| 411 |     constexpr inline QColor lightcyan                {QColor::Rgb, 0xff * 0x101, 0xe0 * 0x101, 0xff * 0x101, 0xff * 0x101}; | 
| 412 |     constexpr inline QColor lightgoldenrodyellow     {QColor::Rgb, 0xff * 0x101, 0xfa * 0x101, 0xfa * 0x101, 0xd2 * 0x101}; | 
| 413 |     constexpr inline QColor lightgray                {QColor::Rgb, 0xff * 0x101, 0xd3 * 0x101, 0xd3 * 0x101, 0xd3 * 0x101}; | 
| 414 |     constexpr inline QColor lightgreen               {QColor::Rgb, 0xff * 0x101, 0x90 * 0x101, 0xee * 0x101, 0x90 * 0x101}; | 
| 415 |     constexpr inline QColor lightgrey                {QColor::Rgb, 0xff * 0x101, 0xd3 * 0x101, 0xd3 * 0x101, 0xd3 * 0x101}; | 
| 416 |     constexpr inline QColor lightpink                {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xb6 * 0x101, 0xc1 * 0x101}; | 
| 417 |     constexpr inline QColor lightsalmon              {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xa0 * 0x101, 0x7a * 0x101}; | 
| 418 |     constexpr inline QColor lightseagreen            {QColor::Rgb, 0xff * 0x101, 0x20 * 0x101, 0xb2 * 0x101, 0xaa * 0x101}; | 
| 419 |     constexpr inline QColor lightskyblue             {QColor::Rgb, 0xff * 0x101, 0x87 * 0x101, 0xce * 0x101, 0xfa * 0x101}; | 
| 420 |     constexpr inline QColor lightslategray           {QColor::Rgb, 0xff * 0x101, 0x77 * 0x101, 0x88 * 0x101, 0x99 * 0x101}; | 
| 421 |     constexpr inline QColor lightslategrey           {QColor::Rgb, 0xff * 0x101, 0x77 * 0x101, 0x88 * 0x101, 0x99 * 0x101}; | 
| 422 |     constexpr inline QColor lightsteelblue           {QColor::Rgb, 0xff * 0x101, 0xb0 * 0x101, 0xc4 * 0x101, 0xde * 0x101}; | 
| 423 |     constexpr inline QColor lightyellow              {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0xe0 * 0x101}; | 
| 424 |     constexpr inline QColor lime                     {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101, 0x00 * 0x101}; | 
| 425 |     constexpr inline QColor limegreen                {QColor::Rgb, 0xff * 0x101, 0x32 * 0x101, 0xcd * 0x101, 0x32 * 0x101}; | 
| 426 |     constexpr inline QColor linen                    {QColor::Rgb, 0xff * 0x101, 0xfa * 0x101, 0xf0 * 0x101, 0xe6 * 0x101}; | 
| 427 |     constexpr inline QColor magenta                  {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101}; | 
| 428 |     constexpr inline QColor maroon                   {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x00 * 0x101, 0x00 * 0x101}; | 
| 429 |     constexpr inline QColor mediumaquamarine         {QColor::Rgb, 0xff * 0x101, 0x66 * 0x101, 0xcd * 0x101, 0xaa * 0x101}; | 
| 430 |     constexpr inline QColor mediumblue               {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0xcd * 0x101}; | 
| 431 |     constexpr inline QColor mediumorchid             {QColor::Rgb, 0xff * 0x101, 0xba * 0x101, 0x55 * 0x101, 0xd3 * 0x101}; | 
| 432 |     constexpr inline QColor mediumpurple             {QColor::Rgb, 0xff * 0x101, 0x93 * 0x101, 0x70 * 0x101, 0xdb * 0x101}; | 
| 433 |     constexpr inline QColor mediumseagreen           {QColor::Rgb, 0xff * 0x101, 0x3c * 0x101, 0xb3 * 0x101, 0x71 * 0x101}; | 
| 434 |     constexpr inline QColor mediumslateblue          {QColor::Rgb, 0xff * 0x101, 0x7b * 0x101, 0x68 * 0x101, 0xee * 0x101}; | 
| 435 |     constexpr inline QColor mediumspringgreen        {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xfa * 0x101, 0x9a * 0x101}; | 
| 436 |     constexpr inline QColor mediumturquoise          {QColor::Rgb, 0xff * 0x101, 0x48 * 0x101, 0xd1 * 0x101, 0xcc * 0x101}; | 
| 437 |     constexpr inline QColor mediumvioletred          {QColor::Rgb, 0xff * 0x101, 0xc7 * 0x101, 0x15 * 0x101, 0x85 * 0x101}; | 
| 438 |     constexpr inline QColor midnightblue             {QColor::Rgb, 0xff * 0x101, 0x19 * 0x101, 0x19 * 0x101, 0x70 * 0x101}; | 
| 439 |     constexpr inline QColor mintcream                {QColor::Rgb, 0xff * 0x101, 0xf5 * 0x101, 0xff * 0x101, 0xfa * 0x101}; | 
| 440 |     constexpr inline QColor mistyrose                {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xe4 * 0x101, 0xe1 * 0x101}; | 
| 441 |     constexpr inline QColor moccasin                 {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xe4 * 0x101, 0xb5 * 0x101}; | 
| 442 |     constexpr inline QColor navajowhite              {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xde * 0x101, 0xad * 0x101}; | 
| 443 |     constexpr inline QColor navy                     {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101, 0x80 * 0x101}; | 
| 444 |     constexpr inline QColor oldlace                  {QColor::Rgb, 0xff * 0x101, 0xfd * 0x101, 0xf5 * 0x101, 0xe6 * 0x101}; | 
| 445 |     constexpr inline QColor olive                    {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x80 * 0x101, 0x00 * 0x101}; | 
| 446 |     constexpr inline QColor olivedrab                {QColor::Rgb, 0xff * 0x101, 0x6b * 0x101, 0x8e * 0x101, 0x23 * 0x101}; | 
| 447 |     constexpr inline QColor orange                   {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xa5 * 0x101, 0x00 * 0x101}; | 
| 448 |     constexpr inline QColor orangered                {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x45 * 0x101, 0x00 * 0x101}; | 
| 449 |     constexpr inline QColor orchid                   {QColor::Rgb, 0xff * 0x101, 0xda * 0x101, 0x70 * 0x101, 0xd6 * 0x101}; | 
| 450 |     constexpr inline QColor palegoldenrod            {QColor::Rgb, 0xff * 0x101, 0xee * 0x101, 0xe8 * 0x101, 0xaa * 0x101}; | 
| 451 |     constexpr inline QColor palegreen                {QColor::Rgb, 0xff * 0x101, 0x98 * 0x101, 0xfb * 0x101, 0x98 * 0x101}; | 
| 452 |     constexpr inline QColor paleturquoise            {QColor::Rgb, 0xff * 0x101, 0xaf * 0x101, 0xee * 0x101, 0xee * 0x101}; | 
| 453 |     constexpr inline QColor palevioletred            {QColor::Rgb, 0xff * 0x101, 0xdb * 0x101, 0x70 * 0x101, 0x93 * 0x101}; | 
| 454 |     constexpr inline QColor papayawhip               {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xef * 0x101, 0xd5 * 0x101}; | 
| 455 |     constexpr inline QColor peachpuff                {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xda * 0x101, 0xb9 * 0x101}; | 
| 456 |     constexpr inline QColor peru                     {QColor::Rgb, 0xff * 0x101, 0xcd * 0x101, 0x85 * 0x101, 0x3f * 0x101}; | 
| 457 |     constexpr inline QColor pink                     {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xc0 * 0x101, 0xcb * 0x101}; | 
| 458 |     constexpr inline QColor plum                     {QColor::Rgb, 0xff * 0x101, 0xdd * 0x101, 0xa0 * 0x101, 0xdd * 0x101}; | 
| 459 |     constexpr inline QColor powderblue               {QColor::Rgb, 0xff * 0x101, 0xb0 * 0x101, 0xe0 * 0x101, 0xe6 * 0x101}; | 
| 460 |     constexpr inline QColor purple                   {QColor::Rgb, 0xff * 0x101, 0x80 * 0x101, 0x00 * 0x101, 0x80 * 0x101}; | 
| 461 |     constexpr inline QColor red                      {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101, 0x00 * 0x101}; | 
| 462 |     constexpr inline QColor rosybrown                {QColor::Rgb, 0xff * 0x101, 0xbc * 0x101, 0x8f * 0x101, 0x8f * 0x101}; | 
| 463 |     constexpr inline QColor royalblue                {QColor::Rgb, 0xff * 0x101, 0x41 * 0x101, 0x69 * 0x101, 0xe1 * 0x101}; | 
| 464 |     constexpr inline QColor saddlebrown              {QColor::Rgb, 0xff * 0x101, 0x8b * 0x101, 0x45 * 0x101, 0x13 * 0x101}; | 
| 465 |     constexpr inline QColor salmon                   {QColor::Rgb, 0xff * 0x101, 0xfa * 0x101, 0x80 * 0x101, 0x72 * 0x101}; | 
| 466 |     constexpr inline QColor sandybrown               {QColor::Rgb, 0xff * 0x101, 0xf4 * 0x101, 0xa4 * 0x101, 0x60 * 0x101}; | 
| 467 |     constexpr inline QColor seagreen                 {QColor::Rgb, 0xff * 0x101, 0x2e * 0x101, 0x8b * 0x101, 0x57 * 0x101}; | 
| 468 |     constexpr inline QColor seashell                 {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xf5 * 0x101, 0xee * 0x101}; | 
| 469 |     constexpr inline QColor sienna                   {QColor::Rgb, 0xff * 0x101, 0xa0 * 0x101, 0x52 * 0x101, 0x2d * 0x101}; | 
| 470 |     constexpr inline QColor silver                   {QColor::Rgb, 0xff * 0x101, 0xc0 * 0x101, 0xc0 * 0x101, 0xc0 * 0x101}; | 
| 471 |     constexpr inline QColor skyblue                  {QColor::Rgb, 0xff * 0x101, 0x87 * 0x101, 0xce * 0x101, 0xeb * 0x101}; | 
| 472 |     constexpr inline QColor slateblue                {QColor::Rgb, 0xff * 0x101, 0x6a * 0x101, 0x5a * 0x101, 0xcd * 0x101}; | 
| 473 |     constexpr inline QColor slategray                {QColor::Rgb, 0xff * 0x101, 0x70 * 0x101, 0x80 * 0x101, 0x90 * 0x101}; | 
| 474 |     constexpr inline QColor slategrey                {QColor::Rgb, 0xff * 0x101, 0x70 * 0x101, 0x80 * 0x101, 0x90 * 0x101}; | 
| 475 |     constexpr inline QColor snow                     {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xfa * 0x101, 0xfa * 0x101}; | 
| 476 |     constexpr inline QColor springgreen              {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0xff * 0x101, 0x7f * 0x101}; | 
| 477 |     constexpr inline QColor steelblue                {QColor::Rgb, 0xff * 0x101, 0x46 * 0x101, 0x82 * 0x101, 0xb4 * 0x101}; | 
| 478 |     constexpr inline QColor tan                      {QColor::Rgb, 0xff * 0x101, 0xd2 * 0x101, 0xb4 * 0x101, 0x8c * 0x101}; | 
| 479 |     constexpr inline QColor teal                     {QColor::Rgb, 0xff * 0x101, 0x00 * 0x101, 0x80 * 0x101, 0x80 * 0x101}; | 
| 480 |     constexpr inline QColor thistle                  {QColor::Rgb, 0xff * 0x101, 0xd8 * 0x101, 0xbf * 0x101, 0xd8 * 0x101}; | 
| 481 |     constexpr inline QColor tomato                   {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0x63 * 0x101, 0x47 * 0x101}; | 
| 482 |     constexpr inline QColor turquoise                {QColor::Rgb, 0xff * 0x101, 0x40 * 0x101, 0xe0 * 0x101, 0xd0 * 0x101}; | 
| 483 |     constexpr inline QColor violet                   {QColor::Rgb, 0xff * 0x101, 0xee * 0x101, 0x82 * 0x101, 0xee * 0x101}; | 
| 484 |     constexpr inline QColor wheat                    {QColor::Rgb, 0xff * 0x101, 0xf5 * 0x101, 0xde * 0x101, 0xb3 * 0x101}; | 
| 485 |     constexpr inline QColor white                    {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101}; | 
| 486 |     constexpr inline QColor whitesmoke               {QColor::Rgb, 0xff * 0x101, 0xf5 * 0x101, 0xf5 * 0x101, 0xf5 * 0x101}; | 
| 487 |     constexpr inline QColor yellow                   {QColor::Rgb, 0xff * 0x101, 0xff * 0x101, 0xff * 0x101, 0x00 * 0x101}; | 
| 488 |     constexpr inline QColor yellowgreen              {QColor::Rgb, 0xff * 0x101, 0x9a * 0x101, 0xcd * 0x101, 0x32 * 0x101}; | 
| 489 | }  // namespace Svg | 
| 490 | }  // namespace QColorLiterals | 
| 491 |  | 
| 492 | QT_END_NAMESPACE | 
| 493 |  | 
| 494 | #endif // QCOLOR_H | 
| 495 |  |