本文整理汇总了C++中ChromeClient::addTextFieldDecorationsTo方法的典型用法代码示例。如果您正苦于以下问题:C++ ChromeClient::addTextFieldDecorationsTo方法的具体用法?C++ ChromeClient::addTextFieldDecorationsTo怎么用?C++ ChromeClient::addTextFieldDecorationsTo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ChromeClient
的用法示例。
在下文中一共展示了ChromeClient::addTextFieldDecorationsTo方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: createShadowSubtree
void TextFieldInputType::createShadowSubtree()
{
ASSERT(element()->hasShadowRoot());
ASSERT(!m_innerText);
ASSERT(!m_innerBlock);
ASSERT(!m_innerSpinButton);
Document* document = element()->document();
ChromeClient* chromeClient = document->page() ? document->page()->chrome()->client() : 0;
bool shouldAddDecorations = chromeClient && chromeClient->willAddTextFieldDecorationsTo(element());
bool shouldHaveSpinButton = this->shouldHaveSpinButton();
bool createsContainer = shouldHaveSpinButton || needsContainer() || shouldAddDecorations;
ExceptionCode ec = 0;
m_innerText = TextControlInnerTextElement::create(document);
if (!createsContainer) {
element()->shadowTree()->oldestShadowRoot()->appendChild(m_innerText, ec);
return;
}
ShadowRoot* shadowRoot = element()->shadowTree()->oldestShadowRoot();
m_container = HTMLDivElement::create(document);
m_container->setShadowPseudoId("-webkit-textfield-decoration-container");
shadowRoot->appendChild(m_container, ec);
m_innerBlock = TextControlInnerElement::create(document);
m_innerBlock->appendChild(m_innerText, ec);
m_container->appendChild(m_innerBlock, ec);
#if ENABLE(INPUT_SPEECH)
ASSERT(!m_speechButton);
if (element()->isSpeechEnabled()) {
m_speechButton = InputFieldSpeechButtonElement::create(document);
m_container->appendChild(m_speechButton, ec);
}
#endif
if (shouldHaveSpinButton) {
m_innerSpinButton = SpinButtonElement::create(document);
m_container->appendChild(m_innerSpinButton, ec);
}
if (shouldAddDecorations)
chromeClient->addTextFieldDecorationsTo(element());
}