Almetare
1.15
Alle meine Taschenrechner - Eine C++-Bibliothek zur Entwicklung von Taschenrechnern
|
Eigene Dialogklasse des TI-30. Mehr ...
#include <ti30_main_dlg.h>
Öffentliche Slots | |
void | timeout8min () |
8-Minuten Timer zum "Abschalten" des Rechners. | |
void | timeout45s () |
45-Sekunden Timer fuer Einschalten des "Stromspar"-Modus'. | |
void | timeout150ms () |
150-Millisekunden-Timer fuer den laufenden Punkt im "Stromspar"-Modus. | |
void | timeoutThinking () |
Erzeugt eine konkrete Sequenz von Zeichen, die der TI-30 beim "Nachdenken" ausgibt. Mehr ... | |
![]() |
Öffentliche Methoden | |
Ti30mainDlg (QWidget *parent=0, const char *name=0, bool modal=FALSE, WFlags f=0) | |
Konstruktion des Dialogs. Mehr ... | |
void | butDigit () |
Slot-Funktion fuer die Zifferntasten. | |
void | butEe () |
Slot-Funktion fuer die Exponentialtaste. Mehr ... | |
void | butAction () |
Slot-Funktion fuer die meisten Buttons. | |
void | butOff () |
Slot-Funktion fuer die Off-Taste. Mehr ... | |
void | butOn () |
Slot-Funktion fuer die On-Taste. Mehr ... | |
void | butDrg () |
Slot-Funktion fuer Winkelmodi DEG, RAD, GRA. | |
void | butInv () |
Slot-Funktion fuer die INV-Taste. | |
void | butSign () |
void | butType () |
void | playPress () |
Slot-Funktion "Taste gedrueckt". | |
void | playRelease () |
Slot-Funktion "Taste losgelassen". | |
![]() | |
Ti30mainBaseDlg (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 | makeShortCutTab () |
Funktion erzeugt die Tabelle mit allen Shortcuts. | |
void | adjustSimpleSkin () |
Setzt fuer einige Buttons rote und blaue Farbe. | |
void | adjustDebugSkin () |
void | setDisplayFields (bool isDoPerhapsNot=0) |
Erneuert die LED-Anzeige. Mehr ... | |
void | setLed (string str) |
Setzt den String str in die passenden Buchstaben der Leuchtdiodenanzeige um. Mehr ... | |
void | getSourceCoords (char c, bool isPointSucc, int &row, int &col) |
Liefert zu einem Buchstaben die zugehoerige Zeile und Spalte in der Pixmap. Mehr ... | |
void | showAnyThinkSequence (string sym, string lastSym) |
Erzeugt (angenaehert) eine der Sequenzen von Zeichen, die der TI-30 ausgibt, wenn er ueber schwierige Aufgaben (Funktionen) "nachdenkt". Mehr ... | |
void | showEquThinkSequence (string lastSym) |
Zeigt spezielle "Thinking"-Sequenz, wenn '=' gedrueckt wurde. Mehr ... | |
void | switchOff () |
Schaltet Rechner aus. | |
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 ... | |
![]() | |
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 | |
CalculatorTi30 | mCalc |
der integrierte Konsolen-Calculator | |
ComputerTi30 * | mCompP |
Zeiger auf den Computer. | |
DisplayTi30 * | mDsplP |
Zeiger auf das Display. | |
QTimer | mTim45s |
QTimer | mTim150ms |
QTimer | mTim8min |
QTimer | mTimThinking |
diverse Timer | |
string | mIdleStr |
String zur Darstellung der laufenden Punkte. | |
string | mThinkStr |
String zur Darstellung des "Nachdenkens". | |
![]() | |
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 * | mInvP |
QPushButton * | mConstP |
QPushButton * | mSinP |
QPushButton * | mSqrP |
QPushButton * | mEeP |
QPushButton * | mSqrtP |
QPushButton * | mLogP |
QPushButton * | mCosP |
QPushButton * | mOffP |
QPushButton * | mTanP |
QPushButton * | mLnP |
QPushButton * | mDrgP |
QPushButton * | mPowP |
QPushButton * | mDivP |
QPushButton * | mKetP |
QPushButton * | mPiP |
QPushButton * | m9P |
QPushButton * | mPrcP |
QPushButton * | m6P |
QPushButton * | mBraP |
QPushButton * | mAddP |
QPushButton * | mSubP |
QPushButton * | mSumP |
QPushButton * | m5P |
QPushButton * | mStoP |
QPushButton * | m8P |
QPushButton * | mMulP |
QPushButton * | m4P |
QPushButton * | mRclP |
QPushButton * | m1P |
QPushButton * | m2P |
QPushButton * | m7P |
QPushButton * | m3P |
QLabel * | mSeebassP |
QPushButton * | mRcpP |
QPushButton * | mOnP |
QToolButton * | mCalcTypeP |
QLineEdit * | mDisplayP |
QLineEdit * | mModesP |
QLineEdit * | mLcdStrP |
QPushButton * | mPointP |
QPushButton * | mExcP |
QPushButton * | m0P |
QPushButton * | mEquP |
QPushButton * | mSignP |
![]() | |
enum | ButtonType { B_NO, B_ANY_MODE, B_DIGIT, B_ACTION, B_ON, B_PI, B_EE, B_ENG } |
Eigene Dialogklasse des TI-30.
Ti30mainDlg::Ti30mainDlg | ( | 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 |
|
virtual |
Slot-Funktion fuer die Exponentialtaste.
mCompP->getIsInv() &&
Erneute Implementation von Ti30mainBaseDlg.
|
virtual |
Slot-Funktion fuer die Off-Taste.
Wenn Button "OFF" zum ersten Mal gedrückt wird, wird das Diplay geloescht. Beim zweiten Mal wird der Taschenrechner beendet.
Erneute Implementation von Ti30mainBaseDlg.
|
virtual |
Slot-Funktion fuer die On-Taste.
Wenn Button "ON" zum ersten Mal gedrueckt wird, wird das Display geloescht. Beim zweiten Mal werden die Stacks initialisiert.
Erneute Implementation von Ti30mainBaseDlg.
|
private |
Liefert zu einem Buchstaben die zugehoerige Zeile und Spalte in der Pixmap.
Die Pixmap hat folgenden Aufbau:
c | gesuchter Character |
isPointSucc | gibt an, ob dem Zeichen ein Punkt folgt |
row | gefundene Zeilennummer in der Pixmap |
col | gefundene Spaltennummer 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 |
Erneuert die LED-Anzeige.
Da diese Prozedur nach jedem Tastendruck aufgerufen wird, koennen hier auch die Timer gestartet werden. Besonderheit: Bei der realistischen Darstellung soll der TI-30 die "Thinking-Sequenz" zeigen. Um zu verhindern, dass das korrekte Ergebnis schon kurz aufblitzt [ausgeloest durch den Aufruf in butActionBase()] bevor die Sequenz durchgelaufen ist, muss es in diesem Fall durch Setzen des Flags isDoPerhapsNot kurz deaktiviert werden. setDisplayFields() wird dann abschliessend vom Timer aufgerufen.
isDoPerhapsNot | wenn true und MORE_REALISTIC, wird die Funktion sofort verlassen |
Implementiert CalcDlgBase.
|
private |
Setzt den String str in die passenden Buchstaben der Leuchtdiodenanzeige um.
str | String, der dargestellt werden soll. |
|
private |
|
private |
Zeigt spezielle "Thinking"-Sequenz, wenn '=' gedrueckt wurde.
lastSym | Symbol, das vor dem '=' eingegeben wurde. |
|
slot |
Erzeugt eine konkrete Sequenz von Zeichen, die der TI-30 beim "Nachdenken" ausgibt.