/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
*
* Description:
*
*/
#include "letterwidget.h"
#include <QRect>
#include <QPainter>
letterwidget::letterwidget(QGraphicsItem *parent)
: HbWidget(parent)
{
mA = new HbPushButton("A");
mB = new HbPushButton("B");
mC = new HbPushButton("C");
mSave = new HbPushButton("Save");
mDel = new HbPushButton("Delete");
mWait = new HbPushButton("Wait 10 s");
mPanic = new HbPushButton("Panic client process");
mGridLayout = new QGraphicsGridLayout();
mGridLayout->addItem(mA, 3, 0, 1, 1);
mGridLayout->addItem(mB, 3, 1, 1, 1);
mGridLayout->addItem(mC, 3, 2, 1, 1);
mGridLayout->addItem(mSave, 4, 0, 1, 1);
mGridLayout->addItem(mDel, 4, 1, 1, 1);
mGridLayout->addItem(mWait, 4, 2, 1, 1);
mGridLayout->addItem(mPanic, 5, 0, 1, 3);
mGridLayout->setRowStretchFactor(0, 1);
mGridLayout->setRowStretchFactor(1, 1);
mGridLayout->setRowStretchFactor(2, 1);
setLayout(mGridLayout);
connect(mA, SIGNAL(released()), this, SLOT(toA()));
connect(mB, SIGNAL(released()), this, SLOT(toB()));
connect(mC, SIGNAL(released()), this, SLOT(toC()));
connect(mWait, SIGNAL(released()), this, SLOT(wait()));
connect(mPanic, SIGNAL(released()), this, SLOT(panic()));
connect(mSave, SIGNAL(released()), this, SIGNAL(save()));
connect(mDel, SIGNAL(released()), this, SIGNAL(del()));
toA();
}
letterwidget::~letterwidget()
{
// TODO Auto-generated destructor stub
}
void letterwidget::toA()
{
mStatename = "A";
update();
}
void letterwidget::toB()
{
mStatename = "B";
update();
}
void letterwidget::toC()
{
mStatename = "C";
update();
}
void letterwidget::wait()
{
User::After(10000000); //10 s
}
void letterwidget::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
HbWidget::paint(painter, option, widget);
if ( mStatename.isNull() ) {
return;
}
else if ( mStatename == "A" ) {
painter->setPen(Qt::red);
}
else if ( mStatename == "B" ) {
painter->setPen(Qt::green);
}
else {
painter->setPen(Qt::blue);
}
QFont font;
font.setPointSize(60);
painter->setFont(font);
painter->drawText(10, 140, mStatename);
}
QString letterwidget::state()
{
return mStatename;
}
void letterwidget::setState( QString state )
{
mStatename = state;
update();
}
void letterwidget::panic()
{
User::Panic(_L("forced panic"), 122);
}