From c9bda6831a5a26107e095678f8cb5f5947bff975 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Nov 29 2007 17:46:52 +0000 Subject: Improve note theming --- diff --git a/gnome-device-manager.spec b/gnome-device-manager.spec index 6751211..32cafaf 100644 --- a/gnome-device-manager.spec +++ b/gnome-device-manager.spec @@ -9,11 +9,12 @@ Summary: Graphical Device Manager Application Name: gnome-device-manager Version: 0.2 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ and GPLv2+ Group: System Environment/Libraries URL: http://www.freedesktop.org/Software/hal Source0: http://hal.freedesktop.org/releases/%{name}-%{version}.tar.bz2 +Patch0: note-theming.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: scrollkeeper BuildRequires: gnome-doc-utils @@ -67,6 +68,7 @@ Development files for gnome-device-manager. %prep %setup -q +%patch0 -p1 -b .note-theming %build %configure @@ -131,5 +133,8 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/*.so.* %changelog +* Thu Nov 29 2007 Matthias Clasen - 0.2-2 +- Improve the theming of notes/warnings + * Wed Oct 17 2007 David Zeuthen - 0.2-1%{?dist} - Initial build diff --git a/note-theming.patch b/note-theming.patch new file mode 100644 index 0000000..fd12b9c --- /dev/null +++ b/note-theming.patch @@ -0,0 +1,73 @@ +diff -up gnome-device-manager-0.2/shell/gdm-main.c.style gnome-device-manager-0.2/shell/gdm-main.c +--- gnome-device-manager-0.2/shell/gdm-main.c.style 2007-10-25 18:25:22.000000000 -0400 ++++ gnome-device-manager-0.2/shell/gdm-main.c 2007-10-25 18:24:35.000000000 -0400 +@@ -68,6 +68,31 @@ _remove_child (GtkWidget *widget, gpoint + } + + static void ++tip_style_set (GtkWidget *widget, GtkStyle *previous_style, gpointer data) ++{ ++ GtkStyle *style; ++ GdkColor default_border_color = {0, 0xb800, 0xad00, 0x9d00}; ++ GdkColor default_fill_color = {0, 0xff00, 0xff00, 0xbf00}; ++ GdkColor *fg, *bg; ++ ++ style = gtk_rc_get_style_by_paths (gtk_settings_get_default (), ++ "gtk-tooltip", "GtkTooltip", G_TYPE_NONE); ++ if (style) { ++ fg = &style->fg[GTK_STATE_NORMAL]; ++ bg = &style->bg[GTK_STATE_NORMAL]; ++ } ++ else { ++ fg = &default_border_color; ++ bg = &default_fill_color; ++ } ++ ++ if (!gdk_color_equal (bg, &widget->style->bg[GTK_STATE_NORMAL])) ++ gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, bg); ++ if (!gdk_color_equal (fg, &widget->style->fg[GTK_STATE_NORMAL])) ++ gtk_widget_modify_fg (widget, GTK_STATE_NORMAL, fg); ++} ++ ++static void + info_page_show_for_device (GdmDevice *device) + { + GSList *i; +@@ -120,30 +145,29 @@ info_page_show_for_device (GdmDevice *de + source = *(notifications[n].source); + if (source != NULL) { + for (i = source; i != NULL; i = g_slist_next (i)) { +- GdkColor border_color = {0, 0xb800, 0xad00, 0x9d00}; +- GdkColor fill_color = {0, 0xff00, 0xff00, 0xbf00}; + GdmInfoProviderTip *tip = i->data; + + frame = gtk_frame_new (NULL); + evbox = gtk_event_box_new (); +- gtk_widget_modify_bg (frame, GTK_STATE_NORMAL, &border_color); +- gtk_widget_modify_bg (evbox, GTK_STATE_NORMAL, &fill_color); ++ + gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); +- + hbox = gtk_hbox_new (FALSE, 5); + +- image = gtk_image_new_from_stock (notifications[n].icon_name, GTK_ICON_SIZE_MENU); ++ image = gtk_image_new_from_stock (notifications[n].icon_name, GTK_ICON_SIZE_BUTTON); + + label = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (label), tip->text); + gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); +- gtk_label_set_width_chars (GTK_LABEL (label), 50); + gtk_label_set_selectable (GTK_LABEL (label), TRUE); + gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); + + gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0); +- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0); ++ gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); + ++ g_signal_connect (evbox, "style_set", ++ G_CALLBACK (tip_style_set), NULL); ++ g_signal_connect (label, "style_set", ++ G_CALLBACK (tip_style_set), NULL); + if (tip->button_text != NULL) { + GtkWidget *button; + button = gtk_button_new_with_label (tip->button_text);