-}
-
-static void
-gtk_hscale_draw_value (GtkScale *scale)
-{
- GtkStateType state_type;
- GtkWidget *widget;
- gchar buffer[32];
- gint width, height;
- gint x, y;
-
- g_return_if_fail (scale != NULL);
- g_return_if_fail (GTK_IS_HSCALE (scale));
-
- widget = GTK_WIDGET (scale);
-
- if (scale->draw_value)
- {
- PangoLayout *layout;
- PangoRectangle logical_rect;
-
- sprintf (buffer, "%0.*f", GTK_RANGE (scale)->digits, GTK_RANGE (scale)->adjustment->value);
- layout = gtk_widget_create_pango_layout (widget, buffer);
- pango_layout_get_pixel_extents (layout, NULL, &logical_rect);
-
- switch (scale->value_pos)
- {
- case GTK_POS_LEFT:
- gdk_window_get_position (GTK_RANGE (scale)->trough, &x, &y);
- gdk_window_get_size (GTK_RANGE (scale)->trough, &width, &height);
-
- x -= SCALE_CLASS (scale)->value_spacing + logical_rect.width;
- y += (height - logical_rect.height) / 2;
- break;
- case GTK_POS_RIGHT:
- gdk_window_get_position (GTK_RANGE (scale)->trough, &x, &y);
- gdk_window_get_size (GTK_RANGE (scale)->trough, &width, &height);
-
- x += width + SCALE_CLASS (scale)->value_spacing;
- y += (height - logical_rect.height) / 2;
- break;
- case GTK_POS_TOP:
- gdk_window_get_position (GTK_RANGE (scale)->slider, &x, NULL);
- gdk_window_get_position (GTK_RANGE (scale)->trough, NULL, &y);
- gdk_window_get_size (GTK_RANGE (scale)->slider, &width, NULL);
- gdk_window_get_size (GTK_RANGE (scale)->trough, NULL, &height);
-
- x += widget->allocation.x + (width - logical_rect.width) / 2;
- x = CLAMP (x, widget->allocation.x,
- widget->allocation.x + widget->allocation.width - logical_rect.width);
- y -= logical_rect.height;
- break;
- case GTK_POS_BOTTOM:
- gdk_window_get_position (GTK_RANGE (scale)->slider, &x, NULL);
- gdk_window_get_position (GTK_RANGE (scale)->trough, NULL, &y);
- gdk_window_get_size (GTK_RANGE (scale)->slider, &width, NULL);
- gdk_window_get_size (GTK_RANGE (scale)->trough, NULL, &height);
-
- x += widget->allocation.x + (width - logical_rect.width) / 2;
- x = CLAMP (x, widget->allocation.x,
- widget->allocation.x + widget->allocation.width - logical_rect.width);
- y += height;
- break;
- }
-
- state_type = GTK_STATE_NORMAL;
- if (!GTK_WIDGET_IS_SENSITIVE (scale))
- state_type = GTK_STATE_INSENSITIVE;
-
-#if 0
- gtk_paint_string (GTK_WIDGET (scale)->style,
- GTK_WIDGET (scale)->window,
- state_type,
- NULL, GTK_WIDGET (scale), "hscale",
- x, y, buffer);
-#endif
-
- gdk_draw_layout (GTK_WIDGET (scale)->window,
- GTK_WIDGET (scale)->style->fg_gc [state_type],
- x, y, layout);