📄 dochandler.h
字号:
virtual IDocIterator *paramNames() const; virtual IDocPara *description() const { return m_description; } private: IBaseHandler *m_parent; QList<ParameterHandler> m_parameters; ParagraphHandler *m_description;};class ParameterItemIterator : public BaseIteratorVia<IDocIterator,IDoc,ParameterHandler,DocImpl>{ public: ParameterItemIterator(const ParameterItemHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,ParameterHandler,DocImpl>(handler.m_parameters) {}};//-----------------------------------------------------------------------------/* \brief Node representing a parameter section. * */class ParameterListHandler : public DocParameterListImpl, public BaseHandler<ParameterListHandler>{ friend class ParameterListIterator; public: ParameterListHandler(IBaseHandler *parent); virtual ~ParameterListHandler(); virtual void startParameterList(const QXmlAttributes& attrib); virtual void endParameterList(); virtual void startParameterItem(const QXmlAttributes& attrib); // IDocParameterList virtual Kind kind() const { return DocImpl::ParameterList; } virtual Types sectType() const { return m_type; } virtual IDocIterator *params() const; private: IBaseHandler *m_parent; QList<ParameterItemHandler> m_paramItems; Types m_type;};class ParameterListIterator : public BaseIteratorVia<IDocIterator,IDoc,ParameterItemHandler,DocImpl>{ public: ParameterListIterator(const ParameterListHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,ParameterItemHandler,DocImpl>(handler.m_paramItems) {}};//-----------------------------------------------------------------------------/* \brief Node representing a horizontal ruler * */class LineBreakHandler : public DocLineBreakImpl, public BaseHandler<LineBreakHandler>{ public: LineBreakHandler(IBaseHandler *parent); virtual ~LineBreakHandler(); void startLineBreak(const QXmlAttributes& attrib); void endLineBreak(); // IDocLineBreak virtual Kind kind() const { return DocImpl::LineBreak; } private: IBaseHandler *m_parent;};//-----------------------------------------------------------------------------/* \brief Node representing a link to section * */class LinkHandler : public DocLinkImpl, public BaseHandler<LinkHandler>{ public: LinkHandler(IBaseHandler *parent); virtual ~LinkHandler(); void startLink(const QXmlAttributes& attrib); void endLink(); // IDocLink virtual Kind kind() const { return DocImpl::Link; } virtual const IString *refId() const { return &m_ref; } virtual const IString *text() const { return &m_text; } private: IBaseHandler *m_parent; StringImpl m_ref; StringImpl m_text;};//-----------------------------------------------------------------------------/* \brief Node representing a link to an email address * */class EMailHandler : public DocEMailImpl, public BaseHandler<EMailHandler>{ public: EMailHandler(IBaseHandler *parent); virtual ~EMailHandler(); void startEMail(const QXmlAttributes& attrib); void endEMail(); // IDocEMail virtual Kind kind() const { return DocImpl::EMail; } virtual const IString *address() const { return &m_address; } private: IBaseHandler *m_parent; StringImpl m_address;};//-----------------------------------------------------------------------------/* \brief Node representing a link to an URL * */class ULinkHandler : public DocULinkImpl, public BaseHandler<ULinkHandler>{ public: ULinkHandler(IBaseHandler *parent); virtual ~ULinkHandler(); void startULink(const QXmlAttributes& attrib); void endULink(); // IDocULink virtual Kind kind() const { return DocImpl::ULink; } virtual const IString * url() const { return &m_url; } virtual const IString * text() const { return &m_text; } private: IBaseHandler *m_parent; StringImpl m_url; StringImpl m_text;};//-----------------------------------------------------------------------------/* \brief Node representing a horizontal ruler * */class HRulerHandler : public DocHRulerImpl, public BaseHandler<HRulerHandler>{ public: HRulerHandler(IBaseHandler *parent); virtual ~HRulerHandler(); void startHRuler(const QXmlAttributes& attrib); void endHRuler(); // IDocHRuler virtual Kind kind() const { return DocImpl::HRuler; } private: IBaseHandler *m_parent;};//-----------------------------------------------------------------------------/* \brief Node representing a reference to another item * */class RefHandler : public DocRefImpl, public BaseHandler<RefHandler>{ public: RefHandler(IBaseHandler *parent); virtual ~RefHandler(); void startRef(const QXmlAttributes& attrib); void endRef(); // IDocRef virtual Kind kind() const { return DocImpl::Ref; } virtual const IString *refId() const { return &m_refId; } virtual TargetKind targetKind() const { return m_targetKind; } virtual const IString *external() const { return &m_extId; } virtual const IString *text() const { return &m_linkText; } private: IBaseHandler *m_parent; StringImpl m_refId; StringImpl m_extId; StringImpl m_linkText; TargetKind m_targetKind;};//-----------------------------------------------------------------------------/* \brief Node representing the title of a section * */// children: text, ref// children handled by MarkupHandler: // bold, computeroutput, emphasis, center,// small, subscript, superscript. class TitleHandler : public DocTitleImpl, public BaseHandler<TitleHandler>{ friend class TitleIterator; public: TitleHandler(IBaseHandler *parent); virtual ~TitleHandler(); virtual void startTitle(const QXmlAttributes& attrib); virtual void endTitle(); virtual void startRef(const QXmlAttributes& attrib); void addTextNode(); // IDocTitle virtual Kind kind() const { return DocImpl::Title; } virtual IDocIterator *title() const; private: IBaseHandler *m_parent; QList<DocImpl> m_children; MarkupHandler *m_markupHandler;};class TitleIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>{ public: TitleIterator(const TitleHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}};//-----------------------------------------------------------------------------/* \brief Node representing a simple section with an unnumbered header. * */// children: title, paraclass SimpleSectHandler : public DocSimpleSectImpl, public BaseHandler<SimpleSectHandler>{ public: SimpleSectHandler(IBaseHandler *parent); virtual ~SimpleSectHandler(); virtual void startSimpleSect(const QXmlAttributes& attrib); virtual void endSimpleSect(); virtual void startTitle(const QXmlAttributes& attrib); virtual void startParagraph(const QXmlAttributes& attrib); // IDocSimpleSect virtual Kind kind() const { return DocImpl::SimpleSect; } virtual Types type() const { return m_type; } virtual const IString *typeString() const { return &m_typeString; } virtual IDocTitle *title() const { return m_title; } virtual IDocPara *description() const { return m_paragraph; } private: IBaseHandler *m_parent; ParagraphHandler *m_paragraph; Types m_type; StringImpl m_typeString; TitleHandler *m_title;};//-----------------------------------------------------------------------------/* \brief Node representing an named item of a VariableList. * */class VariableListEntryHandler : public DocVariableListEntryImpl, public BaseHandler<VariableListEntryHandler>{ public: virtual void startVarListEntry(const QXmlAttributes& attrib); virtual void endVarListEntry(); virtual void startListItem(const QXmlAttributes& attrib); virtual void endListItem(); virtual void startTerm(const QXmlAttributes& attrib); virtual void endTerm(); virtual void startParagraph(const QXmlAttributes& attrib); VariableListEntryHandler(IBaseHandler *parent); virtual ~VariableListEntryHandler(); // IDocVariableListEntry virtual Kind kind() const { return DocImpl::VariableListEntry; } virtual ILinkedTextIterator *term() const; virtual IDocPara *description() const { return m_description; } private: IBaseHandler* m_parent; QList<LinkedTextImpl> m_term; ParagraphHandler* m_description; LinkedTextHandler* m_linkedTextHandler;};//-----------------------------------------------------------------------------/*! \brief Node representing a list of named items. * */// children: varlistentry, listitemclass VariableListHandler : public DocVariableListImpl, public BaseHandler<VariableListHandler>{ friend class VariableListIterator; public: virtual void startVariableList(const QXmlAttributes& attrib); virtual void endVariableList(); virtual void startVarListEntry(const QXmlAttributes& attrib); virtual void startListItem(const QXmlAttributes& attrib); VariableListHandler(IBaseHandler *parent); virtual ~VariableListHandler(); // IDocVariableList virtual Kind kind() const { return DocImpl::VariableList; } virtual IDocIterator *entries() const; private: IBaseHandler *m_parent; QList<VariableListEntryHandler> m_entries; VariableListEntryHandler *m_curEntry;};class VariableListIterator : public BaseIteratorVia<IDocIterator,IDoc,VariableListEntryHandler,DocImpl>{ public: VariableListIterator(const VariableListHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,VariableListEntryHandler,DocImpl>(handler.m_entries) {}};//-----------------------------------------------------------------------------/*! \brief Node representing a highlighted text fragment. * */// children: refclass HighlightHandler : public DocHighlightImpl, public BaseHandler<HighlightHandler>{ friend class HighlightIterator; public: HighlightHandler(IBaseHandler *parent); virtual ~HighlightHandler(); void startHighlight(const QXmlAttributes& attrib); void endHighlight(); virtual void startRef(const QXmlAttributes&); virtual void startSpace(const QXmlAttributes&); // IDocHighlight virtual Kind kind() const { return DocImpl::Highlight; } virtual HighlightKind highlightKind() const { return m_hl; } virtual IDocIterator *codeElements() const; private: void addTextNode(); IBaseHandler *m_parent; HighlightKind m_hl; QString m_hlString; QList<DocImpl> m_children;};class HighlightIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>{ public: HighlightIterator(const HighlightHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}};//-----------------------------------------------------------------------------/*! \brief Node representing a line of code. * */// children: linenumber, highlight, anchor, refclass CodeLineHandler : public DocCodeLineImpl, public BaseHandler<CodeLineHandler>{ friend class CodeLineIterator; public: virtual void startCodeLine(const QXmlAttributes&); virtual void endCodeLine(); virtual void startLineNumber(const QXmlAttributes&); virtual void endLineNumber(); virtual void startHighlight(const QXmlAttributes&); virtual void startRef(const QXmlAttributes&); CodeLineHandler(IBaseHandler *parent); virtual ~CodeLineHandler(); // IDocCodeLine virtual Kind kind() const { return DocImpl::CodeLine; } virtual int lineNumber() const { return m_lineNumber; } virtual const IString *refId() const { return &m_refId; } virtual IDocIterator *codeElements() const; private: void addTextNode(); IBaseHandler *m_parent; int m_lineNumber; StringImpl m_refId; QList<DocImpl> m_children;};class CodeLineIterator : public BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>{ public: CodeLineIterator(const CodeLineHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,DocImpl,DocImpl>(handler.m_children) {}};//-----------------------------------------------------------------------------/*! \brief Node representing a program listing * */// children: codeline, linenumberclass ProgramListingHandler : public DocProgramListingImpl, public BaseHandler<ProgramListingHandler>{ friend class ProgramListingIterator; public: virtual void startProgramListing(const QXmlAttributes& attrib); virtual void endProgramListing(); virtual void startCodeLine(const QXmlAttributes&); virtual void startLineNumber(const QXmlAttributes&); ProgramListingHandler(IBaseHandler *parent); virtual ~ProgramListingHandler(); // IDocProgramListing virtual Kind kind() const { return DocImpl::ProgramListing; } virtual IDocIterator *codeLines() const; private: IBaseHandler *m_parent; QList<CodeLineHandler> m_children; bool m_hasLineNumber;};//-----------------------------------------------------------------------------class ProgramListingIterator : public BaseIteratorVia<IDocIterator,IDoc,CodeLineHandler,DocImpl>{ public: ProgramListingIterator(const ProgramListingHandler &handler) : BaseIteratorVia<IDocIterator,IDoc,CodeLineHandler,DocImpl>(handler.m_children) {}};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -