本文整理汇总了C++中StyleSheet::isCSSStyleSheet方法的典型用法代码示例。如果您正苦于以下问题:C++ StyleSheet::isCSSStyleSheet方法的具体用法?C++ StyleSheet::isCSSStyleSheet怎么用?C++ StyleSheet::isCSSStyleSheet使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StyleSheet
的用法示例。
在下文中一共展示了StyleSheet::isCSSStyleSheet方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setSelectorText
void CSSStyleRule::setSelectorText(const String& selectorText)
{
Document* doc = 0;
StyleSheet* ownerStyleSheet = m_style->stylesheet();
if (ownerStyleSheet) {
if (ownerStyleSheet->isCSSStyleSheet())
doc = static_cast<CSSStyleSheet*>(ownerStyleSheet)->document();
if (!doc)
doc = ownerStyleSheet->ownerNode() ? ownerStyleSheet->ownerNode()->document() : 0;
}
if (!doc)
doc = m_style->node() ? m_style->node()->document() : 0;
if (!doc)
return;
CSSParser p;
CSSSelectorList selectorList;
p.parseSelector(selectorText, doc, selectorList);
if (!selectorList.first())
return;
String oldSelectorText = this->selectorText();
m_selectorList.adopt(selectorList);
if (this->selectorText() == oldSelectorText)
return;
doc->styleSelectorChanged(DeferRecalcStyle);
}
示例2:
CSSStyleSheet::CSSStyleSheet(const StyleSheet &other)
{
if (!other.isCSSStyleSheet())
impl = 0;
else
operator=(other);
}
示例3: inspectorStyleSheet
CSSStyleSheet* InspectorCSSStore::inspectorStyleSheet(Document* ownerDocument, bool createIfAbsent, long callId)
{
DocumentToStyleSheetMap::iterator it = m_documentNodeToInspectorStyleSheetMap.find(ownerDocument);
if (it != m_documentNodeToInspectorStyleSheetMap.end())
return it->second.get();
if (!createIfAbsent)
return 0;
ExceptionCode ec = 0;
RefPtr<Element> styleElement = ownerDocument->createElement("style", ec);
if (!ec)
styleElement->setAttribute("type", "text/css", ec);
if (!ec)
ownerDocument->head()->appendChild(styleElement, ec);
if (ec) {
m_inspectorController->inspectorFrontend()->didAddRule(callId, ScriptValue::undefined(), false);
return 0;
}
StyleSheetList* styleSheets = ownerDocument->styleSheets();
StyleSheet* styleSheet = styleSheets->item(styleSheets->length() - 1);
if (!styleSheet->isCSSStyleSheet()) {
m_inspectorController->inspectorFrontend()->didAddRule(callId, ScriptValue::undefined(), false);
return 0;
}
CSSStyleSheet* inspectorStyleSheet = static_cast<CSSStyleSheet*>(styleSheet);
m_documentNodeToInspectorStyleSheetMap.set(ownerDocument, inspectorStyleSheet);
return inspectorStyleSheet;
}
示例4: parentStyleSheet
// static
CSSStyleSheet* InspectorCSSAgent::parentStyleSheet(StyleBase* styleBase)
{
if (!styleBase)
return 0;
StyleSheet* styleSheet = styleBase->stylesheet();
if (styleSheet && styleSheet->isCSSStyleSheet())
return static_cast<CSSStyleSheet*>(styleSheet);
return 0;
}
示例5: canBeActivated
bool StyleSheetCandidate::canBeActivated(const String& currentPreferrableName) const
{
StyleSheet* sheet = this->sheet();
if (!sheet || sheet->disabled() || !sheet->isCSSStyleSheet())
return false;
const AtomicString& title = this->title();
if (!isEnabledViaScript() && !title.isEmpty() && title != currentPreferrableName)
return false;
if (isAlternate() && title.isEmpty())
return false;
return true;
}
示例6: getAllStyles
void InspectorCSSAgent::getAllStyles(RefPtr<InspectorArray>* styles)
{
Vector<Document*> documents = m_domAgent->documents();
for (Vector<Document*>::iterator it = documents.begin(); it != documents.end(); ++it) {
StyleSheetList* list = (*it)->styleSheets();
for (unsigned i = 0; i < list->length(); ++i) {
StyleSheet* styleSheet = list->item(i);
if (styleSheet->isCSSStyleSheet()) {
InspectorStyleSheet* inspectorStyleSheet = bindStyleSheet(static_cast<CSSStyleSheet*>(styleSheet));
(*styles)->pushString(inspectorStyleSheet->id());
}
}
}
}
示例7: collectStyleSheets
void ShadowTreeStyleSheetCollection::collectStyleSheets(StyleEngine* collections, Vector<RefPtr<StyleSheet> >& styleSheets, Vector<RefPtr<CSSStyleSheet> >& activeSheets)
{
if (document()->settings() && !document()->settings()->authorAndUserStylesEnabled())
return;
DocumentOrderedList::iterator begin = m_styleSheetCandidateNodes.begin();
DocumentOrderedList::iterator end = m_styleSheetCandidateNodes.end();
for (DocumentOrderedList::iterator it = begin; it != end; ++it) {
Node* node = *it;
StyleSheet* sheet = 0;
CSSStyleSheet* activeSheet = 0;
if (!node->isHTMLElement() || !node->hasTagName(styleTag))
continue;
Element* element = toElement(node);
AtomicString title = element->getAttribute(titleAttr);
bool enabledViaScript = false;
sheet = toHTMLStyleElement(node)->sheet();
if (sheet && !sheet->disabled() && sheet->isCSSStyleSheet())
activeSheet = static_cast<CSSStyleSheet*>(sheet);
// FIXME: clarify how PREFERRED or ALTERNATE works in shadow trees.
// Should we set preferred/selected stylesheets name in shadow trees and
// use the name in document?
AtomicString rel = element->getAttribute(relAttr);
if (!enabledViaScript && sheet && !title.isEmpty()) {
if (collections->preferredStylesheetSetName().isEmpty()) {
if (element->hasLocalName(styleTag) || !rel.contains("alternate")) {
collections->setPreferredStylesheetSetName(title);
collections->setSelectedStylesheetSetName(title);
}
}
if (title != collections->preferredStylesheetSetName())
activeSheet = 0;
}
if (rel.contains("alternate") && title.isEmpty())
activeSheet = 0;
if (sheet)
styleSheets.append(sheet);
if (activeSheet)
activeSheets.append(activeSheet);
}
}
示例8: collectStyleSheets
void ShadowTreeStyleSheetCollection::collectStyleSheets(StyleEngine* engine, StyleSheetCollection& collection)
{
DocumentOrderedList::iterator begin = m_styleSheetCandidateNodes.begin();
DocumentOrderedList::iterator end = m_styleSheetCandidateNodes.end();
for (DocumentOrderedList::iterator it = begin; it != end; ++it) {
Node* node = *it;
StyleSheet* sheet = 0;
CSSStyleSheet* activeSheet = 0;
if (!isHTMLStyleElement(*node))
continue;
HTMLStyleElement* element = toHTMLStyleElement(node);
const AtomicString& title = element->fastGetAttribute(titleAttr);
bool enabledViaScript = false;
sheet = element->sheet();
if (sheet && !sheet->disabled() && sheet->isCSSStyleSheet())
activeSheet = toCSSStyleSheet(sheet);
// FIXME: clarify how PREFERRED or ALTERNATE works in shadow trees.
// Should we set preferred/selected stylesheets name in shadow trees and
// use the name in document?
if (!enabledViaScript && sheet && !title.isEmpty()) {
if (engine->preferredStylesheetSetName().isEmpty()) {
engine->setPreferredStylesheetSetName(title);
engine->setSelectedStylesheetSetName(title);
}
if (title != engine->preferredStylesheetSetName())
activeSheet = 0;
}
const AtomicString& rel = element->fastGetAttribute(relAttr);
if (rel.contains("alternate") && title.isEmpty())
activeSheet = 0;
if (sheet)
collection.appendSheetForList(sheet);
if (activeSheet)
collection.appendActiveStyleSheet(activeSheet);
}
}
示例9: viaInspectorStyleSheet
InspectorStyleSheet* InspectorCSSAgent::viaInspectorStyleSheet(Document* document, bool createIfAbsent)
{
if (!document) {
ASSERT(!createIfAbsent);
return 0;
}
RefPtr<InspectorStyleSheet> inspectorStyleSheet = m_documentToInspectorStyleSheet.get(document);
if (inspectorStyleSheet || !createIfAbsent)
return inspectorStyleSheet.get();
ExceptionCode ec = 0;
RefPtr<Element> styleElement = document->createElement("style", ec);
if (!ec)
styleElement->setAttribute("type", "text/css", ec);
if (!ec) {
ContainerNode* targetNode;
// HEAD is absent in ImageDocuments, for example.
if (document->head())
targetNode = document->head();
else if (document->body())
targetNode = document->body();
else
return 0;
targetNode->appendChild(styleElement, ec);
}
if (ec)
return 0;
StyleSheetList* styleSheets = document->styleSheets();
StyleSheet* styleSheet = styleSheets->item(styleSheets->length() - 1);
if (!styleSheet->isCSSStyleSheet())
return 0;
CSSStyleSheet* cssStyleSheet = static_cast<CSSStyleSheet*>(styleSheet);
String id = String::number(m_lastStyleSheetId++);
inspectorStyleSheet = InspectorStyleSheet::create(id, cssStyleSheet, "inspector", m_domAgent->documentURLString(document));
m_idToInspectorStyleSheet.set(id, inspectorStyleSheet);
m_cssStyleSheetToInspectorStyleSheet.set(cssStyleSheet, inspectorStyleSheet);
m_documentToInspectorStyleSheet.set(document, inspectorStyleSheet);
return inspectorStyleSheet.get();
}
示例10: serializeFrame
void PageSerializer::serializeFrame(Frame* frame)
{
Document* document = frame->document();
KURL url = document->url();
if (!url.isValid() || url.protocolIs("about")) {
// For blank frames we generate a fake URL so they can be referenced by their containing frame.
url = urlForBlankFrame(frame);
}
if (m_resourceURLs.contains(url)) {
// FIXME: We could have 2 frame with the same URL but which were dynamically changed and have now
// different content. So we should serialize both and somehow rename the frame src in the containing
// frame. Arg!
return;
}
Vector<Node*> nodes;
SerializerMarkupAccumulator accumulator(this, document, &nodes);
TextEncoding textEncoding(document->charset());
CString data;
if (!textEncoding.isValid()) {
// FIXME: iframes used as images trigger this. We should deal with them correctly.
return;
}
String text = accumulator.serializeNodes(document->documentElement(), 0, IncludeNode);
CString frameHTML = textEncoding.encode(text.characters(), text.length(), EntitiesForUnencodables);
m_resources->append(Resource(url, document->suggestedMIMEType(), SharedBuffer::create(frameHTML.data(), frameHTML.length())));
m_resourceURLs.add(url);
for (Vector<Node*>::iterator iter = nodes.begin(); iter != nodes.end(); ++iter) {
Node* node = *iter;
if (!node->isElementNode())
continue;
Element* element = toElement(node);
// We have to process in-line style as it might contain some resources (typically background images).
retrieveResourcesForCSSDeclaration(element->style());
if (element->hasTagName(HTMLNames::imgTag)) {
HTMLImageElement* imageElement = static_cast<HTMLImageElement*>(element);
KURL url = document->completeURL(imageElement->getAttribute(HTMLNames::srcAttr));
CachedImage* cachedImage = imageElement->cachedImage();
addImageToResources(cachedImage, url);
} else if (element->hasTagName(HTMLNames::linkTag)) {
HTMLLinkElement* linkElement = static_cast<HTMLLinkElement*>(element);
StyleSheet* sheet = linkElement->sheet();
if (sheet && sheet->isCSSStyleSheet()) {
KURL url = document->completeURL(linkElement->getAttribute(HTMLNames::hrefAttr));
serializeCSSStyleSheet(static_cast<CSSStyleSheet*>(sheet), url);
ASSERT(m_resourceURLs.contains(url));
}
} else if (element->hasTagName(HTMLNames::styleTag)) {
HTMLStyleElement* styleElement = static_cast<HTMLStyleElement*>(element);
StyleSheet* sheet = styleElement->sheet();
if (sheet && sheet->isCSSStyleSheet())
serializeCSSStyleSheet(static_cast<CSSStyleSheet*>(sheet), KURL());
}
}
for (Frame* childFrame = frame->tree()->firstChild(); childFrame; childFrame = childFrame->tree()->nextSibling())
serializeFrame(childFrame);
}