PureBasic

SetDropCallback()

Синтаксис

SetDropCallback(@DropCallback())

Описание


Задаёт процедуру обратного вызова, которая вызывается, когда данные перетаскиваются над Гаджетом или окном, позволяющим эти данные отпустить (смотрите описание функций EnableGadgetDrop() / EnableWindowDrop()). Обратный вызов позволяет модифицировать процесс Drag & Drop, выполняемого PureBasic, например предоставить дополнительное визуальное уведомление на принимающем Гаджете или окне.

Параметры

@DropCallback() Обратный вызов, вызываемый во время операции отбрасывания.

Процедура обратного вызова вызывается когда мышь переходит внутрь границ принимающего Гаджета или окна, двигается в них, и покидает их, и позволяет обеспечить дополнительное информирование пользователя, например подсвечивать принимающий элемент или принимающую область. Более того, обратный вызов может запретить намеченное к выполнению действие и таким образом более точно определить, где внутри Гаджета или окна можно отпустить данные. Здесь не следует изменять курсор, так как это обязанность отправляющей стороны перетаскивания.

Форма обратного вызова описана ниже:

Procedure DropCallback(TargetHandle, State, Format, Action, x, y)

    ProcedureReturn #True
EndProcedure

Первый параметр указывает ОС-специфичный дескриптор для принимающего Гаджета или окна. В Windows это значение HWND, в Linux указатель GtkWidget и в MacOSX это значение ControlRef или WindowRef. Это те самые значения, что возвращаются функцией GadgetID() или WindowID() для принимающего Гаджета или окна.

Параметр 'State' задаёт текущее состояние операции Drag & Drop и содержит одно из следующих значений:
  #PB_Drag_Enter : Мышь вошла внутрь границ Гаджета или окна
  #PB_Drag_Update: Мышь двигалась внутри границ Гаджета или окна, или изменилось намеченное действие
  #PB_Drag_Leave : Мышь вышла из границ Гаджета или окна (параметры Format, Action, x, y здесь равны 0)
  #PB_Drag_Finish: Перетаскивание завершилось
Параметр 'Format' задаёт формат данных и может содержать одно из следующих значений, или ОС-специфичный идентификатор для произвольного формата. (Дополнительную информацию смотрите в описание функции DragOSFormats()).
  #PB_Drop_Text   : Приём текста этим Гаджетом или окном
  #PB_Drop_Image  : Приём изображений этим Гаджетом или окном
  #PB_Drop_Files  : Приём имён файлов этим Гаджетом или окном
  #PB_Drop_Private: Приём "внутренних" Drag & Drop этим Гаджетом или окном
Параметр 'Action' задаёт действие, которое будет выполнено, если пользователь отпустит кнопку мыши в этой точке. Им может быть одно из следующих значений:
  #PB_Drag_None: Данные не будут приняты, если отпустить их здесь
  #PB_Drag_Copy: Данные будут скопированы
  #PB_Drag_Move: Данные будут перемещены
  #PB_Drag_Link: Будут созданы ссылки на данные
Возвращая значение #True, обратный вызов разрешает выполнение действия в этой точке. Возвращая значение #False, обратный вызов запрещает действие (курсор будет заменён на значок "запрещено" отправляющей стороной перетаскивания). В случае же если параметр 'State' равен #PB_Drag_Finish, возврат значения #False приведёт к отмене всей операции Drag & Drop.

Возвращаемое значение

Ничего.

См. также

SetDragCallback()

Поддерживаемые OS

Все

<- SetDragCallback() - Оглавление DragDrop