summaryrefslogtreecommitdiff
path: root/inputmethods/multikey
Side-by-side diff
Diffstat (limited to 'inputmethods/multikey') (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/multikey/keyboard.cpp1
-rw-r--r--inputmethods/multikey/keyboard.h5
-rw-r--r--inputmethods/multikey/keyboardimpl.cpp4
-rw-r--r--inputmethods/multikey/keyboardimpl.h13
4 files changed, 18 insertions, 5 deletions
diff --git a/inputmethods/multikey/keyboard.cpp b/inputmethods/multikey/keyboard.cpp
index 84c0c74..c22fbb1 100644
--- a/inputmethods/multikey/keyboard.cpp
+++ b/inputmethods/multikey/keyboard.cpp
@@ -1,87 +1,88 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include "keyboard.h"
#include "configdlg.h"
#include <qpe/global.h>
#include <qpe/qcopenvelope_qws.h>
#include <qwindowsystem_qws.h>
#include <qpainter.h>
#include <qfontmetrics.h>
#include <qtimer.h>
#include <qpe/qpeapplication.h>
#include <qpe/config.h>
#include <ctype.h>
#include <qfile.h>
#include <qtextstream.h>
#include <qstringlist.h>
#include <sys/utsname.h>
+using namespace MultiKey;
/* Keyboard::Keyboard {{{1 */
Keyboard::Keyboard(QWidget* parent, const char* _name, WFlags f) :
QFrame(parent, _name, f), shift(0), lock(0), ctrl(0), alt(0),
meta(0), circumflex(0), diaeresis(0), baccent(0), accent(0),
useLargeKeys(TRUE), usePicks(0), useRepeat(0),
pressedKeyRow(-1), pressedKeyCol(-1),
unicode(-1), qkeycode(0), modifiers(0), schar(0), mchar(0), echar(0),
configdlg(0)
{
// get the default font
Config *config = new Config( "qpe" );
config->setGroup( "Appearance" );
QString familyStr = config->readEntry( "FontFamily", "fixed" );
delete config;
config = new Config("multikey");
config->setGroup ("general");
usePicks = config->readBoolEntry ("usePickboard", 0); // default closed
useRepeat = config->readBoolEntry ("useRepeat", 1);
delete config;
setFont( QFont( familyStr, 10 ) );
picks = new KeyboardPicks( this );
picks->setFont( QFont( familyStr, 10 ) );
picks->initialise();
if (usePicks) {
QObject::connect( picks, SIGNAL(key(ushort,ushort,ushort,bool,bool) ),
this, SIGNAL(key(ushort,ushort,ushort,bool,bool)) );
} else picks->hide();
loadKeyboardColors();
keys = new Keys();
repeatTimer = new QTimer( this );
connect( repeatTimer, SIGNAL(timeout()), this, SLOT(repeat()) );
}
Keyboard::~Keyboard() {
diff --git a/inputmethods/multikey/keyboard.h b/inputmethods/multikey/keyboard.h
index bc74e71..20c5cee 100644
--- a/inputmethods/multikey/keyboard.h
+++ b/inputmethods/multikey/keyboard.h
@@ -1,75 +1,78 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include <qframe.h>
#include <qmap.h>
#include "../pickboard/pickboardcfg.h"
#include "../pickboard/pickboardpicks.h"
#include "configdlg.h"
class QTimer;
+namespace MultiKey
+{
+
class KeyboardConfig : public DictFilterConfig
{
public:
KeyboardConfig(PickboardPicks* p) : DictFilterConfig(p), backspaces(0) { nrows = 1; }
virtual void generateText(const QString &s);
void decBackspaces() { if (backspaces) backspaces--; }
void incBackspaces() { backspaces++; }
void resetBackspaces() { backspaces = 0; }
private:
int backspaces;
};
class KeyboardPicks : public PickboardPicks
{
Q_OBJECT
public:
KeyboardPicks(QWidget* parent=0, const char* name=0, WFlags f=0)
: PickboardPicks(parent, name, f) { }
void initialise();
virtual QSize sizeHint() const;
KeyboardConfig *dc;
};
class Keys {
public:
Keys();
Keys(const char * filename);
~Keys();
int width(const int row, const int col);
int rows();
ushort uni(const int row, const int col);
int qcode(const int row, const int col);
bool pressed(const int row, const int col);
bool *pressedPtr(const int row, const int col);
ushort shift(const ushort);
ushort meta(const ushort);
ushort circumflex(const ushort);
ushort diaeresis(const ushort);
ushort baccent(const ushort);
ushort accent(const ushort);
QImage *pix(const int row, const int col);
int numKeys(const int row);
void setKeysFromFile(const char *filename);
void setKey(const int row, const int qcode, const ushort unicode,
const int width, QImage *pix);
@@ -140,49 +143,49 @@ private:
bool *ctrl;
bool *alt;
bool *meta;
bool *circumflex;
bool *diaeresis;
bool *baccent;
bool *accent;
uint useLargeKeys:1;
uint usePicks:1;
uint useRepeat:1;
int pressedKeyRow;
int pressedKeyCol;
KeyboardPicks *picks;
int keyHeight;
int defaultKeyWidth;
int xoffs;
int unicode;
int qkeycode;
int modifiers;
int pressTid;
bool pressed;
Keys *keys;
/* for korean input */
ushort schar, mchar, echar;
ushort parseKoreanInput(ushort c);
ushort combineKoreanChars(const ushort s, const ushort m, const ushort e);
ushort constoe(const ushort c);
QTimer *repeatTimer;
/* colors */
void loadKeyboardColors();
QColor keycolor;
QColor keycolor_pressed;
QColor keycolor_lines;
QColor textcolor;
ConfigDlg *configdlg;
};
-
+} // namespace MultiKey
diff --git a/inputmethods/multikey/keyboardimpl.cpp b/inputmethods/multikey/keyboardimpl.cpp
index cebd43d..4cfbcd5 100644
--- a/inputmethods/multikey/keyboardimpl.cpp
+++ b/inputmethods/multikey/keyboardimpl.cpp
@@ -1,107 +1,107 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include <qapplication.h>
#include <qpixmap.h>
#include "keyboard.h"
#include "keyboardimpl.h"
/* XPM */
-static const char * kb_xpm[] = {
+static const char * const kb_xpm[] = {
"28 13 4 1",
" c None",
". c #4C4C4C",
"+ c #FFF7DD",
"@ c #D6CFBA",
" .......................... ",
" .+++.+++.+++.+++.+++.++++. ",
" .+@@.+@@.+@@.+@@.+@@.+@@@. ",
" .......................... ",
" .+++++.+++.+++.+++.++++++. ",
" .+@@@@.+@@.+@@.+@@.+@@@@@. ",
" .......................... ",
" .++++++.+++.+++.+++.+++++. ",
" .+@@@@@.+@@.+@@.+@@.+@@@@. ",
" .......................... ",
" .++++.++++++++++++++.++++. ",
" .+@@@.+@@@@@@@@@@@@@.+@@@. ",
" .......................... "};
KeyboardImpl::KeyboardImpl()
: input(0), icn(0), ref(0)
{
}
KeyboardImpl::~KeyboardImpl()
{
delete input;
delete icn;
}
QWidget *KeyboardImpl::inputMethod( QWidget *parent, Qt::WFlags f )
{
if ( !input )
- input = new Keyboard( parent, "Keyboard", f );
+ input = new MultiKey::Keyboard( parent, "Keyboard", f );
return input;
}
void KeyboardImpl::resetState()
{
if ( input )
input->resetState();
}
QPixmap *KeyboardImpl::icon()
{
if ( !icn )
icn = new QPixmap( (const char **)kb_xpm );
return icn;
}
QString KeyboardImpl::name()
{
return qApp->translate( "InputMethods", "Multikey" );
}
void KeyboardImpl::onKeyPress( QObject *receiver, const char *slot )
{
if ( input )
QObject::connect( input, SIGNAL(key(ushort,ushort,ushort,bool,bool)), receiver, slot );
}
#ifndef QT_NO_COMPONENT
QRESULT KeyboardImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
{
*iface = 0;
if ( uuid == IID_QUnknown )
*iface = this;
else if ( uuid == IID_InputMethod )
*iface = this;
if ( *iface )
(*iface)->addRef();
return QS_OK;
}
Q_EXPORT_INTERFACE()
{
Q_CREATE_INSTANCE( KeyboardImpl )
}
#endif
diff --git a/inputmethods/multikey/keyboardimpl.h b/inputmethods/multikey/keyboardimpl.h
index e756364..76a2955 100644
--- a/inputmethods/multikey/keyboardimpl.h
+++ b/inputmethods/multikey/keyboardimpl.h
@@ -1,51 +1,60 @@
/**********************************************************************
** Copyright (C) 2000 Trolltech AS. All rights reserved.
**
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef KEYBOARDIMPL_H
#define KEYBOARDIMPL_H
#include <qpe/inputmethodinterface.h>
-class Keyboard;
+namespace MultiKey
+{
+ class Keyboard;
+}
+
class QPixmap;
+namespace
+{
+
class KeyboardImpl : public InputMethodInterface
{
public:
KeyboardImpl();
virtual ~KeyboardImpl();
#ifndef QT_NO_COMPONENT
QRESULT queryInterface( const QUuid&, QUnknownInterface** );
Q_REFCOUNT
#endif
virtual QWidget *inputMethod( QWidget *parent, Qt::WFlags f );
virtual void resetState();
virtual QPixmap *icon();
virtual QString name();
virtual void onKeyPress( QObject *receiver, const char *slot );
private:
- Keyboard *input;
+ MultiKey::Keyboard *input;
QPixmap *icn;
ulong ref;
};
+} // anonymous namespace
+
#endif