www.pudn.com > calculator.rar > stdinputwidgets.h


/****************************************************************************
**
** Copyright (C) 2000-2006 TROLLTECH ASA. All rights reserved.
**
** This file is part of the Phone Edition of the Qtopia Toolkit.
**
** Licensees holding a valid license agreement from Trolltech or any of its
** authorized distributors may use this file in accordance with
** the License Agreement provided with the Licensed Software.
**
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
**   information about Trolltech's Commercial License Agreements.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**
**
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
****************************************************************************/
#ifndef STDINPUTWIDGETS_H
#define STDINPUTWIDGETS_H

#include 
#include 

#include "../doubleinstruction.h"
#include "../engine.h"
#ifdef ENABLE_FRACTION
#include "../fractioninstruction.h"
#endif

class CalcUserInterface : public QWidget
{
    public: 
        CalcUserInterface( QWidget* parent = 0, Qt::WFlags fl = 0) 
        : QWidget(parent, fl) {};
        
        virtual QString interfaceName() = 0;
    protected:
        QGridLayout * InputWidgetLayout;
};

class InputWidget : public CalcUserInterface
{
    Q_OBJECT

public:
    InputWidget( QWidget* parent = 0, Qt::WFlags fl = 0 );
    ~InputWidget(){};

public slots:
    void val0Clicked ();
    void val1Clicked ();
    void val2Clicked ();
    void val3Clicked ();
    void val4Clicked ();
    void val5Clicked ();
    void val6Clicked ();
    void val7Clicked ();
    void val8Clicked ();
    void val9Clicked ();
    void evalClicked();
    void addClicked ();
    void subClicked ();
    void mulClicked ();
    void divClicked ();
    void negClicked ();
    void bsClicked ();
    
    QString interfaceName() { return QString(tr("Standard")); };


protected:
    virtual void init(int fromRow, int fromCol);

    QGridLayout* InputWidgetLayout;
    
    QPushButton* PB0,*PB1,*PB2,*PB3,*PB4,*PB5,*PB6,*PB7,*PB8,*PB9;
    QPushButton* PBPlus;
    QPushButton* PBMinus;
    QPushButton* PBTimes;
    QPushButton* PBDiv;
    QPushButton* PBEval;
    QPushButton* PBNegate;
    QPushButton* PBBS;
};

class DecimalInputWidget : public InputWidget
{
    Q_OBJECT

public:
    DecimalInputWidget( QWidget* parent = 0, Qt::WFlags fl = 0 );
    virtual ~DecimalInputWidget(){};

public slots:
    void decimalClicked ();
protected:
    virtual void init(int fromRow, int fromCol);
private:
    QPushButton* PBDecimal;
};


class FractionInputWidget : public InputWidget
{
    Q_OBJECT

public:
    FractionInputWidget( QWidget* parent = 0, Qt::WFlags fl = 0 );
    ~FractionInputWidget(){};

public slots:
    void fractionClicked ();
protected:
    virtual void init(int fromRow, int fromCol);
private:
    QPushButton* PBFraction;
};
#endif //STDINPUTWIDGETS_H