String QualifiedName::toString() const { if (!hasPrefix()) return localName(); return prefix().string() + ':' + localName().string(); }
void HTMLBodyElement::collectStyleForPresentationAttribute(const QualifiedName& name, const AtomicString& value, MutableStylePropertySet* style) { if (name == backgroundAttr) { String url = stripLeadingAndTrailingHTMLSpaces(value); if (!url.isEmpty()) { RefPtrWillBeRawPtr<CSSImageValue> imageValue = CSSImageValue::create(url, document().completeURL(url)); imageValue->setInitiator(localName()); imageValue->setReferrer(Referrer(document().outgoingReferrer(), document().referrerPolicy())); style->setProperty(CSSProperty(CSSPropertyBackgroundImage, imageValue.release())); } } else if (name == marginwidthAttr || name == leftmarginAttr) { addHTMLLengthToStyle(style, CSSPropertyMarginRight, value); addHTMLLengthToStyle(style, CSSPropertyMarginLeft, value); } else if (name == marginheightAttr || name == topmarginAttr) { addHTMLLengthToStyle(style, CSSPropertyMarginBottom, value); addHTMLLengthToStyle(style, CSSPropertyMarginTop, value); } else if (name == bgcolorAttr) { addHTMLColorToStyle(style, CSSPropertyBackgroundColor, value); } else if (name == textAttr) { addHTMLColorToStyle(style, CSSPropertyColor, value); } else if (name == bgpropertiesAttr) { if (equalIgnoringCase(value, "fixed")) { UseCounter::count(document(), UseCounter::BgPropertiesFixed); addPropertyToPresentationAttributeStyle(style, CSSPropertyBackgroundAttachment, CSSValueFixed); } } else HTMLElement::collectStyleForPresentationAttribute(name, value, style); }
void StyledElement::makePresentationAttributeCacheKey(PresentationAttributeCacheKey& result) const { // FIXME: Enable for SVG. if (namespaceURI() != xhtmlNamespaceURI) return; // Interpretation of the size attributes on <input> depends on the type attribute. if (hasTagName(inputTag)) return; for (const Attribute& attribute : attributesIterator()) { if (!isPresentationAttribute(attribute.name())) continue; if (!attribute.namespaceURI().isNull()) return; // FIXME: Background URL may depend on the base URL and can't be shared. Disallow caching. if (attribute.name() == backgroundAttr) return; result.attributesAndValues.append(std::make_pair(attribute.localName().impl(), attribute.value())); } if (result.attributesAndValues.isEmpty()) return; // Attribute order doesn't matter. Sort for easy equality comparison. std::sort(result.attributesAndValues.begin(), result.attributesAndValues.end(), attributeNameSort); // The cache key is non-null when the tagName is set. result.tagName = localName().impl(); }
void DirectoryScanner::attribute(const QXmlName &name, const QStringRef &value) { QString localName(name.localName(namePool)); if(localName == "name") { this->name = value.toString(); } else if(localName == "title") { title = value.toString(); } else if(localName == "type") { type = value.toString(); fsBaseFinder.setShortcutMode(type == "shortcut"); } else if(localName == "ev") { fsBaseFinder.setEV(value.toString()); } else if(localName == "path") { fsBaseFinder.setPath(value.toString()); regBaseFinder.setPath(value.toString()); } else if(localName == "key") { regBaseFinder.setKey(value.toString()); } else if(localName == "root") { regBaseFinder.setRoot(value.toString()); } else if(localName == "includepath") { include << value.toString(); } else if(localName == "excludepath") { exclude << value.toString(); } }
String QualifiedName::toString() const { String local = localName(); if (hasPrefix()) return prefix() + ":" + local; return local; }
/*! Returns the local name. Note that for efficiency, the local name string is not stored in the QXmlName but in the \l {QXmlNamePool} that was passed to the constructor. Hence, that same \a namePool must be passed to this function, so it can be used for looking up the local name. */ QString QXmlName::localName(const QXmlNamePool &namePool) const { if(isNull()) return QString(); else return namePool.d->stringForLocalName(localName()); }
void HTMLElement::setOuterText(const String &text, ExceptionState& exceptionState) { if (ieForbidsInsertHTML()) { exceptionState.throwDOMException(NoModificationAllowedError, "The '" + localName() + "' element does not support text insertion."); return; } if (hasLocalName(colTag) || hasLocalName(colgroupTag) || hasLocalName(framesetTag) || hasLocalName(headTag) || hasLocalName(htmlTag) || hasLocalName(tableTag) || hasLocalName(tbodyTag) || hasLocalName(tfootTag) || hasLocalName(theadTag) || hasLocalName(trTag)) { exceptionState.throwDOMException(NoModificationAllowedError, "The '" + localName() + "' element does not support text insertion."); return; } ContainerNode* parent = parentNode(); if (!parent) { exceptionState.throwDOMException(NoModificationAllowedError, "The element has no parent."); return; } RefPtr<Node> prev = previousSibling(); RefPtr<Node> next = nextSibling(); RefPtr<Node> newChild; // Convert text to fragment with <br> tags instead of linebreaks if needed. if (text.contains('\r') || text.contains('\n')) newChild = textToFragment(text, exceptionState); else newChild = Text::create(document(), text); // textToFragment might cause mutation events. if (!this || !parentNode()) exceptionState.throwDOMException(HierarchyRequestError, "The element has no parent."); if (exceptionState.hadException()) return; parent->replaceChild(newChild.release(), this, exceptionState); RefPtr<Node> node = next ? next->previousSibling() : 0; if (!exceptionState.hadException() && node && node->isTextNode()) mergeWithNextTextNode(node.release(), exceptionState); if (!exceptionState.hadException() && prev && prev->isTextNode()) mergeWithNextTextNode(prev.release(), exceptionState); }
void HTMLElement::setInnerText(const String& text, ExceptionState& exceptionState) { if (ieForbidsInsertHTML()) { exceptionState.throwDOMException(NoModificationAllowedError, "The '" + localName() + "' element does not support text insertion."); return; } if (hasLocalName(colTag) || hasLocalName(colgroupTag) || hasLocalName(framesetTag) || hasLocalName(headTag) || hasLocalName(htmlTag) || hasLocalName(tableTag) || hasLocalName(tbodyTag) || hasLocalName(tfootTag) || hasLocalName(theadTag) || hasLocalName(trTag)) { exceptionState.throwDOMException(NoModificationAllowedError, "The '" + localName() + "' element does not support text insertion."); return; } // FIXME: This doesn't take whitespace collapsing into account at all. if (!text.contains('\n') && !text.contains('\r')) { if (text.isEmpty()) { removeChildren(); return; } replaceChildrenWithText(this, text, exceptionState); return; } // FIXME: Do we need to be able to detect preserveNewline style even when there's no renderer? // FIXME: Can the renderer be out of date here? Do we need to call updateStyleIfNeeded? // For example, for the contents of textarea elements that are display:none? RenderObject* r = renderer(); if (r && r->style()->preserveNewline()) { if (!text.contains('\r')) { replaceChildrenWithText(this, text, exceptionState); return; } String textWithConsistentLineBreaks = text; textWithConsistentLineBreaks.replace("\r\n", "\n"); textWithConsistentLineBreaks.replace('\r', '\n'); replaceChildrenWithText(this, textWithConsistentLineBreaks, exceptionState); return; } // Add text nodes and <br> elements. RefPtr<DocumentFragment> fragment = textToFragment(text, exceptionState); if (!exceptionState.hadException()) replaceChildrenWithFragment(this, fragment.release(), exceptionState); }
Fl_String get_localized_name(Fl_Config &iconConfig) { Fl_String localName(get_localized_string()); Fl_String icon_name; if(iconConfig.get("Desktop Entry", localName, icon_name, "")) { iconConfig.get("Desktop Entry", "Name", icon_name, "None"); } return icon_name; }
void HTMLElement::setOuterText(const String& text, ExceptionState& exceptionState) { if (ieForbidsInsertHTML()) { exceptionState.throwDOMException(NoModificationAllowedError, "The '" + localName() + "' element does not support text insertion."); return; } if (shouldProhibitSetInnerOuterText(*this)) { exceptionState.throwDOMException(NoModificationAllowedError, "The '" + localName() + "' element does not support text insertion."); return; } ContainerNode* parent = parentNode(); if (!parent) { exceptionState.throwDOMException(NoModificationAllowedError, "The element has no parent."); return; } RefPtrWillBeRawPtr<Node> prev = previousSibling(); RefPtrWillBeRawPtr<Node> next = nextSibling(); RefPtrWillBeRawPtr<Node> newChild = nullptr; // Convert text to fragment with <br> tags instead of linebreaks if needed. if (text.contains('\r') || text.contains('\n')) newChild = textToFragment(text, exceptionState); else newChild = Text::create(document(), text); // textToFragment might cause mutation events. if (!parentNode()) exceptionState.throwDOMException(HierarchyRequestError, "The element has no parent."); if (exceptionState.hadException()) return; parent->replaceChild(newChild.release(), this, exceptionState); RefPtrWillBeRawPtr<Node> node = next ? next->previousSibling() : nullptr; if (!exceptionState.hadException() && node && node->isTextNode()) mergeWithNextTextNode(toText(node.get()), exceptionState); if (!exceptionState.hadException() && prev && prev->isTextNode()) mergeWithNextTextNode(toText(prev.get()), exceptionState); }
/** * Returns the namespace prefix, like "html". Possibly empty. */ jstring qName() { if (*mPrefix == 0) { return localName(); } // return prefix + ":" + localName ::LocalArray<1024> qName(strlen(mPrefix) + 1 + strlen(mLocalName) + 1); snprintf(&qName[0], qName.size(), "%s:%s", mPrefix, mLocalName); return internString(mEnv, mParsingContext, &qName[0]); }
virtual HRESULT STDMETHODCALLTYPE endElement(/* [in] */ const wchar_t *pwchNamespaceUri, /* [in] */ int cchNamespaceUri, /* [in] */ const wchar_t *pwchLocalName, /* [in] */ int cchLocalName, /* [in] */ const wchar_t *pwchRawName, /* [in] */ int cchRawName) { CString localName(pwchLocalName, cchLocalName); if(m_pSeries) { if(localName == _T("id")) { m_pSeries->id = _ttoi(curChars); } else if(localName == _T("SeriesName")) { m_pSeries->SeriesName = curChars; } else if(localName == _T("banner")) { m_pSeries->banner = curChars; } else if(localName == _T("poster")) { m_pSeries->poster = curChars; } else if(localName == _T("fanart")) { m_pSeries->fanart = curChars; } else if(localName == _T("Overview")) { m_pSeries->Overview = curChars; } else if(localName == _T("FirstAired")) { int year, month, day; _stscanf(curChars, _T("%d-%d-%d"), &year, &month, &day); m_pSeries->FirstAired.SetDate(year, month, day); } else if(localName == _T("Series")) { if(m_pSeriesArray) m_pSeriesArray->Add(m_pSeries); else delete m_pSeries; m_pSeries = NULL; } } else if(m_pEpisode) { if(localName == _T("id")) { m_pEpisode->id = _ttoi(curChars); } else if(localName == _T("SeasonNumber")) { m_pEpisode->SeasonNumber = _ttoi(curChars); } else if(localName == _T("EpisodeNumber")) { m_pEpisode->EpisodeNumber = _ttoi(curChars); } else if(localName == _T("EpisodeName")) { m_pEpisode->EpisodeName = curChars; } else if(localName == _T("Overview")) { m_pEpisode->Overview = curChars; } else if(localName == _T("FirstAired")) { int year, month, day; _stscanf(curChars, _T("%d-%d-%d"), &year, &month, &day); m_pEpisode->FirstAired.SetDate(year, month, day); } else if(localName == _T("Episode")) { if(m_pEpisodeArray && !m_pEpisode->EpisodeName.IsEmpty()) // skip episodes with empty name m_pEpisodeArray->Add(m_pEpisode); else delete m_pEpisode; m_pEpisode = NULL; } } curChars.Empty(); return S_OK; }
QCString NamespaceDef::displayName(bool includeScope) const { QCString result=includeScope ? name() : localName(); SrcLangExt lang = getLanguage(); QCString sep = getLanguageSpecificSeparator(lang); if (sep!="::") { result = substitute(result,"::",sep); } //printf("NamespaceDef::displayName() %s->%s lang=%d\n",name().data(),result.data(),lang); return result; }
/*! Returns the string used in the footer for $navpath when * GENERATE_TREEVIEW is enabled */ QCString Definition::navigationPathAsString() const { QCString result; Definition *outerScope = getOuterScope(); QCString locName = localName(); /* if (outerScope && outerScope!=Doxygen::globalScope) { result+=outerScope->navigationPathAsString(); } else if (definitionType()==Definition::TypeFile && ((const FileDef*)this)->getDirDef()) { result+=((const FileDef*)this)->getDirDef()->navigationPathAsString(); } result+="<li class=\"navelem\">"; if (isLinkable()) { if (definitionType()==Definition::TypeGroup && ((const GroupDef*)this)->groupTitle()) { result+="<a class=\"el\" href=\"$relpath^"+getOutputFileBase()+Doxygen::htmlFileExtension+"\">"+ convertToHtml(((const GroupDef*)this)->groupTitle())+"</a>"; } else if (definitionType()==Definition::TypePage && !((const PageDef*)this)->title().isEmpty()) { result+="<a class=\"el\" href=\"$relpath^"+getOutputFileBase()+Doxygen::htmlFileExtension+"\">"+ convertToHtml(((const PageDef*)this)->title())+"</a>"; } else if (definitionType()==Definition::TypeClass) { QCString name = locName; if (name.right(2)=="-p") { name = name.left(name.length()-2); } result+="<a class=\"el\" href=\"$relpath^"+getOutputFileBase()+Doxygen::htmlFileExtension; if (!anchor().isEmpty()) result+="#"+anchor(); result+="\">"+convertToHtml(name)+"</a>"; } else { result+="<a class=\"el\" href=\"$relpath^"+getOutputFileBase()+Doxygen::htmlFileExtension+"\">"+ convertToHtml(locName)+"</a>"; } } else { result+="<b>"+convertToHtml(locName)+"</b>"; } result+="</li>"; */ return result; }
void SVGUseElement::svgAttributeChanged(const QualifiedName& attrName) { if (attrName == SVGNames::xAttr || attrName == SVGNames::yAttr || attrName == SVGNames::widthAttr || attrName == SVGNames::heightAttr) { SVGElement::InvalidationGuard invalidationGuard(this); if (attrName == SVGNames::xAttr || attrName == SVGNames::yAttr) { invalidateSVGPresentationAttributeStyle(); setNeedsStyleRecalc(LocalStyleChange, StyleChangeReasonForTracing::fromAttribute(attrName)); } updateRelativeLengthsInformation(); if (m_targetElementInstance) { ASSERT(m_targetElementInstance->correspondingElement()); transferUseWidthAndHeightIfNeeded(*this, m_targetElementInstance.get(), *m_targetElementInstance->correspondingElement()); } LayoutObject* object = this->layoutObject(); if (object) markForLayoutAndParentResourceInvalidation(object); return; } if (SVGURIReference::isKnownAttribute(attrName)) { SVGElement::InvalidationGuard invalidationGuard(this); if (isStructurallyExternal()) { KURL url = document().completeURL(hrefString()); const KURL& existingURL = m_resource ? m_resource->url() : KURL(); if (url.hasFragmentIdentifier() && !equalIgnoringFragmentIdentifier(url, existingURL)) { FetchRequest request(ResourceRequest(url), localName()); setDocumentResource(DocumentResource::fetchSVGDocument(request, document().fetcher())); } } else { setDocumentResource(nullptr); } invalidateShadowTree(); return; } SVGGraphicsElement::svgAttributeChanged(attrName); }
void SVGUseElement::updateTargetReference() { SVGURLReferenceResolver resolver(hrefString(), document()); m_elementIdentifier = resolver.fragmentIdentifier(); m_elementIdentifierIsLocal = resolver.isLocal(); if (m_elementIdentifierIsLocal) { setDocumentResource(nullptr); return; } KURL resolvedUrl = resolver.absoluteUrl(); if (m_elementIdentifier.isEmpty() || (m_resource && equalIgnoringFragmentIdentifier(resolvedUrl, m_resource->url()))) return; FetchRequest request(ResourceRequest(resolvedUrl), localName()); setDocumentResource( DocumentResource::fetchSVGDocument(request, document().fetcher())); }
HRESULT STDMETHODCALLTYPE CNzbParser::startElement( /* [in] */ const wchar_t *pwchNamespaceUri, /* [in] */ int cchNamespaceUri, /* [in] */ const wchar_t *pwchLocalName, /* [in] */ int cchLocalName, /* [in] */ const wchar_t *pwchRawName, /* [in] */ int cchRawName, /* [in] */ ISAXAttributes *pAttributes) { CString localName(pwchLocalName, cchLocalName); if(localName == _T("nzb")) { ASSERT(theNzb); curNzb = theNzb; } else if(localName == _T("file")) { ASSERT(curNzb); curFile = new CNzbFile(curNzb); const wchar_t* pwchSubject; int cchSubject; VERIFY(SUCCEEDED(pAttributes->getValueFromName(L"", 0, L"subject", wcslen(L"subject"), &pwchSubject, &cchSubject))); curFile->subject = CString(pwchSubject, cchSubject); curNzb->files.Add(curFile); } else if(localName == _T("group")) { ASSERT(curFile); curGroup = true; curGroupString.Empty(); } else if(localName == _T("segment")) { ASSERT(curFile); curSegment = new CNzbSegment(curFile); const wchar_t* pwchBytes; int cchBytes; VERIFY(SUCCEEDED(pAttributes->getValueFromName(L"", 0, L"bytes", wcslen(L"bytes"), &pwchBytes, &cchBytes))); CString bytes(pwchBytes, cchBytes); curSegment->bytes = _wcstoui64(bytes, NULL, 10); const wchar_t* pwchNumber; int cchNumber; VERIFY(SUCCEEDED(pAttributes->getValueFromName(L"", 0, L"number", wcslen(L"number"), &pwchNumber, &cchNumber))); CString number(pwchNumber, cchNumber); curSegment->number = wcstoul(number, NULL, 10); curFile->segments.Add(curSegment); } return S_OK; }
v8::Handle<v8::Value> V8Document::createEntityReferenceCallback(const v8::Arguments& args) { if (args.Length() < 1) throw V8Exception("Wrong number of arguments in createEntityReference"); v8::Local<v8::Object> self = args.Holder(); struct V8DocumentPrivate* privData = V8DOM::toClassPtr<V8DocumentPrivate >(self->GetInternalField(0)); v8::String::AsciiValue localName(args[0]); Arabica::DOM::EntityReference<std::string>* retVal = new Arabica::DOM::EntityReference<std::string>(privData->nativeObj->createEntityReference(*localName)); v8::Handle<v8::Function> retCtor = V8EntityReference::getTmpl()->GetFunction(); v8::Persistent<v8::Object> retObj = v8::Persistent<v8::Object>::New(retCtor->NewInstance()); struct V8EntityReference::V8EntityReferencePrivate* retPrivData = new V8EntityReference::V8EntityReferencePrivate(); retPrivData->dom = privData->dom; retPrivData->nativeObj = retVal; retObj->SetInternalField(0, V8DOM::toExternal(retPrivData)); retObj.MakeWeak(0, V8EntityReference::jsDestructor); return retObj; }
HRESULT STDMETHODCALLTYPE CNzbParser::endElement( /* [in] */ const wchar_t *pwchNamespaceUri, /* [in] */ int cchNamespaceUri, /* [in] */ const wchar_t *pwchLocalName, /* [in] */ int cchLocalName, /* [in] */ const wchar_t *pwchRawName, /* [in] */ int cchRawName) { CString localName(pwchLocalName, cchLocalName); if(localName == _T("group")) { curFile->groups.Add(curGroupString); curGroup = false; } else if(localName == _T("segment")) { curSegment = NULL; } else if(localName == _T("file")) { curFile = NULL; } else if(localName == _T("nzb")) { curNzb = NULL; } return S_OK; }
DOMString QualifiedName::toString() const { return prefix() + DOMString(":") + localName(); }
Name::Name(const XMLString& qname, const XMLString& namespaceURI): _qname(qname), _namespaceURI(namespaceURI), _localName(localName(qname)) { }
void Name::assign(const XMLString& qname, const XMLString& namespaceURI) { _qname = qname; _namespaceURI = namespaceURI; _localName = localName(qname); }
/*! Write the documentation page for this file to the file of output generators \a ol. */ void FileDef::writeDocumentation(OutputList &ol) { static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW"); //funcList->countDecMembers(); //QCString fn = name(); //if (Config_getBool("FULL_PATH_NAMES")) //{ // fn.prepend(stripFromPath(getPath().copy())); //} //printf("WriteDocumentation diskname=%s\n",diskname.data()); QCString versionTitle; if (!fileVersion.isEmpty()) { versionTitle=("("+fileVersion+")"); } QCString title = docname+versionTitle; QCString pageTitle=theTranslator->trFileReference(docname); if (Config_getBool("SHOW_DIRECTORIES") && getDirDef()) { startFile(ol,getOutputFileBase(),name(),pageTitle,HLI_FileVisible,!generateTreeView); if (!generateTreeView) { getDirDef()->writeNavigationPath(ol); ol.endQuickIndices(); } QCString pageTitleShort=theTranslator->trFileReference(name()); startTitle(ol,getOutputFileBase(),this); ol.pushGeneratorState(); ol.disableAllBut(OutputGenerator::Html); ol.parseText(pageTitleShort); // Html only ol.enableAll(); ol.disable(OutputGenerator::Html); ol.parseText(pageTitle); // other output formats ol.popGeneratorState(); addGroupListToTitle(ol,this); endTitle(ol,getOutputFileBase(),title); } else { startFile(ol,getOutputFileBase(),name(),pageTitle,HLI_FileVisible,!generateTreeView); if (!generateTreeView) { ol.endQuickIndices(); } startTitle(ol,getOutputFileBase(),this); ol.parseText(pageTitle); addGroupListToTitle(ol,this); endTitle(ol,getOutputFileBase(),title); } ol.startContents(); if (!fileVersion.isEmpty()) { ol.disableAllBut(OutputGenerator::Html); ol.startProjectNumber(); ol.docify(versionTitle); ol.endProjectNumber(); ol.enableAll(); } if (Doxygen::searchIndex) { Doxygen::searchIndex->setCurrentDoc(pageTitle,getOutputFileBase()); Doxygen::searchIndex->addWord(localName(),TRUE); } if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { Doxygen::tagFile << " <compound kind=\"file\">" << endl; Doxygen::tagFile << " <name>" << convertToXML(name()) << "</name>" << endl; Doxygen::tagFile << " <path>" << convertToXML(getPath()) << "</path>" << endl; Doxygen::tagFile << " <filename>" << convertToXML(getOutputFileBase()) << "</filename>" << endl; } //---------------------------------------- start flexible part ------------------------------- QListIterator<LayoutDocEntry> eli( LayoutDocManager::instance().docEntries(LayoutDocManager::File)); LayoutDocEntry *lde; for (eli.toFirst();(lde=eli.current());++eli) { switch (lde->kind()) { case LayoutDocEntry::BriefDesc: writeBriefDescription(ol); break; case LayoutDocEntry::MemberDeclStart: startMemberDeclarations(ol); break; case LayoutDocEntry::FileIncludes: writeIncludeFiles(ol); break; case LayoutDocEntry::FileIncludeGraph: writeIncludeGraph(ol); break; case LayoutDocEntry::FileIncludedByGraph: writeIncludedByGraph(ol); break; case LayoutDocEntry::FileSourceLink: writeSourceLink(ol); break; case LayoutDocEntry::FileClasses: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeClassDeclarations(ol,ls->title); } break; case LayoutDocEntry::FileNamespaces: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeNamespaceDeclarations(ol,ls->title); } break; case LayoutDocEntry::MemberGroups: writeMemberGroups(ol); break; case LayoutDocEntry::MemberDecl: { LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; writeMemberDeclarations(ol,lmd->type,lmd->title); } break; case LayoutDocEntry::MemberDeclEnd: endMemberDeclarations(ol); break; case LayoutDocEntry::DetailedDesc: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeDetailedDescription(ol,ls->title); } break; case LayoutDocEntry::MemberDefStart: startMemberDocumentation(ol); break; case LayoutDocEntry::FileInlineClasses: writeInlineClasses(ol); break; case LayoutDocEntry::MemberDef: { LayoutDocEntryMemberDef *lmd = (LayoutDocEntryMemberDef*)lde; writeMemberDocumentation(ol,lmd->type,lmd->title); } break; case LayoutDocEntry::MemberDefEnd: endMemberDocumentation(ol); break; case LayoutDocEntry::AuthorSection: writeAuthorSection(ol); break; case LayoutDocEntry::ClassIncludes: case LayoutDocEntry::ClassInheritanceGraph: case LayoutDocEntry::ClassNestedClasses: case LayoutDocEntry::ClassCollaborationGraph: case LayoutDocEntry::ClassAllMembersLink: case LayoutDocEntry::ClassUsedFiles: case LayoutDocEntry::ClassInlineClasses: case LayoutDocEntry::NamespaceNestedNamespaces: case LayoutDocEntry::NamespaceClasses: case LayoutDocEntry::NamespaceInlineClasses: case LayoutDocEntry::GroupClasses: case LayoutDocEntry::GroupInlineClasses: case LayoutDocEntry::GroupNamespaces: case LayoutDocEntry::GroupDirs: case LayoutDocEntry::GroupNestedGroups: case LayoutDocEntry::GroupFiles: case LayoutDocEntry::GroupGraph: case LayoutDocEntry::GroupPageDocs: case LayoutDocEntry::DirSubDirs: case LayoutDocEntry::DirFiles: case LayoutDocEntry::DirGraph: err("Internal inconsistency: member %d should not be part of " "LayoutDocManager::File entry list\n",lde->kind()); break; } } //---------------------------------------- end flexible part ------------------------------- if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { writeDocAnchorsToTagFile(); Doxygen::tagFile << " </compound>" << endl; } ol.endContents(); if (generateTreeView) { writeNavigationPath(ol); } endFile(ol,TRUE); if (Config_getBool("SEPARATE_MEMBER_PAGES")) { MemberList *ml = getMemberList(MemberList::allMembersList); if (ml) ml->sort(); writeMemberPages(ol); } }
void NamespaceDef::writeDocumentation(OutputList &ol) { static bool generateTreeView = Config_getBool("GENERATE_TREEVIEW"); //static bool outputJava = Config_getBool("OPTIMIZE_OUTPUT_JAVA"); //static bool fortranOpt = Config_getBool("OPTIMIZE_FOR_FORTRAN"); QCString pageTitle = title(); startFile(ol,getOutputFileBase(),name(),pageTitle,HLI_NamespaceVisible,!generateTreeView); if (!generateTreeView) { if (getOuterScope()!=Doxygen::globalScope) { writeNavigationPath(ol); } ol.endQuickIndices(); } startTitle(ol,getOutputFileBase(),this); ol.parseText(pageTitle); addGroupListToTitle(ol,this); addNamespaceAttributes(ol); endTitle(ol,getOutputFileBase(),displayName()); ol.startContents(); if (Doxygen::searchIndex) { Doxygen::searchIndex->setCurrentDoc(this,anchor(),FALSE); Doxygen::searchIndex->addWord(localName(),TRUE); } Doxygen::indexList->addIndexItem(this,0); //---------------------------------------- start flexible part ------------------------------- SrcLangExt lang = getLanguage(); QListIterator<LayoutDocEntry> eli( LayoutDocManager::instance().docEntries(LayoutDocManager::Namespace)); LayoutDocEntry *lde; for (eli.toFirst(); (lde=eli.current()); ++eli) { switch (lde->kind()) { case LayoutDocEntry::BriefDesc: writeBriefDescription(ol); break; case LayoutDocEntry::MemberDeclStart: startMemberDeclarations(ol); break; case LayoutDocEntry::NamespaceClasses: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeClassDeclarations(ol,ls->title(lang)); } break; case LayoutDocEntry::NamespaceNestedNamespaces: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeNamespaceDeclarations(ol,ls->title(lang),false); } break; case LayoutDocEntry::NamespaceNestedConstantGroups: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeNamespaceDeclarations(ol,ls->title(lang),true); } break; case LayoutDocEntry::MemberGroups: writeMemberGroups(ol); break; case LayoutDocEntry::MemberDecl: { LayoutDocEntryMemberDecl *lmd = (LayoutDocEntryMemberDecl*)lde; writeMemberDeclarations(ol,lmd->type,lmd->title(lang)); } break; case LayoutDocEntry::MemberDeclEnd: endMemberDeclarations(ol); break; case LayoutDocEntry::DetailedDesc: { LayoutDocEntrySection *ls = (LayoutDocEntrySection*)lde; writeDetailedDescription(ol,ls->title(lang)); } break; case LayoutDocEntry::MemberDefStart: startMemberDocumentation(ol); break; case LayoutDocEntry::NamespaceInlineClasses: writeInlineClasses(ol); break; case LayoutDocEntry::MemberDef: { LayoutDocEntryMemberDef *lmd = (LayoutDocEntryMemberDef*)lde; writeMemberDocumentation(ol,lmd->type,lmd->title(lang)); } break; case LayoutDocEntry::MemberDefEnd: endMemberDocumentation(ol); break; case LayoutDocEntry::AuthorSection: writeAuthorSection(ol); break; case LayoutDocEntry::ClassIncludes: case LayoutDocEntry::ClassInheritanceGraph: case LayoutDocEntry::ClassNestedClasses: case LayoutDocEntry::ClassCollaborationGraph: case LayoutDocEntry::ClassAllMembersLink: case LayoutDocEntry::ClassUsedFiles: case LayoutDocEntry::ClassInlineClasses: case LayoutDocEntry::FileClasses: case LayoutDocEntry::FileNamespaces: case LayoutDocEntry::FileConstantGroups: case LayoutDocEntry::FileIncludes: case LayoutDocEntry::FileIncludeGraph: case LayoutDocEntry::FileIncludedByGraph: case LayoutDocEntry::FileSourceLink: case LayoutDocEntry::FileInlineClasses: case LayoutDocEntry::GroupClasses: case LayoutDocEntry::GroupInlineClasses: case LayoutDocEntry::GroupNamespaces: case LayoutDocEntry::GroupDirs: case LayoutDocEntry::GroupNestedGroups: case LayoutDocEntry::GroupFiles: case LayoutDocEntry::GroupGraph: case LayoutDocEntry::GroupPageDocs: case LayoutDocEntry::DirSubDirs: case LayoutDocEntry::DirFiles: case LayoutDocEntry::DirGraph: err("Internal inconsistency: member %d should not be part of " "LayoutDocManager::Namespace entry list\n",lde->kind()); break; } } //---------------------------------------- end flexible part ------------------------------- ol.endContents(); endFileWithNavPath(this,ol); if (Config_getBool("SEPARATE_MEMBER_PAGES")) { MemberList *allMemberList = getMemberList(MemberListType_allMembersList); if (allMemberList) allMemberList->sort(); writeMemberPages(ol); } }
void ewol::resource::TexturedFont::init(const std::string& _fontName) { std::unique_lock<std::recursive_mutex> lock(m_mutex); ewol::resource::Texture::init(_fontName); EWOL_DEBUG("Load font : '" << _fontName << "'" ); m_font[0] = nullptr; m_font[1] = nullptr; m_font[2] = nullptr; m_font[3] = nullptr; m_modeWraping[0] = ewol::font::Regular; m_modeWraping[1] = ewol::font::Regular; m_modeWraping[2] = ewol::font::Regular; m_modeWraping[3] = ewol::font::Regular; m_lastGlyphPos[0].setValue(1,1); m_lastGlyphPos[1].setValue(1,1); m_lastGlyphPos[2].setValue(1,1); m_lastGlyphPos[3].setValue(1,1); m_lastRawHeigh[0] = 0; m_lastRawHeigh[1] = 0; m_lastRawHeigh[2] = 0; m_lastRawHeigh[3] = 0; int32_t tmpSize = 0; // extarct name and size : const char * tmpData = _fontName.c_str(); const char * tmpPos = strchr(tmpData, ':'); if (tmpPos == nullptr) { m_size = 1; EWOL_CRITICAL("Can not parse the font name : \"" << _fontName << "\" ??? ':' " ); return; } else { if (sscanf(tmpPos+1, "%d", &tmpSize)!=1) { m_size = 1; EWOL_CRITICAL("Can not parse the font name : \"" << _fontName << "\" == > size ???"); return; } } std::string localName(_fontName, 0, (tmpPos - tmpData)); if (tmpSize>400) { EWOL_ERROR("Font size too big ==> limit at 400 when exxeed ==> error : " << tmpSize << "==>30"); tmpSize = 30; } m_size = tmpSize; std::vector<std::string> folderList; if (true == ewol::getContext().getFontDefault().getUseExternal()) { #if defined(__TARGET_OS__Android) folderList.push_back("ROOT:system/fonts"); #elif defined(__TARGET_OS__Linux) folderList.push_back("ROOT:usr/share/fonts"); #endif } std::string applicationBaseFont = ewol::getContext().getFontDefault().getFolder(); std::vector<std::string> applicationBaseFontList = etk::FSNodeExplodeMultiplePath(applicationBaseFont); for (auto &it : applicationBaseFontList) { folderList.push_back(it); } for (size_t folderID=0; folderID<folderList.size() ; folderID++) { etk::FSNode myFolder(folderList[folderID]); // find the real Font name : std::vector<std::string> output; myFolder.folderGetRecursiveFiles(output); std::vector<std::string> split = etk::split(localName, ';'); EWOL_INFO("try to find font named : " << split << " in: " << myFolder); //EWOL_CRITICAL("parse string : " << split); bool hasFindAFont = false; for (size_t jjj=0; jjj<split.size(); jjj++) { EWOL_INFO(" try with : '" << split[jjj] << "'"); for (size_t iii=0; iii<output.size(); iii++) { //EWOL_DEBUG(" file : " << output[iii]); if( true == etk::end_with(output[iii], split[jjj]+"-"+"bold"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"-"+"b"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"-"+"bd"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"bold"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"bd"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"b"+".ttf", false)) { EWOL_INFO(" find Font [Bold] : " << output[iii]); m_fileName[ewol::font::Bold] = output[iii]; hasFindAFont=true; } else if( true == etk::end_with(output[iii], split[jjj]+"-"+"oblique"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"-"+"italic"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"-"+"Light"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"-"+"i"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"oblique"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"italic"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"light"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"i"+".ttf", false)) { EWOL_INFO(" find Font [Italic] : " << output[iii]); m_fileName[ewol::font::Italic] = output[iii]; hasFindAFont=true; } else if( true == etk::end_with(output[iii], split[jjj]+"-"+"bolditalic"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"-"+"boldoblique"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"-"+"bi"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"-"+"z"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"bolditalic"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"boldoblique"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"bi"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"z"+".ttf", false)) { EWOL_INFO(" find Font [Bold-Italic] : " << output[iii]); m_fileName[ewol::font::BoldItalic] = output[iii]; hasFindAFont=true; } else if( true == etk::end_with(output[iii], split[jjj]+"-"+"regular"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"-"+"r"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"regular"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+"r"+".ttf", false) || true == etk::end_with(output[iii], split[jjj]+".ttf", false)) { EWOL_INFO(" find Font [Regular] : " << output[iii]); m_fileName[ewol::font::Regular] = output[iii]; hasFindAFont=true; } } if (hasFindAFont == true) { EWOL_INFO(" find this font : '" << split[jjj] << "'"); break; } else if (jjj == split.size()-1) { EWOL_ERROR("Find NO font in the LIST ... " << split); } } if (hasFindAFont == true) { EWOL_INFO(" find this font : '" << folderList[folderID] << "'"); break; } else if (folderID == folderList.size()-1) { EWOL_ERROR("Find NO font in the LIST ... " << folderList); } } // try to find the reference mode : enum ewol::font::mode refMode = ewol::font::Regular; for(int32_t iii=3; iii >= 0; iii--) { if (m_fileName[iii].size() != 0) { refMode = (enum ewol::font::mode)iii; } } EWOL_DEBUG(" set reference mode : " << refMode); // generate the wrapping on the preventing error for(int32_t iii=3; iii >= 0; iii--) { if (m_fileName[iii].size() != 0) { m_modeWraping[iii] = (enum ewol::font::mode)iii; } else { m_modeWraping[iii] = refMode; } } for (int32_t iiiFontId=0; iiiFontId<4 ; iiiFontId++) { if (m_fileName[iiiFontId].size() == 0) { EWOL_DEBUG("can not load FONT [" << iiiFontId << "] name : \"" << m_fileName[iiiFontId] << "\" == > size=" << m_size ); m_font[iiiFontId] = nullptr; continue; } EWOL_INFO("Load FONT [" << iiiFontId << "] name : \"" << m_fileName[iiiFontId] << "\" == > size=" << m_size); m_font[iiiFontId] = ewol::resource::FontFreeType::create(m_fileName[iiiFontId]); if (m_font[iiiFontId] == nullptr) { EWOL_DEBUG("error in loading FONT [" << iiiFontId << "] name : \"" << m_fileName[iiiFontId] << "\" == > size=" << m_size ); } } for (int32_t iiiFontId=0; iiiFontId<4 ; iiiFontId++) { // set the bassic charset: m_listElement[iiiFontId].clear(); if (m_font[iiiFontId] == nullptr) { continue; } m_height[iiiFontId] = m_font[iiiFontId]->getHeight(m_size); // TODO : basic font use 512 is better ... == > maybe estimate it with the dpi ??? setImageSize(ivec2(256,32)); // now we can acces directly on the image m_data.clear(etk::Color<>(0x00000000)); } // add error glyph addGlyph(0); // by default we set only the first AINSI char availlable for (int32_t iii=0x20; iii<0x7F; iii++) { EWOL_VERBOSE("Add clyph :" << iii); addGlyph(iii); } flush(); EWOL_DEBUG("Wrapping properties : "); EWOL_DEBUG(" " << ewol::font::Regular << " == >" << getWrappingMode(ewol::font::Regular)); EWOL_DEBUG(" " << ewol::font::Italic << " == >" << getWrappingMode(ewol::font::Italic)); EWOL_DEBUG(" " << ewol::font::Bold << " == >" << getWrappingMode(ewol::font::Bold)); EWOL_DEBUG(" " << ewol::font::BoldItalic << " == >" << getWrappingMode(ewol::font::BoldItalic)); }
void QualifiedName::setPrefix(const AtomicString& prefix) { QualifiedName other(prefix, localName(), namespaceURI()); *this = other; }
void NamespaceDef::writeDocumentation(OutputList &ol) { QCString pageTitle; if (Config_getBool("OPTIMIZE_OUTPUT_JAVA")) { pageTitle = theTranslator->trPackage(displayName()); } else { pageTitle = theTranslator->trNamespaceReference(displayName()); } startFile(ol,getOutputFileBase(),name(),pageTitle,HLI_NamespaceVisible); if (getOuterScope()!=Doxygen::globalScope) { writeNavigationPath(ol); } startTitle(ol,getOutputFileBase()); ol.parseText(pageTitle); addGroupListToTitle(ol,this); endTitle(ol,getOutputFileBase(),displayName()); if (Config_getBool("SEARCHENGINE")) { Doxygen::searchIndex->setCurrentDoc(pageTitle,getOutputFileBase()); Doxygen::searchIndex->addWord(localName(),TRUE); } if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { Doxygen::tagFile << " <compound kind=\"namespace\">" << endl; Doxygen::tagFile << " <name>" << convertToXML(name()) << "</name>" << endl; Doxygen::tagFile << " <filename>" << convertToXML(getOutputFileBase()) << Doxygen::htmlFileExtension << "</filename>" << endl; } ol.startTextBlock(); if (Config_getBool("DETAILS_AT_TOP")) { writeDetailedDocumentation(ol); ol.newParagraph(); } else if (!briefDescription().isEmpty()) { ol.parseDoc(briefFile(),briefLine(),this,0,briefDescription(),TRUE,FALSE); ol.writeString(" \n"); ol.pushGeneratorState(); ol.disableAllBut(OutputGenerator::Html); ol.startTextLink(0,"_details"); ol.parseText(theTranslator->trMore()); ol.endTextLink(); ol.enableAll(); ol.disableAllBut(OutputGenerator::Man); ol.newParagraph(); ol.popGeneratorState(); } ol.disable(OutputGenerator::Man); ol.newParagraph(); ol.enable(OutputGenerator::Man); ol.writeSynopsis(); ol.endTextBlock(); ol.startMemberSections(); classSDict->writeDeclaration(ol,0,0,TRUE); namespaceSDict->writeDeclaration(ol,TRUE); /* write user defined member groups */ MemberGroupSDict::Iterator mgli(*memberGroupSDict); MemberGroup *mg; for (;(mg=mgli.current());++mgli) { mg->writeDeclarations(ol,0,this,0,0); } //allMemberList.writeDeclarations(ol,0,this,0,0,0,0); decDefineMembers.writeDeclarations(ol,0,this,0,0,theTranslator->trDefines(),0); decProtoMembers.writeDeclarations(ol,0,this,0,0,theTranslator->trFuncProtos(),0); decTypedefMembers.writeDeclarations(ol,0,this,0,0,theTranslator->trTypedefs(),0); decEnumMembers.writeDeclarations(ol,0,this,0,0,theTranslator->trEnumerations(),0); decFuncMembers.writeDeclarations(ol,0,this,0,0,theTranslator->trFunctions(),0); decVarMembers.writeDeclarations(ol,0,this,0,0,theTranslator->trVariables(),0); ol.endMemberSections(); if (!Config_getBool("DETAILS_AT_TOP")) { writeDetailedDocumentation(ol); } writeMemberDocumentation(ol); // write Author section (Man only) ol.pushGeneratorState(); ol.disableAllBut(OutputGenerator::Man); ol.startGroupHeader(); ol.parseText(theTranslator->trAuthor(TRUE,TRUE)); ol.endGroupHeader(); ol.parseText(theTranslator->trGeneratedAutomatically(Config_getString("PROJECT_NAME"))); if (!Config_getString("GENERATE_TAGFILE").isEmpty()) { writeDocAnchorsToTagFile(); Doxygen::tagFile << " </compound>" << endl; } ol.popGeneratorState(); endFile(ol); if (Config_getBool("SEPARATE_MEMBER_PAGES")) { allMemberList.sort(); writeMemberPages(ol); } }
void SVGFEImageElement::requestImageResource() { CachedResourceRequest request(ResourceRequest(ownerDocument()->completeURL(href())), localName()); m_cachedImage = document()->cachedResourceLoader()->requestImage(request); if (m_cachedImage) m_cachedImage->addClient(this); }
int HTMLElement::tagPriority() const { static const TagPriorityMap* tagPriorityMap = createTagPriorityMap(); return tagPriorityMap->get(localName().impl()); }
// https://html.spec.whatwg.org/#dom-customelementsregistry-define JSValue JSCustomElementsRegistry::define(ExecState& state) { if (UNLIKELY(state.argumentCount() < 2)) return state.vm().throwException(&state, createNotEnoughArgumentsError(&state)); AtomicString localName(state.uncheckedArgument(0).toString(&state)->toAtomicString(&state)); if (UNLIKELY(state.hadException())) return jsUndefined(); JSValue constructorValue = state.uncheckedArgument(1); if (!constructorValue.isConstructor()) return throwTypeError(&state, ASCIILiteral("The second argument must be a constructor")); JSObject* constructor = constructorValue.getObject(); // FIXME: Throw a TypeError if constructor doesn't inherit from HTMLElement. // https://github.com/w3c/webcomponents/issues/541 switch (Document::validateCustomElementName(localName)) { case CustomElementNameValidationStatus::Valid: break; case CustomElementNameValidationStatus::ConflictsWithBuiltinNames: return throwSyntaxError(&state, ASCIILiteral("Custom element name cannot be same as one of the builtin elements")); case CustomElementNameValidationStatus::NoHyphen: return throwSyntaxError(&state, ASCIILiteral("Custom element name must contain a hyphen")); case CustomElementNameValidationStatus::ContainsUpperCase: return throwSyntaxError(&state, ASCIILiteral("Custom element name cannot contain an upper case letter")); } // FIXME: Check re-entrancy here. // https://github.com/w3c/webcomponents/issues/545 CustomElementsRegistry& registry = wrapped(); if (registry.findInterface(localName)) { throwNotSupportedError(state, ASCIILiteral("Cannot define multiple custom elements with the same tag name")); return jsUndefined(); } if (registry.containsConstructor(constructor)) { throwNotSupportedError(state, ASCIILiteral("Cannot define multiple custom elements with the same class")); return jsUndefined(); } auto& vm = globalObject()->vm(); JSValue prototypeValue = constructor->get(&state, vm.propertyNames->prototype); if (state.hadException()) return jsUndefined(); if (!prototypeValue.isObject()) return throwTypeError(&state, ASCIILiteral("Custom element constructor's prototype must be an object")); JSObject& prototypeObject = *asObject(prototypeValue); QualifiedName name(nullAtom, localName, HTMLNames::xhtmlNamespaceURI); auto elementInterface = JSCustomElementInterface::create(name, constructor, globalObject()); auto* connectedCallback = getCustomElementCallback(state, prototypeObject, Identifier::fromString(&vm, "connectedCallback")); if (state.hadException()) return jsUndefined(); if (connectedCallback) elementInterface->setConnectedCallback(connectedCallback); auto* disconnectedCallback = getCustomElementCallback(state, prototypeObject, Identifier::fromString(&vm, "disconnectedCallback")); if (state.hadException()) return jsUndefined(); if (disconnectedCallback) elementInterface->setDisconnectedCallback(disconnectedCallback); // FIXME: Add the support for adoptedCallback. getCustomElementCallback(state, prototypeObject, Identifier::fromString(&vm, "adoptedCallback")); if (state.hadException()) return jsUndefined(); auto* attributeChangedCallback = getCustomElementCallback(state, prototypeObject, Identifier::fromString(&vm, "attributeChangedCallback")); if (state.hadException()) return jsUndefined(); if (attributeChangedCallback) { auto value = convertOptional<Vector<String>>(state, constructor->get(&state, Identifier::fromString(&state, "observedAttributes"))); if (state.hadException()) return jsUndefined(); if (value) elementInterface->setAttributeChangedCallback(attributeChangedCallback, *value); } PrivateName uniquePrivateName; globalObject()->putDirect(vm, uniquePrivateName, constructor); registry.addElementDefinition(WTFMove(elementInterface)); // FIXME: 17. Let map be registry's upgrade candidates map. // FIXME: 18. Upgrade a newly-defined element given map and definition. // FIXME: 19. Resolve whenDefined promise. return jsUndefined(); }