Orb/Doxygen/src/mandocvisitor.h
changeset 0 42188c7ea2d9
child 4 468f4c8d3d5b
equal deleted inserted replaced
-1:000000000000 0:42188c7ea2d9
       
     1 /******************************************************************************
       
     2  *
       
     3  * 
       
     4  *
       
     5  *
       
     6  * Copyright (C) 1997-2008 by Dimitri van Heesch.
       
     7  *
       
     8  * Permission to use, copy, modify, and distribute this software and its
       
     9  * documentation under the terms of the GNU General Public License is hereby 
       
    10  * granted. No representations are made about the suitability of this software 
       
    11  * for any purpose. It is provided "as is" without express or implied warranty.
       
    12  * See the GNU General Public License for more details.
       
    13  *
       
    14  * Documents produced by Doxygen are derivative works derived from the
       
    15  * input used in their production; they are not affected by this license.
       
    16  *
       
    17  */
       
    18 
       
    19 #ifndef _MANDOCVISITOR_H
       
    20 #define _MANDOCVISITOR_H
       
    21 
       
    22 #include "docvisitor.h"
       
    23 #include <qstack.h>
       
    24 #include <qcstring.h>
       
    25 
       
    26 class QTextStream;
       
    27 class CodeOutputInterface;
       
    28 class QString;
       
    29 
       
    30 /*! @brief Concrete visitor implementation for LaTeX output. */
       
    31 class ManDocVisitor : public DocVisitor
       
    32 {
       
    33   public:
       
    34     ManDocVisitor(QTextStream &t,CodeOutputInterface &ci,const char *langExt);
       
    35     
       
    36     //--------------------------------------
       
    37     // visitor functions for leaf nodes
       
    38     //--------------------------------------
       
    39     
       
    40     void visit(DocWord *);
       
    41     void visit(DocLinkedWord *);
       
    42     void visit(DocWhiteSpace *);
       
    43     void visit(DocSymbol *);
       
    44     void visit(DocURL *);
       
    45     void visit(DocLineBreak *);
       
    46     void visit(DocHorRuler *);
       
    47     void visit(DocStyleChange *);
       
    48     void visit(DocVerbatim *);
       
    49     void visit(DocAnchor *);
       
    50     void visit(DocInclude *);
       
    51     void visit(DocIncOperator *);
       
    52     void visit(DocFormula *);
       
    53     void visit(DocIndexEntry *);
       
    54     void visit(DocSimpleSectSep *);
       
    55 
       
    56     //--------------------------------------
       
    57     // visitor functions for compound nodes
       
    58     //--------------------------------------
       
    59     
       
    60     void visitPre(DocAutoList *);
       
    61     void visitPost(DocAutoList *);
       
    62     void visitPre(DocAutoListItem *);
       
    63     void visitPost(DocAutoListItem *);
       
    64     void visitPre(DocPara *);
       
    65     void visitPost(DocPara *);
       
    66     void visitPre(DocRoot *);
       
    67     void visitPost(DocRoot *);
       
    68     void visitPre(DocSimpleSect *);
       
    69     void visitPost(DocSimpleSect *);
       
    70     void visitPre(DocTitle *);
       
    71     void visitPost(DocTitle *);
       
    72     void visitPre(DocSimpleList *);
       
    73     void visitPost(DocSimpleList *);
       
    74     void visitPre(DocSimpleListItem *);
       
    75     void visitPost(DocSimpleListItem *);
       
    76     void visitPre(DocSection *s);
       
    77     void visitPost(DocSection *);
       
    78     void visitPre(DocHtmlList *s);
       
    79     void visitPost(DocHtmlList *s);
       
    80     void visitPre(DocHtmlListItem *);
       
    81     void visitPost(DocHtmlListItem *);
       
    82     //void visitPre(DocHtmlPre *);
       
    83     //void visitPost(DocHtmlPre *);
       
    84     void visitPre(DocHtmlDescList *);
       
    85     void visitPost(DocHtmlDescList *);
       
    86     void visitPre(DocHtmlDescTitle *);
       
    87     void visitPost(DocHtmlDescTitle *);
       
    88     void visitPre(DocHtmlDescData *);
       
    89     void visitPost(DocHtmlDescData *);
       
    90     void visitPre(DocHtmlTable *t);
       
    91     void visitPost(DocHtmlTable *t);
       
    92     void visitPre(DocHtmlCaption *);
       
    93     void visitPost(DocHtmlCaption *);
       
    94     void visitPre(DocHtmlRow *);
       
    95     void visitPost(DocHtmlRow *) ;
       
    96     void visitPre(DocHtmlCell *);
       
    97     void visitPost(DocHtmlCell *);
       
    98     void visitPre(DocInternal *);
       
    99     void visitPost(DocInternal *);
       
   100     void visitPre(DocHRef *);
       
   101     void visitPost(DocHRef *);
       
   102     void visitPre(DocHtmlHeader *);
       
   103     void visitPost(DocHtmlHeader *) ;
       
   104     void visitPre(DocImage *);
       
   105     void visitPost(DocImage *);
       
   106     void visitPre(DocDotFile *);
       
   107     void visitPost(DocDotFile *);
       
   108     void visitPre(DocLink *lnk);
       
   109     void visitPost(DocLink *);
       
   110     void visitPre(DocRef *ref);
       
   111     void visitPost(DocRef *);
       
   112     void visitPre(DocSecRefItem *);
       
   113     void visitPost(DocSecRefItem *);
       
   114     void visitPre(DocSecRefList *);
       
   115     void visitPost(DocSecRefList *);
       
   116     //void visitPre(DocLanguage *);
       
   117     //void visitPost(DocLanguage *);
       
   118     void visitPre(DocParamSect *);
       
   119     void visitPost(DocParamSect *);
       
   120     void visitPre(DocParamList *);
       
   121     void visitPost(DocParamList *);
       
   122     void visitPre(DocXRefItem *);
       
   123     void visitPost(DocXRefItem *);
       
   124     void visitPre(DocInternalRef *);
       
   125     void visitPost(DocInternalRef *);
       
   126     void visitPre(DocCopy *);
       
   127     void visitPost(DocCopy *);
       
   128     void visitPre(DocText *);
       
   129     void visitPost(DocText *);
       
   130 
       
   131   private:
       
   132 
       
   133     //--------------------------------------
       
   134     // helper functions 
       
   135     //--------------------------------------
       
   136     
       
   137     void filter(const char *str);
       
   138 
       
   139     void pushEnabled();
       
   140     void popEnabled();
       
   141 
       
   142     //--------------------------------------
       
   143     // state variables
       
   144     //--------------------------------------
       
   145 
       
   146     QTextStream &m_t;
       
   147     CodeOutputInterface &m_ci;
       
   148     bool m_insidePre;
       
   149     bool m_hide;
       
   150     bool m_firstCol;
       
   151     int  m_indent;
       
   152     QStack<bool> m_enabled;
       
   153     QCString m_langExt;
       
   154 };
       
   155 
       
   156 #endif