summaryrefslogtreecommitdiff
Unidiff
Diffstat (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
@@ -22,47 +22,55 @@
22#include <qlabel.h> 22#include <qlabel.h>
23#include <qdir.h> 23#include <qdir.h>
24#include <qfileinfo.h> 24#include <qfileinfo.h>
25#include <qcopchannel_qws.h> 25#include <qcopchannel_qws.h>
26 26
27Multikey::Multikey(QWidget *parent) : QLabel(parent), popupMenu(this), current("EN") 27Multikey::Multikey(QWidget *parent) : QLabel(parent), popupMenu(this), current("EN")
28{ 28{
29 QCopChannel* swChannel = new QCopChannel("MultiKey/Switcher", this); 29 QCopChannel* swChannel = new QCopChannel("MultiKey/Switcher", this);
30 connect( swChannel, SIGNAL(received(const QCString &, const QByteArray &)), 30 connect( swChannel, SIGNAL(received(const QCString &, const QByteArray &)),
31 this, SLOT(message(const QCString &, const QByteArray &))); 31 this, SLOT(message(const QCString &, const QByteArray &)));
32 32
33 setFont( QFont( "Helvetica", 10, QFont::Normal ) ); 33 setFont( QFont( "Helvetica", 10, QFont::Normal ) );
34 QPEApplication::setStylusOperation(this, QPEApplication::RightOnHold);
34 lang = 0; 35 lang = 0;
35 QCopEnvelope e("MultiKey/Keyboard", "getmultikey()"); 36 QCopEnvelope e("MultiKey/Keyboard", "getmultikey()");
36 setText("EN"); 37 setText("EN");
37 popupMenu.insertItem("EN", -1); 38 popupMenu.insertItem("EN", -1);
38 show(); 39 show();
39} 40}
40 41
41void Multikey::mousePressEvent(QMouseEvent *ev) 42void Multikey::mousePressEvent(QMouseEvent *ev)
42{ 43{
43 if (ev->button() == RightButton) { 44 if (ev->button() == RightButton) {
44 45
45 QPoint p = mapToGlobal(QPoint(0, 0)); 46 QPoint p = mapToGlobal(QPoint(0, 0));
46 QSize s = popupMenu.sizeHint(); 47 QSize s = popupMenu.sizeHint();
47 int opt = popupMenu.exec(QPoint(p.x() + (width() / 2) - (s.width() / 2), 48 int opt = popupMenu.exec(QPoint(p.x() + (width() / 2) - (s.width() / 2),
48 p.y() - s.height()), 0); 49 p.y() - s.height()), 0);
49 50
50 if (opt == -1) 51 if (opt == -1)
51 return; 52 return;
52 lang = opt; 53 lang = opt;
53 } else { 54
54 lang = lang < sw_maps.count()-1 ? lang+1 : 0; 55 QCopEnvelope e("MultiKey/Keyboard", "setmultikey(QString)");
56 e << sw_maps[lang];
57 setText(labels[lang]);
55 } 58 }
59 QWidget::mousePressEvent(ev);
60}
56 61
62void Multikey::mouseReleaseEvent(QMouseEvent *ev)
63{
64 lang = lang < sw_maps.count()-1 ? lang+1 : 0;
57 QCopEnvelope e("MultiKey/Keyboard", "setmultikey(QString)"); 65 QCopEnvelope e("MultiKey/Keyboard", "setmultikey(QString)");
58 //qDebug("Lang=%d, count=%d, lab=%s", lang, sw_maps.count(), labels[lang].ascii()); 66 //qDebug("Lang=%d, count=%d, lab=%s", lang, sw_maps.count(), labels[lang].ascii());
59 e << sw_maps[lang]; 67 e << sw_maps[lang];
60 setText(labels[lang]); 68 setText(labels[lang]);
61} 69}
62 70
63void Multikey::message(const QCString &message, const QByteArray &data) 71void Multikey::message(const QCString &message, const QByteArray &data)
64{ 72{
65 if ( message == "setsw(QString,QString)" ) { 73 if ( message == "setsw(QString,QString)" ) {
66 74
67 QDataStream stream(data, IO_ReadOnly); 75 QDataStream stream(data, IO_ReadOnly);
68 QString maps, current_map; 76 QString maps, current_map;
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
@@ -10,31 +10,34 @@
10** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 10** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
11** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 11** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
12** 12**
13**********************************************************************/ 13**********************************************************************/
14#ifndef __MULTIKEY_H__ 14#ifndef __MULTIKEY_H__
15#define __MULTIKEY_H__ 15#define __MULTIKEY_H__
16 16
17#include <qlabel.h> 17#include <qlabel.h>
18#include <qstringlist.h> 18#include <qstringlist.h>
19#include <qpopupmenu.h> 19#include <qpopupmenu.h>
20#include <qcopchannel_qws.h> 20#include <qcopchannel_qws.h>
21 21
22class Multikey : public QLabel 22class Multikey: public QLabel
23{ 23{
24 Q_OBJECT 24 Q_OBJECT
25public: 25public:
26 Multikey( QWidget *parent ); 26 Multikey(QWidget *parent);
27
28protected:
29 void mousePressEvent(QMouseEvent *ev);
30 void mouseReleaseEvent(QMouseEvent *ev);
27 31
28public slots: 32public slots:
29 void message(const QCString &message, const QByteArray &data); 33 void message(const QCString &message, const QByteArray &data);
30 34
31protected: 35protected:
32 void mousePressEvent( QMouseEvent * );
33 QStringList sw_maps; 36 QStringList sw_maps;
34 QStringList labels; 37 QStringList labels;
35 QPopupMenu popupMenu; 38 QPopupMenu popupMenu;
36 QString current; 39 QString current;
37 uint lang; 40 uint lang;
38}; 41};
39 42
40#endif /* __MULTIKEY_H__ */ 43#endif /* __MULTIKEY_H__ */