[Xfce4-commits] <xfce4-battery-plugin:master> Improve battery UI (again..) wrt HIGs..

Landry Breuil noreply at xfce.org
Sat May 26 09:44:01 CEST 2012


Updating branch refs/heads/master
         to fd70a6269eaa3528af0fcacd86b785091bbb0887 (commit)
       from a2078327512fe9a5797ac3b9168dfd252f0a201d (commit)

commit fd70a6269eaa3528af0fcacd86b785091bbb0887
Author: Landry Breuil <landry at xfce.org>
Date:   Sat May 26 09:38:34 2012 +0200

    Improve battery UI (again..) wrt HIGs..
    
    - pack labels/alignments with a 2px spacing
    - properly hide/show aligments/containers with their childs so that
     space is not wasted when hiding time/perc/source (aligment/box was
    still displayed)
    - improve progressbar sizing to be more inline wrt netload/systemload
    - set border width to 4 like its more or less done in netload/systemload
    (one does BORDER - 2 with BORDER = 6, the other does BORDER / 2 with BORDER = 8..)
    
    Still not perfect, but at least there's a bit more consistency.
    This is an insane spaghetti code..

 panel-plugin/battery.c |   38 ++++++++++++++++++++++++--------------
 1 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/panel-plugin/battery.c b/panel-plugin/battery.c
index e529026..4168f26 100644
--- a/panel-plugin/battery.c
+++ b/panel-plugin/battery.c
@@ -95,6 +95,7 @@ typedef struct
     XfcePanelPlugin *plugin;
 
     GtkWidget        *ebox, *timechargebox, *actempbox;
+    GtkWidget        *timechargealignment, *actempalignment;
     GtkWidget        *battstatus;
     int            timeoutid;    /* To update apm status */
     int            method;
@@ -508,6 +509,7 @@ battmon.c:241: for each function it appears in.)
 
     if(battmon->options.display_percentage && charge > 0 && !(battmon->options.hide_when_full && acline && charge >= 99)){
         gtk_widget_show(GTK_WIDGET(battmon->charge));
+        gtk_widget_show(GTK_WIDGET(battmon->timechargealignment));
         g_snprintf(buffer, sizeof(buffer),"%d%% ", charge);
         gtk_label_set_text(battmon->charge,buffer);
     } else {
@@ -516,12 +518,16 @@ battmon.c:241: for each function it appears in.)
 
     if (battmon->options.display_time && time_remaining > 0 && !(battmon->options.hide_when_full && acline && charge >= 99 )){
         gtk_widget_show(GTK_WIDGET(battmon->rtime));
+        gtk_widget_show(GTK_WIDGET(battmon->timechargealignment));
         g_snprintf(buffer, sizeof(buffer),"%02d:%02d ",time_remaining/60,time_remaining%60);
         gtk_label_set_text(battmon->rtime,buffer);
 
     } else {
         gtk_widget_hide(GTK_WIDGET(battmon->rtime));
     }
+    if ((!battmon->options.display_time && !battmon->options.display_percentage) || (battmon->options.hide_when_full && acline && charge >= 99 )) {
+        gtk_widget_hide(GTK_WIDGET(battmon->timechargealignment));
+    }
 
 
     if(acline) {
@@ -553,6 +559,7 @@ battmon.c:241: for each function it appears in.)
     if(battmon->options.display_power){
       gtk_widget_show(GTK_WIDGET(battmon->acfan));
       gtk_widget_show(GTK_WIDGET(battmon->temp));
+      gtk_widget_show_all(GTK_WIDGET(battmon->actempalignment));
 
       fan=get_fan_status();
       if(acline && fan)
@@ -577,6 +584,7 @@ battmon.c:241: for each function it appears in.)
     } else {
       gtk_widget_hide(GTK_WIDGET(battmon->acfan));
       gtk_widget_hide(GTK_WIDGET(battmon->temp));
+      gtk_widget_hide(GTK_WIDGET(battmon->actempalignment));
     }
 
     gtk_progress_bar_set_text(GTK_PROGRESS_BAR(battmon->battstatus), NULL);
@@ -651,7 +659,6 @@ do_low_warn:
 
 static void setup_battmon(t_battmon *battmon)
 {
-    GtkWidget *alignment;
     GdkPixbuf *icon;
     gint size;
 
@@ -669,7 +676,7 @@ static void setup_battmon(t_battmon *battmon)
                (xfce_panel_plugin_get_orientation(battmon->plugin) == GTK_ORIENTATION_HORIZONTAL ? GTK_PROGRESS_BOTTOM_TO_TOP : GTK_PROGRESS_LEFT_TO_RIGHT));
 
     battmon->label = (GtkLabel *)gtk_label_new(_("Battery"));
-    gtk_box_pack_start(GTK_BOX(battmon->ebox),GTK_WIDGET(battmon->label),FALSE, FALSE, 0);
+    gtk_box_pack_start(GTK_BOX(battmon->ebox),GTK_WIDGET(battmon->label),FALSE, FALSE, 2);
 
     battmon->image = xfce_panel_image_new_from_source("xfce4-battery-plugin");
     xfce_panel_image_set_size(XFCE_PANEL_IMAGE(battmon->image), size);
@@ -684,23 +691,23 @@ static void setup_battmon(t_battmon *battmon)
     /* create the label hvbox with an orientation opposite to the panel */
     battmon->timechargebox = xfce_hvbox_new(!xfce_panel_plugin_get_orientation(battmon->plugin), FALSE, 0);
 
-    alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
-    gtk_container_add (GTK_CONTAINER(alignment), battmon->timechargebox);
-    gtk_box_pack_start(GTK_BOX(battmon->ebox), alignment, FALSE, FALSE, 0);
+    battmon->timechargealignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
+    gtk_container_add (GTK_CONTAINER(battmon->timechargealignment), battmon->timechargebox);
+    gtk_box_pack_start(GTK_BOX(battmon->ebox), battmon->timechargealignment, FALSE, FALSE, 2);
 
     battmon->charge = (GtkLabel *)gtk_label_new("50%%");
-    gtk_box_pack_start(GTK_BOX(battmon->timechargebox),GTK_WIDGET(battmon->charge),TRUE, TRUE, 2);
+    gtk_box_pack_start(GTK_BOX(battmon->timechargebox),GTK_WIDGET(battmon->charge),TRUE, TRUE, 0);
 
     battmon->rtime = (GtkLabel *)gtk_label_new("01:00");
-    gtk_box_pack_start(GTK_BOX(battmon->timechargebox),GTK_WIDGET(battmon->rtime),TRUE, TRUE, 2);
+    gtk_box_pack_start(GTK_BOX(battmon->timechargebox),GTK_WIDGET(battmon->rtime),TRUE, TRUE, 0);
 
     /* ac-fan-temp */
     /* create the label hvbox with an orientation opposite to the panel */
     battmon->actempbox = xfce_hvbox_new(!xfce_panel_plugin_get_orientation(battmon->plugin), FALSE, 0);
 
-    alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
-    gtk_container_add (GTK_CONTAINER(alignment), battmon->actempbox);
-    gtk_box_pack_start(GTK_BOX(battmon->ebox), alignment, FALSE, FALSE, 0);
+    battmon->actempalignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
+    gtk_container_add (GTK_CONTAINER(battmon->actempalignment), battmon->actempbox);
+    gtk_box_pack_start(GTK_BOX(battmon->ebox), battmon->actempalignment, FALSE, FALSE, 2);
 
     battmon->acfan = (GtkLabel *)gtk_label_new("AC FAN");
     gtk_box_pack_start(GTK_BOX(battmon->actempbox),GTK_WIDGET(battmon->acfan),TRUE, TRUE, 0);
@@ -716,6 +723,7 @@ static void setup_battmon(t_battmon *battmon)
     if(!battmon->options.display_power){
         gtk_widget_hide(GTK_WIDGET(battmon->acfan));
         gtk_widget_hide(GTK_WIDGET(battmon->temp));
+        gtk_widget_hide(GTK_WIDGET(battmon->actempalignment));
     }
     if(!battmon->options.display_percentage){
         gtk_widget_hide(GTK_WIDGET(battmon->charge));
@@ -723,7 +731,9 @@ static void setup_battmon(t_battmon *battmon)
     if (!battmon->options.display_time){
         gtk_widget_hide(GTK_WIDGET(battmon->rtime));
     }
-
+    if (!battmon->options.display_time && !battmon->options.display_percentage) {
+        gtk_widget_hide(GTK_WIDGET(battmon->timechargealignment));
+    }
     gtk_widget_show(battmon->ebox);
 
     battmon->battstatus_style = gtk_widget_get_modifier_style(battmon->battstatus);
@@ -987,7 +997,7 @@ battmon_set_size(XfcePanelPlugin *plugin, int size, t_battmon *battmon)
                                 -1, size);
         /* size of the progressbar */
         gtk_widget_set_size_request(GTK_WIDGET(battmon->battstatus),
-                BORDER, size);
+                BORDER, size - BORDER);
     }
     else
     {
@@ -996,10 +1006,10 @@ battmon_set_size(XfcePanelPlugin *plugin, int size, t_battmon *battmon)
                 size, -1);
         /* size of the progressbar */
         gtk_widget_set_size_request(GTK_WIDGET(battmon->battstatus),
-                size, BORDER);
+                size - BORDER, BORDER);
     }
 
-    gtk_container_set_border_width (GTK_CONTAINER (battmon->ebox), (size > 26 ? 2 : 0));
+    gtk_container_set_border_width (GTK_CONTAINER (battmon->ebox), (size > 26 ? BORDER - 2 : 0));
     /* update the icon */
     xfce_panel_image_set_size(XFCE_PANEL_IMAGE(battmon->image), size);
     return TRUE;


More information about the Xfce4-commits mailing list