qhp.h 2.03 KB
Newer Older
Dimitri van Heesch's avatar
Dimitri van Heesch committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
/*
 * Copyright (C) 2008 by Sebastian Pipping.
 * Copyright (C) 2008 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.
 *
 * Documents produced by Doxygen are derivative works derived from the
 * input used in their production; they are not affected by this license.
 *
 * Sebastian Pipping <sebastian@pipping.org>
 */

#ifndef DOXYGEN_QHP_H
#define DOXYGEN_QHP_H

#include "index.h"
#include "qhpxmlwriter.h"

class Qhp : public IndexIntf
{
  public:
    Qhp();
   ~Qhp();

    // BEGIN IndexIntf
    void initialize();
    void finalize();
    void incContentsDepth();
    void decContentsDepth();
34
    void addContentsItem(bool isDir, const char * name, const char * ref,
35
                         const char * file, const char * anchor,
36 37
                         bool separateIndex,bool addToNavIndex,
                         Definition *def);
38 39
    void addIndexItem(Definition *context, MemberDef *md,
                      const char *sectionAnchor, const char *title);
40 41 42
    void addIndexFile(const char * name);
    void addImageFile(const char * name);
    void addStyleSheetFile(const char * name);
Dimitri van Heesch's avatar
Dimitri van Heesch committed
43 44 45 46 47 48 49
    // END IndexIntf

    static QCString getQhpFileName();

  private:
    void handlePrevSection();
    void clearPrevSection();
50
    void setPrevSection(const char * title, const char * basename, const char * anchor, int level);
51
    void addFile(const char * fileName);
Dimitri van Heesch's avatar
Dimitri van Heesch committed
52 53 54 55 56 57 58 59 60

    static QCString getFullProjectName();

    QhpXmlWriter m_doc;
    QhpXmlWriter m_toc;
    QhpXmlWriter m_index;
    QhpXmlWriter m_files;

    QCString m_prevSectionTitle;
61 62
    QCString m_prevSectionBaseName;
    QCString m_prevSectionAnchor;
Dimitri van Heesch's avatar
Dimitri van Heesch committed
63 64 65

    int m_prevSectionLevel;
    int m_sectionLevel;
66

67
    bool m_skipMainPageSection;
Dimitri van Heesch's avatar
Dimitri van Heesch committed
68 69 70 71
};

#endif // DOXYGEN_QHP_H