⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dochandler.h

📁 doxygen(一个自动从源代码生成文档的工具)的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************** * * $Id:$ * * * Copyright (C) 1997-2001 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby  * granted. No representations are made about the suitability of this software  * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * */#ifndef _DOCHANDLER_H#define _DOCHANDLER_H#include <qstring.h>#include <qlist.h>#include <qxml.h>#include "basehandler.h"class ParagraphHandler;//-----------------------------------------------------------------------------/*! \brief Node of a structured documentation tree. * */class DocNode{  public:    enum Markup     {       Normal         = 0x00,      Bold           = 0x01,      Emphasis       = 0x02,      ComputerOutput = 0x04,      Subscript      = 0x08,      Superscript    = 0x10,      SmallFont      = 0x20,      Center         = 0x40    };    enum NodeKind     {       Para,      Text,      MarkupModifier,      ItemizedList,      OrderedList,      ListItem,      ParameterList,      Parameter,      SimpleSect,      Title,      Ref,      VariableList,      VariableListEntry,      HRuler,      LineBreak,      ULink,      EMail,      Link,      ProgramListing,      CodeLine,      Highlight,      Anchor,      Formula,      Image,      DotFile,      IndexEntry,      Table,      Row,      Entry    };    DocNode(NodeKind k) : m_kind(k) {}    virtual ~DocNode() {}      private:    NodeKind m_kind;};//-----------------------------------------------------------------------------/*! \brief Node representing a piece of text. * */class TextNode : public DocNode{  public:    TextNode(const QString &t,int markup)       : DocNode(Text), m_text(t), m_markup(markup) {}    private:      QString m_text;    int m_markup;};//-----------------------------------------------------------------------------/*! \brief Node representing a change in the markup style. * */class MarkupModifierNode : public DocNode{  public:    MarkupModifierNode(int markup,bool enabled)       : DocNode(MarkupModifier), m_markup(markup), m_enabled(enabled) {}    private:    int m_markup;    bool m_enabled;};//-----------------------------------------------------------------------------/*! \brief Handles markup commands in the XML input.  * */class MarkupHandler : public BaseFallBackHandler<MarkupHandler>{  public:    MarkupHandler(QList<DocNode> &children,QString &curString);    virtual ~MarkupHandler();    int markup() const { return m_curMarkup; }    virtual void startBold(const QXmlAttributes &attrib);    virtual void endBold();    virtual void startEmphasis(const QXmlAttributes &attrib);    virtual void endEmphasis();    virtual void startComputerOutput(const QXmlAttributes &attrib);    virtual void endComputerOutput();    virtual void startCenter(const QXmlAttributes &attrib);    virtual void endCenter();    virtual void startSmallFont(const QXmlAttributes &attrib);    virtual void endSmallFont();    virtual void startSubscript(const QXmlAttributes &attrib);    virtual void endSubscript();    virtual void startSuperscript(const QXmlAttributes &attrib);    virtual void endSuperscript();  private:    void addTextNode();    QList<DocNode> &m_children;    QString        &m_curString;    int             m_curMarkup;};//-----------------------------------------------------------------------------/*! \brief Node representing a list item. * */class ListItemHandler : public DocNode, public BaseHandler<ListItemHandler>{  public:    ListItemHandler(IBaseHandler *parent);    virtual ~ListItemHandler();    virtual void startListItem(const QXmlAttributes& attrib);    virtual void endListItem();    virtual void startParagraph(const QXmlAttributes& attrib);  private:    IBaseHandler   *m_parent;    QList<DocNode>  m_children;};//-----------------------------------------------------------------------------/*! \brief Node representing list of items. * */class ListHandler : public DocNode, public BaseHandler<ListHandler>{  public:    ListHandler(NodeKind k,IBaseHandler *parent);    virtual ~ListHandler();    virtual void startList(const QXmlAttributes& attrib);    virtual void endList();    virtual void startListItem(const QXmlAttributes& attrib);  private:    IBaseHandler   *m_parent;    QList<DocNode>  m_children;};//-----------------------------------------------------------------------------/*! \brief Node representing a parameter. * */class ParameterHandler : public DocNode,                          public BaseHandler<ParameterHandler>{  public:    ParameterHandler(IBaseHandler *parent);    virtual ~ParameterHandler();    virtual void startParameterName(const QXmlAttributes& attrib);    virtual void endParameterName();    virtual void startParameterDescription(const QXmlAttributes& attrib);    virtual void endParameterDescription();    virtual void startParagraph(const QXmlAttributes& attrib);  private:    IBaseHandler     *m_parent;    QString           m_name;    ParagraphHandler *m_description;};//-----------------------------------------------------------------------------/* \brief Node representing a parameter list. * */class ParameterListHandler : public DocNode,                              public BaseHandler<ParameterListHandler>{  public:    enum Types { Param, RetVal, Exception };    ParameterListHandler(IBaseHandler *parent);    virtual ~ParameterListHandler();    virtual void startParameterList(const QXmlAttributes& attrib);    virtual void endParameterList();    virtual void startParameterName(const QXmlAttributes& attrib);    virtual void startParameterDescription(const QXmlAttributes& attrib);  private:    IBaseHandler            *m_parent;    QList<ParameterHandler>  m_parameters;    ParameterHandler        *m_curParam;    Types                    m_type;};//-----------------------------------------------------------------------------/* \brief Node representing a horizontal ruler * */class LineBreakHandler : public DocNode, public BaseHandler<LineBreakHandler>{  public:    LineBreakHandler(IBaseHandler *parent);    virtual ~LineBreakHandler();    void startLineBreak(const QXmlAttributes& attrib);    void endLineBreak();  private:    IBaseHandler   *m_parent;};//-----------------------------------------------------------------------------/* \brief Node representing a link to section * */class LinkHandler : public DocNode, public BaseHandler<LinkHandler>{  public:    LinkHandler(IBaseHandler *parent);    virtual ~LinkHandler();    void startLink(const QXmlAttributes& attrib);    void endLink();  private:    IBaseHandler   *m_parent;    QString         m_ref;    QString         m_text;};//-----------------------------------------------------------------------------/* \brief Node representing a link to an email address * */class EMailHandler : public DocNode, public BaseHandler<EMailHandler>{  public:    EMailHandler(IBaseHandler *parent);    virtual ~EMailHandler();    void startEMail(const QXmlAttributes& attrib);    void endEMail();  private:    IBaseHandler   *m_parent;    QString         m_address;};//-----------------------------------------------------------------------------/* \brief Node representing a link to an URL * */class ULinkHandler : public DocNode, public BaseHandler<ULinkHandler>{  public:    ULinkHandler(IBaseHandler *parent);    virtual ~ULinkHandler();    void startULink(const QXmlAttributes& attrib);    void endULink();  private:    IBaseHandler   *m_parent;    QString         m_url;    QString         m_text;};//-----------------------------------------------------------------------------/* \brief Node representing a horizontal ruler * */class HRulerHandler : public DocNode, public BaseHandler<HRulerHandler>{  public:    HRulerHandler(IBaseHandler *parent);    virtual ~HRulerHandler();    void startHRuler(const QXmlAttributes& attrib);    void endHRuler();  private:    IBaseHandler   *m_parent;};//-----------------------------------------------------------------------------/* \brief Node representing a reference to another item * */class RefHandler : public DocNode, public BaseHandler<RefHandler>{  public:    RefHandler(IBaseHandler *parent);    virtual ~RefHandler();    void startRef(const QXmlAttributes& attrib);    void endRef();  private:    IBaseHandler   *m_parent;    QString        m_refId;    QString        m_anchor;    QString        m_linkText;};//-----------------------------------------------------------------------------/* \brief Node representing the title of a section * */// children: text, ref// children handled by MarkupHandler: //           bold, computeroutput, emphasis, center,//           small, subscript, superscript. class TitleHandler : public DocNode, public BaseHandler<TitleHandler>{  public:    TitleHandler(IBaseHandler *parent);    virtual ~TitleHandler();    virtual void startTitle(const QXmlAttributes& attrib);    virtual void endTitle();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -