Almetare
1.15
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
|
Eigene Dialogklasse des fx-85v. Mehr ...
#include <fx85v_main_dlg.h>
Öffentliche Slots | |
void | timeoutOff () |
7-Minuten Timer zum "Abschalten" des Rechners. | |
![]() |
Ö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 () |
![]() | |
Fx85vMainBaseDlg (QWidget *parent=0, const char *name=0, bool modal=FALSE, WFlags fl=0) | |
Geschützte Methoden | |
void | resizeEvent (QResizeEvent *) |
void | enterEvent (QEvent *) |
![]() | |
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 ... | |
![]() | |
CalculatorBase * | getCalcP () 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. | |
ComputerFx85v * | mCompP |
Zeiger auf den Computer des Rechners. | |
DisplayFx85v * | mDsplP |
Zeiger auf das Display des Rechners. | |
QTimer | mTimOff |
8-Minuten-Timer fuer automatisches Abschalten | |
bool | mIsModeMode |
gibt an, ob Mode-Taste gedrueckt | |
![]() | |
QDialog * | mCalcDlgP |
Zeiger auf den Dialog. | |
CalculatorBase * | mCalcP |
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 | |
![]() | |
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 |
![]() | |
enum | ButtonType { B_NO, B_ANY_MODE, B_DIGIT, B_ACTION, B_ON, B_PI, B_EE, B_ENG } |
Eigene Dialogklasse des fx-85v.
Abgeleitet von der Klasse, die der Qt-Designer generiert hat.
Fx85vMainDlg::Fx85vMainDlg | ( | QWidget * | parentP = 0 , |
const char * | name = 0 , |
||
bool | modal = FALSE , |
||
WFlags | fl = 0 |
||
) |
Konstruktion des Dialogs.
Initialisierung der Members.
parentP | Zeiger auf Vaterdialog |
name | Name des Dialogs |
modal | Flag, ob Dialog modal oder nicht |
fl | diverse Qt-Dialog-Flags |
Fx85vMainDlg::~Fx85vMainDlg | ( | ) |
Speichert vor dem Verlassen die Groessendaten des Dialogs in der Konfigurationsdatei.
|
privatevirtual |
Setzt die Farben der Buttons.
Die kleinen werden dunkelgrau, die grossen schwarz.
Implementiert CalcDlgBase.
|
virtual |
Slot-Funktion ist nur noetig, um in der Anzeige die Klammer erscheinen zu lassen.
Erneute Implementation von Fx85vMainBaseDlg.
|
virtual |
Schaltet die Anzeige in den Engineering-Modus bzw.
verschiebt das Komma um jeweils drei Stellen nach rechts.
Erneute Implementation von Fx85vMainBaseDlg.
|
virtual |
Schaltet die Anzeige in den Engineering-Modus bzw.
verschiebt das Komma um jeweils drei Stellen nach links.
Erneute Implementation von Fx85vMainBaseDlg.
|
private |
Schaltet die Anzeige in den Engineering-Modus bzw.
verschiebt das Komma um jeweils drei Stellen nach rechts oder links.
|
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.
|
virtual |
M+-Taste.
Noetig, weil der Casio vor dem Summieren erst das Ergebnis einer offenen Rechnung ermittelt.
Erneute Implementation von Fx85vMainBaseDlg.
|
private |
Liefert zu einem Buchstaben die zugehoerigen Pixelkoordinaten in der Pixmap.
Die Pixmap hat folgenden Aufbau:
c | gesuchter Character |
isPointSucc | gibt an, ob dem Zeichen ein Punkt folgt |
isExp | gibt an, ob das Zeichen im Exponentialbereich der Anzeige |
x | x-Koordinate des Zeichens in der Pixmap |
y | y-Koordinate des Zeichens in der Pixmap |
w | Breite des Zeichens in der Pixmap |
h | Hoehe des Zeichens in der Pixmap |
|
private |
Mapped alle Tastatureingaben auf Tastendruecke in der Dialogbox.
evP | Zeiger auf das Qt-Tasten-Event |
|
private |
Mapped alle Tastatureingaben auf Tastendruecke in der Dialogbox.
evP | Zeiger auf das Qt-Tasten-Event |
|
private |
Liefert zu einer Zeilen-/Spalten-Position die zugehoerigen Pixelkoordinaten in der nicht skalierten Digits-Pixmap.
row | Zeile in der Tabelle |
col | Spalte in der Tabelle |
x | x-Koordinate des Zeichens in der Pixmap |
y | y-Koordinate des Zeichens in der Pixmap |
w | Breite des Zeichens in der Pixmap |
h | Hoehe des Zeichens in der Pixmap |
|
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.
|
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
|
private |
Setzt den String str in die passenden Buchstaben des LCDs um.
str | auszugebender String |
|
private |
Schaltet den Rechner im More-Realistic-Modus "aus", wenn der 7-Minuten-Timer abgelaufen ist.