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
Все