1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
#include <gui/ApplicationWindow.h>
#include <gui/Application.h>
#include "calculator.h"
CalculatorWindow::CalculatorWindow( const Rect &rFrame,
const String& szTitle,
unsigned int nWindowLayoutFlags,
unsigned int uiFlags
): ApplicationWindow(rFrame, szTitle, nWindowLayoutFlags)
{
Button * pButton;
pButton = new Button(this, Rect(Point(15, 60), Point(40, 82)), "7", 0, new MessageCommand(BUTTON_SEVEN));
pButton = new Button(this, Rect(Point(45, 60), Point(70, 82)), "8", 0, new MessageCommand(BUTTON_EIGHT));
pButton = new Button(this, Rect(Point(75, 60), Point(100, 82)), "9", 0, new MessageCommand(BUTTON_NINE));
pButton = new Button(this, Rect(Point(105, 60), Point(160, 82)), "Clear", 0, new MessageCommand(BUTTON_CLEAR));
pButton = new Button(this, Rect(Point(15, 87), Point(40, 109)), "4", 0, new MessageCommand(BUTTON_FOUR));
pButton = new Button(this, Rect(Point(45, 87), Point(70, 109)), "5", 0, new MessageCommand(BUTTON_FIVE));
pButton = new Button(this, Rect(Point(75, 87), Point(100, 109)), "6", 0, new MessageCommand(BUTTON_SIX));
pButton = new Button(this, Rect(Point(105, 87), Point(130, 109)), "+", 0, new MessageCommand(BUTTON_PLUS));
pButton = new Button(this, Rect(Point(135, 87), Point(160, 109)), "-", 0, new MessageCommand(BUTTON_MINUS));
pButton = new Button(this, Rect(Point(15, 114), Point(40, 136)), "1", 0, new MessageCommand(BUTTON_ONE));
pButton = new Button(this, Rect(Point(45, 114), Point(70, 136)), "2", 0, new MessageCommand(BUTTON_TWO));
pButton = new Button(this, Rect(Point(75, 114), Point(100, 136)), "3", 0, new MessageCommand(BUTTON_THREE));
pButton = new Button(this, Rect(Point(105, 114), Point(130, 136)), "\u00D7", 0, new MessageCommand(BUTTON_TIMES));
pButton = new Button(this, Rect(Point(135, 114), Point(160, 136)), "\u00F7", 0, new MessageCommand(BUTTON_DIVIDE));
pButton = new Button(this, Rect(Point(15, 141), Point(40, 163)), "0", 0, new MessageCommand(BUTTON_ZERO));
pButton = new Button(this, Rect(Point(45, 141), Point(70, 163)), ".", 0, new MessageCommand(BUTTON_POINT));
pButton = new Button(this, Rect(Point(75, 141), Point(100, 164)), "\u00B1", 0, new MessageCommand(BUTTON_SIGN));
pButton = new Button(this, Rect(Point(105, 141), Point(160, 164)), "=", 0, new MessageCommand(BUTTON_EQUALS));
/*
pButton = new Button(this, Point(10,10), "1", 0, new MessageCommand(BUTTON_ONE));
pButton = new Button(this, Point(10,10), "1", 0, new MessageCommand(BUTTON_ONE));
pButton = new Button(this, Point(10,10), "1", 0, new MessageCommand(BUTTON_ONE));
pButton = new Button(this, Point(10,10), "1", 0, new MessageCommand(BUTTON_ONE));*/
}
void CalculatorWindow::OnCommand(const MessageCommand *pMessage) {
switch (pMessage->GetID()) {
case BUTTON_ZERO:
case BUTTON_ONE:
case BUTTON_TWO:
case BUTTON_THREE:
case BUTTON_FOUR:
case BUTTON_FIVE:
case BUTTON_SIX:
case BUTTON_SEVEN:
case BUTTON_EIGHT:
case BUTTON_NINE:
case BUTTON_PLUS:
case BUTTON_MINUS:
case BUTTON_TIMES:
case BUTTON_DIVIDE:
case BUTTON_EQUALS:
case BUTTON_POINT:
case BUTTON_SIGN:
case BUTTON_CLEAR:
printf("Button %d clicked\n", pMessage->GetID());
default:
break;
}
}
Calculator::Calculator(int argc, char* argv[]):
Application("application/x-vnd.Calculator", argc, argv) {
Rect r(Point(100, 100), Point(275, 275));
CalculatorWindow * pCalculatorWindow =
new CalculatorWindow(r, "Calculator", WINDOW_LAYOUT_NOTHING,
APPLICATION_WINDOW_NO_VIEW);
pCalculatorWindow->GetTitleWindow()->SetFlags(
(TitleWindowFlags)(pCalculatorWindow->GetTitleWindow()->GetFlags()
));
pCalculatorWindow->Show();
}
int main(int argc, char *argv[]) {
Calculator pCalculator(argc, argv);
return pCalculator.Run();
}
|