Blame src/pagedef.h

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 PAGEDEF_H
Packit 1c1d7e
#define PAGEDEF_H
Packit 1c1d7e
Packit 1c1d7e
#include "definition.h"
Packit 1c1d7e
#include "sortdict.h"
Packit 1c1d7e
Packit 1c1d7e
class PageSDict;
Packit 1c1d7e
class OutputList;
Packit 1c1d7e
class FTextStream;
Packit 1c1d7e
Packit 1c1d7e
/** @brief A model of a page symbol. */
Packit 1c1d7e
class PageDef : public Definition
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    PageDef(const char *f,int l,const char *n,const char *d,const char *t);
Packit 1c1d7e
   ~PageDef();
Packit 1c1d7e
Packit 1c1d7e
    // setters
Packit 1c1d7e
    void setFileName(const char *name);
Packit 1c1d7e
    void setShowToc(bool b);
Packit 1c1d7e
Packit 1c1d7e
    // getters
Packit 1c1d7e
    DefType definitionType() const { return TypePage; }
Packit 1c1d7e
    bool isLinkableInProject() const 
Packit 1c1d7e
    { 
Packit 1c1d7e
      return /*hasDocumentation() &&*/ !isReference();
Packit 1c1d7e
    }
Packit 1c1d7e
    bool isLinkable() const 
Packit 1c1d7e
    {
Packit 1c1d7e
      return isLinkableInProject() || isReference();
Packit 1c1d7e
    } 
Packit 1c1d7e
Packit 1c1d7e
    // functions to get a uniform interface with Definitions
Packit 1c1d7e
    QCString getOutputFileBase() const;
Packit 1c1d7e
    QCString anchor() const { return QCString(); }
Packit 1c1d7e
    void findSectionsInDocumentation();
Packit 1c1d7e
    QCString title() const { return m_title; }
Packit 1c1d7e
    GroupDef *  getGroupDef() const;
Packit 1c1d7e
    PageSDict * getSubPages() const { return m_subPageDict; }
Packit 1c1d7e
    void addInnerCompound(Definition *d);
Packit 1c1d7e
    bool visibleInIndex() const;
Packit 1c1d7e
    bool documentedPage() const;
Packit 1c1d7e
    bool hasSubPages() const;
Packit 1c1d7e
    bool hasParentPage() const;
Packit 1c1d7e
    bool showToc() const { return m_showToc; }
Packit 1c1d7e
    void setPageScope(Definition *d){ m_pageScope = d; }
Packit 1c1d7e
    Definition *getPageScope() const { return m_pageScope; }
Packit 1c1d7e
    QCString displayName(bool=TRUE) const { return !m_title.isEmpty() ? m_title : Definition::name(); }
Packit 1c1d7e
Packit 1c1d7e
    void writeDocumentation(OutputList &ol);
Packit 1c1d7e
    void writeTagFile(FTextStream &);
Packit 1c1d7e
Packit 1c1d7e
  private:
Packit 1c1d7e
    void setNestingLevel(int l);
Packit 1c1d7e
    void writePageDocumentation(OutputList &ol);
Packit 1c1d7e
    QCString m_fileName;
Packit 1c1d7e
    QCString m_title;
Packit 1c1d7e
    PageSDict *m_subPageDict;                 // list of pages in the group
Packit 1c1d7e
    Definition *m_pageScope;
Packit 1c1d7e
    int m_nestingLevel;
Packit 1c1d7e
    bool m_showToc;
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
class PageSDict : public SDict<PageDef>
Packit 1c1d7e
{
Packit 1c1d7e
  public:
Packit 1c1d7e
    PageSDict(int size) : SDict<PageDef>(size) {}
Packit 1c1d7e
    virtual ~PageSDict() {}
Packit 1c1d7e
  private:
Packit 1c1d7e
    int compareValues(const PageDef *i1,const PageDef *i2) const
Packit 1c1d7e
    {
Packit 1c1d7e
      return qstricmp(i1->name(),i2->name());
Packit 1c1d7e
    }
Packit 1c1d7e
};
Packit 1c1d7e
Packit 1c1d7e
#endif
Packit 1c1d7e