[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.17-1283-gcf603cf
eric at webkit.org
eric at webkit.org
Tue Jan 5 23:56:56 UTC 2010
The following commit has been merged in the webkit-1.1 branch:
commit 03aa56804b610bb36e24b73116d8caadf5fba892
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date: Mon Dec 21 04:57:59 2009 +0000
2009-12-20 Kent Tamura <tkent at chromium.org>
Reviewed by Darin Adler.
Introduce the followings:
- ::-webkit-inner-spin-button pseudo CSS selector
- ::-webkit-outer-spin-button pseudo CSS selector
- new appearance type: inner-spin-button
- new appearance type: outer-spin-button
They're going to be used for <input type=number> UI.
https://bugs.webkit.org/show_bug.cgi?id=31821
Inner-spin-button will be used for Windows, and outer-spin-button
will be used for Mac. A spin-button will represent a pair of an
increasing button part and a decreasing button part. SpinUpState,
which is defined in ThemeTypes.h, will be used to distinguish
these two parts.
The outer-spin-button implementation will use NSStepperCell.
NSStepperCell represents the pair of the parts and we can't draw them
independently. So a spin-button also represents the pair of the parts.
This change has no tests. The following changes with tests will cover.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
(WebCore::CSSSelector::):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
* css/CSSValueKeywords.in:
* css/html.css:
* platform/ThemeTypes.h:
(WebCore::ControlState): Add SpinUpState.
(WebCore::ControlPart): Add InnerSpinButtonPart and OuterSpinButtonPart.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::adjustInnerSpinButtonStyle): Add an empty implementation.
(WebCore::RenderTheme::adjustOuterSpinButtonStyle): Add an empty implementation.
* rendering/RenderTheme.h:
(WebCore::RenderTheme::paintInnerSpinButton): Add an empty implementation.
(WebCore::RenderTheme::paintOuterSpinButton): Add an empty implementation.
* rendering/style/RenderStyleConstants.h:
(WebCore::PseudoId): Add INNER_SPIN_BUTTON and OUTER_SPIN_BUTTON.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@52432 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index d8ed569..f9cc51d 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,51 @@
+2009-12-20 Kent Tamura <tkent at chromium.org>
+
+ Reviewed by Darin Adler.
+
+ Introduce the followings:
+ - ::-webkit-inner-spin-button pseudo CSS selector
+ - ::-webkit-outer-spin-button pseudo CSS selector
+ - new appearance type: inner-spin-button
+ - new appearance type: outer-spin-button
+ They're going to be used for <input type=number> UI.
+ https://bugs.webkit.org/show_bug.cgi?id=31821
+
+ Inner-spin-button will be used for Windows, and outer-spin-button
+ will be used for Mac. A spin-button will represent a pair of an
+ increasing button part and a decreasing button part. SpinUpState,
+ which is defined in ThemeTypes.h, will be used to distinguish
+ these two parts.
+
+ The outer-spin-button implementation will use NSStepperCell.
+ NSStepperCell represents the pair of the parts and we can't draw them
+ independently. So a spin-button also represents the pair of the parts.
+
+ This change has no tests. The following changes with tests will cover.
+
+ * css/CSSPrimitiveValueMappings.h:
+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+ * css/CSSSelector.cpp:
+ (WebCore::CSSSelector::extractPseudoType):
+ * css/CSSSelector.h:
+ (WebCore::CSSSelector::):
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
+ * css/CSSValueKeywords.in:
+ * css/html.css:
+ * platform/ThemeTypes.h:
+ (WebCore::ControlState): Add SpinUpState.
+ (WebCore::ControlPart): Add InnerSpinButtonPart and OuterSpinButtonPart.
+ * rendering/RenderTheme.cpp:
+ (WebCore::RenderTheme::adjustStyle):
+ (WebCore::RenderTheme::paint):
+ (WebCore::RenderTheme::adjustInnerSpinButtonStyle): Add an empty implementation.
+ (WebCore::RenderTheme::adjustOuterSpinButtonStyle): Add an empty implementation.
+ * rendering/RenderTheme.h:
+ (WebCore::RenderTheme::paintInnerSpinButton): Add an empty implementation.
+ (WebCore::RenderTheme::paintOuterSpinButton): Add an empty implementation.
+ * rendering/style/RenderStyleConstants.h:
+ (WebCore::PseudoId): Add INNER_SPIN_BUTTON and OUTER_SPIN_BUTTON.
+
2009-12-20 Nayan Kumar K <nayankk at gmail.com>
Reviewed by Darin Adler.
diff --git a/WebCore/css/CSSPrimitiveValueMappings.h b/WebCore/css/CSSPrimitiveValueMappings.h
index 3c6097b..b9cc06f 100644
--- a/WebCore/css/CSSPrimitiveValueMappings.h
+++ b/WebCore/css/CSSPrimitiveValueMappings.h
@@ -198,6 +198,9 @@ template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ControlPart e)
case DefaultButtonPart:
m_value.ident = CSSValueDefaultButton;
break;
+ case InnerSpinButtonPart:
+ m_value.ident = CSSValueInnerSpinButton;
+ break;
case ListboxPart:
m_value.ident = CSSValueListbox;
break;
@@ -269,6 +272,9 @@ template<> inline CSSPrimitiveValue::CSSPrimitiveValue(ControlPart e)
case MenulistTextFieldPart:
m_value.ident = CSSValueMenulistTextfield;
break;
+ case OuterSpinButtonPart:
+ m_value.ident = CSSValueOuterSpinButton;
+ break;
case SliderHorizontalPart:
m_value.ident = CSSValueSliderHorizontal;
break;
diff --git a/WebCore/css/CSSSelector.cpp b/WebCore/css/CSSSelector.cpp
index ab2d22b..9ae9b9f 100644
--- a/WebCore/css/CSSSelector.cpp
+++ b/WebCore/css/CSSSelector.cpp
@@ -99,6 +99,7 @@ void CSSSelector::extractPseudoType() const
DEFINE_STATIC_LOCAL(AtomicString, focus, ("focus"));
DEFINE_STATIC_LOCAL(AtomicString, hover, ("hover"));
DEFINE_STATIC_LOCAL(AtomicString, indeterminate, ("indeterminate"));
+ DEFINE_STATIC_LOCAL(AtomicString, innerSpinButton, ("-webkit-inner-spin-button"));
#if ENABLE(DATALIST)
DEFINE_STATIC_LOCAL(AtomicString, inputListButton, ("-webkit-input-list-button"));
#endif
@@ -127,6 +128,7 @@ void CSSSelector::extractPseudoType() const
DEFINE_STATIC_LOCAL(AtomicString, onlyChild, ("only-child"));
DEFINE_STATIC_LOCAL(AtomicString, onlyOfType, ("only-of-type"));
DEFINE_STATIC_LOCAL(AtomicString, optional, ("optional"));
+ DEFINE_STATIC_LOCAL(AtomicString, outerSpinButton, ("-webkit-outer-spin-button"));
DEFINE_STATIC_LOCAL(AtomicString, required, ("required"));
DEFINE_STATIC_LOCAL(AtomicString, resizer, ("-webkit-resizer"));
DEFINE_STATIC_LOCAL(AtomicString, root, ("root"));
@@ -235,7 +237,10 @@ void CSSSelector::extractPseudoType() const
m_pseudoType = PseudoHover;
else if (m_value == indeterminate)
m_pseudoType = PseudoIndeterminate;
- else if (m_value == link)
+ else if (m_value == innerSpinButton) {
+ m_pseudoType = PseudoInnerSpinButton;
+ element = true;
+ } else if (m_value == link)
m_pseudoType = PseudoLink;
else if (m_value == lang)
m_pseudoType = PseudoLang;
@@ -297,7 +302,10 @@ void CSSSelector::extractPseudoType() const
m_pseudoType = PseudoNthLastChild;
else if (m_value == nthLastOfType)
m_pseudoType = PseudoNthLastOfType;
- else if (m_value == root)
+ else if (m_value == outerSpinButton) {
+ m_pseudoType = PseudoOuterSpinButton;
+ element = true;
+ } else if (m_value == root)
m_pseudoType = PseudoRoot;
else if (m_value == windowInactive)
m_pseudoType = PseudoWindowInactive;
diff --git a/WebCore/css/CSSSelector.h b/WebCore/css/CSSSelector.h
index 95a72e4..70f2574 100644
--- a/WebCore/css/CSSSelector.h
+++ b/WebCore/css/CSSSelector.h
@@ -183,7 +183,9 @@ namespace WebCore {
PseudoMediaControlsReturnToRealtimeButton,
PseudoMediaControlsStatusDisplay,
PseudoMediaControlsFullscreenButton,
- PseudoInputListButton
+ PseudoInputListButton,
+ PseudoInnerSpinButton,
+ PseudoOuterSpinButton,
};
PseudoType pseudoType() const
diff --git a/WebCore/css/CSSStyleSelector.cpp b/WebCore/css/CSSStyleSelector.cpp
index 0adf9c4..6c8f854 100644
--- a/WebCore/css/CSSStyleSelector.cpp
+++ b/WebCore/css/CSSStyleSelector.cpp
@@ -2584,6 +2584,12 @@ bool CSSStyleSelector::SelectorChecker::checkOneSelector(CSSSelector* sel, Eleme
case CSSSelector::PseudoResizer:
dynamicPseudo = RESIZER;
return true;
+ case CSSSelector::PseudoInnerSpinButton:
+ dynamicPseudo = INNER_SPIN_BUTTON;
+ return true;
+ case CSSSelector::PseudoOuterSpinButton:
+ dynamicPseudo = OUTER_SPIN_BUTTON;
+ return true;
case CSSSelector::PseudoUnknown:
case CSSSelector::PseudoNotParsed:
default:
diff --git a/WebCore/css/CSSValueKeywords.in b/WebCore/css/CSSValueKeywords.in
index 1c35b23..3518180 100644
--- a/WebCore/css/CSSValueKeywords.in
+++ b/WebCore/css/CSSValueKeywords.in
@@ -501,6 +501,7 @@ square-button
button
button-bevel
default-button
+inner-spin-button
list-button
listbox
listitem
@@ -524,6 +525,7 @@ menulist
menulist-button
menulist-text
menulist-textfield
+outer-spin-button
slider-horizontal
slider-vertical
sliderthumb-horizontal
diff --git a/WebCore/css/html.css b/WebCore/css/html.css
index 1132d24..c0e75ca 100644
--- a/WebCore/css/html.css
+++ b/WebCore/css/html.css
@@ -359,6 +359,17 @@ input::-webkit-input-list-button {
display: inline-block;
}
+input::-webkit-inner-spin-button {
+ -webkit-appearance: inner-spin-button;
+ display: inline-block;
+}
+
+input::-webkit-outer-spin-button {
+ -webkit-appearance: outer-spin-button;
+ display: inline-block;
+ margin-left: 2px;
+}
+
textarea {
-webkit-appearance: textarea;
background-color: white;
diff --git a/WebCore/platform/ThemeTypes.h b/WebCore/platform/ThemeTypes.h
index 439a3b1..9c2366e 100644
--- a/WebCore/platform/ThemeTypes.h
+++ b/WebCore/platform/ThemeTypes.h
@@ -38,6 +38,7 @@ enum ControlState {
DefaultState = 1 << 6,
WindowInactiveState = 1 << 7,
IndeterminateState = 1 << 8,
+ SpinUpState = 1 << 9, // Sub-state for HoverState and PressedState.
AllStates = 0xffffffff
};
@@ -46,12 +47,12 @@ typedef unsigned ControlStates;
// Must follow CSSValueKeywords.in order
enum ControlPart {
NoControlPart, CheckboxPart, RadioPart, PushButtonPart, SquareButtonPart, ButtonPart,
- ButtonBevelPart, DefaultButtonPart, ListButtonPart, ListboxPart, ListItemPart,
+ ButtonBevelPart, DefaultButtonPart, InnerSpinButtonPart, ListButtonPart, ListboxPart, ListItemPart,
MediaFullscreenButtonPart, MediaMuteButtonPart, MediaPlayButtonPart, MediaSeekBackButtonPart,
MediaSeekForwardButtonPart, MediaRewindButtonPart, MediaReturnToRealtimeButtonPart, MediaToggleClosedCaptionsButtonPart,
MediaSliderPart, MediaSliderThumbPart, MediaVolumeSliderContainerPart, MediaVolumeSliderPart, MediaVolumeSliderThumbPart,
MediaControlsBackgroundPart, MediaCurrentTimePart, MediaTimeRemainingPart,
- MenulistPart, MenulistButtonPart, MenulistTextPart, MenulistTextFieldPart,
+ MenulistPart, MenulistButtonPart, MenulistTextPart, MenulistTextFieldPart, OuterSpinButtonPart,
SliderHorizontalPart, SliderVerticalPart, SliderThumbHorizontalPart,
SliderThumbVerticalPart, CaretPart, SearchFieldPart, SearchFieldDecorationPart,
SearchFieldResultsDecorationPart, SearchFieldResultsButtonPart,
diff --git a/WebCore/rendering/RenderTheme.cpp b/WebCore/rendering/RenderTheme.cpp
index e334e9d..3f930c5 100644
--- a/WebCore/rendering/RenderTheme.cpp
+++ b/WebCore/rendering/RenderTheme.cpp
@@ -87,6 +87,8 @@ void RenderTheme::adjustStyle(CSSStyleSelector* selector, RenderStyle* style, El
switch (part) {
case ListButtonPart:
case CheckboxPart:
+ case InnerSpinButtonPart:
+ case OuterSpinButtonPart:
case RadioPart:
case PushButtonPart:
case SquareButtonPart:
@@ -176,6 +178,10 @@ void RenderTheme::adjustStyle(CSSStyleSelector* selector, RenderStyle* style, El
case DefaultButtonPart:
case ButtonPart:
return adjustButtonStyle(selector, style, e);
+ case InnerSpinButtonPart:
+ return adjustInnerSpinButtonStyle(selector, style, e);
+ case OuterSpinButtonPart:
+ return adjustOuterSpinButtonStyle(selector, style, e);
#endif
case TextFieldPart:
return adjustTextFieldStyle(selector, style, e);
@@ -232,6 +238,8 @@ bool RenderTheme::paint(RenderObject* o, const RenderObject::PaintInfo& paintInf
case ListButtonPart:
case DefaultButtonPart:
case ButtonPart:
+ case InnerSpinButtonPart:
+ case OuterSpinButtonPart:
m_theme->paint(part, controlStatesForRenderer(o), const_cast<GraphicsContext*>(paintInfo.context), r, o->style()->effectiveZoom(), o->view()->frameView());
return false;
default:
@@ -252,6 +260,10 @@ bool RenderTheme::paint(RenderObject* o, const RenderObject::PaintInfo& paintInf
case DefaultButtonPart:
case ButtonPart:
return paintButton(o, paintInfo, r);
+ case InnerSpinButtonPart:
+ return paintInnerSpinButton(o, paintInfo, r);
+ case OuterSpinButtonPart:
+ return paintOuterSpinButton(o, paintInfo, r);
#endif
case MenulistPart:
return paintMenuList(o, paintInfo, r);
@@ -762,6 +774,14 @@ void RenderTheme::adjustButtonStyle(CSSStyleSelector*, RenderStyle* style, Eleme
setButtonSize(style);
}
+void RenderTheme::adjustInnerSpinButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const
+{
+}
+
+void RenderTheme::adjustOuterSpinButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const
+{
+}
+
#endif
void RenderTheme::adjustTextFieldStyle(CSSStyleSelector*, RenderStyle*, Element*) const
diff --git a/WebCore/rendering/RenderTheme.h b/WebCore/rendering/RenderTheme.h
index a080670..ac53c99 100644
--- a/WebCore/rendering/RenderTheme.h
+++ b/WebCore/rendering/RenderTheme.h
@@ -203,6 +203,11 @@ protected:
virtual void adjustButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
virtual bool paintButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
virtual void setButtonSize(RenderStyle*) const { }
+
+ virtual void adjustInnerSpinButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
+ virtual bool paintInnerSpinButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
+ virtual void adjustOuterSpinButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
+ virtual bool paintOuterSpinButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; }
#endif
virtual void adjustTextFieldStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
diff --git a/WebCore/rendering/style/RenderStyleConstants.h b/WebCore/rendering/style/RenderStyleConstants.h
index 92cd3d5..7b632f7 100644
--- a/WebCore/rendering/style/RenderStyleConstants.h
+++ b/WebCore/rendering/style/RenderStyleConstants.h
@@ -73,7 +73,7 @@ enum PseudoId {
MEDIA_CONTROLS_SEEK_BACK_BUTTON, MEDIA_CONTROLS_SEEK_FORWARD_BUTTON, MEDIA_CONTROLS_FULLSCREEN_BUTTON, MEDIA_CONTROLS_REWIND_BUTTON,
MEDIA_CONTROLS_RETURN_TO_REALTIME_BUTTON, MEDIA_CONTROLS_TOGGLE_CLOSED_CAPTIONS_BUTTON,
MEDIA_CONTROLS_STATUS_DISPLAY, SCROLLBAR_THUMB, SCROLLBAR_BUTTON, SCROLLBAR_TRACK, SCROLLBAR_TRACK_PIECE, SCROLLBAR_CORNER, RESIZER,
- INPUT_LIST_BUTTON,
+ INPUT_LIST_BUTTON, INNER_SPIN_BUTTON, OUTER_SPIN_BUTTON,
FIRST_INTERNAL_PSEUDOID = FILE_UPLOAD_BUTTON
};
--
WebKit Debian packaging
More information about the Pkg-webkit-commits
mailing list