summaryrefslogtreecommitdiff
path: root/inputmethods/dvorak
authorsimon <simon>2002-11-22 10:56:30 (UTC)
committer simon <simon>2002-11-22 10:56:30 (UTC)
commit480284c491e26427c630131a25e56f9ed1d129b2 (patch) (side-by-side diff)
tree3bdd60afe34e8c466fbea92dcf89fcab381b110d /inputmethods/dvorak
parent772c1321e4e95a415b9de700c3474f81f98b5482 (diff)
downloadopie-480284c491e26427c630131a25e56f9ed1d129b2.zip
opie-480284c491e26427c630131a25e56f9ed1d129b2.tar.gz
opie-480284c491e26427c630131a25e56f9ed1d129b2.tar.bz2
- properly namespace the input methods. fixes symbols clashes at run-time
with names like 'Keyboard' or 'KeyboardConfig' . the qcom interface objects are in an anonymous namespace now and the actual keyboard implementations are in Dvorak, JumpX, etc. namespaces. What's left is to solve the symbol clashes of the multiply compiled pickboard classes. I'll leave that one (as part of the patch posted yesterday) for another day for review. This part (namespacing) sounds like a safe bet to me though, so comitting now. (got no comments anyway)
Diffstat (limited to 'inputmethods/dvorak') (more/less context) (ignore whitespace changes)
-rw-r--r--inputmethods/dvorak/dvorak.cpp2
-rw-r--r--inputmethods/dvorak/dvorak.h4
-rw-r--r--inputmethods/dvorak/dvorakimpl.cpp6
-rw-r--r--inputmethods/dvorak/dvorakimpl.h13
4 files changed, 20 insertions, 5 deletions
diff --git a/inputmethods/dvorak/dvorak.cpp b/inputmethods/dvorak/dvorak.cpp
index 29b5bd0..97afa0a 100644
--- a/inputmethods/dvorak/dvorak.cpp
+++ b/inputmethods/dvorak/dvorak.cpp
@@ -10,48 +10,50 @@
**
** 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 "dvorak.h"
#include <qpe/global.h>
#include <qwindowsystem_qws.h>
#include <qpainter.h>
#include <qfontmetrics.h>
#include <qtimer.h>
#include <ctype.h>
#define USE_SMALL_BACKSPACE
+using namespace Dvorak;
+
Keyboard::Keyboard(QWidget* parent, const char* name, WFlags f) :
QFrame(parent, name, f), shift(FALSE), lock(FALSE), ctrl(FALSE),
alt(FALSE), useLargeKeys(TRUE), useOptiKeys(0), pressedKey(-1),
unicode(-1), qkeycode(0), modifiers(0)
{
// setPalette(QPalette(QColor(240,240,230))); // Beige!
// setFont( QFont( "Helvetica", 8 ) );
// setPalette(QPalette(QColor(200,200,200))); // Gray
setPalette(QPalette(QColor(220,220,220))); // Gray
picks = new KeyboardPicks( this );
picks->setFont( QFont( "smallsmooth", 9 ) );
setFont( QFont( "smallsmooth", 9 ) );
picks->initialise();
QObject::connect( picks, SIGNAL(key(ushort,ushort,ushort,bool,bool) ),
this, SIGNAL(key(ushort,ushort,ushort,bool,bool)) );
repeatTimer = new QTimer( this );
connect( repeatTimer, SIGNAL(timeout()), this, SLOT(repeat()) );
}
void Keyboard::resizeEvent(QResizeEvent*)
{
int ph = picks->sizeHint().height();
diff --git a/inputmethods/dvorak/dvorak.h b/inputmethods/dvorak/dvorak.h
index 38ae338..216b5e5 100644
--- a/inputmethods/dvorak/dvorak.h
+++ b/inputmethods/dvorak/dvorak.h
@@ -2,48 +2,51 @@
** 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 "../pickboard/pickboardcfg.h"
#include "../pickboard/pickboardpicks.h"
class QTimer;
+namespace Dvorak
+{
+
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;
};
@@ -80,24 +83,25 @@ private:
uint lock:1;
uint ctrl:1;
uint alt:1;
uint useLargeKeys:1;
uint useOptiKeys:1;
int pressedKey;
KeyboardPicks *picks;
int keyHeight;
int defaultKeyWidth;
int xoffs;
int unicode;
int qkeycode;
int modifiers;
int pressTid;
bool pressed;
QTimer *repeatTimer;
};
+} // namespace Dvorak
diff --git a/inputmethods/dvorak/dvorakimpl.cpp b/inputmethods/dvorak/dvorakimpl.cpp
index 3c83464..8050ce1 100644
--- a/inputmethods/dvorak/dvorakimpl.cpp
+++ b/inputmethods/dvorak/dvorakimpl.cpp
@@ -2,107 +2,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 "dvorak.h"
#include "dvorakimpl.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",
" .......................... ",
" .+++.+++.+++.+++.+++.++++. ",
" .+@@.+@@.+@@.+@@.+@@.+@@@. ",
" .......................... ",
" .+++++.+++.+++.+++.++++++. ",
" .+@@@@.+@@.+@@.+@@.+@@@@@. ",
" .......................... ",
" .++++++.+++.+++.+++.+++++. ",
" .+@@@@@.+@@.+@@.+@@.+@@@@. ",
" .......................... ",
" .++++.++++++++++++++.++++. ",
" .+@@@.+@@@@@@@@@@@@@.+@@@. ",
" .......................... "};
/* XPM */
-static char * opti_xpm[] = {
+static const char * const opti_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 Dvorak::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", "Dvorak" );
}
void KeyboardImpl::onKeyPress( QObject *receiver, const char *slot )
{
if ( input )
diff --git a/inputmethods/dvorak/dvorakimpl.h b/inputmethods/dvorak/dvorakimpl.h
index e756364..bd9fa88 100644
--- a/inputmethods/dvorak/dvorakimpl.h
+++ b/inputmethods/dvorak/dvorakimpl.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 Dvorak
+{
+ 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;
+ Dvorak::Keyboard *input;
QPixmap *icn;
ulong ref;
};
+} // anonymous namespace
+
#endif