Mercurial > geeqie
diff src/color-man.c @ 1549:7302ff300a52
show color management status on statusbar
author | nadvornik |
---|---|
date | Mon, 13 Apr 2009 14:39:50 +0000 |
parents | b5608391f479 |
children | 956aab097ea7 |
line wrap: on
line diff
--- a/src/color-man.c Mon Apr 13 10:55:49 2009 +0000 +++ b/src/color-man.c Mon Apr 13 14:39:50 2009 +0000 @@ -412,6 +412,41 @@ screen_type, screen_file, screen_data, screen_data_len); } +static gchar *color_man_get_profile_name(ColorManProfileType type, cmsHPROFILE profile) +{ + switch (type) + { + case COLOR_PROFILE_SRGB: + return g_strdup(_("sRGB")); + case COLOR_PROFILE_ADOBERGB: + return g_strdup(_("Adobe RGB compatible")); + break; + case COLOR_PROFILE_MEM: + case COLOR_PROFILE_FILE: + if (profile) + { + return g_strdup(cmsTakeProductName(profile)); + } + return g_strdup(_("Custom profile")); + break; + case COLOR_PROFILE_NONE: + default: + return g_strdup(""); + } +} + +gboolean color_man_get_status(ColorMan *cm, gchar **image_profile, gchar **screen_profile) +{ + ColorManCache *cc; + if (!cm) return FALSE; + + cc = cm->profile; + + if (image_profile) *image_profile = color_man_get_profile_name(cc->profile_in_type, cc->profile_in); + if (screen_profile) *screen_profile = color_man_get_profile_name(cc->profile_out_type, cc->profile_out); + return TRUE; +} + void color_man_free(ColorMan *cm) { if (!cm) return; @@ -471,5 +506,10 @@ /* no op */ } +gboolean color_man_get_status(ColorMan *cm, gchar **image_profile, gchar **screen_profile) +{ + return FALSE; +} + #endif /* define HAVE_LCMS */ /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */