RIBBONBAR COLORS SET STYLE

Post Reply
User avatar
Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

RIBBONBAR COLORS SET STYLE

Post by Silvio »

Dear Friends,
I made some modifies on Ribbon Class



Skin feature

I made 4 style
1 = blue Normal default ( 2007)
2 = black
3 = Silver
4= Office 2010




to first you must createa new file SkinRb.ch

and insert this lines and save it


#define BLACK0 RGB(50,50,49)
#define BLACK1 RGB(83,83,83)
#define BLACK3 RGB(184,185,184)
#define BLACKBOX0 RGB(172,175,175)
#define BLACKBOX1 RGB(83,83,83)
#define BLACKBOX2 RGB(184,185,184)
#define BLACK2 RGB(172,175,175)

#define SILVER0 RGB(189,195,204)
#define SILVER1 RGB(208,212,221)
#define SILVER3 RGB(220,223,232)
#define SILVERBOX0 RGB(189,195,204)
#define SILVERBOX1 RGB(208,212,221)
#define SILVERBOX2 RGB(119,114,99)
#define SILVER2 RGB(209,213,224)

#define OFFICE20100 RGB(255,255,255)
#define OFFICE20101 RGB(233,241,246)
#define OFFICE20103 RGB(237,239,242)
#define OFFICE2010BOX0 RGB(255,255,255)
#define OFFICE2010BOX1 RGB(233,241,246)
#define OFFICE2010BOX2 RGB(208,212,221)
#define OFFICE20102 RGB(237,239,242)



then you must add on Ribbon.ch before of #endif this line


#command SET RIBBONBAR STYLE <nstyle> ;
[ OF <oRBAR> ] ;
=> ;
<oRBAR>:SetStyle( <nstyle> )




the you must add to tribbon.prg class :

#include "SkinRb.ch"

CLASS TRibbonBar FROM TControl
...

DATA color0,color1,colorBox0,Colorbox1
DATA RibbonStyle




METHOD SetStyle( nStyle )

....
ENDCLASS


then you must add this method to bottom of the class

Code: Select all

 METHOD SetStyle( nStyle ) CLASS TRibbonBar
    local hBmp
    local n, j, z, oControl
 do case
 case nStyle == 1    // Blue  Normal Default
           ::color0         :=  BLUE0
           ::color1         :=   BLUE1
           ::colorBox0       :=  BLUEBOX0
           ::Colorbox1       :=  BLUEBOX1
           ::aGrad        := { {0.12, ::color0 , ::color0  }, { 0.70, ::color1, ::color0  }, { 0.18, ::color0 , CLR_WHITE }}
           ::aGradFld      := { { 1, CLR_WHITE, ::color0  }  }
           ::aGradHigh     := { { 1, BLUE3, RGB( 202,172,136 ) } }
           ::aGradOver     := { { 1, RGB( 197,221,251), RGB( 226,209,162)} }

           ::nClrBoxOut    := BLUEBOX0
           ::nClrBoxIn     := BLUEBOX2
           ::nClrBoxSelOut := YELBOX0
           ::nClrBoxSelIn  := YELBOX1
           ::nClrPaneRB    := BLUE3



   case nStyle == 2  //Black
           ::color0         :=  BLACK0
           ::color1         :=  BLACK1
           ::colorBox0       :=  BLACKBOX0
           ::Colorbox1       :=  BLACKBOX1
           ::aGrad         := { {0.12, BLACK0, BLACK0 }, { 0.70, BLACK1, BLACK0 }, { 0.18, BLACK0, CLR_WHITE }}
           ::aGradFld      := { { 1, CLR_WHITE, BLACK0 }  }
           ::aGradHigh     := { { 1, BLACK3, BLACK1 } }
           ::aGradOver     := { { 1, BLACK0, BLACK0} }


           ::nClrBoxOut    := BLACKBOX0
           ::nClrBoxIn     := BLACKBOX2
           ::nClrBoxSelOut := YELBOX0
           ::nClrBoxSelIn  := YELBOX1
           ::nClrPaneRB    := BLACK3

   case nStyle == 3  //Silver
           ::color0         :=  SILVER0
           ::color1         :=   SILVER1
           ::colorBox0       :=  SILVERBOX0
           ::Colorbox1       :=  SILVERBOX1
           ::aGrad         := { {0.12, SILVER0, SILVER0 }, { 0.70, SILVER1, SILVER0 }, { 0.18, SILVER0, CLR_WHITE }}
           ::aGradFld      := { { 1, CLR_WHITE, SILVER0 }  }
           ::aGradHigh     := { { 1, SILVER3, RGB( 202,172,136 ) } }
           ::aGradOver     := { { 1, RGB( 197,221,251), RGB( 226,209,162)} }

           ::nClrBoxOut    := SILVERBOX0
           ::nClrBoxIn     := SILVERBOX2
           ::nClrBoxSelOut := YELBOX0
           ::nClrBoxSelIn  := YELBOX1
           ::nClrPaneRB   := SILVER3


   case nStyle == 4  //Office2010
                 ::color0          := OFFICE20100
                 ::color1          := OFFICE20101
                 ::colorBox0       := OFFICE2010BOX0
                 ::Colorbox1       := OFFICE2010BOX1
                 ::aGrad         := { {0.12, OFFICE20100 , OFFICE20100 }, { 0.70, OFFICE20101, OFFICE20100  }, { 0.18, OFFICE20100 , CLR_WHITE }}
                 ::aGradFld      := { { 1, CLR_WHITE, OFFICE20100  }  }
                 ::aGradHigh     := { { 1, OFFICE20103, RGB( 202,172,136 ) } }
                 ::aGradOver     := { { 1, RGB( 197,221,251), RGB( 226,209,162)} }


           ::nClrBoxOut    := OFFICE2010BOX0
           ::nClrBoxIn     := OFFICE2010BOX2
           ::nClrBoxSelOut := YELBOX0
           ::nClrBoxSelIn  := YELBOX1
           ::nClrPaneRB   := OFFICE20103



         otherwise

               if ::bStyle != nil
                 eval( ::bStyle, self )
        endif

     endcase


  //From Function Change_Colors of Antonio Linares

   hBmp := GradientBmp( self, ::nRight - ::nRightMargin - 3,;
                             ::nBottom - ::nTopMargin +1, ::aGrad )
  DeleteObject( ::hBrushEx )
  ::hBrushEx = CreatePatternBrush( hBmp )
  DeleteObject( hBmp )
  ::Refresh()
  for n = 1 to Len( ::aDialogs )
     DeleteObject( ::aDialogs[ n ]:hBack )
     ::aDialogs[ n ]:hBack = ::hBrushEx
     if ! Empty( ::aDialogs[ n ]:aControls )
        for j = 1 to len( ::aDialogs[ n ]:aControls )
           oControl = ::aDialogs[ n ]:aControls[ j ]
           if oControl:ClassName() == "TRBGROUP" .or.  oControl:ClassName() =="TRBTN"
              DeleteObject( oControl:hBrushUnsel )
              oControl:hBrushUnsel = ::hBrushEx
              DeleteObject( oControl:hBrushSel )
              oControl:hBrushSel = nil
              oControl:SetStyle(nStyle )
           endif
        next
     endif
    ::aDialogs[ n ]:Refresh()
  next
  return 0
 


then you must modify trbgroup.prg


#include "SkinRb.ch"

ADD this method

METHOD SetStyle( nStyle )
...
ENDCLASS


and on the bottom add this method

Code: Select all

 METHOD SetStyle( nStyle )  CLASS TRBGroup
 local hBmp
 local n, j, z, oControl

 do case
    case nStyle == 1    // Blue  Normal Default
           ::nClrBoxIn              := BLUEBOX2
           ::nClrBoxOut             := BLUEBOX0
           ::aGradSel               := { {0.1, BLUE0, BLUE0 }, { 0.9, BLUE1, BLUE0 } }
            ::aGradCaption = { { 0.3, BLUE0,BLUE0 }, ;
                            { 0.7, BLUE0, BLUE1 } }

            ::aGradDisable           := { {0.17,RGB( 245,245,245 ),RGB( 245,245,245 ) },;
                                         { 0.83,RGB( 233,233,233 ), RGB( 233,233,233 ) } }


           ::aGradDisableCaption    := { {1,RGB( 220,220,220 ),RGB( 220,220,220 ) } }



    case nStyle == 2  //Black
           ::nClrBoxIn              := BLACKBOX2
           ::nClrBoxOut             := BLACKBOX0
           ::aGradSel               := { {0.1, BLACK0, BLACK0 }, { 0.9, BLACK1, BLACK0 } }
           ::aGradCaption = { { 0.3, BLACK0,BLACK0 }, ;
                            { 0.7, BLACK0, BLACK1 } }
             ::aGradDisable           := { {0.17,RGB( 245,245,245 ),RGB( 245,245,245 ) },;
                                         { 0.83,RGB( 233,233,233 ), RGB( 233,233,233 ) } }

           ::aGradDisableCaption    := { {1,RGB( 220,220,220 ),RGB( 220,220,220 ) } }


    case nStyle == 3  //Silver
           ::nClrBoxIn              := SILVERBOX2
           ::nClrBoxOut             := SILVERBOX0
           ::aGradSel               := { {0.1, SILVER0, SILVER0 }, { 0.9, SILVER1, SILVER0 } }
            ::aGradCaption = { { 0.3, SILVER0,SILVER0 }, ;
                            { 0.7, SILVER0, SILVER1 } }
            ::aGradDisable           := { {0.17,RGB( 245,245,245 ),RGB( 245,245,245 ) },;
                                         { 0.83,RGB( 233,233,233 ), RGB( 233,233,233 ) } }

           ::aGradDisableCaption    := { {1,RGB( 220,220,220 ),RGB( 220,220,220 ) } }



    case nStyle == 4  //wINDOWS 7  OFFICE2010

           ::nClrBoxIn              := OFFICE2010BOX2
           ::nClrBoxOut             := OFFICE2010BOX0
           ::aGradSel               := { {0.1, OFFICE20100, OFFICE20100 }, { 0.9, OFFICE20101, OFFICE20100 } }
            ::aGradCaption = { { 0.3,OFFICE20100,OFFICE20100 }, ;
                            { 0.7, OFFICE20100, OFFICE20101 } }
           ::aGradDisable           := { {0.17,RGB( 245,245,245 ),RGB( 245,245,245 ) } ,;
                                         { 0.83,RGB( 233,233,233 ), RGB( 233,233,233 ) } }
           ::aGradDisableCaption    := { {1,RGB( 220,220,220 ),RGB( 220,220,220 ) } }




         otherwise

               if ::bStyle != nil
                 eval( ::bStyle, self )
        endif

     endcase

        ::refresh()

  return 0

 



If you made these modifies you can call 4 styles for your ribbonbar

sample :

DEFINE RIBBONBAR oRBar WINDOW oWnd PROMPT "Configuración", "Ficheros", "Informes", "Ayudas" HEIGHT 133 TOPMARGIN 25

ADD GROUP oGr1 RIBBON oRBar TO OPTION 1 PROMPT "Font" WIDTH 205

ADD GROUP oGr2 RIBBON oRBar TO OPTION 1 PROMPT "Paragraph" WIDTH 215

ADD GROUP oGr3 RIBBON oRBar TO OPTION 1 PROMPT "Styles" WIDTH 75 BITMAP ".\bitmaps\style16.BMP"

ADD GROUP oGr4 RIBBON oRBar TO OPTION 1 PROMPT "Editing"

....

SET RIBBONBAR STYLE 4 OF oRBar
Best Regards, Saludos

Falconi Silvio
lailton.webmaster
Posts: 603
Joined: Sun May 04, 2008 8:44 pm

Re: RIBBONBAR COLORS SET STYLE

Post by lailton.webmaster »

Silvio, Nice Job.

:D
User avatar
ukservice
Posts: 417
Joined: Tue Feb 23, 2010 3:09 pm
Location: John

Re: RIBBONBAR COLORS SET STYLE

Post by ukservice »

Mr. Silvio,

Thank you very much for sharing. I think the changes should be added to FW to avoid changing classes with every montly version.

Also, similar changes should be made to menu, tabs and SET MESSAGE OF oWndMain.

So that is why I suggest a general parameter to activate 2010 look in general, and also indicate the theme (Office 2010 standard, bue, black, ...).

Thank you.
FWH 11.11, Harbour 3.1 and Borland C++ 5.82
User avatar
James Bott
Posts: 4654
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Re: RIBBONBAR COLORS SET STYLE

Post by James Bott »

Nice job Silvio.

It this were to be added to FW, I would suggest two changes. First, since STYLE already has another meaning in FW (and Windows) I would change yours to SKIN.

And I would create some manifest constants for the different SKINs, like SKIN_BLUE, SKIN_BLACK, SKIN_OFFICE2010.

Example:

DEFINE RIBBONBAR...SKIN SKIN_OFFICE2010

Regards,
James
User avatar
Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: RIBBONBAR COLORS SET STYLE

Post by Silvio »

Sorry,
No I cannot make anything I am stop

I had a acer ferrari and it is stopped on nov 2010

I 'm waiting a new pc portable from 06.12.2010
Asus G73W ( 8 gb, 1.5G graphic card, Intel 7, blueray ...)
Best Regards, Saludos

Falconi Silvio
User avatar
ukservice
Posts: 417
Joined: Tue Feb 23, 2010 3:09 pm
Location: John

Re: RIBBONBAR COLORS SET STYLE

Post by ukservice »

Hello,

Will be ready in FW 2011.01?.

Thank you.
FWH 11.11, Harbour 3.1 and Borland C++ 5.82
User avatar
Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: RIBBONBAR COLORS SET STYLE

Post by Silvio »

NO I not work now on this project
Best Regards, Saludos

Falconi Silvio
User avatar
ukservice
Posts: 417
Joined: Tue Feb 23, 2010 3:09 pm
Location: John

Re: RIBBONBAR COLORS SET STYLE

Post by ukservice »

Hi,

I was asking to FW team.

Thank you.
FWH 11.11, Harbour 3.1 and Borland C++ 5.82
User avatar
Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: RIBBONBAR COLORS SET STYLE

Post by Silvio »

and it.... run ok on my computers, if you insert mine modifies on your source you can see how it work
Best Regards, Saludos

Falconi Silvio
User avatar
ukservice
Posts: 417
Joined: Tue Feb 23, 2010 3:09 pm
Location: John

Re: RIBBONBAR COLORS SET STYLE

Post by ukservice »

Thanks Silvio, but I prefer not to change FWH classes, as every month they are modified.

Also, I think FW should provide new Office 2010 look now, not in 2013 as it happened with 2007.
FWH 11.11, Harbour 3.1 and Borland C++ 5.82
User avatar
Silvio
Posts: 3107
Joined: Fri Oct 07, 2005 6:28 pm
Location: Teramo,Italy

Re: RIBBONBAR COLORS SET STYLE

Post by Silvio »

ok
or you can create a new class

CLASS SET2010 FROM RIBBON...

JUST AN IDEA

AND YOU 'LL NOT MODIFY ANY CLASSES
AND YOU HAVE 2010 STYLE RIBBONBAR
Best Regards, Saludos

Falconi Silvio
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: RIBBONBAR COLORS SET STYLE

Post by horacio »

I made the changes and trbgroup.prg tribbon.prg and I run it generates this error

Code: Select all

 Error description: Error BASE/1004  Class: 'ARRAY' has no exported method: EVAL
   Args:
     [   1] = A   { ... }
     [   2] = N   4

Stack Calls
===========
   Called from:  => EVAL( 0 )
   Called from: C:\nueva_ribon\tribbon.prg => TRIBBONBAR:PAINTFLD( 801 )
   Called from: C:\nueva_ribon\tribbon.prg => TRIBBONBAR:PAINT( 703 )
   Called from: C:\nueva_ribon\tribbon.prg => (b)TRIBBONBAR:TRIBBONBAR( 158 )
   Called from:  => TRIBBONBAR:DISPLAY( 0 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1666 )
   Called from: C:\nueva_ribon\tribbon.prg => TRIBBONBAR:HANDLEEVENT( 1188 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3153 )
   Called from:  => UPDATEWINDOW( 0 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE( 964 )
   Called from: C:\nueva_ribon\main.prg => MAIN( 23 )
 
Any idea? thanks
User avatar
Eoeo
Posts: 222
Joined: Mon Jun 04, 2012 12:00 pm

Re: RIBBONBAR COLORS SET STYLE

Post by Eoeo »

sorty but someone changed something into tribbon, trbtn, trbgroup and it cannot possible now to resolve this problem !!

But I made another version this morning ...easy !!!

you must insert setstyle method only on Trbgroup and Trbtn



Class trbtn

Code: Select all


      METHOD SetStyle( nStyle )  CLASS TRBtn
     local hBmp
     local n, j, z, oControl





     do case
        case nStyle == 1    // Blue  Normal Default
               ::nClrBoxIn              := BLUEBOX2
               ::nClrBoxOut             := BLUEBOX0
               ::aGradSel               := { {0.1, BLUE0, BLUE0 }, { 0.9, BLUE1, BLUE0 } }
                ::aGradCaption = { { 0.3, BLUE0,BLUE0 }, ;
                                { 0.7, BLUE0, BLUE1 } }

                ::aGradDisable           := { {0.17,RGB( 245,245,245 ),RGB( 245,245,245 ) },;
                                             { 0.83,RGB( 233,233,233 ), RGB( 233,233,233 ) } }


               ::aGradDisableCaption    := { {1,RGB( 220,220,220 ),RGB( 220,220,220 ) } }



        case nStyle == 2  //Black
               ::nClrBoxIn              := BLACKBOX2
               ::nClrBoxOut             := BLACKBOX0
               ::aGradSel               := { {0.1, BLACK0, BLACK0 }, { 0.9, BLACK1, BLACK0 } }
               ::aGradCaption = { { 0.3, BLACK0,BLACK0 }, ;
                                { 0.7, BLACK0, BLACK1 } }
                 ::aGradDisable           := { {0.17,RGB( 245,245,245 ),RGB( 245,245,245 ) },;
                                             { 0.83,RGB( 233,233,233 ), RGB( 233,233,233 ) } }

               ::aGradDisableCaption    := { {1,RGB( 220,220,220 ),RGB( 220,220,220 ) } }


        case nStyle == 3  //Silver
               ::nClrBoxIn              := SILVERBOX2
               ::nClrBoxOut             := SILVERBOX0
               ::aGradSel               := { {0.1, SILVER0, SILVER0 }, { 0.9, SILVER1, SILVER0 } }
                ::aGradCaption = { { 0.3, SILVER0,SILVER0 }, ;
                                { 0.7, SILVER0, SILVER1 } }
                ::aGradDisable           := { {0.17,RGB( 245,245,245 ),RGB( 245,245,245 ) },;
                                             { 0.83,RGB( 233,233,233 ), RGB( 233,233,233 ) } }

               ::aGradDisableCaption    := { {1,RGB( 220,220,220 ),RGB( 220,220,220 ) } }



        case nStyle == 4  //wINDOWS 7  OFFICE2010

               ::nClrBoxIn              := OFFICE2010BOX2
               ::nClrBoxOut             := OFFICE2010BOX0
               ::aGradSel               := { {0.1, OFFICE20100, OFFICE20100 }, { 0.9, OFFICE20101, OFFICE20100 } }
                ::aGradCaption = { { 0.3,OFFICE20100,OFFICE20100 }, ;
                                { 0.7, OFFICE20100, OFFICE20101 } }
               ::aGradDisable           := { {0.17,RGB( 245,245,245 ),RGB( 245,245,245 ) } ,;
                                             { 0.83,RGB( 233,233,233 ), RGB( 233,233,233 ) } }
               ::aGradDisableCaption    := { {1,RGB( 220,220,220 ),RGB( 220,220,220 ) } }




             otherwise

                   if oRB:bStyle != nil
                     eval( oRB:bStyle, self )
            endif

         endcase

            oRB:refresh()

      return 0










 

Class Trbgroup

Code: Select all


       METHOD SetStyle( nStyle )  CLASS TRBGroup
     local hBmp
     local n, j, z, oControl





     do case
        case nStyle == 1    // Blue  Normal Default
               ::nClrBoxIn              := BLUEBOX2
               ::nClrBoxOut             := BLUEBOX0
               ::aGradSel               := { {0.1, BLUE0, BLUE0 }, { 0.9, BLUE1, BLUE0 } }
                ::aGradCaption = { { 0.3, BLUE0,BLUE0 }, ;
                                { 0.7, BLUE0, BLUE1 } }

                ::aGradDisable           := { {0.17,RGB( 245,245,245 ),RGB( 245,245,245 ) },;
                                             { 0.83,RGB( 233,233,233 ), RGB( 233,233,233 ) } }


               ::aGradDisableCaption    := { {1,RGB( 220,220,220 ),RGB( 220,220,220 ) } }



        case nStyle == 2  //Black
               ::nClrBoxIn              := BLACKBOX2
               ::nClrBoxOut             := BLACKBOX0
               ::aGradSel               := { {0.1, BLACK0, BLACK0 }, { 0.9, BLACK1, BLACK0 } }
               ::aGradCaption = { { 0.3, BLACK0,BLACK0 }, ;
                                { 0.7, BLACK0, BLACK1 } }
                 ::aGradDisable           := { {0.17,RGB( 245,245,245 ),RGB( 245,245,245 ) },;
                                             { 0.83,RGB( 233,233,233 ), RGB( 233,233,233 ) } }

               ::aGradDisableCaption    := { {1,RGB( 220,220,220 ),RGB( 220,220,220 ) } }


        case nStyle == 3  //Silver
               ::nClrBoxIn              := SILVERBOX2
               ::nClrBoxOut             := SILVERBOX0
               ::aGradSel               := { {0.1, SILVER0, SILVER0 }, { 0.9, SILVER1, SILVER0 } }
                ::aGradCaption = { { 0.3, SILVER0,SILVER0 }, ;
                                { 0.7, SILVER0, SILVER1 } }
                ::aGradDisable           := { {0.17,RGB( 245,245,245 ),RGB( 245,245,245 ) },;
                                             { 0.83,RGB( 233,233,233 ), RGB( 233,233,233 ) } }

               ::aGradDisableCaption    := { {1,RGB( 220,220,220 ),RGB( 220,220,220 ) } }



        case nStyle == 4  //wINDOWS 7  OFFICE2010

               ::nClrBoxIn              := OFFICE2010BOX2
               ::nClrBoxOut             := OFFICE2010BOX0
               ::aGradSel               := { {0.1, OFFICE20100, OFFICE20100 }, { 0.9, OFFICE20101, OFFICE20100 } }
                ::aGradCaption = { { 0.3,OFFICE20100,OFFICE20100 }, ;
                                { 0.7, OFFICE20100, OFFICE20101 } }
               ::aGradDisable           := { {0.17,RGB( 245,245,245 ),RGB( 245,245,245 ) } ,;
                                             { 0.83,RGB( 233,233,233 ), RGB( 233,233,233 ) } }
               ::aGradDisableCaption    := { {1,RGB( 220,220,220 ),RGB( 220,220,220 ) } }




             otherwise

                   if oRB:bStyle != nil
                     eval( oRB:bStyle, self )
            endif

         endcase

            ::refresh()

      return 0







 


then you can use a menu popup to select styles Use ribbon.prg and ribbon.rc and change these lines

MENU oMenu POPUP 2007
MENUITEM "Style Set" FILE "..\bitmaps\styleset161.BMP"
MENU
MENUITEM "Normal" ACTION (SetStyle( 1,oRBar ), oRBar:refresh())
MENUITEM "Black" ACTION (SetStyle( 2,oRBar ), oRBar:refresh())
MENUITEM "Silver" ACTION (SetStyle( 3,oRBar ), oRBar:refresh())
MENUITEM "Office 2010" ACTION (SetStyle( 4,oRBar ), oRBar:refresh())
ENDMENU
ENDMENU




then create a new file to compile with them
Setstyle.prg

Code: Select all

#include "fivewin.ch"
#include "ribbon.ch"



#define BLUE3               RGB( 191, 219, 255 )
#define BLUE0               RGB( 218, 229, 243 )
#define BLUE2               RGB( 194, 217, 240 )
#define BLUE1               RGB( 199, 216, 237 )
#define BLUEBOX0            RGB( 141, 178, 227 )
#define BLUEBOX1            RGB( 197, 210, 223 )
#define BLUEBOX2            RGB( 237, 242, 248 )
#define CLRLIGHT            RGB( 216, 230, 246 )
#define CLRDARK             RGB( 191, 213, 238 )
#define YELBOX0             RGB( 249, 204, 96 )
#define YELBOX1             RGB( 255, 255, 189 )
#define BLACK0              RGB(50,50,49)
#define BLACK1              RGB(83,83,83)
#define BLACK3              RGB(184,185,184)
#define BLACKBOX0           RGB(172,175,175)
#define BLACKBOX1           RGB(83,83,83)
#define BLACKBOX2           RGB(184,185,184)
#define BLACK2              RGB(172,175,175)
#define SILVER0             RGB(189,195,204)
#define SILVER1             RGB(208,212,221)
#define SILVER3             RGB(220,223,232)
#define SILVERBOX0          RGB(189,195,204)
#define SILVERBOX1          RGB(208,212,221)
#define SILVERBOX2          RGB(119,114,99)
#define SILVER2             RGB(209,213,224)




Function SetStyle( nStyle,oRb )
        local hBmp
        local n, j, z, oControl


        Local nClrPaneRB   ,;
              nClrBoxOut   ,;
              nClrBoxIn    ,;
              nClrBoxSelOut,;
              nClrBoxSelIn ,;
              aGrad        ,;
              aGradFld     ,;
              aGradHigh    ,;
              aGradOver



    DO CASE
     case nStyle == 1    // Blue  Normal Default

           nClrPaneRB    := BLUE3
           nClrBoxOut    := BLUEBOX0
           nClrBoxIn     := BLUEBOX2
           nClrBoxSelOut := YELBOX0
           nClrBoxSelIn  := YELBOX1
           aGrad         := { {0.12, BLUE0, BLUE0 }, { 0.70, BLUE1, BLUE0 }, { 0.18, BLUE0, CLR_WHITE }}
           aGradFld      := {| nOpt | if( nOpt == oRb:nStart, { { 1, RGB( 30, 72, 161 ), RGB( 76, 146, 229 ) } },;
                                                { { 1, CLR_WHITE, BLUE0 }  } ) }
           aGradHigh     := { { 1, BLUE3, RGB( 202,172,136 ) } }
           aGradOver     := { { 1, RGB( 197,221,251), RGB( 226,209,162)} }


       case nStyle == 2  //Black

           nClrPaneRB    := BLACK3
           nClrBoxOut    := BLACKBOX0
           nClrBoxIn     := BLACKBOX2
           nClrBoxSelOut := BLACKBOX0
           nClrBoxSelIn  := BLACKBOX1
           aGrad         := { {0.12, BLUE0, BLUE0 }, { 0.70, BLACK1, BLACK0 }, { 0.18, BLACK0, CLR_WHITE }}
           aGradFld      := {| nOpt | if( nOpt == oRb:nStart, { { 1, RGB( 30, 72, 161 ), RGB( 76, 146, 229 ) } },;
                                                { { 1, CLR_WHITE, BLACK0 }  } ) }
           aGradHigh     := { { 1, BLACK3, BLACK1  } }
           aGradOver     := { { 1, BLACK0, BLACK0} }

       case nStyle == 3  //Silver
           nClrPaneRB    := SILVER3
           nClrBoxOut    := SILVERBOX0
           nClrBoxIn     := SILVERBOX2
           nClrBoxSelOut := SILVERBOX0
           nClrBoxSelIn  := SILVERBOX1
           aGrad         := { {0.12, SILVER0, SILVER0 }, { 0.70, SILVER1, SILVER0 }, { 0.18, SILVER0,, CLR_WHITE }}
           aGradFld      := {| nOpt | if( nOpt == oRb:nStart, { { 1, RGB( 30, 72, 161 ), RGB( 76, 146, 229 ) } },;
                                                { { 1, CLR_WHITE, SILVER0 }  } ) }
           aGradHigh     := { { 1, SILVER3, SILVER1 } }
           aGradOver     := { { 1, SILVER0, SILVER0} }


       case nStyle == 4  //Office2010

           nClrPaneRB    := RGB( 231, 228, 226 )
           nClrBoxOut    := RGB( 182, 186, 191)
           nClrBoxIn     := RGB( 255, 255, 255 )
           nClrBoxSelOut := RGB( 182, 186, 191 )
           nClrBoxSelIn  := RGB( 255, 255, 255 )
           aGrad         := { { 1, RGB( 255, 255, 255 ), RGB( 229, 233, 238 ) } }
           aGradFld      := {| nOpt | if( nOpt == oRb:nStart, { { 1, RGB( 30, 72, 161 ), RGB( 76, 146, 229 ) } },;
                                        { { 1, RGB( 231, 228, 226 ), RGB( 255, 255, 255 ) } } ) }
           aGradHigh     := { { 1, RGB( 231, 228, 226 ), RGB( 255, 255, 255 ) } }
           aGradOver     := { { 1, RGB( 231, 228, 226 ), RGB( 255, 255, 255 ) } }




             otherwise

               /*    if ::bStyle != nil
                     eval( ::bStyle, self )
                   endif
                 */
         endcase








   oRb:aGrad         := aGrad
   oRb:aGradFld      := aGradFld
   oRb:aGradHigh     := aGradHigh
   oRb:aGradOver     := aGradOver

   oRb:nClrPaneRB    := nClrPaneRB
   oRb:nClrBoxOut    := nClrBoxOut
   oRb:nClrBoxIn     := nClrBoxIn
   oRb:nClrBoxSelOut := nClrBoxSelOut
   oRb:nClrBoxSelIn  := nClrBoxSelIn





     hBmp := GradientBmp( oRb, oRb:nRight - oRb:nRightMargin - 3,;
                              oRb:nBottom - oRb:nTopMargin + 1, aGrad )
      DeleteObject( oRb:hBrushEx )
   oRb:hBrushEx = CreatePatternBrush( hBmp )
   DeleteObject( hBmp )

   oRb:Refresh()

   for n = 1 to Len( oRb:aDialogs )
      oRb:aDialogs[ n ]:hBack = oRb:hBrushEx
      oRb:aDialogs[ n ]:Refresh()
   next


    for n = 1 to Len( oRb:aDialogs )
         DeleteObject( oRb:aDialogs[ n ]:hBack )
         oRb:aDialogs[ n ]:hBack = oRb:hBrushEx
         if ! Empty( oRb:aDialogs[ n ]:aControls )
            for j = 1 to len( oRb:aDialogs[ n ]:aControls )
               oControl = oRb:aDialogs[ n ]:aControls[ j ]
               if oControl:ClassName() == "TRBGROUP" .or.  oControl:ClassName() =="TRBTN"
                  DeleteObject( oControl:hBrushUnsel )
                  oControl:hBrushUnsel = oRb:hBrushEx
                  DeleteObject( oControl:hBrushSel )
                  oControl:hBrushSel = nil
                  oControl:SetStyle(nStyle )
               endif
            next
         endif
        oRb:aDialogs[ n ]:Refresh()
     next

 return 0






 

remember to insert on folder of the test also #include "SkinRb.ch"




But this can be a first beta test
Post Reply