ฉันจะวาดองค์ประกอบ UI แบบพิกเซลหรือแบบเวกเตอร์ใน Emacs ได้อย่างไร


11

โดยที่ฉันหมายถึงองค์ประกอบ UI (ตัวอย่างเช่นฟิลด์ข้อความและปุ่มภาพเคลื่อนไหว) ที่ไม่ได้ จำกัด อยู่ที่กริดอักขระแบบโมโนสเกลของเทอร์มินัลอีมูเลเตอร์ ฉันแค่อยากรู้ว่ามันเป็นไปได้อย่างไรและมันเป็นไปได้อย่างไรและถ้ามันเป็นไปไม่ได้


2
ใช่แล้ว - หน้าจอสแปลชเห็นได้ชัดจากข้อเท็จจริงนี้ ฉันจะส่งข้อความของคุณอีกครั้งเพื่อให้ทราบว่าสามารถทำได้ คำตอบใช่ / ไม่ใช่ง่ายๆจะตอบคำถามนี้
Sean Allred

3
หากคุณต้องการวาดเท่านั้นใช่คุณสามารถเห็น ดูsvg-clockแพ็คเกจใน GNU ELPA สำหรับตัวอย่าง "แบบง่าย" แต่ถ้าคุณต้องการที่จะดึงด้านบนขององค์ประกอบอื่น ๆ แล้วคำตอบคือเศร้า "ไม่" ถึงแม้ว่าหลายคนจะมีความสุขถ้ามีคนเขียนแพทช์ที่ไม่ว่า
สเตฟาน

1
@ SeanAllred รูปร่างโดยพลการใช่; ตำแหน่งพิกเซลโดยพลการหมายเลข
Malabarba

@ Malabarba อ๊ะ - ใช่คุณถูกต้อง คุณสามารถโกงแม้ว่าจะมีระยะขอบจอแสดงผลและใบหน้าข้อความ แต่คุณสามารถรับความแม่นยำได้ แต่คุณถูกต้องในการบอกว่าคุณไม่สามารถพูดDraw image.png(400x600+16+30)เพื่อวาดภาพขนาดที่พิกัดเฉพาะนั้นเทียบกับบางมุม
Sean Allred

คำตอบ:


8

ฟิลด์ข้อความและปุ่ม (เช่นในการปรับแต่งบัฟเฟอร์) จริง ๆ แล้วจะขึ้นอยู่กับกริด Emacs ที่จัดตำแหน่งอักขระไว้

สิ่งที่คุณสามารถทำได้คือบอกให้ Emacs แสดงภาพประเภท SVG (เวกเตอร์) หรือ XPM (บิตแมป) เนื่องจากไฟล์เหล่านั้นไม่ได้ถูก จำกัด ให้อ่านจากไฟล์คุณสามารถสร้างสตริงและเปลี่ยนเป็นรูปภาพได้ ฉันได้เห็นตัวอย่างของการใช้งานแบบผ้าใบทั้งภาพที่หน้าต่างส่วนใหญ่ใช้วาดได้อย่างอิสระ (ดูsvg-stuff , slime-volley , svg-clock , svg-2048ของฉัน) และการใช้งานที่น่าสะพรึงกลัวน้อยกว่า คล้ายกับองค์ประกอบ UI (ดูไอคอนในAUCTEX , ไอคอนโมเดลgnus ', รุ่นกราฟิกM-x tetris, svg-modeline) ยังคงมีงานวางเท้าค่อนข้างน้อยเนื่องจาก Emacs ไม่มีประเภทภาพเหมือนผ้าใบ แต่สามารถแทนที่รูปภาพเหล่านี้และใช้เป็นคุณสมบัติการแสดงผลขององค์ประกอบ UI อื่น ๆ เช่นแบบจำลองหรือระยะขอบและปุ่มผูกรวมถึงเมาส์ คนที่พวกเขา


1

สำหรับการวาดภาพกราฟิกแรสเตอร์ที่คุณอาจลองEPaint ดูเหมือนว่าจะสนับสนุนการวาดภาพด้วยมือเปล่าและรูปทรงเรขาคณิตพื้นฐาน

การสาธิตจากที่เก็บ EPaint

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.