[gnome-panel] libpanel-applet: Add style class for orientation to PanelApplet
- From: Vincent Untz <vuntz src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-panel] libpanel-applet: Add style class for orientation to PanelApplet
- Date: Wed, 14 Mar 2012 17:12:10 +0000 (UTC)
commit ac26fe53235bc70e94fd501ceaab0070086a57bf
Author: Peter Hurley <peter hurleysoftware com>
Date: Wed Mar 14 12:22:19 2012 -0400
libpanel-applet: Add style class for orientation to PanelApplet
Add style class "horizontal" or "vertical" based on the orientation
of the PanelApplet. This allows themeing to adjust styling for vertical
panels. An example selector would be:
PanelApplet.vertical
PanelApplet.vertical > GtkMenuBar.menubar {
background-image: -gtk-gradient (linear, right top, left top,
from (shade (@dark_bg_color, 1.15)),
to (shade (@dark_bg_color, 0.95)));
}
Signed-off-by: Peter Hurley <peter hurleysoftware com>
https://bugzilla.gnome.org/show_bug.cgi?id=672070
libpanel-applet/panel-applet.c | 26 ++++++++++++++++++++++++++
1 files changed, 26 insertions(+), 0 deletions(-)
---
diff --git a/libpanel-applet/panel-applet.c b/libpanel-applet/panel-applet.c
index 245e8fb..cee436c 100644
--- a/libpanel-applet/panel-applet.c
+++ b/libpanel-applet/panel-applet.c
@@ -651,12 +651,33 @@ static void
panel_applet_set_orient (PanelApplet *applet,
PanelAppletOrient orient)
{
+ GtkStyleContext *context;
+
g_return_if_fail (PANEL_IS_APPLET (applet));
if (applet->priv->orient == orient)
return;
applet->priv->orient = orient;
+
+ context = gtk_widget_get_style_context (GTK_WIDGET (applet));
+ switch (orient) {
+ case PANEL_APPLET_ORIENT_UP:
+ case PANEL_APPLET_ORIENT_DOWN:
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_HORIZONTAL);
+ gtk_style_context_remove_class (context, GTK_STYLE_CLASS_VERTICAL);
+ break;
+ case PANEL_APPLET_ORIENT_LEFT:
+ case PANEL_APPLET_ORIENT_RIGHT:
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_VERTICAL);
+ gtk_style_context_remove_class (context, GTK_STYLE_CLASS_HORIZONTAL);
+ break;
+ default:
+ g_assert_not_reached();
+ break;
+ }
+ gtk_widget_reset_style (GTK_WIDGET (applet));
+
g_signal_emit (G_OBJECT (applet),
panel_applet_signals [CHANGE_ORIENT],
0, orient);
@@ -2014,6 +2035,8 @@ panel_applet_setup (PanelApplet *applet)
static void
panel_applet_init (PanelApplet *applet)
{
+ GtkStyleContext *context;
+
applet->priv = PANEL_APPLET_GET_PRIVATE (applet);
applet->priv->flags = PANEL_APPLET_FLAGS_NONE;
@@ -2048,6 +2071,9 @@ panel_applet_init (PanelApplet *applet)
GDK_BUTTON_PRESS_MASK |
GDK_BUTTON_RELEASE_MASK);
+ context = gtk_widget_get_style_context (GTK_WIDGET (applet));
+ gtk_style_context_add_class (context, GTK_STYLE_CLASS_HORIZONTAL);
+
gtk_container_add (GTK_CONTAINER (applet->priv->plug), GTK_WIDGET (applet));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]