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

Eigene Dialogklasse des fx-3600P. Mehr ...

#include <fx3600p_main_dlg.h>

Klassendiagramm für Fx3600pMainDlg:
Fx3600pMainBaseDlg CalcDlgBase

Öffentliche Slots

void timeoutOff ()
 "Abschalten" des Rechners nach Ablauf des 6-Minuten Timers.
 
void timeoutBlink ()
 0,4-Sekunden Timer fuers Blinken von P1P2.
 
- Ã–ffentliche Slots geerbt von Fx3600pMainBaseDlg

Öffentliche Methoden

 Fx3600pMainDlg (QWidget *parent=0, const char *name=0, bool modal=FALSE, WFlags f=0)
 Konstruktion des Dialogs. Mehr ...
 
 ~Fx3600pMainDlg ()
 Speichert vor dem Verlassen die Groessendaten des Dialogs in der Konfigurationsdatei. Mehr ...
 
void butPon ()
 Slot für Schiebeschalter (ein/aus).
 
void butPrg ()
 Fuehrt den Programmierdialog aus.
 
void butAc ()
 Button AC loescht alles bis auf die Speicher.
 
void butDigit ()
 Slot-Funktion fuer die Zifferntasten.
 
void butAbc ()
 Taste zum Bruchrechnen.
 
void butExp ()
 Button EXP.
 
void butAction ()
 Slot-Funktionen fuer die meisten Buttons.
 
void butEng ()
 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 butType ()
 
void playPress ()
 
void playRelease ()
 
- Ã–ffentliche Methoden geerbt von Fx3600pMainBaseDlg
 Fx3600pMainBaseDlg (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 Fx3600pMainBaseDlg
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, bool isMode, 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 6-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.
 
string replaceSpaceByCr (string &src)
 
bool isPrgRunning ()
 
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 ...
 
void preExtractSym (string sym)
 Wird von extractSym() aufgerufen, erlaubt Vorverarbeitung. Mehr ...
 
void adjustRealisticSkin ()
 Veraendert die Tool-Buttons.
 
void clearLcdButOn ()
 Loescht die Anzeige bis auf das "ON"-Zeichen.
 
- 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 ()
 

Private Attribute

CalculatorFx3600p mCalc
 Inkorporierter Konsolenrechner.
 
ComputerFx3600pmCompP
 Zeiger auf den Computer des Rechners.
 
DisplayFx3600pmDsplP
 Zeiger auf das Display des Rechners.
 
QTimer mTimOff
 6-Minuten-Timer fuer automatisches Abschalten
 
QTimer mTimBlink
 0,4-Sek.-Timer fuers Blinken von "P1 P2"
 
bool mIsModeMode
 gibt an, ob Mode-Taste gedrueckt
 
bool mIsHardOff
 der Rechner wurde mit dem Ausschalter abgeschaltet
 
QColor mColLgtbrown
 Farbe um das Display herum.
 
QColor mColDrkbrown
 dunkleres Braun f. Mode-Labels
 
QColor mColLgtblue
 helleres Blau fuer LR- und SD-Label
 
QColor mColDrkblue
 dunkleres Blau fuer Typbezeichnung
 
QColor mColOrngInv
 Orange fuer INV-Button.
 
QColor mColOrngLbl
 Orange fuer Button-Label.
 
QColor mColBeige
 Beige fuer die kleinen Buttons.
 
QColor mColOrngAc
 Textfarbe "C" und "AC".
 
QSound * mOnSoundP
 Geraeusch beim Einschalten.
 
QSound * mOffSoundP
 Geraeusch beim Ausschalten.
 
- 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 Fx3600pMainBaseDlg
QLabel * mLbR_X1yP
 
QLabel * mLbR_PrP
 
QLabel * mLbR_RpP
 
QLabel * mLbR_HltP
 
QLabel * mLbB_EntP
 
QLabel * mLbB_OnP
 
QLabel * mSeebassP
 
QLabel * mLbWgLrnP
 
QLabel * mLbWgGraP
 
QLabel * mLbWgModeP
 
QLabel * mLbBbSdP
 
QLabel * mLbWgLrnP_2
 
QLabel * mLbWgNormP
 
QLabel * mLbWgRadP
 
QLabel * mLbWgSciP
 
QLabel * mLbBbLrP
 
QLabel * mLbWgDegP
 
QLabel * mLbWgFixP
 
QLabel * mLbWgIntP
 
QLineEdit * mDisplayP
 
QLineEdit * mLcdStrP
 
QLineEdit * mModesP
 
QLabel * mLbRbRP
 
QLabel * mLbR_KacP
 
QLabel * mLbR_xyP
 
QLabel * mLbR_RndP
 
QLabel * mLbR_RanP
 
QLabel * mLbB_PiP
 
QLabel * mLbR_PrcP
 
QLabel * mLbBbDataP
 
QLabel * mLbRbDelP
 
QLabel * mLbRbAP
 
QLabel * mLbR_Xgt0P
 
QLabel * mLbRbBP
 
QLabel * mLbR_RtnP
 
QLabel * mLbRbYaveP
 
QLabel * mLbRbXaveP
 
QLabel * mLbRbYsnP
 
QLabel * mLbRbXsnP
 
QLabel * mLbBbSy2P
 
QLabel * mLbBbSx2P
 
QLabel * mLbBbSxP
 
QLabel * mLbBbSyP
 
QLabel * mLbR_XleMP
 
QLabel * mLbBbSxyP
 
QLabel * mLbRbYsn1P
 
QLabel * mLbBbNP
 
QLabel * mLbRbXsn1P
 
QLabel * mLbR_pclP
 
QLabel * mLbR_1xP
 
QLabel * mLbR_EngBackP
 
QLabel * mLbR_10xP
 
QLabel * mLbR_ExP
 
QLabel * mLbR_X2P
 
QLabel * mLbR_SxgP
 
QLabel * mLbR_AsinP
 
QLabel * mLbR_AcosP
 
QLabel * mLbR_AtanP
 
QLabel * mLbR_SqrtP
 
QLabel * mLbR_FctP
 
QLabel * mLbR_XyP
 
QLabel * mLbR_XkP
 
QLabel * mLbR_MinP
 
QLabel * mLbR_MsubP
 
QLabel * mLbBbXdYdP
 
QLabel * mLbBbYP
 
QLabel * mLbRbXP
 
QLabel * mLbBackgroundP
 
QPushButton * mModeP
 
QPushButton * mLnP
 
QPushButton * mLogP
 
QPushButton * mInvP
 
QPushButton * mEngP
 
QPushButton * mAbcP
 
QPushButton * mP1P
 
QPushButton * mTanP
 
QPushButton * mSignP
 
QPushButton * mSinP
 
QPushButton * mIsxgP
 
QPushButton * mCosP
 
QPushButton * mHypP
 
QPushButton * mKoutP
 
QPushButton * mKinP
 
QPushButton * mBraP
 
QPushButton * mRclP
 
QPushButton * mKetP
 
QPushButton * m8P
 
QPushButton * m9P
 
QPushButton * m7P
 
QPushButton * mCP
 
QPushButton * mAcP
 
QPushButton * m5P
 
QPushButton * mMulP
 
QPushButton * m6P
 
QPushButton * mDivP
 
QPushButton * m4P
 
QPushButton * mAddP
 
QPushButton * m2P
 
QPushButton * m1P
 
QPushButton * m3P
 
QPushButton * mSubP
 
QPushButton * mExpP
 
QPushButton * m0P
 
QPushButton * mPointP
 
QPushButton * mEquP
 
QPushButton * mRunP
 
QLabel * mLbR_P2P
 
QToolButton * mOffP
 
QPushButton * mSumP
 
QToolButton * mPrgP
 
QToolButton * mCalcTypeP
 
- 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-3600P.

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

Beschreibung der Konstruktoren und Destruktoren

◆ Fx3600pMainDlg()

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

◆ ~Fx3600pMainDlg()

Fx3600pMainDlg::~Fx3600pMainDlg ( )

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

Dokumentation der Elementfunktionen

◆ adjustSimpleSkin()

void Fx3600pMainDlg::adjustSimpleSkin ( )
privatevirtual

Setzt die Farben der Buttons.

Die kleinen werden beige, die grossen schwarz.

Implementiert CalcDlgBase.

◆ butBra()

void Fx3600pMainDlg::butBra ( )
virtual

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

Erneute Implementation von Fx3600pMainBaseDlg.

◆ butEng()

void Fx3600pMainDlg::butEng ( )
virtual

Schaltet die Anzeige in den Engineering-Modus bzw.

verschiebt das Komma um jeweils drei Stellen nach rechts.

Erneute Implementation von Fx3600pMainBaseDlg.

◆ butEngBoth()

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

Schaltet die Anzeige in den Engineering-Modus bzw.

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

◆ butSum()

void Fx3600pMainDlg::butSum ( )
virtual

M+-Taste.

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

Erneute Implementation von Fx3600pMainBaseDlg.

◆ getSourceCoords()

void Fx3600pMainDlg::getSourceCoords ( char  c,
bool  isPointSucc,
bool  isExp,
bool  isMode,
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 | On INV M K LRN Idx LR SD DEG RAD GRA ENT P1 P2
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
isModegibt an, ob es sich um ein Mode-Zeichen handelt
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 Fx3600pMainDlg::keyPressEvent ( QKeyEvent *  evP)
private

Mapped alle Tastatureingaben auf Tastendruecke in der Dialogbox.

Parameter
evPZeiger auf das Qt-Tasten-Event

◆ keyReleaseEvent()

void Fx3600pMainDlg::keyReleaseEvent ( QKeyEvent *  evP)
private

Mapped alle Tastatureingaben auf Tastendruecke in der Dialogbox.

Parameter
evPZeiger auf das Qt-Tasten-Event

◆ preExtractSym()

void Fx3600pMainDlg::preExtractSym ( string  sym)
privatevirtual

Wird von extractSym() aufgerufen, erlaubt Vorverarbeitung.

Die Funktion wird benoetigt, um das Flackern der Anzeige bei jedem Tastendruck zu erzeugen. Ausserdem wird das Display immer verdunkelt, wenn ein Programm ausgefuehrt wird.

Parameter
symSymbol auf der Taste (ungempapped)

Erneute Implementation von CalcDlgBase.

◆ rowColToPix()

void Fx3600pMainDlg::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 Fx3600pMainDlg::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 Fx3600pMainDlg::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 Die Kodierung stammt vom fx-85v, hier ist es etwas anders: Rot ist orange, grau ist braun

◆ setLcd()

void Fx3600pMainDlg::setLcd ( string  str)
private

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

Parameter
strauszugebender String

◆ switchOff()

void Fx3600pMainDlg::switchOff ( )
private

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


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