author | mickeyl <mickeyl> | 2003-09-27 11:29:26 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-09-27 11:29:26 (UTC) |
commit | 651b6c612db4e809c506973996f2580c4158ac3a (patch) (side-by-side diff) | |
tree | 8c8edc86e4b206dd4542a6b556ad1a319d6698ab /inputmethods/dasher/QtDasherScreen.h | |
parent | d1a11b45e805fe7771ea05944757d767c3c4c8ea (diff) | |
download | opie-651b6c612db4e809c506973996f2580c4158ac3a.zip opie-651b6c612db4e809c506973996f2580c4158ac3a.tar.gz opie-651b6c612db4e809c506973996f2580c4158ac3a.tar.bz2 |
merge dasher which has been introduced in BRANCH first (wtf?) into HEAD
Diffstat (limited to 'inputmethods/dasher/QtDasherScreen.h') (more/less context) (ignore whitespace changes)
-rw-r--r-- | inputmethods/dasher/QtDasherScreen.h | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/inputmethods/dasher/QtDasherScreen.h b/inputmethods/dasher/QtDasherScreen.h new file mode 100644 index 0000000..f359113 --- a/dev/null +++ b/inputmethods/dasher/QtDasherScreen.h @@ -0,0 +1,117 @@ +// QtDasherScreen.h +// (c) 2003 Yann Dirson +// Derived from GtkDasherCanvas.h +// (c) 2002 Philip Cowans + +#ifndef QT_DASHER_SCREEN_H +#define QT_DASHER_SCREEN_H + +#include <string> +#include <sys/time.h> + +#include <qwidget.h> +#include <qpainter.h> +#include <qfont.h> +#include <qstring.h> +#include <qpixmap.h> +#include <qtimer.h> +#include <qcursor.h> + +#include "DasherScreen.h" +#include "DashEdit.h" +#include "DasherInterface.h" + +#include <iconv.h> + +using namespace Dasher; + +class QtDasherScreen : public QWidget, public Dasher::CDasherScreen + +{ + Q_OBJECT + public: + QtDasherScreen (int _width, int _height, + CDasherInterface *_interface, + QWidget * _parent=0, Dasher::CDashEditbox* edit=0); + QtDasherScreen::~QtDasherScreen(); + + void SetFont(std::string Name) + { fontname = Name; /* set_the_font(); */ } + + void SetFontSize(Dasher::Opts::FontSize fontsize) + { +#warning QtDasherScreen::SetFontSize() not implemented + } + Dasher::Opts::FontSize GetFontSize() + { +#warning QtDasherScreen::GetFontSize() not implemented + return (Dasher::Opts::Normal); + } + + void TextSize(symbol Character, int* Width, int* Height, int Size) const + { + // should probably use QPainter::boundingRect() + *Width = *Height = Fonts[Size].pixelSize(); + + } + void DrawText(symbol Character, int x1, int y1, int Size) const + { + // QFont font = QFont (fontname.c_str(), Size); + // font.setPixelSize(Size); + QPoint point = QPoint(x1, y1+Size/2); + + painter->setFont (Fonts[Size]); + painter->drawText (point, + QString(interface->GetDisplayText(Character).c_str())); + } + + void DrawRectangle(int x1, int y1, int x2, int y2, + int Color, Opts::ColorSchemes ColorScheme) const; + void Polyline(point* Points, int Number) const; + void DrawPolygon(point* Points, int Number, int Color, + Opts::ColorSchemes ColorScheme) const; + + std::vector<int> FontSizes; + std::vector<QFont> Fonts; + + void Blank() const { + painter->begin(pixmap); + painter->setPen (NoPen); + painter->fillRect(0, 0, m_iWidth, m_iHeight, + QColor(255,255,255)); + } + void Display() { + painter->end(); + repaint(); + } + + void paintEvent( QPaintEvent * ) + { + bitBlt(this, 0, 0, pixmap); + } + + void mousePressEvent (QMouseEvent *e); + void mouseReleaseEvent (QMouseEvent *e); + + protected: + QColor getColor(int Color, const Opts::ColorSchemes ColorScheme) const; + + long QtDasherScreen::get_time(); + + CDasherInterface* interface; + Dasher::CDashEditbox* edit; + + bool paused; + + QPainter* painter; + + QPixmap* pixmap; + + std::string fontname; + + protected slots: + void timer(); + +}; + +#endif |