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 16static const uint32 MSG_HALF_FONT_CHANGED = 'mchf'; 17static const uint32 MSG_HALF_SIZE_CHANGED = 'mchs'; 18static const uint32 MSG_FULL_FONT_CHANGED = 'mcff'; 19static const uint32 MSG_FULL_SIZE_CHANGED = 'mcfs'; 20static const uint32 MSG_COLOR_FIELD_CHANGED = 'mccf'; 21static const uint32 MSG_COLOR_CHANGED = 'mcbc'; 22static const uint32 MSG_COLOR_SCHEME_CHANGED = 'mccs'; 23 24static const uint32 MSG_TAB_TITLE_SETTING_CHANGED = 'mtts'; 25static const uint32 MSG_WINDOW_TITLE_SETTING_CHANGED = 'mwts'; 26static const uint32 MSG_BLINK_CURSOR_CHANGED = 'mbcc'; 27static const uint32 MSG_WARN_ON_EXIT_CHANGED = 'mwec'; 28static const uint32 MSG_COLS_CHANGED = 'mccl'; 29static const uint32 MSG_ROWS_CHANGED = 'mcrw'; 30static const uint32 MSG_HISTORY_CHANGED = 'mhst'; 31 32static const uint32 MSG_PREF_MODIFIED = 'mpmo'; 33 34 35struct color_scheme; 36class BCheckBox; 37class BColorControl; 38class BMenu; 39class BMenuField; 40class BPopUpMenu; 41class BTextControl; 42 43 44class AppearancePrefView : public BGroupView { 45public: 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 56private: 57 void _EnableCustomColors(bool enable); 58 59 void _ChangeColorScheme(color_scheme* scheme); 60 void _SetCurrentColorScheme(BMenuField* field); 61 62 static BMenu* _MakeFontMenu(uint32 command, 63 const char* defaultFamily, 64 const char* defaultStyle); 65 static BMenu* _MakeFontSizeMenu(const char* label, 66 uint32 command, 67 const char* family, 68 const char* style, 69 const char* size); 70 71 static BPopUpMenu* _MakeMenu(uint32 msg, const char** items, 72 const char* defaultItem); 73 74 static BPopUpMenu* _MakeColorSchemeMenu(uint32 msg, 75 const color_scheme** schemes, 76 const color_scheme* defaultItemName); 77 78 void _MarkSelectedFont(const char* family, 79 const char* style, const char* size); 80 81 BCheckBox* fBlinkCursor; 82 BCheckBox* fWarnOnExit; 83 BMenuField* fFontField; 84 85 BMenuField* fColorSchemeField; 86 BMenuField* fColorField; 87 BColorControl* fColorControl; 88 89 BTextControl* fTabTitle; 90 BTextControl* fWindowTitle; 91 92 BMessenger fTerminalMessenger; 93}; 94 95 96#endif // APPEARANCE_PREF_VIEW_H 97