|
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 |
#include "layout.h"
|
|
Packit |
1c1d7e |
#include "message.h"
|
|
Packit |
1c1d7e |
#include "language.h"
|
|
Packit |
1c1d7e |
#include "vhdldocgen.h"
|
|
Packit |
1c1d7e |
#include "util.h"
|
|
Packit |
1c1d7e |
#include "doxygen.h"
|
|
Packit |
1c1d7e |
#include "version.h"
|
|
Packit |
1c1d7e |
#include "config.h"
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include <assert.h>
|
|
Packit |
1c1d7e |
#include <qxml.h>
|
|
Packit |
1c1d7e |
#include <qfile.h>
|
|
Packit |
1c1d7e |
#include <qstring.h>
|
|
Packit |
1c1d7e |
#include <qfileinfo.h>
|
|
Packit |
1c1d7e |
#include <qtextstream.h>
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static const char layout_default[] =
|
|
Packit |
1c1d7e |
#include "layout_default.xml.h"
|
|
Packit |
1c1d7e |
;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#define ADD_OPTION(langId,text) "|"+QCString().setNum(langId)+"="+text
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#define COMPILE_FOR_1_OPTION(def,langId1,text1) \
|
|
Packit |
1c1d7e |
def+ADD_OPTION(langId1,text1)
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#define COMPILE_FOR_2_OPTIONS(def,langId1,text1,langId2,text2) \
|
|
Packit |
1c1d7e |
COMPILE_FOR_1_OPTION(def,langId1,text1)+ADD_OPTION(langId2,text2)
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#define COMPILE_FOR_3_OPTIONS(def,langId1,text1,langId2,text2,langId3,text3) \
|
|
Packit |
1c1d7e |
COMPILE_FOR_2_OPTIONS(def,langId1,text1,langId2,text2)+ADD_OPTION(langId3,text3)
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#define COMPILE_FOR_4_OPTIONS(def,langId1,text1,langId2,text2,langId3,text3,langId4,text4) \
|
|
Packit |
1c1d7e |
COMPILE_FOR_3_OPTIONS(def,langId1,text1,langId2,text2,langId3,text3)+ADD_OPTION(langId4,text4)
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
static bool elemIsVisible(const QXmlAttributes &attrib,bool defVal=TRUE)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QCString visible = attrib.value("visible").utf8();
|
|
Packit |
1c1d7e |
if (visible.isEmpty()) return defVal;
|
|
Packit |
1c1d7e |
if (visible.at(0)=='$' && visible.length()>1)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QCString id = visible.mid(1);
|
|
Packit |
1c1d7e |
const ConfigValues::Info *opt = ConfigValues::instance().get(id);
|
|
Packit |
1c1d7e |
if (opt && opt->type==ConfigValues::Info::Bool)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
return ConfigValues::instance().*((ConfigValues::InfoBool*)opt)->item;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (!opt)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
err("found unsupported value %s for visible attribute in layout file\n",
|
|
Packit |
1c1d7e |
visible.data());
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
return visible!="no" && visible!="0";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//---------------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
LayoutNavEntry *LayoutNavEntry::find(LayoutNavEntry::Kind kind,
|
|
Packit |
1c1d7e |
const char *file) const
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutNavEntry *result=0;
|
|
Packit |
1c1d7e |
QListIterator<LayoutNavEntry> li(m_children);
|
|
Packit |
1c1d7e |
LayoutNavEntry *entry;
|
|
Packit |
1c1d7e |
for (li.toFirst();(entry=li.current());++li)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
// depth first search, needed to find the entry furthest from the
|
|
Packit |
1c1d7e |
// root in case an entry is in the tree twice
|
|
Packit |
1c1d7e |
result = entry->find(kind,file);
|
|
Packit |
1c1d7e |
if (result) return result;
|
|
Packit |
1c1d7e |
if (entry->kind()==kind && (file==0 || entry->baseFile()==file))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
return entry;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
return result;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QCString LayoutNavEntry::url() const
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QCString url = baseFile().stripWhiteSpace();
|
|
Packit |
1c1d7e |
if ((kind()!=LayoutNavEntry::User && kind()!=LayoutNavEntry::UserGroup) ||
|
|
Packit |
1c1d7e |
(kind()==LayoutNavEntry::UserGroup && url.left(9)=="usergroup"))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
url+=Doxygen::htmlFileExtension;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (url.left(5)=="@ref " || url.left(5)=="\\ref ")
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
Definition *d;
|
|
Packit |
1c1d7e |
QCString anchor;
|
|
Packit |
1c1d7e |
bool found=FALSE;
|
|
Packit |
1c1d7e |
if (resolveLink(0,url.mid(5).stripWhiteSpace(),TRUE,&d,anchor))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (d && d->isLinkable())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
url=d->getOutputFileBase()+Doxygen::htmlFileExtension;
|
|
Packit |
1c1d7e |
if (!anchor.isEmpty())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
url+="#"+anchor;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
found=TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
if (!found)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
msg("explicit link request to '%s' in layout file '%s' could not be resolved\n",qPrint(url.mid(5)),qPrint(Config_getString(LAYOUT_FILE)));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
//printf("LayoutNavEntry::url()=%s\n",url.data());
|
|
Packit |
1c1d7e |
return url;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//---------------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class LayoutParser : public QXmlDefaultHandler
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
class StartElementHandler
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
typedef void (LayoutParser::*Handler)(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
StartElementHandler(LayoutParser *parent, Handler h)
|
|
Packit |
1c1d7e |
: m_parent(parent), m_handler(h) {}
|
|
Packit |
1c1d7e |
virtual ~StartElementHandler() {}
|
|
Packit |
1c1d7e |
virtual void operator()(const QXmlAttributes &attrib)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
(m_parent->*m_handler)(attrib);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
protected:
|
|
Packit |
1c1d7e |
StartElementHandler() : m_parent(0), m_handler(0) {}
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
LayoutParser *m_parent;
|
|
Packit |
1c1d7e |
Handler m_handler;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class StartElementHandlerKind : public StartElementHandler
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
typedef void (LayoutParser::*Handler)(LayoutDocEntry::Kind kind,
|
|
Packit |
1c1d7e |
const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
StartElementHandlerKind(LayoutParser *parent, LayoutDocEntry::Kind k,Handler h)
|
|
Packit |
1c1d7e |
: m_parent(parent), m_kind(k), m_handler(h) {}
|
|
Packit |
1c1d7e |
void operator()(const QXmlAttributes &attrib)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
(m_parent->*m_handler)(m_kind,attrib);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
LayoutParser *m_parent;
|
|
Packit |
1c1d7e |
LayoutDocEntry::Kind m_kind;
|
|
Packit |
1c1d7e |
Handler m_handler;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class StartElementHandlerSection : public StartElementHandler
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
typedef void (LayoutParser::*Handler)(LayoutDocEntry::Kind kind,
|
|
Packit |
1c1d7e |
const QXmlAttributes &attrib,
|
|
Packit |
1c1d7e |
const QCString &title);
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
StartElementHandlerSection(LayoutParser *parent, LayoutDocEntry::Kind k,Handler h,
|
|
Packit |
1c1d7e |
const QCString &title)
|
|
Packit |
1c1d7e |
: m_parent(parent), m_kind(k), m_handler(h), m_title(title) {}
|
|
Packit |
1c1d7e |
void operator()(const QXmlAttributes &attrib)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
(m_parent->*m_handler)(m_kind,attrib,m_title);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
LayoutParser *m_parent;
|
|
Packit |
1c1d7e |
LayoutDocEntry::Kind m_kind;
|
|
Packit |
1c1d7e |
Handler m_handler;
|
|
Packit |
1c1d7e |
QCString m_title;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class StartElementHandlerMember : public StartElementHandler
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
typedef void (LayoutParser::*Handler)(const QXmlAttributes &attrib,
|
|
Packit |
1c1d7e |
MemberListType type,
|
|
Packit |
1c1d7e |
const QCString &title,
|
|
Packit |
1c1d7e |
const QCString &subtitle);
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
StartElementHandlerMember(LayoutParser *parent,
|
|
Packit |
1c1d7e |
Handler h,
|
|
Packit |
1c1d7e |
MemberListType type,
|
|
Packit |
1c1d7e |
const QCString &tl,
|
|
Packit |
1c1d7e |
const QCString &ss = QCString()
|
|
Packit |
1c1d7e |
)
|
|
Packit |
1c1d7e |
: m_parent(parent), m_handler(h), m_type(type),
|
|
Packit |
1c1d7e |
m_title(tl), m_subscript(ss) {}
|
|
Packit |
1c1d7e |
void operator()(const QXmlAttributes &attrib)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
(m_parent->*m_handler)(attrib,m_type,m_title,m_subscript);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
LayoutParser *m_parent;
|
|
Packit |
1c1d7e |
Handler m_handler;
|
|
Packit |
1c1d7e |
MemberListType m_type;
|
|
Packit |
1c1d7e |
QCString m_title;
|
|
Packit |
1c1d7e |
QCString m_subscript;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class StartElementHandlerNavEntry : public StartElementHandler
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
typedef void (LayoutParser::*Handler)(LayoutNavEntry::Kind kind,
|
|
Packit |
1c1d7e |
const QXmlAttributes &attrib,
|
|
Packit |
1c1d7e |
const QCString &title);
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
StartElementHandlerNavEntry(LayoutParser *parent,
|
|
Packit |
1c1d7e |
LayoutNavEntry::Kind kind,
|
|
Packit |
1c1d7e |
Handler h,
|
|
Packit |
1c1d7e |
const QCString &tl
|
|
Packit |
1c1d7e |
)
|
|
Packit |
1c1d7e |
: m_parent(parent), m_kind(kind), m_handler(h), m_title(tl) {}
|
|
Packit |
1c1d7e |
void operator()(const QXmlAttributes &attrib)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
(m_parent->*m_handler)(m_kind,attrib,m_title);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
LayoutParser *m_parent;
|
|
Packit |
1c1d7e |
LayoutNavEntry::Kind m_kind;
|
|
Packit |
1c1d7e |
Handler m_handler;
|
|
Packit |
1c1d7e |
QCString m_title;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class EndElementHandler
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
typedef void (LayoutParser::*Handler)();
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
EndElementHandler(LayoutParser *parent, Handler h) : m_parent(parent), m_handler(h) {}
|
|
Packit |
1c1d7e |
void operator()() { (m_parent->*m_handler)(); }
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
LayoutParser *m_parent;
|
|
Packit |
1c1d7e |
Handler m_handler;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
static LayoutParser &instance()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
static LayoutParser *theInstance = new LayoutParser;
|
|
Packit |
1c1d7e |
return *theInstance;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
void init()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_sHandler.setAutoDelete(TRUE);
|
|
Packit |
1c1d7e |
m_eHandler.setAutoDelete(TRUE);
|
|
Packit |
1c1d7e |
m_part = -1; // invalid
|
|
Packit |
1c1d7e |
m_rootNav = 0;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//bool fortranOpt = Config_getBool(OPTIMIZE_FOR_FORTRAN);
|
|
Packit |
1c1d7e |
//bool vhdlOpt = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
|
|
Packit |
1c1d7e |
//bool javaOpt = Config_getBool(OPTIMIZE_OUTPUT_JAVA);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// start & end handlers
|
|
Packit |
1c1d7e |
m_sHandler.insert("doxygenlayout",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startLayout));
|
|
Packit |
1c1d7e |
m_eHandler.insert("doxygenlayout",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endLayout));
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// class layout handlers
|
|
Packit |
1c1d7e |
m_sHandler.insert("navindex",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startNavIndex));
|
|
Packit |
1c1d7e |
m_sHandler.insert("navindex/tab",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startNavEntry));
|
|
Packit |
1c1d7e |
m_eHandler.insert("navindex/tab",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endNavEntry));
|
|
Packit |
1c1d7e |
m_eHandler.insert("navindex",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endNavIndex));
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// class layout handlers
|
|
Packit |
1c1d7e |
m_sHandler.insert("class",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startClass));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/briefdescription",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::BriefDesc,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/detaileddescription",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::DetailedDesc,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
theTranslator->trDetailedDescription()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/authorsection",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::AuthorSection,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/includes",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::ClassIncludes,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/inheritancegraph",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::ClassInheritanceGraph,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/collaborationgraph",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::ClassCollaborationGraph,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/allmemberslink",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::ClassAllMembersLink,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/usedfiles",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::ClassUsedFiles,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startMemberDecl));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/membergroups",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::MemberGroups,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/nestedclasses",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::ClassNestedClasses,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
COMPILE_FOR_2_OPTIONS(
|
|
Packit |
1c1d7e |
theTranslator->trCompounds(),
|
|
Packit |
1c1d7e |
SrcLangExt_VHDL,VhdlDocGen::trVhdlType(VhdlDocGen::ENTITY,FALSE),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trDataTypes()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/services",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_services,theTranslator->trServices()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/interfaces",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_interfaces,theTranslator->trInterfaces()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/publictypes",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_pubTypes,theTranslator->trPublicTypes()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/publicslots",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_pubSlots,theTranslator->trPublicSlots()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/signals",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_signals,theTranslator->trSignals()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/publicmethods",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_pubMethods,
|
|
Packit |
1c1d7e |
COMPILE_FOR_1_OPTION(
|
|
Packit |
1c1d7e |
theTranslator->trPublicMembers(),
|
|
Packit |
1c1d7e |
SrcLangExt_ObjC,theTranslator->trInstanceMethods()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/publicstaticmethods",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_pubStaticMethods,
|
|
Packit |
1c1d7e |
COMPILE_FOR_1_OPTION(
|
|
Packit |
1c1d7e |
theTranslator->trStaticPublicMembers(),
|
|
Packit |
1c1d7e |
SrcLangExt_ObjC,theTranslator->trClassMethods()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/publicattributes",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_pubAttribs,theTranslator->trPublicAttribs()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/publicstaticattributes",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_pubStaticAttribs,theTranslator->trStaticPublicAttribs()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/protectedtypes",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_proTypes,theTranslator->trProtectedTypes()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/protectedslots",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_proSlots,theTranslator->trProtectedSlots()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/protectedmethods",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_proMethods,theTranslator->trProtectedMembers()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/protectedstaticmethods",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_proStaticMethods,theTranslator->trStaticProtectedMembers()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/protectedattributes",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_proAttribs,theTranslator->trProtectedAttribs()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/protectedstaticattributes",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_proStaticAttribs,theTranslator->trStaticProtectedAttribs()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/packagetypes",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_pacTypes,theTranslator->trPackageTypes()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/packagemethods",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_pacMethods,theTranslator->trPackageMembers()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/packagestaticmethods",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_pacStaticMethods,theTranslator->trStaticPackageMembers()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/packageattributes",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_pacAttribs,theTranslator->trPackageAttribs()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/packagestaticattributes",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_pacStaticAttribs,theTranslator->trStaticPackageAttribs()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/properties",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_properties,theTranslator->trProperties()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/events",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_events,theTranslator->trEvents()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/privatetypes",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_priTypes,theTranslator->trPrivateTypes()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/privateslots",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_priSlots,theTranslator->trPrivateSlots()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/privatemethods",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_priMethods,theTranslator->trPrivateMembers()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/privatestaticmethods",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_priStaticMethods,theTranslator->trStaticPrivateMembers()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/privateattributes",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_priAttribs,theTranslator->trPrivateAttribs()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/privatestaticattributes",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_priStaticAttribs,theTranslator->trStaticPrivateAttribs()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/friends",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_friends,theTranslator->trFriends()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdecl/related",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_related,theTranslator->trRelatedFunctions(),
|
|
Packit |
1c1d7e |
theTranslator->trRelatedSubscript()));
|
|
Packit |
1c1d7e |
m_eHandler.insert("class/memberdecl",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endMemberDecl));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdef",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startMemberDef));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdef/inlineclasses",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::ClassInlineClasses,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
COMPILE_FOR_1_OPTION(
|
|
Packit |
1c1d7e |
theTranslator->trClassDocumentation(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trTypeDocumentation()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdef/typedefs",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_typedefMembers,theTranslator->trMemberTypedefDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdef/enums",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_enumMembers,theTranslator->trMemberEnumerationDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdef/services",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_serviceMembers,theTranslator->trInterfaces()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdef/interfaces",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_interfaceMembers,theTranslator->trInterfaces()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdef/constructors",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_constructors,theTranslator->trConstructorDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdef/functions",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_functionMembers,
|
|
Packit |
1c1d7e |
COMPILE_FOR_2_OPTIONS(
|
|
Packit |
1c1d7e |
theTranslator->trMemberFunctionDocumentation(),
|
|
Packit |
1c1d7e |
SrcLangExt_ObjC,theTranslator->trMethodDocumentation(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trMemberFunctionDocumentationFortran()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdef/related",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_relatedMembers,theTranslator->trRelatedFunctionDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdef/variables",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_variableMembers,theTranslator->trMemberDataDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdef/properties",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_propertyMembers,theTranslator->trPropertyDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("class/memberdef/events",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_eventMembers,theTranslator->trEventDocumentation()));
|
|
Packit |
1c1d7e |
m_eHandler.insert("class/memberdef",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endMemberDef));
|
|
Packit |
1c1d7e |
m_eHandler.insert("class",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endClass));
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// namespace layout handlers
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startNamespace));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/briefdescription",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::BriefDesc,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/detaileddescription",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::DetailedDesc,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
theTranslator->trDetailedDescription()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/authorsection",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::AuthorSection,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdecl",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startMemberDecl));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdecl/nestednamespaces",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::NamespaceNestedNamespaces,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
COMPILE_FOR_4_OPTIONS(
|
|
Packit |
1c1d7e |
theTranslator->trNamespaces(),
|
|
Packit |
1c1d7e |
SrcLangExt_Java,theTranslator->trPackages(),
|
|
Packit |
1c1d7e |
SrcLangExt_VHDL,theTranslator->trPackages(),
|
|
Packit |
1c1d7e |
SrcLangExt_IDL,theTranslator->trModules(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trModules()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdecl/constantgroups",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::NamespaceNestedConstantGroups,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
theTranslator->trConstantGroups()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdecl/classes",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::NamespaceClasses,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
COMPILE_FOR_2_OPTIONS(
|
|
Packit |
1c1d7e |
theTranslator->trCompounds(),
|
|
Packit |
1c1d7e |
SrcLangExt_VHDL,VhdlDocGen::trVhdlType(VhdlDocGen::ENTITY,FALSE),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trDataTypes()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdecl/membergroups",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::MemberGroups,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdecl/typedefs",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decTypedefMembers,theTranslator->trTypedefs()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdecl/enums",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decEnumMembers,theTranslator->trEnumerations()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdecl/functions",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decFuncMembers,
|
|
Packit |
1c1d7e |
COMPILE_FOR_2_OPTIONS(
|
|
Packit |
1c1d7e |
theTranslator->trFunctions(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trSubprograms(),
|
|
Packit |
1c1d7e |
SrcLangExt_VHDL,VhdlDocGen::trFunctionAndProc()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdecl/variables",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decVarMembers,theTranslator->trVariables()));
|
|
Packit |
1c1d7e |
m_eHandler.insert("namespace/memberdecl",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endMemberDecl));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdef",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startMemberDef));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdef/inlineclasses",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::NamespaceInlineClasses,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
COMPILE_FOR_1_OPTION(
|
|
Packit |
1c1d7e |
theTranslator->trClassDocumentation(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trTypeDocumentation()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdef/typedefs",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docTypedefMembers,theTranslator->trTypedefDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdef/enums",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docEnumMembers,theTranslator->trEnumerationTypeDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdef/functions",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docFuncMembers,
|
|
Packit |
1c1d7e |
COMPILE_FOR_1_OPTION(
|
|
Packit |
1c1d7e |
theTranslator->trFunctionDocumentation(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trSubprogramDocumentation()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("namespace/memberdef/variables",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docVarMembers,theTranslator->trVariableDocumentation()));
|
|
Packit |
1c1d7e |
m_eHandler.insert("namespace/memberdef",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endMemberDef));
|
|
Packit |
1c1d7e |
m_eHandler.insert("namespace",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endNamespace));
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// file layout handlers
|
|
Packit |
1c1d7e |
m_sHandler.insert("file",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startFile));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/briefdescription",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::BriefDesc,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/detaileddescription",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::DetailedDesc,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
theTranslator->trDetailedDescription()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/authorsection",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::AuthorSection,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/includes",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::FileIncludes,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/includegraph",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::FileIncludeGraph,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/includedbygraph",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::FileIncludedByGraph,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/sourcelink",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::FileSourceLink,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdecl/membergroups",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::MemberGroups,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdecl",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startMemberDecl));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdecl/classes",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::FileClasses,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
COMPILE_FOR_2_OPTIONS(
|
|
Packit |
1c1d7e |
theTranslator->trCompounds(),
|
|
Packit |
1c1d7e |
SrcLangExt_VHDL,VhdlDocGen::trVhdlType(VhdlDocGen::ENTITY,FALSE),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trDataTypes()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdecl/namespaces",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::FileNamespaces,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
COMPILE_FOR_3_OPTIONS(
|
|
Packit |
1c1d7e |
theTranslator->trNamespaces(),
|
|
Packit |
1c1d7e |
SrcLangExt_Java,theTranslator->trPackages(),
|
|
Packit |
1c1d7e |
SrcLangExt_IDL,theTranslator->trModules(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trModules()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdecl/constantgroups",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::FileConstantGroups,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
theTranslator->trConstantGroups()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdecl/defines",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decDefineMembers,theTranslator->trDefines()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdecl/typedefs",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decTypedefMembers,theTranslator->trTypedefs()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdecl/enums",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decEnumMembers,theTranslator->trEnumerations()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdecl/functions",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decFuncMembers,
|
|
Packit |
1c1d7e |
COMPILE_FOR_2_OPTIONS(
|
|
Packit |
1c1d7e |
theTranslator->trFunctions(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trSubprograms(),
|
|
Packit |
1c1d7e |
SrcLangExt_VHDL,VhdlDocGen::trFunctionAndProc()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdecl/variables",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decVarMembers,theTranslator->trVariables()));
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
m_eHandler.insert("file/memberdecl",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endMemberDecl));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdef",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startMemberDef));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdef/inlineclasses",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::FileInlineClasses,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
COMPILE_FOR_1_OPTION(
|
|
Packit |
1c1d7e |
theTranslator->trClassDocumentation(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trTypeDocumentation()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdef/defines",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docDefineMembers,theTranslator->trDefineDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdef/typedefs",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docTypedefMembers,theTranslator->trTypedefDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdef/enums",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docEnumMembers,
|
|
Packit |
1c1d7e |
theTranslator->trEnumerationTypeDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdef/functions",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docFuncMembers,
|
|
Packit |
1c1d7e |
COMPILE_FOR_1_OPTION(
|
|
Packit |
1c1d7e |
theTranslator->trFunctionDocumentation(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trSubprogramDocumentation()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("file/memberdef/variables",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docVarMembers,theTranslator->trVariableDocumentation()));
|
|
Packit |
1c1d7e |
m_eHandler.insert("file/memberdef",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endMemberDef));
|
|
Packit |
1c1d7e |
m_eHandler.insert("file",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endFile));
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// group layout handlers
|
|
Packit |
1c1d7e |
m_sHandler.insert("group",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startGroup));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/briefdescription",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::BriefDesc,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/detaileddescription",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::DetailedDesc,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
theTranslator->trDetailedDescription()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/authorsection",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::AuthorSection,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/groupgraph",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::GroupGraph,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/membergroups",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::MemberGroups,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startMemberDecl));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/classes",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::GroupClasses,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
COMPILE_FOR_2_OPTIONS(
|
|
Packit |
1c1d7e |
theTranslator->trCompounds(),
|
|
Packit |
1c1d7e |
SrcLangExt_VHDL,VhdlDocGen::trVhdlType(VhdlDocGen::ENTITY,FALSE),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trDataTypes()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/namespaces",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::GroupNamespaces,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
COMPILE_FOR_2_OPTIONS(
|
|
Packit |
1c1d7e |
theTranslator->trNamespaces(),
|
|
Packit |
1c1d7e |
SrcLangExt_Java,theTranslator->trPackages(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trModules()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/dirs",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::GroupDirs,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
theTranslator->trDirectories()
|
|
Packit |
1c1d7e |
));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/nestedgroups",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::GroupNestedGroups,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
theTranslator->trModules()
|
|
Packit |
1c1d7e |
));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/files",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::GroupFiles,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
theTranslator->trFile(TRUE,FALSE)
|
|
Packit |
1c1d7e |
));
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/defines",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decDefineMembers,theTranslator->trDefines()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/typedefs",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decTypedefMembers,theTranslator->trTypedefs()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/enums",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decEnumMembers,theTranslator->trEnumerations()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/enumvalues",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decEnumValMembers,theTranslator->trEnumerationValues()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/functions",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decFuncMembers,
|
|
Packit |
1c1d7e |
COMPILE_FOR_2_OPTIONS(
|
|
Packit |
1c1d7e |
theTranslator->trFunctions(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trSubprograms(),
|
|
Packit |
1c1d7e |
SrcLangExt_VHDL,VhdlDocGen::trFunctionAndProc()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/variables",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decVarMembers,theTranslator->trVariables()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/signals",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decSignalMembers,theTranslator->trSignals()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/publicslots",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decPubSlotMembers,theTranslator->trPublicSlots()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/protectedslots",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decProSlotMembers,theTranslator->trProtectedSlots()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/privateslots",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decPriSlotMembers,theTranslator->trPrivateSlots()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/events",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decEventMembers,theTranslator->trEvents()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/properties",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decPropMembers,theTranslator->trProperties()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdecl/friends",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDeclEntry,
|
|
Packit |
1c1d7e |
MemberListType_decFriendMembers,theTranslator->trFriends()));
|
|
Packit |
1c1d7e |
m_eHandler.insert("group/memberdecl",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endMemberDecl));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startMemberDef));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/pagedocs",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::GroupPageDocs,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/inlineclasses",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::GroupInlineClasses,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
COMPILE_FOR_1_OPTION(
|
|
Packit |
1c1d7e |
theTranslator->trClassDocumentation(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trTypeDocumentation()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/defines",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docDefineMembers,theTranslator->trDefineDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/typedefs",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docTypedefMembers,theTranslator->trTypedefDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/enums",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docEnumMembers,theTranslator->trEnumerationTypeDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/enumvalues",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docEnumValMembers,theTranslator->trEnumerationValueDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/functions",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docFuncMembers,
|
|
Packit |
1c1d7e |
COMPILE_FOR_1_OPTION(
|
|
Packit |
1c1d7e |
theTranslator->trFunctionDocumentation(),
|
|
Packit |
1c1d7e |
SrcLangExt_Fortran,theTranslator->trSubprogramDocumentation()
|
|
Packit |
1c1d7e |
)));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/variables",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docVarMembers,theTranslator->trVariableDocumentation()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/signals",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docSignalMembers,theTranslator->trSignals()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/publicslots",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docPubSlotMembers,theTranslator->trPublicSlots()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/protectedslots",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docProSlotMembers,theTranslator->trProtectedSlots()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/privateslots",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docPriSlotMembers,theTranslator->trPrivateSlots()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/events",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docEventMembers,theTranslator->trEvents()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/properties",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docPropMembers,theTranslator->trProperties()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("group/memberdef/friends",
|
|
Packit |
1c1d7e |
new StartElementHandlerMember(this,&LayoutParser::startMemberDefEntry,
|
|
Packit |
1c1d7e |
MemberListType_docFriendMembers,theTranslator->trFriends()));
|
|
Packit |
1c1d7e |
m_eHandler.insert("group/memberdef",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endMemberDef));
|
|
Packit |
1c1d7e |
m_eHandler.insert("group",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endGroup));
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// directory layout handlers
|
|
Packit |
1c1d7e |
m_sHandler.insert("directory",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startDirectory));
|
|
Packit |
1c1d7e |
m_sHandler.insert("directory/briefdescription",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::BriefDesc,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("directory/detaileddescription",
|
|
Packit |
1c1d7e |
new StartElementHandlerSection(this,LayoutDocEntry::DetailedDesc,&LayoutParser::startSectionEntry,
|
|
Packit |
1c1d7e |
theTranslator->trDetailedDescription()));
|
|
Packit |
1c1d7e |
m_sHandler.insert("directory/directorygraph",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::DirGraph,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("directory/memberdecl",
|
|
Packit |
1c1d7e |
new StartElementHandler(this,&LayoutParser::startMemberDecl));
|
|
Packit |
1c1d7e |
m_sHandler.insert("directory/memberdecl/dirs",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::DirSubDirs,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_sHandler.insert("directory/memberdecl/files",
|
|
Packit |
1c1d7e |
new StartElementHandlerKind(this,LayoutDocEntry::DirFiles,&LayoutParser::startSimpleEntry));
|
|
Packit |
1c1d7e |
m_eHandler.insert("directory/memberdecl",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endMemberDecl));
|
|
Packit |
1c1d7e |
m_eHandler.insert("directory",
|
|
Packit |
1c1d7e |
new EndElementHandler(this,&LayoutParser::endDirectory));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startSimpleEntry(LayoutDocEntry::Kind k,const QXmlAttributes &attrib)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
bool isVisible = elemIsVisible(attrib);
|
|
Packit |
1c1d7e |
if (m_part!=-1 && isVisible)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutDocManager::instance().addEntry((LayoutDocManager::LayoutPart)m_part,
|
|
Packit |
1c1d7e |
new LayoutDocEntrySimple(k));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startSectionEntry(LayoutDocEntry::Kind k,const QXmlAttributes &attrib,
|
|
Packit |
1c1d7e |
const QCString &title)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
bool isVisible = elemIsVisible(attrib);
|
|
Packit |
1c1d7e |
QCString userTitle = attrib.value("title").utf8();
|
|
Packit |
1c1d7e |
//printf("startSectionEntry: title='%s' userTitle='%s'\n",
|
|
Packit |
1c1d7e |
// title.data(),userTitle.data());
|
|
Packit |
1c1d7e |
if (userTitle.isEmpty()) userTitle = title;
|
|
Packit |
1c1d7e |
if (m_part!=-1 && isVisible)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutDocManager::instance().addEntry((LayoutDocManager::LayoutPart)m_part,
|
|
Packit |
1c1d7e |
new LayoutDocEntrySection(k,userTitle));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startMemberDeclEntry(const QXmlAttributes &attrib,MemberListType type,
|
|
Packit |
1c1d7e |
const QCString &title,const QCString &subscript)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
//QCString visible = convertToQCString(attrib.value("visible"));
|
|
Packit |
1c1d7e |
//bool isVisible = visible.isEmpty() || (visible!="no" && visible!="0");
|
|
Packit |
1c1d7e |
QCString userTitle = attrib.value("title").utf8();
|
|
Packit |
1c1d7e |
QCString userSubscript = attrib.value("subtitle").utf8();
|
|
Packit |
1c1d7e |
if (userTitle.isEmpty()) userTitle = title;
|
|
Packit |
1c1d7e |
if (userSubscript.isEmpty()) userSubscript = subscript;
|
|
Packit |
1c1d7e |
//printf("memberdecl: %s\n",userTitle.data());
|
|
Packit |
1c1d7e |
if (m_part!=-1 /*&& isVisible*/)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutDocManager::instance().addEntry((LayoutDocManager::LayoutPart)m_part,
|
|
Packit |
1c1d7e |
new LayoutDocEntryMemberDecl(type,userTitle,userSubscript));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startMemberDefEntry(const QXmlAttributes &attrib,MemberListType type,
|
|
Packit |
1c1d7e |
const QCString &title,const QCString &)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QCString userTitle = attrib.value("title").utf8();
|
|
Packit |
1c1d7e |
if (userTitle.isEmpty()) userTitle = title;
|
|
Packit |
1c1d7e |
//printf("memberdef: %s\n",userTitle.data());
|
|
Packit |
1c1d7e |
if (m_part!=-1 /*&& isVisible*/)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutDocManager::instance().addEntry((LayoutDocManager::LayoutPart)m_part,
|
|
Packit |
1c1d7e |
new LayoutDocEntryMemberDef(type,userTitle));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startLayout(const QXmlAttributes &)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void endLayout()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startNavIndex(const QXmlAttributes &)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_scope="navindex/";
|
|
Packit |
1c1d7e |
m_rootNav = LayoutDocManager::instance().rootNavEntry();
|
|
Packit |
1c1d7e |
if (m_rootNav) m_rootNav->clear();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void endNavIndex()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_scope="";
|
|
Packit |
1c1d7e |
if (m_rootNav && !m_rootNav->find(LayoutNavEntry::MainPage))
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
// no MainPage node... add one as the first item of the root node...
|
|
Packit |
1c1d7e |
new LayoutNavEntry(m_rootNav,LayoutNavEntry::MainPage, TRUE,
|
|
Packit |
1c1d7e |
/*Config_getBool(GENERATE_TREEVIEW) ? "main" :*/ "index",
|
|
Packit |
1c1d7e |
theTranslator->trMainPage(),"",TRUE);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startNavEntry(const QXmlAttributes &attrib)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
static bool javaOpt = Config_getBool(OPTIMIZE_OUTPUT_JAVA);
|
|
Packit |
1c1d7e |
static bool fortranOpt = Config_getBool(OPTIMIZE_FOR_FORTRAN);
|
|
Packit |
1c1d7e |
static bool vhdlOpt = Config_getBool(OPTIMIZE_OUTPUT_VHDL);
|
|
Packit |
1c1d7e |
static bool hasGraphicalHierarchy = Config_getBool(HAVE_DOT) &&
|
|
Packit |
1c1d7e |
Config_getBool(GRAPHICAL_HIERARCHY);
|
|
Packit |
1c1d7e |
static bool extractAll = Config_getBool(EXTRACT_ALL);
|
|
Packit |
1c1d7e |
static struct NavEntryMap
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
const char *typeStr; // type attribute name in the XML file
|
|
Packit |
1c1d7e |
LayoutNavEntry::Kind kind; // corresponding enum name
|
|
Packit |
1c1d7e |
QCString mainName; // default title for an item if it has children
|
|
Packit |
1c1d7e |
QCString subName; // optional name for an item if it is rendered as a child
|
|
Packit |
1c1d7e |
QCString intro; // introduction text to be put on the index page
|
|
Packit |
1c1d7e |
QCString baseFile; // base name of the file containing the index page
|
|
Packit |
1c1d7e |
} mapping[] =
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
{ "mainpage",
|
|
Packit |
1c1d7e |
LayoutNavEntry::MainPage,
|
|
Packit |
1c1d7e |
theTranslator->trMainPage(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
"index"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "pages",
|
|
Packit |
1c1d7e |
LayoutNavEntry::Pages,
|
|
Packit |
1c1d7e |
theTranslator->trRelatedPages(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
theTranslator->trRelatedPagesDescription(),
|
|
Packit |
1c1d7e |
"pages"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "modules",
|
|
Packit |
1c1d7e |
LayoutNavEntry::Modules,
|
|
Packit |
1c1d7e |
theTranslator->trModules(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
theTranslator->trModulesDescription(),
|
|
Packit |
1c1d7e |
"modules"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "namespaces",
|
|
Packit |
1c1d7e |
LayoutNavEntry::Namespaces,
|
|
Packit |
1c1d7e |
javaOpt || vhdlOpt ? theTranslator->trPackages() : fortranOpt ? theTranslator->trModules() : theTranslator->trNamespaces(),
|
|
Packit |
1c1d7e |
javaOpt || vhdlOpt ? theTranslator->trPackages() : fortranOpt ? theTranslator->trModulesList() : theTranslator->trNamespaceList(),
|
|
Packit |
1c1d7e |
javaOpt || vhdlOpt ? theTranslator->trPackageListDescription() : fortranOpt ? theTranslator->trModulesListDescription(extractAll) : theTranslator->trNamespaceListDescription(extractAll),
|
|
Packit |
1c1d7e |
"namespaces"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "namespacelist",
|
|
Packit |
1c1d7e |
LayoutNavEntry::NamespaceList,
|
|
Packit |
1c1d7e |
javaOpt || vhdlOpt ? theTranslator->trPackages() : fortranOpt ? theTranslator->trModulesList() : theTranslator->trNamespaceList(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
javaOpt || vhdlOpt ? theTranslator->trPackageListDescription() : fortranOpt ? theTranslator->trModulesListDescription(extractAll) : theTranslator->trNamespaceListDescription(extractAll),
|
|
Packit |
1c1d7e |
"namespaces"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "namespacemembers",
|
|
Packit |
1c1d7e |
LayoutNavEntry::NamespaceMembers,
|
|
Packit |
1c1d7e |
javaOpt || vhdlOpt ? theTranslator->trPackageMembers() : fortranOpt ? theTranslator->trModulesMembers() : theTranslator->trNamespaceMembers(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
fortranOpt ? theTranslator->trModulesMemberDescription(extractAll) : theTranslator->trNamespaceMemberDescription(extractAll),
|
|
Packit |
1c1d7e |
"namespacemembers"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "classindex",
|
|
Packit |
1c1d7e |
LayoutNavEntry::ClassIndex,
|
|
Packit |
1c1d7e |
fortranOpt ? theTranslator->trDataTypes() : vhdlOpt ? VhdlDocGen::trDesignUnits() : theTranslator->trCompoundIndex(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
"classes"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "classes",
|
|
Packit |
1c1d7e |
LayoutNavEntry::Classes,
|
|
Packit |
1c1d7e |
fortranOpt ? theTranslator->trCompoundListFortran() : vhdlOpt ? VhdlDocGen::trDesignUnitList() : theTranslator->trClasses(),
|
|
Packit |
1c1d7e |
theTranslator->trCompoundList(),
|
|
Packit |
1c1d7e |
fortranOpt ? theTranslator->trCompoundListDescriptionFortran() : vhdlOpt ? VhdlDocGen::trDesignUnitListDescription() : theTranslator->trCompoundListDescription(),
|
|
Packit |
1c1d7e |
"annotated"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "classlist",
|
|
Packit |
1c1d7e |
LayoutNavEntry::ClassList,
|
|
Packit |
1c1d7e |
fortranOpt ? theTranslator->trCompoundListFortran() : vhdlOpt ? VhdlDocGen::trDesignUnitList() : theTranslator->trCompoundList(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
fortranOpt ? theTranslator->trCompoundListDescriptionFortran() : vhdlOpt ? VhdlDocGen::trDesignUnitListDescription() : theTranslator->trCompoundListDescription(),
|
|
Packit |
1c1d7e |
"annotated"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "hierarchy",
|
|
Packit |
1c1d7e |
LayoutNavEntry::ClassHierarchy,
|
|
Packit |
1c1d7e |
vhdlOpt ? VhdlDocGen::trDesignUnitHierarchy() : theTranslator->trClassHierarchy(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
theTranslator->trClassHierarchyDescription(),
|
|
Packit |
1c1d7e |
hasGraphicalHierarchy ? "inherits" : "hierarchy"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "classmembers",
|
|
Packit |
1c1d7e |
LayoutNavEntry::ClassMembers,
|
|
Packit |
1c1d7e |
fortranOpt ? theTranslator->trCompoundMembersFortran() : vhdlOpt ? VhdlDocGen::trDesignUnitMembers() : theTranslator->trCompoundMembers(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
fortranOpt ? theTranslator->trCompoundMembersDescriptionFortran(extractAll) : theTranslator->trCompoundMembersDescription(extractAll),
|
|
Packit |
1c1d7e |
"functions"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "files",
|
|
Packit |
1c1d7e |
LayoutNavEntry::Files,
|
|
Packit |
1c1d7e |
theTranslator->trFile(TRUE,FALSE),
|
|
Packit |
1c1d7e |
theTranslator->trFileList(),
|
|
Packit |
1c1d7e |
theTranslator->trFileListDescription(extractAll),
|
|
Packit |
1c1d7e |
"files"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "filelist",
|
|
Packit |
1c1d7e |
LayoutNavEntry::FileList,
|
|
Packit |
1c1d7e |
theTranslator->trFileList(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
theTranslator->trFileListDescription(extractAll),
|
|
Packit |
1c1d7e |
"files"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "globals",
|
|
Packit |
1c1d7e |
LayoutNavEntry::FileGlobals,
|
|
Packit |
1c1d7e |
theTranslator->trFileMembers(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
theTranslator->trFileMembersDescription(extractAll),
|
|
Packit |
1c1d7e |
"globals"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
//{ "dirs",
|
|
Packit |
1c1d7e |
// LayoutNavEntry::Dirs,
|
|
Packit |
1c1d7e |
// theTranslator->trDirectories(),
|
|
Packit |
1c1d7e |
// QCString(),
|
|
Packit |
1c1d7e |
// theTranslator->trDirDescription(),
|
|
Packit |
1c1d7e |
// "dirs"
|
|
Packit |
1c1d7e |
//},
|
|
Packit |
1c1d7e |
{ "examples",
|
|
Packit |
1c1d7e |
LayoutNavEntry::Examples,
|
|
Packit |
1c1d7e |
theTranslator->trExamples(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
theTranslator->trExamplesDescription(),
|
|
Packit |
1c1d7e |
"examples"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "user",
|
|
Packit |
1c1d7e |
LayoutNavEntry::User,
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
"user"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ "usergroup",
|
|
Packit |
1c1d7e |
LayoutNavEntry::UserGroup,
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
"usergroup"
|
|
Packit |
1c1d7e |
},
|
|
Packit |
1c1d7e |
{ 0, // end of list
|
|
Packit |
1c1d7e |
(LayoutNavEntry::Kind)0,
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
QCString(),
|
|
Packit |
1c1d7e |
QCString()
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
LayoutNavEntry::Kind kind;
|
|
Packit |
1c1d7e |
// find type in the table
|
|
Packit |
1c1d7e |
int i=0;
|
|
Packit |
1c1d7e |
QString type = attrib.value("type");
|
|
Packit |
1c1d7e |
while (mapping[i].typeStr)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (mapping[i].typeStr==type)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
kind = mapping[i].kind;
|
|
Packit |
1c1d7e |
break;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
i++;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
if (mapping[i].typeStr==0)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (type.isEmpty())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
err("an entry tag within a navindex has no type attribute! Check your layout file!\n");
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
err("the type '%s' is not supported for the entry tag within a navindex! Check your layout file!\n",type.data());
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
m_invalidEntry=TRUE;
|
|
Packit |
1c1d7e |
return;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
QCString baseFile = mapping[i].baseFile;
|
|
Packit |
1c1d7e |
QCString title = attrib.value("title").utf8();
|
|
Packit |
1c1d7e |
bool isVisible = elemIsVisible(attrib);
|
|
Packit |
1c1d7e |
if (title.isEmpty()) // use default title
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
title = mapping[i].mainName; // use title for main row
|
|
Packit |
1c1d7e |
if (m_rootNav!=LayoutDocManager::instance().rootNavEntry() && !mapping[i].subName.isEmpty())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
title = mapping[i].subName; // if this is a child of another row, use the subName if available
|
|
Packit |
1c1d7e |
// this is mainly done to get compatible naming with older versions.
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
QCString intro = attrib.value("intro").utf8();
|
|
Packit |
1c1d7e |
if (intro.isEmpty()) // use default intro text
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
intro = mapping[i].intro;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
QCString url = attrib.value("url").utf8();
|
|
Packit |
1c1d7e |
if (mapping[i].kind==LayoutNavEntry::User && !url.isEmpty())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
baseFile=url;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else if (kind==LayoutNavEntry::UserGroup)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (!url.isEmpty())
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
baseFile=url;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
baseFile+=QCString().sprintf("%d",m_userGroupCount++);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
// create new item and make it the new root
|
|
Packit |
1c1d7e |
m_rootNav = new LayoutNavEntry(m_rootNav,kind,isVisible,baseFile,title,intro);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void endNavEntry()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
// set the root back to the parent
|
|
Packit |
1c1d7e |
if (m_rootNav && !m_invalidEntry) m_rootNav = m_rootNav->parent();
|
|
Packit |
1c1d7e |
m_invalidEntry=FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startClass(const QXmlAttributes &)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutDocManager::instance().clear(LayoutDocManager::Class);
|
|
Packit |
1c1d7e |
m_scope="class/";
|
|
Packit |
1c1d7e |
m_part = (int)LayoutDocManager::Class;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void endClass()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_scope="";
|
|
Packit |
1c1d7e |
m_part = -1;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startNamespace(const QXmlAttributes &)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutDocManager::instance().clear(LayoutDocManager::Namespace);
|
|
Packit |
1c1d7e |
m_scope="namespace/";
|
|
Packit |
1c1d7e |
m_part = (int)LayoutDocManager::Namespace;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void endNamespace()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_scope="";
|
|
Packit |
1c1d7e |
m_part = -1;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startFile(const QXmlAttributes &)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutDocManager::instance().clear(LayoutDocManager::File);
|
|
Packit |
1c1d7e |
m_scope="file/";
|
|
Packit |
1c1d7e |
m_part = (int)LayoutDocManager::File;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void endFile()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_scope="";
|
|
Packit |
1c1d7e |
m_part = -1;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startGroup(const QXmlAttributes &)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutDocManager::instance().clear(LayoutDocManager::Group);
|
|
Packit |
1c1d7e |
m_scope="group/";
|
|
Packit |
1c1d7e |
m_part = (int)LayoutDocManager::Group;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void endGroup()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_scope="";
|
|
Packit |
1c1d7e |
m_part = -1;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startDirectory(const QXmlAttributes &)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutDocManager::instance().clear(LayoutDocManager::Directory);
|
|
Packit |
1c1d7e |
m_scope="directory/";
|
|
Packit |
1c1d7e |
m_part = (int)LayoutDocManager::Directory;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void endDirectory()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_scope="";
|
|
Packit |
1c1d7e |
m_part = -1;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startMemberDef(const QXmlAttributes &)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_scope+="memberdef/";
|
|
Packit |
1c1d7e |
if (m_part!=-1)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutDocManager::instance().addEntry((LayoutDocManager::LayoutPart)m_part,
|
|
Packit |
1c1d7e |
new LayoutDocEntrySimple(LayoutDocEntry::MemberDefStart));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void endMemberDef()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
int i=m_scope.findRev("memberdef/");
|
|
Packit |
1c1d7e |
if (i!=-1)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_scope=m_scope.left(i);
|
|
Packit |
1c1d7e |
if (m_part!=-1)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutDocManager::instance().addEntry((LayoutDocManager::LayoutPart)m_part,
|
|
Packit |
1c1d7e |
new LayoutDocEntrySimple(LayoutDocEntry::MemberDefEnd));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startMemberDecl(const QXmlAttributes &)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_scope+="memberdecl/";
|
|
Packit |
1c1d7e |
if (m_part!=-1)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutDocManager::instance().addEntry((LayoutDocManager::LayoutPart)m_part,
|
|
Packit |
1c1d7e |
new LayoutDocEntrySimple(LayoutDocEntry::MemberDeclStart));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void endMemberDecl()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
int i=m_scope.findRev("memberdecl/");
|
|
Packit |
1c1d7e |
if (i!=-1)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
m_scope=m_scope.left(i);
|
|
Packit |
1c1d7e |
if (m_part!=-1)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutDocManager::instance().addEntry((LayoutDocManager::LayoutPart)m_part,
|
|
Packit |
1c1d7e |
new LayoutDocEntrySimple(LayoutDocEntry::MemberDeclEnd));
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// reimplemented from QXmlDefaultHandler
|
|
Packit |
1c1d7e |
bool startElement( const QString&, const QString&,
|
|
Packit |
1c1d7e |
const QString& name, const QXmlAttributes& attrib )
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
//printf("startElement [%s]::[%s]\n",m_scope.data(),name.data());
|
|
Packit |
1c1d7e |
StartElementHandler *handler = m_sHandler[m_scope+name.utf8()];
|
|
Packit |
1c1d7e |
if (handler)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
(*handler)(attrib);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
err("Unexpected start tag `%s' found in scope='%s'!\n",
|
|
Packit |
1c1d7e |
name.data(),m_scope.data());
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
return TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
bool endElement( const QString&, const QString&, const QString& name )
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
//printf("endElement [%s]::[%s]\n",m_scope.data(),name.data());
|
|
Packit |
1c1d7e |
EndElementHandler *handler;
|
|
Packit |
1c1d7e |
if (!m_scope.isEmpty() && m_scope.right(name.length()+1)==name.utf8()+"/")
|
|
Packit |
1c1d7e |
{ // element ends current scope
|
|
Packit |
1c1d7e |
handler = m_eHandler[m_scope.left(m_scope.length()-1)];
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
else // continue with current scope
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
handler = m_eHandler[m_scope+name.utf8()];
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
if (handler)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
(*handler)();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
return TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
bool startDocument()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
return TRUE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
LayoutParser() : m_sHandler(163), m_eHandler(17), m_invalidEntry(FALSE) { }
|
|
Packit |
1c1d7e |
~LayoutParser() { delete m_rootNav; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QDict<StartElementHandler> m_sHandler;
|
|
Packit |
1c1d7e |
QDict<EndElementHandler> m_eHandler;
|
|
Packit |
1c1d7e |
QCString m_scope;
|
|
Packit |
1c1d7e |
int m_part;
|
|
Packit |
1c1d7e |
LayoutNavEntry *m_rootNav;
|
|
Packit |
1c1d7e |
bool m_invalidEntry;
|
|
Packit |
1c1d7e |
static int m_userGroupCount;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
int LayoutParser::m_userGroupCount=0;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//---------------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class LayoutErrorHandler : public QXmlErrorHandler
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
LayoutErrorHandler(const char *fn) : fileName(fn) {}
|
|
Packit |
1c1d7e |
bool warning( const QXmlParseException &exception )
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
warn_uncond("at line %d column %d of %s: %s\n",
|
|
Packit |
1c1d7e |
exception.lineNumber(),exception.columnNumber(),fileName.data(),
|
|
Packit |
1c1d7e |
exception.message().data());
|
|
Packit |
1c1d7e |
return FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
bool error( const QXmlParseException &exception )
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
err("at line %d column %d of %s: %s\n",
|
|
Packit |
1c1d7e |
exception.lineNumber(),exception.columnNumber(),fileName.data(),
|
|
Packit |
1c1d7e |
exception.message().data());
|
|
Packit |
1c1d7e |
return FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
bool fatalError( const QXmlParseException &exception )
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
err("fatal: at line %d column %d of %s: %s\n",
|
|
Packit |
1c1d7e |
exception.lineNumber(),exception.columnNumber(),fileName.data(),
|
|
Packit |
1c1d7e |
exception.message().data());
|
|
Packit |
1c1d7e |
return FALSE;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
QString errorString() { return ""; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QString errorMsg;
|
|
Packit |
1c1d7e |
QString fileName;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//---------------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class LayoutDocManager::Private
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
QList<LayoutDocEntry> docEntries[LayoutDocManager::NrParts];
|
|
Packit |
1c1d7e |
LayoutNavEntry *rootNav;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
LayoutDocManager::LayoutDocManager()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
d = new Private;
|
|
Packit |
1c1d7e |
int i;
|
|
Packit |
1c1d7e |
for (i=0;i
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
d->docEntries[i].setAutoDelete(TRUE);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
d->rootNav = new LayoutNavEntry;
|
|
Packit |
1c1d7e |
LayoutParser::instance().init();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void LayoutDocManager::init()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
// parse the default layout
|
|
Packit |
1c1d7e |
LayoutErrorHandler errorHandler( "layout_default.xml" );
|
|
Packit |
1c1d7e |
QXmlInputSource source;
|
|
Packit |
1c1d7e |
source.setData( layout_default );
|
|
Packit |
1c1d7e |
QXmlSimpleReader reader;
|
|
Packit |
1c1d7e |
reader.setContentHandler( &LayoutParser::instance() );
|
|
Packit |
1c1d7e |
reader.setErrorHandler( &errorHandler );
|
|
Packit |
1c1d7e |
reader.parse( source );
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
LayoutDocManager::~LayoutDocManager()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
delete d->rootNav;
|
|
Packit |
1c1d7e |
delete d;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
LayoutDocManager & LayoutDocManager::instance()
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
static LayoutDocManager *theInstance = new LayoutDocManager;
|
|
Packit |
1c1d7e |
return *theInstance;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
const QList<LayoutDocEntry> &LayoutDocManager::docEntries(LayoutDocManager::LayoutPart part) const
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
return d->docEntries[(int)part];
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
LayoutNavEntry* LayoutDocManager::rootNavEntry() const
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
return d->rootNav;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void LayoutDocManager::addEntry(LayoutDocManager::LayoutPart p,LayoutDocEntry *e)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
d->docEntries[(int)p].append(e);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void LayoutDocManager::clear(LayoutDocManager::LayoutPart p)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
d->docEntries[(int)p].clear();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void LayoutDocManager::parse(QTextStream &t,const char *fileName)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
LayoutErrorHandler errorHandler(fileName);
|
|
Packit |
1c1d7e |
QXmlInputSource source( t );
|
|
Packit |
1c1d7e |
QXmlSimpleReader reader;
|
|
Packit |
1c1d7e |
reader.setContentHandler( &LayoutParser::instance() );
|
|
Packit |
1c1d7e |
reader.setErrorHandler( &errorHandler );
|
|
Packit |
1c1d7e |
reader.parse( source );
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//---------------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void writeDefaultLayoutFile(const char *fileName)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
QFile f(fileName);
|
|
Packit |
1c1d7e |
bool ok = openOutputFile(fileName,f);
|
|
Packit |
1c1d7e |
if (!ok)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
err("Failed to open file %s for writing!\n",fileName);
|
|
Packit |
1c1d7e |
return;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
QTextStream t(&f);
|
|
Packit |
1c1d7e |
t << substitute(layout_default,"$doxygenversion",versionString);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//----------------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// Convert input to a title.
|
|
Packit |
1c1d7e |
// The format of input can be a simple title "A title" or in case there are different
|
|
Packit |
1c1d7e |
// titles for some programming languages they can take the following form:
|
|
Packit |
1c1d7e |
// "A title|16=Another title|8=Yet Another title"
|
|
Packit |
1c1d7e |
// where the number is a value of SrcLangExt in decimal notation (i.e. 16=Java, 8=IDL).
|
|
Packit |
1c1d7e |
QCString extractLanguageSpecificTitle(const QCString &input,SrcLangExt lang)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
int i,s=0,e=input.find('|');
|
|
Packit |
1c1d7e |
if (e==-1) return input; // simple title case
|
|
Packit |
1c1d7e |
int e1=e;
|
|
Packit |
1c1d7e |
while (e!=-1) // look for 'number=title' pattern separated by '|'
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
s=e+1;
|
|
Packit |
1c1d7e |
e=input.find('|',s);
|
|
Packit |
1c1d7e |
i=input.find('=',s);
|
|
Packit |
1c1d7e |
assert(i>s);
|
|
Packit |
1c1d7e |
int key=input.mid(s,i-s).toInt();
|
|
Packit |
1c1d7e |
if (key==(int)lang) // found matching key
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (e==-1) e=input.length();
|
|
Packit |
1c1d7e |
return input.mid(i+1,e-i-1);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
return input.left(e1); // fallback, no explicit language key found
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//----------------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QCString LayoutDocEntrySection::title(SrcLangExt lang) const
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
return extractLanguageSpecificTitle(m_title,lang);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//----------------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QCString LayoutDocEntryMemberDecl::title(SrcLangExt lang) const
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
return extractLanguageSpecificTitle(m_title,lang);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QCString LayoutDocEntryMemberDecl::subtitle(SrcLangExt lang) const
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
return extractLanguageSpecificTitle(m_subscript,lang);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//----------------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QCString LayoutDocEntryMemberDef::title(SrcLangExt lang) const
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
return extractLanguageSpecificTitle(m_title,lang);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|