mirror of
https://github.com/QB64-Phoenix-Edition/QB64pe.git
synced 2024-09-28 11:17:46 +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:
parent
1604ca1599
commit
e0bfef4d87
1 changed files with 50 additions and 15 deletions
|
@ -13818,11 +13818,12 @@ FUNCTION ideASCIIbox$
|
|||
Hover = i
|
||||
IF mCLICK THEN
|
||||
Selected = i
|
||||
IF timeElapsedSince(lastClick!) <= .3 THEN
|
||||
IF timeElapsedSince(lastClick!) <= .3 and lastClickOn = i THEN
|
||||
'double click on chart
|
||||
GOTO insertChar
|
||||
END IF
|
||||
lastClick! = TIMER
|
||||
lastClickOn = i
|
||||
END IF
|
||||
COLOR 7, 0
|
||||
ELSE
|
||||
|
@ -13888,6 +13889,10 @@ FUNCTION ideASCIIbox$
|
|||
NEXT
|
||||
'-------- 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 Selected = 0 AND Hover > 0 THEN
|
||||
Selected = Hover
|
||||
|
@ -13914,12 +13919,34 @@ FUNCTION ideASCIIbox$
|
|||
CASE 19712, 19200, 20480, 18432
|
||||
IF Selected = 0 AND Hover > 0 THEN Selected = Hover
|
||||
CASE 19712
|
||||
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
|
||||
CASE 19200
|
||||
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
|
||||
CASE 20480
|
||||
IF KCTRL AND Selected > 0 THEN
|
||||
IF Selected = 240 THEN
|
||||
Selected = 255
|
||||
ELSE
|
||||
DO UNTIL Selected >= 240
|
||||
Selected = Selected + 16
|
||||
LOOP
|
||||
END IF
|
||||
IF Selected > 255 THEN Selected = 255
|
||||
ELSE
|
||||
IF Selected = 240 THEN
|
||||
'corner case
|
||||
Selected = 255
|
||||
|
@ -13928,7 +13955,14 @@ FUNCTION ideASCIIbox$
|
|||
ELSE
|
||||
Selected = Selected + 16 - 256
|
||||
END IF
|
||||
END IF
|
||||
CASE 18432
|
||||
IF KCTRL AND Selected > 0 THEN
|
||||
DO UNTIL Selected <= 16
|
||||
Selected = Selected - 16
|
||||
LOOP
|
||||
IF Selected < 1 THEN Selected = 0
|
||||
ELSE
|
||||
IF Selected = 16 THEN
|
||||
'corner case
|
||||
Selected = 240
|
||||
|
@ -13937,6 +13971,7 @@ FUNCTION ideASCIIbox$
|
|||
ELSE
|
||||
Selected = Selected - 16 + 256
|
||||
END IF
|
||||
END IF
|
||||
END SELECT
|
||||
|
||||
'end of custom controls
|
||||
|
|
Loading…
Reference in a new issue