r418 - trunk/src/target/OM-2007/openmoko-libs/libmokoui

ken_zhao at gta01.hmw-consulting.de ken_zhao at gta01.hmw-consulting.de
Fri Dec 15 05:24:16 CET 2006


Author: ken_zhao
Date: 2006-12-15 05:24:12 +0100 (Fri, 15 Dec 2006)
New Revision: 418

Modified:
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.c
Log:
mokoui:allow user to change finger toolbox button image


Modified: trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.c
===================================================================
--- trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.c	2006-12-15 04:10:40 UTC (rev 417)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.c	2006-12-15 04:24:12 UTC (rev 418)
@@ -41,6 +41,7 @@
     GtkWidget *actionbtnlowerlabel;
     GtkWidget *actionbtnstockimage;
     GtkWidget *fingertoolboxbtnimage;
+    GtkWidget *fingertoolboxbtnloweralignment;
 } MokoPixmapButtonPrivate;
 
 static void
@@ -289,22 +290,26 @@
 {
     MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE (self);
 	  
-    if ( priv->fingertoolboxbtnimage )
-        return;
-
-    GtkWidget *upperalignment = gtk_alignment_new (1, 0.5, 0, 0);
-    gtk_box_pack_start (GTK_BOX (priv->buttonvbox), upperalignment, TRUE, TRUE, 0);
-
-    GtkWidget *loweralignment = gtk_alignment_new (1, 0.5, 0, 0);
-    gtk_box_pack_start (GTK_BOX (priv->buttonvbox), loweralignment, TRUE, TRUE, 0);
-    
     GdkPixbuf *src_pixbuf, *dest_pixbuf;
     src_pixbuf = gtk_image_get_pixbuf (image);
     dest_pixbuf = gdk_pixbuf_scale_simple (src_pixbuf, 35, 35, GDK_INTERP_NEAREST);
+
+    if ( priv->fingertoolboxbtnimage == NULL )
+    {
+        GtkWidget *upperalignment = gtk_alignment_new (1, 0.5, 0, 0);
+        gtk_box_pack_start (GTK_BOX (priv->buttonvbox), upperalignment, TRUE, TRUE, 0);
+
+        priv->fingertoolboxbtnloweralignment = gtk_alignment_new (1, 0.5, 0, 0);
+        gtk_box_pack_start (GTK_BOX (priv->buttonvbox), priv->fingertoolboxbtnloweralignment, TRUE, TRUE, 0);
     
-    priv->fingertoolboxbtnimage = gtk_image_new_from_pixbuf (dest_pixbuf);;
-    gtk_container_add (GTK_CONTAINER (loweralignment), priv->fingertoolboxbtnimage);
+    }
+    else
+    {
+        gtk_container_remove (GTK_CONTAINER (priv->fingertoolboxbtnloweralignment), priv->fingertoolboxbtnimage);
+    }
 	  
+    priv->fingertoolboxbtnimage = gtk_image_new_from_pixbuf (dest_pixbuf);
+    gtk_container_add (GTK_CONTAINER (priv->fingertoolboxbtnloweralignment), priv->fingertoolboxbtnimage);
     gtk_misc_set_alignment (GTK_MISC (priv->fingertoolboxbtnimage), 0.5, 0);
 }
 





More information about the commitlog mailing list