Damit meine ich UI-Elemente (zum Beispiel Textfelder und animierte Schaltflächen), die nicht auf das monospaced Zeichenraster von Terminalemulatoren beschränkt sind, sondern beliebige Formen an beliebigen Pixelpositionen auf dem Bildschirm sein können. Ich bin einfach neugierig, ob und wie das möglich ist und wenn es nicht möglich ist, ob es für die Zukunft geplant ist.
11
svg-clock
Ein "einfaches" Beispiel finden Sie im Paket in GNU ELPA. Aber wenn Sie auf andere Elemente zurückgreifen möchten, lautet die Antwort leider "Nein", obwohl sich viele Menschen freuen würden, wenn jemand einen Patch schreiben würde, der dies tut.Draw image.png(400x600+16+30)
ein skaliertes Bild an dieser bestimmten Koordinate relativ zu einer Ecke zeichnen sollen.Antworten:
Textfelder und Schaltflächen (wie in den Puffern anpassen) unterliegen tatsächlich dem Raster, auf dem Emacs Zeichen ausrichtet.
Sie können Emacs anweisen, ein Bild vom Typ SVG (Vektor) oder XPM (Bitmap) anzuzeigen. Da diese nicht nur aus einer Datei eingelesen werden können, können Sie eine Zeichenfolge generieren und in ein Bild verwandeln. Ich habe Beispiele sowohl für eine leinwandähnliche Verwendung gesehen, bei der das Bild den größten Teil des Fensters einnimmt und frei gezeichnet ist (siehe SVG-Ding , Schleim-Volley , SVG-Uhr , meine eigene SVG-2048 ), als auch für eine weniger unangenehme Verwendung, die eher ähnelt UI - Elemente (siehe die Symbole in AUCTEX , Gnu 'mode~~POS=TRUNC- Symbol, die grafische Version
M-x tetris
, sVG-mode~~POS=TRUNC). Es ist noch einiges an Fußarbeit zu tun, wenn man bedenkt, dass Emacs keinen Canvas-ähnlichen Bildtyp hat, aber es ist möglich, diese Bilder zu verschieben und sie als Anzeigeeigenschaft für andere UI-Elemente wie Modeline oder Rand zu verwenden und Tasten einschließlich der Maus zu binden diejenigen zu ihnen.quelle
Zum Zeichnen von Rastergrafiken können Sie EPaint ausprobieren . Es scheint Freihandzeichnen und geometrische Grundformen zu unterstützen.
quelle