📄 qcalc.c
字号:
} } return (QSTATE)&QCalc_on;}/*..........................................................................*/QSTATE QCalc_negated2(QCalc *me, QEvent const *e) { switch (e->sig) { case Q_ENTRY_SIG: { QCalc_updateState(me, "negated2-ENTRY"); QCalc_negate_(me); return (QSTATE)0; } case Q_EXIT_SIG: { QCalc_updateState(me, "negated2-EXIT"); return (QSTATE)0; } case CE_SIG: { QCalc_clear_(me); Q_TRAN(&QCalc_opEntered); return (QSTATE)0; } case DIGIT_0_SIG: { Q_TRAN(&QCalc_zero2); return (QSTATE)0; } case DIGIT_1_9_SIG: { QCalc_insert_(me, ((QCalcEvt *)e)->keyId); Q_TRAN(&QCalc_int2); return (QSTATE)0; } case POINT_SIG: { QCalc_insert_(me, ((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: { QCalc_updateState(me, "operand1-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { QCalc_updateState(me, "operand1-EXIT"); return (QSTATE)0; } case CE_SIG: { QCalc_clear_(me); 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: { QCalc_updateState(me, "zero1-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { QCalc_updateState(me, "zero1-EXIT"); return (QSTATE)0; } case DIGIT_1_9_SIG: { QCalc_insert_(me, ((QCalcEvt *)e)->keyId); Q_TRAN(&QCalc_int1); return (QSTATE)0; } case POINT_SIG: { QCalc_insert_(me, ((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: { QCalc_updateState(me, "int1-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { QCalc_updateState(me, "int1-EXIT"); return (QSTATE)0; } case DIGIT_0_SIG: /* intentionally fall through */ case DIGIT_1_9_SIG: { QCalc_insert_(me, ((QCalcEvt *)e)->keyId); return (QSTATE)0; } case POINT_SIG: { QCalc_insert_(me, ((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: { QCalc_updateState(me, "frac1-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { QCalc_updateState(me, "frac1-EXIT"); return (QSTATE)0; } case DIGIT_0_SIG: /* intentionally fall through */ case DIGIT_1_9_SIG: { QCalc_insert_(me, ((QCalcEvt *)e)->keyId); return (QSTATE)0; } } return (QSTATE)&QCalc_operand1;}/*..........................................................................*/QSTATE QCalc_opEntered(QCalc *me, QEvent const *e) { switch (e->sig) { case Q_ENTRY_SIG: { QCalc_updateState(me, "opEntered-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { QCalc_updateState(me, "opEntered-EXIT"); return (QSTATE)0; } case OPER_SIG: { if (((QCalcEvt *)e)->keyId == KEY_MINUS) { QCalc_clear_(me); Q_TRAN(&QCalc_negated2); return (QSTATE)0; /* event handled */ } break; } case DIGIT_0_SIG: { QCalc_clear_(me); Q_TRAN(&QCalc_zero2); return (QSTATE)0; } case DIGIT_1_9_SIG: { QCalc_clear_(me); QCalc_insert_(me, ((QCalcEvt *)e)->keyId); Q_TRAN(&QCalc_int2); return (QSTATE)0; } case POINT_SIG: { QCalc_clear_(me); QCalc_insert_(me, (int)'0'); QCalc_insert_(me, (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: { QCalc_updateState(me, "operand2-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { QCalc_updateState(me, "operand2-EXIT"); return (QSTATE)0; } case CE_SIG: { QCalc_clear_(me); Q_TRAN(&QCalc_opEntered); return (QSTATE)0; } case OPER_SIG: { me->operand2_ = strtod(me->display_, (char **)0); if (QCalc_eval_(me)) { 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 (QCalc_eval_(me)) { 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: { QCalc_updateState(me, "zero2-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { QCalc_updateState(me, "zero2-EXIT"); return (QSTATE)0; } case DIGIT_1_9_SIG: { QCalc_insert_(me, ((QCalcEvt *)e)->keyId); Q_TRAN(&QCalc_int2); return (QSTATE)0; } case POINT_SIG: { QCalc_insert_(me, ((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: { QCalc_updateState(me, "int2-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { QCalc_updateState(me, "int2-EXIT"); return (QSTATE)0; } case DIGIT_0_SIG: /* intentionally fall through */ case DIGIT_1_9_SIG: { QCalc_insert_(me, ((QCalcEvt *)e)->keyId); return (QSTATE)0; } case POINT_SIG: { QCalc_insert_(me, ((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: { QCalc_updateState(me, "frac2-ENTRY"); return (QSTATE)0; } case Q_EXIT_SIG: { QCalc_updateState(me, "frac2-EXIT"); return (QSTATE)0; } case DIGIT_0_SIG: /* intentionally fall through */ case DIGIT_1_9_SIG: { QCalc_insert_(me, ((QCalcEvt *)e)->keyId); return (QSTATE)0; } } return (QSTATE)&QCalc_operand2;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -