summaryrefslogtreecommitdiff
path: root/noncore/apps/opie-console/emulation_handler.cpp
Side-by-side diff
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.cpp89
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
@@ -3,6 +3,7 @@
#include "TEWidget.h"
#include "TEmuVt102.h"
+#include "profile.h"
#include "emulation_handler.h"
@@ -29,11 +30,11 @@ EmulationHandler::~EmulationHandler() {
delete m_teEmu;
delete m_teWid;
}
-void EmulationHandler::load( const Profile& ) {
- QFont font = QFont("Fixed", 12, QFont::Normal );
- font.setFixedPitch(TRUE);
- m_teWid->setVTFont( font );
- m_teWid->setBackgroundColor(Qt::gray );
+void EmulationHandler::load( const Profile& prof) {
+ m_teWid->setVTFont( font( prof.readNumEntry("Font") ) );
+ int num = prof.readNumEntry("Color");
+ setColor( foreColor(num), backColor(num) );
+ m_teWid->setBackgroundColor(backColor(num) );
}
void EmulationHandler::recv( const QByteArray& ar) {
qWarning("received in EmulationHandler!");
@@ -50,3 +51,81 @@ void EmulationHandler::recvEmulation(const char* src, int len ) {
QWidget* EmulationHandler::widget() {
return m_teWid;
}
+/*
+ * allocate a new table of colors
+ */
+void EmulationHandler::setColor( const QColor& fore, const QColor& back ) {
+ ColorEntry table[TABLE_COLORS];
+ const ColorEntry *defaultCt = m_teWid->getdefaultColorTable();
+
+ for (int i = 0; i < TABLE_COLORS; i++ ) {
+ if ( i == 0 || i == 10 ) {
+ table[i].color = fore;
+ }else if ( i == 1 || i == 11 ) {
+ table[i].color = back;
+ table[i].transparent = 0;
+ }else {
+ table[i].color = defaultCt[i].color;
+ }
+ }
+// m_teWid->setColorTable(table );
+ m_teWid->update();
+}
+QFont EmulationHandler::font( int id ) {
+ QString name;
+ int size = 0;
+ switch(id ) {
+ default: // fall through
+ case 0:
+ name = QString::fromLatin1("Micro");
+ size = 4;
+ break;
+ case 1:
+ name = QString::fromLatin1("Fixed");
+ size = 7;
+ break;
+ case 2:
+ name = QString::fromLatin1("Fixed");
+ size = 12;
+ break;
+ }
+ QFont font(name, size, QFont::Normal );
+ font.setFixedPitch(TRUE );
+ return font;
+}
+QColor EmulationHandler::foreColor(int col) {
+ QColor co;
+ /* we need to switch it */
+ switch( col ) {
+ default:
+ case Profile::White:
+ qWarning("Foreground black");
+ /* color is black */
+ co = Qt::black;
+ break;
+ case Profile::Black:
+ qWarning("Foreground white");
+ co = Qt::white;
+ break;
+ }
+
+ return co;
+}
+QColor EmulationHandler::backColor(int col ) {
+ QColor co;
+ /* we need to switch it */
+ switch( col ) {
+ default:
+ case Profile::White:
+ qWarning("Background white");
+ /* color is white */
+ co = Qt::white;
+ break;
+ case Profile::Black:
+ qWarning("Background black");
+ co = Qt::black;
+ break;
+ }
+
+ return co;
+}