Almetare  1.15
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
Ti30mainDlg Klassenreferenz

Eigene Dialogklasse des TI-30. Mehr ...

#include <ti30_main_dlg.h>

Klassendiagramm für Ti30mainDlg:
Ti30mainBaseDlg CalcDlgBase

Öffentliche Slots

void timeout8min ()
 8-Minuten Timer zum "Abschalten" des Rechners.
 
void timeout45s ()
 45-Sekunden Timer fuer Einschalten des "Stromspar"-Modus'.
 
void timeout150ms ()
 150-Millisekunden-Timer fuer den laufenden Punkt im "Stromspar"-Modus.
 
void timeoutThinking ()
 Erzeugt eine konkrete Sequenz von Zeichen, die der TI-30 beim "Nachdenken" ausgibt. Mehr ...
 
- Ã–ffentliche Slots geerbt von Ti30mainBaseDlg

Öffentliche Methoden

 Ti30mainDlg (QWidget *parent=0, const char *name=0, bool modal=FALSE, WFlags f=0)
 Konstruktion des Dialogs. Mehr ...
 
void butDigit ()
 Slot-Funktion fuer die Zifferntasten.
 
void butEe ()
 Slot-Funktion fuer die Exponentialtaste. Mehr ...
 
void butAction ()
 Slot-Funktion fuer die meisten Buttons.
 
void butOff ()
 Slot-Funktion fuer die Off-Taste. Mehr ...
 
void butOn ()
 Slot-Funktion fuer die On-Taste. Mehr ...
 
void butDrg ()
 Slot-Funktion fuer Winkelmodi DEG, RAD, GRA.
 
void butInv ()
 Slot-Funktion fuer die INV-Taste.
 
void butSign ()
 
void butType ()
 
void playPress ()
 Slot-Funktion "Taste gedrueckt".
 
void playRelease ()
 Slot-Funktion "Taste losgelassen".
 
- Ã–ffentliche Methoden geerbt von Ti30mainBaseDlg
 Ti30mainBaseDlg (QWidget *parent=0, const char *name=0, bool modal=FALSE, WFlags fl=0)
 

Geschützte Methoden

void resizeEvent (QResizeEvent *)
 
void enterEvent (QEvent *)
 
- Geschützte Methoden geerbt von Ti30mainBaseDlg
bool event (QEvent *)
 

Private Methoden

void makeShortCutTab ()
 Funktion erzeugt die Tabelle mit allen Shortcuts.
 
void adjustSimpleSkin ()
 Setzt fuer einige Buttons rote und blaue Farbe.
 
void adjustDebugSkin ()
 
void setDisplayFields (bool isDoPerhapsNot=0)
 Erneuert die LED-Anzeige. Mehr ...
 
void setLed (string str)
 Setzt den String str in die passenden Buchstaben der Leuchtdiodenanzeige um. Mehr ...
 
void getSourceCoords (char c, bool isPointSucc, int &row, int &col)
 Liefert zu einem Buchstaben die zugehoerige Zeile und Spalte in der Pixmap. Mehr ...
 
void showAnyThinkSequence (string sym, string lastSym)
 Erzeugt (angenaehert) eine der Sequenzen von Zeichen, die der TI-30 ausgibt, wenn er ueber schwierige Aufgaben (Funktionen) "nachdenkt". Mehr ...
 
void showEquThinkSequence (string lastSym)
 Zeigt spezielle "Thinking"-Sequenz, wenn '=' gedrueckt wurde. Mehr ...
 
void switchOff ()
 Schaltet Rechner aus.
 
void keyPressEvent (QKeyEvent *evP)
 Mapped alle Tastatureingaben auf Tastendruecke in der Dialogbox. Mehr ...
 
void keyReleaseEvent (QKeyEvent *evP)
 Mapped alle Tastatureingaben auf Tastendruecke in der Dialogbox. Mehr ...
 
- Private Methoden geerbt von CalcDlgBase
CalculatorBasegetCalcP () const
 
bool getIsPixLoaded ()
 
QPixmap & getApplIconPixmap ()
 
ShortCutTabT * getShortCutTabP ()
 
void boot (CalculatorBase *cbP, QDialog *dlgP, Qt::WFlags wflags)
 Initialisiert einen Taschenrechner. Mehr ...
 
void initCalcDlgBase ()
 Initialisierung, die nach "Einschalten" (mButOnP) des Rechners durchgefuehrt wird. Mehr ...
 
void clearLcd ()
 Loescht das LCD. Mehr ...
 
void resizeAllWidgets (QDialog *mainDlgP)
 Ermittelt aus der aktuellen Groesse und der Originalgroesse des Hauptdialogs mainDlgP Streckfaktoren in x- und y-Richtung. Mehr ...
 
void setLastType (ButtonType bt)
 
void showHint ()
 Bringt Message-Box auf den Bildschirm, wenn die Maus zum ersten Mal den Rechnerdialog betritt. Mehr ...
 
string extractSym (QPushButton *senderP)
 Extrahiert das Symbol aus dem Button-Namen, indem das fuehrende "m" und abschliessende "P" entfernt wird. Mehr ...
 
void butAnyModeBase (string &sym)
 Funktion, die fuer die Bearbeitung aller Modus-Tasten aufgerufen wird. Mehr ...
 
void butActionBase (string &sym, string &lastSymb)
 Slot-Funktionen fuer die meisten Buttons. Mehr ...
 
void butDigitBase (string &sym)
 Wird von allen Zifferntasten aufgerufen. Mehr ...
 
void butSignBase ()
 Waehrend der Eingabe einer Zahl muss das Vorzeichen gewechselt werden, ohne die Eingabe zu unterbrechen; sonst muss im Calculator die Sign-Routine aufgerufen werden. Mehr ...
 
void butBack ()
 Entfernt das letzte Zeichen aus der Anzeige. Mehr ...
 
void butTypeBase (QWidget *dlgP, Qt::WFlags wflags)
 Fuehrt den Konfigurationsdialog aus. Mehr ...
 
void playPressBase ()
 Spielt einen der Sounds im Vektor mPrsSounds beim Druecken der Taste.
 
void playReleaseBase ()
 Spielt einen der Sounds im Vektor mRlsSounds beim Loslassen der Taste. Mehr ...
 
void execKeyEvent (QKeyEvent *evP, QMouseEvent &me)
 Wandelt Tastatur-Event in Button-Pressed-Event um. Mehr ...
 
void updateDisplayAfterDigit (string inputStr="")
 Erneuert die Members mModes und mSeven der Display-Klasse und das LCD entsprechend. Mehr ...
 
void updateDisplay (string inputStr="")
 Erneuert die Members der Display-Klasse, die drei Edit-Felder des Dialogs und das LCD. Mehr ...
 
void copyBaseDisplayFields ()
 Holt die Display-Felder aus der zum Taschenrechner gehoerenden Display-Klasse. Mehr ...
 
void setError ()
 
bool isError ()
 
virtual void preExtractSym (string sym)
 
virtual void adjustRealisticSkin ()
 

Private Attribute

CalculatorTi30 mCalc
 der integrierte Konsolen-Calculator
 
ComputerTi30mCompP
 Zeiger auf den Computer.
 
DisplayTi30mDsplP
 Zeiger auf das Display.
 
QTimer mTim45s
 
QTimer mTim150ms
 
QTimer mTim8min
 
QTimer mTimThinking
 diverse Timer
 
string mIdleStr
 String zur Darstellung der laufenden Punkte.
 
string mThinkStr
 String zur Darstellung des "Nachdenkens".
 
- Private Attribute geerbt von CalcDlgBase
QDialog * mCalcDlgP
 Zeiger auf den Dialog.
 
CalculatorBasemCalcP
 Zeiger auf den eigentlichen Rechner.
 
int mDefaultWidth
 Default-Breite des Rechners (falls keine Pixmap)
 
int mDefaultHeight
 Default-Hoehe des Rechners (falls keine Pixmap)
 
int mDigitWidth
 natuerliche Breite einer Ziffer im Display
 
int mDigitHeight
 natuerliche Hoehe einer Ziffer im Display
 
QRect mOrgLcdRect
 schmaler Streifen fuer die LCD-Ziffern
 
QSize mOrgDlgSize
 Originalgroesse des Rechners.
 
WgtDataMapT mOrgWgtMap
 Originalgroessen und -texte aller Widgets des Dialogs.
 
double mXfact
 Resize-Faktor in x-Richtung.
 
double mYfact
 Resize-Faktor in y-Richtung.
 
QPixmap mApplIconPixmap
 Pixmap mit dem Application-Icon (links oben im Dialog)
 
QPixmap mBackgroundPixmap
 Pixmap mit dem Hintergrundbild.
 
QPixmap mDigitsPixmap
 Pixmap mit allen Ziffern.
 
QPixmap mScaledDigitsPixmap
 Pixmap mit allen Ziffern, skaliert.
 
QRect mLcdRect
 schmaler Streifen fuer die LCD-Ziffern
 
QLineEdit * mLcdStrBaseP
 formatiertes Ein-Ausgabefeld der Dialog-Box
 
QLineEdit * mModesBaseP
 Modes-Ausgabefeld der Dialog-Box.
 
QLineEdit * mDisplayBaseP
 "rohes" Ein-Ausgabefeld der Dialog-Box
 
QLabel * mSeebassBaseP
 Namensfeld.
 
ButtonType mLastType
 Typ der zuletzt gedrueckten Taste.
 
ButtonType mLastButOneType
 Typ der vorletzten gedrueckten Taste.
 
string mDisplayStr
 Eingabefeld des Taschenrechners.
 
vector< QSound * > mPrsSounds
 Liste aller Sounds fuer 'Taste druecken'.
 
vector< QSound * > mRlsSounds
 Liste aller Sounds fuer 'Taste loslassen'.
 
ShortCutTabT mShortCutTab
 Liste aller Shortcuts.
 
bool mIsOff
 Rechner ein- oder ausgeschaltet.
 
bool mIsPixLoaded
 konnten Rechner-Pixmaps geladen werden?
 
bool mIsSoundLoaded
 konnten Sounds geladen werden?
 
int mMaxDigitNum
 maximale Anzahl von Ziffern bei der Eingabe
 

Weitere Geerbte Elemente

- Ã–ffentliche Attribute geerbt von Ti30mainBaseDlg
QPushButton * mInvP
 
QPushButton * mConstP
 
QPushButton * mSinP
 
QPushButton * mSqrP
 
QPushButton * mEeP
 
QPushButton * mSqrtP
 
QPushButton * mLogP
 
QPushButton * mCosP
 
QPushButton * mOffP
 
QPushButton * mTanP
 
QPushButton * mLnP
 
QPushButton * mDrgP
 
QPushButton * mPowP
 
QPushButton * mDivP
 
QPushButton * mKetP
 
QPushButton * mPiP
 
QPushButton * m9P
 
QPushButton * mPrcP
 
QPushButton * m6P
 
QPushButton * mBraP
 
QPushButton * mAddP
 
QPushButton * mSubP
 
QPushButton * mSumP
 
QPushButton * m5P
 
QPushButton * mStoP
 
QPushButton * m8P
 
QPushButton * mMulP
 
QPushButton * m4P
 
QPushButton * mRclP
 
QPushButton * m1P
 
QPushButton * m2P
 
QPushButton * m7P
 
QPushButton * m3P
 
QLabel * mSeebassP
 
QPushButton * mRcpP
 
QPushButton * mOnP
 
QToolButton * mCalcTypeP
 
QLineEdit * mDisplayP
 
QLineEdit * mModesP
 
QLineEdit * mLcdStrP
 
QPushButton * mPointP
 
QPushButton * mExcP
 
QPushButton * m0P
 
QPushButton * mEquP
 
QPushButton * mSignP
 
- Private Typen geerbt von CalcDlgBase
enum  ButtonType {
  B_NO, B_ANY_MODE, B_DIGIT, B_ACTION,
  B_ON, B_PI, B_EE, B_ENG
}
 

Ausführliche Beschreibung

Eigene Dialogklasse des TI-30.

Beschreibung der Konstruktoren und Destruktoren

◆ Ti30mainDlg()

Ti30mainDlg::Ti30mainDlg ( QWidget *  parentP = 0,
const char *  name = 0,
bool  modal = FALSE,
WFlags  fl = 0 
)

Konstruktion des Dialogs.

Initialisierung der Members.

Parameter
parentPZeiger auf Vaterdialog
nameName des Dialogs
modalFlag, ob Dialog modal oder nicht
fldiverse Qt-Dialog-Flags

Dokumentation der Elementfunktionen

◆ butEe()

void Ti30mainDlg::butEe ( )
virtual

Slot-Funktion fuer die Exponentialtaste.

mCompP->getIsInv() &&

Erneute Implementation von Ti30mainBaseDlg.

◆ butOff()

void Ti30mainDlg::butOff ( )
virtual

Slot-Funktion fuer die Off-Taste.

Wenn Button "OFF" zum ersten Mal gedrückt wird, wird das Diplay geloescht. Beim zweiten Mal wird der Taschenrechner beendet.

Erneute Implementation von Ti30mainBaseDlg.

◆ butOn()

void Ti30mainDlg::butOn ( )
virtual

Slot-Funktion fuer die On-Taste.

Wenn Button "ON" zum ersten Mal gedrueckt wird, wird das Display geloescht. Beim zweiten Mal werden die Stacks initialisiert.

Erneute Implementation von Ti30mainBaseDlg.

◆ getSourceCoords()

void Ti30mainDlg::getSourceCoords ( char  c,
bool  isPointSucc,
int &  row,
int &  col 
)
private

Liefert zu einem Buchstaben die zugehoerige Zeile und Spalte in der Pixmap.

Die Pixmap hat folgenden Aufbau:

Zeile | 0 1 2 3 4 5 6 7 8 9 10 Spalte
------|----------------------------------------
0 | 0 1 2 3 4 5 6 7 8 9 U
1 | 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. I
2 | ' " - ~ = E r o s _
3 | . '. ". -. ~. =. A. r. b J ]
Parameter
cgesuchter Character
isPointSuccgibt an, ob dem Zeichen ein Punkt folgt
Rückgabewerte
rowgefundene Zeilennummer in der Pixmap
colgefundene Spaltennummer in der Pixmap

◆ keyPressEvent()

void Ti30mainDlg::keyPressEvent ( QKeyEvent *  evP)
private

Mapped alle Tastatureingaben auf Tastendruecke in der Dialogbox.

Parameter
evPZeiger auf das Qt-Tasten-Event

◆ keyReleaseEvent()

void Ti30mainDlg::keyReleaseEvent ( QKeyEvent *  evP)
private

Mapped alle Tastatureingaben auf Tastendruecke in der Dialogbox.

Parameter
evPZeiger auf das Qt-Tasten-Event

◆ setDisplayFields()

void Ti30mainDlg::setDisplayFields ( bool  isDoPerhapsNot = 0)
privatevirtual

Erneuert die LED-Anzeige.

Da diese Prozedur nach jedem Tastendruck aufgerufen wird, koennen hier auch die Timer gestartet werden. Besonderheit: Bei der realistischen Darstellung soll der TI-30 die "Thinking-Sequenz" zeigen. Um zu verhindern, dass das korrekte Ergebnis schon kurz aufblitzt [ausgeloest durch den Aufruf in butActionBase()] bevor die Sequenz durchgelaufen ist, muss es in diesem Fall durch Setzen des Flags isDoPerhapsNot kurz deaktiviert werden. setDisplayFields() wird dann abschliessend vom Timer aufgerufen.

Parameter
isDoPerhapsNotwenn true und MORE_REALISTIC, wird die Funktion sofort verlassen

Implementiert CalcDlgBase.

◆ setLed()

void Ti30mainDlg::setLed ( string  str)
private

Setzt den String str in die passenden Buchstaben der Leuchtdiodenanzeige um.

Parameter
strString, der dargestellt werden soll.

◆ showAnyThinkSequence()

void Ti30mainDlg::showAnyThinkSequence ( string  sym,
string  lastSym 
)
private

Erzeugt (angenaehert) eine der Sequenzen von Zeichen, die der TI-30 ausgibt, wenn er ueber schwierige Aufgaben (Funktionen) "nachdenkt".

Parameter
symaktuell eingegebenes Symbol
lastSymzuletzt eingegebenes Symbol

◆ showEquThinkSequence()

void Ti30mainDlg::showEquThinkSequence ( string  lastSym)
private

Zeigt spezielle "Thinking"-Sequenz, wenn '=' gedrueckt wurde.

Parameter
lastSymSymbol, das vor dem '=' eingegeben wurde.

◆ timeoutThinking

void Ti30mainDlg::timeoutThinking ( )
slot

Erzeugt eine konkrete Sequenz von Zeichen, die der TI-30 beim "Nachdenken" ausgibt.


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien: