xref: /haiku/src/preferences/keymap/ModifierKeysWindow.h (revision 460168d586c1aca66d13d79736370a649db7cd0e)
1f5ac2da0SJohn Scipione /*
2f5ac2da0SJohn Scipione  * Copyright 2011 Haiku Inc. All rights reserved.
3f5ac2da0SJohn Scipione  * Distributed under the terms of the MIT License.
4f5ac2da0SJohn Scipione  *
5f5ac2da0SJohn Scipione  * Authors:
6f5ac2da0SJohn Scipione  *		John Scipione, jscipione@gmail.com
7f5ac2da0SJohn Scipione  */
8f5ac2da0SJohn Scipione #ifndef MODIFIER_KEYS_WINDOW_H
9f5ac2da0SJohn Scipione #define MODIFIER_KEYS_WINDOW_H
10f5ac2da0SJohn Scipione 
11f5ac2da0SJohn Scipione 
12f5ac2da0SJohn Scipione #include <Window.h>
13f5ac2da0SJohn Scipione 
14f5ac2da0SJohn Scipione 
152388b04aSJohn Scipione class BMenuField;
162388b04aSJohn Scipione class BPopUpMenu;
172388b04aSJohn Scipione 
182388b04aSJohn Scipione 
192388b04aSJohn Scipione class ConflictView : public BView {
202388b04aSJohn Scipione public:
212388b04aSJohn Scipione 								ConflictView(const char* name);
222388b04aSJohn Scipione 								~ConflictView();
232388b04aSJohn Scipione 
242388b04aSJohn Scipione 	virtual	void				Draw(BRect updateRect);
252388b04aSJohn Scipione 
262388b04aSJohn Scipione 			BBitmap*			Icon();
272388b04aSJohn Scipione 			void				ShowIcon(bool show);
282388b04aSJohn Scipione 
292388b04aSJohn Scipione private:
302388b04aSJohn Scipione 	void						_FillSavedIcon();
312388b04aSJohn Scipione 
322388b04aSJohn Scipione 	BBitmap*					fIcon;
332388b04aSJohn Scipione 	BBitmap*					fSavedIcon;
342388b04aSJohn Scipione };
352388b04aSJohn Scipione 
363cee15aaSJohn Scipione 
37f5ac2da0SJohn Scipione class ModifierKeysWindow : public BWindow {
38f5ac2da0SJohn Scipione public:
39f5ac2da0SJohn Scipione 									ModifierKeysWindow();
40f5ac2da0SJohn Scipione 	virtual							~ModifierKeysWindow();
41f5ac2da0SJohn Scipione 
42f5ac2da0SJohn Scipione 	virtual	void					MessageReceived(BMessage* message);
43f5ac2da0SJohn Scipione 
44*460168d5SJohn Scipione private:
453cee15aaSJohn Scipione 			BMenuField*				_CreateShiftMenuField();
46f5ac2da0SJohn Scipione 			BMenuField*				_CreateControlMenuField();
47f5ac2da0SJohn Scipione 			BMenuField*				_CreateOptionMenuField();
48f5ac2da0SJohn Scipione 			BMenuField*				_CreateCommandMenuField();
49f5ac2da0SJohn Scipione 
50f5ac2da0SJohn Scipione 			void					_MarkMenuItems();
51bce949f5SJohn Scipione 			const char*				_KeyToString(int32 key);
523cee15aaSJohn Scipione 			uint32					_KeyToKeyCode(int32 key,
533cee15aaSJohn Scipione 										bool right = false);
543cee15aaSJohn Scipione 			int32					_LastKey();
553cee15aaSJohn Scipione 			void					_ValidateDuplicateKeys();
563cee15aaSJohn Scipione 			uint32					_DuplicateKeys();
57f5ac2da0SJohn Scipione 
583cee15aaSJohn Scipione 			BPopUpMenu*				fShiftMenu;
59f5ac2da0SJohn Scipione 			BPopUpMenu*				fControlMenu;
60f5ac2da0SJohn Scipione 			BPopUpMenu*				fOptionMenu;
61f5ac2da0SJohn Scipione 			BPopUpMenu*				fCommandMenu;
62f5ac2da0SJohn Scipione 
633cee15aaSJohn Scipione 			ConflictView*			fShiftConflictView;
643cee15aaSJohn Scipione 			ConflictView*			fControlConflictView;
653cee15aaSJohn Scipione 			ConflictView*			fOptionConflictView;
663cee15aaSJohn Scipione 			ConflictView*			fCommandConflictView;
671a6b60e6SJohn Scipione 
68f5ac2da0SJohn Scipione 			BButton*				fRevertButton;
69f5ac2da0SJohn Scipione 			BButton*				fCancelButton;
70f5ac2da0SJohn Scipione 			BButton*				fOkButton;
71f5ac2da0SJohn Scipione 
72f5ac2da0SJohn Scipione 			key_map*				fCurrentMap;
73f5ac2da0SJohn Scipione 			key_map*				fSavedMap;
74f5ac2da0SJohn Scipione 
75f5ac2da0SJohn Scipione 			char*					fCurrentBuffer;
76f5ac2da0SJohn Scipione 			char*					fSavedBuffer;
77f5ac2da0SJohn Scipione };
78f5ac2da0SJohn Scipione 
79bce949f5SJohn Scipione 
80f5ac2da0SJohn Scipione #endif	// MODIFIER_KEYS_WINDOW_H
81