Ticket #505: EmptyMenuApplication.cpp

File EmptyMenuApplication.cpp, 5.1 KB (added by kaoutsis, 17 years ago)
Line 
1// EmptyMenuApplication.cpp
2
3
4#include <Application.h>
5#include <Window.h>
6#include <MenuBar.h>
7#include <Menu.h>
8#include <MenuItem.h>
9#include <View.h>
10#include <StringView.h>
11
12#include <unistd.h>
13
14#define QUIT 'quit'
15#define ITE1 'ite1'
16#define ITE2 'ite2'
17#define ITE4 'ite4'
18#define ITE5 'ite5'
19#define ITE6 'ite6'
20#define ITE7 'ite7'
21
22class StringView1 : public BStringView
23{
24public:
25 // publics functions
26 StringView1(BRect bounds,const char * name,
27 const char * text,
28 uint32 resizeFlags = B_FOLLOW_LEFT|B_FOLLOW_TOP,
29 uint32 flags = B_WILL_DRAW);
30 //virtual void MessageReceived(BMessage * msg);
31
32protected:
33 // protected members
34
35};
36
37StringView1::StringView1(BRect bounds,const char *name,
38 const char *text,
39 uint32 resizeFlags,
40 uint32 flags)
41 : BStringView(bounds,name,text,resizeFlags,flags)
42{
43 // Allocate object
44
45 // Adding object
46}
47
48/***** MessageReceived ****/
49/* void StringView1::MessageReceived(BMessage *msg)
50{
51 static int numPresses = 0;
52 switch (message->what))
53 {
54 case INC:
55 ++numPresses;
56 //char title[100];
57 //sprintf(title, "Setting font size %d", ++numPresses);
58 //SetTitle(title);
59 SetFontSize(23+numPresses);
60 break;
61 default:
62 StringView1::MessageReceived(message);
63 }
64 switch(message->what)
65 {
66 case DEC:
67 //char title[100];
68 //sprintf(title, "Setting font size %d", --numPresses);
69 //SetTitle(title);
70 SetFontSize(23--numPresses);
71 break;
72 }
73} */
74
75
76
77class Window1 : public BWindow
78{
79public:
80 // publics functions
81 Window1(BRect frame,const char* title,window_look look,
82 window_feel feel,
83 uint32 flags,
84 uint32 workspace = B_CURRENT_WORKSPACE);
85 virtual void MessageReceived(BMessage* message);
86 virtual bool QuitRequested();
87
88protected:
89 // protected members
90 BMenuBar *_menubar1;
91 BMenu *_menu1;
92 BMenuItem *_menuitem1;
93 BMenuItem *_menuitem2;
94 BMenuItem *_menuitem3Quit;
95 BMenu *_menu2;
96 BMenuItem *_menuitem4;
97 BMenuItem *_menuitem5;
98 BMenuItem *_menuitem6;
99 BMenuItem *_menuitem7;
100 BView* _viewMain;
101 BStringView* _stringViewMain;
102
103};
104
105/***** Constructor ****/
106Window1::Window1(BRect frame,const char *title,window_look look,
107 window_feel feel,
108 uint32 flags,
109 uint32 workspace)
110 : BWindow(frame,title,look,feel,flags,workspace)
111{
112 // Allocate object
113 _menuitem1 = new BMenuItem("MenuItem1",new BMessage('ite1'),0,2);
114 _menuitem2 = new BMenuItem("MenuItem2",new BMessage('ite2'),0,2);
115 _menuitem3Quit = new BMenuItem("Quit", new BMessage('quit'),0,2);
116 _menuitem4 = new BMenuItem("MenuItem4",new BMessage('ite4'),0,2);
117 _menu2 = new BMenu("Menu2",B_ITEMS_IN_COLUMN);
118 _menuitem5 = new BMenuItem("MenuItem5",new BMessage('ite5'),0,2);
119 _menuitem6 = new BMenuItem("MenuItem6",new BMessage('ite6'),0,2);
120 _menuitem7 = new BMenuItem("MenuItem7",new BMessage('ite7'),0,2);
121 _menu1 = new BMenu("File",B_ITEMS_IN_COLUMN);
122 _menubar1 = new BMenuBar(BRect(0.00,0.00,331.00,20.00),"MenuBar1",
123 B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP,B_ITEMS_IN_ROW,true);
124
125 _stringViewMain = new BStringView(BRect(29.00,23.00,158.00,60.00),
126 "StringView1","Hello World",
127 B_FOLLOW_LEFT | B_FOLLOW_TOP,B_WILL_DRAW);
128 _viewMain = new BView(BRect(26.00,28.00,206.00,110.00),
129 "View1",B_FOLLOW_NONE,B_WILL_DRAW);
130
131 // Adding object
132 AddChild(_menubar1);
133 _menubar1->AddItem(_menu1);
134 _menu1->AddItem(_menuitem1);
135 _menu1->AddItem(_menuitem2);
136 _menu1->AddItem(_menuitem3Quit);
137 _menubar1->AddItem(_menu2);
138 _menu2->AddItem(_menuitem4);
139 _menu2->AddItem(_menuitem5);
140 _menu2->AddItem(_menuitem6);
141 _menu2->AddItem(_menuitem7);
142
143 AddChild(_viewMain);
144 _viewMain->AddChild(_stringViewMain);
145 _viewMain->SetViewColor(134,43,22);
146// _stringViewMain->SetViewColor(133,163,133);
147 _stringViewMain->SetFontSize(11);
148
149 //_stringViewMain->SetText("Hell");
150
151}
152
153/***** MessageReceived ****/
154void Window1::MessageReceived(BMessage *message)
155{
156
157 switch(message->what)
158 {
159 case QUIT:
160 be_app->PostMessage(B_QUIT_REQUESTED);
161
162 break;
163
164 case ITE1:
165 _stringViewMain->SetText("Clicked menuItem1");
166 break;
167
168 case ITE2:
169 _stringViewMain->SetText("Clicked menuItem2");
170 break;
171
172 case ITE4:
173 _stringViewMain->SetText("Clicked menuItem4");
174 break;
175
176 case ITE5:
177 _stringViewMain->SetText("Clicked menuItem5");
178 break;
179
180 case ITE6:
181 _stringViewMain->SetText("Clicked menuItem6");
182 break;
183
184 case ITE7:
185 _stringViewMain->SetText("Clicked menuItem7");
186 break;
187
188 default:
189 BWindow::MessageReceived(message);
190 }
191}
192
193/***** QuitRequested ****/
194bool Window1::QuitRequested()
195{
196 be_app->PostMessage(B_QUIT_REQUESTED);
197 return BWindow::QuitRequested();
198}
199
200
201
202class Application1 : public BApplication
203{
204public:
205 // publics functions
206 Application1(const char * signature);
207
208protected:
209 // protected members
210 Window1 *_window1;
211
212};
213
214Application1::Application1(const char *signature)
215: BApplication(signature)
216{
217 // Allocate object x y x+w y+h
218 _window1 = new Window1(BRect(300.00,244.00,522.00,370.00),
219 "EmptyMenuApplication", B_DOCUMENT_WINDOW_LOOK,
220 B_NORMAL_WINDOW_FEEL,B_NOT_ZOOMABLE,0);
221
222 // Adding object
223 _window1->Show();
224}
225
226
227int main(void)
228{
229 Application1 application("application/x-vnd.MeTOS.Application");
230
231 // Start Application
232 application.Run();
233
234 return 0;
235}
236
237
238
239
240
241