void FontSelectionView::SetDefaults() { font_family family; font_style style; float size; const char* fontName; if (strcmp(Name(), "menu") == 0) fontName = "plain"; else fontName = Name(); if (_get_system_default_font_(fontName, family, style, &size) != B_OK) { Revert(); return; } BFont defaultFont; defaultFont.SetFamilyAndStyle(family, style); defaultFont.SetSize(size); if (defaultFont == fCurrentFont) return; _SelectCurrentFont(false); fCurrentFont = defaultFont; _UpdateFontPreview(); _SelectCurrentFont(true); _SelectCurrentSize(); }
void FontSelectionView::SetFont(const BFont& font) { if (font == fCurrentFont && font == fSavedFont) return; _SelectCurrentFont(false); fSavedFont = fCurrentFont = font; _UpdateFontPreview(); _SelectCurrentFont(true); _SelectCurrentSize(true); }
void FontSelectionView::Revert() { if (!IsRevertable()) return; _SelectCurrentFont(false); fCurrentFont = fSavedFont; _UpdateFontPreview(); _SelectCurrentFont(true); _SelectCurrentSize(true); }
void FontSelectionView::SetDefaults() { BFont defaultFont = _DefaultFont(); if (defaultFont == fCurrentFont) return; _SelectCurrentFont(false); fCurrentFont = defaultFont; _UpdateFontPreview(); _SelectCurrentFont(true); _SelectCurrentSize(true); }
void FontSelectionView::MessageReceived(BMessage* message) { switch (message->what) { case kMsgSetSize: { int32 size; if (message->FindInt32("size", &size) != B_OK || size == fCurrentFont.Size()) break; fCurrentFont.SetSize(size); _UpdateFontPreview(); _Invoke(); break; } case kMsgSetFamily: { const char* family; if (message->FindString("family", &family) != B_OK) break; font_style style; fCurrentFont.GetFamilyAndStyle(NULL, &style); BMenuItem* familyItem = fFontsMenu->FindItem(family); if (familyItem != NULL) { _SelectCurrentFont(false); BMenuItem* styleItem; if (fStylesMenuField != NULL) styleItem = fStylesMenuField->Menu()->FindMarked(); else { styleItem = familyItem->Submenu()->FindItem(style); if (styleItem == NULL) styleItem = familyItem->Submenu()->ItemAt(0); } if (styleItem != NULL) { styleItem->SetMarked(true); fCurrentFont.SetFamilyAndStyle(family, styleItem->Label()); _UpdateFontPreview(); } if (fStylesMenuField != NULL) _AddStylesToMenu(fCurrentFont, fStylesMenuField->Menu()); } _Invoke(); break; } case kMsgSetStyle: { const char* family; const char* style; if (message->FindString("family", &family) != B_OK || message->FindString("style", &style) != B_OK) break; BMenuItem *familyItem = fFontsMenu->FindItem(family); if (!familyItem) break; _SelectCurrentFont(false); familyItem->SetMarked(true); fCurrentFont.SetFamilyAndStyle(family, style); _UpdateFontPreview(); _Invoke(); break; } default: BHandler::MessageReceived(message); } }
void FontSelectionView::MessageReceived(BMessage* msg) { switch (msg->what) { case kMsgSetSize: { int32 size = fFontSizeSpinner->Value(); if (size == fCurrentFont.Size()) break; fCurrentFont.SetSize(size); _UpdateFontPreview(); break; } case kMsgSetFamily: { const char* family; if (msg->FindString("family", &family) != B_OK) break; font_style style; fCurrentFont.GetFamilyAndStyle(NULL, &style); BMenuItem* familyItem = fFontsMenu->FindItem(family); if (familyItem != NULL) { _SelectCurrentFont(false); BMenuItem* item = familyItem->Submenu()->FindItem(style); if (item == NULL) item = familyItem->Submenu()->ItemAt(0); if (item != NULL) { item->SetMarked(true); fCurrentFont.SetFamilyAndStyle(family, item->Label()); _UpdateFontPreview(); } } break; } case kMsgSetStyle: { const char* family; const char* style; if (msg->FindString("family", &family) != B_OK || msg->FindString("style", &style) != B_OK) break; BMenuItem *familyItem = fFontsMenu->FindItem(family); if (!familyItem) break; _SelectCurrentFont(false); familyItem->SetMarked(true); fCurrentFont.SetFamilyAndStyle(family, style); _UpdateFontPreview(); break; } default: BView::MessageReceived(msg); } }