Com isso, quero dizer elementos da interface do usuário (por exemplo, campos de texto e botões animados) que não são restritos à grade de caracteres monoespaçados dos emuladores de terminal, mas podem ser formas arbitrárias em posições arbitrárias de pixels na tela. Estou simplesmente curioso para saber se e como isso é possível, e se não é possível, se está planejado para o futuro.
11
svg-clock
pacote no GNU ELPA para um exemplo "simples". Mas se você quiser desenhar sobre outros elementos, a resposta é infelizmente "não", embora muitas pessoas ficariam felizes se alguém escrevesse um patch que faça isso.Draw image.png(400x600+16+30)
desenhar uma imagem em escala nessa coordenada específica em relação a algum canto.Respostas:
Campos de texto e botões (como, nos buffers Personalizar) estão realmente sujeitos à grade na qual o Emacs alinha os caracteres.
O que você pode fazer é dizer ao Emacs para exibir uma imagem do tipo SVG (vetor) ou XPM (bitmap). Como esses arquivos não são limitados para serem lidos em um arquivo, você pode gerar uma string e transformá-la em uma imagem. Eu já vi exemplos de uso semelhante a tela, onde a imagem ocupa a maior parte da janela e é desenhada livremente (consulte svg-thing , slime-volley , svg-clock , meu próprio svg-2048 ) e menos desagradável que se assemelham aos elementos da interface do usuário (veja os ícones no AUCTEX , ícone da modelagem do gnus , a versão gráfica da
M-x tetris
, svg-modeline) Ainda há muito trabalho a ser feito, considerando que o Emacs não tem um tipo de imagem semelhante a uma tela, mas é possível deslocar essas imagens e usá-las como propriedade de exibição de outros elementos da interface do usuário, como a modeline ou margin e bind bind keys, incluindo o mouse uns para eles.fonte
Para desenhar gráficos raster, você pode experimentar o EPaint . Parece suportar desenho à mão livre e formas geométricas básicas.
fonte