00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <qframe.h>
00013 #include <qpixmap.h>
00014 #include <qtimer.h>
00015
00016 namespace KJumpX
00017 {
00018
00019 class Keyboard : public QFrame
00020 {
00021 Q_OBJECT
00022 public:
00023 Keyboard( QWidget* parent=0, const char* name=0, WFlags f=0 );
00024
00025 void resetState();
00026
00027 void mousePressEvent(QMouseEvent*);
00028 void mouseReleaseEvent(QMouseEvent*);
00029 void mouseMoveEvent(QMouseEvent*);
00030 void resizeEvent(QResizeEvent*);
00031 void paintEvent(QPaintEvent* e);
00032
00033
00034 QSize sizeHint() const;
00035
00036 QChar parseKoreanInput(ushort);
00037 ushort combineKoreanChars(const ushort, const ushort, const ushort);
00038 ushort constoe(const ushort);
00039
00040
00041 signals:
00042 void key( ushort unicode, ushort qcode, ushort modifiers, bool, bool );
00043
00044 private slots:
00045 void delayTimerDone();
00046 void rateTimerDone();
00047
00048 private:
00049 int shift;
00050 int paren;
00051 int ctrl;
00052 int alt;
00053 bool lang;
00054
00055 int lastKey;
00056
00057 int pressedKeyUnicode, pressedKeyQcode, pressedMod;
00058 int pressedx, pressedy, pressedw, pressedh;
00059 bool isnoncont;
00060 int pressed2x, pressed2y, pressed2w, pressed2h;
00061
00062 int slideKeyUnicodeH, slideKeyQcodeH, slideKeyUnicodeV, slideKeyQcodeV;
00063 bool enableMouseTracking;
00064 QPixmap *slidePix, *slidePixH, *slidePixV;
00065
00066 QPixmap releasedPlain;
00067 QPixmap releasedShift;
00068 QPixmap releasedParen;
00069
00070 QPixmap pressedPlain;
00071 QPixmap pressedShift;
00072 QPixmap pressedParen;
00073 QPixmap pressedDigit;
00074
00075 QPixmap offscreen;
00076
00077 QPixmap *releasedPix;
00078 QPixmap *pressedPix;
00079
00080 QTimer *delayTimer;
00081 QTimer *rateTimer;
00082 };
00083
00084 }