📄 qcalc.cpp
字号:
case Q_EXIT_SIG: { me->updateState("negated2-EXIT"); return (QSTATE)0; } case OPER_SIG: { if (((QCalcEvt *)e)->keyId == KEY_MINUS) { ; // explicitly ignore return (QSTATE)0; // event handled } break; } case CE_SIG: { Q_TRAN(&QCalc::opEntered); return (QSTATE)0; } case DIGIT_0_SIG: { Q_TRAN(&QCalc::zero2); return (QSTATE)0; } case DIGIT_1_9_SIG: { me->insert(((QCalcEvt *)e)->keyId); Q_TRAN(&QCalc::int2); return (QSTATE)0; } case POINT_SIG: { me->insert(((QCalcEvt *)e)->keyId); Q_TRAN(&QCalc::frac2); return (QSTATE)0; } } return (QSTATE)&QCalc::on;}//............................................................................QSTATE QCalc::operand1(QCalc *me, QEvent const *e) { switch (e->sig) { case Q_ENTRY_SIG: { me->updateState("operand1-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { me->updateState("operand1-EXIT"); return (QSTATE)0; } case CE_SIG: { me->clear(); Q_TRAN(&QCalc::begin); return (QSTATE)0; } case OPER_SIG: { me->operand1_ = strtod(me->display_, (char **)0); me->opKey_ = ((QCalcEvt *)e)->keyId; Q_TRAN(&QCalc::opEntered); return (QSTATE)0; } } return (QSTATE)&QCalc::on;}//............................................................................QSTATE QCalc::zero1(QCalc *me, QEvent const *e) { switch (e->sig) { case Q_ENTRY_SIG: { me->updateState("zero1-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { me->updateState("zero1-EXIT"); return (QSTATE)0; } case DIGIT_0_SIG: { ; // explicitly ignore return (QSTATE)0; } case DIGIT_1_9_SIG: { me->insert(((QCalcEvt *)e)->keyId); Q_TRAN(&QCalc::int1); return (QSTATE)0; } case POINT_SIG: { me->insert(((QCalcEvt *)e)->keyId); Q_TRAN(&QCalc::frac1); return (QSTATE)0; } } return (QSTATE)&QCalc::on;}//............................................................................QSTATE QCalc::int1(QCalc *me, QEvent const *e) { switch (e->sig) { case Q_ENTRY_SIG: { me->updateState("int1-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { me->updateState("int1-EXIT"); return (QSTATE)0; } case DIGIT_0_SIG: // intentionally fall through case DIGIT_1_9_SIG: { me->insert(((QCalcEvt *)e)->keyId); return (QSTATE)0; } case POINT_SIG: { me->insert(((QCalcEvt *)e)->keyId); Q_TRAN(&QCalc::frac1); return (QSTATE)0; } } return (QSTATE)&QCalc::operand1;}//............................................................................QSTATE QCalc::frac1(QCalc *me, QEvent const *e) { switch (e->sig) { case Q_ENTRY_SIG: { me->updateState("frac1-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { me->updateState("frac1-EXIT"); return (QSTATE)0; } case DIGIT_0_SIG: // intentionally fall through case DIGIT_1_9_SIG: { me->insert(((QCalcEvt *)e)->keyId); return (QSTATE)0; } case POINT_SIG: { ; // explicitly ignore return (QSTATE)0; } } return (QSTATE)&QCalc::operand1;}//............................................................................QSTATE QCalc::opEntered(QCalc *me, QEvent const *e) { switch (e->sig) { case Q_ENTRY_SIG: { me->updateState("opEntered-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { me->updateState("opEntered-EXIT"); return (QSTATE)0; } case OPER_SIG: { if (((QCalcEvt *)e)->keyId == KEY_MINUS) { me->clear(); Q_TRAN(&QCalc::negated2); return (QSTATE)0; // event handled } break; } case DIGIT_0_SIG: { me->clear(); Q_TRAN(&QCalc::zero2); return (QSTATE)0; } case DIGIT_1_9_SIG: { me->clear(); me->insert(((QCalcEvt *)e)->keyId); Q_TRAN(&QCalc::int2); return (QSTATE)0; } case POINT_SIG: { me->clear(); me->insert((int)'0'); me->insert((int)'.'); Q_TRAN(&QCalc::frac2); return (QSTATE)0; } } return (QSTATE)&QCalc::on;}//............................................................................QSTATE QCalc::operand2(QCalc *me, QEvent const *e) { switch (e->sig) { case Q_ENTRY_SIG: { me->updateState("operand2-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { me->updateState("operand2-EXIT"); return (QSTATE)0; } case CE_SIG: { me->clear(); Q_TRAN(&QCalc::opEntered); return (QSTATE)0; } case OPER_SIG: { me->operand2_ = strtod(me->display_, (char **)0); if (me->eval()) { me->operand1_ = strtod(me->display_, (char **)0); me->opKey_ = ((QCalcEvt *)e)->keyId; Q_TRAN(&QCalc::opEntered); } else { Q_TRAN(&QCalc::error); } return (QSTATE)0; } case EQUALS_SIG: { me->operand2_ = strtod(me->display_, (char **)0); if (me->eval()) { Q_TRAN(&QCalc::result); } else { Q_TRAN(&QCalc::error); } return (QSTATE)0; } } return (QSTATE)&QCalc::on;}//............................................................................QSTATE QCalc::zero2(QCalc *me, QEvent const *e) { switch (e->sig) { case Q_ENTRY_SIG: { me->updateState("zero2-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { me->updateState("zero2-EXIT"); return (QSTATE)0; } case DIGIT_0_SIG: { ; // explicitly ignore return (QSTATE)0; } case DIGIT_1_9_SIG: { me->insert(((QCalcEvt *)e)->keyId); Q_TRAN(&QCalc::int2); return (QSTATE)0; } case POINT_SIG: { me->insert(((QCalcEvt *)e)->keyId); Q_TRAN(&QCalc::frac2); return (QSTATE)0; } } return (QSTATE)&QCalc::operand2;}//............................................................................QSTATE QCalc::int2(QCalc *me, QEvent const *e) { switch (e->sig) { case Q_ENTRY_SIG: { me->updateState("int2-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { me->updateState("int2-EXIT"); return (QSTATE)0; } case DIGIT_0_SIG: // intentionally fall through case DIGIT_1_9_SIG: { me->insert(((QCalcEvt *)e)->keyId); return (QSTATE)0; } case POINT_SIG: { me->insert(((QCalcEvt *)e)->keyId); Q_TRAN(&QCalc::frac2); return (QSTATE)0; } } return (QSTATE)&QCalc::operand2;}//............................................................................QSTATE QCalc::frac2(QCalc *me, QEvent const *e) { switch (e->sig) { case Q_ENTRY_SIG: { me->updateState("frac2-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { me->updateState("frac2-EXIT"); return (QSTATE)0; } case DIGIT_0_SIG: // intentionally fall through case DIGIT_1_9_SIG: { me->insert(((QCalcEvt *)e)->keyId); return (QSTATE)0; } case POINT_SIG: { ; // explicitly ignore return (QSTATE)0; } } return (QSTATE)&QCalc::operand2;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -