summaryrefslogtreecommitdiff
path: root/inputmethods/dasher/QtDasherPlugin.cc
Unidiff
Diffstat (limited to 'inputmethods/dasher/QtDasherPlugin.cc') (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/dasher/QtDasherPlugin.cc79
1 files changed, 79 insertions, 0 deletions
diff --git a/inputmethods/dasher/QtDasherPlugin.cc b/inputmethods/dasher/QtDasherPlugin.cc
new file mode 100644
index 0000000..fe1712e
--- a/dev/null
+++ b/inputmethods/dasher/QtDasherPlugin.cc
@@ -0,0 +1,79 @@
1#include "QtDasherPlugin.h"
2
3#include <qpe/global.h>
4
5#include <qpainter.h>
6#include <qlist.h>
7#include <qbitmap.h>
8#include <qlayout.h>
9#include <qvbox.h>
10#include <qdialog.h>
11#include <qscrollview.h>
12#include <qpopupmenu.h>
13#include <qhbuttongroup.h>
14#include <qpushbutton.h>
15#include <qmessagebox.h>
16#include <qwindowsystem_qws.h>
17
18QtDasherPlugin::QtDasherPlugin(QWidget* parent, const char* name, WFlags f) : QFrame(parent,name,f)
19{
20 (new QHBoxLayout(this))->setAutoAdd(TRUE);
21 interface = new CDasherInterface;
22 interface->SetSystemLocation("/opt/QtPalmtop/share/dasher");
23 interface->Unpause(0);
24 interface->Start();
25 d = new QtDasherScreen(240,100,interface,this,this);
26 interface->ChangeMaxBitRate(2.5);
27 d->show();
28 utf8_codec = new QUtf8Codec;
29}
30
31QSize QtDasherPlugin::sizeHint() const
32{
33 return QSize(240,100);
34}
35
36QtDasherPlugin::~QtDasherPlugin()
37{
38 delete d;
39}
40
41void QtDasherPlugin::resetState()
42{
43 flushcount=0;
44 interface->Start();
45 interface->Redraw();
46}
47
48void QtDasherPlugin::unflush()
49{
50 if (flushcount==0)
51 return;
52 for (flushcount; flushcount>0; flushcount--) {
53 deletetext();
54 }
55}
56
57void QtDasherPlugin::output(int Symbol)
58{
59 std::string label = interface->GetEditText(Symbol);
60 QString unicodestring = utf8_codec->toUnicode(label.c_str());
61 for (int i=0; i<int(unicodestring.length()); i++) {
62 emit key( unicodestring[i].unicode(), 0, 0, true, false );
63 emit key( unicodestring[i].unicode(), 0, 0, false, false );
64 }
65}
66
67void QtDasherPlugin::deletetext()
68{
69 emit key( 0, Qt::Key_Backspace, 0, true, false);
70 emit key( 0, Qt::Key_Backspace, 0, false, false);
71}
72
73void QtDasherPlugin::flush(int Symbol)
74{
75 if (Symbol==0)
76 return;
77 output(Symbol);
78 flushcount++;
79}