1//--------------------------------------------------------------------
2//
3//	MenuWindow.h
4//
5//	Written by: Owen Smith
6//
7//--------------------------------------------------------------------
8
9/*
10	Copyright 1999, Be Incorporated.   All Rights Reserved.
11	This file may be used under the terms of the Be Sample Code License.
12*/
13
14#ifndef _MenuWindow_h
15#define _MenuWindow_h
16
17#include <Message.h>
18
19#include <Window.h>
20#include "TestMenuBuilder.h"
21
22class MenuView;
23class BButton;
24class BListItem;
25class BOutlineListView;
26class BStringView;
27class BTextControl;
28
29//====================================================================
30//	CLASS: MenuWindow
31
32class MenuWindow : public BWindow
33{
34	//----------------------------------------------------------------
35	//	Constructors, destructors, operators
36
37public:
38					MenuWindow(const char* name);
39
40
41	//----------------------------------------------------------------
42	//	Virtual member function overrides
43
44public:
45	void			MenusBeginning(void);
46	void			MessageReceived(BMessage* message);
47	bool			QuitRequested(void);
48
49
50	//----------------------------------------------------------------
51	//	Operations
52
53public:
54	void			UpdateStatus(const char* str1 = NULL,
55						const char* str2 = NULL);
56
57
58	//----------------------------------------------------------------
59	//	Message handlers
60
61private:
62	void			AddMenu(BMessage* message);
63	void			DeleteMenu(BMessage* message);
64	void			TestMenu(BMessage* message);
65	void			UserMenu(BMessage* message);
66	void			ToggleUserMenus(BMessage* message);
67	void			ToggleTestIcons(BMessage* message);
68
69
70	//----------------------------------------------------------------
71	//	Implementation member functions
72
73private:
74	bool			Valid(void) const;
75	BMenu*			BuildFileMenu(void) const;
76	void			ReplaceTestMenu(BMenuBar* pMenuBar, icon_size size);
77
78	//----------------------------------------------------------------
79	//	Member variables
80
81private:
82	BMenuBar* 			m_pFullMenuBar;
83	BMenuBar*			m_pHiddenMenuBar;
84	bool				m_bUsingFullMenuBar;
85	BStringView*		m_pStatusView;
86	MenuView*			m_pMenuView;
87	TestMenuBuilder		m_testMenuBuilder;
88};
89
90#endif /* _MenuWindow_h */
91