summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-reader/CExpander.cpp
authorpohly <pohly>2004-08-24 20:52:45 (UTC)
committer pohly <pohly>2004-08-24 20:52:45 (UTC)
commit73253e93327cf4ef0932de1b4afb56af22a0f37e (patch) (side-by-side diff)
tree1c9a7a6dd3341e036a894d348a3372525d29acec /noncore/apps/opie-reader/CExpander.cpp
parente90847c784c48bd21bf8768cb38edb853b832697 (diff)
downloadopie-73253e93327cf4ef0932de1b4afb56af22a0f37e.zip
opie-73253e93327cf4ef0932de1b4afb56af22a0f37e.tar.gz
opie-73253e93327cf4ef0932de1b4afb56af22a0f37e.tar.bz2
updated source to opie-reader 0.7g
Diffstat (limited to 'noncore/apps/opie-reader/CExpander.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/opie-reader/CExpander.cpp103
1 files changed, 103 insertions, 0 deletions
diff --git a/noncore/apps/opie-reader/CExpander.cpp b/noncore/apps/opie-reader/CExpander.cpp
new file mode 100644
index 0000000..e398d86
--- a/dev/null
+++ b/noncore/apps/opie-reader/CExpander.cpp
@@ -0,0 +1,103 @@
+#include "CExpander.h"
+
+size_t CExpander::getHome() { return m_homepos; }
+
+CExpander::CExpander() : m_homepos(0), fname(NULL), m_scrWidth(240), m_currentstart(1), m_currentend(0) {};
+
+CExpander::~CExpander() { if (fname != NULL) delete [] fname; };
+
+int CExpander::openfile(const char *src)
+{
+ bSuspended = false;
+ fname = strdup(src);
+ return OpenFile(src);
+}
+
+void CExpander::getch(tchar& ch, CStyle& sty, unsigned long& pos)
+{
+ pos = locate();
+ int ich = getch();
+ ch = (ich == EOF) ? UEOF : ich;
+ // sty.unset();
+}
+
+linkType CExpander::hyperlink(unsigned int n, unsigned int, QString& wrd, QString& nm)
+{
+ locate(n);
+ return eLink;
+}
+
+unsigned long CExpander::startSection()
+{
+ unsigned long current = locate();
+ if (m_currentstart > current || current > m_currentend)
+ {
+ start2endSection();
+ }
+ return m_currentstart;
+}
+
+unsigned long CExpander::endSection()
+{
+ unsigned long current = locate();
+ if (m_currentstart > current || current > m_currentend)
+ {
+ start2endSection();
+ }
+ return m_currentend;
+}
+
+void CExpander::start2endSection()
+{
+ m_currentstart = 0;
+ unsigned long file;
+ sizes(file, m_currentend);
+}
+
+#ifdef USEQPE
+void CExpander::suspend(FILE*& fin)
+{
+ bSuspended = true;
+ suspos = ftell(fin);
+ fclose(fin);
+ fin = NULL;
+ sustime = time(NULL);
+}
+
+void CExpander::unsuspend(FILE*& fin)
+{
+ if (bSuspended)
+ {
+ bSuspended = false;
+ int delay = time(NULL) - sustime;
+ if (delay < 10) sleep(10-delay);
+ fin = fopen(fname, "rb");
+ for (int i = 0; fin == NULL && i < 5; i++)
+ {
+ sleep(5);
+ fin = fopen(fname, "rb");
+ }
+ if (fin == NULL)
+ {
+ QMessageBox::warning(NULL, PROGNAME, "Couldn't reopen file");
+ exit(0);
+ }
+ suspos = fseek(fin, suspos, SEEK_SET);
+ }
+}
+#endif
+
+void CExpander::setSaveData(unsigned char*& data, unsigned short& len, unsigned char* src, unsigned short srclen)
+{
+ len = srclen;
+ data = new unsigned char[len];
+ memcpy(data, src, len);
+}
+
+void CExpander::putSaveData(unsigned char*& src, unsigned short& srclen)
+{
+ if (srclen != 0)
+ {
+ qDebug("Don't know what to do with non-zero save data");
+ }
+}