-rw-r--r-- | inputmethods/multikey/keyboard.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp index 92da8ca..3e43978 100644 --- a/inputmethods/multikey/keyboard.cpp +++ b/inputmethods/multikey/keyboard.cpp @@ -22,64 +22,69 @@ #include <qpe/global.h> #include <qwindowsystem_qws.h> #include <qpainter.h> #include <qfontmetrics.h> #include <qtimer.h> #include <qpe/qpeapplication.h> #include <qpe/config.h> #include <ctype.h> #include <qfile.h> #include <qtextstream.h> #include <sys/utsname.h> #define USE_SMALL_BACKSPACE /* Keyboard::Keyboard {{{1 */ Keyboard::Keyboard(QWidget* parent, const char* _name, WFlags f) : QFrame(parent, _name, f), shift(0), lock(0), ctrl(0), alt(0), useLargeKeys(TRUE), usePicks(0), pressedKeyRow(-1), pressedKeyCol(-1), unicode(-1), qkeycode(0), modifiers(0), LANG("ko"), schar(0), mchar(0), echar(0) { + // get the default font + Config qpeConfig( "qpe" ); + qpeConfig.setGroup( "Appearance" ); + QString familyStr = qpeConfig.readEntry( "FontFamily", "fixed" ); + + setFont( QFont( familyStr, 8 ) ); picks = new KeyboardPicks( this ); - picks->setFont( QFont( "helvetica", 8 ) ); - setFont( QFont( "helvetica", 8 ) ); + picks->setFont( QFont( familyStr, 8 ) ); picks->initialise(); if (usePicks) { QObject::connect( picks, SIGNAL(key(ushort,ushort,ushort,bool,bool) ), this, SIGNAL(key(ushort,ushort,ushort,bool,bool)) ); } else picks->hide(); Config config("locale"); config.setGroup( "Language" ); - LANG = config.readEntry( "Language" ); - if(LANG.isEmpty()) LANG = "en"; + //LANG = config.readEntry( "Language", "en" ); + LANG = "ko"; repeatTimer = new QTimer( this ); connect( repeatTimer, SIGNAL(timeout()), this, SLOT(repeat()) ); } /* Keyboard::resizeEvent {{{1 */ void Keyboard::resizeEvent(QResizeEvent*) { int ph = picks->sizeHint().height(); picks->setGeometry( 0, 0, width(), ph ); keyHeight = (height()-(usePicks ? ph : 0))/5; int nk; // number of keys? if ( useLargeKeys ) { nk = 15; } else { nk = 19; } defaultKeyWidth = (width()/nk)/2; xoffs = (width()-defaultKeyWidth*nk)/2; // empty key spaces? } @@ -425,49 +430,49 @@ void Keyboard::repeat() repeatTimer->start( 200 ); emit key( unicode, 0, modifiers, true, true ); } void Keyboard::clearHighlight() { if ( pressedKeyRow >= 0 && pressedKeyCol >= 0) { int tmpRow = pressedKeyRow; int tmpCol = pressedKeyCol; pressedKeyRow = -1; pressedKeyCol = -1; QPainter p(this); drawKeyboard(p, tmpRow, tmpCol); } } /* Keyboard::sizeHint {{{1 */ QSize Keyboard::sizeHint() const { QFontMetrics fm=fontMetrics(); - int keyHeight = fm.lineSpacing()+2; + int keyHeight = fm.lineSpacing(); return QSize( 240, keyHeight * 5 + (usePicks ? picks->sizeHint().height() : 0) + 1); } void Keyboard::resetState() { schar = mchar = echar = 0; picks->resetState(); } /* korean input functions {{{1 * * TODO * one major problem with this implementation is that you can't move the * cursor after inputing korean chars, otherwise it will eat up and replace * the char before the cursor you move to. fix that * * make a kor/eng swaping key * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * how korean input works * @@ -747,49 +752,51 @@ ushort Keyboard::constoe(const ushort c) { case 0x11bc: return 0x110b; case 0x11bd: return 0x110c; case 0x11be: return 0x110e; case 0x11bf: return 0x110f; case 0x11c0: return 0x1110; case 0x11c1: return 0x1111; case 0x11c2: return 0x1112; default: return 0; } } } // Keys::Keys {{{1 Keys::Keys() { Config config("locale"); config.setGroup( "Language" ); QString l = config.readEntry( "Language" ); if(l.isEmpty()) l = "en"; - QString key_map = QPEApplication::qpeDir() + "/i18n/" + l + "/keyboard"; + QString key_map = QPEApplication::qpeDir() + "/share/multikey/" + + /* l // testing korean for now */ + + "ko.keymap"; setKeysFromFile(key_map); } Keys::Keys(const char * filename) { setKeysFromFile(filename); } // Keys::setKeysFromFile {{{2 void Keys::setKeysFromFile(const char * filename) { QFile f(filename); if (f.open(IO_ReadOnly)) { QTextStream t(&f); int row; int qcode; ushort unicode; int width; QString buf; QString comment; char * xpm[256]; //couldnt be larger than that... could it? |