summaryrefslogtreecommitdiff
path: root/inputmethods/dasher/QtDasherImpl.cc
blob: f4a70dd77b13d28066009ad9c5afb7b4836f8912 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <iostream>
#include <qapplication.h>
#include <qobject.h>
#include <qpixmap.h>
#include "DasherInterface.h"
#include "QtDasherScreen.h"
#include "QtDasherImpl.h"

/* XPM */
static const char * qtdasher_xpm[]={
"28 7 2 1",
"# c #303030",
"  c None",
" ########################## ",
"                            ",
"    #     #                 ",
"   # #   # #                ",
"  #   # #   #               ",
" #     #     #              ",
" ########################## "};


QtDasherImpl::QtDasherImpl()
  : qtdasherinterface(0), qtdasherwidget(0), icn(0)
{
}

QtDasherImpl::~QtDasherImpl()
{
    delete qtdasherwidget;
    delete icn;
}

QWidget *QtDasherImpl::inputMethod( QWidget *parent, Qt::WFlags f )
{
  if ( !qtdasherwidget ) {
	qtdasherwidget = new QtDasherPlugin( parent, "Dasher", f );
  }
  return qtdasherwidget;
}

void QtDasherImpl::resetState()
{
    if ( qtdasherwidget )
      qtdasherwidget->resetState();
}

QPixmap *QtDasherImpl::icon()
{
    if ( !icn )
	icn = new QPixmap( (const char **)qtdasher_xpm );
    return icn;
}

QString QtDasherImpl::name()
{
    return qApp->translate( "InputMethods", "Dasher" );
}

void QtDasherImpl::onKeyPress( QObject *receiver, const char *slot )
{
    if ( qtdasherwidget )
      QObject::connect( qtdasherwidget, SIGNAL(key(ushort,ushort,ushort,bool,bool)), receiver, slot );
}

#ifndef QT_NO_COMPONENT
QRESULT QtDasherImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
{
    *iface = 0;
    if ( uuid == IID_QUnknown )
	*iface = this;
    else if ( uuid == IID_InputMethod )
	*iface = this;
    else
	return QS_FALSE;

    if ( *iface )
	(*iface)->addRef();
    return QS_OK;
}

Q_EXPORT_INTERFACE()
{
    Q_CREATE_INSTANCE( QtDasherImpl )
}
#endif