[Xfce4-commits] <xfce4-battery-plugin:master> Changing orientation of labels in the vertical (not deskbar) mode.

Landry Breuil noreply at xfce.org
Sat Apr 14 15:48:02 CEST 2012


Updating branch refs/heads/master
         to fb5ae31d9efa8a8af673da466851d17642b6a93b (commit)
       from baaedc27dcb5d9d0a9df0e43e71cffe2fb380d6f (commit)

commit fb5ae31d9efa8a8af673da466851d17642b6a93b
Author: Andrzej <ndrwrdck at gmail.com>
Date:   Fri Jan 27 01:21:18 2012 +0900

    Changing orientation of labels in the vertical (not deskbar) mode.
    
    Signed-off-by: Landry Breuil <landry at xfce.org>

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

diff --git a/panel-plugin/battery.c b/panel-plugin/battery.c
index e4cfa46..09d6812 100644
--- a/panel-plugin/battery.c
+++ b/panel-plugin/battery.c
@@ -653,24 +653,36 @@ battmon_icon (t_battmon *battmon)
     return icon;
 }
 
-
-static void setup_battmon(t_battmon *battmon, GtkOrientation orientation)
+static void setup_battmon(t_battmon      *battmon,
+                          GtkOrientation  orientation,
+                          GtkOrientation  panel_orientation)
 {
     GtkWidget *box,*vbox;
     GdkPixbuf *icon;
+    gint size;
 
+    size = xfce_panel_plugin_get_size (battmon->plugin);
     battmon->battstatus = gtk_progress_bar_new();
-    if (orientation == GTK_ORIENTATION_HORIZONTAL)
+
+    if (panel_orientation == GTK_ORIENTATION_HORIZONTAL)
     {
        gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(battmon->battstatus),
                GTK_PROGRESS_BOTTOM_TO_TOP);
+       gtk_widget_set_size_request(GTK_WIDGET(battmon->battstatus),
+               BORDER, size);
        box=gtk_hbox_new(FALSE, 0);
        battmon->vbox = gtk_hbox_new(FALSE, 0);
+       gtk_widget_set_size_request(GTK_WIDGET(battmon->plugin),
+               -1, size);
     } else {
        gtk_progress_bar_set_orientation(GTK_PROGRESS_BAR(battmon->battstatus),
                GTK_PROGRESS_LEFT_TO_RIGHT);
+       gtk_widget_set_size_request(GTK_WIDGET(battmon->battstatus),
+               size, BORDER);
        box=gtk_vbox_new(FALSE, 0);
        battmon->vbox = gtk_vbox_new(FALSE, 0);
+       gtk_widget_set_size_request(GTK_WIDGET(battmon->plugin),
+               size, -1);
     }
 
     gtk_container_set_border_width(GTK_CONTAINER(battmon->vbox), BORDER / 2);
@@ -697,34 +709,74 @@ static void setup_battmon(t_battmon *battmon, GtkOrientation orientation)
 
     gtk_box_pack_start(GTK_BOX(box),  GTK_WIDGET(battmon->battstatus), FALSE, FALSE, 2);
 
-    vbox = gtk_vbox_new(FALSE, 0);
+    if (orientation == GTK_ORIENTATION_HORIZONTAL)
+       vbox = gtk_vbox_new(FALSE, 0);
+    else
+       vbox = gtk_hbox_new(FALSE, 0);
 
     /* percent + rtime */
     gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(vbox), FALSE, FALSE, 0);
 
-      battmon->charge = (GtkLabel *)gtk_label_new("50%%");
-        gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->charge),TRUE, TRUE, 0);
+    battmon->charge = (GtkLabel *)gtk_label_new("50%%");
+    if (orientation == GTK_ORIENTATION_HORIZONTAL)
+      gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->charge),TRUE, TRUE, 0);
+    else
+      gtk_box_pack_end(GTK_BOX(vbox),GTK_WIDGET(battmon->charge),TRUE, TRUE, 0);
+
+    battmon->rtime = (GtkLabel *)gtk_label_new("01:00");
+    if (orientation == GTK_ORIENTATION_HORIZONTAL)
+       gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->rtime),TRUE, TRUE, 0);
+    else
+       gtk_box_pack_end(GTK_BOX(vbox),GTK_WIDGET(battmon->rtime),TRUE, TRUE, 0);
 
-      battmon->rtime = (GtkLabel *)gtk_label_new("01:00");
-    gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->rtime),TRUE, TRUE, 0);
+    if (orientation == GTK_ORIENTATION_HORIZONTAL)
+       vbox = gtk_vbox_new(FALSE, 0);
+    else
+       vbox = gtk_hbox_new(FALSE, 0);
 
-    vbox=gtk_vbox_new(FALSE, 0);
     gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(vbox), FALSE, FALSE, 0);
 
     battmon->alt_rtime = (GtkLabel *)gtk_label_new("01:00");
     gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->alt_rtime),TRUE, TRUE, 0);
 
-    vbox=gtk_vbox_new(FALSE, 0);
+    if (orientation == GTK_ORIENTATION_HORIZONTAL)
+       vbox = gtk_vbox_new(FALSE, 0);
+    else
+       vbox = gtk_hbox_new(FALSE, 0);
 
     /* ac-fan-temp */
     gtk_box_pack_start(GTK_BOX(box), GTK_WIDGET(vbox), FALSE, FALSE, 0);
 
     battmon->acfan = (GtkLabel *)gtk_label_new("AC FAN");
-        gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->acfan),TRUE, TRUE, 0);
+    if (orientation == GTK_ORIENTATION_HORIZONTAL)
+       gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->acfan),TRUE, TRUE, 0);
+    else
+       gtk_box_pack_end(GTK_BOX(vbox),GTK_WIDGET(battmon->acfan),TRUE, TRUE, 0);
 
       battmon->temp = (GtkLabel *)gtk_label_new("40°C");
-        gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->temp),TRUE, TRUE, 0);
+    if (orientation == GTK_ORIENTATION_HORIZONTAL)
+       gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(battmon->temp),TRUE, TRUE, 0);
+    else
+       gtk_box_pack_end(GTK_BOX(vbox),GTK_WIDGET(battmon->temp),TRUE, TRUE, 0);
 
+    if (orientation == GTK_ORIENTATION_HORIZONTAL)
+    {
+       gtk_label_set_angle(GTK_LABEL(battmon->label), 0);
+       gtk_label_set_angle(GTK_LABEL(battmon->charge), 0);
+       gtk_label_set_angle(GTK_LABEL(battmon->rtime), 0);
+       gtk_label_set_angle(GTK_LABEL(battmon->alt_rtime), 0);
+       gtk_label_set_angle(GTK_LABEL(battmon->acfan), 0);
+       gtk_label_set_angle(GTK_LABEL(battmon->temp), 0);
+    }
+    else
+    {
+       gtk_label_set_angle(GTK_LABEL(battmon->label), 270);
+       gtk_label_set_angle(GTK_LABEL(battmon->charge), 270);
+       gtk_label_set_angle(GTK_LABEL(battmon->rtime), 270);
+       gtk_label_set_angle(GTK_LABEL(battmon->alt_rtime), 270);
+       gtk_label_set_angle(GTK_LABEL(battmon->acfan), 270);
+       gtk_label_set_angle(GTK_LABEL(battmon->temp), 270);
+    }
 
     gtk_box_pack_start(GTK_BOX(battmon->vbox), box, FALSE, FALSE, 0);
     gtk_widget_show_all(battmon->vbox);
@@ -758,23 +810,53 @@ static void setup_battmon(t_battmon *battmon, GtkOrientation orientation)
     gtk_widget_set_size_request(battmon->ebox, -1, -1);
 }
 
+#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION (4,9,0)
+static gboolean
+battmon_set_mode (XfcePanelPlugin *plugin, XfcePanelPluginMode mode,
+                  t_battmon *battmon)
+{
+    GtkOrientation orientation, panel_orientation;
+
+    if (battmon->timeoutid) g_source_remove(battmon->timeoutid);
+    gtk_container_remove(GTK_CONTAINER(battmon->ebox), GTK_WIDGET(battmon->vbox));
+    orientation =
+      (mode != XFCE_PANEL_PLUGIN_MODE_VERTICAL) ?
+      GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL;
+    panel_orientation =
+      (mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL) ?
+      GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL;
+    setup_battmon(battmon,orientation,panel_orientation);
+    update_apm_status( battmon );
+    battmon->timeoutid = g_timeout_add(1 * 1024, (GSourceFunc) update_apm_status, battmon);
+
+    return TRUE;
+}
+
+#else
+
 static gboolean
 battmon_set_orientation (XfcePanelPlugin *plugin, GtkOrientation orientation,
                          t_battmon *battmon)
 {
     if (battmon->timeoutid) g_source_remove(battmon->timeoutid);
     gtk_container_remove(GTK_CONTAINER(battmon->ebox), GTK_WIDGET(battmon->vbox));
-    setup_battmon(battmon,orientation);
+    setup_battmon(battmon,GTK_ORIENTATION_HORIZONTAL,orientation);
     update_apm_status( battmon );
     battmon->timeoutid = g_timeout_add(1 * 1024, (GSourceFunc) update_apm_status, battmon);
 
     return TRUE;
 }
+#endif
 
 static t_battmon*
 battmon_create(XfcePanelPlugin *plugin)
 {
     t_battmon *battmon;
+    GtkOrientation panel_orientation;
+#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION (4,9,0)
+    GtkOrientation orientation;
+    XfcePanelPluginMode mode;
+#endif
 
     battmon = g_new(t_battmon, 1);
     init_options(&(battmon->options));
@@ -785,7 +867,20 @@ battmon_create(XfcePanelPlugin *plugin)
     battmon->critical = FALSE;
     battmon->ebox = gtk_event_box_new();
     gtk_event_box_set_visible_window(battmon->ebox, FALSE);
-    setup_battmon(battmon, xfce_panel_plugin_get_orientation (plugin));
+
+#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION (4,9,0)
+    mode = xfce_panel_plugin_get_mode (plugin);
+    orientation =
+      (mode != XFCE_PANEL_PLUGIN_MODE_VERTICAL) ?
+      GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL;
+    panel_orientation =
+      (mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL) ?
+      GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL;
+#else
+    panel_orientation = xfce_panel_plugin_get_orientation (plugin);
+#endif
+    setup_battmon(battmon, GTK_ORIENTATION_HORIZONTAL, panel_orientation);
+
     battmon->timeoutid = 0;
     battmon->flag = FALSE;
     battmon->tips = gtk_tooltips_new ();
@@ -1413,7 +1508,11 @@ battmon_construct (XfcePanelPlugin *plugin)
 
     g_signal_connect (plugin, "size-changed", G_CALLBACK (battmon_set_size), battmon);
 
+#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION (4,9,0)
+    g_signal_connect (plugin, "mode-changed", G_CALLBACK (battmon_set_mode), battmon);
+#else
     g_signal_connect (plugin, "orientation-changed", G_CALLBACK (battmon_set_orientation), battmon);
+#endif
 
     gtk_container_add(GTK_CONTAINER(plugin), battmon->ebox);
 


More information about the Xfce4-commits mailing list