QB64.org Forum

Active Forums => QB64 Discussion => Topic started by: krovit on November 05, 2020, 10:36:29 am

Title: Tooltips wanted
Post by: krovit on November 05, 2020, 10:36:29 am
I am the one who always asks... Sorry

I need a minimalist system to print tool tips under the cursor (words or small sentences)... is there anything "ready" that I could adapt to my needs?


Title: Re: Tooltips wanted
Post by: SpriggsySpriggs on November 05, 2020, 10:37:41 am
You could look at InForm. InForm has built-in tools for tooltips. Also, I've updated my pipecom code.
Title: Re: Tooltips wanted
Post by: FellippeHeitor on November 05, 2020, 10:42:09 am
InForm is a complete GUI system, you may benefit from not having to worry about the user interface.

However, if all you want is a text that follows the mouse, InForm may be too much of overhead.

Either way, let me know if there's anything in InForm I can be of assistance with.
Title: Re: Tooltips wanted
Post by: SpriggsySpriggs on November 05, 2020, 10:44:22 am
InForm is a complete GUI system, you may benefit from not having to worry about the user interface.

However, if all you want is a text that follows the mouse, InForm may be too much of overhead.

Either way, let me know if there's anything in InForm I can be of assistance with.
@FellippeHeitor I should have worded it differently. What I mean is that he should look at the code of how InForm does it.
Title: Re: Tooltips wanted
Post by: Petr on November 05, 2020, 01:14:33 pm
krovit: is this something, what you search?

Code: QB64: [Select]
  1. TYPE Button
  2.     X AS INTEGER 'X coordinate
  3.     Y AS INTEGER 'Y coordinate
  4.     Label AS STRING * 30
  5.     ButText AS STRING * 1
  6.  
  7. DIM B(5) AS Button
  8. 'set it!
  9.  
  10. FOR generate = 0 TO 5
  11.     B(generate).X = 100 + space
  12.     B(generate).Y = 100
  13.     B(generate).Label = "Button nr. " + STR$(generate)
  14.     B(generate).ButText = _TRIM$(STR$(generate))
  15.     space = space + 60
  16.  
  17.  
  18. 'draw it
  19. SCREEN _NEWIMAGE(800, 600, 256)
  20. BWidth = 50
  21. BHeight = 20
  22. FOR d = 0 TO 5
  23.     LINE (B(d).X, B(d).Y)-(B(d).X + BWidth, B(d).Y + BHeight), , B
  24.     COLOR 15
  25.     _PRINTSTRING (B(d).X + 21, B(d).Y + 4), B(d).ButText
  26.     '                      21: button width / 2 - fontwidth / 2  (default font width is 8, so 50 / 2 - 8 / 2 = 25 - 4 = 21  -> center to middle
  27. 'save screen image
  28.  
  29.  
  30.  
  31. 'and now use it...
  32.     t = 0
  33.     DO UNTIL t = 6
  34.         WHILE _MOUSEINPUT: WEND
  35.         MX = _MOUSEX
  36.         MY = _MOUSEY
  37.         LB = _MOUSEBUTTON(1)
  38.  
  39.         IF MX >= B(t).X AND MX <= B(t).X + BWidth THEN
  40.             IF MY >= B(t).Y AND MY <= B(t).Y + BHeight THEN
  41.                 COLOR 14, 1
  42.                 _PRINTMODE _FILLBACKGROUND
  43.                 _PRINTSTRING (B(t).X, B(t).Y + 16), _TRIM$(B(t).Label)
  44.                 '                              16: Default font height is 16, so label is displayed 1 row lower
  45.                 IF LB THEN
  46.                     COLOR 15, 0
  47.                     LOCATE 20, 1: PRINT "Button "; t; "pressed."
  48.                 END IF
  49.             END IF
  50.         END IF
  51.         t = t + 1
  52.     LOOP
  53.     'restore screen image
  54.     _DISPLAY
  55.     _PUTIMAGE , scr
  56.     _LIMIT 20
  57.  
Title: Re: Tooltips wanted
Post by: krovit on November 05, 2020, 03:29:37 pm
krovit: is this something, what you search?


Ah! simple and effective!
I thought you had to save the entire screen image (or something like that), write with _PRINTSCREEN, and then reload the saved image.
I don't think there's any alternative.
However, as I said, your example is simple and I think I can implement it in my code.
Thank you.

In any case my request always remains valid.
i think the tooltip is a gadget that can be convenient on many occasions.

Title: Re: Tooltips wanted
Post by: krovit on November 05, 2020, 03:33:27 pm
InForm is a complete GUI system, you may benefit from not having to worry about the user interface.
However, if all you want is a text that follows the mouse, InForm may be too much of overhead.
Either way, let me know if there's anything in InForm I can be of assistance with.

Thank you Fellippe.
InForm is a great resource and always surprises for the potential.

But it's like you said: it's too "cumbersome" to put something of its own into other projects.
I tried to understand how the built-in tooltip works but to "get it out" I think I should disassemble the whole system...

Title: Re: Tooltips wanted
Post by: FellippeHeitor on November 05, 2020, 04:20:08 pm
It's a small cog in the engine indeed.