PureBasic

SetDragCallback()

Синтаксис

SetDragCallback(@DragCallback())

Описание


Задаёт процедуру обратного вызова, которая будет вызываться в течении операций Drag & Drop, инициированных из этого приложения. Обратный вызов позволяет модифицировать процесс Drag & Drop выполняемый в PureBasic, например задать произвольный курсор через API операционной системы.

Параметры

@DragCallback() Адрес процедуры для вызова во время операции перетаскивания. Вид и схема работы обратного вызова зависят от ОС и описываются ниже:

Windows:

Procedure DragCallback(Action)

    ProcedureReturn #True
EndProcedure

Процедура обратного вызова вызывается в течение операции Drag & Drop. Параметр Action задаёт действие, которое будет выполнено, если пользователь отпустит кнопку мыши в этой точке. Им может быть одно из следующих значений:
  #PB_Drag_None: Данные не будут приняты, если отпустить их здесь
  #PB_Drag_Copy: Данные будут скопированы
  #PB_Drag_Move: Данные будут перемещены
  #PB_Drag_Link: Будут созданы ссылки на данные
Процедура обратного вызова может предоставить произвольный курсор или изображение перетаскивания. В этом случае она должна возвратить #False. Возврат значения #True приведёт к использованию курсора по умолчанию.
Linux:

Procedure DragCallback(*Context.GdkDragContext, isStart)

EndProcedure

Процедура обратного вызова вызывается только в начале и в конце операции Drag & Drop. Параметр '*Context' задаёт контекст перетаскивания gdk для этой операции, параметр 'isStart' определяет, начало это операции или конец. Возвращаемое значение процедуры обратного вызова игнорируется.

Чтобы задать другое изображение перетаскивания, в обратном вызове можно использовать такие функции Gtk как gtk_drag_set_icon_pixbuf_().
MacOSX:

Procedure DragCallback(DragReference, isStart)

EndProcedure

Процедура обратного вызова вызывается только в начале и в конце операции Drag & Drop. Параметр 'DragReference' задаёт контекст перетаскивания (Carbon drag context) этой операции в виде значения 'DragRef', параметр 'isStart' определяет, начало это операции или конец. Возвращаемое значение процедуры обратного вызова игнорируется.

Можно использовать все функции менеджера перетаскивания (Carbon Drag Manager), чтобы повлиять на операцию перетаскивания до её начала (например добавить больше видов (flavors)/элементов) и для получения дополнительной информации об операции после её завершения.

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

Ничего.

См. также

SetDropCallback()

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

Все

<- EventDropY() - Оглавление DragDrop - SetDropCallback()->

H��0|�