Diffstat (limited to 'noncore/apps/opie-console/emulation_handler.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/opie-console/emulation_handler.cpp | 89 |
1 files changed, 84 insertions, 5 deletions
diff --git a/noncore/apps/opie-console/emulation_handler.cpp b/noncore/apps/opie-console/emulation_handler.cpp index 9e7f56c..48218e6 100644 --- a/noncore/apps/opie-console/emulation_handler.cpp +++ b/noncore/apps/opie-console/emulation_handler.cpp | |||
@@ -1,17 +1,18 @@ | |||
1 | #include <qwidget.h> | 1 | #include <qwidget.h> |
2 | 2 | ||
3 | #include "TEWidget.h" | 3 | #include "TEWidget.h" |
4 | #include "TEmuVt102.h" | 4 | #include "TEmuVt102.h" |
5 | 5 | ||
6 | #include "profile.h" | ||
6 | #include "emulation_handler.h" | 7 | #include "emulation_handler.h" |
7 | 8 | ||
8 | 9 | ||
9 | EmulationHandler::EmulationHandler( const Profile& prof, QWidget* parent,const char* name ) | 10 | EmulationHandler::EmulationHandler( const Profile& prof, QWidget* parent,const char* name ) |
10 | : QObject(0, name ) | 11 | : QObject(0, name ) |
11 | { | 12 | { |
12 | m_teWid = new TEWidget( parent, "TerminalMain"); | 13 | m_teWid = new TEWidget( parent, "TerminalMain"); |
13 | m_teWid->setMinimumSize(150, 70 ); | 14 | m_teWid->setMinimumSize(150, 70 ); |
14 | parent->resize( m_teWid->calcSize(80, 24 ) ); | 15 | parent->resize( m_teWid->calcSize(80, 24 ) ); |
15 | m_teEmu = new TEmuVt102(m_teWid ); | 16 | m_teEmu = new TEmuVt102(m_teWid ); |
16 | 17 | ||
17 | connect(m_teEmu,SIGNAL(ImageSizeChanged(int, int) ), | 18 | connect(m_teEmu,SIGNAL(ImageSizeChanged(int, int) ), |
@@ -20,33 +21,111 @@ EmulationHandler::EmulationHandler( const Profile& prof, QWidget* parent,const c | |||
20 | this, SLOT(recvEmulation(const char*, int) ) ); | 21 | this, SLOT(recvEmulation(const char*, int) ) ); |
21 | m_teEmu->setConnect( true ); | 22 | m_teEmu->setConnect( true ); |
22 | m_teEmu->setHistory( TRUE ); | 23 | m_teEmu->setHistory( TRUE ); |
23 | load( prof ); | 24 | load( prof ); |
24 | 25 | ||
25 | 26 | ||
26 | 27 | ||
27 | } | 28 | } |
28 | EmulationHandler::~EmulationHandler() { | 29 | EmulationHandler::~EmulationHandler() { |
29 | delete m_teEmu; | 30 | delete m_teEmu; |
30 | delete m_teWid; | 31 | delete m_teWid; |
31 | } | 32 | } |
32 | void EmulationHandler::load( const Profile& ) { | 33 | void EmulationHandler::load( const Profile& prof) { |
33 | QFont font = QFont("Fixed", 12, QFont::Normal ); | 34 | m_teWid->setVTFont( font( prof.readNumEntry("Font") ) ); |
34 | font.setFixedPitch(TRUE); | 35 | int num = prof.readNumEntry("Color"); |
35 | m_teWid->setVTFont( font ); | 36 | setColor( foreColor(num), backColor(num) ); |
36 | m_teWid->setBackgroundColor(Qt::gray ); | 37 | m_teWid->setBackgroundColor(backColor(num) ); |
37 | } | 38 | } |
38 | void EmulationHandler::recv( const QByteArray& ar) { | 39 | void EmulationHandler::recv( const QByteArray& ar) { |
39 | qWarning("received in EmulationHandler!"); | 40 | qWarning("received in EmulationHandler!"); |
40 | m_teEmu->onRcvBlock(ar.data(), ar.count() ); | 41 | m_teEmu->onRcvBlock(ar.data(), ar.count() ); |
41 | } | 42 | } |
42 | void EmulationHandler::recvEmulation(const char* src, int len ) { | 43 | void EmulationHandler::recvEmulation(const char* src, int len ) { |
43 | qWarning("received from te "); | 44 | qWarning("received from te "); |
44 | QByteArray ar(len); | 45 | QByteArray ar(len); |
45 | 46 | ||
46 | memcpy(ar.data(), src, sizeof(char) * len ); | 47 | memcpy(ar.data(), src, sizeof(char) * len ); |
47 | 48 | ||
48 | emit send(ar); | 49 | emit send(ar); |
49 | } | 50 | } |
50 | QWidget* EmulationHandler::widget() { | 51 | QWidget* EmulationHandler::widget() { |
51 | return m_teWid; | 52 | return m_teWid; |
52 | } | 53 | } |
54 | /* | ||
55 | * allocate a new table of colors | ||
56 | */ | ||
57 | void EmulationHandler::setColor( const QColor& fore, const QColor& back ) { | ||
58 | ColorEntry table[TABLE_COLORS]; | ||
59 | const ColorEntry *defaultCt = m_teWid->getdefaultColorTable(); | ||
60 | |||
61 | for (int i = 0; i < TABLE_COLORS; i++ ) { | ||
62 | if ( i == 0 || i == 10 ) { | ||
63 | table[i].color = fore; | ||
64 | }else if ( i == 1 || i == 11 ) { | ||
65 | table[i].color = back; | ||
66 | table[i].transparent = 0; | ||
67 | }else { | ||
68 | table[i].color = defaultCt[i].color; | ||
69 | } | ||
70 | } | ||
71 | // m_teWid->setColorTable(table ); | ||
72 | m_teWid->update(); | ||
73 | } | ||
74 | QFont EmulationHandler::font( int id ) { | ||
75 | QString name; | ||
76 | int size = 0; | ||
77 | switch(id ) { | ||
78 | default: // fall through | ||
79 | case 0: | ||
80 | name = QString::fromLatin1("Micro"); | ||
81 | size = 4; | ||
82 | break; | ||
83 | case 1: | ||
84 | name = QString::fromLatin1("Fixed"); | ||
85 | size = 7; | ||
86 | break; | ||
87 | case 2: | ||
88 | name = QString::fromLatin1("Fixed"); | ||
89 | size = 12; | ||
90 | break; | ||
91 | } | ||
92 | QFont font(name, size, QFont::Normal ); | ||
93 | font.setFixedPitch(TRUE ); | ||
94 | return font; | ||
95 | } | ||
96 | QColor EmulationHandler::foreColor(int col) { | ||
97 | QColor co; | ||
98 | /* we need to switch it */ | ||
99 | switch( col ) { | ||
100 | default: | ||
101 | case Profile::White: | ||
102 | qWarning("Foreground black"); | ||
103 | /* color is black */ | ||
104 | co = Qt::black; | ||
105 | break; | ||
106 | case Profile::Black: | ||
107 | qWarning("Foreground white"); | ||
108 | co = Qt::white; | ||
109 | break; | ||
110 | } | ||
111 | |||
112 | return co; | ||
113 | } | ||
114 | QColor EmulationHandler::backColor(int col ) { | ||
115 | QColor co; | ||
116 | /* we need to switch it */ | ||
117 | switch( col ) { | ||
118 | default: | ||
119 | case Profile::White: | ||
120 | qWarning("Background white"); | ||
121 | /* color is white */ | ||
122 | co = Qt::white; | ||
123 | break; | ||
124 | case Profile::Black: | ||
125 | qWarning("Background black"); | ||
126 | co = Qt::black; | ||
127 | break; | ||
128 | } | ||
129 | |||
130 | return co; | ||
131 | } | ||