bool ReadColour(const std::string& filename, const std::string& section, const std::string& key, Color& value, const Color& defaultv) { std::string string; value = defaultv; if(!GetString(filename,section,key,string)) return false; value = StrToCol(string); return true; }
bool IniReader::ReadColour(const std::string §ion, const std::string &key, Color &value, const Color &defaultv) const { std::string string; value = defaultv; if(!GetString(section, key, string)) return false; value = StrToCol(string); return true; }
/////////////////// // Apply a selector to one border side void CBorder::ApplySelectorToBorder(const CSSParser::Selector &sel, const std::string &prefix, const std::string &side, CBorder::BorderLineSettings &sett) { bool fail = false; std::string att = prefix + "border-" + side; FOR_EACH_ATTRIBUTE(sel, it) { if (it->getName() == att + "color" || it->getName() == att + "light" || it->getName() == "colour") { sett.clLight.set(it->getFirstValue().getColor(sett.clLight), it->getPriority()); sett.clDark.set(sett.clLight, it->getPriority()); } else if (it->getName() == att + "dark") { sett.clDark.set(it->getFirstValue().getColor(sett.clDark), it->getPriority()); } else if (it->getName() == att + "size") { sett.iThickness.set(it->getFirstValue().getInteger(0), it->getPriority()); } else if (it->getName() == att + "style") { sett.iStyle.set(StringToBorderStyle(it->getFirstValue().getString(), fail), it->getPriority()); } else if (it->getName() == att + "image") { sett.bmpLine.set(LoadGameImage(JoinPaths(sel.getBaseURL(), it->getFirstValue().getURL())), it->getPriority()); } else if (it->getName() == prefix + "border") { bool thickness_set = false; for (std::vector<CSSParser::Attribute::Value>::const_iterator val = it->getParsedValue().begin(); val != it->getParsedValue().end(); val++) { // Style BorderStyle style = StringToBorderStyle(val->getString(), fail); if (!fail) { sett.iStyle.set(style, it->getPriority()); if (!thickness_set) sett.iThickness.set(MAX(1, (int)sett.iThickness), it->getPriority()); // for example "border: solid black" means "1px solid black" continue; } // Thickness int thick = from_string<int>(val->getString(), fail); if (!fail && thick >= 0) { thickness_set = true; sett.iThickness.set(thick, it->getPriority()); } // Color Color c = StrToCol(val->getString(), fail); if (!fail) { sett.clDark.set(c, it->getPriority()); sett.clLight.set(c, it->getPriority()); } } } } }