diff options
Diffstat (limited to 'src/gtkext/graph')
-rw-r--r-- | src/gtkext/graph/edge.c | 41 |
1 files changed, 37 insertions, 4 deletions
diff --git a/src/gtkext/graph/edge.c b/src/gtkext/graph/edge.c index 93f020b..b74c049 100644 --- a/src/gtkext/graph/edge.c +++ b/src/gtkext/graph/edge.c @@ -30,6 +30,9 @@ #include <string.h> +#include "../../core/params.h" + + /* Lien graphique entre deux noeuds graphiques (instance) */ struct _GGraphEdge @@ -470,32 +473,62 @@ bool g_graph_edge_detect_at(const GGraphEdge *edge, gint x, gint y) void g_graph_edge_draw(const GGraphEdge *edge, cairo_t *cairo, bool arrow, bool selected) { + GGenConfig *config; /* Configuration globale */ + GdkRGBA color; /* Couleur de lien définie */ +#ifndef NDEBUG + bool status; /* Validité d'une couleur */ +#endif size_t i; /* Boucle de parcours */ if (selected) cairo_set_source_rgb(cairo, 1.0, 1.0, 1.0); else + { + config = get_main_configuration(); + switch (edge->color) { default: case EGC_DEFAULT: - cairo_set_source_rgb(cairo, 0, 0, 0); +#ifndef NDEBUG + status = g_generic_config_get_value(config, MPK_LINK_DEFAULT, &color); +#else + g_generic_config_get_value(config, MPK_LINK_DEFAULT, &color); +#endif break; case EGC_GREEN: - cairo_set_source_rgb(cairo, 0, 0.6, 0); +#ifndef NDEBUG + status = g_generic_config_get_value(config, MPK_LINK_BRANCH_TRUE, &color); +#else + g_generic_config_get_value(config, MPK_LINK_BRANCH_TRUE, &color); +#endif break; case EGC_RED: - cairo_set_source_rgb(cairo, 0.8, 0, 0); +#ifndef NDEBUG + status = g_generic_config_get_value(config, MPK_LINK_BRANCH_FALSE, &color); +#else + g_generic_config_get_value(config, MPK_LINK_BRANCH_FALSE, &color); +#endif break; case EGC_BLUE: - cairo_set_source_rgb(cairo, 0, 0, 0.8); +#ifndef NDEBUG + status = g_generic_config_get_value(config, MPK_LINK_LOOP, &color); +#else + g_generic_config_get_value(config, MPK_LINK_LOOP, &color); +#endif break; case EGC_DASHED_GRAY: cairo_set_source_rgb(cairo, 0.4, 0.4, 0.4); break; } + assert(status); + + cairo_set_source_rgba(cairo, color.red, color.green, color.blue, color.alpha); + + } + switch (edge->color) { default: |