Updating branch refs/heads/master
         to 5327de3b636b306439c5ab9943a94f718dba108f (commit)
       from f3bfa666503563ea9d0e2fb6ce2e8f1d558d738e (commit)

commit 5327de3b636b306439c5ab9943a94f718dba108f
Author: Harald Judt <h.j...@gmx.at>
Date:   Sun Aug 11 14:59:40 2013 +0200

    Improve overview window size and layout a bit.
    
    With many CPUs, the window will not even fit on a HD screen. Try to handle 
this
    a bit better; this solution is not optimal and will only be good enough for
    nowaday's multi-core machines.

 panel-plugin/xfce4-cpufreq-overview.c |   66 ++++++++++++++++++++++-----------
 1 file changed, 44 insertions(+), 22 deletions(-)

diff --git a/panel-plugin/xfce4-cpufreq-overview.c 
b/panel-plugin/xfce4-cpufreq-overview.c
index c9d5a74..9127fd6 100644
--- a/panel-plugin/xfce4-cpufreq-overview.c
+++ b/panel-plugin/xfce4-cpufreq-overview.c
@@ -47,17 +47,20 @@ cpufreq_overview_add (CpuInfo *cpu, guint cpu_number, 
GtkWidget *dialog_hbox)
        dialog_vbox = gtk_vbox_new (FALSE, BORDER);
        gtk_box_pack_start (GTK_BOX (dialog_hbox), dialog_vbox, TRUE, TRUE, 0);
 
+       hbox = gtk_hbox_new (FALSE, BORDER);
+       gtk_box_pack_start (GTK_BOX (dialog_vbox), hbox, TRUE, TRUE, 0);
+
+       icon = gtk_image_new_from_icon_name ("xfce4-cpufreq-plugin", 
GTK_ICON_SIZE_BUTTON);
+       gtk_misc_set_alignment (GTK_MISC (icon), 1, 0.5);
+       gtk_misc_set_padding (GTK_MISC (icon), 5, 10);
+       gtk_box_pack_start (GTK_BOX (hbox), icon, TRUE, TRUE, 0);
        text = g_strdup_printf ("<b>CPU %d</b>", cpu_number);
        label = gtk_label_new (text);
-       gtk_box_pack_start (GTK_BOX (dialog_vbox), label, FALSE, FALSE, 0);
+       gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
+       gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
        gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
        g_free (text);
 
-       icon = gtk_image_new_from_icon_name ("xfce4-cpufreq-plugin", 
GTK_ICON_SIZE_BUTTON);
-       gtk_box_pack_start (GTK_BOX (dialog_vbox), icon, FALSE, FALSE, 0);
-       gtk_misc_set_alignment (GTK_MISC (icon), 0.5, 0);
-       gtk_misc_set_padding (GTK_MISC (icon), 10, 10);
-
        /* display driver */
        hbox = gtk_hbox_new (FALSE, BORDER);
        gtk_box_pack_start (GTK_BOX (dialog_vbox), hbox, FALSE, FALSE, 0);
@@ -181,7 +184,7 @@ cpufreq_overview_response (GtkWidget *dialog, gint 
response, gpointer data)
 gboolean
 cpufreq_overview (GtkWidget *widget, GdkEventButton *ev, CpuFreqPlugin 
*cpuFreq)
 {
-       gint      i;
+       gint      i, j, step;
        GtkWidget *dialog, *dialog_vbox, *window;
        GtkWidget *dialog_hbox, *separator;
 
@@ -217,23 +220,42 @@ cpufreq_overview (GtkWidget *widget, GdkEventButton *ev, 
CpuFreqPlugin *cpuFreq)
 
        dialog_vbox = GTK_DIALOG (dialog)->vbox;
 
-       dialog_hbox = gtk_hbox_new (FALSE, BORDER);
-       gtk_box_pack_start (GTK_BOX (dialog_vbox), dialog_hbox, FALSE, FALSE, 
0);
-       gtk_container_set_border_width (GTK_CONTAINER (dialog_hbox), BORDER);
-
-       for (i = 0; i < cpuFreq->cpus->len;)
-       {
-               CpuInfo *cpu = g_ptr_array_index (cpuFreq->cpus, i);
-               cpufreq_overview_add (cpu, i, dialog_hbox);
-
-               if (++i != cpuFreq->cpus->len)
-               {
-                       separator = gtk_vseparator_new ();
-                       gtk_box_pack_start (GTK_BOX (dialog_hbox), separator, 
FALSE, FALSE, 0);
+       /* choose how many columns and rows depending on cpu count */
+       if (cpuFreq->cpus->len < 4)
+               step = 1;
+       else if (cpuFreq->cpus->len < 9)
+               step = 2;
+       else if (cpuFreq->cpus->len % 3)
+               step = 4;
+       else
+               step = 3;
+
+       for (i = 0; i < cpuFreq->cpus->len; i += step) {
+               dialog_hbox = gtk_hbox_new (FALSE, BORDER * 2);
+               gtk_box_pack_start (GTK_BOX (dialog_vbox), dialog_hbox,
+                                                       FALSE, FALSE, BORDER * 
2);
+               gtk_container_set_border_width (GTK_CONTAINER (dialog_hbox),
+                                                                               
BORDER * 2);
+
+               for (j = i; j < cpuFreq->cpus->len && j < i + step; j++) {
+                       CpuInfo *cpu = g_ptr_array_index (cpuFreq->cpus, j);
+                       cpufreq_overview_add (cpu, j, dialog_hbox);
+
+                       if (j + 1 < cpuFreq->cpus->len && j + 1 == i + step) {
+                               separator = gtk_hseparator_new ();
+                               gtk_box_pack_start (GTK_BOX (dialog_vbox), 
separator,
+                                                                       FALSE, 
FALSE, 0);
+                       }
+
+                       if (j + 1 < cpuFreq->cpus->len && j + 1 < i + step) {
+                               separator = gtk_vseparator_new ();
+                               gtk_box_pack_start (GTK_BOX (dialog_hbox), 
separator,
+                                                                       FALSE, 
FALSE, 0);
+                       }
                }
        }
-
-       g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK 
(cpufreq_overview_response), NULL);
+       g_signal_connect (G_OBJECT (dialog), "response",
+                                         G_CALLBACK 
(cpufreq_overview_response), NULL);
 
        gtk_widget_show_all (dialog);
 
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to