From 30b962eb5184490c10cd9f44cd161e4b93403b37 Mon Sep 17 00:00:00 2001 From: Dees_Troy Date: Fri, 19 Oct 2012 20:48:59 -0400 Subject: Add keyboard key highlight --- gui/pages.cpp | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'gui/pages.cpp') diff --git a/gui/pages.cpp b/gui/pages.cpp index 7e9274def..c4a65b43a 100644 --- a/gui/pages.cpp +++ b/gui/pages.cpp @@ -54,17 +54,24 @@ int ConvertStrToColor(std::string str, COLOR* color) if (str[0] != '#') return -1; str.erase(0, 1); - int result = strtol(str.c_str(), NULL, 16); - if (str.size() > 6) - { - // We have alpha channel - color->alpha = result & 0x000000FF; - result = result >> 8; - } - color->red = (result >> 16) & 0x000000FF; - color->green = (result >> 8) & 0x000000FF; - color->blue = result & 0x000000FF; - return 0; + int result; + if (str.size() >= 8) { + // We have alpha channel + string alpha = str.substr(6, 2); + result = strtol(alpha.c_str(), NULL, 16); + color->alpha = result & 0x000000FF; + str.resize(6); + result = strtol(str.c_str(), NULL, 16); + color->red = (result >> 16) & 0x000000FF; + color->green = (result >> 8) & 0x000000FF; + color->blue = result & 0x000000FF; + } else { + result = strtol(str.c_str(), NULL, 16); + color->red = (result >> 16) & 0x000000FF; + color->green = (result >> 8) & 0x000000FF; + color->blue = result & 0x000000FF; + } + return 0; } // Helper APIs -- cgit v1.2.3