Ticket #6118: fallback2.patch
File fallback2.patch, 5.4 KB (added by , 14 years ago) |
---|
-
WebKit/haiku/API/WebSettings.cpp
31 31 #include "ApplicationCacheStorage.h" 32 32 #include "BitmapImage.h" 33 33 #include "DatabaseTracker.h" 34 #include "FontPlatformData.h" 34 35 #include "IconDatabase.h" 35 36 #include "Image.h" 36 37 #include "IntSize.h" … … 461 462 case SERIF_FONT: 462 463 fData->serifFontFamily = font; 463 464 fData->serifFontFamilySet = true; 465 WebCore::FontPlatformData::SetFallBackSerifFont(font); 464 466 break; 465 467 case SANS_SERIF_FONT: 466 468 fData->sansSerifFontFamily = font; 467 469 fData->sansSerifFontFamilySet = true; 470 WebCore::FontPlatformData::SetFallBackSansSerifFont(font); 468 471 break; 469 472 case FIXED_FONT: 470 473 fData->fixedFontFamily = font; 471 474 fData->fixedFontFamilySet = true; 475 WebCore::FontPlatformData::SetFallBackFixedFont(font); 472 476 break; 473 477 case STANDARD_FONT: 474 478 fData->standardFontFamily = font; 475 479 fData->standardFontFamilySet = true; 480 WebCore::FontPlatformData::SetFallBackStandardFont(font); 476 481 break; 477 482 } 478 483 } -
WebCore/platform/graphics/haiku/FontPlatformData.h
32 32 #include "FontDescription.h" 33 33 #include "GlyphBuffer.h" 34 34 #include <interface/Font.h> 35 #include <support/String.h> 35 36 36 37 namespace WebCore { 37 38 … … 46 47 47 48 ~FontPlatformData(); 48 49 50 static void SetFallBackSerifFont(const BString& font); 51 static void SetFallBackSansSerifFont(const BString& font); 52 static void SetFallBackFixedFont(const BString& font); 53 static void SetFallBackStandardFont(const BString& font); 54 49 55 FontPlatformData& operator=(const FontPlatformData&); 50 56 bool operator==(const FontPlatformData&) const; 51 57 … … 62 68 String description() const; 63 69 64 70 private: 71 static void findMatchingFontFamily(const AtomicString& familyName, font_family* fontFamily); 65 72 class FontPlatformDataPrivate; 66 73 FontPlatformDataPrivate* m_data; 74 75 static font_family m_FallbackSerifFontFamily; 76 static font_family m_FallbackSansSerifFontFamily; 77 static font_family m_FallbackFixedFontFamily; 78 static font_family m_FallbackStandardFontFamily; 79 67 80 }; 68 81 69 82 } // namespace WebCore -
WebCore/platform/graphics/haiku/FontPlatformDataHaiku.cpp
28 28 #include <wtf/text/CString.h> 29 29 30 30 namespace WebCore { 31 font_family FontPlatformData::m_FallbackSerifFontFamily= "DejaVu Sans"; 32 font_family FontPlatformData::m_FallbackSansSerifFontFamily = "DejaVu Serif"; 33 font_family FontPlatformData::m_FallbackFixedFontFamily = "DejaVu Mono"; 34 font_family FontPlatformData::m_FallbackStandardFontFamily = "DejaVu Serif"; 31 35 32 36 static inline bool isEmtpyValue(const float size, const bool bold, const bool oblique) 33 37 { … … 35 39 return !bold && !oblique && size == 0; 36 40 } 37 41 38 static void findMatchingFontFamily(const AtomicString& familyName, font_family* fontFamily) 42 void 43 FontPlatformData::findMatchingFontFamily(const AtomicString& familyName, font_family* fontFamily) 39 44 { 40 45 if (BFont().SetFamilyAndStyle(familyName.string().utf8().data(), 0) == B_OK) 41 46 strncpy(*fontFamily, familyName.string().utf8().data(), B_FONT_FAMILY_LENGTH + 1); 42 47 else { 43 48 // If no font family is found for the given name, we use a generic font. 44 49 if (familyName.contains("Sans", false) != B_ERROR) 45 strncpy(*fontFamily, "DejaVu Sans", B_FONT_FAMILY_LENGTH + 1);50 strncpy(*fontFamily, m_FallbackSansSerifFontFamily, B_FONT_FAMILY_LENGTH + 1); 46 51 else if (familyName.contains("Serif", false) != B_ERROR) 47 strncpy(*fontFamily, "DejaVu Serif", B_FONT_FAMILY_LENGTH + 1);52 strncpy(*fontFamily, m_FallbackSerifFontFamily, B_FONT_FAMILY_LENGTH + 1); 48 53 else if (familyName.contains("Mono", false) != B_ERROR) 49 strncpy(*fontFamily, "DejaVu Mono", B_FONT_FAMILY_LENGTH + 1);54 strncpy(*fontFamily, m_FallbackFixedFontFamily, B_FONT_FAMILY_LENGTH + 1); 50 55 else { 51 56 // This is the fallback font. 52 strncpy(*fontFamily, "DejaVu Serif", B_FONT_FAMILY_LENGTH + 1);57 strncpy(*fontFamily, m_FallbackStandardFontFamily, B_FONT_FAMILY_LENGTH + 1); 53 58 } 54 59 } 55 60 } … … 307 312 return String(fontFamily) + "/" + String(fontStyle) + String::format("/%.1f/%d&%d", size, isBold, isOblique); 308 313 } 309 314 315 void 316 FontPlatformData::SetFallBackSerifFont(const BString& font) 317 { 318 strncpy(m_FallbackSerifFontFamily, font.String(), B_FONT_FAMILY_LENGTH + 1); 319 } 320 321 void 322 FontPlatformData::SetFallBackSansSerifFont(const BString& font) 323 { 324 strncpy(m_FallbackSansSerifFontFamily, font.String(), B_FONT_FAMILY_LENGTH + 1); 325 } 326 327 void 328 FontPlatformData::SetFallBackFixedFont(const BString& font) 329 { 330 strncpy(m_FallbackFixedFontFamily, font.String(), B_FONT_FAMILY_LENGTH + 1); 331 } 332 333 void 334 FontPlatformData::SetFallBackStandardFont(const BString& font) 335 { 336 strncpy(m_FallbackStandardFontFamily, font.String(), B_FONT_FAMILY_LENGTH + 1); 337 } 338 310 339 } // namespace WebCore 311 340