EmacsでピクセルベースまたはベクターベースのUI要素を描画するにはどうすればよいですか?


11

つまり、端末エミュレーターの等幅文字グリッドに制限されず、画面上の任意のピクセル位置の任意の形状にすることができるUI要素(テキストフィールドやアニメーションボタンなど)を意味します。それが可能かどうか、またそれがどのように可能か、そしてそれが不可能な場合は、将来に向けて計画されているかどうかに興味があります。


2
ええ、はい–スプラッシュスクリーンはこの事実から明らかです。これをどのように行うことができるかについて、あなたの質問を言い換えます。現状では、単純な「はい/いいえ」の答えでこの質問に「答え」ます。
Sean Allred 2014年

3
描きたいだけなら、そうです。svg-clock「簡単な」例については、GNU ELPA のパッケージを参照してください。しかし、他の要素のに描画たい場合、その答えは悲しいことに「いいえ」ですが、誰かがそれを行うパッチを書いたら、多くの人が満足します。
ステファン

1
@SeanAllred任意形状、はい; 任意のピクセル位置。
マラバルバ2014年

@Malabarbaおっと-はい、あなたは正しいです。ただし、表示マージンとテキスト面を使用してカンニングすることはできますが、かなり正確にすることができます。しかしDraw image.png(400x600+16+30)、あるコーナーを基準にした特定の座標にスケーリングされたイメージを描画することはできないと言うのは正しいことです。
Sean Allred 2014年

回答:


8

テキストフィールドとボタン(カスタマイズバッファーなど)は、Emacsが文字を揃えるグリッドの影響を受けます。

EmacsにSVG(ベクター)またはXPM(ビットマップ)タイプの画像を表示するように伝えることができます。これらはファイルからの読み取りに限定されていないため、文字列を生成して画像に変換できます。画像がウィンドウの大部分を占め、自由に描画されるキャンバスのような使用法(svg-thingslime-volleysvg-clock、自分自身のsvg-2048を参照)と、それほど気にならない使用法の両方の例を見てきました。UI要素は、(中アイコンが表示似AUCTEXヌー 'モードラインアイコンのグラフィカルバージョンM-x tetrisSVG-モードライン)。Emacsにキャンバスのような画像タイプがないことを考えると、やるべきことはまだかなりありますが、これらの画像を置き換えて、マウスを含むモードラインやマージンやバインドキーなどの他のUI要素の表示プロパティとして使用することが可能です。それらのもの。


1

ラスターグラフィックスを描画するには、EPaintを試してみてください。フリーハンドでの描画や基本的な幾何学的形状をサポートしているようです。

EPaintリポジトリのデモ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.