xref: /haiku/src/apps/terminal/AppearPrefView.h (revision b617a7b410c05275effb95f4b2f5608359d9b7b9)
1 /*
2  * Copyright 2001-2010, Haiku, Inc.
3  * Copyright 2003-2004 Kian Duffy, myob@users.sourceforge.net
4  * Parts Copyright 1998-1999 Kazuho Okui and Takashi Murai.
5  * All rights reserved. Distributed under the terms of the MIT license.
6  */
7 #ifndef APPEARANCE_PREF_VIEW_H
8 #define APPEARANCE_PREF_VIEW_H
9 
10 
11 #include <GroupView.h>
12 #include <Messenger.h>
13 #include <String.h>
14 
15 
16 static const uint32 MSG_HALF_FONT_CHANGED				= 'mchf';
17 static const uint32 MSG_HALF_SIZE_CHANGED				= 'mchs';
18 static const uint32 MSG_FULL_FONT_CHANGED				= 'mcff';
19 static const uint32 MSG_FULL_SIZE_CHANGED				= 'mcfs';
20 static const uint32 MSG_COLOR_FIELD_CHANGED				= 'mccf';
21 static const uint32 MSG_COLOR_CHANGED					= 'mcbc';
22 static const uint32 MSG_COLOR_SCHEME_CHANGED			= 'mccs';
23 
24 static const uint32 MSG_TAB_TITLE_SETTING_CHANGED		= 'mtts';
25 static const uint32 MSG_WINDOW_TITLE_SETTING_CHANGED	= 'mwts';
26 static const uint32 MSG_BLINK_CURSOR_CHANGED			= 'mbcc';
27 static const uint32 MSG_WARN_ON_EXIT_CHANGED			= 'mwec';
28 static const uint32 MSG_COLS_CHANGED					= 'mccl';
29 static const uint32 MSG_ROWS_CHANGED					= 'mcrw';
30 static const uint32 MSG_HISTORY_CHANGED					= 'mhst';
31 
32 static const uint32 MSG_PREF_MODIFIED					= 'mpmo';
33 
34 
35 struct color_scheme;
36 class BCheckBox;
37 class BColorControl;
38 class BMenu;
39 class BMenuField;
40 class BPopUpMenu;
41 class BTextControl;
42 
43 
44 class AppearancePrefView : public BGroupView {
45 public:
46 								AppearancePrefView(const char* name,
47 									const BMessenger &messenger);
48 
49 	virtual	void				Revert();
50 	virtual void				MessageReceived(BMessage* message);
51 	virtual void				AttachedToWindow();
52 
53 	virtual	void				GetPreferredSize(float* _width,
54 									float* _height);
55 
56 private:
57 			void				_ChangeColorScheme(color_scheme* scheme);
58 			void				_SetCurrentColorScheme();
59 
60 	static	BMenu*				_MakeFontMenu(uint32 command,
61 									const char* defaultFamily,
62 									const char* defaultStyle);
63 	static	BMenu*				_MakeFontSizeMenu(const char* label,
64 									uint32 command,
65 									const char* family,
66 									const char* style,
67 									const char* size);
68 
69 	static	BPopUpMenu*			_MakeMenu(uint32 msg, const char** items,
70 										const char* defaultItem);
71 
72 	static	BPopUpMenu*			_MakeColorSchemeMenu(uint32 msg,
73 									const color_scheme** schemes,
74 									const color_scheme* defaultItemName);
75 
76 			void				_MarkSelectedFont(const char* family,
77 									const char* style, const char* size);
78 
79 			BCheckBox*			fBlinkCursor;
80 			BCheckBox*			fWarnOnExit;
81 			BMenuField*			fFontField;
82 
83 			BMenuField*			fColorSchemeField;
84 			BMenuField*			fColorField;
85 			BColorControl*		fColorControl;
86 
87 			BTextControl*		fTabTitle;
88 			BTextControl*		fWindowTitle;
89 
90 			BMessenger			fTerminalMessenger;
91 };
92 
93 
94 #endif	// APPEARANCE_PREF_VIEW_H
95