diff options
Diffstat (limited to 'src/docparser.cpp')
-rw-r--r-- | src/docparser.cpp | 123 |
1 files changed, 122 insertions, 1 deletions
diff --git a/src/docparser.cpp b/src/docparser.cpp index 25d4b0c..3d57c2e 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -7232,8 +7232,129 @@ static QCString processCopyDoc(const char *data,uint &len) buf.addChar(0); return buf.get(); } +//--------------------------------------------------------------------------- +QString::Direction getTextDirByConfig(const QString &text) +{ + QCString configDir = Config_getEnum(OUTPUT_TEXT_DIRECTION); + if (configDir == "None") + return QString::DirNeutral; + if (configDir == "Context") + return text.basicDirection(); + if (configDir == "LTR") + { + QString::Direction textDir = text.direction(); + if (textDir == QString::DirMixed) + return QString::DirLTR; + return textDir; + } + if (configDir == "RTL") + { + QString::Direction textDir = text.direction(); + if (textDir == QString::DirMixed) + return QString::DirRTL; + return textDir; + } + return QString::DirNeutral; +} -//-------------------------------------------------------------------------- +QString::Direction getTextDirByConfig(const DocNode *node) +{ + QCString configDir = Config_getEnum(OUTPUT_TEXT_DIRECTION); + if (configDir == "None") + return QString::DirNeutral; + if (configDir == "Context") + return node->getTextBasicDir(); + if (configDir == "LTR") + { + QString::Direction textDir = node->getTextDir(); + if (textDir == QString::DirMixed) + return QString::DirLTR; + return textDir; + } + if (configDir == "RTL") + { + QString::Direction textDir = node->getTextDir(); + if (textDir == QString::DirMixed) + return QString::DirRTL; + return textDir; + } + return QString::DirNeutral; +} + +QString::Direction getTextDirByConfig(const DocPara *para, int nodeIndex) +{ + QCString configDir = Config_getEnum(OUTPUT_TEXT_DIRECTION); + if (configDir == "None") + return QString::DirNeutral; + if (configDir == "Context") + return para->getTextBasicDir(nodeIndex); + if (configDir == "LTR") + { + QString::Direction textDir = para->getTextDir(nodeIndex); + if (textDir == QString::DirMixed) + return QString::DirLTR; + return textDir; + } + if (configDir == "RTL") + { + QString::Direction textDir = para->getTextDir(nodeIndex); + if (textDir == QString::DirMixed) + return QString::DirRTL; + return textDir; + } + return QString::DirNeutral; +} + +QCString getDirHtmlClassOfNode(QString::Direction textDir, const char *initValue) +{ + QCString classFromDir; + if (textDir == QString::DirLTR) + classFromDir = "DocNodeLTR"; + else if (textDir == QString::DirRTL) + classFromDir = "DocNodeRTL"; + else + classFromDir = ""; + + if (initValue != NULL && !classFromDir.isEmpty()) + return QCString(" class=\"") + initValue + " " + classFromDir + "\""; + if (initValue != NULL) + return QCString(" class=\"") + initValue + "\""; + if (!classFromDir.isEmpty()) + return QCString(" class=\"") + classFromDir + "\""; + return ""; +} + +QCString getDirHtmlClassOfPage(QCString pageTitle) +{ + QCString result = ""; + result += " class=\"PageDoc"; + QString::Direction titleDir = getTextDirByConfig(pageTitle); + if (titleDir == QString::DirLTR) + result += " PageDocLTR-title"; + else if (titleDir == QString::DirRTL) + result += " PageDocRTL-title"; + result += "\""; + return result; +} + +QCString getHtmlDirEmbedingChar(QString::Direction textDir) +{ + if (textDir == QString::DirLTR) + return "‪"; + if (textDir == QString::DirRTL) + return "‫"; + return ""; +} + +QCString getJsDirEmbedingChar(QString::Direction textDir) +{ + if (textDir == QString::DirLTR) + return "\\u202A"; + if (textDir == QString::DirRTL) + return "\\u202B"; + return ""; +} +//--------------------------------------------------------------------------- DocRoot *validatingParseDoc(const char *fileName,int startLine, Definition *ctx,MemberDef *md, |