# Пользовательские дополнения

На главную

# CategoryDragAndDrop

## BlurpSearch: CategoryLuaApi CategoryDragAndDrop

Функции и события для работы с drag&drop. Drag&drop поддерживается в скрипте только для миссии.

Схема работы:

Регистрируются контролы, которые будут обрабатываться механизмом drag&drop. Каждому контролу должен быть назначен уникальный идентификатор, который используется во всех дальнейших операциях. Если при работе с drag&drop нужно вернуть идентификатор, не относящийся ни к одному из зарегистированных окон, то используется неопределенный идентификатор, DND_INVALID_ID. Для упрощения регистрации в базовом скрипте описаны несколько вспомогательных глобальных переменных и функций, позволяющих группировать контролы (экипировка, инвентарь и т.д., список расширяется по необходимости). При необходимости контролы можно разрегистрировать.

Система drag&drop отслеживает операции с зарегистрированными контролами и отправляет в скрипт различные уведомления: события вида EVENT_DND_... В ответ на них скрипт может подтвержать те или иные операции (например, начало или окончание drag&drop), игнорировать их, а также выполнять работу по корректной визуализации текущего состояния (например, перемещать курсор правильного вида в указанную позицию, подсвечивать слоты и т.п.). Возможно досрочное прерывание drag&drop из скрипта.

Замечание: сейчас контролы автоматически разрегистрируются из системы drag&drop при их скрытии.

Замечание: при назначении идентификаторов для работы с Drag&drop необходимо использовать только неотрицательные значения.

CategoryDragAndDrop
EventMissionDragAndDropDragCancelled
EventMissionDragAndDropDragOver
EventMissionDragAndDropDragTo
EventMissionDragAndDropDropAttempt
EventMissionDragAndDropPickAttempt
FunctionMissionDragAndDropCancelDrag
FunctionMissionDragAndDropConfirmDropAttempt
FunctionMissionDragAndDropConfirmPickAttempt
FunctionMissionDragAndDropRegister
FunctionMissionDragAndDropUnregister

CategoryLuaApi CategoryMission

На главную