diff -u -U 5 -r --new-file -X /tmp/diffexclude qt-embedded-free-3.3.0/src/embedded/qkbd_qws.cpp qt-embedded-free-3.3.0.doj/src/embedded/qkbd_qws.cpp --- qt-embedded-free-3.3.0/src/embedded/qkbd_qws.cpp Fri Jan 30 14:02:55 2004 +++ qt-embedded-free-3.3.0.doj/src/embedded/qkbd_qws.cpp Tue Jul 6 14:44:41 2004 @@ -190,9 +190,12 @@ void QWSKeyboardHandler::endAutoRepeat() { d->endAutoRepeat(); } +void* QWSKeyboardHandler::keyMap() { return 0; } +void QWSKeyboardHandler::setKeyMap(void*) { } + #include "qkbd_qws.moc" #endif // QT_NO_QWS_KEYBOARD diff -u -U 5 -r --new-file -X /tmp/diffexclude qt-embedded-free-3.3.0/src/embedded/qkbd_qws.h qt-embedded-free-3.3.0.doj/src/embedded/qkbd_qws.h --- qt-embedded-free-3.3.0/src/embedded/qkbd_qws.h Fri Jan 30 14:02:54 2004 +++ qt-embedded-free-3.3.0.doj/src/embedded/qkbd_qws.h Tue Jul 6 14:44:41 2004 @@ -48,10 +48,13 @@ virtual ~QWSKeyboardHandler(); virtual void processKeyEvent(int unicode, int keycode, int modifiers, bool isPress, bool autoRepeat); + virtual void* keyMap(); + virtual void setKeyMap(void*); + protected: int transformDirKey( int key ); void beginAutoRepeat( int uni, int code, int mod ); void endAutoRepeat(); diff -u -U 5 -r --new-file -X /tmp/diffexclude qt-embedded-free-3.3.0/src/embedded/qkbdpc101_qws.cpp qt-embedded-free-3.3.0.doj/src/embedded/qkbdpc101_qws.cpp --- qt-embedded-free-3.3.0/src/embedded/qkbdpc101_qws.cpp Fri Jan 30 14:02:54 2004 +++ qt-embedded-free-3.3.0.doj/src/embedded/qkbdpc101_qws.cpp Tue Jul 6 14:44:41 2004 @@ -49,11 +49,11 @@ #ifdef Q_OS_LINUX #include #include #endif -static const QWSKeyMap pc101KeyM[] = { +static const QWSKeyMap pc101KeyDefault[] = { { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, { Qt::Key_Escape, 27 , 27 , 0xffff }, { Qt::Key_1, '1' , '!' , 0xffff }, { Qt::Key_2, '2' , '@' , 0xffff }, { Qt::Key_3, '3' , '#' , 0xffff }, @@ -144,11 +144,11 @@ { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, { Qt::Key_unknown, 0xffff , 0xffff , 0xffff }, // 90 { 0, 0xffff , 0xffff , 0xffff } }; -static const int keyMSize = sizeof(pc101KeyM)/sizeof(QWSKeyMap)-1; +static const int keyMSize = sizeof(pc101KeyDefault)/sizeof(pc101KeyDefault[0])-1; //=========================================================================== // // PC-101 type keyboards @@ -165,17 +165,21 @@ caps = FALSE; #if defined(QT_QWS_IPAQ) // iPAQ Action Key has ScanCode 0x60: 0x60|0x80 = 0xe0 == extended mode 1 ! ipaq_return_pressed = FALSE; #endif + + pc101KeyM=new QWSKeyMap[keyMSize+1]; + memcpy(pc101KeyM, pc101KeyDefault, (keyMSize+1)*sizeof(pc101KeyDefault[0])); } QWSPC101KeyboardHandler::~QWSPC101KeyboardHandler() { + delete [] pc101KeyM; } -const QWSKeyMap *QWSPC101KeyboardHandler::keyMap() const +QWSKeyMap* QWSPC101KeyboardHandler::keyMap() { return pc101KeyM; } #ifdef Q_OS_QNX6 @@ -408,7 +412,12 @@ endAutoRepeat(); extended = 0; } -#endif // QT_NO_QWS_KEYBOARD +void QWSPC101KeyboardHandler::setKeyMap(void *p) +{ + if(!p) return; + memcpy(pc101KeyM, p, keyMSize*sizeof(pc101KeyDefault[0])); +} +#endif // QT_NO_QWS_KEYBOARD diff -u -U 5 -r --new-file -X /tmp/diffexclude qt-embedded-free-3.3.0/src/embedded/qkbdpc101_qws.h qt-embedded-free-3.3.0.doj/src/embedded/qkbdpc101_qws.h --- qt-embedded-free-3.3.0/src/embedded/qkbdpc101_qws.h Fri Jan 30 14:02:55 2004 +++ qt-embedded-free-3.3.0.doj/src/embedded/qkbdpc101_qws.h Tue Jul 6 14:44:41 2004 @@ -53,11 +53,13 @@ public: QWSPC101KeyboardHandler(const QString&); virtual ~QWSPC101KeyboardHandler(); virtual void doKey(uchar scancode); - virtual const QWSKeyMap *keyMap() const; + + virtual QWSKeyMap* keyMap(); + virtual void setKeyMap(void*); protected: bool shift; bool alt; bool ctrl; @@ -67,13 +69,14 @@ #endif uint extended:2; int modifiers; int prevuni; int prevkey; + + QWSKeyMap *pc101KeyM; }; #endif // QT_NO_QWS_KBD_PC101 #endif // QT_NO_QWS_KEYBOARD #endif // QKBDTTY_QWS_H -