author | mouse <mouse> | 2004-01-05 15:23:15 (UTC) |
---|---|---|
committer | mouse <mouse> | 2004-01-05 15:23:15 (UTC) |
commit | 969831e80dd285e8c95e8a91333a626717d5543e (patch) (side-by-side diff) | |
tree | f5976ce77f9381f8e4f4d871d74e520f0d76ba85 | |
parent | c127e5d582b1ae4033eca1c8454bee75d510b9e8 (diff) | |
download | opie-969831e80dd285e8c95e8a91333a626717d5543e.zip opie-969831e80dd285e8c95e8a91333a626717d5543e.tar.gz opie-969831e80dd285e8c95e8a91333a626717d5543e.tar.bz2 |
added popup menu
fixed reaction by one touch and hold-touch (RightButton)
-rw-r--r-- | core/applets/multikeyapplet/multikey.cpp | 12 | ||||
-rw-r--r-- | core/applets/multikeyapplet/multikey.h | 9 |
2 files changed, 16 insertions, 5 deletions
diff --git a/core/applets/multikeyapplet/multikey.cpp b/core/applets/multikeyapplet/multikey.cpp index f1227ef..9ef162f 100644 --- a/core/applets/multikeyapplet/multikey.cpp +++ b/core/applets/multikeyapplet/multikey.cpp @@ -26,16 +26,17 @@ Multikey::Multikey(QWidget *parent) : QLabel(parent), popupMenu(this), current("EN") { QCopChannel* swChannel = new QCopChannel("MultiKey/Switcher", this); connect( swChannel, SIGNAL(received(const QCString &, const QByteArray &)), this, SLOT(message(const QCString &, const QByteArray &))); setFont( QFont( "Helvetica", 10, QFont::Normal ) ); + QPEApplication::setStylusOperation(this, QPEApplication::RightOnHold); lang = 0; QCopEnvelope e("MultiKey/Keyboard", "getmultikey()"); setText("EN"); popupMenu.insertItem("EN", -1); show(); } void Multikey::mousePressEvent(QMouseEvent *ev) @@ -45,20 +46,27 @@ void Multikey::mousePressEvent(QMouseEvent *ev) QPoint p = mapToGlobal(QPoint(0, 0)); QSize s = popupMenu.sizeHint(); int opt = popupMenu.exec(QPoint(p.x() + (width() / 2) - (s.width() / 2), p.y() - s.height()), 0); if (opt == -1) return; lang = opt; - } else { - lang = lang < sw_maps.count()-1 ? lang+1 : 0; + + QCopEnvelope e("MultiKey/Keyboard", "setmultikey(QString)"); + e << sw_maps[lang]; + setText(labels[lang]); } + QWidget::mousePressEvent(ev); +} +void Multikey::mouseReleaseEvent(QMouseEvent *ev) +{ + lang = lang < sw_maps.count()-1 ? lang+1 : 0; QCopEnvelope e("MultiKey/Keyboard", "setmultikey(QString)"); //qDebug("Lang=%d, count=%d, lab=%s", lang, sw_maps.count(), labels[lang].ascii()); e << sw_maps[lang]; setText(labels[lang]); } void Multikey::message(const QCString &message, const QByteArray &data) { diff --git a/core/applets/multikeyapplet/multikey.h b/core/applets/multikeyapplet/multikey.h index b525074..1c5aa0c 100644 --- a/core/applets/multikeyapplet/multikey.h +++ b/core/applets/multikeyapplet/multikey.h @@ -14,27 +14,30 @@ #ifndef __MULTIKEY_H__ #define __MULTIKEY_H__ #include <qlabel.h> #include <qstringlist.h> #include <qpopupmenu.h> #include <qcopchannel_qws.h> -class Multikey : public QLabel +class Multikey: public QLabel { Q_OBJECT public: - Multikey( QWidget *parent ); + Multikey(QWidget *parent); + +protected: + void mousePressEvent(QMouseEvent *ev); + void mouseReleaseEvent(QMouseEvent *ev); public slots: void message(const QCString &message, const QByteArray &data); protected: - void mousePressEvent( QMouseEvent * ); QStringList sw_maps; QStringList labels; QPopupMenu popupMenu; QString current; uint lang; }; #endif /* __MULTIKEY_H__ */ |