1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-12-04 14:46:46 -05:00

Improve color blindness handling

Rename some things and use a swtich instead of if.
This commit is contained in:
Michael Vetter 2019-12-12 14:23:07 +01:00
parent 2750194279
commit 3258211f27
3 changed files with 16 additions and 12 deletions

View File

@ -3,6 +3,7 @@
* vim: expandtab:ts=4:sts=4:sw=4
*
* Copyright (C) 2019 Aurelien Aptel <aurelien.aptel@gmail.com>
* Copyright (C) 2019 Michael Vetter <jubalh@iodoru.org>
*
* This file is part of Profanity.
*
@ -401,14 +402,17 @@ static int color_hash(const char *str, color_profile profile)
double h = ((buf[1] << 8) | buf[0]) / 65536. * 360.;
// red/green blindness correction
if (profile == COLOR_PROFILE_REDGREEN) {
h = fmod(fmod(h + 90., 180) - 90., 360.);
}
// blue blindness correction
if (profile == COLOR_PROFILE_BLUE) {
h = fmod(h, 180.);
switch(profile)
{
case COLOR_PROFILE_REDGREEN_BLINDNESS:
// red/green blindness correction
h = fmod(fmod(h + 90., 180) - 90., 360.);
break;
case COLOR_PROFILE_BLUE_BLINDNESS:
// blue blindness correction
h = fmod(h, 180.);
default:
break;
}
rc = find_closest_col((int)h, 100, 50);

View File

@ -43,8 +43,8 @@
typedef enum {
COLOR_PROFILE_DEFAULT,
COLOR_PROFILE_REDGREEN,
COLOR_PROFILE_BLUE,
COLOR_PROFILE_REDGREEN_BLINDNESS,
COLOR_PROFILE_BLUE_BLINDNESS,
} color_profile;
struct color_def {

View File

@ -677,9 +677,9 @@ theme_hash_attrs(const char *str)
char *color_pref = prefs_get_string(PREF_COLOR_NICK);
if (strcmp(color_pref, "redgreen") == 0) {
profile = COLOR_PROFILE_REDGREEN;
profile = COLOR_PROFILE_REDGREEN_BLINDNESS;
} else if (strcmp(color_pref, "blue") == 0) {
profile = COLOR_PROFILE_BLUE;
profile = COLOR_PROFILE_BLUE_BLINDNESS;
}
prefs_free_string(color_pref);