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;
}
Esempio n. 2
0
bool IniReader::ReadColour(const std::string &section, 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;
}
Esempio n. 3
0
///////////////////
// 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());
				}
			}
		}
	}
}