GTK+ 2.0 Tutorial |
||
---|---|---|
Drag-and-drop (DND) |
Перетаскиваемые данные имеют следующие свойства:
Тип выполняемого перетаскивания (GDK_ACTION_COPY, GDK_ACTION_MOVE).
Клиент определил произвольный тип перетаскивания(имя и номер пары).
Действия перетаскивания весьма очевидны, они определяют может ли виджет переместиться (после перетаскивания виджет удаляется в исходном местоположении) или он должен быть скопирован (виджет после перетаскивания находится и в новом и в старом месте прибывания), например GDK_ACTION_COPY и/или GDK_ACTION_MOVE. Есть дополнительное действие перетаскивания GDK_ACTION_LINK, которое вы изучите при достижении более высокого уровня понимания системы drag-and-drop.
Клиент определяет произвольный тип drag-and-drop более гибким, потому что ваше приложение будет определять и проверять это более точно. Вы должны установить ваши виджеты назначения, чтобы получить точные типы drag-and-drop, определённые именем и/или номером. Более надежно использовать имя, так-как другое пиложение может использовать тот же номер для совершенно другого значения.
Посланный и полученные типы формата данных (selection target) входят в игру только в вашем запросе и полученных функциях обработчика данных. Термин selection target немного вводит в заблуждение. Этот термин адаптирован для GTK+ выделения (вырезать/копировать и вставить). То, что фактически подразумевает selection target - тип формата данных (то есть. GdkAtom, целое число, или строка) посылаемый или полученный. Ваш запрос функции обработки данных должен определить тип (selection target) отправляемых данных и ваш обработчик данных должен обработать тип (selection target) получаемых данных.
Drag-and-drop (DND) |
Functions |