From c1646d12033be6cc207b8f40e71792192fc79cc4 Mon Sep 17 00:00:00 2001 From: Andrzej Date: Thu, 26 Jan 2012 23:39:48 +0900 Subject: [PATCH 1/3] Making the icon size match sizes of other icons in Xfce panel 4.9+. --- panel-plugin/battery.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/panel-plugin/battery.c b/panel-plugin/battery.c index 9e51ad1..e4cfa46 100644 --- a/panel-plugin/battery.c +++ b/panel-plugin/battery.c @@ -626,7 +626,13 @@ battmon_icon (t_battmon *battmon) /* panel info */ orientation = xfce_panel_plugin_get_orientation (battmon->plugin); + +#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION (4,9,0) + size = xfce_panel_plugin_get_size (battmon->plugin); + size /= xfce_panel_plugin_get_nrows (battmon->plugin) - 6; +#else size = xfce_panel_plugin_get_size (battmon->plugin) - 6; +#endif /* icon size is 41x64px */ if (orientation == GTK_ORIENTATION_HORIZONTAL) -- 1.7.5.4 From 832274f8e40513bce24bec71a8928807c929126f Mon Sep 17 00:00:00 2001 From: Andrzej Date: Fri, 27 Jan 2012 01:21:18 +0900 Subject: [PATCH 2/3] Changing orientation of labels in the vertical (not deskbar) mode. --- 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); -- 1.7.5.4 From b004d7bd35f659581629fbfb1b52bddda757a79c Mon Sep 17 00:00:00 2001 From: Andrzej Date: Fri, 27 Jan 2012 02:08:03 +0900 Subject: [PATCH 3/3] Fixing incorrect icon size in the previous commits. --- panel-plugin/battery.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/panel-plugin/battery.c b/panel-plugin/battery.c index 09d6812..36d0042 100644 --- a/panel-plugin/battery.c +++ b/panel-plugin/battery.c @@ -629,7 +629,8 @@ battmon_icon (t_battmon *battmon) #if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION (4,9,0) size = xfce_panel_plugin_get_size (battmon->plugin); - size /= xfce_panel_plugin_get_nrows (battmon->plugin) - 6; + size /= xfce_panel_plugin_get_nrows (battmon->plugin); + size -= 6; #else size = xfce_panel_plugin_get_size (battmon->plugin) - 6; #endif -- 1.7.5.4