Diffstat (limited to 'noncore/apps/opie-reader/CExpander.h') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/apps/opie-reader/CExpander.h | 61 |
1 files changed, 44 insertions, 17 deletions
diff --git a/noncore/apps/opie-reader/CExpander.h b/noncore/apps/opie-reader/CExpander.h index c281398..7b21d3e 100644 --- a/noncore/apps/opie-reader/CExpander.h +++ b/noncore/apps/opie-reader/CExpander.h @@ -2,14 +2,18 @@ #define __CExpander_h +#ifndef _WINDOWS #include <unistd.h> +#endif #include <stdio.h> #include <time.h> #include <qmessagebox.h> +#include "useqpe.h" #include "config.h" #include "StyleConsts.h" #include "Markups.h" -#include "name.h" +#include "names.h" +#include "linktype.h" -class QPixmap; +class QImage; class Bkmk; @@ -21,4 +25,5 @@ class CCharacterSource public: virtual void getch(tchar&, CStyle&) = 0; + virtual linkType hyperlink(unsigned int n, QString&) = 0; }; @@ -32,9 +37,13 @@ class CExpander size_t suspos; time_t sustime; + int m_scrWidth; + unsigned long m_currentstart, m_currentend; public: +#ifdef USEQPE virtual void suspend() = 0; virtual void unsuspend() = 0; +#endif size_t getHome() { return m_homepos; } - CExpander() : m_homepos(0), fname(NULL) {}; + CExpander() : m_homepos(0), fname(NULL), m_scrWidth(240), m_currentstart(1), m_currentend(0) {}; virtual ~CExpander() { if (fname != NULL) delete [] fname; }; int openfile(const char *src) @@ -50,33 +59,49 @@ class CExpander virtual void sizes(unsigned long& file, unsigned long& text) = 0; virtual CList<Bkmk>* getbkmklist() { return NULL; } - virtual void getch(int& ch, CStyle& sty) + virtual void getch(tchar& ch, CStyle& sty) { - ch = getch(); + int ich = getch(); + ch = (ich == EOF) ? UEOF : ich; sty.unset(); } virtual int getch() = 0; - virtual bool hyperlink(unsigned int n) + virtual linkType hyperlink(unsigned int n, QString& wrd) { locate(n); - return true; + return eLink; } virtual MarkupType PreferredMarkup() = 0; virtual void saveposn(size_t posn) {} - virtual bool forward(size_t& loc) {} - virtual bool back(size_t& loc) {} + virtual void writeposn(size_t posn) {} + virtual bool forward(size_t& loc) { return false; } + virtual bool back(size_t& loc) { return false; } virtual bool hasnavigation() { return false; } - virtual unsigned long startSection() + unsigned long startSection() + { + unsigned long current = locate(); + if (m_currentstart > current || current > m_currentend) + { + start2endSection(); + } + return m_currentstart; + } + unsigned long endSection() + { + unsigned long current = locate(); + if (m_currentstart > current || current > m_currentend) { - return 0; + start2endSection(); + } + return m_currentend; } - virtual unsigned long endSection() + virtual void start2endSection() { - unsigned long file, text; - sizes(file, text); - return text; + m_currentstart = 0; + unsigned long file; + sizes(file, m_currentend); } - virtual QPixmap* getPicture(unsigned long tgt) { return NULL; } + virtual QImage* getPicture(unsigned long tgt) { return NULL; } void setContinuous(bool _b) { m_continuous = _b; } - +#ifdef USEQPE virtual void suspend(FILE*& fin) { @@ -108,4 +133,5 @@ class CExpander } } +#endif virtual void setSaveData(unsigned char*& data, unsigned short& len, unsigned char* src, unsigned short srclen) { @@ -121,4 +147,5 @@ class CExpander } } + void setwidth(int w) { m_scrWidth = w; } }; #endif |