gesturelongpress: Add getter/setter for delay-factor

This commit is contained in:
Timm Bäder 2019-08-07 14:09:33 +02:00
parent 8b16e44d26
commit e8f3b47bf3
3 changed files with 55 additions and 11 deletions

View File

@ -6737,6 +6737,8 @@ gtk_gesture_drag_get_type
<TITLE>GtkGestureLongPress</TITLE>
GtkGestureLongPress
gtk_gesture_long_press_new
gtk_gesture_long_press_set_delay_factor
gtk_gesture_long_press_get_delay_factor
<SUBSECTION Standard>
GTK_TYPE_GESTURE_LONG_PRESS

View File

@ -227,14 +227,10 @@ gtk_gesture_long_press_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
GtkGestureLongPressPrivate *priv;
priv = gtk_gesture_long_press_get_instance_private (GTK_GESTURE_LONG_PRESS (object));
switch (property_id)
{
case PROP_DELAY_FACTOR:
g_value_set_double (value, priv->delay_factor);
g_value_set_double (value, gtk_gesture_long_press_get_delay_factor (GTK_GESTURE_LONG_PRESS (object)));
break;
default:
@ -249,14 +245,11 @@ gtk_gesture_long_press_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
GtkGestureLongPressPrivate *priv;
priv = gtk_gesture_long_press_get_instance_private (GTK_GESTURE_LONG_PRESS (object));
switch (property_id)
{
case PROP_DELAY_FACTOR:
priv->delay_factor = g_value_get_double (value);
gtk_gesture_long_press_set_delay_factor (GTK_GESTURE_LONG_PRESS (object),
g_value_get_double (value));
break;
default:
@ -288,7 +281,7 @@ gtk_gesture_long_press_class_init (GtkGestureLongPressClass *klass)
P_("Delay factor"),
P_("Factor by which to modify the default timeout"),
0.5, 2.0, 1.0,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY));
/**
* GtkGestureLongPress::pressed:
@ -339,3 +332,43 @@ gtk_gesture_long_press_new (void)
return g_object_new (GTK_TYPE_GESTURE_LONG_PRESS,
NULL);
}
/**
* gtk_gesture_long_press_set_property:
* @gesture: A #GtkGestureLongPress
* @delay_factor: The delay factor to apply
*
* Applies the given delay factor. The default long press time will be
* multiplied by this value.
* Valid values are in the range [0.5..2.0].
*/
void
gtk_gesture_long_press_set_delay_factor (GtkGestureLongPress *gesture,
double delay_factor)
{
GtkGestureLongPressPrivate *priv = gtk_gesture_long_press_get_instance_private (gesture);
g_return_if_fail (GTK_IS_GESTURE_LONG_PRESS (gesture));
g_return_if_fail (delay_factor >= 0.5);
g_return_if_fail (delay_factor <= 2.0);
priv->delay_factor = delay_factor;
g_object_notify (G_OBJECT (gesture), "delay-factor");
}
/**
* gtk_gesture_long_press_get_property:
* @gesture: A #GtkGestureLongPress
*
* Returns the delay factor as set by gtk_gesture_long_press_set_delay_factor().
*/
double
gtk_gesture_long_press_get_delay_factor (GtkGestureLongPress *gesture)
{
GtkGestureLongPressPrivate *priv = gtk_gesture_long_press_get_instance_private (gesture);
g_return_val_if_fail (GTK_IS_GESTURE_LONG_PRESS (gesture), 0);
return priv->delay_factor;
}

View File

@ -44,6 +44,15 @@ GType gtk_gesture_long_press_get_type (void) G_GNUC_CONST;
GDK_AVAILABLE_IN_ALL
GtkGesture * gtk_gesture_long_press_new (void);
GDK_AVAILABLE_IN_ALL
void gtk_gesture_long_press_set_delay_factor (GtkGestureLongPress *gesture,
double delay_factor);
GDK_AVAILABLE_IN_ALL
double gtk_gesture_long_press_get_delay_factor (GtkGestureLongPress *gesture);
G_END_DECLS
#endif /* __GTK_GESTURE_LONG_PRESS_H__ */