Changeset 134240 in webkit
- Timestamp:
- Nov 12, 2012 7:43:51 AM (11 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r134239 r134240 1 2012-11-12 Tiancheng Jiang <tijiang@rim.com> 2 3 [BlackBerry] Update BB10 form theme. 4 https://bugs.webkit.org/show_bug.cgi?id=100760 5 6 Reviewed by Rob Buis. 7 8 RIM PR 236993 9 Internally Reviewed by Jeff Rogers. 10 Use slide and paint method on slider range and media controls. 11 12 * platform/blackberry/RenderThemeBlackBerry.cpp: 13 (WebCore): 14 (WebCore::drawThreeSliceHorizontal): 15 (WebCore::drawThreeSliceVertical): 16 (WebCore::RenderThemeBlackBerry::paintSliderTrackRect): 17 (WebCore::RenderThemeBlackBerry::paintMediaSliderTrack): 18 (WebCore::RenderThemeBlackBerry::paintMediaSliderThumb): 19 (WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack): 20 * platform/blackberry/RenderThemeBlackBerry.h: 21 (RenderThemeBlackBerry): 22 1 23 2012-11-12 Kent Tamura <tkent@chromium.org> 2 24 -
trunk/Source/WebCore/platform/blackberry/RenderThemeBlackBerry.cpp
r134227 r134240 122 122 const RGBA32 dragRollDark = 0xff69a8ff; 123 123 124 const RGBA32 selection = 0xff2b8fff;125 126 124 const RGBA32 blackPen = Color::black; 127 125 const RGBA32 focusRingPen = 0xffa3c8fe; … … 183 181 } 184 182 185 static void drawThreeSlice (GraphicsContext* gc, const IntRect& rect, Image* img, int slice)183 static void drawThreeSliceHorizontal(GraphicsContext* gc, const IntRect& rect, Image* img, int slice) 186 184 { 187 185 if (!img) 188 186 return; 187 189 188 FloatSize dstSlice(rect.height() / 2, rect.height()); 190 189 FloatRect srcRect(0, 0, slice, img->height()); … … 198 197 srcRect = FloatRect(slice, 0, img->width() - 2 * slice, img->height()); 199 198 dstRect = FloatRect(rect.x() + dstSlice.width(), rect.y(), rect.width() - 2 * dstSlice.width(), dstSlice.height()); 199 gc->drawImage(img, ColorSpaceDeviceRGB, dstRect, srcRect); 200 } 201 202 static void drawThreeSliceVertical(GraphicsContext* gc, const IntRect& rect, Image* img, int slice) 203 { 204 if (!img) 205 return; 206 207 FloatSize dstSlice(rect.width(), rect.width() / 2); 208 FloatRect srcRect(0, 0, img->width(), slice); 209 FloatRect dstRect(rect.location(), dstSlice); 210 211 gc->drawImage(img, ColorSpaceDeviceRGB, dstRect, srcRect); 212 srcRect.move(0, img->height() - srcRect.height()); 213 dstRect.move(0, rect.height() - dstRect.height()); 214 gc->drawImage(img, ColorSpaceDeviceRGB, dstRect, srcRect); 215 216 srcRect = FloatRect(0, slice, img->width(), img->height() - 2 * slice); 217 dstRect = FloatRect(rect.x(), rect.y() + dstSlice.height(), dstSlice.width(), rect.height() - 2 * dstSlice.height()); 200 218 gc->drawImage(img, ColorSpaceDeviceRGB, dstRect, srcRect); 201 219 } … … 723 741 bool RenderThemeBlackBerry::paintSliderTrackRect(RenderObject* object, const PaintInfo& info, const IntRect& rect) 724 742 { 725 return paintSliderTrackRect(object, info, rect, rangeSliderRegularTopOutline, rangeSliderRegularBottomOutline, 726 rangeSliderRegularTop, rangeSliderRegularBottom); 727 } 728 729 bool RenderThemeBlackBerry::paintSliderTrackRect(RenderObject* object, const PaintInfo& info, const IntRect& rect, 730 RGBA32 strokeColorStart, RGBA32 strokeColorEnd, RGBA32 fillColorStart, RGBA32 fillColorEnd) 743 static RefPtr<Image> background; 744 if (!background) 745 background = loadImage("core_slider_bg"); 746 return paintSliderTrackRect(object, info, rect, background.get()); 747 } 748 749 bool RenderThemeBlackBerry::paintSliderTrackRect(RenderObject* object, const PaintInfo& info, const IntRect& rect, Image* inactive) 731 750 { 732 751 ASSERT(info.context); … … 734 753 GraphicsContext* context = info.context; 735 754 736 static RefPtr<Image> disabled , inactive;737 if (!disabled) {755 static RefPtr<Image> disabled; 756 if (!disabled) 738 757 disabled = loadImage("core_slider_fill_disabled"); 739 inactive = loadImage("core_slider_bg"); 740 } 741 742 if (isEnabled(object)) 743 drawThreeSlice(context, rect, inactive.get(), mediumSlice); 744 else 745 drawThreeSlice(context, rect, disabled.get(), (smallSlice - 1)); 758 759 if (rect.width() > rect.height()) { 760 if (isEnabled(object)) 761 drawThreeSliceHorizontal(context, rect, inactive, mediumSlice); 762 else 763 drawThreeSliceHorizontal(context, rect, disabled.get(), (smallSlice - 1)); 764 } else { 765 if (isEnabled(object)) 766 drawThreeSliceVertical(context, rect, inactive, mediumSlice); 767 else 768 drawThreeSliceVertical(context, rect, disabled.get(), (smallSlice - 1)); 769 } 746 770 747 771 context->restore(); … … 971 995 972 996 // This is to paint main slider bar. 973 bool result = paintSliderTrackRect(object, paintInfo, rect2); 997 static RefPtr<Image> trackImage; 998 if (!trackImage) 999 trackImage = loadImage("core_slider_media_bg"); 1000 bool result = paintSliderTrackRect(object, paintInfo, rect2, trackImage.get()); 974 1001 975 1002 if (loaded > 0 || position > 0) { 976 1003 // This is to paint buffered bar. 977 paintSliderTrackRect(object, paintInfo, buffered, Color::darkGray, Color::darkGray, Color::darkGray, Color::darkGray); 1004 static RefPtr<Image> bufferedImage, playedImage; 1005 if (!bufferedImage) { 1006 bufferedImage = loadImage("core_slider_buffered_bg"); 1007 playedImage = loadImage("core_slider_played_bg"); 1008 } 1009 paintSliderTrackRect(object, paintInfo, buffered, bufferedImage.get()); 978 1010 979 1011 // This is to paint played part of bar (left of slider thumb) using selection color. 980 paintSliderTrackRect(object, paintInfo, played, selection, selection, selection, selection);1012 paintSliderTrackRect(object, paintInfo, played, playedImage.get()); 981 1013 } 982 1014 return result; … … 997 1029 return false; 998 1030 999 float fullScreenMultiplier = determineFullScreenMultiplier(toElement(slider->node())); 1000 1001 paintInfo.context->save(); 1002 Path mediaThumbRoundedRectangle; 1003 mediaThumbRoundedRectangle.addRoundedRect(rect, FloatSize(mediaSliderThumbRadius * fullScreenMultiplier, mediaSliderThumbRadius * fullScreenMultiplier)); 1004 paintInfo.context->setStrokeStyle(SolidStroke); 1005 paintInfo.context->setStrokeThickness(0.5); 1006 paintInfo.context->setStrokeColor(Color::black, ColorSpaceDeviceRGB); 1007 1008 if (isPressed(object) || isHovered(object) || slider->inDragMode()) { 1009 paintInfo.context->setFillGradient(createLinearGradient(selection, Color(selection).dark().rgb(), 1010 rect.maxXMinYCorner(), rect.maxXMaxYCorner())); 1011 } else { 1012 paintInfo.context->setFillGradient(createLinearGradient(Color::white, Color(Color::white).dark().rgb(), 1013 rect.maxXMinYCorner(), rect.maxXMaxYCorner())); 1014 } 1015 paintInfo.context->fillPath(mediaThumbRoundedRectangle); 1016 paintInfo.context->restore(); 1031 static Image* mediaVolumeThumb = Image::loadPlatformResource("volume_thumb").leakRef(); 1032 1033 drawControl(paintInfo.context, rect, mediaVolumeThumb); 1017 1034 1018 1035 return true; … … 1036 1053 IntRect rect2(x, y, width, height); 1037 1054 1038 return paintSliderTrackRect(object, paintInfo, rect2); 1055 static RefPtr<Image> trackImage; 1056 if (!trackImage) 1057 trackImage = loadImage("core_slider_media_bg"); 1058 1059 return paintSliderTrackRect(object, paintInfo, rect2, trackImage.get()); 1039 1060 #else 1040 1061 UNUSED_PARAM(object); -
trunk/Source/WebCore/platform/blackberry/RenderThemeBlackBerry.h
r132967 r134240 108 108 bool paintTextFieldOrTextAreaOrSearchField(RenderObject*, const PaintInfo&, const IntRect&); 109 109 bool paintSliderTrackRect(RenderObject*, const PaintInfo&, const IntRect&); 110 bool paintSliderTrackRect(RenderObject*, const PaintInfo&, const IntRect&, RGBA32 strokeColorStart, 111 RGBA32 strokeColorEnd, RGBA32 fillColorStart, RGBA32 fillColorEnd); 110 111 bool paintSliderTrackRect(RenderObject*, const PaintInfo&, const IntRect&, Image*); 112 IntRect convertToPaintingRect(RenderObject* inputRenderer, const RenderObject* partRenderer, LayoutRect partRect, const IntRect& localOffset) const; 112 113 113 114 };
Note: See TracChangeset
for help on using the changeset viewer.