[Xfce4-commits] <xfce4-fsguard-plugin:master> Added compatibility with xfce4-panel v.4.9.0+
Landry Breuil
noreply at xfce.org
Sun May 6 21:08:01 CEST 2012
Updating branch refs/heads/master
to 7e9be0f33a4554723889f91e77e4196953c542c7 (commit)
from d77215f604efbfc99578cf32a46daff143705402 (commit)
commit 7e9be0f33a4554723889f91e77e4196953c542c7
Author: Andrzej <ndrwrdck at gmail.com>
Date: Mon May 7 02:09:33 2012 +0900
Added compatibility with xfce4-panel v.4.9.0+
Add support for mode callback and honour nrows.
Signed-off-by: Landry Breuil <landry at xfce.org>
panel-plugin/fsguard.c | 93 +++++++++++++++++++++++++++++++++++++++--------
1 files changed, 77 insertions(+), 16 deletions(-)
diff --git a/panel-plugin/fsguard.c b/panel-plugin/fsguard.c
index 715b1c9..8e32f23 100644
--- a/panel-plugin/fsguard.c
+++ b/panel-plugin/fsguard.c
@@ -61,6 +61,12 @@
#define COLOR_WARNING "#FFE500"
#define COLOR_URGENT "#FF4F00"
+#ifdef LIBXFCE4PANEL_CHECK_VERSION
+#if LIBXFCE4PANEL_CHECK_VERSION (4,9,0)
+#define HAS_PANEL_49
+#endif
+#endif
+
// }}}
// struct {{{
@@ -139,6 +145,10 @@ fsguard_set_icon (FsGuard *fsguard, gint id)
fsguard->icon_id = id;
size = xfce_panel_plugin_get_size (fsguard->plugin);
+#ifdef HAS_PANEL_49
+ size /= xfce_panel_plugin_get_nrows (fsguard->plugin);
+#endif
+
size -= 2 + 2 * MAX (fsguard->btn_panel->style->xthickness,
fsguard->btn_panel->style->ythickness);
@@ -387,6 +397,8 @@ static FsGuard *
fsguard_new (XfcePanelPlugin *plugin)
{
FsGuard *fsguard = g_new0(FsGuard, 1);
+ GtkWidget *alignment;
+
fsguard->plugin = plugin;
fsguard_read_config (fsguard);
@@ -403,7 +415,9 @@ fsguard_new (XfcePanelPlugin *plugin)
fsguard->lab_name = gtk_label_new (NULL);
fsguard->lab_size = gtk_label_new (NULL);
- fsguard->lab_box = gtk_vbox_new (FALSE, 0);
+ fsguard->lab_box = xfce_hvbox_new (GTK_ORIENTATION_VERTICAL, FALSE, 0);
+
+ alignment = gtk_alignment_new (0.5, 0.5, 0.0, 0.0);
fsguard->btn_panel = xfce_create_panel_button ();
fsguard->icon_panel = gtk_image_new ();
@@ -429,7 +443,8 @@ fsguard_new (XfcePanelPlugin *plugin)
gtk_container_add (GTK_CONTAINER(fsguard->btn_panel), fsguard->icon_panel);
gtk_container_add (GTK_CONTAINER(fsguard->lab_box), fsguard->lab_name);
gtk_container_add (GTK_CONTAINER(fsguard->lab_box), fsguard->lab_size);
- gtk_container_add (GTK_CONTAINER(fsguard->box), fsguard->lab_box);
+ gtk_container_add (GTK_CONTAINER(fsguard->box), alignment);
+ gtk_container_add (GTK_CONTAINER(alignment), fsguard->lab_box);
gtk_container_add (GTK_CONTAINER(fsguard->box), fsguard->pb_box);
gtk_container_add (GTK_CONTAINER(fsguard->pb_box), fsguard->progress_bar);
@@ -463,25 +478,15 @@ fsguard_free (XfcePanelPlugin *plugin, FsGuard *fsguard)
g_free(fsguard);
}
-static void
-fsguard_set_orientation (XfcePanelPlugin *plugin, GtkOrientation orientation, FsGuard *fsguard)
-{
- DBG ("Set orientation to `%s'", orientation == GTK_ORIENTATION_HORIZONTAL ?
- "Horizontal" : "Vertical");
-
- xfce_hvbox_set_orientation (XFCE_HVBOX (fsguard->box), orientation);
- xfce_hvbox_set_orientation (XFCE_HVBOX (fsguard->pb_box), orientation);
- gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR(fsguard->progress_bar),
- orientation == GTK_ORIENTATION_HORIZONTAL ?
- GTK_PROGRESS_BOTTOM_TO_TOP : GTK_PROGRESS_LEFT_TO_RIGHT);
-}
-
static gboolean
fsguard_set_size (XfcePanelPlugin *plugin, int size, FsGuard *fsguard)
{
+ gint btn_size;
+
DBG ("Set size to `%d'", size);
- gtk_widget_set_size_request (fsguard->btn_panel, size, size);
+ btn_size = size / xfce_panel_plugin_get_nrows (plugin);
+ gtk_widget_set_size_request (fsguard->btn_panel, btn_size, btn_size);
GtkOrientation orientation = xfce_panel_plugin_get_orientation (plugin);
if (orientation == GTK_ORIENTATION_HORIZONTAL) {
@@ -497,6 +502,55 @@ fsguard_set_size (XfcePanelPlugin *plugin, int size, FsGuard *fsguard)
return TRUE;
}
+#ifdef HAS_PANEL_49
+static void
+fsguard_set_mode (XfcePanelPlugin *plugin, XfcePanelPluginMode mode, FsGuard *fsguard)
+{
+ GtkOrientation orientation, panel_orientation;
+
+ 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;
+
+ DBG ("Set mode to `%s'", mode == XFCE_PANEL_PLUGIN_MODE_HORIZONTAL ?
+ "Horizontal" : (mode == XFCE_PANEL_PLUGIN_MODE_VERTICAL ? "Vertical" : "Deskbar"));
+
+ xfce_hvbox_set_orientation (XFCE_HVBOX (fsguard->box), panel_orientation);
+ xfce_hvbox_set_orientation (XFCE_HVBOX (fsguard->pb_box), panel_orientation);
+ gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR(fsguard->progress_bar),
+ panel_orientation == GTK_ORIENTATION_HORIZONTAL ?
+ GTK_PROGRESS_BOTTOM_TO_TOP : GTK_PROGRESS_LEFT_TO_RIGHT);
+ gtk_label_set_angle (GTK_LABEL(fsguard->lab_name),
+ orientation == GTK_ORIENTATION_VERTICAL ? -90 : 0);
+ gtk_label_set_angle (GTK_LABEL(fsguard->lab_size),
+ orientation == GTK_ORIENTATION_VERTICAL ? -90 : 0);
+ xfce_hvbox_set_orientation (XFCE_HVBOX (fsguard->lab_box),
+ orientation == GTK_ORIENTATION_VERTICAL ?
+ GTK_ORIENTATION_HORIZONTAL : GTK_ORIENTATION_VERTICAL);
+ gtk_box_reorder_child (GTK_BOX (fsguard->lab_box),
+ orientation == GTK_ORIENTATION_VERTICAL ? fsguard->lab_size : fsguard->lab_name, 0);
+ fsguard_set_size (plugin, xfce_panel_plugin_get_size (plugin), fsguard);
+}
+
+#else
+static void
+fsguard_set_orientation (XfcePanelPlugin *plugin, GtkOrientation orientation, FsGuard *fsguard)
+{
+ DBG ("Set orientation to `%s'", orientation == GTK_ORIENTATION_HORIZONTAL ?
+ "Horizontal" : "Vertical");
+
+ xfce_hvbox_set_orientation (XFCE_HVBOX (fsguard->box), orientation);
+ xfce_hvbox_set_orientation (XFCE_HVBOX (fsguard->pb_box), orientation);
+ gtk_progress_bar_set_orientation (GTK_PROGRESS_BAR(fsguard->progress_bar),
+ orientation == GTK_ORIENTATION_HORIZONTAL ?
+ GTK_PROGRESS_BOTTOM_TO_TOP : GTK_PROGRESS_LEFT_TO_RIGHT);
+ fsguard_set_size (plugin, xfce_panel_plugin_get_size (plugin), fsguard);
+}
+#endif
+
static void
fsguard_entry1_changed (GtkWidget *widget, FsGuard *fsguard)
{
@@ -735,10 +789,17 @@ fsguard_construct (XfcePanelPlugin *plugin)
"size-changed",
G_CALLBACK (fsguard_set_size),
fsguard);
+#ifdef HAS_PANEL_49
+ g_signal_connect (plugin,
+ "mode-changed",
+ G_CALLBACK (fsguard_set_mode),
+ fsguard);
+#else
g_signal_connect (plugin,
"orientation-changed",
G_CALLBACK (fsguard_set_orientation),
fsguard);
+#endif
g_signal_connect (plugin,
"configure-plugin",
G_CALLBACK (fsguard_create_options),
More information about the Xfce4-commits
mailing list