[gdm] Use css style exclusively
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gdm] Use css style exclusively
- Date: Tue, 18 Jan 2011 22:44:11 +0000 (UTC)
commit 3ea938dcddb3204196673f93d1120f1e93c99418
Author: William Jon McCann <jmccann redhat com>
Date: Mon Jan 17 00:15:05 2011 -0500
Use css style exclusively
Drop the use of the color overrides.
gui/simple-greeter/gdm-greeter-panel.c | 137 ++++++++++++++++++++------------
1 files changed, 87 insertions(+), 50 deletions(-)
---
diff --git a/gui/simple-greeter/gdm-greeter-panel.c b/gui/simple-greeter/gdm-greeter-panel.c
index 8abb89b..ab57b63 100644
--- a/gui/simple-greeter/gdm-greeter-panel.c
+++ b/gui/simple-greeter/gdm-greeter-panel.c
@@ -781,25 +781,81 @@ get_show_restart_buttons (GdmGreeterPanel *panel)
return show;
}
-static void
-update_colors (GtkWidget *widget)
+static inline void
+override_style (GtkWidget *widget)
{
- GdkRGBA bg;
- GdkRGBA fg;
-
- bg.red = 0;
- bg.green = 0;
- bg.blue = 0;
- bg.alpha = 1.0;
-
- fg.red = 1.0;
- fg.green = 1.0;
- fg.blue = 1.0;
- fg.alpha = 1.0;
-
- gtk_widget_override_background_color (widget, 0, &bg);
- gtk_widget_override_color (widget, 0, &fg);
- gtk_widget_override_symbolic_color (widget, "fg", &fg);
+ GtkCssProvider *provider;
+ GtkStyleContext *context;
+ GError *error;
+
+ g_debug ("updating style");
+
+ context = gtk_widget_get_style_context (widget);
+
+ provider = gtk_css_provider_new ();
+ gtk_style_context_add_provider (context,
+ GTK_STYLE_PROVIDER (provider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+
+ error = NULL;
+ gtk_css_provider_load_from_data (provider,
+ "* {\n"
+ " background-color: black;\n"
+ " color: white;\n"
+ " border-width: 0;\n"
+ "}\n"
+ "*:selected {\n"
+ " background-color: #666666;\n"
+ " color: white;\n"
+ "}\n"
+ ".menu,\n"
+ ".menubar,\n"
+ ".menu.check,\n"
+ ".menu.radio {\n"
+ " background-color: black;\n"
+ " color: white;\n"
+ " border-style: none;\n"
+ "}\n"
+ ".menu:hover,\n"
+ ".menubar:hover,\n"
+ ".menu.check:hover,\n"
+ ".menu.radio:hover {\n"
+ " background-color: #666666;\n"
+ " color: white;\n"
+ " border-style: none;\n"
+ "}\n"
+ "GtkLabel:selected {\n"
+ " background-color: black;\n"
+ " color: white;\n"
+ "}\n"
+ "\n"
+ "GtkLabel:selected:focused {\n"
+ " background-color: black;\n"
+ " color: white;\n"
+ "}\n"
+ "GtkMenuBar {\n"
+ " background-color: black;\n"
+ " background-image: none;\n"
+ " color: white;\n"
+ " -GtkMenuBar-internal-padding: 0;\n"
+ " -GtkMenuBar-shadow-type: none;\n"
+ " border-width: 0;\n"
+ " border-style: none;\n"
+ "}\n"
+ "GtkMenuItem {\n"
+ " background-color: black;\n"
+ " color: white;\n"
+ "}\n"
+ "GtkImage {\n"
+ " background-color: black;\n"
+ " color: white;\n"
+ "}\n",
+ -1,
+ &error);
+ if (error != NULL) {
+ g_warning ("Error loading style data: %s", error->message);
+ g_error_free (error);
+ }
}
static void
@@ -811,12 +867,12 @@ add_shutdown_menu (GdmGreeterPanel *panel)
GtkWidget *image;
item = gtk_menu_item_new ();
+ override_style (item);
box = gtk_hbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (item), box);
gtk_menu_shell_append (GTK_MENU_SHELL (panel->priv->status_menubar), item);
image = gtk_image_new ();
- g_signal_connect (image, "style-updated", G_CALLBACK (update_colors), NULL);
- update_colors (image);
+ override_style (image);
gtk_image_set_from_icon_name (GTK_IMAGE (image), "system-shutdown-symbolic", GTK_ICON_SIZE_MENU);
gtk_box_pack_start (GTK_BOX (box), image, FALSE, FALSE, 0);
@@ -852,15 +908,20 @@ add_battery_menu (GdmGreeterPanel *panel)
GtkWidget *box;
GtkWidget *menu;
GError *error;
+ GIcon *gicon;
item = gtk_menu_item_new ();
+ override_style (item);
box = gtk_hbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER (item), box);
gtk_menu_shell_prepend (GTK_MENU_SHELL (panel->priv->status_menubar), item);
panel->priv->power_image = gtk_image_new ();
- g_signal_connect (panel->priv->power_image, "style-updated", G_CALLBACK (update_colors), NULL);
- update_colors (panel->priv->power_image);
- gtk_image_set_from_icon_name (GTK_IMAGE (panel->priv->power_image), "battery-full-charged-symbolic", GTK_ICON_SIZE_MENU);
+ override_style (panel->priv->power_image);
+
+ gicon = g_themed_icon_new_with_default_fallbacks ("battery-caution-symbolic");
+ gtk_image_set_from_gicon (GTK_IMAGE (panel->priv->power_image), gicon, GTK_ICON_SIZE_MENU);
+ g_object_unref (gicon);
+
gtk_box_pack_start (GTK_BOX (box), panel->priv->power_image, FALSE, FALSE, 0);
menu = gtk_menu_new ();
@@ -887,22 +948,6 @@ add_battery_menu (GdmGreeterPanel *panel)
gtk_widget_show_all (item);
}
-static inline void
-force_no_shadow (GtkWidget *widget)
-{
- GtkCssProvider *provider;
- GtkStyleContext *context;
-
- context = gtk_widget_get_style_context (widget);
-
- provider = gtk_css_provider_new ();
- gtk_style_context_add_provider (context,
- GTK_STYLE_PROVIDER (provider),
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
- gtk_css_provider_load_from_data (provider, "GtkMenuBar { shadow-type: none; internal-padding: 0; }", -1, NULL);
- gtk_style_context_invalidate (context);
-}
-
static void
setup_panel (GdmGreeterPanel *panel)
{
@@ -911,7 +956,8 @@ setup_panel (GdmGreeterPanel *panel)
gdm_profile_start (NULL);
gtk_widget_set_can_focus (GTK_WIDGET (panel), TRUE);
- update_colors (GTK_WIDGET (panel));
+
+ override_style (GTK_WIDGET (panel));
panel->priv->geometry.x = -1;
panel->priv->geometry.y = -1;
@@ -945,7 +991,6 @@ setup_panel (GdmGreeterPanel *panel)
gtk_box_pack_start (GTK_BOX (panel->priv->hbox), panel->priv->right_hbox, TRUE, TRUE, 0);
panel->priv->clock = gdm_clock_widget_new ();
- update_colors (panel->priv->clock);
gtk_widget_show (panel->priv->clock);
gtk_container_add (GTK_CONTAINER (panel->priv->alignment), panel->priv->clock);
@@ -954,8 +999,7 @@ setup_panel (GdmGreeterPanel *panel)
gtk_size_group_add_widget (sg, panel->priv->right_hbox);
panel->priv->status_menubar = gtk_menu_bar_new ();
- force_no_shadow (panel->priv->status_menubar);
- update_colors (panel->priv->status_menubar);
+ override_style (panel->priv->status_menubar);
gtk_widget_show (panel->priv->status_menubar);
gtk_box_pack_end (GTK_BOX (panel->priv->right_hbox), GTK_WIDGET (panel->priv->status_menubar), FALSE, FALSE, 0);
@@ -1029,12 +1073,6 @@ gdm_greeter_panel_finalize (GObject *object)
}
static void
-gdm_greeter_panel_real_style_updated (GtkWidget *widget)
-{
- update_colors (widget);
-}
-
-static void
gdm_greeter_panel_class_init (GdmGreeterPanelClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
@@ -1052,7 +1090,6 @@ gdm_greeter_panel_class_init (GdmGreeterPanelClass *klass)
widget_class->get_preferred_height = gdm_greeter_panel_real_get_preferred_height;
widget_class->show = gdm_greeter_panel_real_show;
widget_class->hide = gdm_greeter_panel_real_hide;
- widget_class->style_updated = gdm_greeter_panel_real_style_updated;
g_object_class_install_property (object_class,
PROP_MONITOR,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]