FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Dialog Color / Gradient
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Dialog Color / Gradient
Posted: Wed Jan 11, 2017 08:22 PM

Rick, Thanks to you for everything

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 708
Joined: Fri Oct 28, 2005 09:53 AM
Re: Dialog Color / Gradient
Posted: Fri Jan 13, 2017 07:41 PM

Dear Rick,

Thank you!

*~*~*~*~*~*~*~*~*~*
Darrell Ortiz
CDM Software Solutions, Inc.
https://www.cdmsoft.com
Posts: 708
Joined: Fri Oct 28, 2005 09:53 AM
Re: Dialog Color / Gradient
Posted: Fri Jan 13, 2017 07:41 PM

Dear Cristobal,

Thank you very much!

Sincerely,

*~*~*~*~*~*~*~*~*~*
Darrell Ortiz
CDM Software Solutions, Inc.
https://www.cdmsoft.com
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Dialog Color / Gradient
Posted: Wed Jan 18, 2017 02:15 AM
New better version

To all users: please, add new themes


Code (fw): Select all Collapse
//----------------------------------------------------------------------------//
// Gradient for Dialogs: Thanks to Rick Lipkin
//----------------------------------------------------------------------------//
Function GradDlgs( cTheme )

聽 聽local x
聽 聽local aGrad 聽 聽:= {}
聽 聽local aTmp 聽 聽 := {}
聽 聽local aThemes 聽:= {;
聽 聽 聽 聽 聽{ "SolidWhite", { { 0.5, nRGB( 255, 255, 255 ), nRGB( 255, 255, 255 ) } } }, ;
聽 聽 聽 聽 聽{ "BlueGreen", { { 1.00, 14671839, 7419904 }, { 1.00, 7419904, 14671839 } } }, ;
聽 聽 聽 聽 聽{ "SolidGreenBlue", { { 0.01, 9994298, 9994298 },{ 0.01, 9994298, 9994298 } } },;
聽 聽 聽 聽 聽{ "SolidDarkBlue", { { 0.50, 4720905, 4720905 }, { 0.50, 4720905, 4720905 } } }, ;
聽 聽 聽 聽 聽{ "SolidBlue", { { 0.01, 16711680, 16711680 },{ 0.01, 16711680, 16711680 } } }, ;
聽 聽 聽 聽 聽{ "DarkBlue", { { 0.0, 8388608, 13619151 },{ 0.0, 13619151, 8388608 } } }, ;
聽 聽 聽 聽 聽{ "LightGreen", { { .50, nRGB(210,235,216), nRGB( 255, 255, 255 ) } } }, ;
聽 聽 聽 聽 聽{ "LightBlue", { { .50, nRGB( 201, 217, 237 ), nRGB( 231, 242, 255 ) } } }, ;
聽 聽 聽 聽 聽{ "LightGrey", { { .50, nRGB( 216, 216, 216 ), nRGB( 255, 255, 255 ) } } }, ;
聽 聽 聽 聽 聽{ "Standard", { { .50, nRGB( 236, 233, 216 ), nRGB( 255, 255, 255 ) } } }, ;
聽 聽 聽 聽 聽{ "DarkGrey", { { 0.87, 16777215, 11513775 },{ 0.87,11513775, 16777215 } } }, ;
聽 聽 聽 聽 聽{ "SolidGrey", { { .50, nRGB( 233, 233, 233 ), nRGB( 233, 233, 233 ) } } }, ;
聽 聽 聽 聽 聽{ "SolidChoral", { { 0.01,8388736,8388736 },{ 0.01,8388736,8388736 } } }, ;
聽 聽 聽 聽 聽{ "LightYellow", { { 0.01,8440801,16777215 },{ 0.75,16777215,8440801 } } }, ;
聽 聽 聽 聽 聽{ "GreenBlue", { { .50, nRGB( 192, 192, 192 ), nRGB( 45, 121, 147 ) } } } ;
聽 聽 聽 聽 }
聽 聽DEFAULT cTheme := ""

聽 聽if Valtype( cTheme ) == "C"
聽 聽 聽 AEVal( aThemes, { | a | AAdd( aTmp, Upper( a[ 1 ] ) ) } )
聽 聽 聽 x := Ascan( aTmp, Upper( cTheme ) )
聽 聽 聽 if !Empty( x )
聽 聽 聽 聽 聽aGrad := aThemes[ x ][ 2 ] 聽
聽 聽 聽 endif
聽 聽else
聽 聽 聽 if Valtype( cTheme ) == "A"
聽 聽 聽 聽 聽aGrad 聽 := cTheme
聽 聽 聽 endif
聽 聽endif
聽 聽if !Empty( aGrad )
聽 聽 聽 SetDlgGradient( aGrad )
聽 聽endif

Return aThemes

//----------------------------------------------------------------------------//
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Dialog Color / Gradient
Posted: Wed Jan 18, 2017 01:14 PM
Mr Rao send me this comment and image


Gradient { { 0.0, 8388608, 13619151 },{ 0.0, 13619151, 8388608 } }
is same as { { 1, 13619151, 8388608 } }
The first element of { 0.0, 8388608, 13619151 } is ignored when painting.

Gradient spec is like this
{ { n1, clr11, clr12 }, ;
{ n2, clr21, clr22 }, ;
........
{ nN, clrN1, clrN2 } }

Where n1 + n2 + ... nN = 1
If this total is > 1, gradients above 1 are ignored
if this total is < 1 last gradient is streched.

First gradient is painted in dlg:nheight * n1 pixels
Second gradient is painted in dlg:nheight * n2 pixels
and so on.
To get a better understanding please see the gradient painting logic

If the intention is to paint both gradients the specification should be something like this:
{ { 0.5, 8388608, 13619151 },{ 0.5, 13619151, 8388608 } }
( 0.5 and 0.5 can be 0.3 and 0.7 or 0.6 and 0.4, etc where both add up to 1.0 )




Very important for the correct definition of gradients
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 708
Joined: Fri Oct 28, 2005 09:53 AM
Re: Dialog Color / Gradient
Posted: Wed Jan 18, 2017 02:10 PM

Gracias Cristobal!

*~*~*~*~*~*~*~*~*~*
Darrell Ortiz
CDM Software Solutions, Inc.
https://www.cdmsoft.com
Posts: 163
Joined: Thu Mar 16, 2017 04:08 PM
Re: Dialog Color / Gradient
Posted: Mon Oct 28, 2024 04:35 AM

Estimados todos.

Se tiene alguna actualizaci贸n para esta funci贸n.

Saludos

Fernando Espinoza A.

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Dialog Color / Gradient
Posted: Mon Oct 28, 2024 01:12 PM
nanoespinoza wrote:Estimados todos.

Se tiene alguna actualizaci贸n para esta funci贸n.

Saludos

Fernando Espinoza A.
Buenos d铆as Fernando. 驴Qu茅 te falta?
Code (fw): Select all Collapse
// C:\FWH\SAMPLES\GRADDLGS.PRG - 20/12/2017. - Very good.

#Include "FiveWin.ch"

FUNCTION Main()

聽 聽LOCAL oFont
聽 聽LOCAL oDlg, oGet, oBtn, aGet := ARRAY(10)
聽 聽LOCAL cTest 聽:= SPACE(12)
聽 聽LOCAL nTest 聽:= 1234567

聽 聽SET _3DLOOK ON

聽 聽DEFINE FONT oFont NAME "Ms Sans Serif" 聽SIZE 00, -14 BOLD

聽 聽DEFINE DIALOG oDlg TITLE "DlgGradient" FROM 2, 2 TO 15, 50 FONT oFont

聽 聽oDlg:lHelpIcon := .F.

聽 聽@ 1.5, 02 GET aGet[6] VAR cTest OF oDlg SIZE 120, 12 PIXEL FONT oFont ;
聽 聽 聽 PICTURE "@KR 9,999,999.99" UPDATE

聽 聽@ 4.5, 4 BUTTON oBtn PROMPT "&Ok" SIZE 45, 12 OF oDlg ;
聽 聽 聽 ACTION ( oDlg:End(), MsgInfo( cTest ) ) DEFAULT

聽 聽@ 4.5, 15 BUTTON "&Cancel" SIZE 45, 12 OF oDlg ACTION ( oDlg:End() ) CANCEL

聽 聽GradDlgs( "SolidChoral" )

聽 聽ACTIVATE DIALOG oDlg CENTERED

聽 聽oFont:End()

RETURN NIL
// ----------------------------------------------------------------------------//
// Gradient for Dialogs: Thanks to Rick Lipkin
// ----------------------------------------------------------------------------//
FUNCTION GradDlgs( cTheme )

聽 聽LOCAL x
聽 聽LOCAL aGrad 聽 聽:= {}
聽 聽LOCAL aTmp 聽 聽 := {}
聽 聽LOCAL aThemes 聽:= { ;
聽 聽 聽 { "SolidWhite", 聽 聽 { { 0.5, nRGB( 255, 255, 255 ), nRGB( 255, 255, 255 ) } } }, ;
聽 聽 聽 { "BlueGreen", 聽 聽 聽{ { 1.00, 14671839, 7419904 }, { 1.00, 7419904, 14671839 } } }, ;
聽 聽 聽 { "SolidGreenBlue", { { 0.01, 9994298, 9994298 }, { 0.01, 9994298, 9994298 } } }, ;
聽 聽 聽 { "SolidDarkBlue", 聽{ { 0.50, 4720905, 4720905 }, { 0.50, 4720905, 4720905 } } }, ;
聽 聽 聽 { "SolidBlue", 聽 聽 聽{ { 0.01, 16711680, 16711680 }, { 0.01, 16711680, 16711680 } } }, ;
聽 聽 聽 { "DarkBlue", 聽 聽 聽 { { 0.0, 8388608, 13619151 }, { 0.0, 13619151, 8388608 } } }, ;
聽 聽 聽 { "LightGreen", 聽 聽 { { .50, nRGB( 210, 235, 216 ), nRGB( 255, 255, 255 ) } } }, ;
聽 聽 聽 { "LightBlue", 聽 聽 聽{ { .50, nRGB( 201, 217, 237 ), nRGB( 231, 242, 255 ) } } }, ;
聽 聽 聽 { "LightGrey", 聽 聽 聽{ { .50, nRGB( 216, 216, 216 ), nRGB( 255, 255, 255 ) } } }, ;
聽 聽 聽 { "Standard", 聽 聽 聽 { { .50, nRGB( 236, 233, 216 ), nRGB( 255, 255, 255 ) } } }, ;
聽 聽 聽 { "DarkGrey", 聽 聽 聽 { { 0.87, 16777215, 11513775 }, { 0.87, 11513775, 16777215 } } }, ;
聽 聽 聽 { "SolidGrey", 聽 聽 聽{ { .50, nRGB( 233, 233, 233 ), nRGB( 233, 233, 233 ) } } }, ;
聽 聽 聽 { "SolidChoral", 聽 聽{ { 0.01, 8388736, 8388736 }, { 0.01, 8388736, 8388736 } } }, ;
聽 聽 聽 { "LightYellow", 聽 聽{ { 0.01, 8440801, 16777215 }, { 0.75, 16777215, 8440801 } } }, ;
聽 聽 聽 { "GreenBlue", 聽 聽 聽{ { .50, nRGB( 192, 192, 192 ), nRGB( 45, 121, 147 ) } } } ;
聽 聽 聽 }

聽 聽DEFAULT cTheme := ""

聽 聽IF ValType( cTheme ) == "C"

聽 聽 聽 AEval( aThemes, {| a | AAdd( aTmp, Upper( a[ 1 ] ) ) } )
聽 聽 聽 x := AScan( aTmp, Upper( cTheme ) )

聽 聽 聽 IF !Empty( x )
聽 聽 聽 聽 聽aGrad := aThemes[ x ][ 2 ]
聽 聽 聽 ENDIF

聽 聽ELSE

聽 聽 聽 IF ValType( cTheme ) == "A"
聽 聽 聽 聽 聽aGrad 聽 := cTheme
聽 聽 聽 ENDIF

聽 聽ENDIF

聽 聽IF .NOT. Empty( aGrad )

聽 聽 聽 SetDlgGradient( aGrad )

聽 聽ENDIF

RETURN( aThemes )
// -------------------
FUNCTION 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 )

// ---------------------------
FUNCTION BlueGreenGrad()

聽 聽LOCAL xGrad4 := 聽{ { 1.00, 14671839, 聽 7419904 }, { 1.00, 7419904, 聽14671839 } } 聽 // med blue

聽 聽SetDlgGradient( xGrad4 )

RETURN NIL

// ---------------------
FUNCTION SolidGreenBlue()

聽 聽SetDlgGradient( { { 0.01, 9994298, 9994298 }, { 0.01, 9994298, 9994298 } } )

RETURN NIL


// -------------
FUNCTION SolidDarkBlue()

聽 聽SetDlgGradient( { { 0.50, 4720905, 4720905 }, { 0.50, 4720905, 4720905 } } )

RETURN NIL

// -------------------
FUNCTION SolidBlue()

聽 聽SetDlgGradient( { { 0.01, 16711680, 16711680 }, { 0.01, 16711680, 16711680 } } )

RETURN NIL

// ------------------
FUNCTION DarkBlueGrad()

聽 聽SetDlgGradient( { { 0.0, 8388608, 13619151 }, { 0.0, 13619151, 8388608 } } )

RETURN NIL

// --------------
FUNCTION LightGreenGrad()

聽 聽SetDlgGradient( { { .50, nRGB( 210, 235, 216 ), nRGB( 255, 255, 255 ) } } )

RETURN NIL

// ------------------
FUNCTION LightBlueGrad()

聽 聽SetDlgGradient( { { .50, nRGB( 201, 217, 237 ), nRGB( 231, 242, 255 ) } } )

RETURN NIL

// ------------------
FUNCTION LightGreyGrad()

聽 聽SetDlgGradient( { { .50, nRGB( 216, 216, 216 ), nRGB( 255, 255, 255 ) } } )

RETURN NIL

// -----------------
FUNCTION StandardGrad()

聽 聽SetDlgGradient( { { .50, nRGB( 236, 233, 216 ), nRGB( 255, 255, 255 ) } } )

RETURN NIL

// --------------------
FUNCTION DarkGreyGrad()

聽 聽SetDlgGradient( { { 005.9000, 14671839, 4144959 聽}, { 0.1, 4144959, 14671839 聽} } ) 聽 聽 聽 聽 聽// .80

RETURN NIL

// ------------------------------------
FUNCTION SolidWhite()

聽 聽SetDlgGradient( { { 0.01, 16777215, 16777215 }, { 0.01, 16777215, 16777215 } } )

RETURN NIL

// --------------------
FUNCTION SolidGrey()

聽 聽SetDlgGradient( { { .50, nRGB( 233, 233, 233 ), nRGB( 233, 233, 233 ) } } )

RETURN NIL

// --------------------
FUNCTION SolidChoral()

聽 聽SetDlgGradient( aGrad := { { 0.01, 8388736, 8388736 }, { 0.01, 8388736, 8388736 } } )

RETURN NIL

// -----------------
FUNCTION LightYellow()

聽 聽SetDlgGradient( { { 0.01, 8440801, 16777215 }, { 0.75, 16777215, 8440801 } } )

RETURN NIL

// -------------------
FUNCTION GreenBlueGrad()

聽 聽SetDlgGradient( { { .50, nRGB( 192, 192, 192 ), nRGB( 45, 121, 147 ) } } )

RETURN NIL

// FIN / END
Regards, saludos.
Jo茫o Santos - S茫o Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 163
Joined: Thu Mar 16, 2017 04:08 PM
Re: Dialog Color / Gradient
Posted: Tue Oct 29, 2024 02:24 AM

No es tanto como que le falte algo, sino, que consultaba si ten铆a alguna mejora visual importante.

Continue the discussion