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

ken_zhao at gta01.hmw-consulting.de ken_zhao at gta01.hmw-consulting.de
Wed Dec 6 09:07:39 CET 2006


Author: ken_zhao
Date: 2006-12-06 08:07:34 +0000 (Wed, 06 Dec 2006)
New Revision: 315

Modified:
   trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.c
Log:
moko-pixmap-button: adjust label width/height on toolbox action button


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-06 07:47:12 UTC (rev 314)
+++ trunk/src/target/OM-2007/openmoko-libs/libmokoui/moko-pixmap-button.c	2006-12-06 08:07:34 UTC (rev 315)
@@ -37,6 +37,8 @@
 {
     GtkMenu *menu;
     GtkWidget *buttonvbox;
+    GtkWidget *actionbtnlowerlabel;
+    GtkWidget *actionbtnstockimage;
 } MokoPixmapButtonPrivate;
 
 static void
@@ -102,7 +104,7 @@
 static void
 cb_button_clicked(MokoPixmapButton* self, gpointer data)
 {
-    MokoPixmapButtonPrivate *priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE(self);
+    MokoPixmapButtonPrivate *priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE (self);
 
     if (!priv->menu)
         return;
@@ -120,7 +122,7 @@
 static void
 moko_pixmap_button_init (MokoPixmapButton *self)
 {
-    MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE(self);
+    MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE (self);
     
     moko_debug( "moko_pixmap_button_init" );
     gtk_button_set_focus_on_click( GTK_BUTTON(self), FALSE ); //FIXME probably don't need this when focus is invisible
@@ -160,6 +162,16 @@
             GtkRequisition child_requisition;
             gtk_widget_size_request (GTK_BIN (button)->child, &child_requisition);
         }
+        
+        //Set label width/height on action button for better view
+        //FIXME try to adjust alignment to implement this fuction.
+        MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE (widget);
+        if ( priv->actionbtnlowerlabel )
+        {
+            //gtk_widget_set_size_request(priv->actionbtnstockimage, size_request->right, size_request->bottom/2 - 1);
+            gtk_widget_set_size_request(priv->actionbtnlowerlabel, size_request->right, size_request->bottom/2 + 1);
+        }
+        
     }
     else // old dynamic routine
     {
@@ -199,7 +211,7 @@
 void
 moko_pixmap_button_set_menu (MokoPixmapButton* self, GtkMenu* menu)
 {
-    MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE(self);
+    MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE (self);
     g_assert( !priv->menu ); //FIXME what's canon for these things? a) Error out or b) just don't do it or c) free the old menu and set the new one?
     priv->menu = menu;
 }
@@ -208,31 +220,37 @@
 void
 moko_pixmap_button_set_action_btn_upper_stock (MokoPixmapButton* self, const gchar *stock_name)
 {
-    MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE(self);
+    MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE (self);
 	  
+	  if ( priv->actionbtnstockimage )
+	      return;
+	  
 	  GtkWidget *upperalignment = gtk_alignment_new (1, 0.5, 0, 0);
     gtk_box_pack_start (GTK_BOX (priv->buttonvbox), upperalignment, TRUE, TRUE, 0);
     
-    GtkWidget *stock_image = gtk_image_new_from_stock (stock_name, GTK_ICON_SIZE_BUTTON);
-    gtk_container_add (GTK_CONTAINER (upperalignment), stock_image);
+    priv->actionbtnstockimage = gtk_image_new_from_stock (stock_name, GTK_ICON_SIZE_BUTTON);
+    gtk_container_add (GTK_CONTAINER (upperalignment), priv->actionbtnstockimage);
 	  
-    gtk_misc_set_alignment (GTK_MISC (stock_image), 1, 0.2);
+    gtk_misc_set_alignment (GTK_MISC (priv->actionbtnstockimage), 0.5, 0);
 }
 
 void
 moko_pixmap_button_set_action_btn_lower_label (MokoPixmapButton* self, const gchar *label)
 {
+    MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE (self);
+
+	  if ( priv->actionbtnlowerlabel )
+	      return;
     
-    MokoPixmapButtonPrivate* priv = MOKO_PIXMAP_BUTTON_GET_PRIVATE(self);
-    
     GtkWidget *loweralignment = gtk_alignment_new (1, 0.5, 0, 0);
     gtk_box_pack_start (GTK_BOX (priv->buttonvbox), loweralignment, TRUE, TRUE, 0);
     
-    GtkWidget *lowerlabel = gtk_label_new (label);
-    gtk_container_add (GTK_CONTAINER (loweralignment), lowerlabel);
+    priv->actionbtnlowerlabel = gtk_label_new (label);
     
-    gtk_misc_set_alignment (GTK_MISC (lowerlabel), 0.5, 0);
+    gtk_container_add (GTK_CONTAINER (loweralignment), priv->actionbtnlowerlabel);
     
+    gtk_misc_set_alignment (GTK_MISC (priv->actionbtnlowerlabel), 0.5, 0);
+    
 }
 
 





More information about the commitlog mailing list