diff options
Diffstat (limited to 'baobab/src/baobab-cell-renderer-progress.c')
| -rw-r--r-- | baobab/src/baobab-cell-renderer-progress.c | 37 | 
1 files changed, 37 insertions, 0 deletions
| diff --git a/baobab/src/baobab-cell-renderer-progress.c b/baobab/src/baobab-cell-renderer-progress.c index 91fbe440..d4d26db5 100644 --- a/baobab/src/baobab-cell-renderer-progress.c +++ b/baobab/src/baobab-cell-renderer-progress.c @@ -146,6 +146,42 @@ baobab_cell_renderer_progress_get_size (GtkCellRenderer *cell,  static void  set_color_according_to_perc (cairo_t *cr, double value)  { +#if GTK_CHECK_VERSION (3, 0, 0) +  static GdkRGBA red; +  static GdkRGBA yellow; +  static GdkRGBA green; +  static gboolean colors_initialized = FALSE; + +  if (!colors_initialized) +    { +      /* hardcoded tango colors */ +      gdk_rgba_parse (&red, "#cc0000"); +      gdk_rgba_parse (&yellow, "#edd400"); +      gdk_rgba_parse (&green, "#73d216"); + +      colors_initialized = TRUE; +    } + +  if (value <= 0) +    { +      cairo_set_source_rgb (cr, 1, 1, 1); +      return; +    } +  else if (value <= 33.33) +    { +      gdk_cairo_set_source_rgba (cr, &green); +      return; +    } +  else if (value <= 66.66) +    { +      gdk_cairo_set_source_rgba (cr, &yellow); +      return; +    } +  else if (value <= 100.0) +    { +      gdk_cairo_set_source_rgba (cr, &red); +      return; +#else    static GdkColor red;    static GdkColor yellow;    static GdkColor green; @@ -180,6 +216,7 @@ set_color_according_to_perc (cairo_t *cr, double value)      {        gdk_cairo_set_source_color (cr, &red);        return; +#endif      }    else      g_assert_not_reached (); | 
