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

Eigene Dialogklasse des fx-85v. Mehr ...

#include <fx85v_main_dlg.h>

Klassendiagramm für Fx85vMainDlg:
Fx85vMainBaseDlg CalcDlgBase

Öffentliche Slots

void timeoutOff ()
 7-Minuten Timer zum "Abschalten" des Rechners.
 
- Ã–ffentliche Slots geerbt von Fx85vMainBaseDlg

Öffentliche Methoden

 Fx85vMainDlg (QWidget *parent=0, const char *name=0, bool modal=FALSE, WFlags f=0)
 Konstruktion des Dialogs. Mehr ...
 
 ~Fx85vMainDlg ()
 Speichert vor dem Verlassen die Groessendaten des Dialogs in der Konfigurationsdatei. Mehr ...
 
void butAc ()
 Button AC loescht alles bis auf die Speicher.
 
void butBack ()
 
void butDigit ()
 Slot-Funktion fuer die Zifferntasten.
 
void butAbc ()
 Taste zum Bruchrechnen.
 
void butExp ()
 Entfernt das letzte Zeichen aus der Anzeige. Mehr ...
 
void butAction ()
 Slot-Funktionen fuer die meisten Buttons:
 
void butEng ()
 Schaltet die Anzeige in den Engineering-Modus bzw. Mehr ...
 
void butEngBack ()
 Schaltet die Anzeige in den Engineering-Modus bzw. Mehr ...
 
void butAnyMode ()
 Slot-Funktionen fuer die Mode-Buttons:
 
void butBra ()
 Slot-Funktion ist nur noetig, um in der Anzeige die Klammer erscheinen zu lassen. Mehr ...
 
void butSign ()
 +/–Taste.
 
void butSum ()
 M+-Taste. Mehr ...
 
void butDat ()
 Fuehrt den Datendialog fuer Statistikdaten aus.
 
void butType ()
 
void playPress ()
 
void playRelease ()
 
- Ã–ffentliche Methoden geerbt von Fx85vMainBaseDlg
 Fx85vMainBaseDlg (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 Fx85vMainBaseDlg
bool event (QEvent *)
 

Private Methoden

void rowColToPix (int row, int col, int &x, int &y, int &w, int &h)
 Liefert zu einer Zeilen-/Spalten-Position die zugehoerigen Pixelkoordinaten in der nicht skalierten Digits-Pixmap. Mehr ...
 
void setLcd (string str)
 Setzt den String str in die passenden Buchstaben des LCDs um. Mehr ...
 
void getSourceCoords (char c, bool isPointSucc, bool isExp, int &x, int &y, int &w, int &h)
 Liefert zu einem Buchstaben die zugehoerigen Pixelkoordinaten in der Pixmap. Mehr ...
 
void switchOff ()
 Schaltet den Rechner im More-Realistic-Modus "aus", wenn der 7-Minuten-Timer abgelaufen ist. Mehr ...
 
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 ...
 
void resetAllModes ()
 Setzt alle Shift-Ebenen zurueck.
 
void setLabelColors ()
 Geht alle Widgets durch und setzt die Farben der Labels. Mehr ...
 
void adjustSimpleSkin ()
 Setzt die Farben der Buttons. Mehr ...
 
void adjustDebugSkin ()
 Entfernt die schwarze "Blende" hinter dem Display.
 
void setDisplayFields (bool isDoPerhapsNot=0)
 Erneuert die LCD-Anzeige. Mehr ...
 
void makeShortCutTab ()
 Funktion erzeugt die Tabelle mit allen Shortcuts.
 
void butEngBoth (Util::Direction dir)
 Schaltet die Anzeige in den Engineering-Modus bzw. 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

CalculatorFx85v mCalc
 Inkorporierter Konsolenrechner.
 
ComputerFx85vmCompP
 Zeiger auf den Computer des Rechners.
 
DisplayFx85vmDsplP
 Zeiger auf das Display des Rechners.
 
QTimer mTimOff
 8-Minuten-Timer fuer automatisches Abschalten
 
bool mIsModeMode
 gibt an, ob Mode-Taste gedrueckt
 
- 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 Fx85vMainBaseDlg
QPushButton * mSignP
 
QPushButton * mCP
 
QPushButton * mMulP
 
QPushButton * mEquP
 
QPushButton * mDivP
 
QPushButton * mRclP
 
QPushButton * mSubP
 
QPushButton * mStoP
 
QPushButton * mModeP
 
QPushButton * mBackP
 
QPushButton * mKinP
 
QPushButton * mKoutP
 
QPushButton * mEngP
 
QPushButton * mRcpP
 
QPushButton * mSqrP
 
QPushButton * mLogP
 
QPushButton * mLnP
 
QPushButton * mPowP
 
QPushButton * mHypP
 
QPushButton * mSinP
 
QPushButton * mCosP
 
QPushButton * mTanP
 
QPushButton * mAbcP
 
QPushButton * mAcP
 
QPushButton * mAddP
 
QPushButton * m8P
 
QPushButton * m7P
 
QPushButton * mEngBackP
 
QPushButton * m6P
 
QPushButton * m0P
 
QPushButton * mPointP
 
QPushButton * m1P
 
QPushButton * m3P
 
QPushButton * mExpP
 
QPushButton * mKetP
 
QPushButton * m2P
 
QPushButton * m9P
 
QPushButton * mIsxgP
 
QPushButton * mBraP
 
QPushButton * mSqrtP
 
QPushButton * m4P
 
QPushButton * m5P
 
QLabel * mLbBbXdYdP
 
QLabel * mLbBbYP
 
QLabel * mLbRbXP
 
QLabel * mLbRbAP
 
QLabel * mLbRbBP
 
QLabel * mLbRbRP
 
QLabel * mLbRbYaveP
 
QLabel * mLbBbSy2P
 
QLabel * mLbRbYsnP
 
QLabel * mLbBbSyP
 
QLabel * mLbRbXaveP
 
QLabel * mLbR_FctP
 
QLabel * mLbR_XyP
 
QLabel * mLbR_XkP
 
QLabel * mLbR_ExP
 
QLabel * mLbR_DcP
 
QLabel * mLbR_SxgP
 
QLabel * mLbR_AsinP
 
QLabel * mLbR_AcosP
 
QLabel * mLbR_AtanP
 
QLabel * mLbR_CbrtP
 
QLabel * mLbR_KacP
 
QLabel * mLbB_OnP
 
QLabel * mLbR_RpP
 
QLabel * mLbR_PrP
 
QLabel * mLbR_MsubP
 
QLabel * mLbR_PrcP
 
QLabel * mLbB_PiP
 
QLabel * mLbR_RanP
 
QLabel * mLbR_RndP
 
QLabel * mLbBbSx2P
 
QLabel * mLbRbXsnP
 
QLabel * mLbBbSxP
 
QLabel * mLbBbSxyP
 
QLabel * mLbRbYsn1P
 
QLabel * mLbBbNP
 
QLabel * mLbRbXsn1P
 
QPushButton * mInvP
 
QLabel * mLbR_NprP
 
QLabel * mLbR_ShiftP
 
QLabel * mLbR_NcrP
 
QLabel * mLbWgSciP
 
QLabel * mLbWgDegP
 
QLabel * mLbWgFixP
 
QLabel * mLbWgRadP
 
QLabel * mLbBbSdP
 
QLabel * mLbWgNormP
 
QLabel * mLbWgCompP
 
QLabel * mLbWgGraP
 
QLabel * mLbBackgroundP
 
QLabel * mLbBbLrP
 
QLineEdit * mLcdStrP
 
QLineEdit * mDisplayP
 
QLineEdit * mModesP
 
QLabel * mLbR_10xP
 
QLabel * mLbR_X1yP
 
QLabel * mLbRbDelP
 
QLabel * mLbBbDataP
 
QLabel * mLbWgModeP
 
QPushButton * mSumP
 
QLabel * mSeebassP
 
QToolButton * mCalcTypeP
 
QToolButton * mDatP
 
- 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 fx-85v.

Abgeleitet von der Klasse, die der Qt-Designer generiert hat.

Beschreibung der Konstruktoren und Destruktoren

◆ Fx85vMainDlg()

Fx85vMainDlg::Fx85vMainDlg ( 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

◆ ~Fx85vMainDlg()

Fx85vMainDlg::~Fx85vMainDlg ( )

Speichert vor dem Verlassen die Groessendaten des Dialogs in der Konfigurationsdatei.

Dokumentation der Elementfunktionen

◆ adjustSimpleSkin()

void Fx85vMainDlg::adjustSimpleSkin ( )
privatevirtual

Setzt die Farben der Buttons.

Die kleinen werden dunkelgrau, die grossen schwarz.

Implementiert CalcDlgBase.

◆ butBra()

void Fx85vMainDlg::butBra ( )
virtual

Slot-Funktion ist nur noetig, um in der Anzeige die Klammer erscheinen zu lassen.

Erneute Implementation von Fx85vMainBaseDlg.

◆ butEng()

void Fx85vMainDlg::butEng ( )
virtual

Schaltet die Anzeige in den Engineering-Modus bzw.

verschiebt das Komma um jeweils drei Stellen nach rechts.

Erneute Implementation von Fx85vMainBaseDlg.

◆ butEngBack()

void Fx85vMainDlg::butEngBack ( )
virtual

Schaltet die Anzeige in den Engineering-Modus bzw.

verschiebt das Komma um jeweils drei Stellen nach links.

Erneute Implementation von Fx85vMainBaseDlg.

◆ butEngBoth()

void Fx85vMainDlg::butEngBoth ( Util::Direction  dir)
private

Schaltet die Anzeige in den Engineering-Modus bzw.

verschiebt das Komma um jeweils drei Stellen nach rechts oder links.

◆ butExp()

void Fx85vMainDlg::butExp ( )
virtual

Entfernt das letzte Zeichen aus der Anzeige.

Wenn die Anzeige in Exponentialdarstellung ist, werden die Ziffern des Exponenten nach rechts geshifted bis er nur noch Nullen enthaelt, dann wird er ganz entfernt. Button EXP.

Erneute Implementation von Fx85vMainBaseDlg.

◆ butSum()

void Fx85vMainDlg::butSum ( )
virtual

M+-Taste.

Noetig, weil der Casio vor dem Summieren erst das Ergebnis einer offenen Rechnung ermittelt.

Erneute Implementation von Fx85vMainBaseDlg.

◆ getSourceCoords()

void Fx85vMainDlg::getSourceCoords ( char  c,
bool  isPointSucc,
bool  isExp,
int &  x,
int &  y,
int &  w,
int &  h 
)
private

Liefert zu einem Buchstaben die zugehoerigen Pixelkoordinaten in der Pixmap.

Die Pixmap hat folgenden Aufbau:

Zeile | 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Spalte
------|-------------------------------------------------------------------
0 | s m M K hyp SD LR DEG RAD GRA FIX SCI
1 | 0 1 2 3 4 5 6 7 8 9 - E _ [
2 | 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. -. E. _. °
3 | 0 1 2 3 4 5 6 7 8 9 -
Parameter
cgesuchter Character
isPointSuccgibt an, ob dem Zeichen ein Punkt folgt
isExpgibt an, ob das Zeichen im Exponentialbereich der Anzeige
Rückgabewerte
xx-Koordinate des Zeichens in der Pixmap
yy-Koordinate des Zeichens in der Pixmap
wBreite des Zeichens in der Pixmap
hHoehe des Zeichens in der Pixmap

◆ keyPressEvent()

void Fx85vMainDlg::keyPressEvent ( QKeyEvent *  evP)
private

Mapped alle Tastatureingaben auf Tastendruecke in der Dialogbox.

Parameter
evPZeiger auf das Qt-Tasten-Event

◆ keyReleaseEvent()

void Fx85vMainDlg::keyReleaseEvent ( QKeyEvent *  evP)
private

Mapped alle Tastatureingaben auf Tastendruecke in der Dialogbox.

Parameter
evPZeiger auf das Qt-Tasten-Event

◆ rowColToPix()

void Fx85vMainDlg::rowColToPix ( int  row,
int  col,
int &  x,
int &  y,
int &  w,
int &  h 
)
private

Liefert zu einer Zeilen-/Spalten-Position die zugehoerigen Pixelkoordinaten in der nicht skalierten Digits-Pixmap.

Parameter
rowZeile in der Tabelle
colSpalte in der Tabelle
Rückgabewerte
xx-Koordinate des Zeichens in der Pixmap
yy-Koordinate des Zeichens in der Pixmap
wBreite des Zeichens in der Pixmap
hHoehe des Zeichens in der Pixmap

◆ setDisplayFields()

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

Erneuert die LCD-Anzeige.

Da diese Prozedur nacb jedem Tastendruck aufgerufen wird, koennen hier auch die Timer gestartet werden. Das Argument isDoPerhapsNot wird nur vom TI-30 benoetigt im Rahmen seiner "Thinking"-Sequenz.

Implementiert CalcDlgBase.

◆ setLabelColors()

void Fx85vMainDlg::setLabelColors ( )
private

Geht alle Widgets durch und setzt die Farben der Labels.

Die Farben sind im Label-Namen kodiert: "mLbB_PiP" => Vodergrundfarbe schwarz, keine spezielle Hintergrundfarbe "mLbR_FctP" => Vodergrundfarbe rot, keine spezielle Hintergrundfarbe "mLbRbXaveP" => Vodergrundfarbe rot, Hintergrundfarbe blau "mLbBbXaveP" => Vodergrundfarbe schwarz, Hintergrundfarbe blau

◆ setLcd()

void Fx85vMainDlg::setLcd ( string  str)
private

Setzt den String str in die passenden Buchstaben des LCDs um.

Parameter
strauszugebender String

◆ switchOff()

void Fx85vMainDlg::switchOff ( )
private

Schaltet den Rechner im More-Realistic-Modus "aus", wenn der 7-Minuten-Timer abgelaufen ist.


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