annotate widgets/RadialLNFButton.cpp @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents 685e31447355
children
rev   line source
benoitrigolleau@159 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
benoitrigolleau@159 2
benoitrigolleau@159 3 /*
benoitrigolleau@159 4 Sound Access
benoitrigolleau@159 5 EASAIER client application.
benoitrigolleau@159 6 Silogic 2007. Benoit Rigolleau.
benoitrigolleau@159 7
benoitrigolleau@159 8 This program is free software; you can redistribute it and/or
benoitrigolleau@159 9 modify it under the terms of the GNU General Public License as
benoitrigolleau@159 10 published by the Free Software Foundation; either version 2 of the
benoitrigolleau@159 11 License, or (at your option) any later version. See the file
benoitrigolleau@159 12 COPYING included with this distribution for more information.
benoitrigolleau@159 13 */
benoitrigolleau@159 14
benoitrigolleau@159 15
benoitrigolleau@159 16 #include "RadialLNFButton.h"
benoitrigolleau@159 17 #include <QPainter>
benoitrigolleau@159 18 #include <QPalette>
benoitrigolleau@159 19
benoitrigolleau@159 20 RadialLNFButton::RadialLNFButton(QWidget *parent):QPushButton(parent)
benoitrigolleau@159 21 {
benoitrigolleau@159 22 this->setFlat(true);
benoitrigolleau@159 23 }
benoitrigolleau@159 24
benoitrigolleau@159 25 RadialLNFButton::RadialLNFButton (const QIcon & icon, const QString & text, QWidget * parent ):QPushButton(icon,text,parent)
benoitrigolleau@159 26 {
benoitrigolleau@159 27 this->setFlat(true);
benoitrigolleau@159 28 }
benoitrigolleau@159 29
benoitrigolleau@159 30 void RadialLNFButton::paintEvent(QPaintEvent *event)
benoitrigolleau@159 31 {
benoitrigolleau@159 32
benoitrigolleau@159 33
benoitrigolleau@159 34 QPainter painter(this);
benoitrigolleau@159 35 painter.setRenderHint(QPainter::Antialiasing, false);
benoitrigolleau@159 36 draw(&painter);
benoitrigolleau@159 37 QPushButton::paintEvent(event);
benoitrigolleau@159 38 }
benoitrigolleau@159 39
benoitrigolleau@159 40 void RadialLNFButton::draw(QPainter *painter)
benoitrigolleau@159 41 {
benoitrigolleau@159 42
benoitrigolleau@159 43 QPalette actualPalette;
benoitrigolleau@159 44 QColor color1 = actualPalette.color(QPalette::Highlight);
benoitrigolleau@159 45 QColor color2 = actualPalette.color(QPalette::Button);
benoitrigolleau@159 46 //QColor color3(QRgb(0xffffcc15));
benoitrigolleau@159 47
benoitrigolleau@159 48 color1.setAlpha(90);
benoitrigolleau@159 49 //color3.setAlpha(70)
benoitrigolleau@159 50 //color2.setAlpha(80);
benoitrigolleau@159 51
benoitrigolleau@159 52 //QColor color1(QRgb(0xffaaaaaa));
benoitrigolleau@159 53
benoitrigolleau@159 54 //QColor color2(QRgb(0xffdbf756));
benoitrigolleau@159 55 //color2.setAlpha(100);
benoitrigolleau@159 56
benoitrigolleau@159 57
benoitrigolleau@159 58 painter->setPen(QPen(palette().foreground(),1,Qt::NoPen,Qt::RoundCap));
benoitrigolleau@159 59
benoitrigolleau@159 60 /*
benoitrigolleau@159 61 int rectsize = this->width()/20;
benoitrigolleau@159 62 for(int i=0;i<=20;i++){
benoitrigolleau@159 63 if((i+m_ind)%2){
benoitrigolleau@159 64 painter->setBrush(QBrush(color1, Qt::SolidPattern));
benoitrigolleau@159 65 }
benoitrigolleau@159 66 else{
benoitrigolleau@159 67 painter->setBrush(QBrush(Qt::white, Qt::SolidPattern));
benoitrigolleau@159 68 }
benoitrigolleau@159 69 painter->drawRect(i*rectsize,0,this->width(), this->height());
benoitrigolleau@159 70 }
benoitrigolleau@159 71 */
benoitrigolleau@159 72
benoitrigolleau@159 73 QLinearGradient rectRadian(0,0,this->width(),0);
benoitrigolleau@159 74 rectRadian.setColorAt(0,color1);
benoitrigolleau@159 75 rectRadian.setColorAt(0.8,color2);
benoitrigolleau@159 76 rectRadian.setColorAt(1,color2);
benoitrigolleau@159 77
benoitrigolleau@159 78 painter->setPen(QPen(palette().foreground(),1,Qt::NoPen,Qt::RoundCap));
benoitrigolleau@159 79 painter->setBrush(rectRadian);
benoitrigolleau@159 80 painter->drawRect(0,0,this->width(), this->height());
benoitrigolleau@159 81 }