Ticket #122: notify-standard-theme-love.txt

Line 
1 [Summary]
2
3 Currently for distributions to change "branding" of the standard notification theme, they must
4 apply a patch against theme.c to change the colors, etc.
5
6 The following settings should be configurable via GConf so distributions can use the core
7 functionality of the standard theme but tweak its looks:
8
9 Urgency colors, Background color, Opacity level, Visibility of the close button, Use of
10 gradients, Width of the notification bubble
11
12 In SLED we have a patch that sets the urgency colors to values from Tango, we remove the close
13  button (for a reason I'm not really sure of, but it was a decision from our usability and
14  design team), and it looks like we also reduce the width of the bubble slightly. While I like
15  the new opacity support, it should be able to be turned off (setting to 1.0).
16
17 I've got a patch to address all of this. It will allow distributions to change these common
18 settings by simply providing a different schema file.
19
20 Additionally, the patch addresses a number of minor Cairo rendering and calculation bugs.
21
22 Depending on the reception of this patch, some of these things may need to be broken down into
23 smaller patches, but I figured I'd post the whole thing first. It is my opinion that all the
24 functionality in the patch is fully applicable for upstream (as were my intentions), is generic,
25 provides sane defaults, and should benefit anyone shipping and using notification-daemon.
26
27 [Patch Overview]
28
29 * The patch is available here, against notification-daemon 0.3.7
30   http://abock.org/~aaron/notify-standard-theme-love.diff
31
32 * Allows setting of urgency and background colors, opacity, close button visibility,
33   use of gradients, and default width via GConf (provides default settings in schema and
34   code level fallbacks in case of error)
35  
36 * Enables gradients by default, but they can be turned off in GConf. The gradient rendering
37   was updated to be more subtle so it seems much more appropriate to enable them by default.
38   Previously gradients could only be turned on at build time. The patch turns it into a
39   runtime option.
40  
41 * Provides a GTK+ style color parser. For example color strings in the form bg[normal] or
42   mid[selected] will resolve to GTK+ style colors set by the current GTK+ theme.
43   "mid[selected]" to GtkWindow->Style->mid[GTK_STATE_SELECTED]. This allows colors to be
44   specified in short or long hexadecimal form, symbolic form, or GTK+ style form. The default
45   colors for low and normal urgency are GTK+ style based, while critical is #a40000 (Tango red).
46   The style parser may be redundant, but I could not find this functionality in GTK+.
47  
48 * A few Cairo rendering and calculation glitches are fixed. Cairo rectangles in a custom widget
49   context should be drawn with no anti-aliasing. With anti-aliasing turned on, hinting can be
50   an issue and it can be hard to get pixel-perfect precision.
51  
52 * The GDK version of the drawing is updated like the Cairo version to support
53   the new color settings.
54  
55 * The size request on the close button is removed due to the clipping of the close icon inside
56   the button. Because it has no relief, I don't really see a reason for calling set_size_request
57   on the widget.
58