Page 1 of 1

Novos recursos para tooltip

Posted: Wed Jul 19, 2006 1:57 pm
by Rossine
Olá a Todos,

Deixo aqui mais uma contribuição :D

Image


Este exemplo foi modificado no fonte \fwh\samples\tooltip.prg

Code: Select all

// This sample shows how to easily implement 'tool-tips' in FiveWin!

#include "FiveWin.ch"

static oWnd

//----------------------------------------------------------------------------//

function Main()

   local oBar, oBtn

   DEFINE WINDOW oWnd TITLE "ToolTips in FiveWin!"

   DEFINE BUTTONBAR oBar 3D SIZE 33, 33 OF oWnd

   DEFINE BUTTON OF oBar ACTION MsgInfo( "One" )   TOOLTIP "This is a long tooltip" + CRLF + "standard"
   DEFINE BUTTON OF oBar ACTION MsgInfo( "Two" )   TOOLTIP "Two" + CRLF + "standard"
   DEFINE BUTTON OF oBar ACTION MsgInfo( "Three" ) TOOLTIP "Three" + CRLF + "standard"
   DEFINE BUTTON OF oBar ACTION MsgInfo( "Four" )  TOOLTIP "Four" + CRLF + "standard"

   @ 10, 8 BUTTON oBtn PROMPT "Where is my tooltip?" SIZE 180, 28 OF oWnd ;
      ACTION MsgInfo( "Oh! Thanks!" )

   // Manipulate directly the cToolTip DATA of other controls than ButtonBitmaps
   oBtn:cToolTip         := "Tooltip with class !" + CRLF + "Ballon" + CRLF + "Resize" + CRLF + "Colors" + CRLF + "Icon" + CRLF + "Title"
   oBtn:lToolTipBallon   := .t.
   oBtn:nTooltipWidth    := 100
   oBtn:nTooltipTexColor := rgb(255,255,255)
   oBtn:nTooltipBKColor  := rgb(58,116,241)
   oBtn:cTooltipTitle    := "Título"
   oBtn:nTooltipIcon     := 1  && 0=NONE / 1=TTI_INFO / 2=TTI_WARNING / 3=TTI_ERROR  

   SET MESSAGE OF oWnd ;
    TO "FiveWin: CA-Clipper, xBase && OOPS development power" CENTER

   ACTIVATE WINDOW oWnd

return nil

//----------------------------------------------------------------------------//
Para que isto funcione é preciso fazer algumas mudanças em \FWH\SOURCE\CLASSES\WINDOW.PRG

Code: Select all

   DATA   ltooltipBallon, nTooltipWidth, nTooltipTexColor, nTooltipBKColor, ; && By Rossine
          cTooltipTitle, nToolTipIcon                                         && By Rossine

Code: Select all

//----------------------------------------------------------------------------//

#define TTM_SETMAXTIPWIDTH      (WM_USER + 24) && By Rossine
#define TTM_SETTIPTEXTCOLOR     (WM_USER + 20) && By Rossine
#define TTM_SETTIPBKCOLOR       (WM_USER + 19) && By Rossine
#define TTM_SETTITLE            (WM_USER + 32) && By Rossine
#define TTI_NONE                0              && By Rossine
#define TTI_INFO                1              && By Rossine
#define TTI_WARNING             2              && By Rossine
#define TTI_ERROR               3              && By Rossine

METHOD ShowToolTip( nRow, nCol, cToolTip ) CLASS TWindow

...

      #ifndef __CLIPPER__
         if ::lToolTipBallon == NIL    && By Rossine
            ::lToolTipBallon := .f.    && By Rossine
         endif

         DestroyWindow( oToolTip:hWnd )
         hWnd = CreateToolTip( Self:hWnd, cToolTip, iif( ::ltooltipBallon, .t., .f. ) ) && for ballon tooltips !
         oToolTip = oTemp
         oToolTip:hWnd = hWnd

         if ::cTooltipTitle != NIL                                      && By Rossine
            SendMessage(hwnd, TTM_SETTITLE, iif( ::nToolTipIcon = NIL, TTI_NONE, ::nToolTipIcon ), ::cTooltipTitle ) && By Rossine
         endif
         if ::nTooltipWidth != NIL                                      && By Rossine
            SendMessage(hwnd, TTM_SETMAXTIPWIDTH, 0, ::nTooltipWidth )  && By Rossine
         endif
         if ::nTooltipTexColor != NIL                                     && By Rossine
            SendMessage(hwnd, TTM_SETTIPTEXTCOLOR, ::nTooltipTexColor, 0) && By Rossine
         endif
         if ::nTooltipBKColor != NIL                                    && By Rossine
            SendMessage(hwnd, TTM_SETTIPBKCOLOR, ::nTooltipBKColor, 0)  && By Rossine
         endif


...
Antonio, seria possível incluir esta modificações em FWH ? :wink:

Abraços a todos :D

Rossine.

Posted: Wed Jul 19, 2006 4:58 pm
by Antonio Linares
Rossine,

Thanks for your contribution. We are going to review it :)

Posted: Wed Jul 19, 2006 5:03 pm
by Rossine
OK Gracias Maestro :D

Rossine.

Posted: Wed Jul 19, 2006 5:27 pm
by Maurilio Viana
PORTUGUESE:
Maravilhoso, Rossine
Eu estava procurando por algo parecido, até postei no forum em inglês um tópico sobre mensagens em balões estilo tooltip.
Ficou muito bom, mas que gosto ruim pra escolher cores, hehehe :D
-----------
ENGLISH:
Thats marvelous, Rossine.
I was searching for any like this. I posted a topic in English forum asking for messages style tooltip balloons.
Your work is very good but... you have a bad sense for choose colors :D

Abraços & Regards
Maurilio

PS: Antonio, I'll try adapt it to do my "personalized messages in balloons" like I asked you.

Posted: Wed Jul 19, 2006 6:45 pm
by Rossine
OLá Maurilio,
Ficou muito bom, mas que gosto ruim pra escolher cores...
... é que eu sou cruzeirense hehehe :lol:

Abraços,

Rossine.

Posted: Wed Jul 19, 2006 9:08 pm
by goosfancito
Gracias,

Y mas lo pienso mas quiero, los tooltip son mas faciles de MANTENER que los HELP; total lo que pones en un simple
// esto graba cliente
lo podes mandar al mismo tiempo al un tooltip y listo, el cliente, satisfecho

:)

Posted: Wed Jul 19, 2006 10:49 pm
by Taiwan
Hello Rossine,

Good job.
Your solution work fine for us.
I need it from long time ago.
Thank you.

Regards,

Richard

Re: Novos recursos para tooltip

Posted: Thu Jul 20, 2006 2:29 pm
by Maurilio Viana
Rossine,

Pretendo fazer uma função baseada neste tooltip que faça o seguinte: suponhamos que o usuário tenha esquecido de preencher um campo (digamos o campo nome), quando ele clicar em OK ou Salvar, eu gostaria que uma mensagem neste estilo balão aparecesse apontando para este campo nome.
Eu até criei uma função baseada nas suas alterações, mas não mostra o balãozinho sozinho, apenas quando coloco o mouse sobre o campo nome...
Outra coisa, teria como definir o tempo em que o tooltip ficará visível?
Me passe seu email pra que possamos conversar, o meu:
mau.viana@gmail.com
Skype: mau.viana

[ ]'s
Maurilio

Tooltip

Posted: Fri Jul 21, 2006 11:52 am
by Ari
Seria facil colocar um ToolTip deste em cada GET pegando o string da MESSAGE e passando para o ToolTip ?

a ideia é a cada GET ter um ToopTip de orientação para o usuario

Ari

Re: Tooltip

Posted: Fri Jul 21, 2006 4:04 pm
by Maurilio Viana
Ari, a propriedade cTooltip aceita tanto caracteres quendo bloco de codigo, então, basta que para isso vc adapte seu codigo para retornar uma string, ó um exemplinho simples:

oGet1:cTooltip := {|| MeuTip(1) }
oGet2:cTooltip := {|| MeuTip(2) }
...

function MeuTip(n)
do case
case n = 1
return("1111")
case n = 2
return("2222")
endcase
return("")

Hello Rossine

Posted: Tue Feb 13, 2007 4:18 am
by AIDA
Hello

I right now am using your I magnify tooltips :D

I congratulate your charming tooltips :P

Greetings from Mexico and thanks


Aida :wink:

Posted: Wed Feb 21, 2007 10:57 am
by Andrés González
Rossine el efecto sombra que tiene tu tooltip, no lo consigue el mio hay que añadir algo o dempende del sistema que utilices yo estoy en un win2000.

Gracias