зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1349417 - Part 2: stylo: Add basic system font support, use for font-size and font-family; r=xidorn
MozReview-Commit-ID: 4ZMR83GkAZN
This commit is contained in:
Родитель
ff8c1a3788
Коммит
7e8d2f0775
|
@ -904,6 +904,12 @@ Gecko_Atomize(const char* aString, uint32_t aLength)
|
||||||
return NS_Atomize(nsDependentCSubstring(aString, aLength)).take();
|
return NS_Atomize(nsDependentCSubstring(aString, aLength)).take();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nsIAtom*
|
||||||
|
Gecko_Atomize16(const nsAString* aString)
|
||||||
|
{
|
||||||
|
return NS_Atomize(*aString).take();
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Gecko_AddRefAtom(nsIAtom* aAtom)
|
Gecko_AddRefAtom(nsIAtom* aAtom)
|
||||||
{
|
{
|
||||||
|
@ -977,6 +983,33 @@ Gecko_CopyFontFamilyFrom(nsFont* dst, const nsFont* src)
|
||||||
dst->fontlist = src->fontlist;
|
dst->fontlist = src->fontlist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Gecko_nsFont_InitSystem(nsFont* aDest, int32_t aFontId,
|
||||||
|
const nsStyleFont* aFont, RawGeckoPresContextBorrowed aPresContext)
|
||||||
|
{
|
||||||
|
|
||||||
|
const nsFont* defaultVariableFont =
|
||||||
|
aPresContext->GetDefaultFont(kPresContext_DefaultVariableFont_ID,
|
||||||
|
aFont->mLanguage);
|
||||||
|
|
||||||
|
// We have passed uninitialized memory to this function,
|
||||||
|
// initialize it. We can't simply return an nsFont because then
|
||||||
|
// we need to know its size beforehand. Servo cannot initialize nsFont
|
||||||
|
// itself, so this will do.
|
||||||
|
nsFont* system = new (aDest) nsFont(*defaultVariableFont);
|
||||||
|
|
||||||
|
*system = *defaultVariableFont;
|
||||||
|
LookAndFeel::FontID fontID = static_cast<LookAndFeel::FontID>(aFontId);
|
||||||
|
nsRuleNode::ComputeSystemFont(system, fontID, aPresContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Gecko_nsFont_Destroy(nsFont* aDest)
|
||||||
|
{
|
||||||
|
aDest->~nsFont();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Gecko_SetImageOrientation(nsStyleVisibility* aVisibility,
|
Gecko_SetImageOrientation(nsStyleVisibility* aVisibility,
|
||||||
double aRadians, bool aFlip)
|
double aRadians, bool aFlip)
|
||||||
|
|
|
@ -232,6 +232,7 @@ RawServoAnimationValueBorrowedOrNull Gecko_AnimationGetBaseStyle(
|
||||||
|
|
||||||
// Atoms.
|
// Atoms.
|
||||||
nsIAtom* Gecko_Atomize(const char* aString, uint32_t aLength);
|
nsIAtom* Gecko_Atomize(const char* aString, uint32_t aLength);
|
||||||
|
nsIAtom* Gecko_Atomize16(const nsAString* aString);
|
||||||
void Gecko_AddRefAtom(nsIAtom* aAtom);
|
void Gecko_AddRefAtom(nsIAtom* aAtom);
|
||||||
void Gecko_ReleaseAtom(nsIAtom* aAtom);
|
void Gecko_ReleaseAtom(nsIAtom* aAtom);
|
||||||
const uint16_t* Gecko_GetAtomAsUTF16(nsIAtom* aAtom, uint32_t* aLength);
|
const uint16_t* Gecko_GetAtomAsUTF16(nsIAtom* aAtom, uint32_t* aLength);
|
||||||
|
@ -243,6 +244,11 @@ void Gecko_FontFamilyList_Clear(FontFamilyList* aList);
|
||||||
void Gecko_FontFamilyList_AppendNamed(FontFamilyList* aList, nsIAtom* aName, bool aQuoted);
|
void Gecko_FontFamilyList_AppendNamed(FontFamilyList* aList, nsIAtom* aName, bool aQuoted);
|
||||||
void Gecko_FontFamilyList_AppendGeneric(FontFamilyList* list, FontFamilyType familyType);
|
void Gecko_FontFamilyList_AppendGeneric(FontFamilyList* list, FontFamilyType familyType);
|
||||||
void Gecko_CopyFontFamilyFrom(nsFont* dst, const nsFont* src);
|
void Gecko_CopyFontFamilyFrom(nsFont* dst, const nsFont* src);
|
||||||
|
// will not run destructors on dst, give it uninitialized memory
|
||||||
|
// font_id is LookAndFeel::FontID
|
||||||
|
void Gecko_nsFont_InitSystem(nsFont* dst, int32_t font_id,
|
||||||
|
const nsStyleFont* font, RawGeckoPresContextBorrowed pres_context);
|
||||||
|
void Gecko_nsFont_Destroy(nsFont* dst);
|
||||||
|
|
||||||
// Visibility style
|
// Visibility style
|
||||||
void Gecko_SetImageOrientation(nsStyleVisibility* aVisibility,
|
void Gecko_SetImageOrientation(nsStyleVisibility* aVisibility,
|
||||||
|
|
|
@ -1087,6 +1087,10 @@ public:
|
||||||
static void FillAllMaskLists(nsStyleImageLayers& aLayers,
|
static void FillAllMaskLists(nsStyleImageLayers& aLayers,
|
||||||
uint32_t aMaxItemCount);
|
uint32_t aMaxItemCount);
|
||||||
|
|
||||||
|
static void ComputeSystemFont(nsFont* aSystemFont,
|
||||||
|
mozilla::LookAndFeel::FontID aFontID,
|
||||||
|
const nsPresContext* aPresContext);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
// non-inline helper function to allow assertions without incomplete
|
// non-inline helper function to allow assertions without incomplete
|
||||||
|
@ -1099,9 +1103,6 @@ private:
|
||||||
static void StoreStyleOnContext(nsStyleContext* aContext,
|
static void StoreStyleOnContext(nsStyleContext* aContext,
|
||||||
nsStyleStructID aSID,
|
nsStyleStructID aSID,
|
||||||
void* aStruct);
|
void* aStruct);
|
||||||
static void ComputeSystemFont(nsFont* aSystemFont,
|
|
||||||
mozilla::LookAndFeel::FontID aFontID,
|
|
||||||
const nsPresContext* aPresContext);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Загрузка…
Ссылка в новой задаче