- if (priv->active)
- cairo_set_source_rgba (cr, red, green, blue, 0.8f);
- else
- cairo_set_source_rgba (cr, 0.4f, 0.4f, 0.4f, 0.8f);
+ /* draw body filling depending on (in)active state */
+ cairo_pattern_t *grad;
+ grad = cairo_pattern_create_linear(0, HEADER_HEIGHT,
+ 0, C_HEIGHT);
+
+ if (priv->active){
+ cairo_pattern_add_color_stop_rgba (grad, 0.5f,
+ red, green, blue, 0.8f);
+ cairo_pattern_add_color_stop_rgba (grad, 1.0f,
+ red/2, green/2, blue/2, 0.8f);
+ }
+ else {
+ cairo_pattern_add_color_stop_rgba (grad, 0.5f,
+ 0.4f, 0.4f, 0.4f, 0.8f);
+ cairo_pattern_add_color_stop_rgba (grad, 1.0f,
+ 0.2f, 0.2f, 0.2f, 0.8f);
+ }
+ cairo_set_source (cr, grad);