Gui básico em terminal | guiterminal.pris

Fiz uma correção na mensagem questão (botões) e reupei:(4/11/2017)

Muitas vezes por algum motivo é necessário abrir mão da interface gráfica e usar apenas o terminal de comandos, seja por questão de memória, seja em um servidor etc.

Que tal unir um pouco dos dois mundos, criando mensagens box, diálogos e listagem no terminal, usando as teclas (Setas, Enter,X,C) para interagir.

Foi pensando nisso que resolvi criar um conjunto básico gui modo texto para usar em programas feitos em Prisma que rodem no terminal.

(Esta lib estará incluída nas próximas versões Prisma e futuramente quero fazer mais tipos de componentes em modo texto, senha, entra texto, etc.);

Baixe aqui. GuiTerm

(é necessária a biblioteca terminal)

Exemplo 1 (mensagem ok):

local ret = guiterm.mensagem_ok(Titulo,Txt,Col,Lin, Cor);

se Col ou Lin for omitido o valor padrão é 0; Se Cor for omitido padrão é ‘azul’

Cores: ‘azul’,’verde’,’vermelho’,’amarelo’,’cinza’,’preto’,’magenta’

guiterm_msg_ok

 

Exemplo 2 (mensagem de aviso/alerta):

local ret = guiterm.mensagem_aviso(Titulo,Txt,Col,Lin, Cor);

se Col ou Lin for omitido o valor padrão é 0; Se Cor for omitido padrão é ‘azul’

guiterm_msg_aviso

 

 

exemplo 3 (mensagem questão):

local ret, rot = guiterm.mensagem_ok(Titulo,Txt,Col,Lin, Cor,TabBt);

TabBt = { “Bt1”, “BT2”, “BT3”, num=3, cor=’azul’};

num = 3 – foco no botão 3; cor = ‘azul’ cor do foco. Se omitidos o padrão é 1 e Cor;

se Col ou Lin for omitido o valor padrão é 0; Se Cor for omitido padrão é ‘azul’

guiterm_msg_quest

 

Exemplo 4 (Dialogo de escolha):

guiterm_escolha

ret, str = gterm.escolha(Titulo,Texto, Itens, Col, Lin, Alt,Larg, Cor );

Itens = {“item1”, “item2”, “item3”, … }

 

Exemplo 5 (listagem de itens):

guiterm_listagem

 

Algumas funções úteis:

 

gterm.def_corfundo(Cor);

//define a cor de fundo para toda área do terminal

Cor = gterm.obt_corfundo();

//obtém a cor de fundo atual;

gterm.ative_corfundo();

//Apaga a tela do terminal e ativa a cor definida na função anterior.

gterm.limpe_tudo();

//o mesmo que a função anterior;

str = gterm.alin_esquerda(Texto, Tam, Car);

//preenche com caracteres o lado direito de acordo com número Tam. Já descontando o tamanho de Texto.

ex.:

str = gterm.alin_direita( Texto, Tam, Car);

str = gterm.alin_centro( Texto, Tam, Car);

 

Caso Car seja omitido o padrão é espaço.

str = gterm.str_encolha(Str, Tam);

Encolhe uma string Str para o tamanho Tam, se a string for maior que Tam, ela é recortada no meio e então é inserida reticências:

Saída: Prisma – linguagem de p… português brasileiro

OBS.: Teclas Aceitas:

  • setas para selecionar itens ou botões.
  • C – Cancelar / Sem selecionar item (Para mensagem_questao, listagem e escolha); Retorno é falso + “cancelado”;
  • X – Sair / Fechar  /Sem selecionar item (Para – mensagem_questao, listagem e escolha); Retorno é falso + “fechado”
  • ENTER – Aceitar / Finaliza retornando o item selecionado ( Para todas); Retorno é Número do ítem + rótulo do ítem.

Considerações:

Claro que é bem básico mesmo, mas por ser em terminal é bem legal, espero usar essa lib em servidores modo texto, para facilitar a vida mesmo.

No momento consta 5 componentes e todos caixas de dialogo, nenhuma janela ainda, menu ou outros tipos.

Em breve, atualizações e novos componentes.

Pessoal, até a próxima.

Veja uma gravação da área de trabalho:

Fórum: linguage

4 thoughts on “Gui básico em terminal | guiterminal.pris

    1. Sim, há tempos que eu queria fazer isso, já tinha até uns protótipos, aí aperfeiçoei.
      Se possível baixe de novo pois subi um novo arquivo com algumas correções.
      Por mais que a gente testa ainda fica algumas coisas para trás.

      Testa aí, qualquer coisa dá um alô, seja bug, crítica ou sugestão.
      Falou, até mais.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *