Novos recursos para tooltip

Post Reply
Rossine
Posts: 343
Joined: Tue Oct 11, 2005 11:33 am

Novos recursos para tooltip

Post 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.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Rossine,

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

Antonio Linares
www.fivetechsoft.com
Rossine
Posts: 343
Joined: Tue Oct 11, 2005 11:33 am

Post by Rossine »

OK Gracias Maestro :D

Rossine.
User avatar
Maurilio Viana
Posts: 252
Joined: Tue Oct 25, 2005 2:48 pm
Location: Garça/Garza/Heron City - Brazil
Contact:

Post 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.
Rossine
Posts: 343
Joined: Tue Oct 11, 2005 11:33 am

Post by Rossine »

OLá Maurilio,
Ficou muito bom, mas que gosto ruim pra escolher cores...
... é que eu sou cruzeirense hehehe :lol:

Abraços,

Rossine.
User avatar
goosfancito
Posts: 1392
Joined: Fri Oct 07, 2005 7:08 pm

Post 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

:)
Un aporte chico hace grandes cambios.
Apoyemos al proyecto "Hogar pimpinela"
Bajate la aplicación (gratuita) y encuentra en ella toda la info de como podes colaborar.
GRACIAS!
https://play.google.com/store/apps/deta ... .acomprar
User avatar
Taiwan
Posts: 218
Joined: Fri Oct 07, 2005 1:55 am
Location: Taipei, Taiwan
Contact:

Post by Taiwan »

Hello Rossine,

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

Regards,

Richard
User avatar
Maurilio Viana
Posts: 252
Joined: Tue Oct 25, 2005 2:48 pm
Location: Garça/Garza/Heron City - Brazil
Contact:

Re: Novos recursos para tooltip

Post 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
User avatar
Ari
Posts: 128
Joined: Fri Feb 03, 2006 4:21 pm
Location: Brazil
Contact:

Tooltip

Post 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
User avatar
Maurilio Viana
Posts: 252
Joined: Tue Oct 25, 2005 2:48 pm
Location: Garça/Garza/Heron City - Brazil
Contact:

Re: Tooltip

Post 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("")
User avatar
AIDA
Posts: 782
Joined: Fri Jan 12, 2007 8:35 pm

Hello Rossine

Post 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:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
Andrés González
Posts: 625
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Post 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
Post Reply