#ifndef KSVG_SVGHelper_H
#define KSVG_SVGHelper_H
#if SVG_SUPPORT
#include "DeprecatedString.h"
namespace WebCore
{
class SVGElement;
class SVGStringList;
enum LengthMode
{
LM_UNKNOWN = 0,
LM_WIDTH,
LM_HEIGHT,
LM_OTHER
};
class SVGHelper
{
public:
static float PercentageOfViewport(float value, const SVGElement *viewportElement, LengthMode mode);
static void ParseSeperatedList(SVGStringList *list, const DeprecatedString &data, const DeprecatedChar &delimiter = ',');
};
template<class T>
T *lazy_create(RefPtr<T> &variable)
{
if(!variable)
variable = new T();
return variable.get();
}
template<class T, class Arg1>
T *lazy_create(RefPtr<T> &variable, Arg1 arg1)
{
if(!variable)
variable = new T(arg1);
return variable.get();
}
template<class T, class Arg1, class Arg2>
T *lazy_create(RefPtr<T> &variable, Arg1 arg1, Arg2 arg2)
{
if(!variable)
variable = new T(arg1, arg2);
return variable.get();
}
template<class T, class Arg1, class Arg2, class Arg3>
T *lazy_create(RefPtr<T> &variable, Arg1 arg1, Arg2 arg2, Arg3 arg3)
{
if(!variable)
variable = new T(arg1, arg2, arg3);
return variable.get();
}
template<class T, class Arg1, class Arg2, class Arg3, class Arg4>
T *lazy_create(RefPtr<T> &variable, Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4)
{
if(!variable)
variable = new T(arg1, arg2, arg3, arg4);
return variable.get();
}
template<class T, class Arg1, class Arg2, class Arg3, class Arg4, class Arg5>
T *lazy_create(RefPtr<T> &variable, Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4, Arg5 arg5)
{
if(!variable)
variable = new T(arg1, arg2, arg3, arg4, arg5);
return variable.get();
}
};
#endif // SVG_SUPPORT
#endif