#include #include #include #include using namespace SkyGI; #define BUTTON_ZERO 0 #define BUTTON_ONE 1 #define BUTTON_TWO 2 #define BUTTON_THREE 3 #define BUTTON_FOUR 4 #define BUTTON_FIVE 5 #define BUTTON_SIX 6 #define BUTTON_SEVEN 7 #define BUTTON_EIGHT 8 #define BUTTON_NINE 9 #define BUTTON_PLUS 10 #define BUTTON_MINUS 11 #define BUTTON_TIMES 12 #define BUTTON_DIVIDE 13 #define BUTTON_EQUALS 14 #define BUTTON_POINT 15 #define BUTTON_SIGN 16 #define BUTTON_CLEAR 17 class Calculator : public Application { public: Calculator(int argc, char *argv[]); }; class CalculatorWindow : public ApplicationWindow { public: CalculatorWindow( const Rect &rFrame, const String& szTitle, unsigned int nWindowLayoutFlags, unsigned int uiFlags = 0); void OnCommand( const MessageCommand *pMessage); private: void Clear(); void doOperation( int next_operation); TextView * pText; String * line; double total; double operand; int operation; bool new_operand; };