私はDrRacketのテキストウィンドウ内にpictや構文オブジェクトのような新しいGUI要素を作成しようとしています。私が知る限り、これを行う最も標準的な方法はsnip%
です。Racketで新しいスナップ%を作成する
残念ながら、creating new snipsのドキュメントは、包括的ではありませんが、少しは解読できないものであり、回答にはいくつかの質問が残されています。
まず、snip%
とsnip-class%
の違いは何ですか?なぜ、これらを単に1つのクラスにまとめるのではなく、2つのクラスに分ける必要があるのですか?複数のスナップショットが1つのスナップクラスを使用するためですか?
第2オフは、snip-reader<%>
とは何ですか?なぜ別のクラスにする必要があるだけでなく、モジュールをインストールする必要があるのはなぜですか? 新しいクラスにする必要がある場合は、なぜ直接参照することはできません。なぜこの形式の文字列を構築して構文解析するのかというこの全プロセスを経て、"(lib ...)\n(lib ...)"
?
つまり、このデザインには何らかの理由がある可能性があります。古いAPIの残り物かもしれません。もしそうなら、もっと一貫性のある新しいAPIを作ることを考えていた人はいますか?または、このデザインの理由がある場合は、ドキュメントが明確でないように、それが何であるか教えてください。
今のところ、sample given in the docsをコピーして貼り付けて、新しい切り取りを作成することができます。しかし、私はここで起こっているデザインを理解するのに苦労しているので、適切に使うことができます。
私はそれを行うための他の方法があることは知っていますが、私はまた対話的なボタンとそれ以外のものを持っていると思います。
私はそれはそれ自体がライブラリとしてインストールする必要ません知っているが、ドキュメントが強く、その方向にあなたをプッシュするようです。
snip-reader%にはsnip%とは別のクラスがあると思われます。非GUIプログラムのsnipを扱うことができます(snip-reader%はwxmeに属しています)。 – soegaard
FWIW: 'editor%' vs 'editor-class%'と同じデザインパターンが使用されています – soegaard
'editor-class%'が見つかりませんでしたが、 'editor-data-class%'が見つかりました。それはあなたもあまりにも参照している? –