Як я можу малювати піксельні або векторні інтерфейси на основі інтерфейсу в Emacs?


11

З цим я маю на увазі елементи інтерфейсу (наприклад, текстові поля та анімовані кнопки), які не обмежуються односкладними символьними сітками термінальних емуляторів, але можуть мати довільну форму у довільних положеннях пікселів на екрані. Мені просто цікаво, чи і як це можливо, і якщо це неможливо, чи планується це на майбутнє.


2
Ну так - екран цього сплеску очевидний. Я б переформулював ваше запитання про те, як це можна зробити. Як відомо, проста відповідь "так / ні" відповіла б на це питання.
Шон Алред

3
Якщо ви хочете лише малювати, то так, ви можете бачити. Дивіться svg-clockпакет у GNU ELPA для "простого" прикладу. Але якщо ви хочете , щоб намалювати поверх інших елементів, то відповідь не є , до жаль , «ні», хоча багато людей були б щасливі , якщо б хто - небудь написати патч , який робить це.
Стефан

1
@SeanAllred довільної форми, так; довільна піксельна позиція, ні.
Малабарба

@Malabarba Whoops - так, ви маєте рацію. Ти можеш обдурити, хоча з полями відображення та текстовими гранями, хоча - ти можеш отримати досить точний. Але ви маєте рацію, сказавши, що не можете сказати Draw image.png(400x600+16+30)намалювати масштабоване зображення в тій конкретній координаті відносно якогось кута.
Шон Алред

Відповіді:


8

Текстові поля та кнопки (як, наприклад, у буферах налаштування) фактично підпорядковані сітці, на якій Emacs вирівнює символи.

Що ви можете зробити, це сказати Emacs відобразити зображення типу SVG (вектор) або XPM (bitmap). Оскільки вони не обмежені для читання з файлу, ви можете створити рядок і перетворити його в зображення. Я бачив приклади використання як полотна, де зображення займає більшу частину вікна і вільно малюється (див. SVG-річ , шлейф-залп , svg-годинник , мій власний svg-2048 ), і менш неприємне використання, яке досить нагадують елементи інтерфейсу (див. іконки в AUCTEX , значок моделю gnus , графічна версія M-x tetris, svg-modeline). Існує ще чимало кроків для роботи, враховуючи, що Emacs не має полотно типу зображення, але можна змістити ці зображення та використовувати їх як властивість відображення інших елементів інтерфейсу, таких як модель, поле або палітурні клавіші, а також миші ті їм.


1

Для малювання растрової графіки ви можете спробувати EPaint . Схоже, він підтримує малювання від руки та основні геометричні фігури.

демонстрація із сховища EPaint

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.