XmClipboardStartCopy(3XM) — NEWS-OS Programmer’s Manual
名称
XmClipboardStartCopy — 記憶領域とデータ構造を用意するクリップボード関数
形式
#include <Xm/Xm.h>
#include <Xm/CutPaste.h> int XmClipboardStartCopy (display, window, clip_label, timestamp, widget, callback, item_id)
Display∗ display;
Windowwindow;
XmStringclip_label;
Timetimestamp;
Widgetwidget;
VoidProccallback;
long∗ item_id;
解説
XmClipboardStartCopy は、クリップボードのデータを受け取るための領域とデータ構造体を用意します。 アプリケーションは、カットやコピーを行う際にこの関数を呼び出します。 この構造体が受け取るデータ項目は、クリップボードの中の次データ項目になります。
大きなかたまりのデータをクリップボードにコピーするには時間を要しますが、コピーしてもどのアプリケーションもそのデータをリクエストしないかも知れません。 Motif ツールキットでは、何らかのアプリケーションがそのデータをリクエストするまで実際のデータをクリップボードに渡さなくてもすむような機構を用意しています。
その代わりに、アプリケーションは、XmClipboardStartCopy で widget ID とコールバック関数のアドレスをクリップボード関数に渡すとともに、フォーマットと長さに関する情報を XmClipboardCopy で渡します。 widget ID は、データを持つアプリケーションのクリップボード関数とデータを要求するアプリケーションのクリップボード関数の間の通信に必要となります。
コールバック関数は、XmClipboardCopyByName を用いて実際のデータをクリップボードにコピーするとき責任をもたなければなりません。 また、データ項目がクリップボードから取り除かれ、従って実際のデータがこれ以上必要とされなくなった時にもコールバック関数が呼び出されます。
display以前の XOpenDisplay または XtDisplay の呼び出しで返された Display 構造体へのポインタを指定します。
windowアプリケーションウィンドウとクリップボードとを関係づけるための widget のウィンドウ ID を指定します。 widget のウィンドウ ID は XtWindow を用いることによって得られます。 同じアプリケーションインスタンスは、呼び出す各クリップボード関数に対して同じウィンドウ ID を渡さなければなりません。
clip_labelそのデータ項目についてのラベルを指定します。 この引数は、たとえばクリップボードビューアにおいてデータ項目を識別するのに用いられます。 ラベルには、たとえばデータをクリップボードにおいたアプリケーションの名前を用います。
timestampコピーをトリガしたイベントの時刻です。
widget事前に名前で渡されたデータを要求するメッセージを受ける widget の ID を指定します。 データを名前で渡すためにはこの引数が実在しなければなりません。 アプリケーション中の有効などの widget ID でもこの目的に用いることができ、すべてのメッセージ処理はカットやペーストの関数によってなされます。
callback初めに名前で渡されていたデータをクリップボードが要求する時に呼び出されるコールバック関数のアドレスを指定します。 これは、名前で渡された項目についての削除メッセージを受け取るコールバックでもあります。 データを名前で渡すためにはこの引数が実在しなければなりません。
item_idこのデータ項目につけられた番号を示します。 アプリケーションは、XmClipboardCopy、XmClipboardEndCopy、XmClipboardCancelCopy を呼び出す時にこの番号を用います。
データを名前で渡すことに関する詳細は、XmClipboardCopy(3XM)、XmClipboardCopyByName(3XM) を参照してください。
データを名前で渡すためには引数 widget と callback は実在しなければなりません。 コールバックのフォーマットは以下の通りです。
関数名
Widgetwidget;
int∗ data_id;
int∗ private;
int∗ reason;
widgetこの関数に渡される widget の ID です。
data_idXmClipboardCopy によって返される識別番号です。 これにより、名前渡しのデータを識別します。
privateXmClipboardCopy に渡したプライベート情報です。
reasonリーズンです。 これは、XmCR_CLIPBOARD_DATA_DELETE か XmCR_CLIPBOARD_DATA_REQUEST のいずれかです。
リターン値
ClipboardSuccess
関数の実行に成功しました。
ClipboardLocked
クリップボードが他のアプリケーションにロックされているため、関数の実行に失敗しました。 アプリケーションはロックが解除されるまで同じ引数で何度も関数を呼び続けることができます。 このことを利用して、アプリケーションはユーザに操作を試み続けるかあきらめるかたずねることができます。
関連事項
XmClipboardCancelCopy(3XM), XmClipboardCopy(3XM), XmClipboardCopyByName(3XM), XmClipboardEndCopy(3XM), XmClipboardEndRetrieve(3XM), XmClipboardInquireCount(3XM), XmClipboardInquireFormat(3XM), XmClipboardInquireLength(3XM), XmClipboardInquirePendingItems(3XM), XmClipboardLock(3XM), XmClipboardRegisterFormat(3XM), XmClipboardRetrieve(3XM), XmClipboardStartRetrieve(3XM), XmClipboardUndoCopy(3XM), XmClipboardUnlock(3XM), XmClipboardWithdrawFormat(3XM)
NEWS-OSRelease 4.2.1R