|
Packit |
1c1d7e |
/******************************************************************************
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* $Id$
|
|
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 |
*/
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#ifndef _DOCHANDLER_H
|
|
Packit |
1c1d7e |
#define _DOCHANDLER_H
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include <qstring.h>
|
|
Packit |
1c1d7e |
#include <qlist.h>
|
|
Packit |
1c1d7e |
#include <qxml.h>
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include <doxmlintf.h>
|
|
Packit |
1c1d7e |
#include "stringimpl.h"
|
|
Packit |
1c1d7e |
#include "basehandler.h"
|
|
Packit |
1c1d7e |
#include "baseiterator.h"
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class ParagraphHandler;
|
|
Packit |
1c1d7e |
class DocInternalHandler;
|
|
Packit |
1c1d7e |
class LinkedTextImpl;
|
|
Packit |
1c1d7e |
class LinkedTextHandler;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class DocImpl : public IDoc { public: virtual ~DocImpl() {} };
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#define DEFINE_CLS_IMPL(cls) \
|
|
Packit |
1c1d7e |
class cls##Impl : public I##cls, public DocImpl { public: virtual ~cls##Impl() {} }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocMarkup);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocPara);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocText);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocMarkupModifier);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocItemizedList);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocOrderedList);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocListItem);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocParameterList);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocParameterItem);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocParameter);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocTitle);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocSimpleSect);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocRef);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocVariableList);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocVariableListEntry);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocHRuler);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocLineBreak);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocULink);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocEMail);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocLink);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocProgramListing);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocCodeLine);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocHighlight);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocFormula);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocImage);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocDotFile);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocIndexEntry);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocTable);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocRow);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocEntry);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocSection);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocVerbatim);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocCopy);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocTocList);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocTocItem);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocAnchor);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocSymbol);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocInternal);
|
|
Packit |
1c1d7e |
DEFINE_CLS_IMPL(DocRoot);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a piece of text.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class TextNode : public DocTextImpl
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
TextNode(const QString &t,int markup,int level)
|
|
Packit |
1c1d7e |
: m_text(t), m_markup(markup), m_headingLevel(level) {}
|
|
Packit |
1c1d7e |
virtual ~TextNode() {}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocText
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Text; }
|
|
Packit |
1c1d7e |
virtual const IString *text() const { return &m_text; }
|
|
Packit |
1c1d7e |
virtual int markup() const { return m_markup; }
|
|
Packit |
1c1d7e |
virtual int headingLevel() const { return m_headingLevel; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
StringImpl m_text;
|
|
Packit |
1c1d7e |
int m_markup;
|
|
Packit |
1c1d7e |
int m_headingLevel;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a change in the markup style.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class MarkupModifierNode : public DocMarkupModifierImpl
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
MarkupModifierNode(int markup,bool enabled,int level=0)
|
|
Packit |
1c1d7e |
: m_markup(markup), m_enabled(enabled), m_headingLevel(level) {}
|
|
Packit |
1c1d7e |
virtual ~MarkupModifierNode() {}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocMarkupModifier
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::MarkupModifier; }
|
|
Packit |
1c1d7e |
virtual bool enabled() const { return m_enabled; }
|
|
Packit |
1c1d7e |
virtual int markup() const { return m_markup; }
|
|
Packit |
1c1d7e |
virtual int headingLevel() const { return m_headingLevel; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
int m_markup;
|
|
Packit |
1c1d7e |
bool m_enabled;
|
|
Packit |
1c1d7e |
int m_headingLevel;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Handles markup commands in the XML input.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class MarkupHandler : public BaseFallBackHandler<MarkupHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
MarkupHandler(QList<DocImpl> &children,QString &curString);
|
|
Packit |
1c1d7e |
virtual ~MarkupHandler();
|
|
Packit |
1c1d7e |
int markup() const { return m_curMarkup; }
|
|
Packit |
1c1d7e |
int headingLevel() const { return m_headingLevel; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
virtual void startBold(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endBold();
|
|
Packit |
1c1d7e |
virtual void startEmphasis(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endEmphasis();
|
|
Packit |
1c1d7e |
virtual void startComputerOutput(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endComputerOutput();
|
|
Packit |
1c1d7e |
virtual void startCenter(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endCenter();
|
|
Packit |
1c1d7e |
virtual void startSmallFont(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endSmallFont();
|
|
Packit |
1c1d7e |
virtual void startSubscript(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endSubscript();
|
|
Packit |
1c1d7e |
virtual void startSuperscript(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endSuperscript();
|
|
Packit |
1c1d7e |
virtual void startPreformatted(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endPreformatted();
|
|
Packit |
1c1d7e |
virtual void startHeading1(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endHeading1();
|
|
Packit |
1c1d7e |
virtual void startHeading2(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endHeading2();
|
|
Packit |
1c1d7e |
virtual void startHeading3(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endHeading3();
|
|
Packit |
1c1d7e |
virtual void startHeading4(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endHeading4();
|
|
Packit |
1c1d7e |
virtual void startHeading5(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endHeading5();
|
|
Packit |
1c1d7e |
virtual void startHeading6(const QXmlAttributes &attrib);
|
|
Packit |
1c1d7e |
virtual void endHeading6();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
void addTextNode();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
QList<DocImpl> &m_children;
|
|
Packit |
1c1d7e |
QString &m_curString;
|
|
Packit |
1c1d7e |
int m_curMarkup;
|
|
Packit |
1c1d7e |
int m_headingLevel;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a paragraph of text and commands.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: itemizedlist, orderedlist, parameterlist, simplesect, ref,
|
|
Packit |
1c1d7e |
// variablelist, hruler, linebreak, ulink, email, link
|
|
Packit |
1c1d7e |
// programlisting, formula, image, dotfile, indexentry,
|
|
Packit |
1c1d7e |
// table
|
|
Packit |
1c1d7e |
//
|
|
Packit |
1c1d7e |
// children handled by MarkupHandler:
|
|
Packit |
1c1d7e |
// bold, computeroutput, emphasis, center,
|
|
Packit |
1c1d7e |
// small, subscript, superscript.
|
|
Packit |
1c1d7e |
//
|
|
Packit |
1c1d7e |
class ParagraphHandler : public DocParaImpl,
|
|
Packit |
1c1d7e |
public BaseHandler<ParagraphHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class ParagraphIterator;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
virtual void startParagraph(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endParagraph();
|
|
Packit |
1c1d7e |
virtual void startItemizedList(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startOrderedList(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startParameterList(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startSimpleSect(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startRef(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startVariableList(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startHRuler(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startLineBreak(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startULink(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startEMail(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startLink(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startProgramListing(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startFormula(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startImage(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startDotFile(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startIndexEntry(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startTable(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startVerbatim(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startHtmlOnly(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startLatexOnly(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startUmlaut(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startAcute(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startGrave(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startCirc(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startTilde(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startSzlig(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startCedil(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startRing(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startNbsp(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startCopy(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startAnchor(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startCopyDoc(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startTocList(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
ParagraphHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~ParagraphHandler();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocPara
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Para; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *contents() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
void addTextNode();
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_children;
|
|
Packit |
1c1d7e |
MarkupHandler *m_markupHandler;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class ParagraphIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ParagraphIterator(const ParagraphHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a list item.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class ListItemHandler : public DocListItemImpl, public BaseHandler<ListItemHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class ListItemIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ListItemHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~ListItemHandler();
|
|
Packit |
1c1d7e |
virtual void startListItem(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endListItem();
|
|
Packit |
1c1d7e |
virtual void startParagraph(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocItem
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::ListItem; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *contents() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_children;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class ListItemIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ListItemIterator(const ListItemHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing list of items.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class OrderedListHandler : public DocOrderedListImpl, public BaseHandler<OrderedListHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class OrderedListIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
OrderedListHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~OrderedListHandler();
|
|
Packit |
1c1d7e |
virtual void startOrderedList(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endOrderedList();
|
|
Packit |
1c1d7e |
virtual void startOrderedListItem(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocOrderedList
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::OrderedList; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *elements() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_children;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class OrderedListIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
OrderedListIterator(const OrderedListHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing table of contents list.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class TocListHandler : public DocTocListImpl, public BaseHandler<TocListHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class TocListIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
TocListHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~TocListHandler();
|
|
Packit |
1c1d7e |
virtual void startTocList(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endTocList();
|
|
Packit |
1c1d7e |
virtual void startTocItem(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocTocList
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::TocList; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *elements() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_children;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class TocListIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
TocListIterator(const TocListHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a table of contents item.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class TocItemHandler : public DocTocItemImpl, public BaseHandler<TocItemHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class TocItemIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
TocItemHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~TocItemHandler();
|
|
Packit |
1c1d7e |
virtual void startTocItem(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endTocItem();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocItem
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::TocItem; }
|
|
Packit |
1c1d7e |
virtual const IString *id() const { return &m_id; }
|
|
Packit |
1c1d7e |
virtual const IString *title() const { return &m_title; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
StringImpl m_id;
|
|
Packit |
1c1d7e |
StringImpl m_title;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing list of items.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class ItemizedListHandler : public DocItemizedListImpl, public BaseHandler<ItemizedListHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class ItemizedListIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ItemizedListHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~ItemizedListHandler();
|
|
Packit |
1c1d7e |
virtual void startItemizedList(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endItemizedList();
|
|
Packit |
1c1d7e |
virtual void startItemizedListItem(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocItemizedList
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::ItemizedList; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *elements() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_children;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class ItemizedListIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ItemizedListIterator(const ItemizedListHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
/*! \brief Node representing a parameter.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class ParameterHandler : public DocParameterImpl,
|
|
Packit |
1c1d7e |
public BaseHandler<ParameterHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ParameterHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~ParameterHandler();
|
|
Packit |
1c1d7e |
virtual void startParameterName(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endParameterName();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocParameter
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Parameter; }
|
|
Packit |
1c1d7e |
virtual const IString *name() const { return &m_name; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
StringImpl m_name;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* \brief Node representing a list of param names with a single description.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class ParameterItemHandler : public DocParameterItemImpl,
|
|
Packit |
1c1d7e |
public BaseHandler<ParameterItemHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class ParameterItemIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ParameterItemHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~ParameterItemHandler();
|
|
Packit |
1c1d7e |
virtual void startParameterItem(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endParameterItem();
|
|
Packit |
1c1d7e |
virtual void startParameterName(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startParagraph(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocParameterItem
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::ParameterItem; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *paramNames() const;
|
|
Packit |
1c1d7e |
virtual IDocPara *description() const { return m_description; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<ParameterHandler> m_parameters;
|
|
Packit |
1c1d7e |
ParagraphHandler *m_description;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class ParameterItemIterator : public BaseIteratorVia<IDocIterator,IDoc,ParameterHandler,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ParameterItemIterator(const ParameterItemHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,ParameterHandler,DocImpl>(handler.m_parameters) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* \brief Node representing a parameter section.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class ParameterListHandler : public DocParameterListImpl,
|
|
Packit |
1c1d7e |
public BaseHandler<ParameterListHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class ParameterListIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ParameterListHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~ParameterListHandler();
|
|
Packit |
1c1d7e |
virtual void startParameterList(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endParameterList();
|
|
Packit |
1c1d7e |
virtual void startParameterItem(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocParameterList
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::ParameterList; }
|
|
Packit |
1c1d7e |
virtual Types sectType() const { return m_type; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *params() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<ParameterItemHandler> m_paramItems;
|
|
Packit |
1c1d7e |
Types m_type;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class ParameterListIterator : public BaseIteratorVia<IDocIterator,IDoc,ParameterItemHandler,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ParameterListIterator(const ParameterListHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,ParameterItemHandler,DocImpl>(handler.m_paramItems) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* \brief Node representing a horizontal ruler
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class LineBreakHandler : public DocLineBreakImpl, public BaseHandler<LineBreakHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
LineBreakHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~LineBreakHandler();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startLineBreak(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endLineBreak();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocLineBreak
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::LineBreak; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* \brief Node representing a link to section
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class LinkHandler : public DocLinkImpl, public BaseHandler<LinkHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
LinkHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~LinkHandler();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startLink(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endLink();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocLink
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Link; }
|
|
Packit |
1c1d7e |
virtual const IString *refId() const { return &m_ref; }
|
|
Packit |
1c1d7e |
virtual const IString *text() const { return &m_text; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
StringImpl m_ref;
|
|
Packit |
1c1d7e |
StringImpl m_text;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* \brief Node representing a link to an email address
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class EMailHandler : public DocEMailImpl, public BaseHandler<EMailHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
EMailHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~EMailHandler();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startEMail(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endEMail();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocEMail
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::EMail; }
|
|
Packit |
1c1d7e |
virtual const IString *address() const { return &m_address; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
StringImpl m_address;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* \brief Node representing a link to an URL
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class ULinkHandler : public DocULinkImpl, public BaseHandler<ULinkHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ULinkHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~ULinkHandler();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startULink(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endULink();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocULink
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::ULink; }
|
|
Packit |
1c1d7e |
virtual const IString * url() const { return &m_url; }
|
|
Packit |
1c1d7e |
virtual const IString * text() const { return &m_text; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
StringImpl m_url;
|
|
Packit |
1c1d7e |
StringImpl m_text;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* \brief Node representing a horizontal ruler
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class HRulerHandler : public DocHRulerImpl, public BaseHandler<HRulerHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
HRulerHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~HRulerHandler();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void startHRuler(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endHRuler();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocHRuler
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::HRuler; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* \brief Node representing a reference to another item
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class RefHandler : public DocRefImpl, public BaseHandler<RefHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
RefHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~RefHandler();
|
|
Packit |
1c1d7e |
void startRef(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endRef();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocRef
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Ref; }
|
|
Packit |
1c1d7e |
virtual const IString *refId() const { return &m_refId; }
|
|
Packit |
1c1d7e |
virtual TargetKind targetKind() const { return m_targetKind; }
|
|
Packit |
1c1d7e |
virtual const IString *external() const { return &m_extId; }
|
|
Packit |
1c1d7e |
virtual const IString *text() const { return &m_linkText; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
StringImpl m_refId;
|
|
Packit |
1c1d7e |
StringImpl m_extId;
|
|
Packit |
1c1d7e |
StringImpl m_linkText;
|
|
Packit |
1c1d7e |
TargetKind m_targetKind;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* \brief Node representing the title of a section
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: text, ref
|
|
Packit |
1c1d7e |
// children handled by MarkupHandler:
|
|
Packit |
1c1d7e |
// bold, computeroutput, emphasis, center,
|
|
Packit |
1c1d7e |
// small, subscript, superscript.
|
|
Packit |
1c1d7e |
class TitleHandler : public DocTitleImpl, public BaseHandler<TitleHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class TitleIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
TitleHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~TitleHandler();
|
|
Packit |
1c1d7e |
virtual void startTitle(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endTitle();
|
|
Packit |
1c1d7e |
virtual void startRef(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void addTextNode();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocTitle
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Title; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *title() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_children;
|
|
Packit |
1c1d7e |
MarkupHandler *m_markupHandler;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class TitleIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
TitleIterator(const TitleHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* \brief Node representing a simple section with an unnumbered header.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: title, para
|
|
Packit |
1c1d7e |
class SimpleSectHandler : public DocSimpleSectImpl,
|
|
Packit |
1c1d7e |
public BaseHandler<SimpleSectHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
SimpleSectHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~SimpleSectHandler();
|
|
Packit |
1c1d7e |
virtual void startSimpleSect(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endSimpleSect();
|
|
Packit |
1c1d7e |
virtual void startTitle(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startParagraph(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocSimpleSect
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::SimpleSect; }
|
|
Packit |
1c1d7e |
virtual Types type() const { return m_type; }
|
|
Packit |
1c1d7e |
virtual const IString *typeString() const { return &m_typeString; }
|
|
Packit |
1c1d7e |
virtual IDocTitle *title() const { return m_title; }
|
|
Packit |
1c1d7e |
virtual IDocPara *description() const { return m_paragraph; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
ParagraphHandler *m_paragraph;
|
|
Packit |
1c1d7e |
Types m_type;
|
|
Packit |
1c1d7e |
StringImpl m_typeString;
|
|
Packit |
1c1d7e |
TitleHandler *m_title;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* \brief Node representing an named item of a VariableList.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class VariableListEntryHandler : public DocVariableListEntryImpl,
|
|
Packit |
1c1d7e |
public BaseHandler<VariableListEntryHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
virtual void startVarListEntry(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endVarListEntry();
|
|
Packit |
1c1d7e |
virtual void startListItem(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endListItem();
|
|
Packit |
1c1d7e |
virtual void startTerm(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endTerm();
|
|
Packit |
1c1d7e |
virtual void startParagraph(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
VariableListEntryHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~VariableListEntryHandler();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocVariableListEntry
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::VariableListEntry; }
|
|
Packit |
1c1d7e |
virtual ILinkedTextIterator *term() const;
|
|
Packit |
1c1d7e |
virtual IDocPara *description() const { return m_description; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler* m_parent;
|
|
Packit |
1c1d7e |
QList<LinkedTextImpl> m_term;
|
|
Packit |
1c1d7e |
ParagraphHandler* m_description;
|
|
Packit |
1c1d7e |
LinkedTextHandler* m_linkedTextHandler;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a list of named items.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: varlistentry, listitem
|
|
Packit |
1c1d7e |
class VariableListHandler : public DocVariableListImpl,
|
|
Packit |
1c1d7e |
public BaseHandler<VariableListHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class VariableListIterator;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
virtual void startVariableList(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endVariableList();
|
|
Packit |
1c1d7e |
virtual void startVarListEntry(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startListItem(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
VariableListHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~VariableListHandler();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocVariableList
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::VariableList; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *entries() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<VariableListEntryHandler> m_entries;
|
|
Packit |
1c1d7e |
VariableListEntryHandler *m_curEntry;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class VariableListIterator : public BaseIteratorVia<IDocIterator,IDoc,VariableListEntryHandler,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
VariableListIterator(const VariableListHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,VariableListEntryHandler,DocImpl>(handler.m_entries) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a highlighted text fragment.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: ref
|
|
Packit |
1c1d7e |
class HighlightHandler : public DocHighlightImpl, public BaseHandler<HighlightHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class HighlightIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
HighlightHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~HighlightHandler();
|
|
Packit |
1c1d7e |
void startHighlight(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endHighlight();
|
|
Packit |
1c1d7e |
virtual void startRef(const QXmlAttributes&);
|
|
Packit |
1c1d7e |
virtual void startSpace(const QXmlAttributes&);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocHighlight
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Highlight; }
|
|
Packit |
1c1d7e |
virtual HighlightKind highlightKind() const { return m_hl; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *codeElements() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
void addTextNode();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
HighlightKind m_hl;
|
|
Packit |
1c1d7e |
QString m_hlString;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_children;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class HighlightIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
HighlightIterator(const HighlightHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a line of code.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: linenumber, highlight, anchor, ref
|
|
Packit |
1c1d7e |
class CodeLineHandler : public DocCodeLineImpl, public BaseHandler<CodeLineHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class CodeLineIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
virtual void startCodeLine(const QXmlAttributes&);
|
|
Packit |
1c1d7e |
virtual void endCodeLine();
|
|
Packit |
1c1d7e |
virtual void startLineNumber(const QXmlAttributes&);
|
|
Packit |
1c1d7e |
virtual void endLineNumber();
|
|
Packit |
1c1d7e |
virtual void startHighlight(const QXmlAttributes&);
|
|
Packit |
1c1d7e |
virtual void startRef(const QXmlAttributes&);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
CodeLineHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~CodeLineHandler();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocCodeLine
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::CodeLine; }
|
|
Packit |
1c1d7e |
virtual int lineNumber() const { return m_lineNumber; }
|
|
Packit |
1c1d7e |
virtual const IString *refId() const { return &m_refId; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *codeElements() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
void addTextNode();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
int m_lineNumber;
|
|
Packit |
1c1d7e |
StringImpl m_refId;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_children;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class CodeLineIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
CodeLineIterator(const CodeLineHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a program listing
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: codeline, linenumber
|
|
Packit |
1c1d7e |
class ProgramListingHandler : public DocProgramListingImpl, public BaseHandler<ProgramListingHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class ProgramListingIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
virtual void startProgramListing(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endProgramListing();
|
|
Packit |
1c1d7e |
virtual void startCodeLine(const QXmlAttributes&);
|
|
Packit |
1c1d7e |
virtual void startLineNumber(const QXmlAttributes&);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
ProgramListingHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~ProgramListingHandler();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocProgramListing
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::ProgramListing; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *codeLines() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<CodeLineHandler> m_children;
|
|
Packit |
1c1d7e |
bool m_hasLineNumber;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class ProgramListingIterator : public BaseIteratorVia<IDocIterator,IDoc,CodeLineHandler,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ProgramListingIterator(const ProgramListingHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,CodeLineHandler,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a formula.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: -
|
|
Packit |
1c1d7e |
class FormulaHandler : public DocFormulaImpl, public BaseHandler<FormulaHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
FormulaHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~FormulaHandler();
|
|
Packit |
1c1d7e |
void startFormula(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endFormula();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocFormula
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Formula; }
|
|
Packit |
1c1d7e |
virtual const IString *id() const { return &m_id; }
|
|
Packit |
1c1d7e |
virtual const IString *text() const { return &m_text; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
StringImpl m_id;
|
|
Packit |
1c1d7e |
StringImpl m_text;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing an image.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: -
|
|
Packit |
1c1d7e |
class ImageHandler : public DocImageImpl, public BaseHandler<ImageHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
ImageHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~ImageHandler();
|
|
Packit |
1c1d7e |
void startImage(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endImage();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocImage
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Image; }
|
|
Packit |
1c1d7e |
virtual const IString *name() const { return &m_name; }
|
|
Packit |
1c1d7e |
virtual const IString *caption() const { return &m_caption; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
StringImpl m_name;
|
|
Packit |
1c1d7e |
StringImpl m_caption;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
/*! \brief Node representing an anchor.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: -
|
|
Packit |
1c1d7e |
class AnchorHandler : public DocAnchorImpl, public BaseHandler<AnchorHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
AnchorHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~AnchorHandler();
|
|
Packit |
1c1d7e |
void startAnchor(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endAnchor();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocAnchor
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Anchor; }
|
|
Packit |
1c1d7e |
virtual const IString *id() const { return &m_id; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
StringImpl m_id;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a dot file.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: -
|
|
Packit |
1c1d7e |
class DotFileHandler : public DocDotFileImpl, public BaseHandler<DotFileHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DotFileHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~DotFileHandler();
|
|
Packit |
1c1d7e |
void startDotFile(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endDotFile();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocDotFile
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::DotFile; }
|
|
Packit |
1c1d7e |
virtual const IString *name() const { return &m_name; }
|
|
Packit |
1c1d7e |
virtual const IString *caption() const { return &m_caption; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
StringImpl m_name;
|
|
Packit |
1c1d7e |
StringImpl m_caption;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing an entry in the index.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: -
|
|
Packit |
1c1d7e |
class IndexEntryHandler : public DocIndexEntryImpl, public BaseHandler<IndexEntryHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
IndexEntryHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~IndexEntryHandler();
|
|
Packit |
1c1d7e |
void startIndexEntry(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endIndexEntry();
|
|
Packit |
1c1d7e |
void startPrimaryIE(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endPrimaryIE();
|
|
Packit |
1c1d7e |
void startSecondaryIE(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endSecondaryIE();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocIndexEntry
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::IndexEntry; }
|
|
Packit |
1c1d7e |
virtual const IString *primary() const { return &m_primary; }
|
|
Packit |
1c1d7e |
virtual const IString *secondary() const { return &m_secondary; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
StringImpl m_primary;
|
|
Packit |
1c1d7e |
StringImpl m_secondary;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing an entry in the table entry.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: para
|
|
Packit |
1c1d7e |
class EntryHandler : public DocEntryImpl, public BaseHandler<EntryHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class EntryIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
EntryHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~EntryHandler();
|
|
Packit |
1c1d7e |
void startEntry(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endEntry();
|
|
Packit |
1c1d7e |
void startParagraph(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocEntry
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Entry; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *contents() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_children;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class EntryIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
EntryIterator(const EntryHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing an entry in the table row.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: entry
|
|
Packit |
1c1d7e |
class RowHandler : public DocRowImpl, public BaseHandler<RowHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class RowIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
RowHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~RowHandler();
|
|
Packit |
1c1d7e |
void startRow(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endRow();
|
|
Packit |
1c1d7e |
void startEntry(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocRow
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Row; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *entries() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<EntryHandler> m_children;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class RowIterator : public BaseIteratorVia<IDocIterator,IDoc,EntryHandler,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
RowIterator(const RowHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,EntryHandler,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing an entry in the table.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: row, caption
|
|
Packit |
1c1d7e |
class TableHandler : public DocTableImpl, public BaseHandler<TableHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class TableIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
TableHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~TableHandler();
|
|
Packit |
1c1d7e |
void startTable(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endTable();
|
|
Packit |
1c1d7e |
void startRow(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void startCaption(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endCaption();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocTable
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Table; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *rows() const;
|
|
Packit |
1c1d7e |
virtual int numColumns() const { return m_numColumns; }
|
|
Packit |
1c1d7e |
virtual const IString *caption() const { return &m_caption; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<RowHandler> m_children;
|
|
Packit |
1c1d7e |
int m_numColumns;
|
|
Packit |
1c1d7e |
StringImpl m_caption;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class TableIterator : public BaseIteratorVia<IDocIterator,IDoc,RowHandler,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
TableIterator(const TableHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,RowHandler,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a copied piece of documentation.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class CopyHandler : public DocCopyImpl, public BaseHandler<CopyHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class CopyIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
CopyHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~CopyHandler();
|
|
Packit |
1c1d7e |
virtual void startCopy(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endCopy();
|
|
Packit |
1c1d7e |
virtual void startParagraph(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocCopy
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Copy; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *contents() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_children;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class CopyIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
CopyIterator(const CopyHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing an preformatted section
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class VerbatimHandler : public DocVerbatimImpl,
|
|
Packit |
1c1d7e |
public BaseHandler<VerbatimHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
VerbatimHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~VerbatimHandler();
|
|
Packit |
1c1d7e |
void startVerbatim(const QXmlAttributes& attrib,Types type);
|
|
Packit |
1c1d7e |
void endVerbatim();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocVerbatim
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Verbatim; }
|
|
Packit |
1c1d7e |
virtual const IString *text() const { return &m_text; }
|
|
Packit |
1c1d7e |
virtual Types type() const { return m_type; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
StringImpl m_text;
|
|
Packit |
1c1d7e |
Types m_type;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing an special symbol.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: -
|
|
Packit |
1c1d7e |
class SymbolHandler : public DocSymbolImpl, public BaseHandler<SymbolHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
SymbolHandler(IBaseHandler *parent,Types type);
|
|
Packit |
1c1d7e |
virtual ~SymbolHandler();
|
|
Packit |
1c1d7e |
void startSymbol(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
void endSymbol();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocSymbol
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Symbol; }
|
|
Packit |
1c1d7e |
virtual Types type() const { return m_type; }
|
|
Packit |
1c1d7e |
virtual const IString *typeString() const { return &m_typeString; }
|
|
Packit |
1c1d7e |
virtual char letter() const { return m_letter; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
char m_letter;
|
|
Packit |
1c1d7e |
Types m_type;
|
|
Packit |
1c1d7e |
StringImpl m_typeString;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a section.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: title, para, sect(n+1)
|
|
Packit |
1c1d7e |
class DocSectionHandler : public DocSectionImpl, public BaseHandler<DocSectionHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class DocSectionParaIterator;
|
|
Packit |
1c1d7e |
friend class DocSectionSubIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocSectionHandler(IBaseHandler *parent,int level);
|
|
Packit |
1c1d7e |
virtual ~DocSectionHandler();
|
|
Packit |
1c1d7e |
virtual void startDocSection(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endDocSection();
|
|
Packit |
1c1d7e |
virtual void startTitle(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startSubSection(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startParagraph(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startInternal(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocSection
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Section; }
|
|
Packit |
1c1d7e |
virtual const IString *id() const { return &m_id; }
|
|
Packit |
1c1d7e |
virtual int level() const { return m_level; }
|
|
Packit |
1c1d7e |
virtual IDocTitle *title() const { return m_title; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *paragraphs() const;
|
|
Packit |
1c1d7e |
virtual IDocIterator *subSections() const;
|
|
Packit |
1c1d7e |
virtual IDocInternal *internal() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_paragraphs;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_subsections;
|
|
Packit |
1c1d7e |
DocInternalHandler *m_internal;
|
|
Packit |
1c1d7e |
StringImpl m_id;
|
|
Packit |
1c1d7e |
int m_level;
|
|
Packit |
1c1d7e |
TitleHandler *m_title;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class DocSectionParaIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocSectionParaIterator(const DocSectionHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_paragraphs) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class DocSectionSubIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocSectionSubIterator(const DocSectionHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_subsections) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class DocInternalHandler : public DocInternalImpl, public BaseHandler<DocInternalHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
friend class DocInternalParaIterator;
|
|
Packit |
1c1d7e |
friend class DocInternalSubIterator;
|
|
Packit |
1c1d7e |
DocInternalHandler(IBaseHandler *parent,int level);
|
|
Packit |
1c1d7e |
virtual ~DocInternalHandler();
|
|
Packit |
1c1d7e |
virtual void startInternal(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endInternal();
|
|
Packit |
1c1d7e |
virtual void startSubSection(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startParagraph(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocInternal
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Internal; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *paragraphs() const;
|
|
Packit |
1c1d7e |
virtual IDocIterator *subSections() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_paragraphs;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_subsections;
|
|
Packit |
1c1d7e |
int m_level;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class DocInternalParaIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocInternalParaIterator(const DocInternalHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_paragraphs) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class DocInternalSubIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocInternalSubIterator(const DocInternalHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_subsections) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! \brief Node representing a documentation block.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
// children: para, title, sect1, internal
|
|
Packit |
1c1d7e |
class DocHandler : public DocRootImpl, public BaseHandler<DocHandler>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class DocIterator;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
virtual void startDoc(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void endDoc();
|
|
Packit |
1c1d7e |
virtual void startParagraph(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startSect1(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startTitle(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
virtual void startInternal(const QXmlAttributes& attrib);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
DocHandler(IBaseHandler *parent);
|
|
Packit |
1c1d7e |
virtual ~DocHandler();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
// IDocRoot
|
|
Packit |
1c1d7e |
virtual Kind kind() const { return DocImpl::Root; }
|
|
Packit |
1c1d7e |
virtual IDocIterator *contents() const;
|
|
Packit |
1c1d7e |
virtual IDocInternal *internal() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
IBaseHandler *m_parent;
|
|
Packit |
1c1d7e |
QList<DocImpl> m_children;
|
|
Packit |
1c1d7e |
DocInternalHandler *m_internal;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class DocIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocIterator(const DocHandler &handler) :
|
|
Packit |
1c1d7e |
BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
void dochandler_init();
|
|
Packit |
1c1d7e |
void dochandler_exit();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#endif
|