方法
GtkGestureset_sequence_state
已弃用:4.10。
声明 [src]
gboolean
gtk_gesture_set_sequence_state (
GtkGesture* gesture,
GdkEventSequence* sequence,
GtkEventSequenceState state
)
描述 [src]
设置手势中的 sequence 状态。
Sequences 从状态 GTK_EVENT_SEQUENCE_NONE
开始,每次状态改变后,它们就无法回到该状态。同样,处于 GTK_EVENT_SEQUENCE_DENIED
状态的 sequence 无法回退到未拒绝状态。根据这些规则,事件序列的生存期被限制为接下来的四个
- None
- None → Denied
- None → Claimed
- None → Claimed → Denied
注意:由于事件处理顺序,在 GtkGesture::begin
信号处理程序中设置另一个手势的状态可能会不安全,因为回调可能在其他手势知道序列之前执行。执行此操作的安全方法可能是
static void
first_gesture_begin_cb (GtkGesture *first_gesture,
GdkEventSequence *sequence,
gpointer user_data)
{
gtk_gesture_set_sequence_state (first_gesture, sequence, GTK_EVENT_SEQUENCE_CLAIMED);
gtk_gesture_set_sequence_state (second_gesture, sequence, GTK_EVENT_SEQUENCE_DENIED);
}
static void
second_gesture_begin_cb (GtkGesture *second_gesture,
GdkEventSequence *sequence,
gpointer user_data)
{
if (gtk_gesture_get_sequence_state (first_gesture, sequence) == GTK_EVENT_SEQUENCE_CLAIMED)
gtk_gesture_set_sequence_state (second_gesture, sequence, GTK_EVENT_SEQUENCE_DENIED);
}
如果两个手势属于同一组,只需在触发事件的 gesture 上设置状态,当第二个手势处理事件时,序列将被初始化为组的全局状态。
自 version 4.10 开始弃用。
参数
sequence
-
类型:
GdkEventSequence
一个
GdkEventSequence
。数据由方法的调用者拥有。 state
-
序列状态。