~midori/midori/cmake-make-dist

« back to all changes in this revision

Viewing changes to extensions/colorful-tabs.c

  • Committer: Tarmac
  • Author(s): Paweł Forysiuk, Christian Dywan
  • Date: 2013-11-05 18:00:59 UTC
  • mfrom: (6448.1.33 less-warnings)
  • Revision ID: tarmac-20131105180059-dypdrl07lyejesr3
Resolve compiler warnings in current trunk

Add EXTRA_WARNINGS flag to increase verbosity
Respect VALAC for the Vala compiler if defined
Sort out Vala 0.16 build issues
Make warnings fatal for bzr builds

Show diffs side-by-side

added added

removed removed

Lines of Context:
12
12
 
13
13
#include <midori/midori.h>
14
14
 
15
 
static GdkColor
16
 
get_foreground_color_for_GdkColor (GdkColor color)
 
15
static void
 
16
get_foreground_color_for_GdkColor (GdkColor* color,
 
17
                                   GdkColor* fgcolor)
17
18
{
18
 
    GdkColor fgcolor;
19
19
    gfloat brightness, r, g, b;
20
20
 
21
 
    r = color.red / 255;
22
 
    g = color.green / 255;
23
 
    b = color.blue / 255;
 
21
    r = color->red / 255;
 
22
    g = color->green / 255;
 
23
    b = color->blue / 255;
24
24
 
25
25
    /* For math used see algorithms for converting from rgb to yuv */
26
26
    brightness = 0.299 * r + 0.587 * g + 0.114 * b;
28
28
    /* Ensure high contrast by enforcing black/ white text colour. */
29
29
    /* Brigthness (range 0-255) equals value of y from YUV color space. */
30
30
    if (brightness < 128)
31
 
        gdk_color_parse ("white", &fgcolor);
 
31
        gdk_color_parse ("white", fgcolor);
32
32
    else
33
 
        gdk_color_parse ("black", &fgcolor);
34
 
 
35
 
    return fgcolor;
 
33
        gdk_color_parse ("black", fgcolor);
36
34
}
37
35
 
38
 
static GdkColor adjust_brightness (GdkColor color)
 
36
static void
 
37
adjust_brightness (GdkColor* color)
39
38
{
40
39
    guint dark_grey = 137 * 255;
41
40
    guint adjustment = 78 * 255;
42
41
    guint blue = 39 * 255;
43
42
    guint readjust = 19 * 255;
44
43
 
45
 
    if ((color.red   < dark_grey)
46
 
     && (color.green < dark_grey)
47
 
     && (color.blue  < dark_grey))
 
44
    if ((color->red   < dark_grey)
 
45
     && (color->green < dark_grey)
 
46
     && (color->blue  < dark_grey))
48
47
    {
49
 
        color.red   += adjustment;
50
 
        color.green += adjustment;
51
 
        color.blue  += adjustment;
 
48
        color->red   += adjustment;
 
49
        color->green += adjustment;
 
50
        color->blue  += adjustment;
52
51
    }
53
52
 
54
 
    if (color.red < blue)
55
 
        color.red = readjust;
56
 
    else
57
 
        color.red -= readjust;
58
 
 
59
 
    if (color.blue < blue)
60
 
        color.blue = readjust;
61
 
    else
62
 
        color.blue -= readjust;
63
 
 
64
 
    if (color.green < blue)
65
 
        color.green = readjust;
66
 
    else
67
 
        color.green -= readjust;
68
 
 
69
 
    return color;
 
53
    if (color->red < blue)
 
54
        color->red = readjust;
 
55
    else
 
56
        color->red -= readjust;
 
57
 
 
58
    if (color->blue < blue)
 
59
        color->blue = readjust;
 
60
    else
 
61
        color->blue -= readjust;
 
62
 
 
63
    if (color->green < blue)
 
64
        color->green = readjust;
 
65
    else
 
66
        color->green -= readjust;
70
67
}
71
68
 
72
 
static GdkColor
73
 
view_get_bgcolor_for_favicon (GdkPixbuf* icon)
 
69
static void
 
70
view_get_bgcolor_for_favicon (GdkPixbuf* icon,
 
71
                              GdkColor*  color)
74
72
{
75
 
    GdkColor color;
76
73
    GdkPixbuf* newpix;
77
74
    guchar* pixels;
78
75
 
79
76
    newpix = gdk_pixbuf_scale_simple (icon, 1, 1, GDK_INTERP_BILINEAR);
80
77
    pixels = gdk_pixbuf_get_pixels (newpix);
81
 
    color.red = pixels[0] * 255;
82
 
    color.green = pixels[1] * 255;
83
 
    color.blue = pixels[2] * 255;
84
 
 
85
 
    color = adjust_brightness (color);
86
 
 
87
 
    return color;
 
78
    color->red = pixels[0] * 255;
 
79
    color->green = pixels[1] * 255;
 
80
    color->blue = pixels[2] * 255;
 
81
 
 
82
    adjust_brightness (color);
88
83
}
89
84
 
90
 
static GdkColor
91
 
view_get_bgcolor_for_hostname (gchar* hostname)
 
85
static void
 
86
view_get_bgcolor_for_hostname (gchar*    hostname,
 
87
                               GdkColor* color)
92
88
{
93
89
    gchar* hash, *colorstr;
94
 
    GdkColor color;
95
90
 
96
91
    hash = g_compute_checksum_for_string (G_CHECKSUM_MD5, hostname, 1);
97
92
    colorstr = g_strndup (hash, 6 + 1);
98
93
    colorstr[0] = '#';
99
 
    gdk_color_parse (colorstr, &color);
 
94
    gdk_color_parse (colorstr, color);
100
95
 
101
96
    g_free (hash);
102
97
    g_free (colorstr);
103
98
 
104
 
    color = adjust_brightness (color);
105
 
 
106
 
    return color;
 
99
    adjust_brightness (color);
107
100
}
108
101
 
109
102
static void
124
117
            GdkPixbuf* icon = midori_view_get_icon (view);
125
118
 
126
119
            if (icon)
127
 
                color = view_get_bgcolor_for_favicon (icon);
 
120
                view_get_bgcolor_for_favicon (icon, &color);
128
121
            else
129
 
                color = view_get_bgcolor_for_hostname (hostname);
 
122
                view_get_bgcolor_for_hostname (hostname, &color);
130
123
 
131
 
            fgcolor = get_foreground_color_for_GdkColor (color);
 
124
            get_foreground_color_for_GdkColor (&color, &fgcolor);
132
125
            midori_view_set_colors (view, &fgcolor, &color);
133
126
 
134
127
            g_free (hostname);
158
151
                             MidoriBrowser*   browser)
159
152
{
160
153
    GList* children;
161
 
    GtkWidget* view;
162
154
    MidoriApp* app = midori_extension_get_app (extension);
163
155
 
164
156
    g_signal_handlers_disconnect_by_func (
237
229
    guint i;
238
230
    for (i = 0; i < G_N_ELEMENTS (items); i++)
239
231
    {
240
 
        color = view_get_bgcolor_for_hostname ((gchar*)items[i].host);
241
 
        fgcolor = get_foreground_color_for_GdkColor (color);
 
232
        view_get_bgcolor_for_hostname ((gchar*)items[i].host, &color);
 
233
        get_foreground_color_for_GdkColor (&color, &fgcolor);
242
234
 
243
235
        g_assert_cmpstr (items[i].color, ==, gdk_color_to_string (&color));
244
236
        g_assert_cmpstr (items[i].fgcolor, ==, gdk_color_to_string (&fgcolor));