[glide] Paint slide buttons black



commit 08a9784f529b478f3f9c44027f6c5c837161c23c
Author: Robert Carr <racarr Valentine localdomain>
Date:   Thu Apr 29 03:54:01 2010 -0400

    Paint slide buttons black

 src/glide-slide-button-priv.h |    2 ++
 src/glide-slide-button.c      |   40 ++++++++++++++++++++--------------------
 2 files changed, 22 insertions(+), 20 deletions(-)
---
diff --git a/src/glide-slide-button-priv.h b/src/glide-slide-button-priv.h
index fe6cff9..19a6261 100644
--- a/src/glide-slide-button-priv.h
+++ b/src/glide-slide-button-priv.h
@@ -27,6 +27,8 @@ G_BEGIN_DECLS
 struct _GlideSlideButtonPrivate
 {
   GlideSlide *slide;
+  
+  GtkWidget *drawing_area;
 };
 
 G_END_DECLS
diff --git a/src/glide-slide-button.c b/src/glide-slide-button.c
index 6bd2b1e..f70ed73 100644
--- a/src/glide-slide-button.c
+++ b/src/glide-slide-button.c
@@ -28,23 +28,19 @@ enum {
   PROP_SLIDE
 };
 
-static void
-glide_slide_button_update_label (GlideSlideButton *b)
-{
-  gchar *label = g_strdup_printf("%u", glide_slide_get_index (b->priv->slide));
-  
-  gtk_button_set_label (GTK_BUTTON (b), label);
-  g_free (label);
-}
 
-static void
-glide_slide_button_slide_index_changed_cb (GObject *object,
-					   GParamSpec *pspec,
-					   gpointer user_data)
+static gboolean
+glide_slide_button_drawing_area_expose (GtkWidget *drawing_area,
+					GdkEventExpose *event,
+					gpointer user_data)
 {
-  GlideSlideButton *b = (GlideSlideButton *)user_data;
-
-  glide_slide_button_update_label (b);
+  cairo_t *cr = gdk_cairo_create (gtk_widget_get_window (drawing_area));
+  
+  cairo_set_source_rgba (cr, 0, 0, 0, 1);
+  cairo_rectangle (cr, 0, 0, 80, 60);
+  cairo_fill (cr);
+  
+  return FALSE;
 }
 
 static void
@@ -104,8 +100,17 @@ static void
 glide_slide_button_init (GlideSlideButton *button)
 {
   button->priv = GLIDE_SLIDE_BUTTON_GET_PRIVATE (button);
+
+  button->priv->drawing_area = gtk_drawing_area_new ();
+  gtk_container_add (GTK_CONTAINER (button), button->priv->drawing_area);
+  gtk_widget_show (GTK_WIDGET (button->priv->drawing_area));
   
   g_signal_connect (button, "clicked", G_CALLBACK (glide_slide_button_clicked), NULL);
+  g_signal_connect (button->priv->drawing_area, "expose-event",
+		    G_CALLBACK (glide_slide_button_drawing_area_expose),
+		    button);
+  
+  gtk_widget_set_size_request (button->priv->drawing_area, 80, 60);
 }
 
 static void
@@ -147,9 +152,4 @@ glide_slide_button_set_slide (GlideSlideButton *button,
 {
   button->priv->slide = slide;
   g_object_notify (G_OBJECT (button), "slide");
-  
-  glide_slide_button_update_label (button);
-  g_signal_connect (slide, "notify::index",
-		    G_CALLBACK (glide_slide_button_slide_index_changed_cb),
-		    button);
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]