Diffstat (limited to 'noncore/apps/opie-reader/CFilter.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/opie-reader/CFilter.h | 93 |
1 files changed, 67 insertions, 26 deletions
diff --git a/noncore/apps/opie-reader/CFilter.h b/noncore/apps/opie-reader/CFilter.h index 2d0c30f..0a03b3e 100644 --- a/noncore/apps/opie-reader/CFilter.h +++ b/noncore/apps/opie-reader/CFilter.h @@ -4,16 +4,20 @@ #include "CExpander.h" #include "CEncoding.h" class CFilter : public CCharacterSource { friend class CFilterChain; protected: CCharacterSource* parent; + linkType hyperlink(unsigned int n, QString& w) + { + return parent->hyperlink(n,w); + } public: CFilter() : parent(NULL) {} void setparent(CCharacterSource* p) { parent = p; } virtual ~CFilter() {}; }; class CFilterChain { @@ -64,36 +68,36 @@ class CFilterChain encoder->setparent(expander); } }; class stripcr : public CFilter { public: stripcr() {} - virtual ~stripcr() {} - virtual void getch(tchar& ch, CStyle& sty) + ~stripcr() {} + void getch(tchar& ch, CStyle& sty) { do { parent->getch(ch, sty); } while (ch == 13); } }; class dehyphen : public CFilter { bool m_bCharWaiting; tchar m_nextChar; CStyle m_nextSty; public: dehyphen() : m_bCharWaiting(false) {} - virtual ~dehyphen() {} - virtual void getch(tchar& ch, CStyle& sty) + ~dehyphen() {} + void getch(tchar& ch, CStyle& sty) { if (m_bCharWaiting) { m_bCharWaiting = false; ch = m_nextChar; sty = m_nextSty; return; } @@ -114,27 +118,27 @@ class striphtml : public CFilter { CStyle currentstyle; unsigned short skip_ws(); unsigned short skip_ws_end(); unsigned short parse_m(); void mygetch(tchar& ch, CStyle& sty); public: striphtml() {} - virtual ~striphtml() {} - virtual void getch(tchar& ch, CStyle& sty); + ~striphtml() {} + void getch(tchar& ch, CStyle& sty); }; class unindent : public CFilter { tchar lc; public: unindent() : lc(0) {} - virtual ~unindent() {} - virtual void getch(tchar& ch, CStyle& sty) + ~unindent() {} + void getch(tchar& ch, CStyle& sty) { if (lc == 10) { do { parent->getch(ch, sty); } while (ch == ' '); @@ -145,18 +149,18 @@ class unindent : public CFilter } }; class repara : public CFilter { tchar tch; public: repara() : tch(0) {} - virtual ~repara() {} - virtual void getch(tchar& ch, CStyle& sty) + ~repara() {} + void getch(tchar& ch, CStyle& sty) { parent->getch(ch, sty); if (ch == 10) { if (tch == 10) { return; } @@ -174,18 +178,18 @@ class repara : public CFilter class indenter : public CFilter { int amnt; int indent; CStyle lsty; public: indenter(int _a=5) : amnt(_a), indent(0) {} - virtual ~indenter() {} - virtual void getch(tchar& ch, CStyle& sty) + ~indenter() {} + void getch(tchar& ch, CStyle& sty) { if (indent > 0) { indent--; ch = ' '; sty = lsty; return; } @@ -200,18 +204,18 @@ class indenter : public CFilter }; class dblspce : public CFilter { bool lastlf; CStyle lsty; public: dblspce() : lastlf(false) {} - virtual ~dblspce() {} - virtual void getch(tchar& ch, CStyle& sty) + ~dblspce() {} + void getch(tchar& ch, CStyle& sty) { if (lastlf) { lastlf = false; ch = 10; sty = lsty; return; } @@ -227,61 +231,98 @@ class dblspce : public CFilter class textfmt : public CFilter { CStyle currentstyle; tchar lastchar; bool uselast; void mygetch(tchar&, CStyle&); public: textfmt() : lastchar(0), uselast(false) {} - virtual ~textfmt() {} - virtual void getch(tchar& ch, CStyle& sty); + ~textfmt() {} + void getch(tchar& ch, CStyle& sty); }; class embolden : public CFilter { public: embolden() {} - virtual ~embolden() {} - virtual void getch(tchar& ch, CStyle& sty) + ~embolden() {} + void getch(tchar& ch, CStyle& sty) { parent->getch(ch, sty); sty.setBold(); } }; class remap : public CFilter { tchar q[3]; int offset; CStyle currentstyle; public: remap() : offset(0) { q[0] = 0; } - virtual ~remap() {} - virtual void getch(tchar& ch, CStyle& sty); + ~remap() {} + void getch(tchar& ch, CStyle& sty); }; class PeanutFormatter : public CFilter { CStyle currentstyle; public: - virtual ~PeanutFormatter() {} - virtual void getch(tchar& ch, CStyle& sty); + ~PeanutFormatter() {} + void getch(tchar& ch, CStyle& sty); }; class OnePara : public CFilter { tchar m_lastchar; public: OnePara() : m_lastchar(0) {} - virtual ~OnePara() {} - virtual void getch(tchar& ch, CStyle& sty); + ~OnePara() {} + void getch(tchar& ch, CStyle& sty); +}; + +class DePluck : public CFilter +{ + tchar* nextpart; + tchar m_buffer; + int m_buffed; + int m_current; + bool m_debuff; + CStyle m_laststyle; + public: + DePluck(tchar* t) : nextpart(t), m_buffer(0), m_buffed(0), m_current(0), m_debuff(false) {} + ~DePluck() {} + void getch(tchar& ch, CStyle& sty); }; #ifdef REPALM class repalm : public CFilter { public: - virtual ~repalm() {} - virtual void getch(tchar& ch, CStyle& sty); + ~repalm() {} + void getch(tchar& ch, CStyle& sty); }; #endif + +class FullJust : public CFilter +{ + public: + void getch(tchar& ch, CStyle& sty) + { + parent->getch(ch, sty); + if (sty.getJustify() == m_AlignLeft) sty.setFullJustify(); + } +}; +/* +class AddSpace : public CFilter +{ + unsigned char m_espc; + public: + AddSpace(unsigned char s) : m_espc(s) {} + void getch(tchar& ch, CStyle& sty) + { + parent->getch(ch, sty); + sty.setExtraSpace(m_espc); + } +}; +*/ #endif |