From 9c68a5b07b4fca6fbd7c84955c7cb64e2ef9a523 Mon Sep 17 00:00:00 2001 From: Andrzej Date: Fri, 27 Jan 2012 19:25:07 +0900 Subject: [PATCH] Updating label orientation for panel 4.9+. --- panel-plugin/embed.c | 34 +++++++++++++++++++++++++++++++++- 1 files changed, 33 insertions(+), 1 deletions(-) diff --git a/panel-plugin/embed.c b/panel-plugin/embed.c index de812d0..b1f6c6d 100644 --- a/panel-plugin/embed.c +++ b/panel-plugin/embed.c @@ -315,6 +315,27 @@ embed_focus_menu (GtkMenuItem *focus_menu, EmbedPlugin *embed) +#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION (4,9,0) +/* Callback when the orientation of the panel is changed. */ +static void +embed_mode_changed (XfcePanelPlugin *plugin, + XfcePanelPluginMode mode, + EmbedPlugin *embed) +{ + GtkOrientation orientation; + + /* change the orienation of the box */ + orientation = + (mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL) ? + GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL; + + embed_update_label (embed); + xfce_hvbox_set_orientation (XFCE_HVBOX (embed->hvbox), orientation); + embed_update_separator (embed, orientation); +} + +#else + /* Callback when the orientation of the panel is changed. */ static void embed_orientation_changed (XfcePanelPlugin *plugin, @@ -325,7 +346,7 @@ embed_orientation_changed (XfcePanelPlugin *plugin, xfce_hvbox_set_orientation (XFCE_HVBOX (embed->hvbox), orientation); embed_update_separator (embed, orientation); } - +#endif /* Callback when the size of the panel is changed. @@ -404,6 +425,12 @@ embed_update_label (EmbedPlugin *embed) /* Othewise just display the format string directly. */ gtk_label_set_text (GTK_LABEL (embed->label), embed->label_fmt); } +#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION (4,9,0) + gtk_label_set_angle + (GTK_LABEL (embed->label), + (xfce_panel_plugin_get_mode (embed->plugin) != XFCE_PANEL_PLUGIN_MODE_VERTICAL) ? + 0 : 270); +#endif gtk_widget_show (embed->label); } else { gtk_widget_hide (embed->label); @@ -992,8 +1019,13 @@ embed_construct (XfcePanelPlugin *plugin) g_signal_connect (G_OBJECT (plugin), "size-changed", G_CALLBACK (embed_size_changed), embed); +#if defined (LIBXFCE4PANEL_CHECK_VERSION) && LIBXFCE4PANEL_CHECK_VERSION (4,9,0) + g_signal_connect (G_OBJECT (plugin), "mode-changed", + G_CALLBACK (embed_mode_changed), embed); +#else g_signal_connect (G_OBJECT (plugin), "orientation-changed", G_CALLBACK (embed_orientation_changed), embed); +#endif g_signal_connect (G_OBJECT (plugin), "unrealize", G_CALLBACK (embed_unrealize), embed); -- 1.7.5.4