summaryrefslogtreecommitdiff
path: root/core
authormouse <mouse>2004-01-05 15:23:15 (UTC)
committer mouse <mouse>2004-01-05 15:23:15 (UTC)
commit969831e80dd285e8c95e8a91333a626717d5543e (patch) (side-by-side diff)
treef5976ce77f9381f8e4f4d871d74e520f0d76ba85 /core
parentc127e5d582b1ae4033eca1c8454bee75d510b9e8 (diff)
downloadopie-969831e80dd285e8c95e8a91333a626717d5543e.zip
opie-969831e80dd285e8c95e8a91333a626717d5543e.tar.gz
opie-969831e80dd285e8c95e8a91333a626717d5543e.tar.bz2
added popup menu
fixed reaction by one touch and hold-touch (RightButton)
Diffstat (limited to 'core') (more/less context) (ignore whitespace changes)
-rw-r--r--core/applets/multikeyapplet/multikey.cpp12
-rw-r--r--core/applets/multikeyapplet/multikey.h9
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
@@ -28,12 +28,13 @@ Multikey::Multikey(QWidget *parent) : QLabel(parent), popupMenu(this), current("
{
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();
}
@@ -47,16 +48,23 @@ void Multikey::mousePressEvent(QMouseEvent *ev)
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]);
}
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
@@ -16,23 +16,26 @@
#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;
};