summaryrefslogtreecommitdiff
path: root/noncore/tools/calc2/engine.h
authormickeyl <mickeyl>2005-08-23 10:06:07 (UTC)
committer mickeyl <mickeyl>2005-08-23 10:06:07 (UTC)
commitd6e8e6bf49bb176ec54efed5eb0d012098f056d7 (patch) (side-by-side diff)
tree7fc70f3d3b41ee05ddb2ea559c7339a18ef0464b /noncore/tools/calc2/engine.h
parentce5b18efcb27c853ed4af2b603a82d3f89097764 (diff)
downloadopie-d6e8e6bf49bb176ec54efed5eb0d012098f056d7.zip
opie-d6e8e6bf49bb176ec54efed5eb0d012098f056d7.tar.gz
opie-d6e8e6bf49bb176ec54efed5eb0d012098f056d7.tar.bz2
make calc2 a subdir project
Diffstat (limited to 'noncore/tools/calc2/engine.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/calc2/engine.h111
1 files changed, 0 insertions, 111 deletions
diff --git a/noncore/tools/calc2/engine.h b/noncore/tools/calc2/engine.h
deleted file mode 100644
index 15c9aa1..0000000
--- a/noncore/tools/calc2/engine.h
+++ b/dev/null
@@ -1,111 +0,0 @@
-/**********************************************************************
-** 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 ENGINE_H
-#define ENGINE_H
-
-#include <qwidget.h>
-#include <qstack.h> // Instruction stack
-#include <qstring.h> // Display
-#include "instruction.h"
-
-// Possible states
-enum State {
- sStart, // start inputting a new number
- sAppend, // continue inputting a number
- sError
-};
-
-// State machine
-class Engine:public QWidget {
-
-Q_OBJECT
-public:
- Engine (QWidget * parent = 0, const char *name = 0):QWidget (parent, name) {
- hardReset();
- setRepresentation(rDec);
- };
-
- ~Engine () { };
-
- void immediateInstruction (Instruction *);
- void pushInstruction (Instruction *);
- void eval ();
-
- void pushValue (char);
- void del ();
-
- void openBrace ();
- void closeBrace ();
-
- void softReset () { // clears the number being inputted
- decimalPlaces = -1;
- clearData(&num);
- displayData(num);
- state = sStart;
- };
- void hardReset () { // a "real" reset of the stack
- stack.clear ();
- memClear();
- braces = 0;
- softReset ();
- };
-
- void memSave () {
- mem = num;
- };
- void memRecall () {
- num = mem;
- state = sStart;
- displayData(num);
- };
- void memClear () {
- clearData(&mem);
- };
-
- // rFraction will require a special display enabled here
- void setRepresentation(Representation);
-
- // you dont want to call this
- void decBraces(void){ braces--; };
-
-private:
- void displayData(Data d);
- void clearData(Data *d);
- int calcBase();
- Data evalStack (Data, bool);
- Data num,mem;
- State state;
- QStack < Instruction > stack;
- Representation currentRep;
- int braces, decimalPlaces; // count of finishing 0's in num
- QString displayString; // saves instatiating it over and over
-
-signals:
- void display(const QString &);
- void display(double); // could get rid of this and
- // use a QLabel instead.
- void setHexMode();
- void setBinMode();
- void setDecMode();
- void setOctMode();
-};
-
-#endif