-module(etui@cursor). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/etui/cursor.gleam"). -export([set_shape/1, show/0, hide/0, move_to/2, save/0, restore/0]). -export_type([cursor_shape/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. -type cursor_shape() :: block_blink | block | underline_blink | underline | bar_blink | bar. -file("src/etui/cursor.gleam", 17). ?DOC(" ANSI sequence to change the cursor shape.\n"). -spec set_shape(cursor_shape()) -> binary(). set_shape(Shape) -> case Shape of block_blink -> <<"\x{001B}[1 q"/utf8>>; block -> <<"\x{001B}[2 q"/utf8>>; underline_blink -> <<"\x{001B}[3 q"/utf8>>; underline -> <<"\x{001B}[4 q"/utf8>>; bar_blink -> <<"\x{001B}[5 q"/utf8>>; bar -> <<"\x{001B}[6 q"/utf8>> end. -file("src/etui/cursor.gleam", 31). -spec show() -> binary(). show() -> <<"\x{001B}[?25h"/utf8>>. -file("src/etui/cursor.gleam", 35). -spec hide() -> binary(). hide() -> <<"\x{001B}[?25l"/utf8>>. -file("src/etui/cursor.gleam", 43). ?DOC(" Move cursor to 1-based (row, col) position.\n"). -spec move_to(integer(), integer()) -> binary(). move_to(Row, Col) -> <<<<<<<<"\x{001B}["/utf8, (erlang:integer_to_binary(Row))/binary>>/binary, ";"/utf8>>/binary, (erlang:integer_to_binary(Col))/binary>>/binary, "H"/utf8>>. -file("src/etui/cursor.gleam", 48). ?DOC(" Save cursor position.\n"). -spec save() -> binary(). save() -> <<"\x{001B}[s"/utf8>>. -file("src/etui/cursor.gleam", 53). ?DOC(" Restore cursor position.\n"). -spec restore() -> binary(). restore() -> <<"\x{001B}[u"/utf8>>.