diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2010-12-05 13:21:08 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2010-12-05 13:21:08 (GMT) |
commit | 6ea8a46069a8b2c6d2fbf007496d0616f544d8d4 (patch) | |
tree | 110174b3c62715bd6cdf9f7fa8034e567f0cc367 /src | |
parent | 492f78fc955e181ff4ba7e7d6b578e5f76afb858 (diff) |
Added scrolling capabilities to buffered view.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@198 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src')
-rw-r--r-- | src/gtkext/gtkbufferview.c | 56 |
1 files changed, 55 insertions, 1 deletions
diff --git a/src/gtkext/gtkbufferview.c b/src/gtkext/gtkbufferview.c index 485ed79..bad88fc 100644 --- a/src/gtkext/gtkbufferview.c +++ b/src/gtkext/gtkbufferview.c @@ -34,6 +34,12 @@ static void gtk_buffer_view_class_init(GtkBufferViewClass *); /* Procède à l'initialisation de l'afficheur de tampons. */ static void gtk_buffer_view_init(GtkBufferView *); +/* Transcrit les coordonnées à l'écran en coordonnées absolues. */ +static void gtk_buffer_view_compute_fake_coord(GtkBufferView *, gint *, gint *); + +/* Transcrit les coordonnées absolues en coordonnées à l'écran. */ +static void gtk_buffer_view_compute_real_coord(GtkBufferView *, gint *, gint *); + /* Fournit la taille de composant requise pour un plein rendu. */ static void gtk_buffer_view_size_request(GtkWidget *, GtkRequisition *); @@ -107,6 +113,54 @@ static void gtk_buffer_view_init(GtkBufferView *view) /****************************************************************************** * * +* Paramètres : view = composant GTK à consulter. * +* event = informations liées à l'événement. * +* * +* Description : Transcrit les coordonnées à l'écran en coordonnées absolues. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +static void gtk_buffer_view_compute_fake_coord(GtkBufferView *view, gint *x, gint *y) +{ + if (GTK_VIEW_PANEL(view)->hadjustment != NULL) + *x -= gtk_adjustment_get_value(GTK_VIEW_PANEL(view)->hadjustment); + + if (GTK_VIEW_PANEL(view)->vadjustment != NULL) + *y += gtk_adjustment_get_value(GTK_VIEW_PANEL(view)->vadjustment); + +} + + +/****************************************************************************** +* * +* Paramètres : view = composant GTK à consulter. * +* event = informations liées à l'événement. * +* * +* Description : Transcrit les coordonnées absolues en coordonnées à l'écran. * +* * +* Retour : - * +* * +* Remarques : - * +* * +******************************************************************************/ + +static void gtk_buffer_view_compute_real_coord(GtkBufferView *view, gint *x, gint *y) +{ + if (x != NULL && GTK_VIEW_PANEL(view)->hadjustment != NULL) + *x += gtk_adjustment_get_value(GTK_VIEW_PANEL(view)->hadjustment); + + if (y != NULL && GTK_VIEW_PANEL(view)->vadjustment != NULL) + *y += gtk_adjustment_get_value(GTK_VIEW_PANEL(view)->vadjustment); + +} + + +/****************************************************************************** +* * * Paramètres : widget = composant GTK à consulter. * * requisition = dimensions souhaitées. [OUT] * * * @@ -244,7 +298,7 @@ static gboolean gtk_buffer_view_expose(GtkWidget *widget, GdkEventExpose *event) fake_x = 0; fake_y = 0; - //gtk_block_view_compute_fake_coord(view, &fake_x, &fake_y); + gtk_buffer_view_compute_fake_coord(view, &fake_x, &fake_y); /* Dessin de la marge gauche */ |