Use slight gradient for background
authorArtem Garmash <artemgarmash@gmail.com>
Sat, 24 Oct 2009 16:55:00 +0000 (19:55 +0300)
committerArtem Garmash <artem.garmash@nokia.com>
Sun, 27 Jun 2010 19:13:39 +0000 (22:13 +0300)
src/el-home-applet.c

index 5835938..b42ccd4 100644 (file)
@@ -33,7 +33,7 @@
                 EL_TYPE_HOME_APPLET, ELHomeAppletPrivate))
 
 #define BOX_WIDTH 352
-#define BOX_HEIGHT 252
+#define BOX_HEIGHT 266
 
 #define C_WIDTH (BOX_WIDTH - 2*HILDON_MARGIN_HALF)
 #define C_HEIGHT (BOX_HEIGHT - 2*HILDON_MARGIN_HALF)
@@ -148,6 +148,7 @@ expose_event (GtkWidget *self, GdkEventExpose *event)
         gdk_cairo_region (cr, event->region);
         cairo_clip (cr);
 
+        /* draw bound box */
         cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
 
         cairo_set_source_rgba (cr, 0.4f, 0.4f, 0.4f, 0.1f);
@@ -163,6 +164,7 @@ expose_event (GtkWidget *self, GdkEventExpose *event)
         cairo_close_path(cr);
         cairo_stroke (cr);
 
+        /* draw header */
         cairo_set_line_width (cr, 1.0f);
 
         cairo_translate (cr, C_X, C_Y);
@@ -181,6 +183,7 @@ expose_event (GtkWidget *self, GdkEventExpose *event)
         cairo_set_source_rgba (cr, red, green, blue, 1.0f);
         cairo_stroke (cr);
 
+        /* draw body */
         cairo_move_to (cr, 0, HEADER_HEIGHT);
         cairo_line_to (cr, 0, C_HEIGHT - BOX_RADIOUS);
         cairo_curve_to (cr, 0, C_HEIGHT, 0, C_HEIGHT, BOX_RADIOUS, C_HEIGHT);
@@ -190,10 +193,24 @@ expose_event (GtkWidget *self, GdkEventExpose *event)
         cairo_line_to (cr, 0, HEADER_HEIGHT);
         cairo_close_path(cr);
 
-        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);
         cairo_fill (cr);
 
         /* cairo_set_source_rgba (cr, red, green, blue, 1.0f); */
@@ -206,7 +223,7 @@ expose_event (GtkWidget *self, GdkEventExpose *event)
         /*                    BOX_RADIOUS); */
         /* cairo_close_path(cr); */
         /* cairo_stroke (cr); */
-
+        cairo_pattern_destroy (grad);
         cairo_destroy (cr);
 
         return GTK_WIDGET_CLASS (el_home_applet_parent_class)->expose_event (self, event);