Page 1 of 3

Nueva Clase: TFolderEx

Posted: Sun Aug 08, 2010 7:07 pm
by Daniel Garcia-Gil
New Class TFolderEx, is a new folder class, fivewin own without Window API
Nueva clase, es una nueva clase TFolder, propia de fivewin, sin el uso del api de window

Download Sample

Algunas caracterisicas (parametrizables):
* Tabs Multilineas
* Bitmaps, desde archivos y recursos
* Alpha Bitmpas
* Separacion entre tabs
Image

* Ajuste de posicion automatico
Image

* Data bPopUp, codeblock que se evalua por cada tabs
Image

* Enable / Disable Tabs
* Show / Hide Tabs

Image

* Alpha Level Ajuste

Image

* Colors Tabs y Texto

Image

* Ajuste de alturas y bordes redondos

Image

* Bitmap Align
Image

*Accion (ON CHANGE)

Image

Download Sample

Code sample

Code: Select all

function main()
   local oWnd
   local oFld, oFld1
   local aMonths := {"January", "February", "March", ;
                     "April", "May", "June", ;
                     "July", "August", "September", ;
                     "October", "November", "December"}
   
    DEFINE WINDOW oWnd TITLE "TFolderex - Testing -"
     
   @ 3, 3 FOLDEREX oFld PIXEL ADJUST;
          PROMPT  "Social", "OS", "Games", "Movies", "Email", "Months", "Setting", "Exit";
          BITMAPS "facebook.bmp", "windows.bmp", "game.bmp", "viddler.bmp", "mail.bmp", "call.bmp", "settings.bmp", "logout.bmp";
          ON PAINT TAB PaintTab( Self, nOption );
          POPUP MenuTabs( Self, nOption );
          ON CHANGE ( If( nOption == 8, If( MsgYesNo( "Do you want exit??" ), ;
                                           oWnd:End(), ( ::SetOption( nOldOption ), ::Refresh() ) ), ) )
          

   //Dialog Social
   @ 3,10 FOLDEREX OF oFld:aDialogs[ 1 ] PIXEL SIZE 450, 190 ;
         PROMPT "Facebook", "MySpace", "Twitter" ;
         BITMAPS "Facebook.bmp", "myspace.bmp", "Twitter.bmp";
         SEPARATOR 20


   //Dialog OS
   @ 3,10 FOLDEREX OF oFld:aDialogs[ 2 ] PIXEL SIZE 450, 190 ;
         PROMPT "", "", "";
         BITMAPS "windows.bmp", "apple.bmp", "ubuntu.bmp";
         ALIGN AL_LEFT, AL_CENTER, AL_RIGHT
         
   //Dialog Mail
   @ 3,10 FOLDEREX OF oFld:aDialogs[ 5 ] PIXEL SIZE 450, 190 ;
         PROMPT "Gamil", "Outlook", "Yahoo";
         BITMAPS "gmail.bmp", "Outlook.bmp", "yahoo.bmp";
         TAB HEIGHT 45 ROUND 5
         
   //Dialog Months
   // Suport Arrays and list
   @ 3,10 FOLDEREX OF oFld:aDialogs[ 6 ] PIXEL SIZE 450, 190 ;
         PROMPT aMonths ;
         TAB HEIGHT 18 ROUND 0;
         ON PAINT TAB ChangeClr( Self, nOption );
         ON PAINT TEXT ChangeTxtClr( Self, nOption )
         
   ACTIVATE WINDOW oWnd;
            ON INIT oFld:Resize()
   
RETURN NIL

FUNCTION PaintTab( o, nOption )

   IF nOption == o:nOver .OR. nOption == o:nOption
      o:SetAlphaLevel( nOption, 255 )
   ELSE 
      o:SetAlphaLevel( nOption, 50 )
   ENDIF 
   
RETURN o:SetFldColors( o, nOption )      


FUNCTION ChangeClr( o, n )
   
   LOCAL nMonth := Month( Date() )
   LOCAL aGrad1 := { { 0.5, nRGB( 255, 255, 255 ), nRGB( 255, 240, 180 ) },;
                     { 0.5,  nRGB( 255, 240, 180 ), nRGB( 255, 200, 140 ) } }

   LOCAL aGrad2 := { { 0.5, nRGB( 255, 255, 255 ), nRGB( 200, 200, 240 ) },;
                     { 0.5,  nRGB( 200, 200, 240 ), nRGB( 100, 100, 240 ) } }

   LOCAL aGrad3 := { { 0.5, nRGB( 255, 255, 255 ), nRGB( 255, 240, 240 ) },;
                     { 0.5,  nRGB( 255, 240, 240 ), nRGB( 255, 200, 200 ) } }

   LOCAL aGradMonth := { { 0.5, nRGB( 255, 255, 255 ), nRGB( 185, 207, 147 ) },;
                         { 0.5,  nRGB( 185, 207, 147 ), nRGB( 85, 107, 47 ) } }
   
   LOCAL hBrush, aGrad 
   
   IF n == nMonth
      aGrad = aGradMonth
   ELSE 
      IF n > 0 .AND. n < 5
         aGrad = aGrad1 
      ELSEIF n > 4 .AND. n < 9
         aGrad = aGrad2 
      ELSE
         aGrad = aGrad3
      ENDIF
   ENDIF
   o:aGradUnSel = aGrad
   hBrush = o:SetFldColors( o, n )
      
RETURN hBrush 

FUNCTION ChangeTxtClr( o, n )
   
   LOCAL nMonth := Month( Date() )
   LOCAL nClr := CLR_BLACK, ;
         nClr1 := CLR_HRED
   
   IF n > 0 .AND. n < 7
      nClr = nClr1 
   ENDIF
      
RETURN nClr
        


FUNCTION MenuTabs( oFld, nOpt )
   LOCAL oMenu

   MENU oMenu POPUP 2007
      MENUITEM oFld:aPrompts[ nOpt ]
      SEPARATOR
      MenuAddItem( "Show", , ;
                    oFld:aVisible[ nOpt ], ,;
                    {|| If( oFld:aVisible[ nOpt ], ;
                            oFld:HideTab( nOpt ), ;
                            oFld:ShowTab( nOpt ) ) } ) 
      MenuAddItem( "Enabled", , ;
                    oFld:aEnable[ nOpt ], ,;
                    {|| If( oFld:aEnable[ nOpt ], ;
                            oFld:DisableTab( nOpt ), ;
                            oFld:EnableTab( nOpt ) ) } ) 
   ENDMENU
   
RETURN oMenu
 
Method redefine no esta listo

Re: Newva Clase: TFolderEx

Posted: Sun Aug 08, 2010 7:17 pm
by AIDA
Esta super bonito :mrgreen: a si como se ven los folders :shock: me encantaron :D

Saluditos :wink:

Re: Newva Clase: TFolderEx

Posted: Sun Aug 08, 2010 7:27 pm
by FranciscoA
Excelente, Daniel. Felicitaciones.

Re: Newva Clase: TFolderEx

Posted: Mon Aug 09, 2010 2:31 pm
by Daniel Garcia-Gil
Hay un nuevo ejemplo con algunos ajustes

Alt+Key esta funcionando

Download Here

(me gusta el Tab Movie ;-) )

Re: Newva Clase: TFolderEx

Posted: Mon Aug 09, 2010 5:03 pm
by MGA
Muito bom Daniel :D

Re: Newva Clase: TFolderEx

Posted: Mon Aug 09, 2010 7:05 pm
by Raymundo Islas M.
Daniel,

Excelente clase !!

La pregunta del millon : Tendra la opcion para quitar las solapas/pestañas ??

Saludos

Re: Newva Clase: TFolderEx

Posted: Mon Aug 09, 2010 7:33 pm
by Daniel Garcia-Gil
Raymundo Islas M. wrote:Daniel,

Excelente clase !!

La pregunta del millon : Tendra la opcion para quitar las solapas/pestañas ??

Saludos
Actualmente puedes ocultarlas pero no eliminarlas, en el ejemplo lo expuse (* Show / Hide Tabs)

hay cosas que dejare para despues dependiendo de la acojida de la misma y de las necesidades que surgan

Re: Newva Clase: TFolderEx

Posted: Tue Aug 10, 2010 11:01 am
by Daniel Garcia-Gil
Ahora podemos decidir si estiramos o no los Tabs

Estirado
Image

No estirado
Image

Re: Nueva Clase: TFolderEx

Posted: Tue Aug 10, 2010 1:02 pm
by Daniel Garcia-Gil
Trabajando desde recursos


Image

Code: Select all

   REDEFINE FOLDEREX oFld ID 110 PROMPT "New", "Open";
            BITMAPS "new", "open";
            DIALOGS "sub1", "sub2" ;
            ROUND 5
 

Re: Nueva Clase: TFolderEx

Posted: Tue Aug 10, 2010 2:07 pm
by Ruben Fernandez
Daniel: Esta ESPECTACULAR, y mas ahora que se puede usar desde recursos.

Una pregunta se podra dar un color a cada pestaña y que cada dialogo tenga ese color ?

Gracias

Re: Nueva Clase: TFolderEx

Posted: Tue Aug 10, 2010 2:29 pm
by Daniel Garcia-Gil
Ruben Fernandez wrote:Daniel: Esta ESPECTACULAR, y mas ahora que se puede usar desde recursos.

Una pregunta se podra dar un color a cada pestaña y que cada dialogo tenga ese color ?

Gracias
Si los colores del texto y pestañas son cofigurables, y los dialogos pueden tener ese color

Re: Nueva Clase: TFolderEx

Posted: Tue Aug 10, 2010 4:03 pm
by Daniel Garcia-Gil
Usando las tecnicas correctas se podrian lograr buenos resultados

Image

Re: Nueva Clase: TFolderEx

Posted: Tue Aug 10, 2010 6:16 pm
by wmormar
Daniel Garcia-Gil wrote:Usando las tecnicas correctas se podrian lograr buenos resultados

Image
Daniel,

Y al ocultarlo como se le hace para mostrarlo de nuevo?

en los ejemplos que me enviaste no vi como hacerlo.

y felicidades Daniel, excelente trabajo.

Re: Nueva Clase: TFolderEx

Posted: Tue Aug 10, 2010 6:35 pm
by Daniel Garcia-Gil
William

Los metodos para ocultar y mostrar son:

HideTab( nOption ) / ShowTab( nOption )

Re: Nueva Clase: TFolderEx

Posted: Tue Aug 10, 2010 8:08 pm
by wmormar
Daniel Garcia-Gil wrote:William

Los metodos para ocultar y mostrar son:

HideTab( nOption ) / ShowTab( nOption )
Sipi, eso lo entiendo, pero al darle click derecho se oculta, como mostrarlo por ese mismo metodo?