Remove scrollbar drawing from KatzeScrolled
The gdk_draw interfaces are deprecated, and since we don't use custom scrollbars anyway, we might as well remove them.
This commit is contained in:
parent
80e1c4149c
commit
20aa562de5
1 changed files with 0 additions and 216 deletions
|
@ -137,15 +137,6 @@ struct _KatzeScrolledPrivate
|
||||||
gdouble vertical_speed;
|
gdouble vertical_speed;
|
||||||
gdouble horizontal_deceleration;
|
gdouble horizontal_deceleration;
|
||||||
gdouble vertical_deceleration;
|
gdouble vertical_deceleration;
|
||||||
|
|
||||||
/* Internal scrollbars */
|
|
||||||
GdkWindow* vertical_scrollbar_window;
|
|
||||||
GdkWindow* horizontal_scrollbar_window;
|
|
||||||
gint vertical_scrollbar_size;
|
|
||||||
gint horizontal_scrollbar_size;
|
|
||||||
guint hide_scrollbars_timeout_id;
|
|
||||||
GdkGC* hilight_gc;
|
|
||||||
GdkGC* shadow_gc;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct _KatzeScrolledState KatzeScrolledState;
|
typedef struct _KatzeScrolledState KatzeScrolledState;
|
||||||
|
@ -277,132 +268,6 @@ enable_hadjustment (KatzeScrolled* scrolled)
|
||||||
g_signal_handlers_unblock_matched (priv->hadjustment, G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, priv->viewport);
|
g_signal_handlers_unblock_matched (priv->hadjustment, G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, priv->viewport);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
|
||||||
on_expose_event (GtkWidget* widget,
|
|
||||||
GdkEventExpose* event,
|
|
||||||
KatzeScrolled* scrolled)
|
|
||||||
{
|
|
||||||
KatzeScrolledPrivate* priv = scrolled->priv;
|
|
||||||
gboolean ret = FALSE;
|
|
||||||
|
|
||||||
if (gtk_widget_is_drawable (widget))
|
|
||||||
{
|
|
||||||
if (event->window == priv->horizontal_scrollbar_window)
|
|
||||||
{
|
|
||||||
if (priv->horizontal_scrollbar_size)
|
|
||||||
{
|
|
||||||
gdk_draw_line (event->window, priv->hilight_gc, 0, 0, priv->horizontal_scrollbar_size - 1, 0);
|
|
||||||
gdk_draw_line (event->window, priv->hilight_gc, 0, 1, 0, 9);
|
|
||||||
gdk_draw_line (event->window, priv->shadow_gc, priv->horizontal_scrollbar_size - 1, 1, priv->horizontal_scrollbar_size - 1, 9);
|
|
||||||
gdk_draw_line (event->window, priv->shadow_gc, 0, 9, priv->horizontal_scrollbar_size - 1, 9);
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = TRUE;
|
|
||||||
}
|
|
||||||
else if (event->window == priv->vertical_scrollbar_window)
|
|
||||||
{
|
|
||||||
if (priv->vertical_scrollbar_size)
|
|
||||||
{
|
|
||||||
gdk_draw_line (event->window, priv->hilight_gc, 0, 0, 9, 0);
|
|
||||||
gdk_draw_line (event->window, priv->hilight_gc, 0, 1, 0, priv->vertical_scrollbar_size - 1);
|
|
||||||
gdk_draw_line (event->window, priv->shadow_gc, 9, 1, 9, priv->vertical_scrollbar_size - 1);
|
|
||||||
gdk_draw_line (event->window, priv->shadow_gc, 0, priv->vertical_scrollbar_size - 1, 9, priv->vertical_scrollbar_size - 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
adjust_scrollbar (KatzeScrolled* scrolled,
|
|
||||||
GdkWindow* scrollbar_window,
|
|
||||||
GtkAdjustment* adjustment,
|
|
||||||
gint* previous_size,
|
|
||||||
gboolean horizontal)
|
|
||||||
{
|
|
||||||
KatzeScrolledPrivate* priv = scrolled->priv;
|
|
||||||
GtkWidget* widget = GTK_WIDGET (scrolled);
|
|
||||||
gdouble page_size, upper, lower, value;
|
|
||||||
gint x, y;
|
|
||||||
gint size;
|
|
||||||
double position;
|
|
||||||
GtkAllocation allocation;
|
|
||||||
GtkWidget* window;
|
|
||||||
|
|
||||||
page_size = gtk_adjustment_get_page_size (adjustment);
|
|
||||||
upper = gtk_adjustment_get_upper (adjustment);
|
|
||||||
lower = gtk_adjustment_get_lower (adjustment);
|
|
||||||
value = gtk_adjustment_get_value (adjustment);
|
|
||||||
|
|
||||||
if (page_size >= upper - lower)
|
|
||||||
{
|
|
||||||
*previous_size = 0;
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
gtk_widget_get_allocation (widget, &allocation);
|
|
||||||
size = page_size / (upper - lower)
|
|
||||||
* (horizontal ? allocation.height : allocation.width);
|
|
||||||
if (size != *previous_size)
|
|
||||||
{
|
|
||||||
*previous_size = size;
|
|
||||||
if (horizontal)
|
|
||||||
{
|
|
||||||
gdk_window_resize (scrollbar_window, 10, size);
|
|
||||||
gdk_window_clear (scrollbar_window);
|
|
||||||
gdk_draw_line (scrollbar_window, priv->hilight_gc, 0, 0, 9, 0);
|
|
||||||
gdk_draw_line (scrollbar_window, priv->hilight_gc, 0, 1, 0, size - 1);
|
|
||||||
gdk_draw_line (scrollbar_window, priv->shadow_gc, 9, 1, 9, size - 1);
|
|
||||||
gdk_draw_line (scrollbar_window, priv->shadow_gc, 0, size - 1, 9, size - 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gdk_window_resize (scrollbar_window, size, 10);
|
|
||||||
gdk_window_clear (scrollbar_window);
|
|
||||||
gdk_draw_line (scrollbar_window, priv->hilight_gc, 0, 0, size - 1, 0);
|
|
||||||
gdk_draw_line (scrollbar_window, priv->hilight_gc, 0, 1, 0, 9);
|
|
||||||
gdk_draw_line (scrollbar_window, priv->shadow_gc, size - 1, 1, size - 1, 9);
|
|
||||||
gdk_draw_line (scrollbar_window, priv->shadow_gc, 0, 9, size - 1, 9);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
position = (value - lower) / (upper - lower);
|
|
||||||
window = gtk_widget_get_toplevel (widget);
|
|
||||||
if (horizontal)
|
|
||||||
{
|
|
||||||
gtk_widget_translate_coordinates (widget, window,
|
|
||||||
allocation.width - 20, position * allocation.height, &x, &y);
|
|
||||||
gdk_window_move (scrollbar_window, x, y);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gtk_widget_translate_coordinates (widget, window,
|
|
||||||
position * allocation.width, allocation.height - 20, &x, &y);
|
|
||||||
gdk_window_move (scrollbar_window, x, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
hide_scrollbars_timeout (gpointer data)
|
|
||||||
{
|
|
||||||
KatzeScrolled* scrolled = KATZE_SCROLLED (data);
|
|
||||||
KatzeScrolledPrivate* priv = scrolled->priv;
|
|
||||||
|
|
||||||
gdk_threads_enter ();
|
|
||||||
gdk_window_hide (priv->vertical_scrollbar_window);
|
|
||||||
gdk_window_hide (priv->horizontal_scrollbar_window);
|
|
||||||
|
|
||||||
priv->hide_scrollbars_timeout_id = 0;
|
|
||||||
gdk_threads_leave ();
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gdouble
|
static gdouble
|
||||||
calculate_timeout_scroll_values (gdouble old_value,
|
calculate_timeout_scroll_values (gdouble old_value,
|
||||||
gdouble upper_limit,
|
gdouble upper_limit,
|
||||||
|
@ -485,13 +350,6 @@ do_timeout_scroll (KatzeScrolled* scrolled)
|
||||||
}
|
}
|
||||||
else if (new_hvalue != hvalue)
|
else if (new_hvalue != hvalue)
|
||||||
gtk_adjustment_set_value (hadjustment, new_hvalue);
|
gtk_adjustment_set_value (hadjustment, new_hvalue);
|
||||||
|
|
||||||
adjust_scrollbar (scrolled, priv->horizontal_scrollbar_window,
|
|
||||||
gtk_scrolled_window_get_hadjustment (gtk_scrolled),
|
|
||||||
&priv->horizontal_scrollbar_size, FALSE);
|
|
||||||
adjust_scrollbar (scrolled, priv->vertical_scrollbar_window,
|
|
||||||
gtk_scrolled_window_get_vadjustment (gtk_scrolled),
|
|
||||||
&priv->vertical_scrollbar_size, TRUE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
@ -510,10 +368,6 @@ timeout_scroll (gpointer data)
|
||||||
priv->horizontal_speed > -priv->deceleration)
|
priv->horizontal_speed > -priv->deceleration)
|
||||||
{
|
{
|
||||||
priv->scrolling_timeout_id = 0;
|
priv->scrolling_timeout_id = 0;
|
||||||
if (!priv->hide_scrollbars_timeout_id)
|
|
||||||
priv->hide_scrollbars_timeout_id = g_timeout_add (500,
|
|
||||||
hide_scrollbars_timeout, scrolled);
|
|
||||||
|
|
||||||
ret = FALSE;
|
ret = FALSE;
|
||||||
}
|
}
|
||||||
gdk_threads_leave ();
|
gdk_threads_leave ();
|
||||||
|
@ -622,13 +476,6 @@ do_motion_scroll (KatzeScrolled* scrolled,
|
||||||
priv->previous_y = y;
|
priv->previous_y = y;
|
||||||
priv->previous_x = x;
|
priv->previous_x = x;
|
||||||
priv->previous_time = timestamp;
|
priv->previous_time = timestamp;
|
||||||
|
|
||||||
adjust_scrollbar (scrolled, priv->horizontal_scrollbar_window,
|
|
||||||
gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (scrolled)),
|
|
||||||
&priv->horizontal_scrollbar_size, FALSE);
|
|
||||||
adjust_scrollbar (scrolled, priv->vertical_scrollbar_window,
|
|
||||||
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled)),
|
|
||||||
&priv->vertical_scrollbar_size, TRUE);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
@ -681,32 +528,6 @@ button_press_event (GtkWidget* widget,
|
||||||
priv->start_time = event->time;
|
priv->start_time = event->time;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priv->scrolling_hints
|
|
||||||
&& !gtk_widget_get_visible (gtk_scrolled_window_get_hscrollbar (
|
|
||||||
GTK_SCROLLED_WINDOW (scrolled)))
|
|
||||||
&& adjust_scrollbar (scrolled, priv->horizontal_scrollbar_window,
|
|
||||||
gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (scrolled)),
|
|
||||||
&priv->horizontal_scrollbar_size, FALSE))
|
|
||||||
{
|
|
||||||
gdk_window_raise (priv->horizontal_scrollbar_window);
|
|
||||||
gdk_window_show (priv->horizontal_scrollbar_window);
|
|
||||||
}
|
|
||||||
if (priv->scrolling_hints
|
|
||||||
&& !gtk_widget_get_visible (gtk_scrolled_window_get_vscrollbar (
|
|
||||||
GTK_SCROLLED_WINDOW (scrolled)))
|
|
||||||
&& adjust_scrollbar (scrolled, priv->vertical_scrollbar_window,
|
|
||||||
gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (scrolled)),
|
|
||||||
&priv->vertical_scrollbar_size, TRUE))
|
|
||||||
{
|
|
||||||
gdk_window_raise (priv->vertical_scrollbar_window);
|
|
||||||
gdk_window_show (priv->vertical_scrollbar_window);
|
|
||||||
}
|
|
||||||
if (priv->hide_scrollbars_timeout_id)
|
|
||||||
{
|
|
||||||
g_source_remove (priv->hide_scrollbars_timeout_id);
|
|
||||||
priv->hide_scrollbars_timeout_id = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -742,9 +563,6 @@ button_release_event (GtkWidget* widget,
|
||||||
|
|
||||||
do_timeout_scroll (scrolled);
|
do_timeout_scroll (scrolled);
|
||||||
}
|
}
|
||||||
else if (!priv->hide_scrollbars_timeout_id) {
|
|
||||||
priv->hide_scrollbars_timeout_id = g_timeout_add (500, hide_scrollbars_timeout, scrolled);
|
|
||||||
}
|
|
||||||
priv->previous_x = x;
|
priv->previous_x = x;
|
||||||
priv->previous_y = y;
|
priv->previous_y = y;
|
||||||
priv->previous_time = event->time;
|
priv->previous_time = event->time;
|
||||||
|
@ -874,12 +692,10 @@ static void
|
||||||
katze_scrolled_realize (GtkWidget* widget)
|
katze_scrolled_realize (GtkWidget* widget)
|
||||||
{
|
{
|
||||||
KatzeScrolled* scrolled = KATZE_SCROLLED (widget);
|
KatzeScrolled* scrolled = KATZE_SCROLLED (widget);
|
||||||
KatzeScrolledPrivate* priv = scrolled->priv;
|
|
||||||
gboolean drag_scrolling;
|
gboolean drag_scrolling;
|
||||||
GtkPolicyType policy;
|
GtkPolicyType policy;
|
||||||
GdkWindow* window;
|
GdkWindow* window;
|
||||||
GdkWindowAttr attr;
|
GdkWindowAttr attr;
|
||||||
GdkColor color;
|
|
||||||
|
|
||||||
(*GTK_WIDGET_CLASS (katze_scrolled_parent_class)->realize) (widget);
|
(*GTK_WIDGET_CLASS (katze_scrolled_parent_class)->realize) (widget);
|
||||||
|
|
||||||
|
@ -896,25 +712,6 @@ katze_scrolled_realize (GtkWidget* widget)
|
||||||
attr.wclass = GDK_INPUT_OUTPUT;
|
attr.wclass = GDK_INPUT_OUTPUT;
|
||||||
attr.window_type = GDK_WINDOW_CHILD;
|
attr.window_type = GDK_WINDOW_CHILD;
|
||||||
attr.override_redirect = TRUE;
|
attr.override_redirect = TRUE;
|
||||||
priv->vertical_scrollbar_window = gdk_window_new (window, &attr, 0);
|
|
||||||
priv->horizontal_scrollbar_window = gdk_window_new (window, &attr, 0);
|
|
||||||
|
|
||||||
gdk_window_set_user_data (priv->vertical_scrollbar_window, widget);
|
|
||||||
gdk_window_set_user_data (priv->horizontal_scrollbar_window, widget);
|
|
||||||
g_signal_connect (widget, "expose-event",
|
|
||||||
G_CALLBACK (on_expose_event), scrolled);
|
|
||||||
|
|
||||||
color.red = color.green = color.blue = 0x9999;
|
|
||||||
gdk_rgb_find_color (gtk_widget_get_colormap (widget), &color);
|
|
||||||
gdk_window_set_background (priv->vertical_scrollbar_window, &color);
|
|
||||||
gdk_window_set_background (priv->horizontal_scrollbar_window, &color);
|
|
||||||
|
|
||||||
priv->hilight_gc = gdk_gc_new (window);
|
|
||||||
color.red = color.green = color.blue = 0xcccc;
|
|
||||||
gdk_gc_set_rgb_fg_color (priv->hilight_gc, &color);
|
|
||||||
priv->shadow_gc = gdk_gc_new (window);
|
|
||||||
color.red = color.green = color.blue = 0x6666;
|
|
||||||
gdk_gc_set_rgb_fg_color (priv->shadow_gc, &color);
|
|
||||||
|
|
||||||
gtk_widget_set_realized (widget, TRUE);
|
gtk_widget_set_realized (widget, TRUE);
|
||||||
}
|
}
|
||||||
|
@ -930,11 +727,6 @@ katze_scrolled_dispose (GObject* object)
|
||||||
g_source_remove (priv->scrolling_timeout_id);
|
g_source_remove (priv->scrolling_timeout_id);
|
||||||
priv->scrolling_timeout_id = 0;
|
priv->scrolling_timeout_id = 0;
|
||||||
}
|
}
|
||||||
if (priv->hide_scrollbars_timeout_id)
|
|
||||||
{
|
|
||||||
g_source_remove (priv->hide_scrollbars_timeout_id);
|
|
||||||
priv->hide_scrollbars_timeout_id = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
(*G_OBJECT_CLASS (katze_scrolled_parent_class)->dispose) (object);
|
(*G_OBJECT_CLASS (katze_scrolled_parent_class)->dispose) (object);
|
||||||
}
|
}
|
||||||
|
@ -1135,14 +927,6 @@ katze_scrolled_set_drag_scrolling (KatzeScrolled* scrolled,
|
||||||
priv->previous_time = 0;
|
priv->previous_time = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
gdk_window_hide (priv->vertical_scrollbar_window);
|
|
||||||
gdk_window_hide (priv->horizontal_scrollbar_window);
|
|
||||||
if (priv->hide_scrollbars_timeout_id)
|
|
||||||
{
|
|
||||||
g_source_remove (priv->hide_scrollbars_timeout_id);
|
|
||||||
priv->hide_scrollbars_timeout_id = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
priv->press_received = FALSE;
|
priv->press_received = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue