1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-06-29 10:30:36 +00:00

Allows desselecting a char by clicking outside the chart (ASCII).

- Allows Ctrl+Arrows to move quickly around the chart.
- Makes sure double-click occurs only when both clicks happen on the same glyph.
This commit is contained in:
FellippeHeitor 2021-01-14 23:37:28 -03:00
parent 1604ca1599
commit e0bfef4d87

View file

@ -13818,11 +13818,12 @@ FUNCTION ideASCIIbox$
Hover = i Hover = i
IF mCLICK THEN IF mCLICK THEN
Selected = i Selected = i
IF timeElapsedSince(lastClick!) <= .3 THEN IF timeElapsedSince(lastClick!) <= .3 and lastClickOn = i THEN
'double click on chart 'double click on chart
GOTO insertChar GOTO insertChar
END IF END IF
lastClick! = TIMER lastClick! = TIMER
lastClickOn = i
END IF END IF
COLOR 7, 0 COLOR 7, 0
ELSE ELSE
@ -13888,6 +13889,10 @@ FUNCTION ideASCIIbox$
NEXT NEXT
'-------- end of generic input response -------- '-------- end of generic input response --------
IF mY > p.y AND mY < p.y + p.h AND mX > p.x AND mX < p.x + p.w THEN
IF Hover = 0 AND mCLICK THEN Selected = 0
END IF
IF K$ = CHR$(13) OR (Selected > 0 AND focus = 1 AND info <> 0) THEN IF K$ = CHR$(13) OR (Selected > 0 AND focus = 1 AND info <> 0) THEN
IF Selected = 0 AND Hover > 0 THEN IF Selected = 0 AND Hover > 0 THEN
Selected = Hover Selected = Hover
@ -13914,28 +13919,58 @@ FUNCTION ideASCIIbox$
CASE 19712, 19200, 20480, 18432 CASE 19712, 19200, 20480, 18432
IF Selected = 0 AND Hover > 0 THEN Selected = Hover IF Selected = 0 AND Hover > 0 THEN Selected = Hover
CASE 19712 CASE 19712
Selected = Selected + 1 IF KCTRL AND Selected > 0 THEN
DO UNTIL Selected MOD 16 = 0 OR Selected = 255
Selected = Selected + 1
LOOP
ELSE
Selected = Selected + 1
END IF
IF Selected > 255 THEN Selected = 1 IF Selected > 255 THEN Selected = 1
CASE 19200 CASE 19200
Selected = Selected - 1 IF KCTRL AND Selected > 0 THEN
DO UNTIL Selected MOD 16 = 1
Selected = Selected - 1
LOOP
ELSE
Selected = Selected - 1
END IF
IF Selected < 1 THEN Selected = 255 IF Selected < 1 THEN Selected = 255
CASE 20480 CASE 20480
IF Selected = 240 THEN IF KCTRL AND Selected > 0 THEN
'corner case IF Selected = 240 THEN
Selected = 255 Selected = 255
ELSEIF Selected + 16 <= 255 THEN ELSE
Selected = Selected + 16 DO UNTIL Selected >= 240
Selected = Selected + 16
LOOP
END IF
IF Selected > 255 THEN Selected = 255
ELSE ELSE
Selected = Selected + 16 - 256 IF Selected = 240 THEN
'corner case
Selected = 255
ELSEIF Selected + 16 <= 255 THEN
Selected = Selected + 16
ELSE
Selected = Selected + 16 - 256
END IF
END IF END IF
CASE 18432 CASE 18432
IF Selected = 16 THEN IF KCTRL AND Selected > 0 THEN
'corner case DO UNTIL Selected <= 16
Selected = 240 Selected = Selected - 16
ELSEIF Selected - 16 >= 1 THEN LOOP
Selected = Selected - 16 IF Selected < 1 THEN Selected = 0
ELSE ELSE
Selected = Selected - 16 + 256 IF Selected = 16 THEN
'corner case
Selected = 240
ELSEIF Selected - 16 >= 1 THEN
Selected = Selected - 16
ELSE
Selected = Selected - 16 + 256
END IF
END IF END IF
END SELECT END SELECT