diff options
author | Gary Kramlich <grim@reaperworld.com> | 2021-06-14 22:18:20 -0500 |
---|---|---|
committer | Gary Kramlich <grim@reaperworld.com> | 2021-06-14 22:18:20 -0500 |
commit | fae74aa3d68120c72478a218b02687ac395b5da9 (patch) | |
tree | ad06ccc85251fa4cb51a3510061f96c5cbc6b77f /pidgin/pidgincolor.h | |
parent | 6207ae5fcea7e81b9cb2138ce8c583ed74ddd8f5 (diff) | |
download | pidgin-fae74aa3d68120c72478a218b02687ac395b5da9.tar.gz |
Add support for the author-name-color property to PidginMessage and wire it up in PurpleMessage as well
Testing Done:
Joined a chat and verified names were colored properly as well as in im's.
Reviewed at https://reviews.imfreedom.org/r/744/
Diffstat (limited to 'pidgin/pidgincolor.h')
-rw-r--r-- | pidgin/pidgincolor.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/pidgin/pidgincolor.h b/pidgin/pidgincolor.h new file mode 100644 index 0000000000..5ddce08c51 --- /dev/null +++ b/pidgin/pidgincolor.h @@ -0,0 +1,64 @@ +/* + * Pidgin - Internet Messenger + * Copyright (C) Pidgin Developers <devel@pidgin.im> + * + * Pidgin is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this library; if not, see <https://www.gnu.org/licenses/>. + */ + +#if !defined(PIDGIN_GLOBAL_HEADER_INSIDE) && !defined(PIDGIN_COMPILATION) +# error "only <pidgin.h> may be included directly" +#endif + +/** + * SECTION:pidgincolor + * @section_id: pidgin-color + * @short_description: Color related API + * @title: Color API + * + * A collection of API to help with color. + */ + +#ifndef PIDGIN_COLOR_H +#define PIDGIN_COLOR_H + +#include <gtk/gtk.h> + +G_BEGIN_DECLS + +/** + * pidgin_color_calculate_for_text: + * @text: The text to calculate a color for. + * @color: (out): The return address for a #GdkRGBA that will recieve the + * color. + * + * This function is based heavily on the implementation that gajim uses from + * python-nbxmpp in nbxmpp.util.text_to_color. However, we don't have an + * implementation of HSL let alone HSLuv, so we're using HSV which is why + * the value is 1.0 instead of a luminance of 0.5. + * + * Currently there is no caching as GCache is deprecated and writing a fast LRU + * in glib is going to take a bit of finesse. Also we'll need to figure out how + * to scale to ginormous Twitch channels which will constantly bust the cache. + * + * Since: 3.0.0 + */ +void pidgin_color_calculate_for_text(const gchar *text, GdkRGBA *color); + +G_END_DECLS + +#endif /* PIDGIN_COLOR_H */ |