📄 dochandler.h
字号:
//-----------------------------------------------------------------------------/*! \brief Node representing a formula. * */// children: -class FormulaHandler : public DocFormulaImpl, public BaseHandler<FormulaHandler>{ public: FormulaHandler(IBaseHandler *parent); virtual ~FormulaHandler(); void startFormula(const QXmlAttributes& attrib); void endFormula(); // IDocFormula virtual Kind kind() const { return DocImpl::Formula; } virtual const IString *id() const { return &m_id; } virtual const IString *text() const { return &m_text; } private: IBaseHandler *m_parent; StringImpl m_id; StringImpl m_text;};//-----------------------------------------------------------------------------/*! \brief Node representing an image. * */// children: -class ImageHandler : public DocImageImpl, public BaseHandler<ImageHandler>{ public: ImageHandler(IBaseHandler *parent); virtual ~ImageHandler(); void startImage(const QXmlAttributes& attrib); void endImage(); // IDocImage virtual Kind kind() const { return DocImpl::Image; } virtual const IString *name() const { return &m_name; } virtual const IString *caption() const { return &m_caption; } private: IBaseHandler *m_parent; StringImpl m_name; StringImpl m_caption;};//-----------------------------------------------------------------------------/*! \brief Node representing an anchor. * */// children: -class AnchorHandler : public DocAnchorImpl, public BaseHandler<AnchorHandler>{ public: AnchorHandler(IBaseHandler *parent); virtual ~AnchorHandler(); void startAnchor(const QXmlAttributes& attrib); void endAnchor(); // IDocAnchor virtual Kind kind() const { return DocImpl::Anchor; } virtual const IString *id() const { return &m_id; } private: IBaseHandler *m_parent; StringImpl m_id;};//-----------------------------------------------------------------------------/*! \brief Node representing a dot file. * */// children: -class DotFileHandler : public DocDotFileImpl, public BaseHandler<DotFileHandler>{ public: DotFileHandler(IBaseHandler *parent); virtual ~DotFileHandler(); void startDotFile(const QXmlAttributes& attrib); void endDotFile(); // IDocDotFile virtual Kind kind() const { return DocImpl::DotFile; } virtual const IString *name() const { return &m_name; } virtual const IString *caption() const { return &m_caption; } private: IBaseHandler *m_parent; StringImpl m_name; StringImpl m_caption;};//-----------------------------------------------------------------------------/*! \brief Node representing an entry in the index. * */// children: -class IndexEntryHandler : public DocIndexEntryImpl, public BaseHandler<IndexEntryHandler>{ public: IndexEntryHandler(IBaseHandler *parent); virtual ~IndexEntryHandler(); void startIndexEntry(const QXmlAttributes& attrib); void endIndexEntry(); void startPrimaryIE(const QXmlAttributes& attrib); void endPrimaryIE(); void startSecondaryIE(const QXmlAttributes& attrib); void endSecondaryIE(); // IDocIndexEntry virtual Kind kind() const { return DocImpl::IndexEntry; } virtual const IString *primary() const { return &m_primary; } virtual const IString *secondary() const { return &m_secondary; } private: IBaseHandler *m_parent; StringImpl m_primary; StringImpl m_secondary;};//-----------------------------------------------------------------------------/*! \brief Node representing an entry in the table entry. * */// children: paraclass EntryHandler : public DocEntryImpl, public BaseHandler<EntryHandler>{ friend class EntryIterator; public: EntryHandler(IBaseHandler *parent); virtual ~EntryHandler(); void startEntry(const QXmlAttributes& attrib); void endEntry(); void startParagraph(const QXmlAttributes& attrib); // IDocEntry virtual Kind kind() const { return DocImpl::Entry; } virtual IDocIterator *contents() const; private: IBaseHandler *m_parent; QList<DocImpl> m_children;};class EntryIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>{ public: EntryIterator(const EntryHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}};//-----------------------------------------------------------------------------/*! \brief Node representing an entry in the table row. * */// children: entryclass RowHandler : public DocRowImpl, public BaseHandler<RowHandler>{ friend class RowIterator; public: RowHandler(IBaseHandler *parent); virtual ~RowHandler(); void startRow(const QXmlAttributes& attrib); void endRow(); void startEntry(const QXmlAttributes& attrib); // IDocRow virtual Kind kind() const { return DocImpl::Row; } virtual IDocIterator *entries() const; private: IBaseHandler *m_parent; QList<EntryHandler> m_children;};class RowIterator : public BaseIteratorVia<IDocIterator,IDoc,EntryHandler,DocImpl>{ public: RowIterator(const RowHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,EntryHandler,DocImpl>(handler.m_children) {}};//-----------------------------------------------------------------------------/*! \brief Node representing an entry in the table. * */// children: row, captionclass TableHandler : public DocTableImpl, public BaseHandler<TableHandler>{ friend class TableIterator; public: TableHandler(IBaseHandler *parent); virtual ~TableHandler(); void startTable(const QXmlAttributes& attrib); void endTable(); void startRow(const QXmlAttributes& attrib); void startCaption(const QXmlAttributes& attrib); void endCaption(); // IDocTable virtual Kind kind() const { return DocImpl::Table; } virtual IDocIterator *rows() const; virtual int numColumns() const { return m_numColumns; } virtual const IString *caption() const { return &m_caption; } private: IBaseHandler *m_parent; QList<RowHandler> m_children; int m_numColumns; StringImpl m_caption;};class TableIterator : public BaseIteratorVia<IDocIterator,IDoc,RowHandler,DocImpl>{ public: TableIterator(const TableHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,RowHandler,DocImpl>(handler.m_children) {}};//-----------------------------------------------------------------------------/*! \brief Node representing a copied piece of documentation. * */class CopyHandler : public DocCopyImpl, public BaseHandler<CopyHandler>{ friend class CopyIterator; public: CopyHandler(IBaseHandler *parent); virtual ~CopyHandler(); virtual void startCopy(const QXmlAttributes& attrib); virtual void endCopy(); virtual void startParagraph(const QXmlAttributes& attrib); // IDocCopy virtual Kind kind() const { return DocImpl::Copy; } virtual IDocIterator *contents() const; private: IBaseHandler *m_parent; QList<DocImpl> m_children;};class CopyIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>{ public: CopyIterator(const CopyHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}};//-----------------------------------------------------------------------------/*! \brief Node representing an preformatted section */class VerbatimHandler : public DocVerbatimImpl, public BaseHandler<VerbatimHandler>{ public: VerbatimHandler(IBaseHandler *parent); virtual ~VerbatimHandler(); void startVerbatim(const QXmlAttributes& attrib,Types type); void endVerbatim(); // IDocVerbatim virtual Kind kind() const { return DocImpl::Verbatim; } virtual const IString *text() const { return &m_text; } virtual Types type() const { return m_type; } private: IBaseHandler *m_parent; StringImpl m_text; Types m_type;};//-----------------------------------------------------------------------------/*! \brief Node representing an special symbol. * */// children: -class SymbolHandler : public DocSymbolImpl, public BaseHandler<SymbolHandler>{ public: SymbolHandler(IBaseHandler *parent,Types type); virtual ~SymbolHandler(); void startSymbol(const QXmlAttributes& attrib); void endSymbol(); // IDocSymbol virtual Kind kind() const { return DocImpl::Symbol; } virtual Types type() const { return m_type; } virtual const IString *typeString() const { return &m_typeString; } virtual char letter() const { return m_letter; } private: IBaseHandler *m_parent; char m_letter; Types m_type; StringImpl m_typeString;};//-----------------------------------------------------------------------------/*! \brief Node representing a section. * */// children: title, para, sect(n+1)class DocSectionHandler : public DocSectionImpl, public BaseHandler<DocSectionHandler>{ friend class DocSectionParaIterator; friend class DocSectionSubIterator; public: DocSectionHandler(IBaseHandler *parent,int level); virtual ~DocSectionHandler(); virtual void startDocSection(const QXmlAttributes& attrib); virtual void endDocSection(); virtual void startTitle(const QXmlAttributes& attrib); virtual void startSubSection(const QXmlAttributes& attrib); virtual void startParagraph(const QXmlAttributes& attrib); virtual void startInternal(const QXmlAttributes& attrib); // IDocSection virtual Kind kind() const { return DocImpl::Section; } virtual const IString *id() const { return &m_id; } virtual int level() const { return m_level; } virtual IDocTitle *title() const { return m_title; } virtual IDocIterator *paragraphs() const; virtual IDocIterator *subSections() const; virtual IDocInternal *internal() const; private: IBaseHandler *m_parent; QList<DocImpl> m_paragraphs; QList<DocImpl> m_subsections; DocInternalHandler *m_internal; StringImpl m_id; int m_level; TitleHandler *m_title;};class DocSectionParaIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>{ public: DocSectionParaIterator(const DocSectionHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_paragraphs) {}};class DocSectionSubIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>{ public: DocSectionSubIterator(const DocSectionHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_subsections) {}};//-----------------------------------------------------------------------------class DocInternalHandler : public DocInternalImpl, public BaseHandler<DocInternalHandler>{ public: friend class DocInternalParaIterator; friend class DocInternalSubIterator; DocInternalHandler(IBaseHandler *parent,int level); virtual ~DocInternalHandler(); virtual void startInternal(const QXmlAttributes& attrib); virtual void endInternal(); virtual void startSubSection(const QXmlAttributes& attrib); virtual void startParagraph(const QXmlAttributes& attrib); // IDocInternal virtual Kind kind() const { return DocImpl::Internal; } virtual IDocIterator *paragraphs() const; virtual IDocIterator *subSections() const; private: IBaseHandler *m_parent; QList<DocImpl> m_paragraphs; QList<DocImpl> m_subsections; int m_level;};class DocInternalParaIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>{ public: DocInternalParaIterator(const DocInternalHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_paragraphs) {}};class DocInternalSubIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>{ public: DocInternalSubIterator(const DocInternalHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_subsections) {}};//-----------------------------------------------------------------------------/*! \brief Node representing a documentation block. * */// children: para, title, sect1, sect2, sect3class DocHandler : public DocRootImpl, public BaseHandler<DocHandler>{ friend class DocIterator; public: virtual void startDoc(const QXmlAttributes& attrib); virtual void endDoc(); virtual void startParagraph(const QXmlAttributes& attrib); virtual void startSect1(const QXmlAttributes& attrib); virtual void startTitle(const QXmlAttributes& attrib); DocHandler(IBaseHandler *parent); virtual ~DocHandler(); // IDocRoot virtual Kind kind() const { return DocImpl::Root; } virtual IDocIterator *contents() const; private: IBaseHandler *m_parent; QList<DocImpl> m_children;};class DocIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>{ public: DocIterator(const DocHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}};//-----------------------------------------------------------------------------void dochandler_init();void dochandler_exit();#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -