[Xfce4-commits] <xfce4-cpufreq-plugin:master> Improve overview window size and layout a bit.
Harald Judt
noreply at xfce.org
Sun Aug 18 11:32:17 CEST 2013
Updating branch refs/heads/master
to 5327de3b636b306439c5ab9943a94f718dba108f (commit)
from f3bfa666503563ea9d0e2fb6ce2e8f1d558d738e (commit)
commit 5327de3b636b306439c5ab9943a94f718dba108f
Author: Harald Judt <h.judt at 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);
More information about the Xfce4-commits
mailing list