зеркало из https://github.com/mozilla/pjs.git
Bug 87229. Replace giant switch statements with bit-ops and jump tables where appropriate. r=attinasi, sr=hyatt
This commit is contained in:
Родитель
cfa7baea01
Коммит
f981ffed5f
|
@ -191,134 +191,35 @@ struct nsResetStyleData
|
||||||
|
|
||||||
struct nsCachedStyleData
|
struct nsCachedStyleData
|
||||||
{
|
{
|
||||||
|
struct StyleStructInfo {
|
||||||
|
ptrdiff_t mCachedStyleDataOffset;
|
||||||
|
ptrdiff_t mInheritResetOffset;
|
||||||
|
PRBool mIsReset;
|
||||||
|
};
|
||||||
|
|
||||||
|
static StyleStructInfo gInfo[];
|
||||||
|
|
||||||
nsInheritedStyleData* mInheritedData;
|
nsInheritedStyleData* mInheritedData;
|
||||||
nsResetStyleData* mResetData;
|
nsResetStyleData* mResetData;
|
||||||
|
|
||||||
static PRBool IsReset(const nsStyleStructID& aSID)
|
static PRBool IsReset(const nsStyleStructID& aSID) {
|
||||||
{
|
return gInfo[aSID].mIsReset;
|
||||||
switch (aSID) {
|
|
||||||
case eStyleStruct_Visibility: // [Inherited]
|
|
||||||
case eStyleStruct_Font:
|
|
||||||
case eStyleStruct_List:
|
|
||||||
case eStyleStruct_TableBorder:
|
|
||||||
case eStyleStruct_Color:
|
|
||||||
case eStyleStruct_Quotes:
|
|
||||||
case eStyleStruct_Text:
|
|
||||||
case eStyleStruct_UserInterface:
|
|
||||||
return PR_FALSE;
|
|
||||||
case eStyleStruct_Display: // [Reset]
|
|
||||||
case eStyleStruct_Margin:
|
|
||||||
case eStyleStruct_Padding:
|
|
||||||
case eStyleStruct_Border:
|
|
||||||
case eStyleStruct_Outline:
|
|
||||||
case eStyleStruct_Position:
|
|
||||||
case eStyleStruct_Table:
|
|
||||||
case eStyleStruct_Background:
|
|
||||||
case eStyleStruct_Content:
|
|
||||||
case eStyleStruct_XUL:
|
|
||||||
case eStyleStruct_TextReset:
|
|
||||||
case eStyleStruct_UIReset:
|
|
||||||
return PR_TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return PR_TRUE;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static PRUint32 GetBitForSID(const nsStyleStructID& aSID)
|
static PRUint32 GetBitForSID(const nsStyleStructID& aSID) {
|
||||||
{
|
return 1 << (aSID - 1);
|
||||||
switch (aSID) {
|
|
||||||
case eStyleStruct_Visibility:
|
|
||||||
return NS_STYLE_INHERIT_VISIBILITY;
|
|
||||||
case eStyleStruct_Font:
|
|
||||||
return NS_STYLE_INHERIT_FONT;
|
|
||||||
case eStyleStruct_Color:
|
|
||||||
return NS_STYLE_INHERIT_COLOR;
|
|
||||||
case eStyleStruct_Background:
|
|
||||||
return NS_STYLE_INHERIT_BACKGROUND;
|
|
||||||
case eStyleStruct_List:
|
|
||||||
return NS_STYLE_INHERIT_LIST;
|
|
||||||
case eStyleStruct_Position:
|
|
||||||
return NS_STYLE_INHERIT_POSITION;
|
|
||||||
case eStyleStruct_Text:
|
|
||||||
return NS_STYLE_INHERIT_TEXT;
|
|
||||||
case eStyleStruct_TextReset:
|
|
||||||
return NS_STYLE_INHERIT_TEXT_RESET;
|
|
||||||
case eStyleStruct_Display:
|
|
||||||
return NS_STYLE_INHERIT_DISPLAY;
|
|
||||||
case eStyleStruct_Table:
|
|
||||||
return NS_STYLE_INHERIT_TABLE;
|
|
||||||
case eStyleStruct_TableBorder:
|
|
||||||
return NS_STYLE_INHERIT_TABLE_BORDER;
|
|
||||||
case eStyleStruct_Content:
|
|
||||||
return NS_STYLE_INHERIT_CONTENT;
|
|
||||||
case eStyleStruct_UserInterface:
|
|
||||||
return NS_STYLE_INHERIT_UI;
|
|
||||||
case eStyleStruct_UIReset:
|
|
||||||
return NS_STYLE_INHERIT_UI_RESET;
|
|
||||||
case eStyleStruct_Margin:
|
|
||||||
return NS_STYLE_INHERIT_MARGIN;
|
|
||||||
case eStyleStruct_Padding:
|
|
||||||
return NS_STYLE_INHERIT_PADDING;
|
|
||||||
case eStyleStruct_Border:
|
|
||||||
return NS_STYLE_INHERIT_BORDER;
|
|
||||||
case eStyleStruct_Outline:
|
|
||||||
return NS_STYLE_INHERIT_OUTLINE;
|
|
||||||
case eStyleStruct_Quotes:
|
|
||||||
return NS_STYLE_INHERIT_QUOTES;
|
|
||||||
#ifdef INCLUDE_XUL
|
|
||||||
case eStyleStruct_XUL:
|
|
||||||
return NS_STYLE_INHERIT_XUL;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
nsStyleStruct* GetStyleData(const nsStyleStructID& aSID) {
|
nsStyleStruct* GetStyleData(const nsStyleStructID& aSID) {
|
||||||
switch (aSID) {
|
const StyleStructInfo& info = gInfo[aSID];
|
||||||
case eStyleStruct_Display:
|
char* resetOrInheritSlot = NS_REINTERPRET_CAST(char*, this) + info.mCachedStyleDataOffset;
|
||||||
return mResetData ? mResetData->mDisplayData : nsnull;
|
char* resetOrInherit = NS_REINTERPRET_CAST(char*, *NS_REINTERPRET_CAST(void**, resetOrInheritSlot));
|
||||||
case eStyleStruct_Visibility:
|
nsStyleStruct* data = nsnull;
|
||||||
return mInheritedData ? mInheritedData->mVisibilityData : nsnull;
|
if (resetOrInherit) {
|
||||||
case eStyleStruct_Font:
|
char* dataSlot = resetOrInherit + info.mInheritResetOffset;
|
||||||
return mInheritedData ? mInheritedData->mFontData : nsnull;
|
data = *NS_REINTERPRET_CAST(nsStyleStruct**, dataSlot);
|
||||||
case eStyleStruct_Color:
|
|
||||||
return mInheritedData ? mInheritedData->mColorData : nsnull;
|
|
||||||
case eStyleStruct_Background:
|
|
||||||
return mResetData ? mResetData->mBackgroundData : nsnull;
|
|
||||||
case eStyleStruct_Margin:
|
|
||||||
return mResetData ? mResetData->mMarginData : nsnull;
|
|
||||||
case eStyleStruct_Padding:
|
|
||||||
return mResetData ? mResetData->mPaddingData : nsnull;
|
|
||||||
case eStyleStruct_Border:
|
|
||||||
return mResetData ? mResetData->mBorderData : nsnull;
|
|
||||||
case eStyleStruct_Outline:
|
|
||||||
return mResetData ? mResetData->mOutlineData : nsnull;
|
|
||||||
case eStyleStruct_List:
|
|
||||||
return mInheritedData ? mInheritedData->mListData : nsnull;
|
|
||||||
case eStyleStruct_Position:
|
|
||||||
return mResetData ? mResetData->mPositionData : nsnull;
|
|
||||||
case eStyleStruct_Table:
|
|
||||||
return mResetData ? mResetData->mTableData : nsnull;
|
|
||||||
case eStyleStruct_TableBorder:
|
|
||||||
return mInheritedData ? mInheritedData->mTableData : nsnull;
|
|
||||||
case eStyleStruct_Content:
|
|
||||||
return mResetData ? mResetData->mContentData : nsnull;
|
|
||||||
case eStyleStruct_Quotes:
|
|
||||||
return mInheritedData ? mInheritedData->mQuotesData : nsnull;
|
|
||||||
case eStyleStruct_Text:
|
|
||||||
return mInheritedData ? mInheritedData->mTextData : nsnull;
|
|
||||||
case eStyleStruct_TextReset:
|
|
||||||
return mResetData ? mResetData->mTextData : nsnull;
|
|
||||||
case eStyleStruct_UserInterface:
|
|
||||||
return mInheritedData ? mInheritedData->mUIData : nsnull;
|
|
||||||
case eStyleStruct_UIReset:
|
|
||||||
return mResetData ? mResetData->mUIData : nsnull;
|
|
||||||
#ifdef INCLUDE_XUL
|
|
||||||
case eStyleStruct_XUL:
|
|
||||||
return mResetData ? mResetData->mXULData : nsnull;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
return nsnull;
|
return data;
|
||||||
};
|
};
|
||||||
|
|
||||||
void ClearInheritedData(PRUint32 aBits) {
|
void ClearInheritedData(PRUint32 aBits) {
|
||||||
|
@ -368,7 +269,7 @@ struct nsRuleData
|
||||||
|
|
||||||
nsRuleData(const nsStyleStructID& aSID, nsIPresContext* aContext, nsIStyleContext* aStyleContext)
|
nsRuleData(const nsStyleStructID& aSID, nsIPresContext* aContext, nsIStyleContext* aStyleContext)
|
||||||
:mSID(aSID), mPresContext(aContext), mStyleContext(aStyleContext), mPostResolveCallback(nsnull),
|
:mSID(aSID), mPresContext(aContext), mStyleContext(aStyleContext), mPostResolveCallback(nsnull),
|
||||||
mAttributes(nsnull), mDisplayData(nsnull), mFontData(nsnull), mMarginData(nsnull), mListData(nsnull),
|
mAttributes(nsnull), mFontData(nsnull), mDisplayData(nsnull), mMarginData(nsnull), mListData(nsnull),
|
||||||
mPositionData(nsnull), mTableData(nsnull), mColorData(nsnull), mContentData(nsnull), mTextData(nsnull),
|
mPositionData(nsnull), mTableData(nsnull), mColorData(nsnull), mContentData(nsnull), mTextData(nsnull),
|
||||||
mUIData(nsnull)
|
mUIData(nsnull)
|
||||||
{
|
{
|
||||||
|
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -96,101 +96,107 @@ protected:
|
||||||
nsRuleData* aRuleData,
|
nsRuleData* aRuleData,
|
||||||
nsCSSStruct* aSpecificData);
|
nsCSSStruct* aSpecificData);
|
||||||
|
|
||||||
const nsStyleStruct* ComputeStyleData(const nsStyleStructID& aSID, nsStyleStruct* aStartStruct,
|
const nsStyleStruct* ComputeDisplayData(nsStyleStruct* aStartDisplay, const nsCSSStruct& aDisplayData,
|
||||||
const nsCSSStruct& aStartData,
|
|
||||||
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
|
||||||
const nsStyleStruct* ComputeDisplayData(nsStyleDisplay* aStartDisplay, const nsCSSDisplay& aDisplayData,
|
|
||||||
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeVisibilityData(nsStyleVisibility* aStartVisibility, const nsCSSDisplay& aDisplayData,
|
const nsStyleStruct* ComputeVisibilityData(nsStyleStruct* aStartVisibility, const nsCSSStruct& aDisplayData,
|
||||||
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeFontData(nsStyleFont* aStartFont, const nsCSSFont& aFontData,
|
const nsStyleStruct* ComputeFontData(nsStyleStruct* aStartFont, const nsCSSStruct& aFontData,
|
||||||
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeColorData(nsStyleColor* aStartColor, const nsCSSColor& aColorData,
|
const nsStyleStruct* ComputeColorData(nsStyleStruct* aStartColor, const nsCSSStruct& aColorData,
|
||||||
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeBackgroundData(nsStyleBackground* aStartBackground, const nsCSSColor& aColorData,
|
const nsStyleStruct* ComputeBackgroundData(nsStyleStruct* aStartBackground, const nsCSSStruct& aColorData,
|
||||||
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeMarginData(nsStyleMargin* aStartMargin, const nsCSSMargin& aMarginData,
|
const nsStyleStruct* ComputeMarginData(nsStyleStruct* aStartMargin, const nsCSSStruct& aMarginData,
|
||||||
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeBorderData(nsStyleBorder* aStartBorder, const nsCSSMargin& aMarginData,
|
const nsStyleStruct* ComputeBorderData(nsStyleStruct* aStartBorder, const nsCSSStruct& aMarginData,
|
||||||
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputePaddingData(nsStylePadding* aStartPadding, const nsCSSMargin& aMarginData,
|
const nsStyleStruct* ComputePaddingData(nsStyleStruct* aStartPadding, const nsCSSStruct& aMarginData,
|
||||||
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeOutlineData(nsStyleOutline* aStartOutline, const nsCSSMargin& aMarginData,
|
const nsStyleStruct* ComputeOutlineData(nsStyleStruct* aStartOutline, const nsCSSStruct& aMarginData,
|
||||||
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeListData(nsStyleList* aStartList, const nsCSSList& aListData,
|
const nsStyleStruct* ComputeListData(nsStyleStruct* aStartList, const nsCSSStruct& aListData,
|
||||||
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputePositionData(nsStylePosition* aStartPosition, const nsCSSPosition& aPositionData,
|
const nsStyleStruct* ComputePositionData(nsStyleStruct* aStartPosition, const nsCSSStruct& aPositionData,
|
||||||
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeTableData(nsStyleTable* aStartTable, const nsCSSTable& aTableData,
|
const nsStyleStruct* ComputeTableData(nsStyleStruct* aStartTable, const nsCSSStruct& aTableData,
|
||||||
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
nsIStyleContext* aContext, nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeTableBorderData(nsStyleTableBorder* aStartTable, const nsCSSTable& aTableData,
|
const nsStyleStruct* ComputeTableBorderData(nsStyleStruct* aStartTable, const nsCSSStruct& aTableData,
|
||||||
nsIStyleContext* aContext,
|
nsIStyleContext* aContext,
|
||||||
nsRuleNode* aHighestNode,
|
nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeContentData(nsStyleContent* aStartContent, const nsCSSContent& aData,
|
const nsStyleStruct* ComputeContentData(nsStyleStruct* aStartContent, const nsCSSStruct& aData,
|
||||||
nsIStyleContext* aContext,
|
nsIStyleContext* aContext,
|
||||||
nsRuleNode* aHighestNode,
|
nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeQuotesData(nsStyleQuotes* aStartQuotes, const nsCSSContent& aData,
|
const nsStyleStruct* ComputeQuotesData(nsStyleStruct* aStartQuotes, const nsCSSStruct& aData,
|
||||||
nsIStyleContext* aContext,
|
nsIStyleContext* aContext,
|
||||||
nsRuleNode* aHighestNode,
|
nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeTextData(nsStyleText* aStartData, const nsCSSText& aData,
|
const nsStyleStruct* ComputeTextData(nsStyleStruct* aStartData, const nsCSSStruct& aData,
|
||||||
nsIStyleContext* aContext,
|
nsIStyleContext* aContext,
|
||||||
nsRuleNode* aHighestNode,
|
nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeTextResetData(nsStyleTextReset* aStartData, const nsCSSText& aData,
|
const nsStyleStruct* ComputeTextResetData(nsStyleStruct* aStartData, const nsCSSStruct& aData,
|
||||||
nsIStyleContext* aContext,
|
nsIStyleContext* aContext,
|
||||||
nsRuleNode* aHighestNode,
|
nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeUIData(nsStyleUserInterface* aStartData, const nsCSSUserInterface& aData,
|
const nsStyleStruct* ComputeUIData(nsStyleStruct* aStartData, const nsCSSStruct& aData,
|
||||||
nsIStyleContext* aContext,
|
nsIStyleContext* aContext,
|
||||||
nsRuleNode* aHighestNode,
|
nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
const nsStyleStruct* ComputeUIResetData(nsStyleUIReset* aStartData, const nsCSSUserInterface& aData,
|
const nsStyleStruct* ComputeUIResetData(nsStyleStruct* aStartData, const nsCSSStruct& aData,
|
||||||
nsIStyleContext* aContext,
|
nsIStyleContext* aContext,
|
||||||
nsRuleNode* aHighestNode,
|
nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
#ifdef INCLUDE_XUL
|
#ifdef INCLUDE_XUL
|
||||||
const nsStyleStruct* ComputeXULData(nsStyleXUL* aStartXUL, const nsCSSXUL& aXULData,
|
const nsStyleStruct* ComputeXULData(nsStyleStruct* aStartXUL, const nsCSSStruct& aXULData,
|
||||||
nsIStyleContext* aContext,
|
nsIStyleContext* aContext,
|
||||||
nsRuleNode* aHighestNode,
|
nsRuleNode* aHighestNode,
|
||||||
const RuleDetail& aRuleDetail, PRBool aInherited);
|
const RuleDetail& aRuleDetail, PRBool aInherited);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
RuleDetail CheckSpecifiedProperties(const nsStyleStructID& aSID, const nsCSSStruct& aCSSStruct);
|
typedef const nsStyleStruct*
|
||||||
RuleDetail CheckDisplayProperties(const nsCSSDisplay& aDisplay);
|
(nsRuleNode::*ComputeStyleDataFn)(nsStyleStruct* aStartStruct,
|
||||||
RuleDetail CheckVisibilityProperties(const nsCSSDisplay& aDisplay);
|
const nsCSSStruct& aStartData,
|
||||||
RuleDetail CheckFontProperties(const nsCSSFont& aFont);
|
nsIStyleContext* aContext,
|
||||||
RuleDetail CheckColorProperties(const nsCSSColor& aColor);
|
nsRuleNode* aHighestNode,
|
||||||
RuleDetail CheckBackgroundProperties(const nsCSSColor& aColor);
|
const RuleDetail& aRuleDetail,
|
||||||
RuleDetail CheckMarginProperties(const nsCSSMargin& aMargin);
|
PRBool aInherited);
|
||||||
RuleDetail CheckBorderProperties(const nsCSSMargin& aMargin);
|
|
||||||
RuleDetail CheckPaddingProperties(const nsCSSMargin& aMargin);
|
static ComputeStyleDataFn gComputeStyleDataFn[];
|
||||||
RuleDetail CheckOutlineProperties(const nsCSSMargin& aMargin);
|
|
||||||
RuleDetail CheckListProperties(const nsCSSList& aList);
|
inline RuleDetail CheckSpecifiedProperties(const nsStyleStructID& aSID, const nsCSSStruct& aCSSStruct);
|
||||||
RuleDetail CheckPositionProperties(const nsCSSPosition& aPosition);
|
inline RuleDetail CheckDisplayProperties(const nsCSSDisplay& aDisplay);
|
||||||
RuleDetail CheckTableProperties(const nsCSSTable& aTable);
|
inline RuleDetail CheckVisibilityProperties(const nsCSSDisplay& aDisplay);
|
||||||
RuleDetail CheckTableBorderProperties(const nsCSSTable& aTable);
|
inline RuleDetail CheckFontProperties(const nsCSSFont& aFont);
|
||||||
RuleDetail CheckContentProperties(const nsCSSContent& aContent);
|
inline RuleDetail CheckColorProperties(const nsCSSColor& aColor);
|
||||||
RuleDetail CheckQuotesProperties(const nsCSSContent& aContent);
|
inline RuleDetail CheckBackgroundProperties(const nsCSSColor& aColor);
|
||||||
RuleDetail CheckTextProperties(const nsCSSText& aText);
|
inline RuleDetail CheckMarginProperties(const nsCSSMargin& aMargin);
|
||||||
RuleDetail CheckTextResetProperties(const nsCSSText& aText);
|
inline RuleDetail CheckBorderProperties(const nsCSSMargin& aMargin);
|
||||||
RuleDetail CheckUIProperties(const nsCSSUserInterface& aUI);
|
inline RuleDetail CheckPaddingProperties(const nsCSSMargin& aMargin);
|
||||||
RuleDetail CheckUIResetProperties(const nsCSSUserInterface& aUI);
|
inline RuleDetail CheckOutlineProperties(const nsCSSMargin& aMargin);
|
||||||
|
inline RuleDetail CheckListProperties(const nsCSSList& aList);
|
||||||
|
inline RuleDetail CheckPositionProperties(const nsCSSPosition& aPosition);
|
||||||
|
inline RuleDetail CheckTableProperties(const nsCSSTable& aTable);
|
||||||
|
inline RuleDetail CheckTableBorderProperties(const nsCSSTable& aTable);
|
||||||
|
inline RuleDetail CheckContentProperties(const nsCSSContent& aContent);
|
||||||
|
inline RuleDetail CheckQuotesProperties(const nsCSSContent& aContent);
|
||||||
|
inline RuleDetail CheckTextProperties(const nsCSSText& aText);
|
||||||
|
inline RuleDetail CheckTextResetProperties(const nsCSSText& aText);
|
||||||
|
inline RuleDetail CheckUIProperties(const nsCSSUserInterface& aUI);
|
||||||
|
inline RuleDetail CheckUIResetProperties(const nsCSSUserInterface& aUI);
|
||||||
|
|
||||||
#ifdef INCLUDE_XUL
|
#ifdef INCLUDE_XUL
|
||||||
RuleDetail CheckXULProperties(const nsCSSXUL& aXUL);
|
RuleDetail CheckXULProperties(const nsCSSXUL& aXUL);
|
||||||
|
@ -220,6 +226,9 @@ protected:
|
||||||
const nsStyleStruct* GetXULData(nsIStyleContext* aContext);
|
const nsStyleStruct* GetXULData(nsIStyleContext* aContext);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef const nsStyleStruct* (nsRuleNode::*GetStyleDataFn)(nsIStyleContext*);
|
||||||
|
static GetStyleDataFn gGetStyleDataFn[];
|
||||||
|
|
||||||
public:
|
public:
|
||||||
nsRuleNode(nsIPresContext* aPresContext, nsIStyleRule* aRule=nsnull, nsRuleNode* aParent=nsnull);
|
nsRuleNode(nsIPresContext* aPresContext, nsIStyleRule* aRule=nsnull, nsRuleNode* aParent=nsnull);
|
||||||
virtual ~nsRuleNode();
|
virtual ~nsRuleNode();
|
||||||
|
|
|
@ -41,6 +41,122 @@
|
||||||
#include "nsIServiceManager.h"
|
#include "nsIServiceManager.h"
|
||||||
#include "nsIPref.h"
|
#include "nsIPref.h"
|
||||||
|
|
||||||
|
// XXX This is here because nsCachedStyleData is accessed outside of
|
||||||
|
// the content module; e.g., by nsCSSFrameConstructor.
|
||||||
|
#include "nsIRuleNode.h"
|
||||||
|
|
||||||
|
nsCachedStyleData::StyleStructInfo
|
||||||
|
nsCachedStyleData::gInfo[] = {
|
||||||
|
// Note that these must line up _exactly_ with the numeric values of
|
||||||
|
// the nsStyleStructID enum.
|
||||||
|
{ 0, 0, 0 },
|
||||||
|
|
||||||
|
/* eStyleStruct_Font */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mFontData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Color */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mColorData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Background */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mBackgroundData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_List */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mListData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Position */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mPositionData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Text */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mTextData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_TextReset */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mTextData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Display */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mDisplayData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Visibility */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mVisibilityData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Content */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mContentData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Quotes */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mQuotesData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_UserInterface */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mUIData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_UIReset */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mUIData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Table */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mTableData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_TableBorder */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mTableData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Margin */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mMarginData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Padding */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mPaddingData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Border */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mBorderData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Outline */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mOutlineData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
#ifdef INCLUDE_XUL
|
||||||
|
/* eStyleStruct_XUL */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mXULData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
#endif
|
||||||
|
|
||||||
|
{ 0, 0, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
||||||
|
|
||||||
#define POSITIVE_SCALE_FACTOR 1.10 /* 10% */
|
#define POSITIVE_SCALE_FACTOR 1.10 /* 10% */
|
||||||
|
|
|
@ -39,37 +39,6 @@
|
||||||
|
|
||||||
class nsIFrame;
|
class nsIFrame;
|
||||||
|
|
||||||
// Bits for each struct.
|
|
||||||
#define NS_STYLE_INHERIT_FONT 0x000001
|
|
||||||
#define NS_STYLE_INHERIT_COLOR 0x000002
|
|
||||||
#define NS_STYLE_INHERIT_BACKGROUND 0x000004
|
|
||||||
#define NS_STYLE_INHERIT_LIST 0x000008
|
|
||||||
#define NS_STYLE_INHERIT_POSITION 0x000010
|
|
||||||
#define NS_STYLE_INHERIT_TEXT 0x000020
|
|
||||||
#define NS_STYLE_INHERIT_TEXT_RESET 0x000040
|
|
||||||
#define NS_STYLE_INHERIT_DISPLAY 0x000080
|
|
||||||
#define NS_STYLE_INHERIT_VISIBILITY 0x000100
|
|
||||||
#define NS_STYLE_INHERIT_TABLE 0x000200
|
|
||||||
#define NS_STYLE_INHERIT_TABLE_BORDER 0x000400
|
|
||||||
#define NS_STYLE_INHERIT_CONTENT 0x000800
|
|
||||||
#define NS_STYLE_INHERIT_QUOTES 0x001000
|
|
||||||
#define NS_STYLE_INHERIT_UI 0x002000
|
|
||||||
#define NS_STYLE_INHERIT_UI_RESET 0x004000
|
|
||||||
#define NS_STYLE_INHERIT_MARGIN 0x008000
|
|
||||||
#define NS_STYLE_INHERIT_PADDING 0x010000
|
|
||||||
#define NS_STYLE_INHERIT_BORDER 0x020000
|
|
||||||
#define NS_STYLE_INHERIT_OUTLINE 0x040000
|
|
||||||
#define NS_STYLE_INHERIT_XUL 0x080000
|
|
||||||
|
|
||||||
#define NS_STYLE_INHERIT_MASK 0x0fffff
|
|
||||||
|
|
||||||
// A bit to test whether or not a style context can be shared
|
|
||||||
// by siblings.
|
|
||||||
#define NS_STYLE_UNIQUE_CONTEXT 0x100000
|
|
||||||
|
|
||||||
// A bit to test whether or not we have any text decorations.
|
|
||||||
#define NS_STYLE_HAS_TEXT_DECORATIONS 0x200000
|
|
||||||
|
|
||||||
enum nsStyleStructID {
|
enum nsStyleStructID {
|
||||||
eStyleStruct_Font = 1,
|
eStyleStruct_Font = 1,
|
||||||
eStyleStruct_Color = 2,
|
eStyleStruct_Color = 2,
|
||||||
|
@ -95,6 +64,38 @@ enum nsStyleStructID {
|
||||||
eStyleStruct_BorderPaddingShortcut = 21 // only for use in GetStyle()
|
eStyleStruct_BorderPaddingShortcut = 21 // only for use in GetStyle()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Bits for each struct.
|
||||||
|
#define NS_STYLE_INHERIT_BIT(sid_) (1 << (PRInt32(sid_) - 1))
|
||||||
|
#define NS_STYLE_INHERIT_FONT NS_STYLE_INHERIT_BIT(eStyleStruct_Font)
|
||||||
|
#define NS_STYLE_INHERIT_COLOR NS_STYLE_INHERIT_BIT(eStyleStruct_Color)
|
||||||
|
#define NS_STYLE_INHERIT_BACKGROUND NS_STYLE_INHERIT_BIT(eStyleStruct_Background)
|
||||||
|
#define NS_STYLE_INHERIT_LIST NS_STYLE_INHERIT_BIT(eStyleStruct_List)
|
||||||
|
#define NS_STYLE_INHERIT_POSITION NS_STYLE_INHERIT_BIT(eStyleStruct_Position)
|
||||||
|
#define NS_STYLE_INHERIT_TEXT NS_STYLE_INHERIT_BIT(eStyleStruct_Text)
|
||||||
|
#define NS_STYLE_INHERIT_TEXT_RESET NS_STYLE_INHERIT_BIT(eStyleStruct_TextReset)
|
||||||
|
#define NS_STYLE_INHERIT_DISPLAY NS_STYLE_INHERIT_BIT(eStyleStruct_Display)
|
||||||
|
#define NS_STYLE_INHERIT_VISIBILITY NS_STYLE_INHERIT_BIT(eStyleStruct_Visibility)
|
||||||
|
#define NS_STYLE_INHERIT_TABLE NS_STYLE_INHERIT_BIT(eStyleStruct_Table)
|
||||||
|
#define NS_STYLE_INHERIT_TABLE_BORDER NS_STYLE_INHERIT_BIT(eStyleStruct_TableBorder)
|
||||||
|
#define NS_STYLE_INHERIT_CONTENT NS_STYLE_INHERIT_BIT(eStyleStruct_Content)
|
||||||
|
#define NS_STYLE_INHERIT_QUOTES NS_STYLE_INHERIT_BIT(eStyleStruct_Quotes)
|
||||||
|
#define NS_STYLE_INHERIT_UI NS_STYLE_INHERIT_BIT(eStyleStruct_UserInterface)
|
||||||
|
#define NS_STYLE_INHERIT_UI_RESET NS_STYLE_INHERIT_BIT(eStyleStruct_UIReset)
|
||||||
|
#define NS_STYLE_INHERIT_MARGIN NS_STYLE_INHERIT_BIT(eStyleStruct_Margin)
|
||||||
|
#define NS_STYLE_INHERIT_PADDING NS_STYLE_INHERIT_BIT(eStyleStruct_Padding)
|
||||||
|
#define NS_STYLE_INHERIT_BORDER NS_STYLE_INHERIT_BIT(eStyleStruct_Border)
|
||||||
|
#define NS_STYLE_INHERIT_OUTLINE NS_STYLE_INHERIT_BIT(eStyleStruct_Outline)
|
||||||
|
#define NS_STYLE_INHERIT_XUL NS_STYLE_INHERIT_BIT(eStyleStruct_XUL)
|
||||||
|
|
||||||
|
#define NS_STYLE_INHERIT_MASK 0x0fffff
|
||||||
|
|
||||||
|
// A bit to test whether or not a style context can be shared
|
||||||
|
// by siblings.
|
||||||
|
#define NS_STYLE_UNIQUE_CONTEXT 0x100000
|
||||||
|
|
||||||
|
// A bit to test whether or not we have any text decorations.
|
||||||
|
#define NS_STYLE_HAS_TEXT_DECORATIONS 0x200000
|
||||||
|
|
||||||
// The actual structs start here
|
// The actual structs start here
|
||||||
struct nsStyleStruct {
|
struct nsStyleStruct {
|
||||||
};
|
};
|
||||||
|
|
|
@ -41,6 +41,122 @@
|
||||||
#include "nsIServiceManager.h"
|
#include "nsIServiceManager.h"
|
||||||
#include "nsIPref.h"
|
#include "nsIPref.h"
|
||||||
|
|
||||||
|
// XXX This is here because nsCachedStyleData is accessed outside of
|
||||||
|
// the content module; e.g., by nsCSSFrameConstructor.
|
||||||
|
#include "nsIRuleNode.h"
|
||||||
|
|
||||||
|
nsCachedStyleData::StyleStructInfo
|
||||||
|
nsCachedStyleData::gInfo[] = {
|
||||||
|
// Note that these must line up _exactly_ with the numeric values of
|
||||||
|
// the nsStyleStructID enum.
|
||||||
|
{ 0, 0, 0 },
|
||||||
|
|
||||||
|
/* eStyleStruct_Font */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mFontData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Color */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mColorData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Background */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mBackgroundData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_List */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mListData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Position */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mPositionData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Text */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mTextData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_TextReset */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mTextData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Display */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mDisplayData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Visibility */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mVisibilityData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Content */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mContentData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Quotes */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mQuotesData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_UserInterface */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mUIData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_UIReset */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mUIData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Table */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mTableData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_TableBorder */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mTableData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Margin */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mMarginData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Padding */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mPaddingData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Border */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mBorderData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Outline */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mOutlineData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
#ifdef INCLUDE_XUL
|
||||||
|
/* eStyleStruct_XUL */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mXULData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
#endif
|
||||||
|
|
||||||
|
{ 0, 0, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
||||||
|
|
||||||
#define POSITIVE_SCALE_FACTOR 1.10 /* 10% */
|
#define POSITIVE_SCALE_FACTOR 1.10 /* 10% */
|
||||||
|
|
|
@ -39,37 +39,6 @@
|
||||||
|
|
||||||
class nsIFrame;
|
class nsIFrame;
|
||||||
|
|
||||||
// Bits for each struct.
|
|
||||||
#define NS_STYLE_INHERIT_FONT 0x000001
|
|
||||||
#define NS_STYLE_INHERIT_COLOR 0x000002
|
|
||||||
#define NS_STYLE_INHERIT_BACKGROUND 0x000004
|
|
||||||
#define NS_STYLE_INHERIT_LIST 0x000008
|
|
||||||
#define NS_STYLE_INHERIT_POSITION 0x000010
|
|
||||||
#define NS_STYLE_INHERIT_TEXT 0x000020
|
|
||||||
#define NS_STYLE_INHERIT_TEXT_RESET 0x000040
|
|
||||||
#define NS_STYLE_INHERIT_DISPLAY 0x000080
|
|
||||||
#define NS_STYLE_INHERIT_VISIBILITY 0x000100
|
|
||||||
#define NS_STYLE_INHERIT_TABLE 0x000200
|
|
||||||
#define NS_STYLE_INHERIT_TABLE_BORDER 0x000400
|
|
||||||
#define NS_STYLE_INHERIT_CONTENT 0x000800
|
|
||||||
#define NS_STYLE_INHERIT_QUOTES 0x001000
|
|
||||||
#define NS_STYLE_INHERIT_UI 0x002000
|
|
||||||
#define NS_STYLE_INHERIT_UI_RESET 0x004000
|
|
||||||
#define NS_STYLE_INHERIT_MARGIN 0x008000
|
|
||||||
#define NS_STYLE_INHERIT_PADDING 0x010000
|
|
||||||
#define NS_STYLE_INHERIT_BORDER 0x020000
|
|
||||||
#define NS_STYLE_INHERIT_OUTLINE 0x040000
|
|
||||||
#define NS_STYLE_INHERIT_XUL 0x080000
|
|
||||||
|
|
||||||
#define NS_STYLE_INHERIT_MASK 0x0fffff
|
|
||||||
|
|
||||||
// A bit to test whether or not a style context can be shared
|
|
||||||
// by siblings.
|
|
||||||
#define NS_STYLE_UNIQUE_CONTEXT 0x100000
|
|
||||||
|
|
||||||
// A bit to test whether or not we have any text decorations.
|
|
||||||
#define NS_STYLE_HAS_TEXT_DECORATIONS 0x200000
|
|
||||||
|
|
||||||
enum nsStyleStructID {
|
enum nsStyleStructID {
|
||||||
eStyleStruct_Font = 1,
|
eStyleStruct_Font = 1,
|
||||||
eStyleStruct_Color = 2,
|
eStyleStruct_Color = 2,
|
||||||
|
@ -95,6 +64,38 @@ enum nsStyleStructID {
|
||||||
eStyleStruct_BorderPaddingShortcut = 21 // only for use in GetStyle()
|
eStyleStruct_BorderPaddingShortcut = 21 // only for use in GetStyle()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Bits for each struct.
|
||||||
|
#define NS_STYLE_INHERIT_BIT(sid_) (1 << (PRInt32(sid_) - 1))
|
||||||
|
#define NS_STYLE_INHERIT_FONT NS_STYLE_INHERIT_BIT(eStyleStruct_Font)
|
||||||
|
#define NS_STYLE_INHERIT_COLOR NS_STYLE_INHERIT_BIT(eStyleStruct_Color)
|
||||||
|
#define NS_STYLE_INHERIT_BACKGROUND NS_STYLE_INHERIT_BIT(eStyleStruct_Background)
|
||||||
|
#define NS_STYLE_INHERIT_LIST NS_STYLE_INHERIT_BIT(eStyleStruct_List)
|
||||||
|
#define NS_STYLE_INHERIT_POSITION NS_STYLE_INHERIT_BIT(eStyleStruct_Position)
|
||||||
|
#define NS_STYLE_INHERIT_TEXT NS_STYLE_INHERIT_BIT(eStyleStruct_Text)
|
||||||
|
#define NS_STYLE_INHERIT_TEXT_RESET NS_STYLE_INHERIT_BIT(eStyleStruct_TextReset)
|
||||||
|
#define NS_STYLE_INHERIT_DISPLAY NS_STYLE_INHERIT_BIT(eStyleStruct_Display)
|
||||||
|
#define NS_STYLE_INHERIT_VISIBILITY NS_STYLE_INHERIT_BIT(eStyleStruct_Visibility)
|
||||||
|
#define NS_STYLE_INHERIT_TABLE NS_STYLE_INHERIT_BIT(eStyleStruct_Table)
|
||||||
|
#define NS_STYLE_INHERIT_TABLE_BORDER NS_STYLE_INHERIT_BIT(eStyleStruct_TableBorder)
|
||||||
|
#define NS_STYLE_INHERIT_CONTENT NS_STYLE_INHERIT_BIT(eStyleStruct_Content)
|
||||||
|
#define NS_STYLE_INHERIT_QUOTES NS_STYLE_INHERIT_BIT(eStyleStruct_Quotes)
|
||||||
|
#define NS_STYLE_INHERIT_UI NS_STYLE_INHERIT_BIT(eStyleStruct_UserInterface)
|
||||||
|
#define NS_STYLE_INHERIT_UI_RESET NS_STYLE_INHERIT_BIT(eStyleStruct_UIReset)
|
||||||
|
#define NS_STYLE_INHERIT_MARGIN NS_STYLE_INHERIT_BIT(eStyleStruct_Margin)
|
||||||
|
#define NS_STYLE_INHERIT_PADDING NS_STYLE_INHERIT_BIT(eStyleStruct_Padding)
|
||||||
|
#define NS_STYLE_INHERIT_BORDER NS_STYLE_INHERIT_BIT(eStyleStruct_Border)
|
||||||
|
#define NS_STYLE_INHERIT_OUTLINE NS_STYLE_INHERIT_BIT(eStyleStruct_Outline)
|
||||||
|
#define NS_STYLE_INHERIT_XUL NS_STYLE_INHERIT_BIT(eStyleStruct_XUL)
|
||||||
|
|
||||||
|
#define NS_STYLE_INHERIT_MASK 0x0fffff
|
||||||
|
|
||||||
|
// A bit to test whether or not a style context can be shared
|
||||||
|
// by siblings.
|
||||||
|
#define NS_STYLE_UNIQUE_CONTEXT 0x100000
|
||||||
|
|
||||||
|
// A bit to test whether or not we have any text decorations.
|
||||||
|
#define NS_STYLE_HAS_TEXT_DECORATIONS 0x200000
|
||||||
|
|
||||||
// The actual structs start here
|
// The actual structs start here
|
||||||
struct nsStyleStruct {
|
struct nsStyleStruct {
|
||||||
};
|
};
|
||||||
|
|
|
@ -41,6 +41,122 @@
|
||||||
#include "nsIServiceManager.h"
|
#include "nsIServiceManager.h"
|
||||||
#include "nsIPref.h"
|
#include "nsIPref.h"
|
||||||
|
|
||||||
|
// XXX This is here because nsCachedStyleData is accessed outside of
|
||||||
|
// the content module; e.g., by nsCSSFrameConstructor.
|
||||||
|
#include "nsIRuleNode.h"
|
||||||
|
|
||||||
|
nsCachedStyleData::StyleStructInfo
|
||||||
|
nsCachedStyleData::gInfo[] = {
|
||||||
|
// Note that these must line up _exactly_ with the numeric values of
|
||||||
|
// the nsStyleStructID enum.
|
||||||
|
{ 0, 0, 0 },
|
||||||
|
|
||||||
|
/* eStyleStruct_Font */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mFontData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Color */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mColorData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Background */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mBackgroundData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_List */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mListData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Position */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mPositionData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Text */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mTextData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_TextReset */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mTextData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Display */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mDisplayData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Visibility */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mVisibilityData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Content */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mContentData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Quotes */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mQuotesData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_UserInterface */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mUIData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_UIReset */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mUIData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Table */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mTableData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_TableBorder */
|
||||||
|
{ offsetof(nsCachedStyleData, mInheritedData),
|
||||||
|
offsetof(nsInheritedStyleData, mTableData),
|
||||||
|
PR_FALSE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Margin */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mMarginData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Padding */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mPaddingData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Border */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mBorderData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
/* eStyleStruct_Outline */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mOutlineData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
#ifdef INCLUDE_XUL
|
||||||
|
/* eStyleStruct_XUL */
|
||||||
|
{ offsetof(nsCachedStyleData, mResetData),
|
||||||
|
offsetof(nsResetStyleData, mXULData),
|
||||||
|
PR_TRUE
|
||||||
|
},
|
||||||
|
#endif
|
||||||
|
|
||||||
|
{ 0, 0, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
static NS_DEFINE_CID(kPrefCID, NS_PREF_CID);
|
||||||
|
|
||||||
#define POSITIVE_SCALE_FACTOR 1.10 /* 10% */
|
#define POSITIVE_SCALE_FACTOR 1.10 /* 10% */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче