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

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

説明

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

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

あるいは、Drop.dss を見て、DataTransferSource.signal-dropped を呼び出した後に GuiManager.report-drag-drop-effect を呼び出すことによっても処理できます。

コンストラクタ
default:新しい Drop オブジェクトを作成します。
コンストラクタ public {Drop.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?

メソッド
accept-drop:1 つのデータ ソースのこのターゲット上へのドロップを処理する、指定されたプロシージャの呼び出しを、DragOver.dss 内のデータに対して繰り返します。
public {Drop.accept-drop
accept-drop-proc:{proc-type {any, Distance, Distance, #DragEffect}:DropResult}
}:void
fire-methods:この Eventスタティック イベント ハンドラを起動します。
protected {Drop.fire-methods target:GuiEventTarget}: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 {Drop.default}

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




プロパティ詳細


メソッド詳細
accept-drop (メソッド)
public {Drop.accept-drop
accept-drop-proc:{proc-type {any, Distance, Distance, #DragEffect}:DropResult}
}:void

1 つのデータ ソースのこのターゲット上へのドロップを処理する、指定されたプロシージャの呼び出しを、DragOver.dss 内のデータに対して繰り返します。

プログラミング注意事項

このメソッドは、Drop イベント ハンドラから呼び出されます。
accept-drop-proc: 1 つのデータ オブジェクトのドロップを扱う、指定されたプロシージャ。このプロシージャは、パラメータを参照してドロップを適切に処理するよう作成する必要があります。

パラメータ:

このプロシージャは、実際のドロップで発生するアクションを指定する DropResult を返す必要があります。

たとえば、ターゲットが "copy" で String を受け取る場合、プロシージャは次のようになります。

{on e:Drop do
    {e.accept-drop
        {proc {a:any, x:Distance, y:Distance, effect:#DragEffect}:DropResult
            {if {effect.has-effect "copy"} then
                {return
                    {DropResultMove
                        action={proc {}:void
                                   {output "Dropping: ", a}
                               }}}
             else
                {return {DropResultNone}}
            }
        }
    }
}

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


fire-methods (メソッド)
protected {Drop.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 言語のスタティック イベント ハンドラ呼び出し順位の規則 (最も用途の特定されたものから最も一般的な用途のもの) に従って順序付ける必要があります。