diff --git a/mozilla/content/html/style/src/nsCSSDeclaration.cpp b/mozilla/content/html/style/src/nsCSSDeclaration.cpp
index 59693410d00..7de6d3c0aa1 100644
--- a/mozilla/content/html/style/src/nsCSSDeclaration.cpp
+++ b/mozilla/content/html/style/src/nsCSSDeclaration.cpp
@@ -26,6 +26,7 @@
static NS_DEFINE_IID(kCSSFontSID, NS_CSS_FONT_SID);
static NS_DEFINE_IID(kCSSColorSID, NS_CSS_COLOR_SID);
+static NS_DEFINE_IID(kCSSDisplaySID, NS_CSS_DISPLAY_SID);
static NS_DEFINE_IID(kCSSTextSID, NS_CSS_TEXT_SID);
static NS_DEFINE_IID(kCSSMarginSID, NS_CSS_MARGIN_SID);
static NS_DEFINE_IID(kCSSPositionSID, NS_CSS_POSITION_SID);
@@ -325,6 +326,8 @@ void nsCSSColor::List(FILE* out, PRInt32 aIndent) const
mBackPositionX.AppendToString(buffer, PROP_BACKGROUND_X_POSITION);
mBackPositionY.AppendToString(buffer, PROP_BACKGROUND_Y_POSITION);
mBackFilter.AppendToString(buffer, PROP_BACKGROUND_FILTER);
+ mCursor.AppendToString(buffer, PROP_CURSOR);
+ mCursorImage.AppendToString(buffer, PROP_CURSOR_IMAGE);
fputs(buffer, out);
}
@@ -344,13 +347,31 @@ void nsCSSText::List(FILE* out, PRInt32 aIndent) const
mDecoration.AppendToString(buffer, PROP_TEXT_DECORATION);
mVertAlign.AppendToString(buffer, PROP_VERTICAL_ALIGN);
mTransform.AppendToString(buffer, PROP_TEXT_TRANSFORM);
- mHorzAlign.AppendToString(buffer, PROP_TEXT_ALIGN);
+ mTextAlign.AppendToString(buffer, PROP_TEXT_ALIGN);
mIndent.AppendToString(buffer, PROP_TEXT_INDENT);
mLineHeight.AppendToString(buffer, PROP_LINE_HEIGHT);
mWhiteSpace.AppendToString(buffer, PROP_WHITE_SPACE);
fputs(buffer, out);
}
+const nsID& nsCSSDisplay::GetID(void)
+{
+ return kCSSDisplaySID;
+}
+
+void nsCSSDisplay::List(FILE* out, PRInt32 aIndent) const
+{
+ for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out);
+
+ nsAutoString buffer;
+
+ mDirection.AppendToString(buffer, PROP_DIRECTION);
+ mDisplay.AppendToString(buffer, PROP_DISPLAY);
+ mFloat.AppendToString(buffer, PROP_FLOAT);
+ mClear.AppendToString(buffer, PROP_CLEAR);
+ fputs(buffer, out);
+}
+
void nsCSSRect::List(FILE* out, PRInt32 aPropID, PRInt32 aIndent) const
{
for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out);
@@ -455,9 +476,6 @@ void nsCSSPosition::List(FILE* out, PRInt32 aIndent) const
mOverflow.AppendToString(buffer, PROP_OVERFLOW);
mZIndex.AppendToString(buffer, PROP_OVERFLOW);
mVisibility.AppendToString(buffer, PROP_VISIBILITY);
- mFloat.AppendToString(buffer, PROP_FLOAT);
- mClear.AppendToString(buffer, PROP_CLEAR);
- mDisplay.AppendToString(buffer, PROP_DISPLAY);
mFilter.AppendToString(buffer, PROP_FILTER);
fputs(buffer, out);
}
@@ -512,6 +530,7 @@ protected:
nsCSSMargin* mMargin;
nsCSSPosition* mPosition;
nsCSSList* mList;
+ nsCSSDisplay* mDisplay;
};
#ifdef DEBUG_REFS
@@ -556,6 +575,9 @@ CSSDeclarationImpl::~CSSDeclarationImpl(void)
if (nsnull != mList) {
delete mList;
}
+ if (nsnull != mDisplay) {
+ delete mDisplay;
+ }
#ifdef DEBUG_REFS
--gInstanceCount;
fprintf(stdout, "%d - CSSDeclaration\n", gInstanceCount);
@@ -576,6 +598,9 @@ nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
else if (aSID.Equals(kCSSColorSID)) {
*aDataPtr = mColor;
}
+ else if (aSID.Equals(kCSSDisplaySID)) {
+ *aDataPtr = mDisplay;
+ }
else if (aSID.Equals(kCSSTextSID)) {
*aDataPtr = mText;
}
@@ -612,6 +637,12 @@ nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr
}
*aDataPtr = mColor;
}
+ else if (aSID.Equals(kCSSDisplaySID)) {
+ if (nsnull == mDisplay) {
+ mDisplay = new nsCSSDisplay();
+ }
+ *aDataPtr = mColor;
+ }
else if (aSID.Equals(kCSSTextSID)) {
if (nsnull == mText) {
mText = new nsCSSText();
@@ -687,6 +718,8 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_BACKGROUND_X_POSITION:
case PROP_BACKGROUND_Y_POSITION:
case PROP_BACKGROUND_FILTER:
+ case PROP_CURSOR:
+ case PROP_CURSOR_IMAGE:
if (nsnull == mColor) {
mColor = new nsCSSColor();
}
@@ -700,6 +733,8 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_BACKGROUND_X_POSITION: mColor->mBackPositionX = aValue; break;
case PROP_BACKGROUND_Y_POSITION: mColor->mBackPositionY = aValue; break;
case PROP_BACKGROUND_FILTER: mColor->mBackFilter = aValue; break;
+ case PROP_CURSOR: mColor->mCursor = aValue; break;
+ case PROP_CURSOR_IMAGE: mColor->mCursorImage = aValue; break;
}
}
else {
@@ -727,7 +762,7 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_TEXT_DECORATION: mText->mDecoration = aValue; break;
case PROP_VERTICAL_ALIGN: mText->mVertAlign = aValue; break;
case PROP_TEXT_TRANSFORM: mText->mTransform = aValue; break;
- case PROP_TEXT_ALIGN: mText->mHorzAlign = aValue; break;
+ case PROP_TEXT_ALIGN: mText->mTextAlign = aValue; break;
case PROP_TEXT_INDENT: mText->mIndent = aValue; break;
case PROP_LINE_HEIGHT: mText->mLineHeight = aValue; break;
case PROP_WHITE_SPACE: mText->mWhiteSpace = aValue; break;
@@ -888,9 +923,6 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_OVERFLOW:
case PROP_Z_INDEX:
case PROP_VISIBILITY:
- case PROP_FLOAT:
- case PROP_CLEAR:
- case PROP_DISPLAY:
case PROP_FILTER:
if (nsnull == mPosition) {
mPosition = new nsCSSPosition();
@@ -905,9 +937,6 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_OVERFLOW: mPosition->mOverflow = aValue; break;
case PROP_Z_INDEX: mPosition->mZIndex = aValue; break;
case PROP_VISIBILITY: mPosition->mVisibility = aValue; break;
- case PROP_FLOAT: mPosition->mFloat = aValue; break;
- case PROP_CLEAR: mPosition->mClear = aValue; break;
- case PROP_DISPLAY: mPosition->mDisplay = aValue; break;
case PROP_FILTER: mPosition->mFilter = aValue; break;
}
}
@@ -963,6 +992,27 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
}
break;
+ // nsCSSDisplay
+ case PROP_FLOAT:
+ case PROP_CLEAR:
+ case PROP_DISPLAY:
+ case PROP_DIRECTION:
+ if (nsnull == mDisplay) {
+ mDisplay = new nsCSSDisplay();
+ }
+ if (nsnull != mDisplay) {
+ switch (aProperty) {
+ case PROP_FLOAT: mDisplay->mFloat = aValue; break;
+ case PROP_CLEAR: mDisplay->mClear = aValue; break;
+ case PROP_DISPLAY: mDisplay->mDisplay = aValue; break;
+ case PROP_DIRECTION: mDisplay->mDirection = aValue; break;
+ }
+ }
+ else {
+ result = NS_ERROR_OUT_OF_MEMORY;
+ }
+ break;
+
case PROP_BACKGROUND:
case PROP_BORDER:
case PROP_CLIP:
@@ -1025,6 +1075,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_BACKGROUND_X_POSITION:
case PROP_BACKGROUND_Y_POSITION:
case PROP_BACKGROUND_FILTER:
+ case PROP_CURSOR:
+ case PROP_CURSOR_IMAGE:
if (nsnull != mColor) {
switch (aProperty) {
case PROP_COLOR: aValue = mColor->mColor; break;
@@ -1035,6 +1087,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_BACKGROUND_X_POSITION: aValue = mColor->mBackPositionX; break;
case PROP_BACKGROUND_Y_POSITION: aValue = mColor->mBackPositionY; break;
case PROP_BACKGROUND_FILTER: aValue = mColor->mBackFilter; break;
+ case PROP_CURSOR: aValue = mColor->mCursor; break;
+ case PROP_CURSOR_IMAGE: aValue = mColor->mCursorImage; break;
}
}
else {
@@ -1059,7 +1113,7 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_TEXT_DECORATION: aValue = mText->mDecoration; break;
case PROP_VERTICAL_ALIGN: aValue = mText->mVertAlign; break;
case PROP_TEXT_TRANSFORM: aValue = mText->mTransform; break;
- case PROP_TEXT_ALIGN: aValue = mText->mHorzAlign; break;
+ case PROP_TEXT_ALIGN: aValue = mText->mTextAlign; break;
case PROP_TEXT_INDENT: aValue = mText->mIndent; break;
case PROP_LINE_HEIGHT: aValue = mText->mLineHeight; break;
case PROP_WHITE_SPACE: aValue = mText->mWhiteSpace; break;
@@ -1165,9 +1219,6 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_OVERFLOW:
case PROP_Z_INDEX:
case PROP_VISIBILITY:
- case PROP_FLOAT:
- case PROP_CLEAR:
- case PROP_DISPLAY:
case PROP_FILTER:
if (nsnull != mPosition) {
switch (aProperty) {
@@ -1179,9 +1230,6 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_OVERFLOW: aValue = mPosition->mOverflow; break;
case PROP_Z_INDEX: aValue = mPosition->mZIndex; break;
case PROP_VISIBILITY: aValue = mPosition->mVisibility; break;
- case PROP_FLOAT: aValue = mPosition->mFloat; break;
- case PROP_CLEAR: aValue = mPosition->mClear; break;
- case PROP_DISPLAY: aValue = mPosition->mDisplay; break;
case PROP_FILTER: aValue = mPosition->mFilter; break;
}
}
@@ -1223,6 +1271,24 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
}
break;
+ // nsCSSDisplay
+ case PROP_FLOAT:
+ case PROP_CLEAR:
+ case PROP_DISPLAY:
+ case PROP_DIRECTION:
+ if (nsnull != mDisplay) {
+ switch (aProperty) {
+ case PROP_FLOAT: aValue = mDisplay->mFloat; break;
+ case PROP_CLEAR: aValue = mDisplay->mClear; break;
+ case PROP_DISPLAY: aValue = mDisplay->mDisplay; break;
+ case PROP_DIRECTION: aValue = mDisplay->mDirection; break;
+ }
+ }
+ else {
+ aValue.Reset();
+ }
+ break;
+
case PROP_BACKGROUND:
case PROP_BORDER:
case PROP_CLIP:
@@ -1270,6 +1336,9 @@ void CSSDeclarationImpl::List(FILE* out, PRInt32 aIndent) const
if (nsnull != mList) {
mList->List(out);
}
+ if (nsnull != mDisplay) {
+ mDisplay->List(out);
+ }
fputs("}", out);
}
@@ -1294,24 +1363,23 @@ NS_HTML nsresult
/*
font
===========
-
-'font-family', string (list)
-'font-style', enum
-'font-variant' enum (ie: small caps)
-'font-weight' enum
-'font-size' abs, pct, enum, +-1
+font-family: string (list)
+font-style: enum
+font-variant: enum (ie: small caps)
+font-weight: enum
+font-size: abs, pct, enum, +-1
color/background
=============
-
color: color
background-color: color
background-image: url(string)
background-repeat: enum
background-attachment: enum
background-position-x -y: abs, pct, enum (left/top center right/bottom (pct?))
-
+cursor: enum
+cursor-image: url(string)
text
@@ -1346,9 +1414,11 @@ overflow: enum
z-index: int, auto
visibity: enum
+display
+=======
float: enum
clear: enum
-
+direction: enum
display: enum
filter: string
diff --git a/mozilla/content/html/style/src/nsCSSStruct.cpp b/mozilla/content/html/style/src/nsCSSStruct.cpp
index 59693410d00..7de6d3c0aa1 100644
--- a/mozilla/content/html/style/src/nsCSSStruct.cpp
+++ b/mozilla/content/html/style/src/nsCSSStruct.cpp
@@ -26,6 +26,7 @@
static NS_DEFINE_IID(kCSSFontSID, NS_CSS_FONT_SID);
static NS_DEFINE_IID(kCSSColorSID, NS_CSS_COLOR_SID);
+static NS_DEFINE_IID(kCSSDisplaySID, NS_CSS_DISPLAY_SID);
static NS_DEFINE_IID(kCSSTextSID, NS_CSS_TEXT_SID);
static NS_DEFINE_IID(kCSSMarginSID, NS_CSS_MARGIN_SID);
static NS_DEFINE_IID(kCSSPositionSID, NS_CSS_POSITION_SID);
@@ -325,6 +326,8 @@ void nsCSSColor::List(FILE* out, PRInt32 aIndent) const
mBackPositionX.AppendToString(buffer, PROP_BACKGROUND_X_POSITION);
mBackPositionY.AppendToString(buffer, PROP_BACKGROUND_Y_POSITION);
mBackFilter.AppendToString(buffer, PROP_BACKGROUND_FILTER);
+ mCursor.AppendToString(buffer, PROP_CURSOR);
+ mCursorImage.AppendToString(buffer, PROP_CURSOR_IMAGE);
fputs(buffer, out);
}
@@ -344,13 +347,31 @@ void nsCSSText::List(FILE* out, PRInt32 aIndent) const
mDecoration.AppendToString(buffer, PROP_TEXT_DECORATION);
mVertAlign.AppendToString(buffer, PROP_VERTICAL_ALIGN);
mTransform.AppendToString(buffer, PROP_TEXT_TRANSFORM);
- mHorzAlign.AppendToString(buffer, PROP_TEXT_ALIGN);
+ mTextAlign.AppendToString(buffer, PROP_TEXT_ALIGN);
mIndent.AppendToString(buffer, PROP_TEXT_INDENT);
mLineHeight.AppendToString(buffer, PROP_LINE_HEIGHT);
mWhiteSpace.AppendToString(buffer, PROP_WHITE_SPACE);
fputs(buffer, out);
}
+const nsID& nsCSSDisplay::GetID(void)
+{
+ return kCSSDisplaySID;
+}
+
+void nsCSSDisplay::List(FILE* out, PRInt32 aIndent) const
+{
+ for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out);
+
+ nsAutoString buffer;
+
+ mDirection.AppendToString(buffer, PROP_DIRECTION);
+ mDisplay.AppendToString(buffer, PROP_DISPLAY);
+ mFloat.AppendToString(buffer, PROP_FLOAT);
+ mClear.AppendToString(buffer, PROP_CLEAR);
+ fputs(buffer, out);
+}
+
void nsCSSRect::List(FILE* out, PRInt32 aPropID, PRInt32 aIndent) const
{
for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out);
@@ -455,9 +476,6 @@ void nsCSSPosition::List(FILE* out, PRInt32 aIndent) const
mOverflow.AppendToString(buffer, PROP_OVERFLOW);
mZIndex.AppendToString(buffer, PROP_OVERFLOW);
mVisibility.AppendToString(buffer, PROP_VISIBILITY);
- mFloat.AppendToString(buffer, PROP_FLOAT);
- mClear.AppendToString(buffer, PROP_CLEAR);
- mDisplay.AppendToString(buffer, PROP_DISPLAY);
mFilter.AppendToString(buffer, PROP_FILTER);
fputs(buffer, out);
}
@@ -512,6 +530,7 @@ protected:
nsCSSMargin* mMargin;
nsCSSPosition* mPosition;
nsCSSList* mList;
+ nsCSSDisplay* mDisplay;
};
#ifdef DEBUG_REFS
@@ -556,6 +575,9 @@ CSSDeclarationImpl::~CSSDeclarationImpl(void)
if (nsnull != mList) {
delete mList;
}
+ if (nsnull != mDisplay) {
+ delete mDisplay;
+ }
#ifdef DEBUG_REFS
--gInstanceCount;
fprintf(stdout, "%d - CSSDeclaration\n", gInstanceCount);
@@ -576,6 +598,9 @@ nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
else if (aSID.Equals(kCSSColorSID)) {
*aDataPtr = mColor;
}
+ else if (aSID.Equals(kCSSDisplaySID)) {
+ *aDataPtr = mDisplay;
+ }
else if (aSID.Equals(kCSSTextSID)) {
*aDataPtr = mText;
}
@@ -612,6 +637,12 @@ nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr
}
*aDataPtr = mColor;
}
+ else if (aSID.Equals(kCSSDisplaySID)) {
+ if (nsnull == mDisplay) {
+ mDisplay = new nsCSSDisplay();
+ }
+ *aDataPtr = mColor;
+ }
else if (aSID.Equals(kCSSTextSID)) {
if (nsnull == mText) {
mText = new nsCSSText();
@@ -687,6 +718,8 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_BACKGROUND_X_POSITION:
case PROP_BACKGROUND_Y_POSITION:
case PROP_BACKGROUND_FILTER:
+ case PROP_CURSOR:
+ case PROP_CURSOR_IMAGE:
if (nsnull == mColor) {
mColor = new nsCSSColor();
}
@@ -700,6 +733,8 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_BACKGROUND_X_POSITION: mColor->mBackPositionX = aValue; break;
case PROP_BACKGROUND_Y_POSITION: mColor->mBackPositionY = aValue; break;
case PROP_BACKGROUND_FILTER: mColor->mBackFilter = aValue; break;
+ case PROP_CURSOR: mColor->mCursor = aValue; break;
+ case PROP_CURSOR_IMAGE: mColor->mCursorImage = aValue; break;
}
}
else {
@@ -727,7 +762,7 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_TEXT_DECORATION: mText->mDecoration = aValue; break;
case PROP_VERTICAL_ALIGN: mText->mVertAlign = aValue; break;
case PROP_TEXT_TRANSFORM: mText->mTransform = aValue; break;
- case PROP_TEXT_ALIGN: mText->mHorzAlign = aValue; break;
+ case PROP_TEXT_ALIGN: mText->mTextAlign = aValue; break;
case PROP_TEXT_INDENT: mText->mIndent = aValue; break;
case PROP_LINE_HEIGHT: mText->mLineHeight = aValue; break;
case PROP_WHITE_SPACE: mText->mWhiteSpace = aValue; break;
@@ -888,9 +923,6 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_OVERFLOW:
case PROP_Z_INDEX:
case PROP_VISIBILITY:
- case PROP_FLOAT:
- case PROP_CLEAR:
- case PROP_DISPLAY:
case PROP_FILTER:
if (nsnull == mPosition) {
mPosition = new nsCSSPosition();
@@ -905,9 +937,6 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_OVERFLOW: mPosition->mOverflow = aValue; break;
case PROP_Z_INDEX: mPosition->mZIndex = aValue; break;
case PROP_VISIBILITY: mPosition->mVisibility = aValue; break;
- case PROP_FLOAT: mPosition->mFloat = aValue; break;
- case PROP_CLEAR: mPosition->mClear = aValue; break;
- case PROP_DISPLAY: mPosition->mDisplay = aValue; break;
case PROP_FILTER: mPosition->mFilter = aValue; break;
}
}
@@ -963,6 +992,27 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
}
break;
+ // nsCSSDisplay
+ case PROP_FLOAT:
+ case PROP_CLEAR:
+ case PROP_DISPLAY:
+ case PROP_DIRECTION:
+ if (nsnull == mDisplay) {
+ mDisplay = new nsCSSDisplay();
+ }
+ if (nsnull != mDisplay) {
+ switch (aProperty) {
+ case PROP_FLOAT: mDisplay->mFloat = aValue; break;
+ case PROP_CLEAR: mDisplay->mClear = aValue; break;
+ case PROP_DISPLAY: mDisplay->mDisplay = aValue; break;
+ case PROP_DIRECTION: mDisplay->mDirection = aValue; break;
+ }
+ }
+ else {
+ result = NS_ERROR_OUT_OF_MEMORY;
+ }
+ break;
+
case PROP_BACKGROUND:
case PROP_BORDER:
case PROP_CLIP:
@@ -1025,6 +1075,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_BACKGROUND_X_POSITION:
case PROP_BACKGROUND_Y_POSITION:
case PROP_BACKGROUND_FILTER:
+ case PROP_CURSOR:
+ case PROP_CURSOR_IMAGE:
if (nsnull != mColor) {
switch (aProperty) {
case PROP_COLOR: aValue = mColor->mColor; break;
@@ -1035,6 +1087,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_BACKGROUND_X_POSITION: aValue = mColor->mBackPositionX; break;
case PROP_BACKGROUND_Y_POSITION: aValue = mColor->mBackPositionY; break;
case PROP_BACKGROUND_FILTER: aValue = mColor->mBackFilter; break;
+ case PROP_CURSOR: aValue = mColor->mCursor; break;
+ case PROP_CURSOR_IMAGE: aValue = mColor->mCursorImage; break;
}
}
else {
@@ -1059,7 +1113,7 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_TEXT_DECORATION: aValue = mText->mDecoration; break;
case PROP_VERTICAL_ALIGN: aValue = mText->mVertAlign; break;
case PROP_TEXT_TRANSFORM: aValue = mText->mTransform; break;
- case PROP_TEXT_ALIGN: aValue = mText->mHorzAlign; break;
+ case PROP_TEXT_ALIGN: aValue = mText->mTextAlign; break;
case PROP_TEXT_INDENT: aValue = mText->mIndent; break;
case PROP_LINE_HEIGHT: aValue = mText->mLineHeight; break;
case PROP_WHITE_SPACE: aValue = mText->mWhiteSpace; break;
@@ -1165,9 +1219,6 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_OVERFLOW:
case PROP_Z_INDEX:
case PROP_VISIBILITY:
- case PROP_FLOAT:
- case PROP_CLEAR:
- case PROP_DISPLAY:
case PROP_FILTER:
if (nsnull != mPosition) {
switch (aProperty) {
@@ -1179,9 +1230,6 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_OVERFLOW: aValue = mPosition->mOverflow; break;
case PROP_Z_INDEX: aValue = mPosition->mZIndex; break;
case PROP_VISIBILITY: aValue = mPosition->mVisibility; break;
- case PROP_FLOAT: aValue = mPosition->mFloat; break;
- case PROP_CLEAR: aValue = mPosition->mClear; break;
- case PROP_DISPLAY: aValue = mPosition->mDisplay; break;
case PROP_FILTER: aValue = mPosition->mFilter; break;
}
}
@@ -1223,6 +1271,24 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
}
break;
+ // nsCSSDisplay
+ case PROP_FLOAT:
+ case PROP_CLEAR:
+ case PROP_DISPLAY:
+ case PROP_DIRECTION:
+ if (nsnull != mDisplay) {
+ switch (aProperty) {
+ case PROP_FLOAT: aValue = mDisplay->mFloat; break;
+ case PROP_CLEAR: aValue = mDisplay->mClear; break;
+ case PROP_DISPLAY: aValue = mDisplay->mDisplay; break;
+ case PROP_DIRECTION: aValue = mDisplay->mDirection; break;
+ }
+ }
+ else {
+ aValue.Reset();
+ }
+ break;
+
case PROP_BACKGROUND:
case PROP_BORDER:
case PROP_CLIP:
@@ -1270,6 +1336,9 @@ void CSSDeclarationImpl::List(FILE* out, PRInt32 aIndent) const
if (nsnull != mList) {
mList->List(out);
}
+ if (nsnull != mDisplay) {
+ mDisplay->List(out);
+ }
fputs("}", out);
}
@@ -1294,24 +1363,23 @@ NS_HTML nsresult
/*
font
===========
-
-'font-family', string (list)
-'font-style', enum
-'font-variant' enum (ie: small caps)
-'font-weight' enum
-'font-size' abs, pct, enum, +-1
+font-family: string (list)
+font-style: enum
+font-variant: enum (ie: small caps)
+font-weight: enum
+font-size: abs, pct, enum, +-1
color/background
=============
-
color: color
background-color: color
background-image: url(string)
background-repeat: enum
background-attachment: enum
background-position-x -y: abs, pct, enum (left/top center right/bottom (pct?))
-
+cursor: enum
+cursor-image: url(string)
text
@@ -1346,9 +1414,11 @@ overflow: enum
z-index: int, auto
visibity: enum
+display
+=======
float: enum
clear: enum
-
+direction: enum
display: enum
filter: string
diff --git a/mozilla/layout/html/style/src/nsCSSDeclaration.cpp b/mozilla/layout/html/style/src/nsCSSDeclaration.cpp
index 59693410d00..7de6d3c0aa1 100644
--- a/mozilla/layout/html/style/src/nsCSSDeclaration.cpp
+++ b/mozilla/layout/html/style/src/nsCSSDeclaration.cpp
@@ -26,6 +26,7 @@
static NS_DEFINE_IID(kCSSFontSID, NS_CSS_FONT_SID);
static NS_DEFINE_IID(kCSSColorSID, NS_CSS_COLOR_SID);
+static NS_DEFINE_IID(kCSSDisplaySID, NS_CSS_DISPLAY_SID);
static NS_DEFINE_IID(kCSSTextSID, NS_CSS_TEXT_SID);
static NS_DEFINE_IID(kCSSMarginSID, NS_CSS_MARGIN_SID);
static NS_DEFINE_IID(kCSSPositionSID, NS_CSS_POSITION_SID);
@@ -325,6 +326,8 @@ void nsCSSColor::List(FILE* out, PRInt32 aIndent) const
mBackPositionX.AppendToString(buffer, PROP_BACKGROUND_X_POSITION);
mBackPositionY.AppendToString(buffer, PROP_BACKGROUND_Y_POSITION);
mBackFilter.AppendToString(buffer, PROP_BACKGROUND_FILTER);
+ mCursor.AppendToString(buffer, PROP_CURSOR);
+ mCursorImage.AppendToString(buffer, PROP_CURSOR_IMAGE);
fputs(buffer, out);
}
@@ -344,13 +347,31 @@ void nsCSSText::List(FILE* out, PRInt32 aIndent) const
mDecoration.AppendToString(buffer, PROP_TEXT_DECORATION);
mVertAlign.AppendToString(buffer, PROP_VERTICAL_ALIGN);
mTransform.AppendToString(buffer, PROP_TEXT_TRANSFORM);
- mHorzAlign.AppendToString(buffer, PROP_TEXT_ALIGN);
+ mTextAlign.AppendToString(buffer, PROP_TEXT_ALIGN);
mIndent.AppendToString(buffer, PROP_TEXT_INDENT);
mLineHeight.AppendToString(buffer, PROP_LINE_HEIGHT);
mWhiteSpace.AppendToString(buffer, PROP_WHITE_SPACE);
fputs(buffer, out);
}
+const nsID& nsCSSDisplay::GetID(void)
+{
+ return kCSSDisplaySID;
+}
+
+void nsCSSDisplay::List(FILE* out, PRInt32 aIndent) const
+{
+ for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out);
+
+ nsAutoString buffer;
+
+ mDirection.AppendToString(buffer, PROP_DIRECTION);
+ mDisplay.AppendToString(buffer, PROP_DISPLAY);
+ mFloat.AppendToString(buffer, PROP_FLOAT);
+ mClear.AppendToString(buffer, PROP_CLEAR);
+ fputs(buffer, out);
+}
+
void nsCSSRect::List(FILE* out, PRInt32 aPropID, PRInt32 aIndent) const
{
for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out);
@@ -455,9 +476,6 @@ void nsCSSPosition::List(FILE* out, PRInt32 aIndent) const
mOverflow.AppendToString(buffer, PROP_OVERFLOW);
mZIndex.AppendToString(buffer, PROP_OVERFLOW);
mVisibility.AppendToString(buffer, PROP_VISIBILITY);
- mFloat.AppendToString(buffer, PROP_FLOAT);
- mClear.AppendToString(buffer, PROP_CLEAR);
- mDisplay.AppendToString(buffer, PROP_DISPLAY);
mFilter.AppendToString(buffer, PROP_FILTER);
fputs(buffer, out);
}
@@ -512,6 +530,7 @@ protected:
nsCSSMargin* mMargin;
nsCSSPosition* mPosition;
nsCSSList* mList;
+ nsCSSDisplay* mDisplay;
};
#ifdef DEBUG_REFS
@@ -556,6 +575,9 @@ CSSDeclarationImpl::~CSSDeclarationImpl(void)
if (nsnull != mList) {
delete mList;
}
+ if (nsnull != mDisplay) {
+ delete mDisplay;
+ }
#ifdef DEBUG_REFS
--gInstanceCount;
fprintf(stdout, "%d - CSSDeclaration\n", gInstanceCount);
@@ -576,6 +598,9 @@ nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
else if (aSID.Equals(kCSSColorSID)) {
*aDataPtr = mColor;
}
+ else if (aSID.Equals(kCSSDisplaySID)) {
+ *aDataPtr = mDisplay;
+ }
else if (aSID.Equals(kCSSTextSID)) {
*aDataPtr = mText;
}
@@ -612,6 +637,12 @@ nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr
}
*aDataPtr = mColor;
}
+ else if (aSID.Equals(kCSSDisplaySID)) {
+ if (nsnull == mDisplay) {
+ mDisplay = new nsCSSDisplay();
+ }
+ *aDataPtr = mColor;
+ }
else if (aSID.Equals(kCSSTextSID)) {
if (nsnull == mText) {
mText = new nsCSSText();
@@ -687,6 +718,8 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_BACKGROUND_X_POSITION:
case PROP_BACKGROUND_Y_POSITION:
case PROP_BACKGROUND_FILTER:
+ case PROP_CURSOR:
+ case PROP_CURSOR_IMAGE:
if (nsnull == mColor) {
mColor = new nsCSSColor();
}
@@ -700,6 +733,8 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_BACKGROUND_X_POSITION: mColor->mBackPositionX = aValue; break;
case PROP_BACKGROUND_Y_POSITION: mColor->mBackPositionY = aValue; break;
case PROP_BACKGROUND_FILTER: mColor->mBackFilter = aValue; break;
+ case PROP_CURSOR: mColor->mCursor = aValue; break;
+ case PROP_CURSOR_IMAGE: mColor->mCursorImage = aValue; break;
}
}
else {
@@ -727,7 +762,7 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_TEXT_DECORATION: mText->mDecoration = aValue; break;
case PROP_VERTICAL_ALIGN: mText->mVertAlign = aValue; break;
case PROP_TEXT_TRANSFORM: mText->mTransform = aValue; break;
- case PROP_TEXT_ALIGN: mText->mHorzAlign = aValue; break;
+ case PROP_TEXT_ALIGN: mText->mTextAlign = aValue; break;
case PROP_TEXT_INDENT: mText->mIndent = aValue; break;
case PROP_LINE_HEIGHT: mText->mLineHeight = aValue; break;
case PROP_WHITE_SPACE: mText->mWhiteSpace = aValue; break;
@@ -888,9 +923,6 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_OVERFLOW:
case PROP_Z_INDEX:
case PROP_VISIBILITY:
- case PROP_FLOAT:
- case PROP_CLEAR:
- case PROP_DISPLAY:
case PROP_FILTER:
if (nsnull == mPosition) {
mPosition = new nsCSSPosition();
@@ -905,9 +937,6 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_OVERFLOW: mPosition->mOverflow = aValue; break;
case PROP_Z_INDEX: mPosition->mZIndex = aValue; break;
case PROP_VISIBILITY: mPosition->mVisibility = aValue; break;
- case PROP_FLOAT: mPosition->mFloat = aValue; break;
- case PROP_CLEAR: mPosition->mClear = aValue; break;
- case PROP_DISPLAY: mPosition->mDisplay = aValue; break;
case PROP_FILTER: mPosition->mFilter = aValue; break;
}
}
@@ -963,6 +992,27 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
}
break;
+ // nsCSSDisplay
+ case PROP_FLOAT:
+ case PROP_CLEAR:
+ case PROP_DISPLAY:
+ case PROP_DIRECTION:
+ if (nsnull == mDisplay) {
+ mDisplay = new nsCSSDisplay();
+ }
+ if (nsnull != mDisplay) {
+ switch (aProperty) {
+ case PROP_FLOAT: mDisplay->mFloat = aValue; break;
+ case PROP_CLEAR: mDisplay->mClear = aValue; break;
+ case PROP_DISPLAY: mDisplay->mDisplay = aValue; break;
+ case PROP_DIRECTION: mDisplay->mDirection = aValue; break;
+ }
+ }
+ else {
+ result = NS_ERROR_OUT_OF_MEMORY;
+ }
+ break;
+
case PROP_BACKGROUND:
case PROP_BORDER:
case PROP_CLIP:
@@ -1025,6 +1075,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_BACKGROUND_X_POSITION:
case PROP_BACKGROUND_Y_POSITION:
case PROP_BACKGROUND_FILTER:
+ case PROP_CURSOR:
+ case PROP_CURSOR_IMAGE:
if (nsnull != mColor) {
switch (aProperty) {
case PROP_COLOR: aValue = mColor->mColor; break;
@@ -1035,6 +1087,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_BACKGROUND_X_POSITION: aValue = mColor->mBackPositionX; break;
case PROP_BACKGROUND_Y_POSITION: aValue = mColor->mBackPositionY; break;
case PROP_BACKGROUND_FILTER: aValue = mColor->mBackFilter; break;
+ case PROP_CURSOR: aValue = mColor->mCursor; break;
+ case PROP_CURSOR_IMAGE: aValue = mColor->mCursorImage; break;
}
}
else {
@@ -1059,7 +1113,7 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_TEXT_DECORATION: aValue = mText->mDecoration; break;
case PROP_VERTICAL_ALIGN: aValue = mText->mVertAlign; break;
case PROP_TEXT_TRANSFORM: aValue = mText->mTransform; break;
- case PROP_TEXT_ALIGN: aValue = mText->mHorzAlign; break;
+ case PROP_TEXT_ALIGN: aValue = mText->mTextAlign; break;
case PROP_TEXT_INDENT: aValue = mText->mIndent; break;
case PROP_LINE_HEIGHT: aValue = mText->mLineHeight; break;
case PROP_WHITE_SPACE: aValue = mText->mWhiteSpace; break;
@@ -1165,9 +1219,6 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_OVERFLOW:
case PROP_Z_INDEX:
case PROP_VISIBILITY:
- case PROP_FLOAT:
- case PROP_CLEAR:
- case PROP_DISPLAY:
case PROP_FILTER:
if (nsnull != mPosition) {
switch (aProperty) {
@@ -1179,9 +1230,6 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_OVERFLOW: aValue = mPosition->mOverflow; break;
case PROP_Z_INDEX: aValue = mPosition->mZIndex; break;
case PROP_VISIBILITY: aValue = mPosition->mVisibility; break;
- case PROP_FLOAT: aValue = mPosition->mFloat; break;
- case PROP_CLEAR: aValue = mPosition->mClear; break;
- case PROP_DISPLAY: aValue = mPosition->mDisplay; break;
case PROP_FILTER: aValue = mPosition->mFilter; break;
}
}
@@ -1223,6 +1271,24 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
}
break;
+ // nsCSSDisplay
+ case PROP_FLOAT:
+ case PROP_CLEAR:
+ case PROP_DISPLAY:
+ case PROP_DIRECTION:
+ if (nsnull != mDisplay) {
+ switch (aProperty) {
+ case PROP_FLOAT: aValue = mDisplay->mFloat; break;
+ case PROP_CLEAR: aValue = mDisplay->mClear; break;
+ case PROP_DISPLAY: aValue = mDisplay->mDisplay; break;
+ case PROP_DIRECTION: aValue = mDisplay->mDirection; break;
+ }
+ }
+ else {
+ aValue.Reset();
+ }
+ break;
+
case PROP_BACKGROUND:
case PROP_BORDER:
case PROP_CLIP:
@@ -1270,6 +1336,9 @@ void CSSDeclarationImpl::List(FILE* out, PRInt32 aIndent) const
if (nsnull != mList) {
mList->List(out);
}
+ if (nsnull != mDisplay) {
+ mDisplay->List(out);
+ }
fputs("}", out);
}
@@ -1294,24 +1363,23 @@ NS_HTML nsresult
/*
font
===========
-
-'font-family', string (list)
-'font-style', enum
-'font-variant' enum (ie: small caps)
-'font-weight' enum
-'font-size' abs, pct, enum, +-1
+font-family: string (list)
+font-style: enum
+font-variant: enum (ie: small caps)
+font-weight: enum
+font-size: abs, pct, enum, +-1
color/background
=============
-
color: color
background-color: color
background-image: url(string)
background-repeat: enum
background-attachment: enum
background-position-x -y: abs, pct, enum (left/top center right/bottom (pct?))
-
+cursor: enum
+cursor-image: url(string)
text
@@ -1346,9 +1414,11 @@ overflow: enum
z-index: int, auto
visibity: enum
+display
+=======
float: enum
clear: enum
-
+direction: enum
display: enum
filter: string
diff --git a/mozilla/layout/style/nsCSSDeclaration.cpp b/mozilla/layout/style/nsCSSDeclaration.cpp
index 59693410d00..7de6d3c0aa1 100644
--- a/mozilla/layout/style/nsCSSDeclaration.cpp
+++ b/mozilla/layout/style/nsCSSDeclaration.cpp
@@ -26,6 +26,7 @@
static NS_DEFINE_IID(kCSSFontSID, NS_CSS_FONT_SID);
static NS_DEFINE_IID(kCSSColorSID, NS_CSS_COLOR_SID);
+static NS_DEFINE_IID(kCSSDisplaySID, NS_CSS_DISPLAY_SID);
static NS_DEFINE_IID(kCSSTextSID, NS_CSS_TEXT_SID);
static NS_DEFINE_IID(kCSSMarginSID, NS_CSS_MARGIN_SID);
static NS_DEFINE_IID(kCSSPositionSID, NS_CSS_POSITION_SID);
@@ -325,6 +326,8 @@ void nsCSSColor::List(FILE* out, PRInt32 aIndent) const
mBackPositionX.AppendToString(buffer, PROP_BACKGROUND_X_POSITION);
mBackPositionY.AppendToString(buffer, PROP_BACKGROUND_Y_POSITION);
mBackFilter.AppendToString(buffer, PROP_BACKGROUND_FILTER);
+ mCursor.AppendToString(buffer, PROP_CURSOR);
+ mCursorImage.AppendToString(buffer, PROP_CURSOR_IMAGE);
fputs(buffer, out);
}
@@ -344,13 +347,31 @@ void nsCSSText::List(FILE* out, PRInt32 aIndent) const
mDecoration.AppendToString(buffer, PROP_TEXT_DECORATION);
mVertAlign.AppendToString(buffer, PROP_VERTICAL_ALIGN);
mTransform.AppendToString(buffer, PROP_TEXT_TRANSFORM);
- mHorzAlign.AppendToString(buffer, PROP_TEXT_ALIGN);
+ mTextAlign.AppendToString(buffer, PROP_TEXT_ALIGN);
mIndent.AppendToString(buffer, PROP_TEXT_INDENT);
mLineHeight.AppendToString(buffer, PROP_LINE_HEIGHT);
mWhiteSpace.AppendToString(buffer, PROP_WHITE_SPACE);
fputs(buffer, out);
}
+const nsID& nsCSSDisplay::GetID(void)
+{
+ return kCSSDisplaySID;
+}
+
+void nsCSSDisplay::List(FILE* out, PRInt32 aIndent) const
+{
+ for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out);
+
+ nsAutoString buffer;
+
+ mDirection.AppendToString(buffer, PROP_DIRECTION);
+ mDisplay.AppendToString(buffer, PROP_DISPLAY);
+ mFloat.AppendToString(buffer, PROP_FLOAT);
+ mClear.AppendToString(buffer, PROP_CLEAR);
+ fputs(buffer, out);
+}
+
void nsCSSRect::List(FILE* out, PRInt32 aPropID, PRInt32 aIndent) const
{
for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out);
@@ -455,9 +476,6 @@ void nsCSSPosition::List(FILE* out, PRInt32 aIndent) const
mOverflow.AppendToString(buffer, PROP_OVERFLOW);
mZIndex.AppendToString(buffer, PROP_OVERFLOW);
mVisibility.AppendToString(buffer, PROP_VISIBILITY);
- mFloat.AppendToString(buffer, PROP_FLOAT);
- mClear.AppendToString(buffer, PROP_CLEAR);
- mDisplay.AppendToString(buffer, PROP_DISPLAY);
mFilter.AppendToString(buffer, PROP_FILTER);
fputs(buffer, out);
}
@@ -512,6 +530,7 @@ protected:
nsCSSMargin* mMargin;
nsCSSPosition* mPosition;
nsCSSList* mList;
+ nsCSSDisplay* mDisplay;
};
#ifdef DEBUG_REFS
@@ -556,6 +575,9 @@ CSSDeclarationImpl::~CSSDeclarationImpl(void)
if (nsnull != mList) {
delete mList;
}
+ if (nsnull != mDisplay) {
+ delete mDisplay;
+ }
#ifdef DEBUG_REFS
--gInstanceCount;
fprintf(stdout, "%d - CSSDeclaration\n", gInstanceCount);
@@ -576,6 +598,9 @@ nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
else if (aSID.Equals(kCSSColorSID)) {
*aDataPtr = mColor;
}
+ else if (aSID.Equals(kCSSDisplaySID)) {
+ *aDataPtr = mDisplay;
+ }
else if (aSID.Equals(kCSSTextSID)) {
*aDataPtr = mText;
}
@@ -612,6 +637,12 @@ nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr
}
*aDataPtr = mColor;
}
+ else if (aSID.Equals(kCSSDisplaySID)) {
+ if (nsnull == mDisplay) {
+ mDisplay = new nsCSSDisplay();
+ }
+ *aDataPtr = mColor;
+ }
else if (aSID.Equals(kCSSTextSID)) {
if (nsnull == mText) {
mText = new nsCSSText();
@@ -687,6 +718,8 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_BACKGROUND_X_POSITION:
case PROP_BACKGROUND_Y_POSITION:
case PROP_BACKGROUND_FILTER:
+ case PROP_CURSOR:
+ case PROP_CURSOR_IMAGE:
if (nsnull == mColor) {
mColor = new nsCSSColor();
}
@@ -700,6 +733,8 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_BACKGROUND_X_POSITION: mColor->mBackPositionX = aValue; break;
case PROP_BACKGROUND_Y_POSITION: mColor->mBackPositionY = aValue; break;
case PROP_BACKGROUND_FILTER: mColor->mBackFilter = aValue; break;
+ case PROP_CURSOR: mColor->mCursor = aValue; break;
+ case PROP_CURSOR_IMAGE: mColor->mCursorImage = aValue; break;
}
}
else {
@@ -727,7 +762,7 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_TEXT_DECORATION: mText->mDecoration = aValue; break;
case PROP_VERTICAL_ALIGN: mText->mVertAlign = aValue; break;
case PROP_TEXT_TRANSFORM: mText->mTransform = aValue; break;
- case PROP_TEXT_ALIGN: mText->mHorzAlign = aValue; break;
+ case PROP_TEXT_ALIGN: mText->mTextAlign = aValue; break;
case PROP_TEXT_INDENT: mText->mIndent = aValue; break;
case PROP_LINE_HEIGHT: mText->mLineHeight = aValue; break;
case PROP_WHITE_SPACE: mText->mWhiteSpace = aValue; break;
@@ -888,9 +923,6 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_OVERFLOW:
case PROP_Z_INDEX:
case PROP_VISIBILITY:
- case PROP_FLOAT:
- case PROP_CLEAR:
- case PROP_DISPLAY:
case PROP_FILTER:
if (nsnull == mPosition) {
mPosition = new nsCSSPosition();
@@ -905,9 +937,6 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_OVERFLOW: mPosition->mOverflow = aValue; break;
case PROP_Z_INDEX: mPosition->mZIndex = aValue; break;
case PROP_VISIBILITY: mPosition->mVisibility = aValue; break;
- case PROP_FLOAT: mPosition->mFloat = aValue; break;
- case PROP_CLEAR: mPosition->mClear = aValue; break;
- case PROP_DISPLAY: mPosition->mDisplay = aValue; break;
case PROP_FILTER: mPosition->mFilter = aValue; break;
}
}
@@ -963,6 +992,27 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
}
break;
+ // nsCSSDisplay
+ case PROP_FLOAT:
+ case PROP_CLEAR:
+ case PROP_DISPLAY:
+ case PROP_DIRECTION:
+ if (nsnull == mDisplay) {
+ mDisplay = new nsCSSDisplay();
+ }
+ if (nsnull != mDisplay) {
+ switch (aProperty) {
+ case PROP_FLOAT: mDisplay->mFloat = aValue; break;
+ case PROP_CLEAR: mDisplay->mClear = aValue; break;
+ case PROP_DISPLAY: mDisplay->mDisplay = aValue; break;
+ case PROP_DIRECTION: mDisplay->mDirection = aValue; break;
+ }
+ }
+ else {
+ result = NS_ERROR_OUT_OF_MEMORY;
+ }
+ break;
+
case PROP_BACKGROUND:
case PROP_BORDER:
case PROP_CLIP:
@@ -1025,6 +1075,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_BACKGROUND_X_POSITION:
case PROP_BACKGROUND_Y_POSITION:
case PROP_BACKGROUND_FILTER:
+ case PROP_CURSOR:
+ case PROP_CURSOR_IMAGE:
if (nsnull != mColor) {
switch (aProperty) {
case PROP_COLOR: aValue = mColor->mColor; break;
@@ -1035,6 +1087,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_BACKGROUND_X_POSITION: aValue = mColor->mBackPositionX; break;
case PROP_BACKGROUND_Y_POSITION: aValue = mColor->mBackPositionY; break;
case PROP_BACKGROUND_FILTER: aValue = mColor->mBackFilter; break;
+ case PROP_CURSOR: aValue = mColor->mCursor; break;
+ case PROP_CURSOR_IMAGE: aValue = mColor->mCursorImage; break;
}
}
else {
@@ -1059,7 +1113,7 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_TEXT_DECORATION: aValue = mText->mDecoration; break;
case PROP_VERTICAL_ALIGN: aValue = mText->mVertAlign; break;
case PROP_TEXT_TRANSFORM: aValue = mText->mTransform; break;
- case PROP_TEXT_ALIGN: aValue = mText->mHorzAlign; break;
+ case PROP_TEXT_ALIGN: aValue = mText->mTextAlign; break;
case PROP_TEXT_INDENT: aValue = mText->mIndent; break;
case PROP_LINE_HEIGHT: aValue = mText->mLineHeight; break;
case PROP_WHITE_SPACE: aValue = mText->mWhiteSpace; break;
@@ -1165,9 +1219,6 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_OVERFLOW:
case PROP_Z_INDEX:
case PROP_VISIBILITY:
- case PROP_FLOAT:
- case PROP_CLEAR:
- case PROP_DISPLAY:
case PROP_FILTER:
if (nsnull != mPosition) {
switch (aProperty) {
@@ -1179,9 +1230,6 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_OVERFLOW: aValue = mPosition->mOverflow; break;
case PROP_Z_INDEX: aValue = mPosition->mZIndex; break;
case PROP_VISIBILITY: aValue = mPosition->mVisibility; break;
- case PROP_FLOAT: aValue = mPosition->mFloat; break;
- case PROP_CLEAR: aValue = mPosition->mClear; break;
- case PROP_DISPLAY: aValue = mPosition->mDisplay; break;
case PROP_FILTER: aValue = mPosition->mFilter; break;
}
}
@@ -1223,6 +1271,24 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
}
break;
+ // nsCSSDisplay
+ case PROP_FLOAT:
+ case PROP_CLEAR:
+ case PROP_DISPLAY:
+ case PROP_DIRECTION:
+ if (nsnull != mDisplay) {
+ switch (aProperty) {
+ case PROP_FLOAT: aValue = mDisplay->mFloat; break;
+ case PROP_CLEAR: aValue = mDisplay->mClear; break;
+ case PROP_DISPLAY: aValue = mDisplay->mDisplay; break;
+ case PROP_DIRECTION: aValue = mDisplay->mDirection; break;
+ }
+ }
+ else {
+ aValue.Reset();
+ }
+ break;
+
case PROP_BACKGROUND:
case PROP_BORDER:
case PROP_CLIP:
@@ -1270,6 +1336,9 @@ void CSSDeclarationImpl::List(FILE* out, PRInt32 aIndent) const
if (nsnull != mList) {
mList->List(out);
}
+ if (nsnull != mDisplay) {
+ mDisplay->List(out);
+ }
fputs("}", out);
}
@@ -1294,24 +1363,23 @@ NS_HTML nsresult
/*
font
===========
-
-'font-family', string (list)
-'font-style', enum
-'font-variant' enum (ie: small caps)
-'font-weight' enum
-'font-size' abs, pct, enum, +-1
+font-family: string (list)
+font-style: enum
+font-variant: enum (ie: small caps)
+font-weight: enum
+font-size: abs, pct, enum, +-1
color/background
=============
-
color: color
background-color: color
background-image: url(string)
background-repeat: enum
background-attachment: enum
background-position-x -y: abs, pct, enum (left/top center right/bottom (pct?))
-
+cursor: enum
+cursor-image: url(string)
text
@@ -1346,9 +1414,11 @@ overflow: enum
z-index: int, auto
visibity: enum
+display
+=======
float: enum
clear: enum
-
+direction: enum
display: enum
filter: string
diff --git a/mozilla/layout/style/nsCSSStruct.cpp b/mozilla/layout/style/nsCSSStruct.cpp
index 59693410d00..7de6d3c0aa1 100644
--- a/mozilla/layout/style/nsCSSStruct.cpp
+++ b/mozilla/layout/style/nsCSSStruct.cpp
@@ -26,6 +26,7 @@
static NS_DEFINE_IID(kCSSFontSID, NS_CSS_FONT_SID);
static NS_DEFINE_IID(kCSSColorSID, NS_CSS_COLOR_SID);
+static NS_DEFINE_IID(kCSSDisplaySID, NS_CSS_DISPLAY_SID);
static NS_DEFINE_IID(kCSSTextSID, NS_CSS_TEXT_SID);
static NS_DEFINE_IID(kCSSMarginSID, NS_CSS_MARGIN_SID);
static NS_DEFINE_IID(kCSSPositionSID, NS_CSS_POSITION_SID);
@@ -325,6 +326,8 @@ void nsCSSColor::List(FILE* out, PRInt32 aIndent) const
mBackPositionX.AppendToString(buffer, PROP_BACKGROUND_X_POSITION);
mBackPositionY.AppendToString(buffer, PROP_BACKGROUND_Y_POSITION);
mBackFilter.AppendToString(buffer, PROP_BACKGROUND_FILTER);
+ mCursor.AppendToString(buffer, PROP_CURSOR);
+ mCursorImage.AppendToString(buffer, PROP_CURSOR_IMAGE);
fputs(buffer, out);
}
@@ -344,13 +347,31 @@ void nsCSSText::List(FILE* out, PRInt32 aIndent) const
mDecoration.AppendToString(buffer, PROP_TEXT_DECORATION);
mVertAlign.AppendToString(buffer, PROP_VERTICAL_ALIGN);
mTransform.AppendToString(buffer, PROP_TEXT_TRANSFORM);
- mHorzAlign.AppendToString(buffer, PROP_TEXT_ALIGN);
+ mTextAlign.AppendToString(buffer, PROP_TEXT_ALIGN);
mIndent.AppendToString(buffer, PROP_TEXT_INDENT);
mLineHeight.AppendToString(buffer, PROP_LINE_HEIGHT);
mWhiteSpace.AppendToString(buffer, PROP_WHITE_SPACE);
fputs(buffer, out);
}
+const nsID& nsCSSDisplay::GetID(void)
+{
+ return kCSSDisplaySID;
+}
+
+void nsCSSDisplay::List(FILE* out, PRInt32 aIndent) const
+{
+ for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out);
+
+ nsAutoString buffer;
+
+ mDirection.AppendToString(buffer, PROP_DIRECTION);
+ mDisplay.AppendToString(buffer, PROP_DISPLAY);
+ mFloat.AppendToString(buffer, PROP_FLOAT);
+ mClear.AppendToString(buffer, PROP_CLEAR);
+ fputs(buffer, out);
+}
+
void nsCSSRect::List(FILE* out, PRInt32 aPropID, PRInt32 aIndent) const
{
for (PRInt32 index = aIndent; --index >= 0; ) fputs(" ", out);
@@ -455,9 +476,6 @@ void nsCSSPosition::List(FILE* out, PRInt32 aIndent) const
mOverflow.AppendToString(buffer, PROP_OVERFLOW);
mZIndex.AppendToString(buffer, PROP_OVERFLOW);
mVisibility.AppendToString(buffer, PROP_VISIBILITY);
- mFloat.AppendToString(buffer, PROP_FLOAT);
- mClear.AppendToString(buffer, PROP_CLEAR);
- mDisplay.AppendToString(buffer, PROP_DISPLAY);
mFilter.AppendToString(buffer, PROP_FILTER);
fputs(buffer, out);
}
@@ -512,6 +530,7 @@ protected:
nsCSSMargin* mMargin;
nsCSSPosition* mPosition;
nsCSSList* mList;
+ nsCSSDisplay* mDisplay;
};
#ifdef DEBUG_REFS
@@ -556,6 +575,9 @@ CSSDeclarationImpl::~CSSDeclarationImpl(void)
if (nsnull != mList) {
delete mList;
}
+ if (nsnull != mDisplay) {
+ delete mDisplay;
+ }
#ifdef DEBUG_REFS
--gInstanceCount;
fprintf(stdout, "%d - CSSDeclaration\n", gInstanceCount);
@@ -576,6 +598,9 @@ nsresult CSSDeclarationImpl::GetData(const nsID& aSID, nsCSSStruct** aDataPtr)
else if (aSID.Equals(kCSSColorSID)) {
*aDataPtr = mColor;
}
+ else if (aSID.Equals(kCSSDisplaySID)) {
+ *aDataPtr = mDisplay;
+ }
else if (aSID.Equals(kCSSTextSID)) {
*aDataPtr = mText;
}
@@ -612,6 +637,12 @@ nsresult CSSDeclarationImpl::EnsureData(const nsID& aSID, nsCSSStruct** aDataPtr
}
*aDataPtr = mColor;
}
+ else if (aSID.Equals(kCSSDisplaySID)) {
+ if (nsnull == mDisplay) {
+ mDisplay = new nsCSSDisplay();
+ }
+ *aDataPtr = mColor;
+ }
else if (aSID.Equals(kCSSTextSID)) {
if (nsnull == mText) {
mText = new nsCSSText();
@@ -687,6 +718,8 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_BACKGROUND_X_POSITION:
case PROP_BACKGROUND_Y_POSITION:
case PROP_BACKGROUND_FILTER:
+ case PROP_CURSOR:
+ case PROP_CURSOR_IMAGE:
if (nsnull == mColor) {
mColor = new nsCSSColor();
}
@@ -700,6 +733,8 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_BACKGROUND_X_POSITION: mColor->mBackPositionX = aValue; break;
case PROP_BACKGROUND_Y_POSITION: mColor->mBackPositionY = aValue; break;
case PROP_BACKGROUND_FILTER: mColor->mBackFilter = aValue; break;
+ case PROP_CURSOR: mColor->mCursor = aValue; break;
+ case PROP_CURSOR_IMAGE: mColor->mCursorImage = aValue; break;
}
}
else {
@@ -727,7 +762,7 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_TEXT_DECORATION: mText->mDecoration = aValue; break;
case PROP_VERTICAL_ALIGN: mText->mVertAlign = aValue; break;
case PROP_TEXT_TRANSFORM: mText->mTransform = aValue; break;
- case PROP_TEXT_ALIGN: mText->mHorzAlign = aValue; break;
+ case PROP_TEXT_ALIGN: mText->mTextAlign = aValue; break;
case PROP_TEXT_INDENT: mText->mIndent = aValue; break;
case PROP_LINE_HEIGHT: mText->mLineHeight = aValue; break;
case PROP_WHITE_SPACE: mText->mWhiteSpace = aValue; break;
@@ -888,9 +923,6 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_OVERFLOW:
case PROP_Z_INDEX:
case PROP_VISIBILITY:
- case PROP_FLOAT:
- case PROP_CLEAR:
- case PROP_DISPLAY:
case PROP_FILTER:
if (nsnull == mPosition) {
mPosition = new nsCSSPosition();
@@ -905,9 +937,6 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
case PROP_OVERFLOW: mPosition->mOverflow = aValue; break;
case PROP_Z_INDEX: mPosition->mZIndex = aValue; break;
case PROP_VISIBILITY: mPosition->mVisibility = aValue; break;
- case PROP_FLOAT: mPosition->mFloat = aValue; break;
- case PROP_CLEAR: mPosition->mClear = aValue; break;
- case PROP_DISPLAY: mPosition->mDisplay = aValue; break;
case PROP_FILTER: mPosition->mFilter = aValue; break;
}
}
@@ -963,6 +992,27 @@ nsresult CSSDeclarationImpl::AddValue(PRInt32 aProperty, const nsCSSValue& aValu
}
break;
+ // nsCSSDisplay
+ case PROP_FLOAT:
+ case PROP_CLEAR:
+ case PROP_DISPLAY:
+ case PROP_DIRECTION:
+ if (nsnull == mDisplay) {
+ mDisplay = new nsCSSDisplay();
+ }
+ if (nsnull != mDisplay) {
+ switch (aProperty) {
+ case PROP_FLOAT: mDisplay->mFloat = aValue; break;
+ case PROP_CLEAR: mDisplay->mClear = aValue; break;
+ case PROP_DISPLAY: mDisplay->mDisplay = aValue; break;
+ case PROP_DIRECTION: mDisplay->mDirection = aValue; break;
+ }
+ }
+ else {
+ result = NS_ERROR_OUT_OF_MEMORY;
+ }
+ break;
+
case PROP_BACKGROUND:
case PROP_BORDER:
case PROP_CLIP:
@@ -1025,6 +1075,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_BACKGROUND_X_POSITION:
case PROP_BACKGROUND_Y_POSITION:
case PROP_BACKGROUND_FILTER:
+ case PROP_CURSOR:
+ case PROP_CURSOR_IMAGE:
if (nsnull != mColor) {
switch (aProperty) {
case PROP_COLOR: aValue = mColor->mColor; break;
@@ -1035,6 +1087,8 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_BACKGROUND_X_POSITION: aValue = mColor->mBackPositionX; break;
case PROP_BACKGROUND_Y_POSITION: aValue = mColor->mBackPositionY; break;
case PROP_BACKGROUND_FILTER: aValue = mColor->mBackFilter; break;
+ case PROP_CURSOR: aValue = mColor->mCursor; break;
+ case PROP_CURSOR_IMAGE: aValue = mColor->mCursorImage; break;
}
}
else {
@@ -1059,7 +1113,7 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_TEXT_DECORATION: aValue = mText->mDecoration; break;
case PROP_VERTICAL_ALIGN: aValue = mText->mVertAlign; break;
case PROP_TEXT_TRANSFORM: aValue = mText->mTransform; break;
- case PROP_TEXT_ALIGN: aValue = mText->mHorzAlign; break;
+ case PROP_TEXT_ALIGN: aValue = mText->mTextAlign; break;
case PROP_TEXT_INDENT: aValue = mText->mIndent; break;
case PROP_LINE_HEIGHT: aValue = mText->mLineHeight; break;
case PROP_WHITE_SPACE: aValue = mText->mWhiteSpace; break;
@@ -1165,9 +1219,6 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_OVERFLOW:
case PROP_Z_INDEX:
case PROP_VISIBILITY:
- case PROP_FLOAT:
- case PROP_CLEAR:
- case PROP_DISPLAY:
case PROP_FILTER:
if (nsnull != mPosition) {
switch (aProperty) {
@@ -1179,9 +1230,6 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
case PROP_OVERFLOW: aValue = mPosition->mOverflow; break;
case PROP_Z_INDEX: aValue = mPosition->mZIndex; break;
case PROP_VISIBILITY: aValue = mPosition->mVisibility; break;
- case PROP_FLOAT: aValue = mPosition->mFloat; break;
- case PROP_CLEAR: aValue = mPosition->mClear; break;
- case PROP_DISPLAY: aValue = mPosition->mDisplay; break;
case PROP_FILTER: aValue = mPosition->mFilter; break;
}
}
@@ -1223,6 +1271,24 @@ nsresult CSSDeclarationImpl::GetValue(PRInt32 aProperty, nsCSSValue& aValue)
}
break;
+ // nsCSSDisplay
+ case PROP_FLOAT:
+ case PROP_CLEAR:
+ case PROP_DISPLAY:
+ case PROP_DIRECTION:
+ if (nsnull != mDisplay) {
+ switch (aProperty) {
+ case PROP_FLOAT: aValue = mDisplay->mFloat; break;
+ case PROP_CLEAR: aValue = mDisplay->mClear; break;
+ case PROP_DISPLAY: aValue = mDisplay->mDisplay; break;
+ case PROP_DIRECTION: aValue = mDisplay->mDirection; break;
+ }
+ }
+ else {
+ aValue.Reset();
+ }
+ break;
+
case PROP_BACKGROUND:
case PROP_BORDER:
case PROP_CLIP:
@@ -1270,6 +1336,9 @@ void CSSDeclarationImpl::List(FILE* out, PRInt32 aIndent) const
if (nsnull != mList) {
mList->List(out);
}
+ if (nsnull != mDisplay) {
+ mDisplay->List(out);
+ }
fputs("}", out);
}
@@ -1294,24 +1363,23 @@ NS_HTML nsresult
/*
font
===========
-
-'font-family', string (list)
-'font-style', enum
-'font-variant' enum (ie: small caps)
-'font-weight' enum
-'font-size' abs, pct, enum, +-1
+font-family: string (list)
+font-style: enum
+font-variant: enum (ie: small caps)
+font-weight: enum
+font-size: abs, pct, enum, +-1
color/background
=============
-
color: color
background-color: color
background-image: url(string)
background-repeat: enum
background-attachment: enum
background-position-x -y: abs, pct, enum (left/top center right/bottom (pct?))
-
+cursor: enum
+cursor-image: url(string)
text
@@ -1346,9 +1414,11 @@ overflow: enum
z-index: int, auto
visibity: enum
+display
+=======
float: enum
clear: enum
-
+direction: enum
display: enum
filter: string