curses
Interface de usuário baseada em terminal (wrapper ncurses)
embora seja um wrapper, o FatScript tem sua própria maneira de abordar a interface do usuário no terminal, que pode diferir em alguns aspectos da biblioteca curses
Importação
_ <- fat.curses
Methods
Nome | Assinatura | Breve descrição |
---|---|---|
box | (p1: Scope, p2: Scope): Void | Desenhar quadrado de pos1 a pos2 |
clear | (): Void | Limpar buffer de tela |
refresh | (): Void | Renderizar buffer de tela |
getMax | (): Scope | Retorna tamanho da tela como x, y |
printAt | (pos: Scope, msg: Any, width: Number = ø): Void | Imprimir msg em { x, y } pos |
makePair | (fg: Number = ø, bg: Number = ø): Number | Criar um par de cores |
usePair | (pair: Number): Void | Aplicar par de cores |
frameTo | (cols: Number, rows: Number) | Alinhar área ao centro da tela |
readKey | (): Text | Retorna tecla pressionada |
readText | (pos: Scope, width: Number, prev: Text = ø): Text | Inicia caixa de texto |
flushKeys | (): Void | Limpar buffer de entrada |
endCurses | (): Void | Encerrar o modo curses |
as posições (pos) estão no formato { x: Number, y: Number }
os métodos nesta biblioteca não garantem a segurança de threads em cenários assíncronos, ou utilize a thread principal ou então um único worker para renderizar atualizações no console
Notas de uso
Qualquer método desta biblioteca, exceto endCurses
, iniciará o modo curses se ainda não tiver iniciado. Note que métodos como log
, stderr
e input
da biblioteca console chamarão endCurses
implicitamente. No entanto, moveTo
, print
e flush
não irão alterar o modo de saída e podem ser combinados com métodos curses, o que pode ser útil em algumas circunstâncias.
As letras x
e y
representam coluna e linha, respectivamente, ao chamar printAt
, onde { 0, 0 } é o canto superior esquerdo e o resultado de getMax
é apenas a primeira coordenada fora do canto inferior direito.
caracteres especiais em curses só funcionam se um locale UTF-8 puder ser definido
makePair
Você pode importar a biblioteca color para usar nomes de cores e criar uma combinação de primeiro plano e plano de fundo (par). Passe null
para aplicar a cor padrão no parâmetro desejado.
usePair
A entrada deste método deve ser um par de cores criado com o método makePair
. Ele deixa este par habilitado até que você chame esta função novamente com um par diferente.
readKey
Este método não bloqueia e retorna null
se stdin
estiver vazio, caso contrário retornará um caractere por vez.
Chaves especiais podem ser detectadas e retornar palavras-chave como:
- teclas de seta:
- up
- down
- left
- right
- teclas de edição:
- delete
- backspace
- enter
- space
- tab
- backTab (shift+tab)
- teclas de controle:
- pageUp *
- pageDown *
- home
- end
- insert
- print *
- esc
- teclas de função:
- f(n) *
- outras:
- resize (janela do terminal foi redimensionada)
a detecção daqueles com asterisco pode depender do contexto ou da plataforma
readText
Entra em modo captura de texto utilizando uma área demarcada por posição e largura da caixa de texto. Se o texto for maior que o espaço uma rolagem automática do texto é realizada. O texto completo é retornado ao pressionar enter
, no entanto caso esc
seja pressionado é retornado null
.