@ -208,32 +208,30 @@ namespace Oxygen
{
int nPoints = 5 ;
int values [ 5 ] = { 255 , 220 , 180 , 25 , 0 } ;
qreal x [ 5 ] = { 4.4 , 4.5 , 5 , 5.5 , 6.5 } ;
// the first point of this gradient does not scaled
QRadialGradient rg ( size , size , shadowSize ) ;
QColor c = color ;
// inner (shark) gradient
int nPoints = 7 ;
qreal x [ 7 ] = { 0 , 0.05 , 0.1 , 0.15 , 0.2 , 0.3 , 0.4 } ;
int values [ 7 ] = { 203 , 200 , 175 , 105 , 45 , 2 , 0 } ;
QRadialGradient rg = QRadialGradient ( size + 12.0 * hoffset , size + 12.0 * voffset , shadowSize ) ;
QColor c = shadowConfiguration . innerColor ( ) ;
for ( int i = 0 ; i < nPoints ; i + + )
{ c . setAlpha ( values [ i ] ) ; rg . setColorAt ( x [ 0 ] / shadowSize + ( x [ i ] - x [ 0 ] ) / fixedSize , c ) ; }
{ c . setAlpha ( values [ i ] ) ; rg . setColorAt ( x [ i ] , c ) ; }
p . setBrush ( rg ) ;
renderGradient ( p , shadow . rect ( ) , rg , noBorder ) ;
}
{
// this gradient scales with shadow size
int nPoints = 8 ;
qreal values [ 8 ] = { 1 , 0.58 , 0.43 , 0.30 , 0.22 , 0.15 , 0.08 , 0 } ;
qreal x [ 8 ] = { 0 , 4.5 , 5.5 , 6.5 , 7.5 , 8.5 , 11.5 , 14.4 } ;
if ( true ) {
// this gradient scales with shadow size
QRadialGradient rg ( size + hoffset , size + voffset , shadowSize ) ;
QColor c = shadowConfiguration . innerColor ( ) ;
// outer (spread) gradient
int nPoints = 7 ;
qreal x [ 7 ] = { 0 , 0.15 , 0.3 , 0.45 , 0.65 , 0.75 , 1 } ;
int values [ 7 ] = { 120 , 95 , 50 , 20 , 10 , 5 , 0 } ;
QRadialGradient rg = QRadialGradient ( size + 12.0 * hoffset , size + 12.0 * voffset , shadowSize ) ;
QColor c = shadowConfiguration . outerColor ( ) ;
for ( int i = 0 ; i < nPoints ; i + + )
{ c . setAlphaF ( values [ i ] ) ; rg . setColorAt ( x [ i ] / fixedSize , c ) ; }
{ c . setAlpha ( values [ i ] ) ; rg . setColorAt ( x [ i ] , c ) ; }
p . setBrush ( rg ) ;
p . drawRect ( shadow . rect ( ) ) ;
@ -243,22 +241,22 @@ namespace Oxygen
} else {
{
int nPoints = 9 ;
qreal values [ 9 ] = { 0.17 , 0.12 , 0.11 , 0.075 , 0.06 , 0.035 , 0.025 , 0.01 , 0 } ;
qreal x [ 9 ] = { 0 , 4.5 , 6.6 , 8.5 , 11.5 , 14.5 , 17.5 , 21.5 , 25 .5 } ;
QRadialGradient rg = QRadialGradient ( size + 20.0 * hoffset , size + 20.0 * voffset , shadowSize ) ;
QColor c = shadowConfiguration . out erColor( ) ;
// inner (sharp gradient)
int nPoints = 5 ;
qreal values [ 5 ] = { 1 , 0.32 , 0.22 , 0.03 , 0 } ;
qreal x [ 5 ] = { 0 , 4.5 , 5.0 , 5.5 , 6 .5 } ;
QRadialGradient rg = QRadialGradient ( size + hoffset , size + voffset , shadowSize ) ;
QColor c = shadowConfiguration . inn erColor( ) ;
for ( int i = 0 ; i < nPoints ; i + + )
{ c . setAlphaF ( values [ i ] ) ; rg . setColorAt ( x [ i ] / fixedSize , c ) ; }
p . setBrush ( rg ) ;
p . drawRect ( shadow . rect ( ) ) ;
renderGradient ( p , shadow . rect ( ) , rg , noBorder ) ;
}
{
// mid gradient
int nPoints = 7 ;
qreal values [ 7 ] = { 0.55 , 0.25 , 0.20 , 0.1 , 0.06 , 0.015 , 0 } ;
qreal x [ 7 ] = { 0 , 4.5 , 5.5 , 7.5 , 8.5 , 11.5 , 14.5 } ;
@ -273,15 +271,18 @@ namespace Oxygen
}
{
int nPoints = 5 ;
qreal values [ 5 ] = { 1 , 0.32 , 0.22 , 0.03 , 0 } ;
qreal x [ 5 ] = { 0 , 4.5 , 5.0 , 5.5 , 6.5 } ;
QRadialGradient rg = QRadialGradient ( size + hoffset , size + voffset , shadowSize ) ;
QColor c = shadowConfiguration . innerColor ( ) ;
// outer (spread) gradient
int nPoints = 9 ;
qreal values [ 9 ] = { 0.17 , 0.12 , 0.11 , 0.075 , 0.06 , 0.035 , 0.025 , 0.01 , 0 } ;
qreal x [ 9 ] = { 0 , 4.5 , 6.6 , 8.5 , 11.5 , 14.5 , 17.5 , 21.5 , 25.5 } ;
QRadialGradient rg = QRadialGradient ( size + 20.0 * hoffset , size + 20.0 * voffset , shadowSize ) ;
QColor c = shadowConfiguration . outerColor ( ) ;
for ( int i = 0 ; i < nPoints ; i + + )
{ c . setAlphaF ( values [ i ] ) ; rg . setColorAt ( x [ i ] / fixedSize , c ) ; }
renderGradient ( p , shadow . rect ( ) , rg , noBorder ) ;
p . setBrush ( rg ) ;
p . drawRect ( shadow . rect ( ) ) ;
}
@ -295,10 +296,8 @@ namespace Oxygen
lg . setColorAt ( 1.0 , oxygenHelper ( ) - > backgroundBottomColor ( color ) ) ;
// draw ellipse.
// note: special tricks are needed to cope with some rounding issues when size is not an integer.
p . setBrush ( lg ) ;
int sizeInt ( size ) ;
p . drawEllipse ( QRectF ( sizeInt - 4 , sizeInt - 4 , 8 + 2 * ( size - sizeInt ) , 8 + 2 * ( size - sizeInt ) ) ) ;
p . drawEllipse ( QRectF ( size - 4 , size - 4 , 8 , 8 ) ) ;
p . end ( ) ;
return shadow ;