From d7290c6b24266303abd95e7f38c0fecae395f355 Mon Sep 17 00:00:00 2001 From: zecke Date: Mon, 14 Oct 2002 22:58:11 +0000 Subject: A small console emulation layer... And some configuration stuff fonts are working colors are not fully working BackGround and ForeGround both are black :( --- (limited to 'noncore/apps/opie-console/emulation_handler.cpp') 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; +} -- cgit v0.9.0.2