range: use new GtkCssGadget API instead of rolling our own
This commit is contained in:
@ -1211,30 +1211,6 @@ gtk_range_get_min_slider_size (GtkRange *range)
|
|||||||
return range->priv->min_slider_size;
|
return range->priv->min_slider_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Returns the gadget rect in widget coordinates */
|
|
||||||
static void
|
|
||||||
measure_one_gadget_alloc (GtkRange *range,
|
|
||||||
GtkCssGadget *gadget,
|
|
||||||
gboolean use_content,
|
|
||||||
GtkAllocation *allocation_out)
|
|
||||||
{
|
|
||||||
GtkAllocation widget_alloc;
|
|
||||||
|
|
||||||
g_assert (allocation_out != NULL);
|
|
||||||
|
|
||||||
gtk_widget_get_allocation (GTK_WIDGET (range), &widget_alloc);
|
|
||||||
|
|
||||||
if (use_content)
|
|
||||||
gtk_css_gadget_get_content_allocation (gadget,
|
|
||||||
allocation_out, NULL);
|
|
||||||
else
|
|
||||||
gtk_css_gadget_get_margin_allocation (gadget,
|
|
||||||
allocation_out, NULL);
|
|
||||||
|
|
||||||
allocation_out->x -= widget_alloc.x;
|
|
||||||
allocation_out->y -= widget_alloc.y;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
measure_one_gadget (GtkCssGadget *gadget,
|
measure_one_gadget (GtkCssGadget *gadget,
|
||||||
int *width_out,
|
int *width_out,
|
||||||
@ -1273,7 +1249,7 @@ gtk_range_get_range_rect (GtkRange *range,
|
|||||||
|
|
||||||
priv = range->priv;
|
priv = range->priv;
|
||||||
|
|
||||||
measure_one_gadget_alloc (range, priv->contents_gadget, FALSE, range_rect);
|
gtk_css_gadget_get_margin_box (priv->contents_gadget, range_rect);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1303,7 +1279,7 @@ gtk_range_get_slider_range (GtkRange *range,
|
|||||||
|
|
||||||
priv = range->priv;
|
priv = range->priv;
|
||||||
|
|
||||||
measure_one_gadget_alloc (range, priv->slider_gadget, FALSE, &slider_alloc);
|
gtk_css_gadget_get_margin_box (priv->slider_gadget, &slider_alloc);
|
||||||
|
|
||||||
if (priv->orientation == GTK_ORIENTATION_VERTICAL)
|
if (priv->orientation == GTK_ORIENTATION_VERTICAL)
|
||||||
{
|
{
|
||||||
@ -2493,8 +2469,8 @@ coord_to_value (GtkRange *range,
|
|||||||
gint slider_length;
|
gint slider_length;
|
||||||
GtkAllocation slider_alloc, trough_alloc;
|
GtkAllocation slider_alloc, trough_alloc;
|
||||||
|
|
||||||
measure_one_gadget_alloc (range, priv->slider_gadget, FALSE, &slider_alloc);
|
gtk_css_gadget_get_margin_box (priv->slider_gadget, &slider_alloc);
|
||||||
measure_one_gadget_alloc (range, priv->trough_gadget, TRUE, &trough_alloc);
|
gtk_css_gadget_get_content_box (priv->trough_gadget, &trough_alloc);
|
||||||
|
|
||||||
if (priv->orientation == GTK_ORIENTATION_VERTICAL)
|
if (priv->orientation == GTK_ORIENTATION_VERTICAL)
|
||||||
{
|
{
|
||||||
@ -2536,7 +2512,7 @@ gtk_range_key_press (GtkWidget *widget,
|
|||||||
device = gdk_event_get_device ((GdkEvent *) event);
|
device = gdk_event_get_device ((GdkEvent *) event);
|
||||||
device = gdk_device_get_associated_device (device);
|
device = gdk_device_get_associated_device (device);
|
||||||
|
|
||||||
measure_one_gadget_alloc (range, priv->slider_gadget, FALSE, &slider_alloc);
|
gtk_css_gadget_get_margin_box (priv->slider_gadget, &slider_alloc);
|
||||||
|
|
||||||
if (gtk_gesture_is_active (priv->drag_gesture) &&
|
if (gtk_gesture_is_active (priv->drag_gesture) &&
|
||||||
device == gtk_gesture_get_device (priv->drag_gesture) &&
|
device == gtk_gesture_get_device (priv->drag_gesture) &&
|
||||||
@ -2573,7 +2549,7 @@ gtk_range_long_press_gesture_pressed (GtkGestureLongPress *gesture,
|
|||||||
GtkAllocation slider_alloc;
|
GtkAllocation slider_alloc;
|
||||||
|
|
||||||
gtk_range_update_mouse_location (range);
|
gtk_range_update_mouse_location (range);
|
||||||
measure_one_gadget_alloc (range, priv->slider_gadget, FALSE, &slider_alloc);
|
gtk_css_gadget_get_margin_box (priv->slider_gadget, &slider_alloc);
|
||||||
|
|
||||||
if (priv->mouse_location == MOUSE_SLIDER && !priv->zoom)
|
if (priv->mouse_location == MOUSE_SLIDER && !priv->zoom)
|
||||||
{
|
{
|
||||||
@ -2627,7 +2603,7 @@ gtk_range_multipress_gesture_pressed (GtkGestureMultiPress *gesture,
|
|||||||
priv->mouse_y = y;
|
priv->mouse_y = y;
|
||||||
|
|
||||||
gtk_range_update_mouse_location (range);
|
gtk_range_update_mouse_location (range);
|
||||||
measure_one_gadget_alloc (range, priv->slider_gadget, FALSE, &slider_alloc);
|
gtk_css_gadget_get_margin_box (priv->slider_gadget, &slider_alloc);
|
||||||
|
|
||||||
g_object_get (gtk_widget_get_settings (widget),
|
g_object_get (gtk_widget_get_settings (widget),
|
||||||
"gtk-primary-button-warps-slider", &primary_warps,
|
"gtk-primary-button-warps-slider", &primary_warps,
|
||||||
@ -2804,8 +2780,8 @@ update_slider_position (GtkRange *range,
|
|||||||
gint i;
|
gint i;
|
||||||
GtkAllocation slider_alloc, trough_alloc;
|
GtkAllocation slider_alloc, trough_alloc;
|
||||||
|
|
||||||
measure_one_gadget_alloc (range, priv->slider_gadget, FALSE, &slider_alloc);
|
gtk_css_gadget_get_margin_box (priv->slider_gadget, &slider_alloc);
|
||||||
measure_one_gadget_alloc (range, priv->trough_gadget, FALSE, &trough_alloc);
|
gtk_css_gadget_get_margin_box (priv->trough_gadget, &trough_alloc);
|
||||||
|
|
||||||
if (priv->zoom)
|
if (priv->zoom)
|
||||||
{
|
{
|
||||||
@ -3452,7 +3428,7 @@ gtk_range_compute_slider_position (GtkRange *range,
|
|||||||
int slider_width, slider_height;
|
int slider_width, slider_height;
|
||||||
|
|
||||||
measure_one_gadget (priv->slider_gadget, &slider_width, &slider_height);
|
measure_one_gadget (priv->slider_gadget, &slider_width, &slider_height);
|
||||||
measure_one_gadget_alloc (range, priv->trough_gadget, TRUE, &trough_content_alloc);
|
gtk_css_gadget_get_content_box (priv->trough_gadget, &trough_content_alloc);
|
||||||
|
|
||||||
if (priv->orientation == GTK_ORIENTATION_VERTICAL)
|
if (priv->orientation == GTK_ORIENTATION_VERTICAL)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user