diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2017-12-29 14:46:46 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2017-12-29 14:47:47 (GMT) |
commit | 5c4811a65eedda9dd95137337dc6304eb8cd051d (patch) | |
tree | c2e1e3ef226815c1ded30671590642436d75618a /src/gtkext | |
parent | 190f66ab3a2c8bdf2f56b2f590afe49461e6cf24 (diff) |
Fixed compilation warnings by replacing GTK deprecated functions in display panels.
Diffstat (limited to 'src/gtkext')
-rw-r--r-- | src/gtkext/gtkbufferdisplay-int.h | 2 | ||||
-rw-r--r-- | src/gtkext/gtkbufferdisplay.c | 98 | ||||
-rw-r--r-- | src/gtkext/gtkdisplaypanel.c | 4 |
3 files changed, 24 insertions, 80 deletions
diff --git a/src/gtkext/gtkbufferdisplay-int.h b/src/gtkext/gtkbufferdisplay-int.h index d77452a..d4084af 100644 --- a/src/gtkext/gtkbufferdisplay-int.h +++ b/src/gtkext/gtkbufferdisplay-int.h @@ -43,7 +43,7 @@ struct _GtkBufferDisplay GBufferView *view; /* Vue sur le contenu affiché */ - GdkRectangle caret; /* Emplacement du curseur */ + cairo_rectangle_int_t caret; /* Emplacement du curseur */ vmpa2t caret_addr; /* Position mémoire du curseur */ guint caret_timer; /* Identifiant du chronomètre */ bool show_caret; /* Bascule entre les affichages*/ diff --git a/src/gtkext/gtkbufferdisplay.c b/src/gtkext/gtkbufferdisplay.c index c1311c5..fca0360 100644 --- a/src/gtkext/gtkbufferdisplay.c +++ b/src/gtkext/gtkbufferdisplay.c @@ -85,7 +85,7 @@ static void gtk_buffer_display_cache_glance(GtkBufferDisplay *, cairo_t *, const static bool _gtk_buffer_display_move_caret_to(GtkBufferDisplay *, gint, gint); /* Déplace le curseur en effaçant son éventuelle position. */ -static void gtk_buffer_display_relocate_caret(GtkBufferDisplay *, const GdkRectangle *, const vmpa2t *); +static void gtk_buffer_display_relocate_caret(GtkBufferDisplay *, const cairo_rectangle_int_t *, const vmpa2t *); /* Redémarre l'affichage du curseur à l'emplacement courant. */ static void gtk_buffer_display_restart_caret_blinking(GtkBufferDisplay *); @@ -329,46 +329,9 @@ static gboolean gtk_buffer_display_draw(GtkWidget *widget, cairo_t *cr) gint virt_y; /* Ordonnée virtuelle */ GBufferCache *cache; /* Contenu représenté */ gint left_margin; /* Marge gauche + espace */ - GdkRGBA color; /* Couleur de thème récupérée */ bool sel_line; /* Souslignage de la sélection */ gint *selected; /* Ordonnée d'une sélection */ - - //gboolean status; - - - GtkStyleContext *other; - GtkWidgetPath *path; - - - other = gtk_style_context_new(); - - - path = gtk_widget_path_new (); - gtk_widget_path_append_type (path, GTK_TYPE_SCALE); - //gtk_widget_path_iter_add_class (path, 0, "slider"); - //gtk_widget_path_iter_add_class (path, 0, "scale"); - gtk_style_context_set_path (other, path); - gtk_widget_path_free (path); - - - - - //context = gtk_widget_get_style_context(widget); - - - //gtk_render_background(context, cr, 0, 0, 1000, 1000); - - - //status = GTK_WIDGET_CLASS(gtk_buffer_display_parent_class)->draw(widget, cr); - - //printf("status: %d\n", status); - - //return TRUE; - - - - display = GTK_BUFFER_DISPLAY(widget); parent = GTK_DISPLAY_PANEL(widget); @@ -389,12 +352,6 @@ static gboolean gtk_buffer_display_draw(GtkWidget *widget, cairo_t *cr) cairo_clip(cr); } - - - gtk_render_background(context, cr, area.x, area.y, area.width, area.height); - - - /* Décallage pour le défilement horizontal */ virt_x = 0; @@ -413,39 +370,25 @@ static gboolean gtk_buffer_display_draw(GtkWidget *widget, cairo_t *cr) g_object_unref(G_OBJECT(cache)); - /* Dessin de la marge gauche */ gtk_style_context_save(context); - gtk_style_context_add_class(other, GTK_STYLE_CLASS_TOOLBAR); + gtk_style_context_add_class(context, GTK_STYLE_CLASS_SIDEBAR); - gtk_style_context_get_background_color(other, GTK_STATE_FLAG_ACTIVE, &color); - - cairo_set_source_rgba(cr, color.red, color.green, color.blue, color.alpha); - //cairo_set_source_rgba(cr, 1.0, 0.0, 0.0, 1.0); - - cairo_rectangle(cr, 0, area.y, left_margin, area.height); - cairo_fill(cr); + gtk_render_background(context, cr, 0, area.y, left_margin, area.height); gtk_style_context_restore(context); /* Fond de la zone de texte */ -#if 1 gtk_style_context_save(context); gtk_style_context_add_class(context, GTK_STYLE_CLASS_VIEW); - gtk_style_context_get_background_color(context, GTK_STATE_FLAG_ACTIVE, &color); - - cairo_set_source_rgba(cr, color.red, color.green, color.blue, color.alpha * 0.7); - - cairo_rectangle(cr, left_margin, area.y, area.width, area.height); - cairo_fill(cr); + gtk_render_background(context, cr, left_margin, area.y, area.width, area.height); gtk_style_context_restore(context); -#endif /* Ligne de séparation */ @@ -453,15 +396,7 @@ static gboolean gtk_buffer_display_draw(GtkWidget *widget, cairo_t *cr) gtk_style_context_add_class(context, GTK_STYLE_CLASS_FRAME); - gtk_style_context_get_border_color(context, GTK_STATE_FLAG_ACTIVE, &color); - - cairo_set_source_rgba(cr, color.red, color.green, color.blue, color.alpha); - - cairo_set_line_width(cr, 1.0); - - cairo_move_to(cr, left_margin + 0.5, area.y - 0.5); - cairo_line_to(cr, left_margin + 0.5, area.y + area.height + 0.5); - cairo_stroke(cr); + gtk_render_frame(context, cr, - 0.5, area.y - 1, left_margin + 0.5, area.height + 2); gtk_style_context_restore(context); @@ -500,7 +435,7 @@ static gboolean gtk_buffer_display_draw(GtkWidget *widget, cairo_t *cr) if (gtk_widget_is_focus(widget)) { view->show_caret = !view->show_caret; - gtk_buffer_view_refresh_caret(view); + gtk_buffer_display_refresh_caret(view); } */ @@ -531,7 +466,7 @@ static gboolean gtk_buffer_display_key_press(GtkWidget *widget, GdkEventKey *eve GtkBufferDisplay *display; /* Autre version du composant */ GtkDisplayPanel *panel; /* Autre version du composant */ bool ctrl; /* Statut de la touche Contrôle*/ - GdkRectangle area; /* Emplacement de curseur */ + cairo_rectangle_int_t area; /* Emplacement de curseur */ vmpa2t addr; /* Adresse du nouveau curseur */ bool status; /* Validité d'un déplacement */ @@ -870,7 +805,7 @@ static bool _gtk_buffer_display_move_caret_to(GtkBufferDisplay *display, gint x, bool result; /* Bilan à retourner */ GtkDisplayPanel *panel; /* Autre version du composant */ vmpa2t addr; /* Position mémoire associée */ - GdkRectangle new; /* Nouvel emplacement calculé */ + cairo_rectangle_int_t new; /* Nouvel emplacement calculé */ panel = GTK_DISPLAY_PANEL(display); @@ -951,10 +886,10 @@ bool gtk_buffer_display_move_caret_to(GtkBufferDisplay *display, bool beginning, * * ******************************************************************************/ -static void gtk_buffer_display_relocate_caret(GtkBufferDisplay *display, const GdkRectangle *area, const vmpa2t *addr) +static void gtk_buffer_display_relocate_caret(GtkBufferDisplay *display, const cairo_rectangle_int_t *area, const vmpa2t *addr) { bool clear_old; /* Effacement chirurgical */ - GdkRectangle old_area; /* Mémorisation de l'ancien */ + cairo_rectangle_int_t old_area; /* Mémorisation de l'ancien */ bool need_redraw; /* Besoin de rafraîchissement ?*/ if (!is_invalid_vmpa(&display->caret_addr)) @@ -1052,7 +987,9 @@ static gboolean gtk_buffer_display_refresh_caret(GtkBufferDisplay *display) { GtkWidget *widget; /* Autre version du composant */ GdkWindow *window; /* Fenêtre de support associée */ - GdkRectangle area; /* Région adaptée à traiter */ + cairo_rectangle_int_t area; /* Zone adaptée à traiter */ + cairo_region_t *region; /* Région définie associée */ + GdkDrawingContext *drawing; /* Mécanisme de dessins */ cairo_t *cr; /* Contexte graphique */ GdkRGBA *color; /* Couleur du curseur */ @@ -1085,7 +1022,10 @@ static gboolean gtk_buffer_display_refresh_caret(GtkBufferDisplay *display) { display->show_caret = true; - cr = gdk_cairo_create(gtk_widget_get_window(widget)); + region = cairo_region_create_rectangle(&area); + + drawing = gdk_window_begin_draw_frame(window, region); + cr = gdk_drawing_context_get_cairo_context(drawing); gtk_style_context_get(gtk_widget_get_style_context(widget), gtk_widget_get_state_flags(widget), @@ -1096,7 +1036,9 @@ static gboolean gtk_buffer_display_refresh_caret(GtkBufferDisplay *display) cairo_rectangle(cr, area.x, area.y, area.width, area.height); cairo_fill(cr); - cairo_destroy(cr); + gdk_window_end_draw_frame(window, drawing); + + cairo_region_destroy(region); } diff --git a/src/gtkext/gtkdisplaypanel.c b/src/gtkext/gtkdisplaypanel.c index 620a1b1..e6efba6 100644 --- a/src/gtkext/gtkdisplaypanel.c +++ b/src/gtkext/gtkdisplaypanel.c @@ -791,7 +791,9 @@ void gtk_display_panel_draw_border(GtkDisplayPanel *panel, cairo_t *cr) gtk_style_context_add_class(context, GTK_STYLE_CLASS_FRAME); - gtk_style_context_get_border_color(context, GTK_STATE_FLAG_ACTIVE, &color); + gtk_style_context_get(gtk_widget_get_style_context(widget), + gtk_widget_get_state_flags(widget), + GTK_STYLE_PROPERTY_COLOR, &color, NULL); cairo_set_source_rgba(cr, color.red, color.green, color.blue, color.alpha); |