summaryrefslogtreecommitdiff
path: root/src/gtkext
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2017-12-29 14:46:46 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2017-12-29 14:47:47 (GMT)
commit5c4811a65eedda9dd95137337dc6304eb8cd051d (patch)
treec2e1e3ef226815c1ded30671590642436d75618a /src/gtkext
parent190f66ab3a2c8bdf2f56b2f590afe49461e6cf24 (diff)
Fixed compilation warnings by replacing GTK deprecated functions in display panels.
Diffstat (limited to 'src/gtkext')
-rw-r--r--src/gtkext/gtkbufferdisplay-int.h2
-rw-r--r--src/gtkext/gtkbufferdisplay.c98
-rw-r--r--src/gtkext/gtkdisplaypanel.c4
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);