O ncurses tem algum suporte para computadores com tela sensível ao toque? Uma tela sensível ao toque acionará os mesmos eventos em ncurses que um mouse faz? Por exemplo, tocar em uma tela sensível ao toque produz um evento de "clique do mouse" em ncurses?
Eu sei que ncurses suporta entrada de mouse, então na medida em que uma tela sensível ao toque pode agir como um mouse, ela pode interagir com ncurses, eu espero. Assim, um toque é como um clique do mouse, um arrasto é o mesmo em ambos.
Mas não há roda de rolagem com a tela sensível ao toque e nenhum clique com o botão direito. Além disso, a tela sensível ao toque potencialmente possui gestos que um mouse não possui.
O capítulo do mouse do HOWTO de programação ncurses pode ser uma leitura útil.
O primeiro subcapítulo apresenta todas as máscaras de eventos do mouse: há um relatório de posição do mouse, que inclui as coordenadas x, yez, de modo que uma delas pode ser usada para cobrir uma roda de rolagem. Existem eventos para até quatro botões e cliques duplos e triplos para cada um deles. Existem eventos para o uso das teclas Shift, Control e Alt como modificadores para eventos de clique. E essas são todas as informações que você pode obter através da API do mouse ncurses.
Mas esse documento tem mais de 10 anos - talvez não esteja atualizado?
Não. A pesquisa pela palavra "toque"
/usr/include/ncurses.h
produz vários resultados, mas a referência cruzada às páginas de manual correspondentes indica que todos eles se referem à tomada de decisões se o conteúdo na tela requer atualização ou não. Nada específico da tela sensível ao toque está disponível.Mesmo a versão mais recente 6.1 não oferece suporte a telas sensíveis ao toque mais avançado.
Se você não encontrar o que está procurando depois de verificar as fontes que mencionei acima, você pode determinar de forma bastante conclusiva que o que está procurando não existe.
Esta é apenas a minha opinião, mas parece-me que o multitoque e os gestos muitas vezes exigiriam alguma capacidade gráfica que permitiria o zoom e a rotação de alguns elementos na tela com bastante liberdade, apenas para tornar aparente que os gestos estão fazendo algo . Uma tela baseada em caracteres pode ser um ajuste ruim para essa interface, então provavelmente é por isso que ninguém se esforçou para adicionar suporte específico à tela sensível ao toque ainda.
Mas parece que você pode ter algumas ideias novas sobre interfaces de usuário de toque em telas baseadas em texto. Talvez você possa prototipar suas ideias com a interface do aplicativo de demonstração mais diretamente com o driver da tela sensível ao toque real.
Uma vez que você tenha alguma ideia sobre que tipo de elementos de interface de usuário de tela sensível ao toque realmente funcionam com telas de base de texto (talvez recrutar alguns estudantes universitários para fazer um projeto básico de pesquisa de usabilidade para você?), a próxima pergunta será: que tipo de abstração de eventos de tela sensível ao toque seria mais útil para implementá-los?
Pode acontecer que não haja valor agregado em passar os eventos da tela sensível ao toque por meio do próprio ncurses: em vez disso, você pode achar apropriado criar uma biblioteca de elementos de interface de toque separada que se conecte a ncurses para exibição e ao driver de tela sensível ao toque para entrada. Quem disse que você deve usar apenas uma API de programação por vez?