PureBasic

DragPrivate()

Синтаксис

Result = DragPrivate(Type [, Actions])

Описание


Начинает "внутреннюю" операцию Drag & Drop (Перетаскивание мышью). В отличие от других функций, начинающих Drag & Drop, здесь данные можно отпустить только внутри приложения (Данные, перетаскиваемые с помощью таких функций как DragText() или DragImage() могут быть приняты другими приложениями). Эту функцию следует использовать для добавления функциональности Drag & Drop между Гаджетами или Окнами с данными, которые не понятны другим приложениям.

Параметры

Type Этот параметр может быть любым целочисленным значением, идентифицирующим данные для перетаскивания в приложении. То же самое значение следует передать в функции EnableGadgetDrop() или EnableWindowDrop() для тех Гаджетов/Окон, которые должны принимать эти данные.
Таким способом можно точно указать, какие внутренние операции перетаскивания принимаются каким Гаджетом/Окном, что позволяет реализовывать сложные схемы Drag & Drop.
Actions (дополн.) Комбинация действий Drag & Drop, которые разрешены для данных. Если параметр не задан, единственным разрешённым действием будет то #PB_Drag_Copy. Возможные действия: (их можно сочетать с помощью оператора '|'),
  #PB_Drag_Copy: Можно копировать данные
  #PB_Drag_Move: Можно перемещать данные
  #PB_Drag_Link: Можно создать ссылку на данные
Пользователь может выбрать, какое из этих действий выполнить, нажав клавиши-модификаторы вроде Ctrl или Shift. Какие действия будут выполнены, зависит также от того, что разрешено принимающей стороной перетаскивания.

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

Возвращает одно из упомянутых выше значений действий Drag & Drop чтобы сообщить, какое действие выполнил пользователь, или значение #PB_Drag_None, если пользователь прервал выполнение операции Drag & Drop.

Комментарии

Drag & Drop можно начать в любой момент, но левая кнопка мыши должна быть нажата, так как иначе операция немедленно закончится без результата. Обычно операция Drag & Drop начинается когда Гаджет породил событие, имеющее по классификации функции EventType() тип #PB_EventType_DragStart.

Если операция не была прервана, цикл событий получит сообщения #PB_Event_WindowDrop или #PB_Event_GadgetDrop с типом #PB_Drop_Private.

См. также

DragText(), DragImage(), DragFiles(), DragOSFormats(), SetDragCallback()

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

Windows, Linux

<- DragOSFormats() - Оглавление DragDrop - DragText()->