Example #1
0
bool __ParseString<CSize>(const CStrW& Value, CSize &Output)
{
	// Use the parser to parse the values
	CParser& parser (CParserCache::Get("_$value_$value_"));

	CParserLine line;
	line.ParseString(parser, Value.ToUTF8());
	if (!line.m_ParseOK)
	{
		// Parsing failed
		return false;
	}

	float x, y;

	// x
	if (!line.GetArgFloat(0, x))
	{
		// TODO Gee: Parsing failed
		return false;
	}

	// y
	if (!line.GetArgFloat(1, y))
	{
		// TODO Gee: Parsing failed
		return false;
	}

	Output.cx = x;
	Output.cy = y;
	
	return true;
}
Example #2
0
bool CColor::ParseString(const CStr8& Value, float DefaultAlpha)
{
	// Use the parser to parse the values
	CParser& parser (CParserCache::Get("_[-$arg(_minus)]$value_[-$arg(_minus)]$value_[-$arg(_minus)]$value_[[-$arg(_minus)]$value_]"));

	std::string str = Value;

	CParserLine line;
	line.ParseString(parser, str);
	if (!line.m_ParseOK)
	{
		// TODO Gee: Parsing failed
		return false;
	}
	float values[4];
	values[3] = DefaultAlpha;
	for (int i=0; i<(int)line.GetArgCount(); ++i)
	{
		if (!line.GetArgFloat(i, values[i]))
		{
			// Parsing failed
			return false;
		}
	}

	r = values[0]/255.f;
	g = values[1]/255.f;
	b = values[2]/255.f;
	a = values[3]/255.f;

	return true;
}
Example #3
0
bool __ParseString<CRect>(const CStrW& Value, CRect &Output)
{
	// Use the parser to parse the values
	CParser& parser (CParserCache::Get("_$value_$value_$value_$value_"));

	CParserLine line;
	line.ParseString(parser, Value.ToUTF8());
	if (!line.m_ParseOK)
	{
		// Parsing failed
		return false;
	}
	float values[4];
	for (int i=0; i<4; ++i)
	{
		if (!line.GetArgFloat(i, values[i]))
		{
			// Parsing failed
			return false;
		}
	}

	// Finally the rectangle values
	Output = CRect(values[0], values[1], values[2], values[3]);
	return true;
}
Example #4
0
bool __ParseString<CPos>(const CStrW& Value, CPos &Output)
{
	CParser& parser (CParserCache::Get("_[-$arg(_minus)]$value_[-$arg(_minus)]$value_"));

	CParserLine line;
	line.ParseString(parser, Value.ToUTF8());
	if (!line.m_ParseOK)
		return false;

	float x, y;
	if (!line.GetArgFloat(0, x))
		return false;
	if (!line.GetArgFloat(1, y))
		return false;

	Output.x = x;
	Output.y = y;

	return true;
}