GtkDropTargetAsync

描述 [src]

final class Gtk.DropTargetAsync : Gtk.EventController
{
  /* No available fields */
}

GtkDropTargetAsync 是一个事件控制器,用于异步接收拖放操作。

GtkDropTarget 相比,它是一种更完整但更复杂的方法来处理拖放操作,只有在 GtkDropTarget 无法提供所需的所有功能时才应使用它。

若要使用 GtkDropTargetAsync 在小部件上接收拖放操作,可以创建一个 GtkDropTargetAsync 对象,配置支持的数据格式和操作,连接到它的信号,然后使用 gtk_widget_add_controller() 将它附加到小部件。

在拖动操作期间,GtkDropTargetAsync 发出的第一个信号是 GtkDropTargetAsync::accept,它旨在确定目标是否是正在进行的拖放操作的可能放置点。::accept 信号的默认处理程序在找到兼容的数据格式和两边都支持的操作时接受拖放操作。

如果它是这样,并且小部件成为目标,你将收到一个 GtkDropTargetAsync::drag-enter 信号,接着是 GtkDropTargetAsync::drag-motion 信号(当指针移动时),可选地还有一个 GtkDropTargetAsync::drop 信号(当发生拖放操作时),最后是 GtkDropTargetAsync::drag-leave 信号(当指针移出小部件时)。

::drag-enter 和 ::drag-motion 处理程序返回一个 GdkDragAction 以更新正在进行的操作的状态。::drop 处理程序应该决定它最终是否接受拖放操作,如果是,它应该发起数据传输并通过调用 gdk_drop_finish() 来完成操作。

在 ::drag-enter 和 ::drag-leave 信号之间,小部件是一个当前的拖放目标,并将接收 GTK_STATE_FLAG_DROP_ACTIVE 状态,主题可以使用此状态将小部件设计为拖放目标。

层级结构

hierarchy this GtkDropTargetAsync ancestor_0 GtkEventController ancestor_0--this ancestor_1 GObject ancestor_1--ancestor_0

构造函数

gtk_drop_target_async_new

创建一个新的 GtkDropTargetAsync 对象。

实例方法

gtk_drop_target_async_get_actions

获取此拖放目标支持的操作。

gtk_drop_target_async_get_formats

获取此拖放目标接受的数据格式。

gtk_drop_target_async_reject_drop

设置drop不被该拖动站点接受。

gtk_drop_target_async_set_actions

设置该拖动目标支持的操作。

gtk_drop_target_async_set_formats

设置该拖动目标将接受的数据格式。

GtkEventController(13)继承的方法
gtk_event_controller_get_current_event

返回当前由控制器处理的事件。

gtk_event_controller_get_current_event_device

返回当前由控制器处理的事件的设备。

gtk_event_controller_get_current_event_state

返回当前由控制器处理的事件的修饰符状态。

gtk_event_controller_get_current_event_time

返回当前由控制器处理的事件的时间戳。

gtk_event_controller_get_name

获取controller的名称。

gtk_event_controller_get_propagation_limit

获取事件控制器的传播限制。

gtk_event_controller_get_propagation_phase

获取controller处理事件时所在的传播阶段。

gtk_event_controller_get_widget

返回该控制器关联的GtkWidget

gtk_event_controller_reset

controller重置为干净状态。

gtk_event_controller_set_name

设置可用于调试的控制器的名称。

gtk_event_controller_set_propagation_limit

设置事件控制器上的事件传播限制。

gtk_event_controller_set_propagation_phase

设置控制器处理事件所在的传播阶段。

gtk_event_controller_set_static_name

设置可用于调试的控制器的名称。

since: 4.8

GObject(43)继承的方法

请参阅 GObject 以获得方法的完整列表。

属性

Gtk.DropTargetAsync:actions

该拖动目标支持的GdkDragActions

Gtk.DropTargetAsync:formats

确定所支持数据格式的GdkContentFormats

GtkEventController(4)继承的属性
Gtk.EventController:name

该控制器的名称,通常用于调试目的。

Gtk.EventController:propagation-limit

该控制器将处理的事件的限制。

Gtk.EventController:propagation-phase

该控制器将处理事件的传播阶段。

Gtk.EventController:widget

接收控制器将处理的GdkEvents的小部件。

信号

Gtk.DropTargetAsync::accept

当准备开始拖放操作时,在放置站点上发出。

Gtk.DropTargetAsync::drag-enter

当指针进入小部件时,在放置站点上发出。

Gtk.DropTargetAsync::drag-leave

当指针离开小部件时,在放置站点上发出。

Gtk.DropTargetAsync::drag-motion

当指针在拖放目标上移动时发出。

Gtk.DropTargetAsync::drop

当用户将数据放置到小部件上时,在放置站点上发出。

GObject(1)继承的信号
GObject::notify

当对象的属性通过 g_object_set_property()、g_object_set()、et 等设置其值时,notify 信号在对象上发出。

类结构

struct GtkDropTargetAsyncClass {
  /* no available fields */
}

没有可用的说明。