diff options
Diffstat (limited to 'src/gtkext/gtkbufferview.c')
-rw-r--r-- | src/gtkext/gtkbufferview.c | 61 |
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] * |