00001 #include "ColorGradient.h"
00002
00003 ColorGradient::ColorGradient(QWidget *parent) : QWidget(parent)
00004 {
00005 startColor.setNamedColor("green");
00006 stopColor.setNamedColor("red");
00007 sliderRed = 0;
00008 sliderGreen = 0;
00009 sliderBlue = 0;
00010 }
00011
00012 ColorGradient::~ColorGradient(void)
00013 {
00014 }
00015
00016 void ColorGradient::paintEvent(QPaintEvent* event)
00017 {
00018 QPainter painter(this);
00019 QLinearGradient gradient(0, 0, width(), 0);
00020 gradient.setColorAt(0, calcStartColor());
00021 gradient.setColorAt(1, calcEndColor());
00022 painter.fillRect(0, 0, width(), height(), QBrush(gradient));
00023 }
00024
00025 void ColorGradient::setSliderRed(int value)
00026 {
00027 sliderRed = value;
00028 update();
00029 }
00030
00031 void ColorGradient::setSliderGreen(int value)
00032 {
00033 sliderGreen = value;
00034 update();
00035 }
00036
00037 void ColorGradient::setSliderBlue(int value)
00038 {
00039 sliderBlue = value;
00040 update();
00041 }
00042
00043 QColor ColorGradient::calcStartColor()
00044 {
00045 if(colorType == 1)
00046 {
00047 return QColor(0, sliderGreen, sliderBlue);
00048 }
00049 else if(colorType == 2)
00050 {
00051 return QColor(sliderRed, 0, sliderBlue);
00052 }
00053 else
00054 {
00055 return QColor(sliderRed, sliderGreen, 0);
00056 }
00057 }
00058
00059 QColor ColorGradient::calcEndColor()
00060 {
00061
00062 if(colorType == 1)
00063 {
00064 return QColor(255, sliderGreen, sliderBlue);
00065 }
00066 else if(colorType == 2)
00067 {
00068 return QColor(sliderRed, 255, sliderBlue);
00069 }
00070 else if(colorType == 3)
00071 {
00072 return QColor(sliderRed, sliderGreen, 255);
00073 }
00074 }
00075
00076 void ColorGradient::setColorType(int colorType)
00077 {
00078 this->colorType = colorType;
00079 }