diff options
-rw-r--r-- | components/chatmessage.cpp | 14 | ||||
-rw-r--r-- | util.hpp | 14 |
2 files changed, 17 insertions, 11 deletions
diff --git a/components/chatmessage.cpp b/components/chatmessage.cpp index 9d4aa46..bb61e81 100644 --- a/components/chatmessage.cpp +++ b/components/chatmessage.cpp @@ -2,6 +2,7 @@ #include <iomanip> #include "chatmessage.hpp" #include "../abaddon.hpp" +#include "../util.hpp" ChatMessageContainer::ChatMessageContainer(const MessageData *data) { UserID = data->Author.ID; @@ -271,17 +272,8 @@ void ChatMessageEmbedItem::DoLayout() { if (m_embed.Color != -1) { auto provider = Gtk::CssProvider::create(); // this seems wrong - int r = (m_embed.Color & 0xFF0000) >> 16; - int g = (m_embed.Color & 0x00FF00) >> 8; - int b = (m_embed.Color & 0x0000FF) >> 0; - std::stringstream css; // lol - css << ".embed { border-left: 2px solid #" - << std::hex << std::setw(2) << std::setfill('0') << r - << std::hex << std::setw(2) << std::setfill('0') << g - << std::hex << std::setw(2) << std::setfill('0') << b - << "; }"; - - provider->load_from_data(css.str()); + std::string css = ".embed { border-left: 2px solid #" + IntToCSSColor(m_embed.Color) + "; }"; + provider->load_from_data(css); style->add_provider(provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); } @@ -4,6 +4,9 @@ #include <vector> #include <functional> #include <iterator> +#include <sstream> +#include <string> +#include <iomanip> template<typename T> inline void AlphabeticalSort(typename T start, typename T end, std::function<std::string(const typename std::iterator_traits<T>::value_type &)> get_string) { @@ -29,3 +32,14 @@ inline void AlphabeticalSort(typename T start, typename T end, std::function<std return ac[0] || ac[5]; }); } + +inline std::string IntToCSSColor(int color) { + int r = (color & 0xFF0000) >> 16; + int g = (color & 0x00FF00) >> 8; + int b = (color & 0x0000FF) >> 0; + std::stringstream ss; + ss << std::hex << std::setw(2) << std::setfill('0') << r + << std::hex << std::setw(2) << std::setfill('0') << g + << std::hex << std::setw(2) << std::setfill('0') << b; + return ss.str(); +} |