draw cursor when in NORMAL_SEARCH_MODE

This commit is contained in:
2025-09-01 11:04:56 +01:00
parent ea4dae3c53
commit 53082315ac
3 changed files with 58 additions and 1 deletions

View File

@@ -28,6 +28,27 @@ struct
, floatWindowHeight
)
val cursor =
let
val xpos = TextConstants.xSpace * (searchCursorIdx + 1) + 5
val x = Real32.fromInt xpos
val y = Real32.fromInt searchStringPosY
val r: Real32.real = 0.67
val g: Real32.real = 0.51
val b: Real32.real = 0.83
in
PipeCursor.lerp
( x
, y
, TextConstants.scale
, floatWindowWidth
, floatWindowHeight
, r
, g
, b
)
end
val buffer = LineGap.goToLine (startLine, buffer)
val startLine = TextWindow.getStartLine
(buffer, startLine, cursorIdx, windowWidth, windowHeight)
@@ -45,7 +66,7 @@ struct
, tempSearchList
, searchString
, []
, initialTextAcc
, cursor :: initialTextAcc
, []
)
in

35
fcore/pipe-cursor.sml Normal file
View File

@@ -0,0 +1,35 @@
structure PipeCursor =
struct
fun xToNdc (xOffset, xpos, scale, halfWidth) =
((xpos * scale + xOffset) - halfWidth) / halfWidth
fun yToNdc (yOffset, ypos, scale, halfHeight) =
~(((ypos * scale + yOffset) - halfHeight) / halfHeight)
fun lerp (xOffset: Real32.real, yOffset, scale, windowWidth, windowHeight, r, g, b) =
let
val halfWidth = windowWidth / 2.0
val halfHeight = windowHeight / 2.0
in
#[
xToNdc (xOffset, 0.000000000000000, scale, halfWidth),
yToNdc (yOffset, 13.000000000000000, scale, halfHeight),
r, g, b,
xToNdc (xOffset, 1.000000000000000, scale, halfWidth),
yToNdc (yOffset, 13.000000000000000, scale, halfHeight),
r, g, b,
xToNdc (xOffset, 0.000000000000000, scale, halfWidth),
yToNdc (yOffset, 0.000000000000000, scale, halfHeight),
r, g, b,
xToNdc (xOffset, 0.000000000000000, scale, halfWidth),
yToNdc (yOffset, 0.000000000000000, scale, halfHeight),
r, g, b,
xToNdc (xOffset, 1.000000000000000, scale, halfWidth),
yToNdc (yOffset, 13.000000000000000, scale, halfHeight),
r, g, b,
xToNdc (xOffset, 1.000000000000000, scale, halfWidth),
yToNdc (yOffset, 0.000000000000000, scale, halfHeight),
r, g, b
]
end
end