MINERVA superseeded IF/Prolog.
Please see
http://www.ifcomputer.co.jp/MINERVA
for details.
We discontinued to sell IF/Prolog Dec 31. 2003.
For current customers, we continue to provide
professional support for IF/Prolog until Dec 31, 2008.
OSF/Motif intrinsicsのクリップボードとアプリケーション間でデータ転送を行なう関数は、IF/Prolog述語として使用できます。
データはバイトのストリームとして転送あるいは受信されるので、いくらか変換する必要があります。変換は、データ形式に従ってインタフェースによって実行されます。デフォルトでは、データ形式に対して登録されているコンバータがない場合には、データは1個のアトムに変換されます。現在サポートされているデータ形式は、'prolog_atom'と'prolog_list'のみです。後者は、アトムのリストを意味します。他のデータ形式に対するコンバータは、ファイルcvtclipboard.cを編集、コンパイルし、実行可能なIF/Prologにリンクすることによって追加することができます。
関数に対するディスプレイ・パラメータとウインドウ・パラメータは、widgetのパラメータから取り出されます。データの長さは、コンバータによってデータから計算されます。
xmClipboardCancelCopy(+WidgetName, +ItemId)
XmClipboardCancelCopy()と同様の働きをします。
ItemIdによって指定されたコピーを取り消します。このコピーは、xmClipboardStartCopy/3によって開始されたものです。
xmClipboardCopy(+WidgetName, +ItemId, +FormatName,
+Buffer, +PrivateId)
XmClipboardCopy()と同様の働きをします。
ItemIdによって指定された一時的なメモリにコピーを行ないます。このItemIdは、xmClipboardStartCopy/3によって返されます。Bufferは、FormatNameに従って変換されます。PrivateIdは、データのレシーバに引き渡される任意の倍精度実数(double)です。
クリップボードがロックされている場合には、失敗します。
xmClipboardCopyName(+WidgetName, +ItemId, +FormatName,
?Predicate, +Length, +PrivateId,
-DataId)
XmClipboardCopy()と同様の働きをします。
長いデータのコピーを開始しますが、このデータはxmClipboardCopyByName/4によって要求された時だけコピーされます。名前のみが直ちにクリップボードに転送されます。
クリップボードがロックされている場合には、失敗します。
Predicateはあるコールバック述語で、データを転送するために呼び出されます。Predicateの値が与えられていない場合には、xmClipboardRead/4を用います。これは、データを対話的に読み込みます。
xmClipboardCopyByName(+WidgetName, +DataId, +FormatName,
+Buffer, +PrivateId)
XmClipboardCopyByName()と同様の働きをします。
要求に応じてデータをコピーするのに使用します。その名前は、xmClipboardCopyName/7によってクリップボードに転送されます。Bufferのデータは、FormatNameに従って変換されます。DataIdとPrivateIdは要求されたデータを決定し、これらがこの述語を呼び出すコールバック述語に引き渡されます。
クリップボードがロックされている場合には、失敗します。
xmClipboardEndCopy(+WidgetName, +ItemId)
XmClipboardEndCopy()と同様の働きをします。
xmClipboardStartCopy/3の後で、xmClipboardCopy/5によってコピーされたデータを実際に転送します。ItemIdは、xmClipboardStartCopy/3からアプリケーションに引き渡されています。
クリップボードがロックされている場合には、失敗します。
xmClipboardEndRetrieve(+WidgetName)
XmClipboardEndRetrieve()と同様の働きをします。
増分的な取り出し(少しずつ取り出す)の後で、終了指示子として使われます。xmClipboardRetrieveは常に全データをひとかたまりとして取り出すので、この述語はあまり有用ではありません。
クリップボードがロックされている場合には、失敗します。
xmClipboardInquireCount(+WidgetName, ?Count)
XmClipboardInquireCount()と同様の働きをします。
要求された形式に適合する、クリップボード上のデータ・アイテム数を返します。
クリップボードがロックされている場合には、失敗します。
要求された形式に対するデータ・アイテムがない場合には、'clipboardNoData'が返されます。
xmClipboardInquireFormat(+WidgetName, +Index, ?FormatName)
XmClipboardInquireFormat()と同様の働きをします。
クリップボード上で、Indexを索引とするFormatNameを返します。
クリップボードがロックされている場合には、失敗します。
関数がデータを見つけられない場合には、'clipboardNoData'が返されます。
xmClipboardInquireLength(+WidgetName, +FormatName,
?Length)
XmClipboardInquireLength()と同様の働きをします。
FormatNameに対して、記憶されたデータの長さを返します。
クリップボードがロックされている場合には、失敗します。
クリップボード上にデータがない場合には、'clipboardNoData'が返されます。
xmClipboardInquirePendingItems(+WidgetName, +FormatName,
?ItemList)
XmClipboardInquirePendingItems()と同様の働きをします。
FormatNameに対して、[DataId, PrivateId]のリストを返します。
クリップボードがロックされている場合には、失敗します。
xmClipboardLock(+WidgetName)
XmClipboardLock()と同様の働きをします。
クリップボードをロックします。
クリップボードがすでにロックされている場合には、失敗します。
xmClipboardRegisterFormat(+WidgetName, +FormatName,
+FormatLength)
XmClipboardRegisterFormat()と同様の働きをします。
FormatNameに対して、FormatLengthを登録します。FormatLengthは、8,16,32のいずれかでなければなりません。
クリップボードがロックされている場合には、失敗します。
xmClipboardRetrieve(+WidgetName, +FormatName, ?Buffer,
?PrivateId)
XmClipboardRetreive()と同様の働きをします。
FormatNameによって指定されたデータを検索します。データは、FormatNameに従って変換されます。データは、ひとまとまりとして取り出されます。データが切り捨てられた場合には、内部バッファの大きさを2倍にして再実行します。
クリップボードがロックされている場合には、失敗します。
クリップボード上にデータがない場合には、'clipboardNoData'が返されます。
xmClipboardStartCopy(+WidgetName, +ClipLabel, -ItemId)
XmClipboardStartCopy()と同様の働きをします。
後続のxmClipboardCopy/5の呼び出しにおいて指定する(そしてxmClipboardEndCopy/2によって実際に転送される)データを識別するItemIdを返します。
延期された名前によるコピー(名前によってコピーするものを指定し、実際のコピーは後で行なわれる)については、xmClipboardCopyName/7を参照して下さい。
最も最近、あるいは現在ディスパッチされているイベントの時刻が使用されます。
クリップボードがロックされている場合には、失敗します。
xmClipboardStartRetrieve(+WidgetName)
XmClipboardStartRetrieve()と同様の働きをします。
xmClipboardRetrieve/4の場合と同様にデータがひとかたまりとして取り出され、変換されるのであまり有用ではありません。
最も最近、あるいは現在ディスパッチされているイベントの時刻が使用されます。
クリップボードがロックされている場合には、失敗します。
xmClipboardUndoCopy(+WidgetName)
XmClipboardUndoCopy()と同様の働きをします。
クリップボード上に最も最近置かれたアイテムを削除します。
クリップボードがロックされている場合には、失敗します。
xmClipboardUnlock(+WidgetName, +UnlockAllLocks)
XmClipboardUnlock()と同様の働きをします。
クリップボードのロックを解除し、UnlockAllLocksの場合には複数のロックを削除します。
クリップボードがロックされている場合には、失敗します。
xmClipboardWithdrawFormat(+WidgetName, +DataId)
XmClipboardWithdrawFormat()と同様の働きをします。
xmClipboardCopyName/7によって実行される名前によるコピーを取り消します。
クリップボードがロックされている場合には、失敗します。
widget_expected WidgetNameがwidgetでない
float_expected PrivateId, DataId, ItemIdが浮動小数でない
atom_expected FormatName, UnlockAllLocksがアトムでない
Bufferがアトムでなく、FormatNameの変換に対して登録されたコンバータがない
FormatNameがprolog_listで、Bufferリスト中にアトムでないものがある
integer_expected Lengthが整数でない
variable_expected DataIdが変数でない
positive_integer_expected Index, FormatLengthが正の整数でない
illegal_format_length FormatLengthが8,16,32以外である
list_or_atom_expected ClipLabelは、アトムあるいはリストのいずれかでなければならない
illegal_XmString_resource ClipLabelは、正しいXmStringでなければならない
illegal_boolean_resource UnlockAllLocksは、yes,no, ... のいずれかでなければならない
illegal_clipboard_data_type BufferがFormatNameによって指示されたデータ型をもっていない
illegal_clipboard_predicate Predicate/4が存在しなければならない
|