Hi all,
could someone tell me where to find information about how to build gradiants?
Thanks,
Detlef
Hi all,
could someone tell me where to find information about how to build gradiants?
Thanks,
Detlef
aGradient := { ;
{ size1, clrStart1, clrEnd1 }, ;
{ size2, clrStart2, clrEnd2 }, ;
....
{ sizeN, clrStartN, clrEndN } [, lOrient] }
All sizes are fractions less than 1 and total of all sizes should be 1.0
Optionsl lOrient: .T. for Vertical ( default )
.F. for Horizontal
"RING" for ring gradient
We can fill parts of window/dialog/control with
FillRectEx( hDC, aRect, aGrad )
We can also define gradient brush and assign to a window
DEFINE BRUSH oBrush GRADIENT aGrad
Brushes get automatically resized when window gets resized
#include "fivewin.ch"
//----------------------------------------------------------------------------//
function Main()
local oWnd
local aGradV := ;
{ { 0.20, CLR_BLUE, CLR_HBLUE } ;
, { 0.30, CLR_HBLUE, CLR_WHITE } ;
, { 0.30, CLR_WHITE, CLR_HGREEN } ;
, { 0.20, CLR_HGREEN, CLR_GREEN } ;
, .T. ; // .t. for vertical and .f. for horizontal (defaul .t.)
}
local aGradH := ;
{ { 0.20, CLR_BLUE, CLR_HBLUE } ;
, { 0.30, CLR_HBLUE, CLR_WHITE } ;
, { 0.30, CLR_WHITE, CLR_HGREEN } ;
, { 0.20, CLR_HGREEN, CLR_GREEN } ;
, .F. ; // .t. for vertical and .f. for horizontal (defaul .t.)
}
local aGradR := ;
{ { 0.20, CLR_BLUE, CLR_HBLUE } ;
, { 0.30, CLR_HBLUE, CLR_WHITE } ;
, { 0.30, CLR_WHITE, CLR_HGREEN } ;
, { 0.20, CLR_HGREEN, CLR_GREEN } ;
, "RING" ;
}
DEFINE WINDOW oWnd FROM 0,0 TO 800,800 PIXEL
oWnd:bPainted := < |hDC|
FillRectEx( hDC, { 100, 100, 200, 300 }, aGradV )
FillRectEx( hDC, { 100, 400, 200, 600 }, aGradH )
FillRectEx( hDC, { 300, 100, 500, 300 }, aGradR )
return nil
>
ACTIVATE WINDOW oWnd CENTERED
return nil
//----------------------------------------------------------------------------//
Many thanks, Mr. Rao for this excellent information.
//-------------------
Func GreyButtonGrad()
// 2010 grey button skin
Local bGrad
bGrad := { | lInvert | If( ! lInvert, ;
{ { 1, nRGB( 255, 255, 255 ), nRGB( 207, 207, 207 ) } }, ;
{ { 1/3, nRGB( 255, 253, 222 ), nRGB( 255, 231, 151 ) }, ;
{ 2/3, nRGB( 255, 215, 84 ), nRGB( 255, 233, 162 ) } } ) }
Return( bGrad )
//---------------------------
Func BlueGreenGrad()
Local xGrad4 := {{ 1.00,14671839, 7419904 }, { 1.00,7419904, 14671839 }} // med blue
SetDlgGradient( xGrad4 )
Return(nil)
//---------------------
Func SolidGreenBlue()
SetDlgGradient({ { 0.01,9994298,9994298 },{ 0.01,9994298,9994298 } })
Return(nil)
//-------------
Func SolidDarkBlue()
SetDlgGradient( { { 0.50,4720905,4720905 },{ 0.50,4720905,4720905 } })
Return(nil)
//-------------------
Func SolidBlue()
SetDlgGradient( { { 0.01,16711680,16711680 },{ 0.01,16711680,16711680 } })
Return(nil)
//------------------
Func DarkBlueGrad()
SetDlgGradient({ { 0.0,8388608,13619151 },{ 0.0,13619151,8388608 } })
Return(nil)
//--------------
Func LightGreenGrad()
SetDlgGradient( { { .50, nRGB(210,235,216), nRGB( 255, 255, 255 ) } } )
Return(nil)
//------------------
Func LightBlueGrad()
SetDlgGradient( { { .50, nRGB( 201, 217, 237 ), nRGB( 231, 242, 255 ) } } )
Return(nil)
//------------------
Func LightGreyGrad()
SetDlgGradient( { { .50, nRGB( 216, 216, 216 ), nRGB( 255, 255, 255 ) } } )
Return(nil)
//-----------------
Func StandardGrad()
SetDlgGradient( { { .50, nRGB( 236, 233, 216 ), nRGB( 255, 255, 255 ) } } )
Return(nil)
//--------------------
Func DarkGreyGrad()
SetDlgGradient({{ 005.9000, 14671839, 4144959 },{ 0.1, 4144959, 14671839 }}) // .80
Return(nil)
//------------------------------------
Func SolidWhite()
SetDlgGradient( { { 0.01,16777215,16777215 },{ 0.01,16777215,16777215 } })
Return(nil)
//--------------------
Func SolidGrey()
SetDlgGradient( { { .50, nRGB( 233, 233, 233 ), nRGB( 233, 233, 233 ) } } )
Return(nil)
//--------------------
Func SolidChoral()
SetDlgGradient(aGrad := { { 0.01,8388736,8388736 },{ 0.01,8388736,8388736 } })
Return(nil)
//-----------------
Func LightYellow()
SetDlgGradient( { { 0.01,8440801,16777215 },{ 0.75,16777215,8440801 } })
Return(nil)
//-------------------
Func GreenBlueGrad()
SetDlgGradient( { { .50, nRGB( 192, 192, 192 ), nRGB( 45, 121, 147 ) } } )
Return(nil)All sizes are fractions less than 1 and total of all sizes should be 1.0

