我正在为学习日语的人们开发Emacs模式。关键是通过运行一组在点处提取角色的函数来帮助他们学习各种日文字符(特别是汉字)的笔画顺序,如果是日文字符,则显示具有笔画顺序的图像。我已经解决了几乎所有的细节,但我有一个关于显示图像的问题。我希望能够在一个固定在点的弹出菜单中显示图像对象(由create-image
获得)。这样做的任何暗示?或者,我想创建一个显示图像的新临时缓冲区。我已尝试将insert-image
与图像对象一起使用,但我在结果缓冲区中看到的只是图像应该是的空矩形。如何制作带有可见图像的缓冲区?非常感谢任何帮助。
答案 0 :(得分:4)
将图像放在工具提示中可能会有所帮助,作为一个开始。
我在Dired+中执行此操作 - 请参阅diredp-mouseover-help
和diredp-image-dired-create-thumb
的代码。这是它的核心:
除非image-dired-thumb-name
表示图像文件已有缩略图,否则请使用image-dired-create-thumb
创建一个。这是diredp-image-dired-create-thumb
。
在鼠标悬停时显示工具提示中的完整图片或缩略图:
(let ((img-file (if (eq 'full diredp-image-preview-in-tooltip) file (diredp-image-dired-create-thumb file)))) (propertize " " 'display (create-image img-file)))
下一步可能是在图像上放置keymap
或local-map
属性,例如,mouse-1
绑定充当该图像选择的选择操作。只是一个想法 - 没试过。
您可能希望将多个图像放在同一个工具提示中,每个图像都有不同的动作功能。没试过,但你可能会试验。
HTH。
答案 1 :(得分:3)
您可以在点#34;弹出一个"弹出的图像。使用toltip-frame作为弹出窗口,然后只有使用"非工具包工具提示构建Emacs"。我建议你M-x report-emacs-bug
要求某种方式来做到这一点。它不应该太难实现,例如通过提供对"非工具包工具提示的访问"甚至在使用工具包编译时。其他Elisp库可能会使用这样的功能(例如公司模式)。