DragSession
Состояние и контроллер активного жеста перетаскивания, управляющий координатами указателя, активной целью сброса, позиционированием ghost, индикаторами вставки и автопрокруткой.
Обзор
DragSession представляет активный процесс перетаскивания drag-and-drop.
Обязанности сессии
- Отслеживание указателя: Хранит текущие координаты (
pointerX,pointerY), координаты нажатия и величину смещения (deltaX,deltaY). - Координация цели сброса: Отслеживает текущий подтвержденный виджет
dropTarget(). - Отрисовка в оверлее: Управляет положением
DragGhostи индикатора вставки (showIndicator,clearIndicator). - Автопрокрутка: Координирует плавную прокрутку при поднесении курсора к краям скроллируемых контейнеров.
Отображение индикатора сброса
Связанные ссылки
- DragController: Контроллер жеста перетаскивания, подключаемый к любому виджету через композицию для инициации drag-and-drop с ghost-предпросмотром, порогом смещения и автопрокруткой.
- DropController: Контроллер цели сброса, подключаемый к любому виджету через композицию для фильтрации payload и обработки событий drag enter, over, leave и drop.
API
DragSession::active()
Проверяет, продолжается ли данная сессия перетаскивания и не была ли отменена.
Возвращает boolean: True, если сессия перетаскивания активна и не отменена..
DragSession::cancel()
Немедленно прерывает сессию перетаскивания с результатом CANCELLED.
DragSession::clearIndicator()
Скрывает индикатор вставки оверлея.
DragSession::deltaX()
Возвращает горизонтальное смещение указателя от начальной точки нажатия.
Возвращает float: Горизонтальное смещение от начальной точки в пикселях..
DragSession::deltaY()
Возвращает вертикальное смещение указателя от начальной точки нажатия.
Возвращает float: Вертикальное смещение от начальной точки в пикселях..
DragSession::dragged()
Возвращает логический виджет, перемещаемый в ходе операции.
Возвращает Widget: Логический виджет, перемещаемый операцией перетаскивания..
DragSession::dropTarget()
Возвращает текущий виджет, подтвердивший прием сброса, или null.
Возвращает Widget: Текущий виджет-кандидат на прием сброса или null..
DragSession::ghost()
Возвращает отрисовщик DragGhost, отображаемый в оверлее.
Возвращает DragGhost: Отрисовщик DragGhost, используемый для предпросмотра в оверлее..
DragSession::ghostOffsetX()
Вычисляет горизонтальное экранное смещение для размещения ghost-представления.
Возвращает float: Горизонтальное смещение для размещения ghost-отображения..
DragSession::ghostOffsetX(Widget, float)
Вычисляет экранное смещение X для конкретного виджета с учетом начальных координат.
| Параметр | Тип | Описание |
|---|---|---|
widget |
Widget |
Опорный виджет для расчета координат. |
initialX |
float |
Начальная координата X до перетаскивания. |
Возвращает float: Горизонтальное смещение для размещения ghost-отображения..
DragSession::ghostOffsetY()
Вычисляет вертикальное экранное смещение для размещения ghost-представления.
Возвращает float: Вертикальное смещение для размещения ghost-отображения..
DragSession::ghostOffsetY(Widget, float)
Вычисляет экранное смещение Y для конкретного виджета с учетом начальных координат.
| Параметр | Тип | Описание |
|---|---|---|
widget |
Widget |
Опорный виджет для расчета координат. |
initialY |
float |
Начальная координата Y до перетаскивания. |
Возвращает float: Вертикальное смещение для размещения ghost-отображения..
DragSession::handle()
Возвращает виджет-ручку, инициировавший жест перетаскивания.
Возвращает Widget: Виджет-ручка, инициировавший перетаскивание..
DragSession::indicatorColor()
Возвращает цвет текущего индикатора вставки.
Возвращает ColorView: Цвет активного прямоугольника индикатора..
DragSession::indicatorHeight()
Возвращает высоту текущего индикатора вставки.
Возвращает float: Высота активного прямоугольника индикатора..
DragSession::indicatorVisible()
Проверяет, отображается ли индикатор вставки в данный момент.
Возвращает boolean: True, если индикатор сброса отображается в данный момент..
DragSession::indicatorWidth()
Возвращает ширину текущего индикатора вставки.
Возвращает float: Ширина активного прямоугольника индикатора..
DragSession::indicatorX()
Возвращает координату X текущего индикатора вставки.
Возвращает float: Координата X активного прямоугольника индикатора..
DragSession::indicatorY()
Возвращает координату Y текущего индикатора вставки.
Возвращает float: Координата Y активного прямоугольника индикатора..
DragSession::payload()
Возвращает неизменяемый объект данных DragPayload текущего жеста.
Возвращает DragPayload: Передаваемый объект данных payload..
DragSession::pointerX()
Возвращает текущую координату X указателя мыши в координатах оверлея.
Возвращает float: Текущая корневая координата X указателя..
DragSession::pointerY()
Возвращает текущую координату Y указателя мыши в координатах оверлея.
Возвращает float: Текущая корневая координата Y указателя..
DragSession::pressX()
Возвращает координату X указателя в момент первоначального нажатия.
Возвращает float: Начальная корневая координата X в момент нажатия..
DragSession::pressY()
Возвращает координату Y указателя в момент первоначального нажатия.
Возвращает float: Начальная корневая координата Y в момент нажатия..
DragSession::root()
Возвращает корневой виджет, содержащий оверлей перетаскивания.
Возвращает Widget: Корневой виджет, содержащий слой оверлея перетаскивания..
DragSession::showIndicator(float, float, float, float, ColorView)
Активирует и позиционирует визуальный прямоугольник индикатора вставки в оверлее.
| Параметр | Тип | Описание |
|---|---|---|
x |
float |
Координата X прямоугольника индикатора. |
y |
float |
Координата Y прямоугольника индикатора. |
width |
float |
Ширина прямоугольника индикатора. |
height |
float |
Высота прямоугольника индикатора. |
color |
ColorView |
Цвет прямоугольника индикатора. |
DragSession::uiContext()
Возвращает связанный контекст пользовательского интерфейса.
Возвращает UIContext: Контекст UI, связанный с данной сессией..