diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/gtkext/gtkbufferview.c | 56 |
2 files changed, 60 insertions, 1 deletions
@@ -1,3 +1,8 @@ +10-12-05 Cyrille Bagard <nocbos@gmail.com> + + * src/gtkext/gtkbufferview.c: + Add scrolling capabilities to buffered view. + 10-12-02 Cyrille Bagard <nocbos@gmail.com> * src/arch/dalvik/dop_const.c: 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 */ |