DragOver (クラス)
public DragOver {inherits DragPointerEvent}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GUI.BASE.

ドラッグ/ドロップによる移送操作中に、データがオブジェクト上にドラッグされたときに発生するイベント。DataTransferSourceSet および「ドラッグ アンド ドロップ」を参照してください。

説明

このイベントは、移送されたデータを見て、このターゲットに適切なドラッグ結果は何かを判断することにより処理されます。

これは通常、このイベントに対するハンドラの中で、DragOver.will-accept-drop? を呼び出すことにより行われます。

あるいは、DragOver.dss を見て、GuiManager.report-drag-drop-effect を直接呼び出すことによっても処理できます。

ドラッグ アンド ドロップ」を参照してください。

コンストラクタ
default:新しい DragOver オブジェクトを作成します。
コンストラクタ public {DragOver.default}

プロパティ
プロパティ 継承 DragPointerEvent: to-DragEventInfo
プロパティ 継承 PointerEvent: can-end-implicit-pointer-grab?, implicit-pointer-grab-manager, nonevent?
プロパティ 継承 DragEventInfo: available-effects, dss, effect
プロパティ 継承 GuiInputEvent: accel?, alt?, command?, ctrl?, has-coordinates?, menu?, shift?, state-mask, test-recorded?, x, y
プロパティ 継承 GuiWindowEvent: event-time
プロパティ 継承 GuiEvent: consumed?

メソッド
fire-methods:この Eventスタティック イベント ハンドラを起動します。
protected {DragOver.fire-methods target:GuiEventTarget}:void
will-accept-drop?:ターゲット上にドラッグされたときのドラッグ結果を決定する、指定されたプロシージャの呼び出しを、DragOver.dss 内のデータに対して繰り返します。
public {DragOver.will-accept-drop?
will-accept-drop-proc:{proc-type {Type, Distance, Distance, #DragEffect }:DragEffect }
}:void
メソッド 継承 DragPointerEvent: clear-state
メソッド 継承 DragEventInfo: copy-drag-slots
メソッド 継承 GuiInputEvent: modifiers-match?, shift-xy
メソッド 継承 GuiWindowEvent: set-view
メソッド 継承 GuiEvent: consume
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
default (コンストラクタ)
public {DragOver.default}

新しい DragOver オブジェクトを作成します。




プロパティ詳細


メソッド詳細
fire-methods (メソッド)
protected {DragOver.fire-methods target:GuiEventTarget}:void

この Eventスタティック イベント ハンドラを起動します。

target: この Event を処理する GuiEventTarget

プログラミング注意事項

このメソッドは、この Eventスタティック イベント ハンドラを呼び出すときに、GuiEventTarget.handle-event によって呼び出されます。このメソッドは、適切なスタティック イベント ハンドラがすべて呼び出された後に返します。

オーバーライド

このメソッドは、それ自身のスタティック イベント ハンドラに関連付けられた Event のすべてのサブクラスでオーバーライドされます。E クラスで定義されたオーバーライド メソッドは、次のテンプレートに従う必要があります。

{method protected {fire-methods target:GuiEventTarget}:void
    {target.on-E self}
    {super.fire-methods target}
}


ここで、on-EE クラスに関連付けられたスタティック イベント ハンドラ名です。fire-methods 内のメソッド呼び出しは、Curl 言語のスタティック イベント ハンドラ呼び出し順位の規則 (最も用途の特定されたものから最も一般的な用途のもの) に従って順序付ける必要があります。


will-accept-drop? (メソッド)
public {DragOver.will-accept-drop?
will-accept-drop-proc:{proc-type {Type, Distance, Distance, #DragEffect }:DragEffect }
}:void

ターゲット上にドラッグされたときのドラッグ結果を決定する、指定されたプロシージャの呼び出しを、DragOver.dss 内のデータに対して繰り返します。

プログラミング注意事項

このメソッドは、DragOver イベント ハンドラから呼び出されます。
will-accept-drop-proc:
ドラッグ効果を指定する為のプロシージャ。プロシージャはパラメータを調べて、該当するドラッグ効果を決定します。
次のパラメータが含まれています。
  • ターゲット上にドラッグされるデータの型。
  • ポインタの xy 座標。
  • データ ソースが指定する DragEffect
返される DragEffectDragEffect.effect の 0、1、2、4 のいずれかで、それぞれ drag-effect-nonedrag-effect-movedrag-effect-copy または drag-effect-link のドラッグ効果に対応します。
たとえば、String データのみ許容し、移動を許可しないターゲットの場合、そのハンドラは次のようになります。
{on e:DragOver do
{e.will-accept-drop?
{proc {type:Type,
     x:Distance,
     y:Distance,
     effect:DragEffect
    }:DragEffect
  {if {type.subtype-of? String} and
      {effect.has-effect? "copy"} then
      {return drag-effect-copy}
   else
      {return drag-effect-none}
  }
}
}
}

ドラッグ アンド ドロップ」を参照してください。