Changeset 64570 in webkit
- Timestamp:
- Aug 3, 2010 11:18:35 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 7 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r64565 r64570 1 2010-08-03 Leandro Pereira <leandro@profusion.mobi> 2 3 Reviewed by Kenneth Rohde Christiansen. 4 5 [EFL] Implement HTML5 slider theme (using the scrollbar theme as base). 6 https://bugs.webkit.org/show_bug.cgi?id=43430 7 8 EFL port does not yet support automated tests. 9 10 * platform/efl/RenderThemeEfl.cpp: 11 (WebCore::RenderThemeEfl::paintThemePart): 12 (WebCore::RenderThemeEfl::edjeGroupFromFormType): Add Edje groups 13 for both vertical and horizontal sliders. 14 (WebCore::supportsFocus): Add sliders as focusable elements. 15 (WebCore::RenderThemeEfl::paintSliderTrack): Implement. 16 (WebCore::RenderThemeEfl::adjustSliderTrackStyle): Implement. 17 (WebCore::RenderThemeEfl::adjustSliderThumbStyle): Use 18 adjustSliderTrackStyle() implementation. 19 (WebCore::RenderThemeEfl::paintSliderThumb): Use paintSliderTrack() 20 implementation(). 21 * platform/efl/RenderThemeEfl.h: Add SliderVertical and 22 * SliderHorizontal. 23 (WebCore::): Added prototypes for adjustSlider*/paintSlider*. 24 1 25 2010-08-03 Alexander Pavlov <apavlov@chromium.org> 2 26 -
trunk/WebCore/platform/efl/RenderThemeEfl.cpp
r62104 r64570 35 35 #include "RenderBox.h" 36 36 #include "RenderObject.h" 37 #include "RenderSlider.h" 37 38 #include <wtf/text/CString.h> 38 39 … … 257 258 bool RenderThemeEfl::paintThemePart(RenderObject* o, FormType type, const PaintInfo& i, const IntRect& rect) 258 259 { 259 structThemePartCacheEntry* ce;260 ThemePartCacheEntry* ce; 260 261 Eina_List* updates; 261 262 cairo_t* cairo; … … 273 274 cairo = i.context->platformContext(); 274 275 ASSERT(cairo); 276 277 // Currently, only sliders needs this message; if other widget ever needs special 278 // treatment, move them to special functions. 279 if (type == SliderVertical || type == SliderHorizontal) { 280 RenderSlider* renderSlider = toRenderSlider(o); 281 Edje_Message_Float_Set* msg; 282 int max, value; 283 284 if (type == SliderVertical) { 285 max = rect.height() - renderSlider->thumbRect().height(); 286 value = renderSlider->thumbRect().y(); 287 } else { 288 max = rect.width() - renderSlider->thumbRect().width(); 289 value = renderSlider->thumbRect().x(); 290 } 291 292 msg = static_cast<Edje_Message_Float_Set*>(alloca(sizeof(Edje_Message_Float_Set) + sizeof(float))); 293 294 msg->count = 2; 295 msg->val[0] = static_cast<float>(value) / static_cast<float>(max); 296 msg->val[1] = 0.1; 297 edje_object_message_send(ce->o, EDJE_MESSAGE_FLOAT_SET, 0, msg); 298 } 275 299 276 300 edje_object_calc_force(ce->o); … … 543 567 W("search/results_decoration"), 544 568 W("search/cancel_button"), 569 W("slider/vertical"), 570 W("slider/horizontal"), 545 571 #undef W 546 572 0 … … 703 729 case RadioPart: 704 730 case CheckboxPart: 731 case SliderVerticalPart: 732 case SliderHorizontalPart: 705 733 return true; 706 734 default: … … 729 757 730 758 return RenderTheme::baselinePosition(o); 759 } 760 761 bool RenderThemeEfl::paintSliderTrack(RenderObject* o, const PaintInfo& i, const IntRect& rect) 762 { 763 if (o->style()->appearance() == SliderHorizontalPart) 764 return paintThemePart(o, SliderHorizontal, i, rect); 765 return paintThemePart(o, SliderVertical, i, rect); 766 } 767 768 void RenderThemeEfl::adjustSliderTrackStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const 769 { 770 if (!m_page && e && e->document()->page()) { 771 static_cast<RenderThemeEfl*>(e->document()->page()->theme())->adjustSliderTrackStyle(selector, style, e); 772 return; 773 } 774 775 adjustSizeConstraints(style, SliderHorizontal); 776 style->resetBorder(); 777 778 const struct ThemePartDesc *desc = m_partDescs + (size_t)SliderHorizontal; 779 if (style->width().value() < desc->min.width().value()) 780 style->setWidth(desc->min.width()); 781 if (style->height().value() < desc->min.height().value()) 782 style->setHeight(desc->min.height()); 783 } 784 785 void RenderThemeEfl::adjustSliderThumbStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const 786 { 787 adjustSliderTrackStyle(selector, style, e); 788 } 789 790 bool RenderThemeEfl::paintSliderThumb(RenderObject* o, const PaintInfo& i, const IntRect& rect) 791 { 792 return paintSliderTrack(o, i, rect); 731 793 } 732 794 -
trunk/WebCore/platform/efl/RenderThemeEfl.h
r62104 r64570 51 51 SearchFieldResultsDecoration, 52 52 SearchFieldCancelButton, 53 SliderVertical, 54 SliderHorizontal, 53 55 FormTypeLast 54 56 }; … … 136 138 virtual bool paintSearchFieldCancelButton(RenderObject*, const PaintInfo&, const IntRect&); 137 139 140 virtual void adjustSliderTrackStyle(CSSStyleSelector*, RenderStyle*, Element*) const; 141 virtual bool paintSliderTrack(RenderObject*, const PaintInfo&, const IntRect&); 142 143 virtual void adjustSliderThumbStyle(CSSStyleSelector*, RenderStyle*, Element*) const; 144 virtual bool paintSliderThumb(RenderObject*, const PaintInfo&, const IntRect&); 138 145 private: 139 146 void createCanvas(); -
trunk/WebKit/efl/ChangeLog
r64559 r64570 1 2010-08-03 Leandro Pereira <leandro@profusion.mobi> 2 3 Reviewed by Kenneth Rohde Christiansen. 4 5 Implement HTML5 slider theme (using the scrollbar theme as base). 6 https://bugs.webkit.org/show_bug.cgi?id=43430 7 8 * DefaultTheme/default.edc: Include slider.edc. 9 * DefaultTheme/widget/slider/slider.edc: Added. 10 * DefaultTheme/widget/slider/slider_h.png: Copied from WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_h.png. 11 * DefaultTheme/widget/slider/slider_hilight.png: Copied from WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_hilight.png. 12 * DefaultTheme/widget/slider/slider_knob_h.png: Copied from WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_h.png. 13 * DefaultTheme/widget/slider/slider_knob_v.png: Copied from WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_knob_v.png. 14 * DefaultTheme/widget/slider/slider_v.png: Copied from WebKit/efl/DefaultTheme/widget/scrollbar/scrollbar_v.png. 15 1 16 2010-08-03 ryuan choi <ryuan.choi@samsung.com> 2 17 -
trunk/WebKit/efl/DefaultTheme/default.edc
r58034 r64570 74 74 #include "widget/search/cancel/search_cancel.edc" 75 75 #include "widget/search/decoration/search_decoration.edc" 76 #include "widget/slider/slider.edc" 76 77 }
Note: See TracChangeset
for help on using the changeset viewer.