Làm cách nào tôi có thể vẽ các thành phần UI dựa trên pixel hoặc vector trong Emacs?


11

Với ý tôi là các thành phần UI (ví dụ như trường văn bản và các nút hoạt hình) không bị giới hạn ở lưới ký tự đơn cách của trình giả lập thiết bị đầu cuối, nhưng có thể là các hình dạng tùy ý tại các vị trí pixel tùy ý trên màn hình. Tôi chỉ đơn giản là tò mò liệu và làm thế nào là có thể, và nếu không thể, liệu nó có kế hoạch cho tương lai hay không.


2
Vâng, vâng - màn hình giật gân là hiển nhiên cho thực tế này. Tôi sẽ điều chỉnh lại câu hỏi của bạn để làm thế nào điều này có thể được thực hiện. Khi nó đứng, một câu trả lời có / không đơn giản sẽ 'trả lời' câu hỏi này.
Sean Allred

3
Nếu bạn chỉ muốn vẽ, thì có, bạn có thể thấy. Xem svg-clockgói trong GNU ELPA để biết ví dụ "đơn giản". Nhưng nếu bạn muốn vẽ lên trên các yếu tố khác, thì câu trả lời thật đáng buồn là "không", mặc dù nhiều người sẽ rất vui nếu ai đó viết một bản vá thực hiện điều đó.
Stefan

1
@Sean ALLred hình dạng tùy ý, có; vị trí pixel tùy ý, không.
Malabarba

@Malabarba Rất tiếc - vâng, bạn đã đúng. Mặc dù vậy, bạn có thể gian lận với lề hiển thị và mặt văn bản - bạn có thể nhận được khá chính xác. Nhưng bạn đã đúng khi nói rằng bạn không thể nói Draw image.png(400x600+16+30)để vẽ một hình ảnh được chia tỷ lệ tại tọa độ cụ thể đó so với một số góc.
Sean Allred

Câu trả lời:


8

Các trường và nút văn bản (như, trong bộ đệm Tùy chỉnh) thực sự phải tuân theo lưới Emacs sắp xếp các ký tự trên.

Những gì bạn có thể làm là bảo Emacs hiển thị hình ảnh của loại SVG (vector) hoặc XPM (bitmap). Vì những thứ đó không bị giới hạn để đọc từ một tệp, bạn có thể tạo một chuỗi và biến nó thành một hình ảnh. Tôi đã thấy các ví dụ về cả cách sử dụng giống như canvas trong đó hình ảnh chiếm phần lớn cửa sổ và được vẽ tự do (xem svg-thing , slime-chuyền , svg-clock , svg-2048 của riêng tôi ) và cách sử dụng ít đáng ghét hơn giống với các thành phần UI (xem các biểu tượng trong AocateEX , biểu tượng mô hình của gnus , phiên bản đồ họa của M-x tetris, svg-modeline). Vẫn còn khá nhiều việc phải làm khi xem xét Emacs không có loại hình ảnh giống như canvas, nhưng có thể thay thế những hình ảnh này và sử dụng chúng làm tài sản hiển thị của các thành phần UI khác như modeline hoặc lề và các phím liên kết bao gồm cả chuột những người cho họ.


1

Để vẽ đồ họa raster, bạn có thể thử EPaint . Nó xuất hiện để hỗ trợ vẽ tự do và các hình dạng hình học cơ bản.

bản demo từ kho lưu trữ EPaint

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.