1//--------------------------------------------------------------------
2//
3//	MenuView.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 _MenuView_h
15#define _MenuView_h
16
17
18#include <View.h>
19
20class BButton;
21class BListItem;
22class BOutlineListView;
23class BStringView;
24class BTextControl;
25//====================================================================
26//	CLASS: MenuView
27
28class MenuView : public BView
29{
30	//----------------------------------------------------------------
31	//	Constructors, destructors, operators
32
33public:
34					MenuView(uint32 resizingMode);
35
36
37	//----------------------------------------------------------------
38	//	Virtual member function overrides
39
40public:
41	void				MessageReceived(BMessage* message);
42	void				AllAttached(void);
43
44
45	//----------------------------------------------------------------
46	//	Operations
47public:
48	void				PopulateUserMenu(BMenu* pMenu, int32 index);
49
50	//----------------------------------------------------------------
51	//	Message handlers
52
53private:
54	void				AddMenu(BMessage* message);
55	void				DeleteMenu(BMessage* message);
56	void				AddMenuItem(BMessage* message);
57	void				MenuSelectionChanged(BMessage* message);
58
59
60	//----------------------------------------------------------------
61	//	Implementation member functions
62
63private:
64	void				BuildMenuItems(BMenu* pMenu, BListItem* superitem,
65							BOutlineListView* pView);
66	bool				IsSeparator(const char* text) const;
67	void				SetButtonState(void);
68	bool				Valid(void);
69
70
71	//----------------------------------------------------------------
72	//	Member variables
73
74private:
75	BTextControl*		m_pLabelCtrl;
76	BCheckBox*			m_pHideUserCheck;
77	BCheckBox*			m_pLargeTestIconCheck;
78	BButton*			m_pAddMenuButton;
79	BButton*			m_pDelButton;
80	BButton*			m_pAddItemButton;
81	BOutlineListView*	m_pMenuOutlineView;
82	BScrollView*		m_pScrollView;
83};
84
85#endif /* _MenuView_h */
86