| |
GTK+ 2.0 Tutorial |
||
---|---|---|
GTK+ имеет установки функций высокого уровня для межпроцессорных коммуникаций посредством системы drag-and-drop. GTK+ может выполнять drag-and-drop поверх низкоуровневых Xdnd и Motif drag-and-drop протоколов.
Приложения поддерживающие GTK+ drag-and-drop, сначала определяют и устанавливают виджеты GTK+ для drag-and-drop. Каждый виджет может быть предметом и/или местом назначения для drag-and-drop. Заметьте, что эти GTK+ виджеты должны иметь связанное с ними окно (X Window), проверьте используя GTK_WIDGET_NO_WINDOW(widget)).
Виджеты являющиеся предметом перетаскивания могут отправлять данные, позволяя пользователю перетаскивать их в другое место, а виджеты которые являются целью назначения для перетаскивания могут принимать эти данные. Drag-and-drop может ограничивать то от кого получаются данные, например то же самое приложение или любое приложение (включая себя).
Посылка и получение данных использует сигналы GTK+. Проброс элемента к виджету назначения требует и запрашиваемых данных (для виджета назначения) и посылаемых данных обработчика сигнала (для исходящего виджета). Дополнительный сигнал обработчиков используется если вы хотите знать когда начинается перетаскивание, когда заканчивается проброс завершая всю операцию (успешно или нет).
Ваше приложение должно будет обеспечить данные для исходных виджетов когда требуется, это вовлекает, имеющий данные проброса, обработчик сигнала. Для виджета назначения они будут нуждаться в данных посылаемых обработчиком сигнала.
Итак, типичный цикл drag-and-drop выглядит так:
Запрос данных проброса ( может быть на том же самом или другом приложении).
Удаление перетаскиваемых данных ( если перетаскивание было перемещением).
Есть несколько не значительных шагов, которые будут обсуждаться позже.
Supplying the selection |
|
Properties |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |