summaryrefslogtreecommitdiff
path: root/src/gtkext/gtkbufferview.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2015-04-03 20:57:45 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2015-04-03 20:57:45 (GMT)
commitd65fbe084a91d180d17767314f4e34b7456e8436 (patch)
treee7eee433871ea98be6643c1ab5a861889ed0226a /src/gtkext/gtkbufferview.c
parent6cfa350c21c1e54cf9c597d92a9ea3d1aab01d78 (diff)
Defined a preferred size for views and reacted on scroll events.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@500 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/gtkext/gtkbufferview.c')
-rw-r--r--src/gtkext/gtkbufferview.c61
1 files changed, 32 insertions, 29 deletions
diff --git a/src/gtkext/gtkbufferview.c b/src/gtkext/gtkbufferview.c
index be75d2f..0d74176 100644
--- a/src/gtkext/gtkbufferview.c
+++ b/src/gtkext/gtkbufferview.c
@@ -58,6 +58,9 @@ static void gtk_buffer_view_compute_requested_size(GtkBufferView *, gint *, gint
/* Détermine la taille des bonds lors de défilements. */
static void gtk_buffer_view_compute_scroll_inc(GtkBufferView *, gint, GtkOrientation, gdouble *, gdouble *);
+/* Réagit à un défilement chez une barre associée au composant. */
+static void gtk_buffer_view_adjust_scroll_value(GtkBufferView *, GtkAdjustment *, GtkOrientation);
+
/* Indique la position d'affichage d'une adresse donnée. */
static bool gtk_buffer_view_get_address_coordinates(const GtkBufferView *, const vmpa2t *, gint *, gint *, ScrollPositionTweak);
@@ -92,28 +95,6 @@ static gboolean gtk_buffer_view_refresh_caret(GtkBufferView *);
G_DEFINE_TYPE(GtkBufferView, gtk_buffer_view, GTK_TYPE_VIEW_PANEL)
-/*
- void (* get_preferred_height) (GtkWidget *widget,
- gint *minimum_height,
- gint *natural_height);
-
- void (* get_preferred_width_for_height) (GtkWidget *widget,
- gint height,
- gint *minimum_width,
- gint *natural_width);
- void (* get_preferred_width) (GtkWidget *widget,
- gint *minimum_width,
- gint *natural_width);
-*/
-
-
-void get_preferred(GtkWidget *widget, gint *minimum, gint *natural)
-{
- if (minimum != NULL) *minimum = 500;
- if (natural != NULL) *natural = 500;
-}
-
-
/******************************************************************************
* *
* Paramètres : class = classe GTK à initialiser. *
@@ -139,13 +120,9 @@ static void gtk_buffer_view_class_init(GtkBufferViewClass *class)
widget_class->draw = gtk_buffer_view_draw;
widget_class->key_press_event = gtk_buffer_view_key_press;
-
- widget_class->get_preferred_height = get_preferred;
- widget_class->get_preferred_width = get_preferred;
-
-
- panel_class->compute_size = (compute_requested_size)gtk_buffer_view_compute_requested_size;
- panel_class->compute_inc = (compute_scroll_inc)gtk_buffer_view_compute_scroll_inc;
+ panel_class->compute_size = (compute_requested_size_fc)gtk_buffer_view_compute_requested_size;
+ panel_class->compute_inc = (compute_scroll_inc_fc)gtk_buffer_view_compute_scroll_inc;
+ panel_class->adjust = (adjust_scroll_value_fc)gtk_buffer_view_adjust_scroll_value;
panel_class->get_coordinates = (get_addr_coordinates_fc)gtk_buffer_view_get_address_coordinates;
panel_class->get_position = (get_view_position_fc)gtk_buffer_view_get_position;
@@ -578,6 +555,32 @@ static void gtk_buffer_view_compute_scroll_inc(GtkBufferView *view, gint size, G
/******************************************************************************
* *
+* Paramètres : view = panneau d'affichage concerné. *
+* adj = défilement dont une valeur a changé. *
+* orientation = indication sur le défilement à traiter. *
+* *
+* Description : Réagit à un défilement chez une barre associée au composant. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+static void gtk_buffer_view_adjust_scroll_value(GtkBufferView *view, GtkAdjustment *adj, GtkOrientation orientation)
+{
+ GtkWidget *widget; /* Autre vision du composant */
+
+ widget = GTK_WIDGET(view);
+
+ if (gtk_widget_get_realized(widget))
+ gdk_window_invalidate_rect(gtk_widget_get_window(widget), NULL, false);
+
+}
+
+
+/******************************************************************************
+* *
* Paramètres : view = composant GTK à consulter. *
* addr = adresse à présenter à l'écran. *
* x = position horizontale au sein du composant. [OUT] *