1// Test works like this:
2// Start the app from the terminal
3// 1. Click on "menu ONE"
4// 2. Click on "menu TWO".
5// Examine the output.
6
7#include <Application.h>
8#include <Menu.h>
9#include <MenuBar.h>
10#include <MenuItem.h>
11#include <Window.h>
12
13#include <cstdio>
14
15
16class TestWindow : public BWindow {
17public:
18	TestWindow();
19	virtual void MenusBeginning();
20	virtual void MenusEnded();
21};
22
23
24void
25show_window(BWindow *window)
26{
27	BMenuBar *bar = new BMenuBar(BRect(0, 0, 10, 10), "menuBar");
28
29	BMenu *menu = new BMenu("menu ONE");
30
31	menu->AddItem(new BMenuItem("ONE", new BMessage('1ONE')));
32	menu->AddItem(new BMenuItem("TWO", new BMessage('2TWO')));
33	bar->AddItem(menu);
34
35	menu = new BMenu("menu TWO");
36	menu->AddItem(new BMenuItem("ONE", new BMessage('1ONE')));
37	menu->AddItem(new BMenuItem("TWO", new BMessage('2TWO')));
38	bar->AddItem(menu);
39
40	window->AddChild(bar);
41	window->Show();
42}
43
44
45int main()
46{
47	BApplication app("application/x-vnd.menu-test");
48	BWindow *window = new TestWindow();
49	show_window(window);
50	app.Run();
51}
52
53
54TestWindow::TestWindow()
55	:BWindow(BRect(100, 100, 400, 300), "menu test", B_DOCUMENT_WINDOW, B_ASYNCHRONOUS_CONTROLS)
56{
57
58}
59
60
61void
62TestWindow::MenusBeginning()
63{
64	printf("MenusBeginning()\n");
65}
66
67
68void
69TestWindow::MenusEnded()
70{
71	printf("MenusEnded()\n");
72}
73