Make a branch to make krunner Good Enough For Aaron™.
[kdebase/uwolfer.git] / runtime / kstyles / keramik / colorutil.cpp
blobec95c129af28e610b1af43c9fabd63e352988062
1 /* Keramik Style for KDE3, color utility routines..
2 Copyright (c) 2002 Malte Starostik <malte@kde.org>
3 (c) 2002 Maksim Orlovich <mo002j@mail.rochester.edu>
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
21 #include "colorutil.h"
23 #include <QtGui/QColor>
25 namespace Keramik
27 QColor ColorUtil::lighten(const QColor& in, int factor)
29 if (factor > 100)
31 int h, s, v;
32 in.getHsv(&h, &s, &v);
34 float mShare = v/230.0;
35 if (mShare > 1) mShare = 1;
37 mShare *= mShare;
39 int diff = factor - 100;
40 int hd = int(mShare*diff);
41 int delta = int((diff - hd)*7.55);
43 QColor wrk = in.light(100+hd);
45 int r = wrk.red();
46 int g = wrk.green();
47 int b = wrk.blue();
49 r+=delta;
50 g+=delta;
51 b+=delta;
53 if (r>255) r=255;
54 if (g>255) g=255;
55 if (b>255) b=255;
57 return QColor(r,g,b);
60 return in;
64 // vim: ts=4 sw=4 noet