Updating branch refs/heads/master
         to 65bb883aa1da7b13567d4a953fe1210bbcaff07a (commit)
       from 3b832bea98e996ca02520e922b975f91e59be1ec (commit)

commit 65bb883aa1da7b13567d4a953fe1210bbcaff07a
Author: Harald Judt <[email protected]>
Date:   Sun Aug 11 00:28:26 2013 +0200

    Add option to keep the plugin compact.
    
    This allows to toggle the single row / "panel small" property.
    Let's also remove the cruft that is the version check for older panels.
    panel >=4.9 is required now.

 panel-plugin/xfce4-cpufreq-configure.c |    9 +++
 panel-plugin/xfce4-cpufreq-configure.h |   12 +++-
 panel-plugin/xfce4-cpufreq-plugin.c    |  111 +++++++++++++++++++-------------
 panel-plugin/xfce4-cpufreq-plugin.h    |    2 +
 4 files changed, 85 insertions(+), 49 deletions(-)

diff --git a/panel-plugin/xfce4-cpufreq-configure.c 
b/panel-plugin/xfce4-cpufreq-configure.c
index 60af8a7..7d68d85 100644
--- a/panel-plugin/xfce4-cpufreq-configure.c
+++ b/panel-plugin/xfce4-cpufreq-configure.c
@@ -57,6 +57,10 @@ check_button_changed (GtkWidget *button, 
CpuFreqPluginConfigure *configure)
                cpuFreq->options->show_label_governor =
                        gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON 
(button));
 
+       else if (button == configure->keep_compact)
+               cpuFreq->options->keep_compact =
+                       gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON 
(button));
+
        cpufreq_prepare_label (cpuFreq);
        cpufreq_update_plugin ();
 }
@@ -193,6 +197,11 @@ cpufreq_configure (XfcePanelPlugin *plugin)
 
 
        /* check buttons for display widgets in panel */
+       button = configure->keep_compact = gtk_check_button_new_with_mnemonic 
(_("_Keep compact"));
+       gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
+       gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), 
cpuFreq->options->keep_compact);
+       g_signal_connect (G_OBJECT (button), "toggled", G_CALLBACK 
(check_button_changed), configure);
+
        button = configure->display_frame = gtk_check_button_new_with_mnemonic 
(_("Show frame"));
        gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);
        gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), 
cpuFreq->options->show_frame);
diff --git a/panel-plugin/xfce4-cpufreq-configure.h 
b/panel-plugin/xfce4-cpufreq-configure.h
index c33112c..417f2eb 100644
--- a/panel-plugin/xfce4-cpufreq-configure.h
+++ b/panel-plugin/xfce4-cpufreq-configure.h
@@ -23,9 +23,15 @@
 
 typedef struct
 {
-       GtkWidget *display_icon, *display_freq, *display_governor;
-       GtkWidget *display_cpu, *display_frame, *monitor_timeout;
-       GtkWidget *combo_cpu, *spinner_timeout;
+       GtkWidget *display_icon;
+       GtkWidget *display_freq;
+       GtkWidget *display_governor;
+       GtkWidget *display_cpu;
+       GtkWidget *display_frame;
+       GtkWidget *monitor_timeout;
+       GtkWidget *combo_cpu;
+       GtkWidget *spinner_timeout;
+       GtkWidget *keep_compact;
 } CpuFreqPluginConfigure;
 
 G_BEGIN_DECLS
diff --git a/panel-plugin/xfce4-cpufreq-plugin.c 
b/panel-plugin/xfce4-cpufreq-plugin.c
index 8094586..4c4f293 100644
--- a/panel-plugin/xfce4-cpufreq-plugin.c
+++ b/panel-plugin/xfce4-cpufreq-plugin.c
@@ -71,11 +71,7 @@ cpufreq_update_label (CpuInfo *cpu)
        if (strcmp(label,""))
        {
                gtk_label_set_markup (GTK_LABEL(cpuFreq->label), label);
-#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION 
(4,9,0)
-               if (xfce_panel_plugin_get_mode (cpuFreq->plugin) == 
XFCE_PANEL_PLUGIN_MODE_VERTICAL)
-#else
-               if (xfce_panel_plugin_get_orientation (cpuFreq->plugin) == 
GTK_ORIENTATION_VERTICAL)
-#endif
+               if (cpuFreq->panel_mode == XFCE_PANEL_PLUGIN_MODE_VERTICAL)
                        gtk_label_set_angle (GTK_LABEL(cpuFreq->label), -90);
                else
                        gtk_label_set_angle (GTK_LABEL(cpuFreq->label), 0);
@@ -130,6 +126,57 @@ cpufreq_update_tooltip (GtkWidget *widget,
        return TRUE;
 }
 
+static void
+cpufreq_widgets_layout (void)
+{
+       gint pos = 1;
+       GtkOrientation orientation;
+       XfcePanelPluginMode mode;
+       gboolean small = cpuFreq->options->keep_compact;
+
+       switch (cpuFreq->panel_mode) {
+       case XFCE_PANEL_PLUGIN_MODE_HORIZONTAL:
+               orientation = small ? GTK_ORIENTATION_HORIZONTAL : 
GTK_ORIENTATION_VERTICAL;
+               xfce_panel_plugin_set_small (cpuFreq->plugin, small);
+               break;
+       case XFCE_PANEL_PLUGIN_MODE_VERTICAL:
+               orientation = small ? GTK_ORIENTATION_VERTICAL : 
GTK_ORIENTATION_HORIZONTAL;
+               xfce_panel_plugin_set_small (cpuFreq->plugin, small);
+               break;
+       case XFCE_PANEL_PLUGIN_MODE_DESKBAR:
+               orientation = small ? GTK_ORIENTATION_HORIZONTAL : 
GTK_ORIENTATION_VERTICAL;
+               xfce_panel_plugin_set_small (cpuFreq->plugin, FALSE);
+               break;
+       }
+       gtk_orientable_set_orientation (GTK_ORIENTABLE (cpuFreq->box), 
orientation);
+
+       if (cpuFreq->options->keep_compact) {
+               if (orientation == GTK_ORIENTATION_VERTICAL) {
+                       gtk_misc_set_alignment (GTK_MISC (cpuFreq->icon), 0.5, 
0);
+                       gtk_misc_set_alignment (GTK_MISC (cpuFreq->label), 0.5, 
0);
+               } else {
+                       gtk_misc_set_alignment (GTK_MISC (cpuFreq->icon), 0, 
0.5);
+                       gtk_misc_set_alignment (GTK_MISC (cpuFreq->label), 0, 
0.5);
+               }
+               gtk_box_set_child_packing (GTK_BOX (cpuFreq->box),
+                                                                  
cpuFreq->icon,
+                                                                  FALSE, 
FALSE, 0, GTK_PACK_START);
+       } else {
+               if (orientation == GTK_ORIENTATION_VERTICAL) {
+                       gtk_misc_set_alignment (GTK_MISC (cpuFreq->icon), 0.5, 
1.0);
+                       gtk_misc_set_alignment (GTK_MISC (cpuFreq->label), 0.5, 
0);
+               } else {
+                       gtk_misc_set_alignment (GTK_MISC (cpuFreq->icon), 0, 
0.5);
+                       gtk_misc_set_alignment (GTK_MISC (cpuFreq->label), 1.0, 
0.5);
+                       pos = 0;
+               }
+               gtk_box_set_child_packing (GTK_BOX (cpuFreq->box),
+                                                                  
cpuFreq->icon,
+                                                                  TRUE, TRUE, 
0, GTK_PACK_START);
+       }
+       gtk_box_reorder_child (GTK_BOX (cpuFreq->box), cpuFreq->label, pos);
+}
+
 gboolean
 cpufreq_update_plugin (void)
 {
@@ -137,6 +184,8 @@ cpufreq_update_plugin (void)
 
        g_return_val_if_fail (cpuFreq->options->show_cpu < cpuFreq->cpus->len, 
FALSE);
 
+       cpufreq_widgets_layout ();
+
        cpu = g_ptr_array_index (cpuFreq->cpus, cpuFreq->options->show_cpu);
        if (cpufreq_update_label (cpu) == FALSE)
                return FALSE;
@@ -156,29 +205,12 @@ cpufreq_restart_timeout (void)
 #endif
 }
 
-#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION 
(4,9,0)
 static void
 cpufreq_mode_changed (XfcePanelPlugin *plugin, XfcePanelPluginMode mode, 
CpuFreqPlugin *cpufreq)
 {
-        GtkOrientation orientation;
-
-        orientation =
-          (mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL) ?
-          GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL;
-
-       gtk_orientable_set_orientation (GTK_ORIENTABLE (cpufreq->box), 
orientation);
-       cpufreq_update_plugin ();
-}
-
-#else
-
-static void
-cpufreq_orientation_changed (XfcePanelPlugin *plugin, GtkOrientation 
orientation, CpuFreqPlugin *cpufreq)
-{
-       gtk_orientable_set_orientation (GTK_ORIENTABLE (cpufreq->box), 
orientation);
+       cpuFreq->panel_mode = mode;
        cpufreq_update_plugin ();
 }
-#endif
 
 void
 cpufreq_update_icon (CpuFreqPlugin *cpufreq)
@@ -219,7 +251,7 @@ cpufreq_prepare_label (CpuFreqPlugin *cpufreq)
        if (cpuFreq->options->show_label_freq || 
cpuFreq->options->show_label_governor)
        {
                cpuFreq->label = gtk_label_new (NULL);
-               gtk_box_pack_end (GTK_BOX (cpufreq->box), cpuFreq->label, 
FALSE, FALSE, 0);
+               gtk_box_pack_start (GTK_BOX (cpufreq->box), cpuFreq->label, 
TRUE, TRUE, 0);
        }
 }
 
@@ -228,13 +260,9 @@ cpufreq_widgets (void)
 {
        CpuInfo *cpu;
 
-#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION 
(4,9,0)
        cpuFreq->icon_size = xfce_panel_plugin_get_size (cpuFreq->plugin);
        cpuFreq->icon_size /= xfce_panel_plugin_get_nrows (cpuFreq->plugin);
-       cpuFreq->icon_size -=4;
-#else
-       cpuFreq->icon_size = xfce_panel_plugin_get_size (cpuFreq->plugin) - 4;
-#endif
+       cpuFreq->icon_size -= 2;
 
        cpuFreq->ebox = gtk_event_box_new ();
        gtk_event_box_set_visible_window (GTK_EVENT_BOX (cpuFreq->ebox), FALSE);
@@ -263,13 +291,10 @@ cpufreq_widgets (void)
        g_signal_connect (G_OBJECT (cpuFreq->ebox), "query-tooltip",
                                          G_CALLBACK (cpufreq_update_tooltip), 
cpu);
 
-#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION 
(4,9,0)
-       cpufreq_mode_changed
-          (cpuFreq->plugin, xfce_panel_plugin_get_mode (cpuFreq->plugin), 
cpuFreq);
-#else
-       cpufreq_orientation_changed
-          (cpuFreq->plugin, xfce_panel_plugin_get_orientation 
(cpuFreq->plugin), cpuFreq);
-#endif
+       cpufreq_mode_changed (cpuFreq->plugin,
+                                                 xfce_panel_plugin_get_mode 
(cpuFreq->plugin),
+                                                 cpuFreq);
+
        gtk_widget_show (cpuFreq->box);
        gtk_widget_show (cpuFreq->ebox);
 
@@ -299,6 +324,7 @@ cpufreq_read_config (void)
        cpuFreq->options->show_label_freq     = xfce_rc_read_bool_entry (rc, 
"show_label_freq", TRUE);
        cpuFreq->options->show_label_governor = xfce_rc_read_bool_entry (rc, 
"show_label_governor", TRUE);
        cpuFreq->options->show_warning        = xfce_rc_read_bool_entry (rc, 
"show_warning", TRUE);
+       cpuFreq->options->keep_compact        = xfce_rc_read_bool_entry (rc, 
"keep_compact", FALSE);
 
        xfce_rc_close (rc);
 }
@@ -324,6 +350,7 @@ cpufreq_write_config (XfcePanelPlugin *plugin)
        xfce_rc_write_bool_entry (rc, "show_label_freq",     
cpuFreq->options->show_label_freq);
        xfce_rc_write_bool_entry (rc, "show_label_governor", 
cpuFreq->options->show_label_governor);
        xfce_rc_write_bool_entry (rc, "show_warning",        
cpuFreq->options->show_warning);
+       xfce_rc_write_bool_entry (rc, "keep_compact",        
cpuFreq->options->keep_compact);
 
        xfce_rc_close (rc);
 }
@@ -354,12 +381,9 @@ cpufreq_free (XfcePanelPlugin *plugin)
 static gboolean
 cpufreq_set_size (XfcePanelPlugin *plugin, gint size, CpuFreqPlugin *cpufreq)
 {
-#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION 
(4,9,0)
        cpuFreq->icon_size = size / xfce_panel_plugin_get_nrows 
(cpuFreq->plugin);
-       cpuFreq->icon_size -=4;
-#else
-       cpufreq->icon_size = size - 4;
-#endif
+       cpuFreq->icon_size -= 2;
+
        cpufreq_update_icon (cpufreq);
        cpufreq_update_plugin ();
 
@@ -399,13 +423,8 @@ cpufreq_construct (XfcePanelPlugin *plugin)
                          NULL);
        g_signal_connect (plugin, "size-changed",
                          G_CALLBACK (cpufreq_set_size), cpuFreq);
-#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION 
(4,9,0)
        g_signal_connect (plugin, "mode-changed",
                          G_CALLBACK (cpufreq_mode_changed), cpuFreq);
-#else
-       g_signal_connect (plugin, "orientation-changed",
-                         G_CALLBACK (cpufreq_orientation_changed), cpuFreq);
-#endif
 
        /* the configure and about menu items are hidden by default */
        xfce_panel_plugin_menu_show_configure (plugin);
diff --git a/panel-plugin/xfce4-cpufreq-plugin.h 
b/panel-plugin/xfce4-cpufreq-plugin.h
index 9e0760b..2674095 100644
--- a/panel-plugin/xfce4-cpufreq-plugin.h
+++ b/panel-plugin/xfce4-cpufreq-plugin.h
@@ -45,11 +45,13 @@ typedef struct
        gboolean show_label_governor;
        gboolean show_label_freq;
        gboolean show_warning;
+       gboolean keep_compact;
 } CpuFreqPluginOptions;
 
 typedef struct
 {
        XfcePanelPlugin *plugin;
+       XfcePanelPluginMode panel_mode;
 
        /* Array with all CPUs */
        GPtrArray *cpus;
_______________________________________________
Xfce4-commits mailing list
[email protected]
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to