Next: , Previous: , Up: フレーム   [Contents][Index]


30.21 ウィンドウシステムによる選択

Xのようなウィンドウシステムでは、異なるアプリケーション間のデータ転送は選択(selections)により行われます。ウィンドウシステムはそれぞれ任意の数の選択タイプ(selection types)を定義し、すべてのウィンドウシステムが独自にデータを格納できますが、一般的に使用されるのはクリップボード(clipboard)プライマリー選択(primary selection)セカンダリー選択(secondary selection)の3つだけです。これら3つの選択を使用するEmacsコマンドについてはCut and Paste in The GNU Emacs Manualを参照してください。このセクションではウィンドウシステムによる選択の読み取りとセットを行う低レベル関数について説明します。特定のウィンドウシステムにおける選択タイプとデータフォーマットについては選択へのアクセスを参照してください。

Command: gui-set-selection type data

この関数はウィンドウシステムの選択をセットする。これは選択タイプtype、それに割り当てる値dataという2つの引数を受け取る。

typeはシンボルであること。通常はPRIMARYSECONDARYCLIPBOARDのいずれかである。これらは一般的にはXウィンドウシステムの慣例に対応する大文字のシンボル名である。typenilならそれはPRIMARYを意味する。

datanilなら、それはその選択をクリアーすることを意味する。それ以外ならdataは文字列、シンボル、整数、オーバーレイ、同じバッファーを指す2つのマーカーのコンスを指定できる。オーバーレイとマーカーのペアは、そのオーバーレイまたはマーカー間のテキストを意味する。引数dataには有効な非ベクターの選択のベクターも指定できる。

dataが文字列なら、そのテキストプロパティによって個々のデータタイプに使用する値を指定できる。たとえばdatatext/uri-listという名前のテキストプロパティを保有していれば、データタイプtext/uri-listとともにgui-get-selectionを呼び出すことによって、data自身のかわりにそのプロパティの値が使用される。

この関数はdataをリターンする。

Function: gui-get-selection &optional type data-type

この関数はEmacsや他のプログラムによりセットアップされた選択にアクセスする。これはtypedata-typeの2つの引数を受け取る。typeは選択のタイプでありデフォルトはPRIMARY

data-type引数は別プログラムからLispデータに取得したrawデータの変換に用いるデータ変換のフォームを指定する。Xで有効なデータタイプの一覧はX選択、それ以外についてはその他の選択を参照のこと。

User Option: selection-coding-system

これは選択データのエンコーディングに用いるコーディングシステム(コーディングシステムを参照)を提供する変数であり、MS-WindowsおよびXで効果がある。MS-Windowsで実行中のMS-DOSポートでも用いられ、Windowsのクリップボードのテキストにアクセスできる。

Xではこの変数の値はテキストデータタイプのサブセットにたいする選択データのデコードに用いられる、gui-get-selectionのコーディングシステムを提供する。ポリモーフィックTEXTデータタイプ(polymorphic type: 多様型)にたいする選択要求にたいして、Unicodeではなくcompound-text-with-extensionsによるエンコーディングで応答するよう強制も行う。

MS-Windowsではクリップボードデータの一部としてMS-Windowsのクリップボードがデコーディングに関する情報を提供する上、必要に応じてUTF-16かlocale固有のエンコーディングが自動的に使用されるので、この変数は一般的には無視される。わたしたちは古いWindows 9Xでのみこの変数の値をセットすることをお勧めする。それ以外で使用するとしたら、クリップボードが提供する情報が何らかの理由により使用できないような、非常に稀な場合だけだろう。

この変数のデフォルト値はMS-Windows 95、98、Meではシステムコードページ、 Windows NT/W2K/XP/Vista/7/8/10/11ではutf-16le-dos、MS-DOSではiso-latin-1-dos、それ以外の場合はnil

後方互換性のためにgui-get-selectiongui-set-selectionにたいして、Emacs 25.1以前の名前x-get-selectionx-set-selectionが時代遅れのエイリアスとして存在します。

This page has generated for branch:emacs-30, commit:ab5505a8acf795c0a0a2745dd6fb666954c6a4bb to check Japanese translation.