Changeset 52432 in webkit
- Timestamp:
- Dec 20, 2009 8:57:59 PM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r52431 r52432 1 2009-12-20 Kent Tamura <tkent@chromium.org> 2 3 Reviewed by Darin Adler. 4 5 Introduce the followings: 6 - ::-webkit-inner-spin-button pseudo CSS selector 7 - ::-webkit-outer-spin-button pseudo CSS selector 8 - new appearance type: inner-spin-button 9 - new appearance type: outer-spin-button 10 They're going to be used for <input type=number> UI. 11 https://bugs.webkit.org/show_bug.cgi?id=31821 12 13 Inner-spin-button will be used for Windows, and outer-spin-button 14 will be used for Mac. A spin-button will represent a pair of an 15 increasing button part and a decreasing button part. SpinUpState, 16 which is defined in ThemeTypes.h, will be used to distinguish 17 these two parts. 18 19 The outer-spin-button implementation will use NSStepperCell. 20 NSStepperCell represents the pair of the parts and we can't draw them 21 independently. So a spin-button also represents the pair of the parts. 22 23 This change has no tests. The following changes with tests will cover. 24 25 * css/CSSPrimitiveValueMappings.h: 26 (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): 27 * css/CSSSelector.cpp: 28 (WebCore::CSSSelector::extractPseudoType): 29 * css/CSSSelector.h: 30 (WebCore::CSSSelector::): 31 * css/CSSStyleSelector.cpp: 32 (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): 33 * css/CSSValueKeywords.in: 34 * css/html.css: 35 * platform/ThemeTypes.h: 36 (WebCore::ControlState): Add SpinUpState. 37 (WebCore::ControlPart): Add InnerSpinButtonPart and OuterSpinButtonPart. 38 * rendering/RenderTheme.cpp: 39 (WebCore::RenderTheme::adjustStyle): 40 (WebCore::RenderTheme::paint): 41 (WebCore::RenderTheme::adjustInnerSpinButtonStyle): Add an empty implementation. 42 (WebCore::RenderTheme::adjustOuterSpinButtonStyle): Add an empty implementation. 43 * rendering/RenderTheme.h: 44 (WebCore::RenderTheme::paintInnerSpinButton): Add an empty implementation. 45 (WebCore::RenderTheme::paintOuterSpinButton): Add an empty implementation. 46 * rendering/style/RenderStyleConstants.h: 47 (WebCore::PseudoId): Add INNER_SPIN_BUTTON and OUTER_SPIN_BUTTON. 48 1 49 2009-12-20 Nayan Kumar K <nayankk@gmail.com> 2 50 -
trunk/WebCore/css/CSSPrimitiveValueMappings.h
r51191 r52432 199 199 m_value.ident = CSSValueDefaultButton; 200 200 break; 201 case InnerSpinButtonPart: 202 m_value.ident = CSSValueInnerSpinButton; 203 break; 201 204 case ListboxPart: 202 205 m_value.ident = CSSValueListbox; … … 269 272 case MenulistTextFieldPart: 270 273 m_value.ident = CSSValueMenulistTextfield; 274 break; 275 case OuterSpinButtonPart: 276 m_value.ident = CSSValueOuterSpinButton; 271 277 break; 272 278 case SliderHorizontalPart: -
trunk/WebCore/css/CSSSelector.cpp
r51191 r52432 100 100 DEFINE_STATIC_LOCAL(AtomicString, hover, ("hover")); 101 101 DEFINE_STATIC_LOCAL(AtomicString, indeterminate, ("indeterminate")); 102 DEFINE_STATIC_LOCAL(AtomicString, innerSpinButton, ("-webkit-inner-spin-button")); 102 103 #if ENABLE(DATALIST) 103 104 DEFINE_STATIC_LOCAL(AtomicString, inputListButton, ("-webkit-input-list-button")); … … 128 129 DEFINE_STATIC_LOCAL(AtomicString, onlyOfType, ("only-of-type")); 129 130 DEFINE_STATIC_LOCAL(AtomicString, optional, ("optional")); 131 DEFINE_STATIC_LOCAL(AtomicString, outerSpinButton, ("-webkit-outer-spin-button")); 130 132 DEFINE_STATIC_LOCAL(AtomicString, required, ("required")); 131 133 DEFINE_STATIC_LOCAL(AtomicString, resizer, ("-webkit-resizer")); … … 236 238 else if (m_value == indeterminate) 237 239 m_pseudoType = PseudoIndeterminate; 238 else if (m_value == link) 240 else if (m_value == innerSpinButton) { 241 m_pseudoType = PseudoInnerSpinButton; 242 element = true; 243 } else if (m_value == link) 239 244 m_pseudoType = PseudoLink; 240 245 else if (m_value == lang) … … 298 303 else if (m_value == nthLastOfType) 299 304 m_pseudoType = PseudoNthLastOfType; 300 else if (m_value == root) 305 else if (m_value == outerSpinButton) { 306 m_pseudoType = PseudoOuterSpinButton; 307 element = true; 308 } else if (m_value == root) 301 309 m_pseudoType = PseudoRoot; 302 310 else if (m_value == windowInactive) -
trunk/WebCore/css/CSSSelector.h
r51191 r52432 184 184 PseudoMediaControlsStatusDisplay, 185 185 PseudoMediaControlsFullscreenButton, 186 PseudoInputListButton 186 PseudoInputListButton, 187 PseudoInnerSpinButton, 188 PseudoOuterSpinButton, 187 189 }; 188 190 -
trunk/WebCore/css/CSSStyleSelector.cpp
r51902 r52432 2584 2584 case CSSSelector::PseudoResizer: 2585 2585 dynamicPseudo = RESIZER; 2586 return true; 2587 case CSSSelector::PseudoInnerSpinButton: 2588 dynamicPseudo = INNER_SPIN_BUTTON; 2589 return true; 2590 case CSSSelector::PseudoOuterSpinButton: 2591 dynamicPseudo = OUTER_SPIN_BUTTON; 2586 2592 return true; 2587 2593 case CSSSelector::PseudoUnknown: -
trunk/WebCore/css/CSSValueKeywords.in
r51191 r52432 502 502 button-bevel 503 503 default-button 504 inner-spin-button 504 505 list-button 505 506 listbox … … 525 526 menulist-text 526 527 menulist-textfield 528 outer-spin-button 527 529 slider-horizontal 528 530 slider-vertical -
trunk/WebCore/css/html.css
r51227 r52432 360 360 } 361 361 362 input::-webkit-inner-spin-button { 363 -webkit-appearance: inner-spin-button; 364 display: inline-block; 365 } 366 367 input::-webkit-outer-spin-button { 368 -webkit-appearance: outer-spin-button; 369 display: inline-block; 370 margin-left: 2px; 371 } 372 362 373 textarea { 363 374 -webkit-appearance: textarea; -
trunk/WebCore/platform/ThemeTypes.h
r51191 r52432 39 39 WindowInactiveState = 1 << 7, 40 40 IndeterminateState = 1 << 8, 41 SpinUpState = 1 << 9, // Sub-state for HoverState and PressedState. 41 42 AllStates = 0xffffffff 42 43 }; … … 47 48 enum ControlPart { 48 49 NoControlPart, CheckboxPart, RadioPart, PushButtonPart, SquareButtonPart, ButtonPart, 49 ButtonBevelPart, DefaultButtonPart, ListButtonPart, ListboxPart, ListItemPart,50 ButtonBevelPart, DefaultButtonPart, InnerSpinButtonPart, ListButtonPart, ListboxPart, ListItemPart, 50 51 MediaFullscreenButtonPart, MediaMuteButtonPart, MediaPlayButtonPart, MediaSeekBackButtonPart, 51 52 MediaSeekForwardButtonPart, MediaRewindButtonPart, MediaReturnToRealtimeButtonPart, MediaToggleClosedCaptionsButtonPart, 52 53 MediaSliderPart, MediaSliderThumbPart, MediaVolumeSliderContainerPart, MediaVolumeSliderPart, MediaVolumeSliderThumbPart, 53 54 MediaControlsBackgroundPart, MediaCurrentTimePart, MediaTimeRemainingPart, 54 MenulistPart, MenulistButtonPart, MenulistTextPart, MenulistTextFieldPart, 55 MenulistPart, MenulistButtonPart, MenulistTextPart, MenulistTextFieldPart, OuterSpinButtonPart, 55 56 SliderHorizontalPart, SliderVerticalPart, SliderThumbHorizontalPart, 56 57 SliderThumbVerticalPart, CaretPart, SearchFieldPart, SearchFieldDecorationPart, -
trunk/WebCore/rendering/RenderTheme.cpp
r51191 r52432 88 88 case ListButtonPart: 89 89 case CheckboxPart: 90 case InnerSpinButtonPart: 91 case OuterSpinButtonPart: 90 92 case RadioPart: 91 93 case PushButtonPart: … … 177 179 case ButtonPart: 178 180 return adjustButtonStyle(selector, style, e); 181 case InnerSpinButtonPart: 182 return adjustInnerSpinButtonStyle(selector, style, e); 183 case OuterSpinButtonPart: 184 return adjustOuterSpinButtonStyle(selector, style, e); 179 185 #endif 180 186 case TextFieldPart: … … 233 239 case DefaultButtonPart: 234 240 case ButtonPart: 241 case InnerSpinButtonPart: 242 case OuterSpinButtonPart: 235 243 m_theme->paint(part, controlStatesForRenderer(o), const_cast<GraphicsContext*>(paintInfo.context), r, o->style()->effectiveZoom(), o->view()->frameView()); 236 244 return false; … … 253 261 case ButtonPart: 254 262 return paintButton(o, paintInfo, r); 263 case InnerSpinButtonPart: 264 return paintInnerSpinButton(o, paintInfo, r); 265 case OuterSpinButtonPart: 266 return paintOuterSpinButton(o, paintInfo, r); 255 267 #endif 256 268 case MenulistPart: … … 763 775 } 764 776 777 void RenderTheme::adjustInnerSpinButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const 778 { 779 } 780 781 void RenderTheme::adjustOuterSpinButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const 782 { 783 } 784 765 785 #endif 766 786 -
trunk/WebCore/rendering/RenderTheme.h
r51191 r52432 204 204 virtual bool paintButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; } 205 205 virtual void setButtonSize(RenderStyle*) const { } 206 207 virtual void adjustInnerSpinButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const; 208 virtual bool paintInnerSpinButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; } 209 virtual void adjustOuterSpinButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const; 210 virtual bool paintOuterSpinButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&) { return true; } 206 211 #endif 207 212 -
trunk/WebCore/rendering/style/RenderStyleConstants.h
r51191 r52432 74 74 MEDIA_CONTROLS_RETURN_TO_REALTIME_BUTTON, MEDIA_CONTROLS_TOGGLE_CLOSED_CAPTIONS_BUTTON, 75 75 MEDIA_CONTROLS_STATUS_DISPLAY, SCROLLBAR_THUMB, SCROLLBAR_BUTTON, SCROLLBAR_TRACK, SCROLLBAR_TRACK_PIECE, SCROLLBAR_CORNER, RESIZER, 76 INPUT_LIST_BUTTON, 76 INPUT_LIST_BUTTON, INNER_SPIN_BUTTON, OUTER_SPIN_BUTTON, 77 77 78 78 FIRST_INTERNAL_PSEUDOID = FILE_UPLOAD_BUTTON
Note: See TracChangeset
for help on using the changeset viewer.