コード例 #1
0
ファイル: InputType.cpp プロジェクト: biddyweb/switch-oss
Ref<InputType> InputType::create(HTMLInputElement& element, const AtomicString& typeName)
{
#if !PLATFORM(WKC)
    static NeverDestroyed<InputTypeFactoryMap> factoryMap;
    if (factoryMap.get().isEmpty())
        populateInputTypeFactoryMap(factoryMap);

    if (!typeName.isEmpty()) {
        if (auto factory = factoryMap.get().get(typeName))
            return factory(element);
    }
    return adoptRef(*new TextInputType(element));
#else
    WKC_DEFINE_STATIC_PTR(InputTypeFactoryMap*, factoryMap, 0);
    if (!factoryMap)
        factoryMap = new InputTypeFactoryMap();
    if (factoryMap->isEmpty())
        populateInputTypeFactoryMap(*factoryMap);

    if (!typeName.isEmpty()) {
        if (auto factory = factoryMap->get(typeName))
            return factory(element);
    }
    return adoptRef(*new TextInputType(element));
#endif
}