Almetare
1.15
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
|
Eigene Dialogklasse des fx-3600P. Mehr ...
#include <fx3600p_main_dlg.h>
Öffentliche Slots | |
void | timeoutOff () |
"Abschalten" des Rechners nach Ablauf des 6-Minuten Timers. | |
void | timeoutBlink () |
0,4-Sekunden Timer fuers Blinken von P1P2. | |
![]() |
Ö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 () |
![]() | |
Fx3600pMainBaseDlg (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, 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. | |
![]() | |
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 () |
Private Attribute | |
CalculatorFx3600p | mCalc |
Inkorporierter Konsolenrechner. | |
ComputerFx3600p * | mCompP |
Zeiger auf den Computer des Rechners. | |
DisplayFx3600p * | mDsplP |
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. | |
![]() | |
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 | |
![]() | |
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 |
![]() | |
enum | ButtonType { B_NO, B_ANY_MODE, B_DIGIT, B_ACTION, B_ON, B_PI, B_EE, B_ENG } |
Eigene Dialogklasse des fx-3600P.
Abgeleitet von der Klasse, die der Qt-Designer generiert hat.
Fx3600pMainDlg::Fx3600pMainDlg | ( | 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 |
Fx3600pMainDlg::~Fx3600pMainDlg | ( | ) |
Speichert vor dem Verlassen die Groessendaten des Dialogs in der Konfigurationsdatei.
|
privatevirtual |
Setzt die Farben der Buttons.
Die kleinen werden beige, die grossen schwarz.
Implementiert CalcDlgBase.
|
virtual |
Slot-Funktion ist nur noetig, um in der Anzeige die Klammer erscheinen zu lassen.
Erneute Implementation von Fx3600pMainBaseDlg.
|
virtual |
Schaltet die Anzeige in den Engineering-Modus bzw.
verschiebt das Komma um jeweils drei Stellen nach rechts.
Erneute Implementation von Fx3600pMainBaseDlg.
|
private |
Schaltet die Anzeige in den Engineering-Modus bzw.
verschiebt das Komma um jeweils drei Stellen nach rechts oder links.
|
virtual |
M+-Taste.
Noetig, weil der Casio vor dem Summieren erst das Ergebnis einer offenen Rechnung ermittelt.
Erneute Implementation von Fx3600pMainBaseDlg.
|
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 |
isMode | gibt an, ob es sich um ein Mode-Zeichen handelt |
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 |
|
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.
sym | Symbol auf der Taste (ungempapped) |
Erneute Implementation von CalcDlgBase.
|
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 Die Kodierung stammt vom fx-85v, hier ist es etwas anders: Rot ist orange, grau ist braun
|
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 6-Minuten-Timer abgelaufen ist.