22#ifndef CALC_DLG_BASE_H
23#define CALC_DLG_BASE_H
54typedef map<char, QButton*> ShortCutTabT;
55typedef ShortCutTabT::iterator ShortCutTabIT;
56typedef map<string, WgtData> WgtDataMapT;
57typedef WgtDataMapT::iterator WgtDataMapIT;
73 bool loadWavs(
string path, vector<QSound*>& qsPvec);
90 enum ButtonType { B_NO, B_ANY_MODE, B_DIGIT, B_ACTION, B_ON, B_PI, B_EE, B_ENG };
143 void butTypeBase(QWidget* dlgP, Qt::WFlags wflags);
151 void setError() {
mCalcP->getDisplayP ()->setError(); }
152 bool isError () {
return mCalcP->getDisplayP ()->
isError (); }
154 virtual void preExtractSym(
string sym) { sym = sym; };
155 virtual void adjustRealisticSkin() {};
156 virtual void adjustSimpleSkin() = 0;
157 virtual void adjustDebugSkin() = 0;
158 virtual void makeShortCutTab() = 0;
159 virtual void setDisplayFields(
bool isDoPerhapsNot =
false) = 0;
167 ShortCutTabT* getShortCutTabP() {
return &
mShortCutTab; }
Basisklassen fuer alle Taschenrechner (Modul base)
In dieser Klasse ist die Basisfunktionalitaet des Taschenrechner-Dialogs aller Taschenrechner impleme...
Definition: calc_dlg_base.h:70
bool mIsSoundLoaded
konnten Sounds geladen werden?
Definition: calc_dlg_base.h:127
QLabel * mSeebassBaseP
Namensfeld.
Definition: calc_dlg_base.h:116
double mYfact
Resize-Faktor in y-Richtung.
Definition: calc_dlg_base.h:105
QSize mOrgDlgSize
Originalgroesse des Rechners.
Definition: calc_dlg_base.h:102
void clearLcd()
Loescht das LCD.
Definition: calc_dlg_base.cpp:410
void updateDisplay(string inputStr="")
Erneuert die Members der Display-Klasse, die drei Edit-Felder des Dialogs und das LCD.
Definition: calc_dlg_base.cpp:849
void resizeAllWidgets(QDialog *mainDlgP)
Ermittelt aus der aktuellen Groesse und der Originalgroesse des Hauptdialogs mainDlgP Streckfaktoren ...
Definition: calc_dlg_base.cpp:458
clock_t mPressedClock
Clock, wenn Taste gedrueckt wurde.
Definition: calc_dlg_base.h:71
ButtonType mLastButOneType
Typ der vorletzten gedrueckten Taste.
Definition: calc_dlg_base.h:120
void butBack()
Entfernt das letzte Zeichen aus der Anzeige.
Definition: calc_dlg_base.cpp:929
void setSimpleSkin()
Entfernt alle Pixmaps und restauriert die Beschriftung der Buttons.
Definition: calc_dlg_base.cpp:256
void pasteText()
Kopiert den Textinhalt des Clipboards zeichenweise ins Display.
Definition: calc_dlg_base.cpp:1176
ShortCutTabT mShortCutTab
Liste aller Shortcuts.
Definition: calc_dlg_base.h:124
vector< QSound * > mPrsSounds
Liste aller Sounds fuer 'Taste druecken'.
Definition: calc_dlg_base.h:122
void hideOrShowAllLabels(bool isToHide)
Geht alle Widgets durch und versteckt oder zeigt alle Labels.
Definition: calc_dlg_base.cpp:230
QRect mOrgLcdRect
schmaler Streifen fuer die LCD-Ziffern
Definition: calc_dlg_base.h:101
string extractSym(QPushButton *senderP)
Extrahiert das Symbol aus dem Button-Namen, indem das fuehrende "m" und abschliessende "P" entfernt w...
Definition: calc_dlg_base.cpp:583
QLineEdit * mDisplayBaseP
"rohes" Ein-Ausgabefeld der Dialog-Box
Definition: calc_dlg_base.h:115
void butActionBase(string &sym, string &lastSymb)
Slot-Funktionen fuer die meisten Buttons.
Definition: calc_dlg_base.cpp:648
void butAnyModeBase(string &sym)
Funktion, die fuer die Bearbeitung aller Modus-Tasten aufgerufen wird.
Definition: calc_dlg_base.cpp:671
void playReleaseBase()
Spielt einen der Sounds im Vektor mRlsSounds beim Loslassen der Taste.
Definition: calc_dlg_base.cpp:1048
void initCalcDlgBase()
Initialisierung, die nach "Einschalten" (mButOnP) des Rechners durchgefuehrt wird.
Definition: calc_dlg_base.cpp:395
void rescalePixmap(QButton *bP, const QRect &orgWgtRect)
Kopiert die Hintergrund-Pixmap in einen Button und setzt Palette mit grauem Rand.
Definition: calc_dlg_base.cpp:556
void addToolTips()
Geht die Short-Cut-Map durch und versieht jeden Button darin mit dem Shortcut als Tooltip.
Definition: calc_dlg_base.cpp:310
bool mIsPixLoaded
konnten Rechner-Pixmaps geladen werden?
Definition: calc_dlg_base.h:126
void butTypeBase(QWidget *dlgP, Qt::WFlags wflags)
Fuehrt den Konfigurationsdialog aus.
Definition: calc_dlg_base.cpp:978
QDialog * mCalcDlgP
Zeiger auf den Dialog.
Definition: calc_dlg_base.h:93
void execKeyEvent(QKeyEvent *evP, QMouseEvent &me)
Wandelt Tastatur-Event in Button-Pressed-Event um.
Definition: calc_dlg_base.cpp:1076
bool loadWavs(string path, vector< QSound * > &qsPvec)
Laedt saemtliche in den Verzeichnissen wav/prs und wav/rls vorhandenen Dateien in Listen von QSound-O...
Definition: calc_dlg_base.cpp:138
int mDigitHeight
natuerliche Hoehe einer Ziffer im Display
Definition: calc_dlg_base.h:100
CalculatorBase * mCalcP
Zeiger auf den eigentlichen Rechner.
Definition: calc_dlg_base.h:94
string mDisplayStr
Eingabefeld des Taschenrechners.
Definition: calc_dlg_base.h:121
QPixmap mApplIconPixmap
Pixmap mit dem Application-Icon (links oben im Dialog)
Definition: calc_dlg_base.h:108
void makeWgtMap()
Speichert bei der Konstruktion des Taschenrechner-Hauptdialogs die Groessen und Positionen aller Widg...
Definition: calc_dlg_base.cpp:166
void setNewSize(QWidget *qwP)
Berechnet fuer das Widget qwP eine neue Position und Groesse abhaengig von der aktuellen Groesse des ...
Definition: calc_dlg_base.cpp:501
void updateDisplayAfterDigit(string inputStr="")
Erneuert die Members mModes und mSeven der Display-Klasse und das LCD entsprechend.
Definition: calc_dlg_base.cpp:799
QLineEdit * mModesBaseP
Modes-Ausgabefeld der Dialog-Box.
Definition: calc_dlg_base.h:114
int mDigitWidth
natuerliche Breite einer Ziffer im Display
Definition: calc_dlg_base.h:99
void showHint()
Bringt Message-Box auf den Bildschirm, wenn die Maus zum ersten Mal den Rechnerdialog betritt.
Definition: calc_dlg_base.cpp:433
QLineEdit * mLcdStrBaseP
formatiertes Ein-Ausgabefeld der Dialog-Box
Definition: calc_dlg_base.h:113
WgtDataMapT mOrgWgtMap
Originalgroessen und -texte aller Widgets des Dialogs.
Definition: calc_dlg_base.h:103
void boot(CalculatorBase *cbP, QDialog *dlgP, Qt::WFlags wflags)
Initialisiert einen Taschenrechner.
Definition: calc_dlg_base.cpp:75
void copyBaseDisplayFields()
Holt die Display-Felder aus der zum Taschenrechner gehoerenden Display-Klasse.
Definition: calc_dlg_base.cpp:627
vector< QSound * > mRlsSounds
Liste aller Sounds fuer 'Taste loslassen'.
Definition: calc_dlg_base.h:123
void butSignBase()
Waehrend der Eingabe einer Zahl muss das Vorzeichen gewechselt werden, ohne die Eingabe zu unterbrech...
Definition: calc_dlg_base.cpp:878
void butDigitBase(string &sym)
Wird von allen Zifferntasten aufgerufen.
Definition: calc_dlg_base.cpp:694
QPixmap mDigitsPixmap
Pixmap mit allen Ziffern.
Definition: calc_dlg_base.h:110
int mMaxDigitNum
maximale Anzahl von Ziffern bei der Eingabe
Definition: calc_dlg_base.h:128
QRect mLcdRect
schmaler Streifen fuer die LCD-Ziffern
Definition: calc_dlg_base.h:112
void setResetAlwaysOnTop(bool alwaysOnTop, Qt::WFlags wflags, bool showIt)
Setzt das Dialog-Flag Qt::WStyle_StaysOnTop des Rechnerdialogs, wenn alwaysOnTop true; andernfalls wi...
Definition: calc_dlg_base.cpp:340
void setRealisticSkin()
Versteckt diverse Felder und stellt die Pixmaps auf dem Hintergrund und auf den Buttons dar.
Definition: calc_dlg_base.cpp:213
double mXfact
Resize-Faktor in x-Richtung.
Definition: calc_dlg_base.h:104
void butDigitAction(string &sym)
Die urspruengliche Ziffer wurde wegen einer Shift-Operation auf ein anderes Symbol umgemappt.
Definition: calc_dlg_base.cpp:764
void butDigitDigit(string &sym)
Die Ziffer ist wirklich eine Ziffer (nicht etwa auf ein anderes Symbol umgemappt).
Definition: calc_dlg_base.cpp:724
int mDefaultWidth
Default-Breite des Rechners (falls keine Pixmap)
Definition: calc_dlg_base.h:97
void removeToolTips()
Geht die Short-Cut-Map durch und loescht alle Tooltips der Buttons.
Definition: calc_dlg_base.cpp:376
bool mIsOff
Rechner ein- oder ausgeschaltet.
Definition: calc_dlg_base.h:125
string mapDlgBase(string &sym) const
Fuehrt grundlegendes Mapping durch von den Symbolen, die zwar in der Konsolenumgebung verwendet werde...
Definition: calc_dlg_base.cpp:604
QPixmap mBackgroundPixmap
Pixmap mit dem Hintergrundbild.
Definition: calc_dlg_base.h:109
void setDebugSkin()
Wie RealisticSkin, setzt aber die Beschriftung der Buttons und macht alle Felder sichtbar.
Definition: calc_dlg_base.cpp:296
void playPressBase()
Spielt einen der Sounds im Vektor mPrsSounds beim Druecken der Taste.
Definition: calc_dlg_base.cpp:1025
QPixmap mScaledDigitsPixmap
Pixmap mit allen Ziffern, skaliert.
Definition: calc_dlg_base.h:111
ButtonType mLastType
Typ der zuletzt gedrueckten Taste.
Definition: calc_dlg_base.h:119
int mDefaultHeight
Default-Hoehe des Rechners (falls keine Pixmap)
Definition: calc_dlg_base.h:98
Basisklasse aller Taschenrechner.
Definition: calculator.h:245
bool isError()
Prueft, ob bei einer Berechnung ein Fehler aufgetreten ist.
Definition: calculator.cpp:176
Struktur zur Aufnahme der Groesse und des Originaltextes aller Widgets auf dem Dialog.
Definition: calc_dlg_base.h:47