author | llornkcor <llornkcor> | 2002-09-14 02:19:09 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2002-09-14 02:19:09 (UTC) |
commit | 2d0c1ffcb39f9fac8193ed2e9e93794de0bd7975 (patch) (side-by-side diff) | |
tree | eeed16b5f80dd5883991a7a06133f5f7a6936256 /noncore/apps/opie-reader/QTReader.h | |
parent | 5a95ed6a000a56849b8f093deea500214856c626 (diff) | |
download | opie-2d0c1ffcb39f9fac8193ed2e9e93794de0bd7975.zip opie-2d0c1ffcb39f9fac8193ed2e9e93794de0bd7975.tar.gz opie-2d0c1ffcb39f9fac8193ed2e9e93794de0bd7975.tar.bz2 |
update by Tim
Diffstat (limited to 'noncore/apps/opie-reader/QTReader.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/opie-reader/QTReader.h | 99 |
1 files changed, 77 insertions, 22 deletions
diff --git a/noncore/apps/opie-reader/QTReader.h b/noncore/apps/opie-reader/QTReader.h index 2efb988..78230b4 100644 --- a/noncore/apps/opie-reader/QTReader.h +++ b/noncore/apps/opie-reader/QTReader.h @@ -3,10 +3,15 @@ #include <qwidget.h> -#include <qpainter.h> -#include <qclipboard.h> -#include "CBuffer.h" +//#include <qpainter.h> #include "my_list.h" #include "BuffDoc.h" -#include <qtimer.h> +#include "FontControl.h" + +//#include <qtimer.h> + +class CDrawBuffer; +//class CBuffer; +class QPainter; +class QTimer; class QTReader : public QWidget @@ -21,11 +26,12 @@ class QTReader : public QWidget void autoscroll(); QTimer* timer; - int m_scrolldy, m_encd; + int m_scrolldy1, m_scrolldy2, m_encd; void focusInEvent(QFocusEvent*); void focusOutEvent(QFocusEvent*); - void ChangeFont(int); - bool getline(CBuffer*); + bool ChangeFont(int); + bool getline(CDrawBuffer*); int m_charWidth; int m_charpc; + FontControl m_fontControl; public: QTReader( QWidget *parent=0, const char *name=0, WFlags f = 0); @@ -67,4 +73,35 @@ public: }; */ + void setpeanut(bool _b) + { + bpeanut = _b; + setfilter(getfilter()); + } + void setremap(bool _b) + { + bremap = _b; + setfilter(getfilter()); + } + void setmakebold(bool _b) + { + bmakebold = _b; + setfilter(getfilter()); + } + void setautofmt(bool _b) + { + bautofmt = _b; + if (bautofmt) + { + btextfmt = false; + bstriphtml = false;; + bpeanut = false; + } + setfilter(getfilter()); + } + void settextfmt(bool _b) + { + btextfmt = _b; + setfilter(getfilter()); + } void setstripcr(bool _b) { @@ -114,6 +151,6 @@ public: { m_bMonoSpaced = _b; - ChangeFont(fontsizes[m_textsize]); - locate(pagepos); + ChangeFont(m_fontControl.currentsize()); + locate(pagelocate()); } void setencoding(int _f) @@ -122,4 +159,5 @@ public: setfilter(getfilter()); } + MarkupType PreferredMarkup(); CEncoding* getencoding() { @@ -145,5 +183,9 @@ public: CFilterChain * filt = new CFilterChain(getencoding()); if (bstripcr) filt->addfilter(new stripcr); - if (bstriphtml) filt->addfilter(new striphtml); + + if (btextfmt || (bautofmt && (PreferredMarkup() == cTEXT))) filt->addfilter(new textfmt); + if (bpeanut || (bautofmt && (PreferredMarkup() == cPML))) filt->addfilter(new PeanutFormatter); + if (bstriphtml || (bautofmt && (PreferredMarkup() == cHTML))) filt->addfilter(new striphtml); + if (bdehyphen) filt->addfilter(new dehyphen); if (bunindent) filt->addfilter(new unindent); @@ -151,4 +193,6 @@ public: if (bindenter) filt->addfilter(new indenter(bindenter)); if (bdblspce) filt->addfilter(new dblspce); + if (bremap) filt->addfilter(new remap); + if (bmakebold) filt->addfilter(new embolden); return filt; } @@ -163,11 +207,17 @@ private slots: void drawFonts(QPainter*); private: + void setTwoTouch(bool _b); void init(); + void mousePressEvent( QMouseEvent* ); void mouseReleaseEvent( QMouseEvent* ); // void mouseDoubleClickEvent( QMouseEvent* ); QString m_string, m_fontname; - void setfont(QPainter*); + void setfont(); //myoutput stuff private: + bool mouseUpOn; + bool getcurrentpos(int x, int y, size_t& start, size_t& offset, size_t& tgt); + bool m_twotouch, m_touchone; + size_t m_startpos, m_startoffset; void dopageup(); void lineDown(); @@ -176,11 +226,10 @@ private slots: long real_delay(); int m_textsize; - int m_lastwidth; - CBuffer** textarray; - size_t* locnarray; + int m_lastwidth, m_lastheight; + CBufferFace<CDrawBuffer*> textarray; + CBufferFace<size_t> locnarray; unsigned int numlines; - bool bstripcr, bstriphtml, bdehyphen, bunindent, brepara, bdblspce, btight, m_bBold; + bool bstripcr, btextfmt, bstriphtml, bdehyphen, bunindent, brepara, bdblspce, btight, bmakebold, bremap, bpeanut, bautofmt; bool m_bpagemode, m_bMonoSpaced; - QString m_targetapp, m_targetmsg; unsigned char bindenter; QString m_lastfile; @@ -195,22 +244,28 @@ private slots: void jumpto(unsigned long n) { buffdoc.locate(n); } unsigned long locate() { return buffdoc.locate(); } - unsigned long pagelocate() { return pagepos; } - unsigned long pagepos, mylastpos; - void setfilter(CFilterChain *f) { buffdoc.setfilter(f); locate(pagepos); } + unsigned long explocate() { return buffdoc.explocate(); } + unsigned long pagelocate() { return locnarray[0]; } + unsigned long mylastpos; + void setfilter(CFilterChain *f) { buffdoc.setfilter(f); locate(pagelocate()); } void restore() { jumpto(mylastpos); } void goUp(); - void refresh() { locate(pagepos); } + void refresh() { locate(pagelocate()); } void goDown(); // bool bold; int textsize() { return m_textsize; } void textsize(int ts) { m_textsize = ts; } - bool fillbuffer(); + bool fillbuffer(int ru = 0, int ht = 0); unsigned int screenlines(); void sizes(unsigned long& fs, unsigned long& ts) { buffdoc.sizes(fs,ts); } static const char *fonts[]; - unsigned int *fontsizes; +// unsigned int *fontsizes; int m_ascent, m_descent, m_linespacing; QFontMetrics* m_fm; QString firstword(); + + signals: + void OnRedraw(); + void OnWordSelected(const QString&, size_t, const QString&); + void OnActionPressed(); }; |