void AppearancePrefView::Revert() { PrefHandler* pref = PrefHandler::Default(); fTabTitle->SetText(pref->getString(PREF_TAB_TITLE)); fWindowTitle->SetText(pref->getString(PREF_WINDOW_TITLE)); fWarnOnExit->SetValue(pref->getBool( PREF_WARN_ON_EXIT)); fColorSchemeField->Menu()->ItemAt(0)->SetMarked(true); fColorControl->SetValue(pref-> getRGB(PREF_TEXT_FORE_COLOR)); const char* family = pref->getString(PREF_HALF_FONT_FAMILY); const char* style = pref->getString(PREF_HALF_FONT_STYLE); const char* size = pref->getString(PREF_HALF_FONT_SIZE); _MarkSelectedFont(family, style, size); }
void AppearancePrefView::Revert() { PrefHandler* pref = PrefHandler::Default(); fTabTitle->SetText(pref->getString(PREF_TAB_TITLE)); fWindowTitle->SetText(pref->getString(PREF_WINDOW_TITLE)); fBlinkCursor->SetValue(pref->getBool(PREF_BLINK_CURSOR)); fBrightInsteadOfBold->SetValue(pref->getBool(PREF_BRIGHT_INSTEAD_OF_BOLD)); fWarnOnExit->SetValue(pref->getBool(PREF_WARN_ON_EXIT)); _SetCurrentColorScheme(); _SetEncoding(pref->getString(PREF_TEXT_ENCODING)); _SetWindowSize(pref->getInt32(PREF_ROWS), pref->getInt32(PREF_COLS)); fColorControl->SetValue(pref->getRGB(PREF_TEXT_FORE_COLOR)); const char* family = pref->getString(PREF_HALF_FONT_FAMILY); const char* style = pref->getString(PREF_HALF_FONT_STYLE); const char* size = pref->getString(PREF_HALF_FONT_SIZE); _MarkSelectedFont(family, style, size); }
void AppearancePrefView::MessageReceived(BMessage* msg) { bool modified = false; switch (msg->what) { case MSG_HALF_FONT_CHANGED: { const char* family = NULL; const char* style = NULL; const char* size = NULL; if (msg->FindString("font_family", &family) != B_OK || msg->FindString("font_style", &style) != B_OK || msg->FindString("font_size", &size) != B_OK) { break; } PrefHandler* pref = PrefHandler::Default(); const char* currentFamily = pref->getString(PREF_HALF_FONT_FAMILY); const char* currentStyle = pref->getString(PREF_HALF_FONT_STYLE); const char* currentSize = pref->getString(PREF_HALF_FONT_SIZE); if (currentFamily == NULL || strcmp(currentFamily, family) != 0 || currentStyle == NULL || strcmp(currentStyle, style) != 0 || currentSize == NULL || strcmp(currentSize, size) != 0) { pref->setString(PREF_HALF_FONT_FAMILY, family); pref->setString(PREF_HALF_FONT_STYLE, style); pref->setString(PREF_HALF_FONT_SIZE, size); _MarkSelectedFont(family, style, size); modified = true; } break; } case MSG_COLOR_CHANGED: { const BMessage* itemMessage = fColorField->Menu()->FindMarked()->Message(); const char* label = NULL; if (itemMessage->FindString("label", &label) != B_OK) break; rgb_color oldColor = PrefHandler::Default()->getRGB(label); if (oldColor != fColorControl->ValueAsColor()) { BMenuItem* item = fColorSchemeField->Menu()->FindMarked(); if (strcmp(item->Label(), gCustomColorScheme.name) != 0) { item->SetMarked(false); item = fColorSchemeField->Menu()->FindItem( gCustomColorScheme.name); if (item) item->SetMarked(true); } PrefHandler::Default()->setRGB(label, fColorControl->ValueAsColor()); modified = true; } break; } case MSG_COLOR_SCHEME_CHANGED: { color_scheme* newScheme = NULL; if (msg->FindPointer("color_scheme", (void**)&newScheme) == B_OK) { _ChangeColorScheme(newScheme); modified = true; } break; } case MSG_COLOR_FIELD_CHANGED: { const char* label = NULL; if (msg->FindString("label", &label) == B_OK) fColorControl->SetValue(PrefHandler::Default()->getRGB(label)); break; } case MSG_BLINK_CURSOR_CHANGED: if (PrefHandler::Default()->getBool(PREF_BLINK_CURSOR) != fBlinkCursor->Value()) { PrefHandler::Default()->setBool(PREF_BLINK_CURSOR, fBlinkCursor->Value()); modified = true; } break; case MSG_WARN_ON_EXIT_CHANGED: if (PrefHandler::Default()->getBool(PREF_WARN_ON_EXIT) != fWarnOnExit->Value()) { PrefHandler::Default()->setBool(PREF_WARN_ON_EXIT, fWarnOnExit->Value()); modified = true; } break; case MSG_TAB_TITLE_SETTING_CHANGED: { BString oldValue(PrefHandler::Default()->getString(PREF_TAB_TITLE)); if (oldValue != fTabTitle->Text()) { PrefHandler::Default()->setString(PREF_TAB_TITLE, fTabTitle->Text()); modified = true; } break; } case MSG_WINDOW_TITLE_SETTING_CHANGED: { BString oldValue(PrefHandler::Default()->getString( PREF_WINDOW_TITLE)); if (oldValue != fWindowTitle->Text()) { PrefHandler::Default()->setString(PREF_WINDOW_TITLE, fWindowTitle->Text()); modified = true; } break; } default: BView::MessageReceived(msg); return; } if (modified) { fTerminalMessenger.SendMessage(msg); BMessenger messenger(this); messenger.SendMessage(MSG_PREF_MODIFIED); } }