1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
// 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"
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 = font.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 (font);
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;
QFont font;
int fontsize;
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
|