Blame src/htmldocvisitor.h

Packit 1c1d7e
/******************************************************************************
Packit 1c1d7e
 *
Packit 1c1d7e
 * 
Packit 1c1d7e
 *
Packit 1c1d7e
 *
Packit 1c1d7e
 * Copyright (C) 1997-2015 by Dimitri van Heesch.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Permission to use, copy, modify, and distribute this software and its
Packit 1c1d7e
 * documentation under the terms of the GNU General Public License is hereby 
Packit 1c1d7e
 * granted. No representations are made about the suitability of this software 
Packit 1c1d7e
 * for any purpose. It is provided "as is" without express or implied warranty.
Packit 1c1d7e
 * See the GNU General Public License for more details.
Packit 1c1d7e
 *
Packit 1c1d7e
 * Documents produced by Doxygen are derivative works derived from the
Packit 1c1d7e
 * input used in their production; they are not affected by this license.
Packit 1c1d7e
 *
Packit 1c1d7e
 */
Packit 1c1d7e
Packit 1c1d7e
#ifndef _HTMLDOCVISITOR_H
Packit 1c1d7e
#define _HTMLDOCVISITOR_H
Packit 1c1d7e
Packit 1c1d7e
#include "docvisitor.h"
Packit 1c1d7e
#include <qstack.h>
Packit 1c1d7e
#include <qcstring.h>
Packit 1c1d7e
Packit 1c1d7e
class Definition;
Packit 1c1d7e
class MemberDef;
Packit 1c1d7e
class DocNode;
Packit 1c1d7e
class FTextStream;
Packit 1c1d7e
class CodeOutputInterface;
Packit 1c1d7e
Packit 1c1d7e
/*! @brief Concrete visitor implementation for HTML output. */
Packit 1c1d7e
class HtmlDocVisitor : public DocVisitor
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    HtmlDocVisitor(FTextStream &t,CodeOutputInterface &ci,Definition *ctx);
Packit 1c1d7e
    
Packit 1c1d7e
    //--------------------------------------
Packit 1c1d7e
    // visitor functions for leaf nodes
Packit 1c1d7e
    //--------------------------------------
Packit 1c1d7e
    
Packit 1c1d7e
    void visit(DocWord *);
Packit 1c1d7e
    void visit(DocLinkedWord *);
Packit 1c1d7e
    void visit(DocWhiteSpace *);
Packit 1c1d7e
    void visit(DocSymbol *);
Packit 1c1d7e
    void visit(DocURL *);
Packit 1c1d7e
    void visit(DocLineBreak *);
Packit 1c1d7e
    void visit(DocHorRuler *);
Packit 1c1d7e
    void visit(DocStyleChange *);
Packit 1c1d7e
    void visit(DocVerbatim *);
Packit 1c1d7e
    void visit(DocAnchor *);
Packit 1c1d7e
    void visit(DocInclude *);
Packit 1c1d7e
    void visit(DocIncOperator *);
Packit 1c1d7e
    void visit(DocFormula *);
Packit 1c1d7e
    void visit(DocIndexEntry *);
Packit 1c1d7e
    void visit(DocSimpleSectSep *);
Packit 1c1d7e
    void visit(DocCite *);
Packit 1c1d7e
Packit 1c1d7e
    //--------------------------------------
Packit 1c1d7e
    // visitor functions for compound nodes
Packit 1c1d7e
    //--------------------------------------
Packit 1c1d7e
    
Packit 1c1d7e
    void visitPre(DocAutoList *);
Packit 1c1d7e
    void visitPost(DocAutoList *);
Packit 1c1d7e
    void visitPre(DocAutoListItem *);
Packit 1c1d7e
    void visitPost(DocAutoListItem *);
Packit 1c1d7e
    void visitPre(DocPara *) ;
Packit 1c1d7e
    void visitPost(DocPara *);
Packit 1c1d7e
    void visitPre(DocRoot *);
Packit 1c1d7e
    void visitPost(DocRoot *);
Packit 1c1d7e
    void visitPre(DocSimpleSect *);
Packit 1c1d7e
    void visitPost(DocSimpleSect *);
Packit 1c1d7e
    void visitPre(DocTitle *);
Packit 1c1d7e
    void visitPost(DocTitle *);
Packit 1c1d7e
    void visitPre(DocSimpleList *);
Packit 1c1d7e
    void visitPost(DocSimpleList *);
Packit 1c1d7e
    void visitPre(DocSimpleListItem *);
Packit 1c1d7e
    void visitPost(DocSimpleListItem *);
Packit 1c1d7e
    void visitPre(DocSection *);
Packit 1c1d7e
    void visitPost(DocSection *);
Packit 1c1d7e
    void visitPre(DocHtmlList *);
Packit 1c1d7e
    void visitPost(DocHtmlList *) ;
Packit 1c1d7e
    void visitPre(DocHtmlListItem *);
Packit 1c1d7e
    void visitPost(DocHtmlListItem *);
Packit 1c1d7e
    void visitPre(DocHtmlDescList *);
Packit 1c1d7e
    void visitPost(DocHtmlDescList *);
Packit 1c1d7e
    void visitPre(DocHtmlDescTitle *);
Packit 1c1d7e
    void visitPost(DocHtmlDescTitle *);
Packit 1c1d7e
    void visitPre(DocHtmlDescData *);
Packit 1c1d7e
    void visitPost(DocHtmlDescData *);
Packit 1c1d7e
    void visitPre(DocHtmlTable *);
Packit 1c1d7e
    void visitPost(DocHtmlTable *);
Packit 1c1d7e
    void visitPre(DocHtmlRow *);
Packit 1c1d7e
    void visitPost(DocHtmlRow *) ;
Packit 1c1d7e
    void visitPre(DocHtmlCell *);
Packit 1c1d7e
    void visitPost(DocHtmlCell *);
Packit 1c1d7e
    void visitPre(DocHtmlCaption *);
Packit 1c1d7e
    void visitPost(DocHtmlCaption *);
Packit 1c1d7e
    void visitPre(DocInternal *);
Packit 1c1d7e
    void visitPost(DocInternal *);
Packit 1c1d7e
    void visitPre(DocHRef *);
Packit 1c1d7e
    void visitPost(DocHRef *);
Packit 1c1d7e
    void visitPre(DocHtmlHeader *);
Packit 1c1d7e
    void visitPost(DocHtmlHeader *);
Packit 1c1d7e
    void visitPre(DocImage *);
Packit 1c1d7e
    void visitPost(DocImage *);
Packit 1c1d7e
    void visitPre(DocDotFile *);
Packit 1c1d7e
    void visitPost(DocDotFile *);
Packit 1c1d7e
    void visitPre(DocMscFile *);
Packit 1c1d7e
    void visitPost(DocMscFile *);
Packit 1c1d7e
    void visitPre(DocDiaFile *);
Packit 1c1d7e
    void visitPost(DocDiaFile *);
Packit 1c1d7e
    void visitPre(DocLink *);
Packit 1c1d7e
    void visitPost(DocLink *);
Packit 1c1d7e
    void visitPre(DocRef *);
Packit 1c1d7e
    void visitPost(DocRef *);
Packit 1c1d7e
    void visitPre(DocSecRefItem *);
Packit 1c1d7e
    void visitPost(DocSecRefItem *);
Packit 1c1d7e
    void visitPre(DocSecRefList *);
Packit 1c1d7e
    void visitPost(DocSecRefList *);
Packit 1c1d7e
    void visitPre(DocParamSect *);
Packit 1c1d7e
    void visitPost(DocParamSect *);
Packit 1c1d7e
    void visitPre(DocParamList *);
Packit 1c1d7e
    void visitPost(DocParamList *);
Packit 1c1d7e
    void visitPre(DocXRefItem *);
Packit 1c1d7e
    void visitPost(DocXRefItem *);
Packit 1c1d7e
    void visitPre(DocInternalRef *);
Packit 1c1d7e
    void visitPost(DocInternalRef *);
Packit 1c1d7e
    void visitPre(DocCopy *);
Packit 1c1d7e
    void visitPost(DocCopy *);
Packit 1c1d7e
    void visitPre(DocText *);
Packit 1c1d7e
    void visitPost(DocText *);
Packit 1c1d7e
    void visitPre(DocHtmlBlockQuote *);
Packit 1c1d7e
    void visitPost(DocHtmlBlockQuote *);
Packit 1c1d7e
    void visitPre(DocVhdlFlow *);
Packit 1c1d7e
    void visitPost(DocVhdlFlow *);
Packit 1c1d7e
    void visitPre(DocParBlock *);
Packit 1c1d7e
    void visitPost(DocParBlock *);
Packit 1c1d7e
Packit 1c1d7e
  private:
Packit 1c1d7e
Packit 1c1d7e
    //--------------------------------------
Packit 1c1d7e
    // helper functions 
Packit 1c1d7e
    //--------------------------------------
Packit 1c1d7e
    
Packit 1c1d7e
    void writeObfuscatedMailAddress(const QCString &url;;
Packit 1c1d7e
    void filter(const char *str);
Packit 1c1d7e
    void filterQuotedCdataAttr(const char* str);
Packit 1c1d7e
    void startLink(const QCString &ref,const QCString &file,
Packit 1c1d7e
                   const QCString &relPath,const QCString &anchor,
Packit 1c1d7e
                   const QCString &tooltip = "");
Packit 1c1d7e
    void endLink();
Packit 1c1d7e
    void writeDotFile(const QCString &fileName,const QCString &relPath,const QCString &context);
Packit 1c1d7e
    void writeMscFile(const QCString &fileName,const QCString &relPath,const QCString &context);
Packit 1c1d7e
    void writeDiaFile(const QCString &fileName,const QCString &relPath,const QCString &context);
Packit 1c1d7e
    void writePlantUMLFile(const QCString &fileName,const QCString &relPath,const QCString &context);
Packit 1c1d7e
Packit 1c1d7e
    void pushEnabled();
Packit 1c1d7e
    void popEnabled();
Packit 1c1d7e
Packit 1c1d7e
    void forceEndParagraph(DocNode *n);
Packit 1c1d7e
    void forceStartParagraph(DocNode *n);
Packit 1c1d7e
Packit 1c1d7e
    //--------------------------------------
Packit 1c1d7e
    // state variables
Packit 1c1d7e
    //--------------------------------------
Packit 1c1d7e
Packit 1c1d7e
    FTextStream &m_;;
Packit 1c1d7e
    CodeOutputInterface &m_ci;
Packit 1c1d7e
    bool m_insidePre;
Packit 1c1d7e
    bool m_hide;
Packit 1c1d7e
    QStack<bool> m_enabled;
Packit 1c1d7e
    Definition *m_ctx;
Packit 1c1d7e
    QCString m_langExt;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
#endif