Solaris 共通デスクトップ環境 プログラマーズ・ガイド

API の概要

この節では、ドラッグ & ドロップのアプリケーション・プログラム・インタフェース (API) の概要を説明します。

DtSvc ライブラリとヘッダ・ファイル

ドラッグ & ドロップ機能は、デスクトップ・サービス・ライブラリ DtSvc で実現されます。ドラッグ & ドロップ API にアクセスするには、ヘッダ・ファイル <Dt/Dnd.h> を組み込み、-lDtSvc をつけてリンクします。

関数

API には 4 つの関数呼び出しがあり、ヘッダ・ファイル Dnd.h の中で宣言されています。これらの関数について、以下の段落で概説します。これらの関数については、後の節で詳しく説明します。

DtDndContext 構造体

データ転送を処理するには、DtDndContext のデータ構造を使用します。この構造体には、転送プロトコルのためのフィールド、転送される項目数、および転送されるデータ項目の配列が入ります。この構造体の構文の詳細は、DtDndDragStart(3X) および DtDndDropRegister(3X) のマニュアル・ページを参照してください。

プロトコル

プロトコルは、転送データの型を API に知らせるために使用されます。定義済みプロトコルを表 5-6 に示します。

表 5-6 定義済みプロトコル

プロトコル 

説明 

DtDND_TEXT_TRANSFER 

テキスト転送。コンパウンド・テキスト (Motif は、テキスト転送のためにコンパウンド・テキスト・ターゲットを使用します。) 

DtDND_FILENAME_TRANSFER 

ファイル名転送 

DtDND_BUFFER_TRANSFER 

メモリ・バッファ 

操作

表 5-7 に示すように、ドラッグ・ソースとドロップ領域は 3 つの方法のいずれか 1 つでデータを転送できます。

表 5-7 データ転送操作

操作 

説明 

XmDROP_MOVE 

データを移動します (コピーしてから削除します)。 

XmDROP_COPY 

データをコピーします。 

XmDROP_LINK 

データへのリンクを含みます。