ユーザがドラッグ & ドロップを使用してアイコンを選択し、操作するときには、ドラッグされる項目を表すグラフィック・アイコンは、選択からドラッグ & ドロップの終了まで一貫していることをユーザは期待します。ユーザがファイル・マネージャのメッセージ・アイコンを選択してドラッグを開始した場合には、ドラッグ・アイコンの元の部分は、そのメッセージ・アイコンによって表されます。このような一貫性を与えることで、ドラッグ & ドロップはユーザにとって予測可能なものになります。転送先アプリケーションがアイコンを使用する場合、ほとんどのアイコンは、選択されてドラッグ & ドロップされたアイコンと同じでなければなりません。ただし、この動作は、すべてのアプリケーションで常に適切であるとは限りません。テキストのドラッグは例外です。選択されたテキストをドラッグする代わりに、テキスト・ドラッグ・アイコンが使用されます。
転送元と転送先の両方のアプリケーションが、ドラッグ・アイコンの外観を指定します。アプリケーションが一貫した適切なドラッグ・アイコンを持つようにするのは、開発者の責任です。ドラッグ & ドロップ・ライブラリはデフォルトのアイコンを提供しますが、各アプリケーションのために開発者が独自のアイコンを指定するとよいでしょう。アイコンとそのアイコンによって表されるデータ型を関連付けるために、データ型データベースを使用しなければならない場合があります。詳細は、第 9 章「データ型データベースのアクセス」を参照してください。
ユーザがアイコンを選択せずにドラッグを開始する場合は、関連するドラッグ・アイコンを提供しなければなりません。たとえば、アポイント・エディタでは、ユーザはスクロール・リストからアポイントを選択できますが、アイコンが表示される場合と表示されない場合があります。ソース・インジケータとしてアポイント・アイコンを使用しなければなりません。転送先アプリケーション (たとえば、ファイル・マネージャ) は、同じアポイント・アイコンを表示しなければなりません。
ドラッグ・アイコンがドロップ領域の上に来ると、ドラッグオーバ・フィードバックを提供するために外観が変化します。
ドラッグ・アイコンには次の 3 つの部分があり、その組み合わせによってドラッグオーバ・フィードバックを提供します。
状態インジケータ
操作インジケータ
ソース・インジケータ
状態インジケータは、有効または無効ドロップ領域インジケータと組み合わされて、位置付けのために使用されるポインタです。有効状態インジケータは、矢印ポインタです。このポインタにはホット・スポットがあるので、ユーザは予測可能な方法で位置付けることができます。無効状態インジケータは、円と斜線の組み合わせであり、ユーザが無効なドロップ領域の上にカーソルを置いたときに表示されます。
操作インジケータは、ドラッグ時に行われる操作 (移動、コピー、またはリンク) に関するフィードバックをユーザに与えます。ほとんどのドラッグは移動なので、より頻度が少ないコピーまたはリンク操作を実行するときには、追加のフィードバックが与えられます。
操作フィードバックは、状態フィードバックとソース・フィードバックの手前に表示されます。この動作は、Motif のドラッグ & ドロップ動作と一致しています。
ユーザは、表 5-1 に示されている特定のキーを押しながらドラッグすることによって、ドラッグ操作 (移動、コピー、またはリンク) を選択できます。
表 5-1 ドラッグ操作を変更するためのキー
キー |
操作 |
---|---|
[Shift] |
移動 |
[Control] |
コピー |
[Control]+[Shift] |
リンク |
ファイル・マネージャの読み取り専用ウィンドウの場合のように、転送元アプリケーションがコピーを強制することもあります。ユーザが操作を選択したときに、ドロップ領域がその操作と一致しなければドロップできません。一致しない場合には、ドロップ領域は無効です。つまり、ユーザが [Control] キーを押してコピーを選択して、ドラッグ・アイコンをごみ箱アイコンへドラッグした場合には、ごみ箱へのコピーは許可されません。このため、ドラッグ・アイコンはごみ箱アイコンを無効なドロップ領域として表示しなければならず、ドロップは失敗します。
ソース・インジケータは、選択 (すなわち、ドラッグされている項目) を表します。ソース・インジケータは、選択が 1 つの項目または複数の項目を表すか、あるいは選択が表す項目の種類によって変化します。