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

統合アクション・プラン

この節では、アプリケーションと CDE のドラッグ & ドロップとの統合のためのアクション・プランを提案します。

ドラッグ & ドロップ API とサンプル・コードの検討

この章の説明を読んで、ドラッグ & ドロップ API を理解してください。API の基本的な理解ができたら、ドラッグ & ドロップのデモ・プログラム /usr/dt/examples/dtdnd のソースコードを見てください。このコードは、さまざまな API の使い方の例を提供しています。これらの例によって、アプリケーションでドラッグ & ドロップをサポートするために書かなければならないコードの性質と量が理解できます。アクションとデータ型 API の理解にも役立ちます。

可能なドロップ領域についてのアプリケーションの検討

アプリケーションがドラッグ & ドロップの処理を通して受け入れるデータの型を決めます。たとえば、ビットマップ・エディタを作成する場合には、ファイルのドロップをサポートしたいことがあります。アプリケーションにドロップできるデータ型を決めたら、ドロップ領域になるウィジェットを決めます。ビットマップ・エディタの例の場合には、ビットマップ編集領域を、アプリケーション上でファイルをドロップできる唯一の場所として決定できます。この場合、DtDndDropRegister() を使用して、この領域を表すウィジェットを登録し、適切なコールバックを提供します。

ファイル名のドロップの処理は最も簡単なので、ファイル名のドロップの実現から始めてください。この手法をマスターすると、簡単にテキストとバッファのドロップの実現へ進むことができます。

可能なドラッグ・ソースに関するアプリケーションの検討

アプリケーションがドラッグ & ドロップの処理の転送元として許可するデータの型を決めます。ビットマップ・エディタの例の場合、カット & ペーストのアクセラレータとして、現在のビットマップ選択を含んでいるビットマップ・データをドラッグ・ソースにしたいことがあります。アプリケーションからドラッグできるデータ型を決めたら、ドラッグ・ソースになるウィジェットを決めます。ビットマップ・エディタの例の場合、強調表示されているビットマップ選択を含んでいるビットマップ編集領域がドラッグ・ソースの役目を果たすと決定できます。この場合、この領域を表しているウィジェットがドラッグ・ソースになります。

アプリケーションに最もふさわしい、または特有のバッファのドラッグの実現から始めてください。また、アプリケーションの複数起動間の簡単なデータ転送を可能にするために、アプリケーションにバッファをドロップする機能を追加する必要がある場合もあります。