зеркало из https://github.com/mozilla/gecko-dev.git
Bug 442228, add -moz-resize property to indicate that elements are resizable, r=dbaron
This commit is contained in:
Родитель
37b034371c
Коммит
27dcf91d68
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include "nsIDOMSVGCSS2Properties.idl"
|
||||
|
||||
[scriptable, uuid(be39bc6d-3b24-4421-9599-8fdf3ad33baf)]
|
||||
[scriptable, uuid(649B0B41-C5F7-4EA2-B6DF-CFFF6B6DD30A)]
|
||||
interface nsIDOMNSCSS2Properties : nsIDOMSVGCSS2Properties
|
||||
{
|
||||
/* Non-DOM 2 extensions */
|
||||
|
@ -281,4 +281,7 @@ interface nsIDOMNSCSS2Properties : nsIDOMSVGCSS2Properties
|
|||
|
||||
attribute DOMString MozTabSize;
|
||||
// raises(DOMException) on setting
|
||||
|
||||
attribute DOMString MozResize;
|
||||
// raises(DOMException) on setting
|
||||
};
|
||||
|
|
|
@ -593,6 +593,12 @@
|
|||
#define NS_STYLE_POINTER_EVENTS_ALL 8
|
||||
#define NS_STYLE_POINTER_EVENTS_AUTO 9
|
||||
|
||||
// See nsStyleDisplay
|
||||
#define NS_STYLE_RESIZE_NONE 0
|
||||
#define NS_STYLE_RESIZE_BOTH 1
|
||||
#define NS_STYLE_RESIZE_HORIZONTAL 2
|
||||
#define NS_STYLE_RESIZE_VERTICAL 3
|
||||
|
||||
// See nsStyleText
|
||||
#define NS_STYLE_TEXT_ALIGN_DEFAULT 0
|
||||
#define NS_STYLE_TEXT_ALIGN_LEFT 1
|
||||
|
|
|
@ -6019,6 +6019,9 @@ CSSParserImpl::ParseSingleValueProperty(nsCSSValue& aValue,
|
|||
nsCSSProps::kPointerEventsKTable);
|
||||
case eCSSProperty_position:
|
||||
return ParseVariant(aValue, VARIANT_HK, nsCSSProps::kPositionKTable);
|
||||
case eCSSProperty_resize:
|
||||
return ParseVariant(aValue, VARIANT_HK,
|
||||
nsCSSProps::kResizeKTable);
|
||||
case eCSSProperty_richness:
|
||||
return ParseVariant(aValue, VARIANT_HN, nsnull);
|
||||
#ifdef MOZ_MATHML
|
||||
|
|
|
@ -2185,6 +2185,17 @@ CSS_PROP_QUOTES(
|
|||
nsnull,
|
||||
CSS_PROP_NO_OFFSET,
|
||||
eStyleAnimType_None)
|
||||
CSS_PROP_DISPLAY(
|
||||
-moz-resize,
|
||||
resize,
|
||||
MozResize,
|
||||
0,
|
||||
Display,
|
||||
mResize,
|
||||
eCSSType_Value,
|
||||
kResizeKTable,
|
||||
CSS_PROP_NO_OFFSET,
|
||||
eStyleAnimType_None)
|
||||
CSS_PROP_BACKENDONLY(
|
||||
richness,
|
||||
richness,
|
||||
|
|
|
@ -1106,6 +1106,14 @@ const PRInt32 nsCSSProps::kRadialGradientSizeKTable[] = {
|
|||
eCSSKeyword_UNKNOWN,-1
|
||||
};
|
||||
|
||||
const PRInt32 nsCSSProps::kResizeKTable[] = {
|
||||
eCSSKeyword_none, NS_STYLE_RESIZE_NONE,
|
||||
eCSSKeyword_both, NS_STYLE_RESIZE_BOTH,
|
||||
eCSSKeyword_horizontal, NS_STYLE_RESIZE_HORIZONTAL,
|
||||
eCSSKeyword_vertical, NS_STYLE_RESIZE_VERTICAL,
|
||||
eCSSKeyword_UNKNOWN,-1
|
||||
};
|
||||
|
||||
const PRInt32 nsCSSProps::kSpeakKTable[] = {
|
||||
eCSSKeyword_none, NS_STYLE_SPEAK_NONE,
|
||||
eCSSKeyword_normal, NS_STYLE_SPEAK_NORMAL,
|
||||
|
|
|
@ -306,6 +306,7 @@ public:
|
|||
static const PRInt32 kPositionKTable[];
|
||||
static const PRInt32 kRadialGradientShapeKTable[];
|
||||
static const PRInt32 kRadialGradientSizeKTable[];
|
||||
static const PRInt32 kResizeKTable[];
|
||||
static const PRInt32 kSpeakKTable[];
|
||||
static const PRInt32 kSpeakHeaderKTable[];
|
||||
static const PRInt32 kSpeakNumeralKTable[];
|
||||
|
|
|
@ -372,6 +372,7 @@ struct nsCSSDisplay : public nsCSSStruct {
|
|||
nsCSSRect mClip;
|
||||
nsCSSValue mOverflowX;
|
||||
nsCSSValue mOverflowY;
|
||||
nsCSSValue mResize;
|
||||
nsCSSValue mPointerEvents;
|
||||
nsCSSValue mVisibility;
|
||||
nsCSSValue mOpacity;
|
||||
|
|
|
@ -3074,6 +3074,19 @@ nsComputedDOMStyle::GetOverflowY(nsIDOMCSSValue** aValue)
|
|||
return CallQueryInterface(val, aValue);
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsComputedDOMStyle::GetResize(nsIDOMCSSValue** aValue)
|
||||
{
|
||||
nsROCSSPrimitiveValue *val = GetROCSSPrimitiveValue();
|
||||
NS_ENSURE_TRUE(val, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
val->SetIdent(nsCSSProps::ValueToKeywordEnum(GetStyleDisplay()->mResize,
|
||||
nsCSSProps::kResizeKTable));
|
||||
|
||||
return CallQueryInterface(val, aValue);
|
||||
}
|
||||
|
||||
|
||||
nsresult
|
||||
nsComputedDOMStyle::GetPageBreakAfter(nsIDOMCSSValue** aValue)
|
||||
{
|
||||
|
@ -4532,6 +4545,7 @@ nsComputedDOMStyle::GetQueryablePropertyMap(PRUint32* aLength)
|
|||
COMPUTED_STYLE_MAP_ENTRY_LAYOUT(_moz_outline_radius_bottomRight,OutlineRadiusBottomRight),
|
||||
COMPUTED_STYLE_MAP_ENTRY_LAYOUT(_moz_outline_radius_topLeft, OutlineRadiusTopLeft),
|
||||
COMPUTED_STYLE_MAP_ENTRY_LAYOUT(_moz_outline_radius_topRight, OutlineRadiusTopRight),
|
||||
COMPUTED_STYLE_MAP_ENTRY(resize, Resize),
|
||||
COMPUTED_STYLE_MAP_ENTRY(stack_sizing, StackSizing),
|
||||
COMPUTED_STYLE_MAP_ENTRY(_moz_tab_size, MozTabSize),
|
||||
COMPUTED_STYLE_MAP_ENTRY_LAYOUT(_moz_transform, MozTransform),
|
||||
|
|
|
@ -308,6 +308,7 @@ private:
|
|||
nsresult GetOverflow(nsIDOMCSSValue** aValue);
|
||||
nsresult GetOverflowX(nsIDOMCSSValue** aValue);
|
||||
nsresult GetOverflowY(nsIDOMCSSValue** aValue);
|
||||
nsresult GetResize(nsIDOMCSSValue** aValue);
|
||||
nsresult GetPageBreakAfter(nsIDOMCSSValue** aValue);
|
||||
nsresult GetPageBreakBefore(nsIDOMCSSValue** aValue);
|
||||
nsresult GetMozTransform(nsIDOMCSSValue** aValue);
|
||||
|
|
|
@ -3984,6 +3984,10 @@ nsRuleNode::ComputeDisplayData(void* aStartStruct,
|
|||
display->mOverflowY = NS_STYLE_OVERFLOW_AUTO;
|
||||
}
|
||||
|
||||
SetDiscrete(displayData.mResize, display->mResize, canStoreInRuleTree,
|
||||
SETDSC_ENUMERATED, parentDisplay->mResize,
|
||||
NS_STYLE_RESIZE_NONE, 0, 0, 0, 0);
|
||||
|
||||
// clip property: length, auto, inherit
|
||||
if (eCSSUnit_Inherit == displayData.mClip.mTop.GetUnit()) { // if one is inherit, they all are
|
||||
canStoreInRuleTree = PR_FALSE;
|
||||
|
|
|
@ -1806,6 +1806,7 @@ nsStyleDisplay::nsStyleDisplay()
|
|||
mBreakAfter = PR_FALSE;
|
||||
mOverflowX = NS_STYLE_OVERFLOW_VISIBLE;
|
||||
mOverflowY = NS_STYLE_OVERFLOW_VISIBLE;
|
||||
mResize = NS_STYLE_RESIZE_NONE;
|
||||
mClipFlags = NS_STYLE_CLIP_AUTO;
|
||||
mClip.SetRect(0,0,0,0);
|
||||
mOpacity = 1.0f;
|
||||
|
@ -1841,6 +1842,7 @@ nsStyleDisplay::nsStyleDisplay(const nsStyleDisplay& aSource)
|
|||
mBreakAfter = aSource.mBreakAfter;
|
||||
mOverflowX = aSource.mOverflowX;
|
||||
mOverflowY = aSource.mOverflowY;
|
||||
mResize = aSource.mResize;
|
||||
mClipFlags = aSource.mClipFlags;
|
||||
mClip = aSource.mClip;
|
||||
mOpacity = aSource.mOpacity;
|
||||
|
@ -1864,7 +1866,8 @@ nsChangeHint nsStyleDisplay::CalcDifference(const nsStyleDisplay& aOther) const
|
|||
|| mDisplay != aOther.mDisplay
|
||||
|| (mFloats == NS_STYLE_FLOAT_NONE) != (aOther.mFloats == NS_STYLE_FLOAT_NONE)
|
||||
|| mOverflowX != aOther.mOverflowX
|
||||
|| mOverflowY != aOther.mOverflowY)
|
||||
|| mOverflowY != aOther.mOverflowY
|
||||
|| mResize != aOther.mResize)
|
||||
NS_UpdateHint(hint, nsChangeHint_ReconstructFrame);
|
||||
|
||||
if (mFloats != aOther.mFloats) {
|
||||
|
|
|
@ -1314,6 +1314,7 @@ struct nsStyleDisplay {
|
|||
PRPackedBool mBreakAfter; // [reset]
|
||||
PRUint8 mOverflowX; // [reset] see nsStyleConsts.h
|
||||
PRUint8 mOverflowY; // [reset] see nsStyleConsts.h
|
||||
PRUint8 mResize; // [reset] see nsStyleConsts.h
|
||||
PRUint8 mClipFlags; // [reset] see nsStyleConsts.h
|
||||
PRPackedBool mTransformPresent; // [reset] Whether there is a -moz-transform.
|
||||
nsStyleTransformMatrix mTransform; // [reset] The stored transform matrix
|
||||
|
|
|
@ -535,6 +535,15 @@ var gCSSProperties = {
|
|||
other_values: [ "1px", "3em" ],
|
||||
invalid_values: []
|
||||
},
|
||||
"-moz-resize": {
|
||||
domProp: "MozResize",
|
||||
inherited: false,
|
||||
type: CSS_TYPE_LONGHAND,
|
||||
prerequisites: { "display": "block", "overflow": "auto" },
|
||||
initial_values: [ "none" ],
|
||||
other_values: [ "both", "horizontal", "vertical" ],
|
||||
invalid_values: []
|
||||
},
|
||||
"-moz-tab-size": {
|
||||
domProp: "MozTabSize",
|
||||
inherited: true,
|
||||
|
|
Загрузка…
Ссылка в новой задаче