diff --git a/src/apps/terminal/AppearPrefView.cpp b/src/apps/terminal/AppearPrefView.cpp index bccb430c09..554beec3b2 100644 --- a/src/apps/terminal/AppearPrefView.cpp +++ b/src/apps/terminal/AppearPrefView.cpp @@ -27,13 +27,13 @@ AppearancePrefView::AppearancePrefView(BRect frame, const char *name, fAppearancePrefViewMessenger(messenger) { const char *color_tbl[] = { - PREF_TEXT_FORE_COLOR, - PREF_TEXT_BACK_COLOR, - PREF_CURSOR_FORE_COLOR, - PREF_CURSOR_BACK_COLOR, - PREF_SELECT_FORE_COLOR, - PREF_SELECT_BACK_COLOR, - NULL + PREF_TEXT_FORE_COLOR, + PREF_TEXT_BACK_COLOR, + PREF_CURSOR_FORE_COLOR, + PREF_CURSOR_BACK_COLOR, + PREF_SELECT_FORE_COLOR, + PREF_SELECT_BACK_COLOR, + NULL }; float fontDividerSize = StringWidth("Font:") + 8.0; @@ -42,13 +42,14 @@ AppearancePrefView::AppearancePrefView(BRect frame, const char *name, BRect r(5, 5, 225, 25); BMenu *menu = _MakeFontMenu(MSG_HALF_FONT_CHANGED, - gTermPref->getString(PREF_HALF_FONT_FAMILY)); + PrefHandler::Default()->getString(PREF_HALF_FONT_FAMILY)); fFont = new BMenuField(r, "font", "Font:", menu, B_WILL_DRAW); fFont->SetDivider(fontDividerSize); AddChild(fFont); r.OffsetBy(r.Width() + 10, 0); - menu = _MakeSizeMenu(MSG_HALF_SIZE_CHANGED, 12); + menu = _MakeSizeMenu(MSG_HALF_SIZE_CHANGED, + atoi(PrefHandler::Default()->getString(PREF_HALF_FONT_SIZE))); fFontSize = new BMenuField(r, "size", "Size:", menu, B_WILL_DRAW); fFontSize->SetDivider(sizeDividerSize); AddChild(fFontSize); @@ -61,7 +62,7 @@ AppearancePrefView::AppearancePrefView(BRect frame, const char *name, fColorControl = SetupBColorControl(BPoint(r.left, r.bottom + 10), B_CELLS_32x8, 6, MSG_COLOR_CHANGED); - fColorControl->SetValue(gTermPref->getRGB(PREF_TEXT_FORE_COLOR)); + fColorControl->SetValue(PrefHandler::Default()->getRGB(PREF_TEXT_FORE_COLOR)); } @@ -80,10 +81,10 @@ void AppearancePrefView::Revert() { fColorField->Menu()->ItemAt(0)->SetMarked(true); - fColorControl->SetValue(gTermPref->getRGB(PREF_TEXT_FORE_COLOR)); + fColorControl->SetValue(PrefHandler::Default()->getRGB(PREF_TEXT_FORE_COLOR)); - fFont->Menu()->FindItem(gTermPref->getString(PREF_HALF_FONT_FAMILY))->SetMarked(true); - fFontSize->Menu()->FindItem(gTermPref->getString(PREF_HALF_FONT_FAMILY))->SetMarked(true); + fFont->Menu()->FindItem(PrefHandler::Default()->getString(PREF_HALF_FONT_FAMILY))->SetMarked(true); + fFontSize->Menu()->FindItem(PrefHandler::Default()->getString(PREF_HALF_FONT_FAMILY))->SetMarked(true); } @@ -105,25 +106,25 @@ AppearancePrefView::MessageReceived(BMessage *msg) switch (msg->what) { case MSG_HALF_FONT_CHANGED: - gTermPref->setString (PREF_HALF_FONT_FAMILY, + PrefHandler::Default()->setString (PREF_HALF_FONT_FAMILY, fFont->Menu()->FindMarked()->Label()); modified = true; break; case MSG_HALF_SIZE_CHANGED: - gTermPref->setString(PREF_HALF_FONT_SIZE, + PrefHandler::Default()->setString(PREF_HALF_FONT_SIZE, fFontSize->Menu()->FindMarked()->Label()); modified = true; break; case MSG_COLOR_CHANGED: - gTermPref->setRGB(fColorField->Menu()->FindMarked()->Label(), + PrefHandler::Default()->setRGB(fColorField->Menu()->FindMarked()->Label(), fColorControl->ValueAsColor()); modified = true; break; case MSG_COLOR_FIELD_CHANGED: - fColorControl->SetValue(gTermPref->getRGB( + fColorControl->SetValue(PrefHandler::Default()->getRGB( fColorField->Menu()->FindMarked()->Label())); break; diff --git a/src/apps/terminal/ColorWindow.cpp b/src/apps/terminal/ColorWindow.cpp index 413e080045..bf675616db 100644 --- a/src/apps/terminal/ColorWindow.cpp +++ b/src/apps/terminal/ColorWindow.cpp @@ -110,7 +110,7 @@ colWindow::colWindow(const char *) BColorControl* controller = new BColorControl(BPoint(10, 45), B_CELLS_32x8, 6, "Terminal Color Controller", new BMessage(MSG_COLOR_CHANGED)); icon->AddChild(controller); - controller->SetValue(gTermPref->getRGB(PREF_TEXT_FORE_COLOR)); + controller->SetValue(PrefHandler::Default()->getRGB(PREF_TEXT_FORE_COLOR)); @@ -138,14 +138,14 @@ colWindow::MessageReceived(BMessage* msg) { case MSG_COLOR_CHANGED: - gTermPref->setRGB(workspaceMenuField->Menu()->FindMarked()->Label(), + PrefHandler::Default()->setRGB(workspaceMenuField->Menu()->FindMarked()->Label(), controller->ValueAsColor()); modified = true; break; case MSG_COLOR_FIELD_CHANGED: controller->SetValue - (gTermPref->getRGB (workspaceMenuField->Menu()->FindMarked()->Label())); + (PrefHandler::Default()->getRGB (workspaceMenuField->Menu()->FindMarked()->Label())); break; diff --git a/src/apps/terminal/MenuUtil.cpp b/src/apps/terminal/MenuUtil.cpp index 73f9fe66ca..299f8baf85 100644 --- a/src/apps/terminal/MenuUtil.cpp +++ b/src/apps/terminal/MenuUtil.cpp @@ -19,8 +19,6 @@ #include "PrefHandler.h" #include "Coding.h" -extern PrefHandler *gTermPref; - //#define LOCALE_FILE_DIR PREF_FOLDER"menu/" BPopUpMenu * @@ -68,7 +66,7 @@ LoadLocaleFile(PrefHandler *pref) char name[B_PATH_NAME_LENGTH]; const char *locale; - locale = gTermPref->getString(PREF_GUI_LANGUAGE); + locale = PrefHandler::Default()->getString(PREF_GUI_LANGUAGE); // TODO: this effectively disables any locale support - which is okay for now sprintf(name, "%s%s", /*LOCALE_FILE_DIR*/"", locale); diff --git a/src/apps/terminal/PrefHandler.cpp b/src/apps/terminal/PrefHandler.cpp index 0ed22de4cf..b081583620 100644 --- a/src/apps/terminal/PrefHandler.cpp +++ b/src/apps/terminal/PrefHandler.cpp @@ -64,6 +64,9 @@ static const pref_defaults kTermDefaults[] = { }; +PrefHandler *PrefHandler::sPrefHandler = NULL; + + PrefHandler::PrefHandler() : fContainer('Pref') @@ -90,6 +93,34 @@ PrefHandler::~PrefHandler() } +/* static */ +PrefHandler * +PrefHandler::Default() +{ + if (sPrefHandler == NULL) + sPrefHandler = new PrefHandler(); + return sPrefHandler; +} + + +/* static */ +void +PrefHandler::DeleteDefault() +{ + delete sPrefHandler; + sPrefHandler = NULL; +} + + +/* static */ +void +PrefHandler::SetDefault(PrefHandler *prefHandler) +{ + DeleteDefault(); + sPrefHandler = prefHandler; +} + + /* static */ status_t PrefHandler::GetDefaultPath(BPath& path) diff --git a/src/apps/terminal/PrefHandler.h b/src/apps/terminal/PrefHandler.h index 35422be2c7..bc9df04983 100644 --- a/src/apps/terminal/PrefHandler.h +++ b/src/apps/terminal/PrefHandler.h @@ -61,6 +61,10 @@ class PrefHandler { PrefHandler(); ~PrefHandler(); + static PrefHandler *Default(); + static void DeleteDefault(); + static void SetDefault(PrefHandler *handler); + status_t Open(const char *name); status_t OpenText(const char *path); status_t Save(const char *name); @@ -90,6 +94,8 @@ class PrefHandler { status_t _LoadFromTextFile(const char * path); BMessage fContainer; + + static PrefHandler *sPrefHandler; }; #endif // PREF_HANDLER_H diff --git a/src/apps/terminal/PrefWindow.cpp b/src/apps/terminal/PrefWindow.cpp index 99c4ca5300..dcc97ba962 100644 --- a/src/apps/terminal/PrefWindow.cpp +++ b/src/apps/terminal/PrefWindow.cpp @@ -24,14 +24,11 @@ #include -extern PrefHandler *gTermPref; - // Global Preference Handler - PrefWindow::PrefWindow(BMessenger messenger) : BWindow(_CenteredRect(BRect(0, 0, 350, 215)), "Terminal Settings", B_TITLED_WINDOW_LOOK, B_NORMAL_WINDOW_FEEL, B_NOT_RESIZABLE|B_NOT_ZOOMABLE), - fPrefTemp(new PrefHandler(gTermPref)), + fPrefTemp(new PrefHandler(PrefHandler::Default())), fSavePanel(NULL), fDirty(false), fPrefDlgMessenger(messenger) @@ -140,7 +137,7 @@ PrefWindow::_SaveRequested(BMessage *msg) BDirectory dir(&dirref); BPath path(&dir, filename); - gTermPref->SaveAsText(path.Path(), PREFFILE_MIMETYPE, TERM_SIGNATURE); + PrefHandler::Default()->SaveAsText(path.Path(), PREFFILE_MIMETYPE, TERM_SIGNATURE); } @@ -148,11 +145,11 @@ void PrefWindow::_Save() { delete fPrefTemp; - fPrefTemp = new PrefHandler(gTermPref); + fPrefTemp = new PrefHandler(PrefHandler::Default()); BPath path; if (PrefHandler::GetDefaultPath(path) == B_OK) { - gTermPref->SaveAsText(path.Path(), PREFFILE_MIMETYPE); + PrefHandler::Default()->SaveAsText(path.Path(), PREFFILE_MIMETYPE); fDirty = false; } } @@ -161,8 +158,7 @@ PrefWindow::_Save() void PrefWindow::_Revert() { - delete gTermPref; - gTermPref = new PrefHandler(fPrefTemp); + PrefHandler::SetDefault(new PrefHandler(fPrefTemp)); fPrefDlgMessenger.SendMessage(MSG_HALF_FONT_CHANGED); fPrefDlgMessenger.SendMessage(MSG_COLOR_CHANGED); diff --git a/src/apps/terminal/Shell.cpp b/src/apps/terminal/Shell.cpp index eac8b330fb..a8c9303364 100644 --- a/src/apps/terminal/Shell.cpp +++ b/src/apps/terminal/Shell.cpp @@ -50,8 +50,6 @@ #include "Shell.h" #include "PrefHandler.h" -extern PrefHandler *gTermPref; - /* default shell command and options. */ #define SHELL_COMMAND "/bin/sh -login" diff --git a/src/apps/terminal/ShellPrefView.cpp b/src/apps/terminal/ShellPrefView.cpp index bdc26a4703..6e0181c288 100644 --- a/src/apps/terminal/ShellPrefView.cpp +++ b/src/apps/terminal/ShellPrefView.cpp @@ -25,7 +25,7 @@ #include "TTextControl.h" -extern PrefHandler *gTermPref; +extern PrefHandler *PrefHandler::Default(); ShellPrefView::ShellPrefView(BRect frame, const char *name, @@ -37,26 +37,26 @@ ShellPrefView::ShellPrefView(BRect frame, const char *name, mCols = new TTextControl(BRect(0, 0, 160, 20), "cols", "Columns", "", new BMessage(MSG_COLS_CHANGED)); AddChild(mCols); - mCols->SetText(gTermPref->getString(PREF_COLS)); + mCols->SetText(PrefHandler::Default()->getString(PREF_COLS)); mRows = new TTextControl(BRect(0, 30, 160, 50), "rows", "Rows", "", new BMessage(MSG_ROWS_CHANGED)); AddChild(mRows); - mRows->SetText(gTermPref->getString(PREF_ROWS)); + mRows->SetText(PrefHandler::Default()->getString(PREF_ROWS)); mHistory = new TTextControl(BRect(0, 60, 160, 80), "history", "History", "", new BMessage(MSG_HISTORY_CHANGED)); AddChild(mHistory); - mHistory->SetText(gTermPref->getString(PREF_HISTORY_SIZE)); + mHistory->SetText(PrefHandler::Default()->getString(PREF_HISTORY_SIZE)); } void ShellPrefView::Revert() { - mCols->SetText(gTermPref->getString(PREF_COLS)); - mRows->SetText(gTermPref->getString(PREF_ROWS)); - mHistory->SetText(gTermPref->getString(PREF_HISTORY_SIZE)); + mCols->SetText(PrefHandler::Default()->getString(PREF_COLS)); + mRows->SetText(PrefHandler::Default()->getString(PREF_ROWS)); + mHistory->SetText(PrefHandler::Default()->getString(PREF_HISTORY_SIZE)); } @@ -66,17 +66,17 @@ ShellPrefView::SaveIfModified() BMessenger messenger(fTermWindow); if (mCols->IsModified()) { - gTermPref->setString(PREF_COLS, mCols->Text()); + PrefHandler::Default()->setString(PREF_COLS, mCols->Text()); messenger.SendMessage(MSG_COLS_CHANGED); mCols->ModifiedText(false); } if (mRows->IsModified()) { - gTermPref->setString(PREF_ROWS, mRows->Text()); + PrefHandler::Default()->setString(PREF_ROWS, mRows->Text()); messenger.SendMessage(MSG_ROWS_CHANGED); mRows->ModifiedText(false); } //if (mShell->IsModified()) - // gTermPref->setString (PREF_SHELL, mShell->Text()); + // PrefHandler::Default()->setString (PREF_SHELL, mShell->Text()); if (mHistory->IsModified()) { int size = atoi(mHistory->Text()); @@ -85,7 +85,7 @@ ShellPrefView::SaveIfModified() if (size > 1048575) mHistory->SetText("1048575"); - gTermPref->setString (PREF_HISTORY_SIZE, mHistory->Text()); + PrefHandler::Default()->setString (PREF_HISTORY_SIZE, mHistory->Text()); } } @@ -120,10 +120,10 @@ ShellPrefView::MessageReceived(BMessage *msg) case MSG_COLS_CHANGED: size = atoi (mCols->Text()); if (size >= MAX_COLS || size < MIN_COLS) { - mCols->SetText (gTermPref->getString (PREF_COLS)); + mCols->SetText (PrefHandler::Default()->getString (PREF_COLS)); beep (); } else { - gTermPref->setString (PREF_COLS, mCols->Text()); + PrefHandler::Default()->setString (PREF_COLS, mCols->Text()); modified = true; } break; @@ -131,16 +131,16 @@ ShellPrefView::MessageReceived(BMessage *msg) case MSG_ROWS_CHANGED: size = atoi (mRows->Text()); if (size >= MAX_COLS || size < MIN_COLS) { - mRows->SetText(gTermPref->getString(PREF_ROWS)); + mRows->SetText(PrefHandler::Default()->getString(PREF_ROWS)); beep (); } else { - gTermPref->setString(PREF_ROWS, mRows->Text()); + PrefHandler::Default()->setString(PREF_ROWS, mRows->Text()); modified = true; } break; // case MSG_SHELL_CHANGED: -// gTermPref->setString (PREF_SHELL, mShell->Text()); +// PrefHandler::Default()->setString (PREF_SHELL, mShell->Text()); // Window()->PostMessage(MSG_PREF_MODIFIED); // break; @@ -148,10 +148,10 @@ ShellPrefView::MessageReceived(BMessage *msg) size = atoi(mHistory->Text()); if (size < 512 || size > 1048575) { - mHistory->SetText(gTermPref->getString(PREF_HISTORY_SIZE)); + mHistory->SetText(PrefHandler::Default()->getString(PREF_HISTORY_SIZE)); beep (); } else { - gTermPref->setString(PREF_HISTORY_SIZE, mHistory->Text()); + PrefHandler::Default()->setString(PREF_HISTORY_SIZE, mHistory->Text()); Window()->PostMessage(MSG_PREF_MODIFIED); } break; diff --git a/src/apps/terminal/TermApp.cpp b/src/apps/terminal/TermApp.cpp index 52aad5092a..efadf27a10 100644 --- a/src/apps/terminal/TermApp.cpp +++ b/src/apps/terminal/TermApp.cpp @@ -28,10 +28,6 @@ #include - -// Globals -PrefHandler *gTermPref; - static bool sUsageRequested = false; static bool sGeometryRequested = false; @@ -77,14 +73,11 @@ TermApp::TermApp() int l = (j * 16) + 50; fTermFrame.Set(k, l, k + 50, k + 50); - - gTermPref = new PrefHandler(); } TermApp::~TermApp() { - delete gTermPref; } @@ -198,7 +191,7 @@ TermApp::ArgvReceived(int32 argc, char **argv) // Load preference file if (argmatch(argv, argc, "-p", "--preference", 4, &value, &skip_args)) - gTermPref->Open(value); + PrefHandler::Default()->Open(value); // Set window title if (argmatch(argv ,argc, "-t", "--title", 3, &value, &skip_args)) @@ -216,8 +209,8 @@ TermApp::ArgvReceived(int32 argc, char **argv) sUsageRequested = true; PostMessage(B_QUIT_REQUESTED); } - gTermPref->setInt32(PREF_COLS, width); - gTermPref->setInt32(PREF_ROWS, height); + PrefHandler::Default()->setInt32(PREF_COLS, width); + PrefHandler::Default()->setInt32(PREF_ROWS, height); fTermFrame.Set(xpos, ypos, xpos + 50, ypos + 50); sGeometryRequested = true; @@ -268,7 +261,7 @@ TermApp::RefsReceived(BMessage* message) BEntry ent(&ref); BPath path(&ent); - gTermPref->OpenText(path.Path()); + PrefHandler::Default()->OpenText(path.Path()); return; } @@ -288,7 +281,7 @@ TermApp::_MakeTermWindow(BRect &frame) if (fCommandLine.Length() > 0) command = fCommandLine.String(); else - command = gTermPref->getString(PREF_SHELL); + command = PrefHandler::Default()->getString(PREF_SHELL); try { fTermWindow = new TermWindow(frame, fWindowTitle.String(), command); diff --git a/src/apps/terminal/TermBuffer.cpp b/src/apps/terminal/TermBuffer.cpp index dad43ea95c..36fb671bc1 100644 --- a/src/apps/terminal/TermBuffer.cpp +++ b/src/apps/terminal/TermBuffer.cpp @@ -90,9 +90,6 @@ but it font is full width font on preference panel. #define ROW(x) (((x) + fRowOffset) % fBufferSize) -extern PrefHandler *gTermPref; - - TermBuffer::TermBuffer(int rows, int cols) { if (rows < 1) @@ -111,7 +108,7 @@ TermBuffer::TermBuffer(int rows, int cols) fSelStart.Set(-1,-1); fSelEnd.Set(-1,-1); - fBufferSize = gTermPref->getInt32(PREF_HISTORY_SIZE); + fBufferSize = PrefHandler::Default()->getInt32(PREF_HISTORY_SIZE); if (fBufferSize < 1000) fBufferSize = 1000; diff --git a/src/apps/terminal/TermView.cpp b/src/apps/terminal/TermView.cpp index 265c93e954..7dd407a87f 100644 --- a/src/apps/terminal/TermView.cpp +++ b/src/apps/terminal/TermView.cpp @@ -49,8 +49,6 @@ using std::nothrow; extern int function_keycode_table[]; extern char *function_key_char_table[]; -extern PrefHandler *gTermPref; // Global Preference Handler - const static rgb_color kTermColorTable[16] = { { 0, 0, 0, 0}, {255, 0, 0, 0}, @@ -83,15 +81,15 @@ TermView::TermView(BRect frame, CodeConv *inCodeConv) fBoldFlag(0), fUnderlineFlag(0), fBufferStartPos(-1), - fTermRows(gTermPref->getInt32(PREF_ROWS)), - fTermColumns(gTermPref->getInt32(PREF_COLS)), + fTermRows(PrefHandler::Default()->getInt32(PREF_ROWS)), + fTermColumns(PrefHandler::Default()->getInt32(PREF_COLS)), fTop(0), fTextBuffer(new (nothrow) TermBuffer(fTermRows, fTermColumns)), fCodeConv(inCodeConv), fScrollBar(NULL), fScrTop(0), fScrBot(fTermRows - 1), - fScrBufSize(gTermPref->getInt32(PREF_HISTORY_SIZE)), + fScrBufSize(PrefHandler::Default()->getInt32(PREF_HISTORY_SIZE)), fScrRegionSet(0), fMouseTracking(false), fMouseThread(-1), @@ -108,7 +106,7 @@ TermView::TermView(BRect frame, CodeConv *inCodeConv) SetMouseCursor(); SetTermFont(be_plain_font, be_plain_font); - //SetIMAware(gTermPref->getInt32(PREF_IM_AWARE)); + //SetIMAware(PrefHandler::Default()->getInt32(PREF_IM_AWARE)); _InitMouseThread(); } @@ -179,7 +177,7 @@ TermView::SetTermSize(int rows, int cols, bool resize) void TermView::SetMouseCursor() { - if (!strcmp(gTermPref->getString(PREF_MOUSE_IMAGE), "Hand cursor")) + if (!strcmp(PrefHandler::Default()->getString(PREF_MOUSE_IMAGE), "Hand cursor")) fMouseImage = false; else fMouseImage = true; @@ -190,12 +188,12 @@ TermView::SetMouseCursor() void TermView::SetTermColor() { - fTextForeColor = gTermPref->getRGB(PREF_TEXT_FORE_COLOR); - fTextBackColor = gTermPref->getRGB(PREF_TEXT_BACK_COLOR); - fSelectForeColor = gTermPref->getRGB(PREF_SELECT_FORE_COLOR); - fSelectBackColor = gTermPref->getRGB(PREF_SELECT_BACK_COLOR); - fCursorForeColor = gTermPref->getRGB(PREF_CURSOR_FORE_COLOR); - fCursorBackColor = gTermPref->getRGB(PREF_CURSOR_BACK_COLOR); + fTextForeColor = PrefHandler::Default()->getRGB(PREF_TEXT_FORE_COLOR); + fTextBackColor = PrefHandler::Default()->getRGB(PREF_TEXT_BACK_COLOR); + fSelectForeColor = PrefHandler::Default()->getRGB(PREF_SELECT_FORE_COLOR); + fSelectBackColor = PrefHandler::Default()->getRGB(PREF_SELECT_BACK_COLOR); + fCursorForeColor = PrefHandler::Default()->getRGB(PREF_CURSOR_FORE_COLOR); + fCursorBackColor = PrefHandler::Default()->getRGB(PREF_CURSOR_BACK_COLOR); SetLowColor(fTextBackColor); SetViewColor(fTextBackColor); @@ -777,7 +775,7 @@ TermView::MouseTracking(void *data) BRect r; if (theObj->HasSelection() - && ( gTermPref->getInt32(PREF_DRAGN_COPY) + && ( PrefHandler::Default()->getInt32(PREF_DRAGN_COPY) || modifiers() & B_CONTROL_KEY)) { if (theObj->LockLooper()) { @@ -1652,7 +1650,7 @@ TermView::MouseDown(BPoint where) // If mouse pointer is avove selected Region, start Drag'n Copy. if (inPos > stPos && inPos < edPos) { - if (mod & B_CONTROL_KEY || gTermPref->getInt32(PREF_DRAGN_COPY)) { + if (mod & B_CONTROL_KEY || PrefHandler::Default()->getInt32(PREF_DRAGN_COPY)) { BPoint p; uint32 bt; do { diff --git a/src/apps/terminal/TermWindow.cpp b/src/apps/terminal/TermWindow.cpp index 4815d54e56..6a4e86bc41 100644 --- a/src/apps/terminal/TermWindow.cpp +++ b/src/apps/terminal/TermWindow.cpp @@ -43,8 +43,6 @@ #include "Shell.h" -// Global Preference Handler -extern PrefHandler *gTermPref; // // help and GPL URL // @@ -82,20 +80,20 @@ TermWindow::TermWindow(BRect frame, const char* title, const char *command) fMatchCase(false), fMatchWord(false) { - int rows = gTermPref->getInt32(PREF_ROWS); + int rows = PrefHandler::Default()->getInt32(PREF_ROWS); if (rows < 1) { rows = 1; - gTermPref->setInt32(PREF_ROWS, rows); + PrefHandler::Default()->setInt32(PREF_ROWS, rows); } - int cols = gTermPref->getInt32(PREF_COLS); + int cols = PrefHandler::Default()->getInt32(PREF_COLS); if (cols < MIN_COLS) { cols = MIN_COLS; - gTermPref->setInt32(PREF_COLS, cols); + PrefHandler::Default()->setInt32(PREF_COLS, cols); } // Get encoding name (setenv TTYPE in spawn_shell functions) - const char *encoding = longname2shortname(gTermPref->getString(PREF_TEXT_ENCODING)); + const char *encoding = longname2shortname(PrefHandler::Default()->getString(PREF_TEXT_ENCODING)); fShell = new Shell(); status_t status = fShell->Open(rows, cols, command, encoding); if (status < 0) @@ -120,6 +118,8 @@ TermWindow::~TermWindow() fFindPanel = NULL; } + PrefHandler::DeleteDefault(); + delete fWindowUpdate; } @@ -136,21 +136,21 @@ TermWindow::InitWindow() // Setup font. - const char *family = gTermPref->getString(PREF_HALF_FONT_FAMILY); + const char *family = PrefHandler::Default()->getString(PREF_HALF_FONT_FAMILY); BFont halfFont; halfFont.SetFamilyAndStyle(family, NULL); - float size = gTermPref->getFloat(PREF_HALF_FONT_SIZE); + float size = PrefHandler::Default()->getFloat(PREF_HALF_FONT_SIZE); if (size < 6.0f) size = 6.0f; halfFont.SetSize(size); halfFont.SetSpacing(B_FIXED_SPACING); - family = gTermPref->getString(PREF_FULL_FONT_FAMILY); + family = PrefHandler::Default()->getString(PREF_FULL_FONT_FAMILY); BFont fullFont; fullFont.SetFamilyAndStyle(family, NULL); - size = gTermPref->getFloat(PREF_FULL_FONT_SIZE); + size = PrefHandler::Default()->getFloat(PREF_FULL_FONT_SIZE); if (size < 6.0f) size = 6.0f; fullFont.SetSize(size); @@ -177,8 +177,8 @@ TermWindow::InitWindow() fTermView->SetTermFont(&halfFont, &fullFont); - BRect rect = fTermView->SetTermSize(gTermPref->getInt32(PREF_ROWS), - gTermPref->getInt32(PREF_COLS), 1); + BRect rect = fTermView->SetTermSize(PrefHandler::Default()->getInt32(PREF_ROWS), + PrefHandler::Default()->getInt32(PREF_COLS), 1); int width, height; fTermView->GetFontSize(&width, &height); @@ -186,7 +186,7 @@ TermWindow::InitWindow() MIN_COLS * height, MAX_COLS * height); fTermView->SetTermColor(); - fBaseView->SetViewColor(gTermPref->getRGB(PREF_TEXT_BACK_COLOR)); + fBaseView->SetViewColor(PrefHandler::Default()->getRGB(PREF_TEXT_BACK_COLOR)); // Add offset to baseview. rect.InsetBy(-VIEW_OFFSET, -VIEW_OFFSET); @@ -218,7 +218,7 @@ TermWindow::InitWindow() fEditmenu->SetTargetForItems(fTermView); // Initialize TermParse - SetEncoding(longname2id(gTermPref->getString(PREF_TEXT_ENCODING))); + SetEncoding(longname2id(PrefHandler::Default()->getString(PREF_TEXT_ENCODING))); fTermParse = new TermParse(fShell->FD(), fTermView, fCodeConv); if (fTermParse->StartThreads() < B_OK) return; @@ -310,7 +310,7 @@ TermWindow::SetupMenu(void) // if (0 ==i) item->SetMarked(true); } } - fNewFontMenu->FindItem (gTermPref->getString(PREF_HALF_FONT_FAMILY))->SetMarked(true); + fNewFontMenu->FindItem (PrefHandler::Default()->getString(PREF_HALF_FONT_FAMILY))->SetMarked(true); */ fEncodingmenu = new BMenu("Font Encoding"); @@ -479,15 +479,15 @@ TermWindow::MessageReceived(BMessage *message) // Message from Preference panel. case MSG_ROWS_CHANGED: case MSG_COLS_CHANGED: { - r = fTermView->SetTermSize (gTermPref->getInt32 (PREF_ROWS), - gTermPref->getInt32 (PREF_COLS), 0); + r = fTermView->SetTermSize (PrefHandler::Default()->getInt32 (PREF_ROWS), + PrefHandler::Default()->getInt32 (PREF_COLS), 0); ResizeTo (r.Width()+ B_V_SCROLL_BAR_WIDTH + VIEW_OFFSET * 2, r.Height()+fMenubar->Bounds().Height() + VIEW_OFFSET *2); BPath path; if (PrefHandler::GetDefaultPath(path) == B_OK) - gTermPref->SaveAsText(path.Path(), PREFFILE_MIMETYPE); + PrefHandler::Default()->SaveAsText(path.Path(), PREFFILE_MIMETYPE); break; } case MSG_HALF_FONT_CHANGED: @@ -495,12 +495,12 @@ TermWindow::MessageReceived(BMessage *message) case MSG_HALF_SIZE_CHANGED: case MSG_FULL_SIZE_CHANGED: { - halfFont.SetFamilyAndStyle (gTermPref->getString(PREF_HALF_FONT_FAMILY),NULL); - halfFont.SetSize (gTermPref->getFloat(PREF_HALF_FONT_SIZE)); + halfFont.SetFamilyAndStyle (PrefHandler::Default()->getString(PREF_HALF_FONT_FAMILY),NULL); + halfFont.SetSize (PrefHandler::Default()->getFloat(PREF_HALF_FONT_SIZE)); halfFont.SetSpacing (B_FIXED_SPACING); - fullFont.SetFamilyAndStyle (gTermPref->getString(PREF_FULL_FONT_FAMILY),NULL); - fullFont.SetSize (gTermPref->getFloat(PREF_FULL_FONT_SIZE)); + fullFont.SetFamilyAndStyle (PrefHandler::Default()->getString(PREF_FULL_FONT_FAMILY),NULL); + fullFont.SetSize (PrefHandler::Default()->getFloat(PREF_FULL_FONT_SIZE)); fullFont.SetSpacing (B_FIXED_SPACING); fTermView->SetTermFont (&halfFont, &fullFont); @@ -520,36 +520,36 @@ TermWindow::MessageReceived(BMessage *message) break; } case EIGHTYTWENTYFOUR: { - gTermPref->setString(PREF_COLS, "80"); - gTermPref->setString(PREF_ROWS, "24"); + PrefHandler::Default()->setString(PREF_COLS, "80"); + PrefHandler::Default()->setString(PREF_ROWS, "24"); this->PostMessage (MSG_ROWS_CHANGED); this->PostMessage (MSG_COLS_CHANGED); break; } case EIGHTYTWENTYFIVE: { - gTermPref->setString(PREF_COLS, "80"); - gTermPref->setString(PREF_ROWS, "25"); + PrefHandler::Default()->setString(PREF_COLS, "80"); + PrefHandler::Default()->setString(PREF_ROWS, "25"); this->PostMessage (MSG_ROWS_CHANGED); this->PostMessage (MSG_COLS_CHANGED); break; } case EIGHTYFORTY: { - gTermPref->setString(PREF_COLS, "80"); - gTermPref->setString(PREF_ROWS, "40"); + PrefHandler::Default()->setString(PREF_COLS, "80"); + PrefHandler::Default()->setString(PREF_ROWS, "40"); this->PostMessage (MSG_ROWS_CHANGED); this->PostMessage (MSG_COLS_CHANGED); break; } case ONETHREETWOTWENTYFOUR: { - gTermPref->setString(PREF_COLS, "132"); - gTermPref->setString(PREF_ROWS, "24"); + PrefHandler::Default()->setString(PREF_COLS, "132"); + PrefHandler::Default()->setString(PREF_ROWS, "24"); this->PostMessage (MSG_ROWS_CHANGED); this->PostMessage (MSG_COLS_CHANGED); break; } case ONETHREETWOTWENTYFIVE: { - gTermPref->setString(PREF_COLS, "132"); - gTermPref->setString(PREF_ROWS, "25"); + PrefHandler::Default()->setString(PREF_COLS, "132"); + PrefHandler::Default()->setString(PREF_ROWS, "25"); this->PostMessage (MSG_ROWS_CHANGED); this->PostMessage (MSG_COLS_CHANGED); break; @@ -582,12 +582,12 @@ TermWindow::MessageReceived(BMessage *message) break; } case MSG_FONT_CHANGED: { - gTermPref->setString (PREF_HALF_FONT_FAMILY, fNewFontMenu->FindMarked()->Label()); + PrefHandler::Default()->setString (PREF_HALF_FONT_FAMILY, fNewFontMenu->FindMarked()->Label()); PostMessage (MSG_HALF_FONT_CHANGED); break; } case MSG_COLOR_CHANGED: { - fBaseView->SetViewColor (gTermPref->getRGB (PREF_TEXT_BACK_COLOR)); + fBaseView->SetViewColor (PrefHandler::Default()->getRGB (PREF_TEXT_BACK_COLOR)); fTermView->SetTermColor (); fBaseView->Invalidate(); fTermView->Invalidate(); @@ -596,7 +596,7 @@ TermWindow::MessageReceived(BMessage *message) case SAVE_AS_DEFAULT: { BPath path; if (PrefHandler::GetDefaultPath(path) == B_OK) - gTermPref->SaveAsText(path.Path(), PREFFILE_MIMETYPE); + PrefHandler::Default()->SaveAsText(path.Path(), PREFFILE_MIMETYPE); break; } case MENU_PAGE_SETUP: { diff --git a/src/apps/terminal/TermWindow.h b/src/apps/terminal/TermWindow.h index 43a806ea53..108a4dee1f 100644 --- a/src/apps/terminal/TermWindow.h +++ b/src/apps/terminal/TermWindow.h @@ -32,8 +32,6 @@ #define TERMWIN_H -#include "PrefHandler.h" - #include #include #include