Changeset 134240 in webkit


Ignore:
Timestamp:
Nov 12, 2012 7:43:51 AM (11 years ago)
Author:
commit-queue@webkit.org
Message:

[BlackBerry] Update BB10 form theme.
https://bugs.webkit.org/show_bug.cgi?id=100760

Patch by Tiancheng Jiang <tijiang@rim.com> on 2012-11-12
Reviewed by Rob Buis.

RIM PR 236993
Internally Reviewed by Jeff Rogers.
Use slide and paint method on slider range and media controls.

  • platform/blackberry/RenderThemeBlackBerry.cpp:

(WebCore):
(WebCore::drawThreeSliceHorizontal):
(WebCore::drawThreeSliceVertical):
(WebCore::RenderThemeBlackBerry::paintSliderTrackRect):
(WebCore::RenderThemeBlackBerry::paintMediaSliderTrack):
(WebCore::RenderThemeBlackBerry::paintMediaSliderThumb):
(WebCore::RenderThemeBlackBerry::paintMediaVolumeSliderTrack):

  • platform/blackberry/RenderThemeBlackBerry.h:

(RenderThemeBlackBerry):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r134239 r134240  
     12012-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
    1232012-11-12  Kent Tamura  <tkent@chromium.org>
    224
  • trunk/Source/WebCore/platform/blackberry/RenderThemeBlackBerry.cpp

    r134227 r134240  
    122122const RGBA32 dragRollDark = 0xff69a8ff;
    123123
    124 const RGBA32 selection = 0xff2b8fff;
    125 
    126124const RGBA32 blackPen = Color::black;
    127125const RGBA32 focusRingPen = 0xffa3c8fe;
     
    183181}
    184182
    185 static void drawThreeSlice(GraphicsContext* gc, const IntRect& rect, Image* img, int slice)
     183static void drawThreeSliceHorizontal(GraphicsContext* gc, const IntRect& rect, Image* img, int slice)
    186184{
    187185    if (!img)
    188186        return;
     187
    189188    FloatSize dstSlice(rect.height() / 2, rect.height());
    190189    FloatRect srcRect(0, 0, slice, img->height());
     
    198197    srcRect = FloatRect(slice, 0, img->width() - 2 * slice, img->height());
    199198    dstRect = FloatRect(rect.x() + dstSlice.width(), rect.y(), rect.width() - 2 * dstSlice.width(), dstSlice.height());
     199    gc->drawImage(img, ColorSpaceDeviceRGB, dstRect, srcRect);
     200}
     201
     202static 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());
    200218    gc->drawImage(img, ColorSpaceDeviceRGB, dstRect, srcRect);
    201219}
     
    723741bool RenderThemeBlackBerry::paintSliderTrackRect(RenderObject* object, const PaintInfo& info, const IntRect& rect)
    724742{
    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
     749bool RenderThemeBlackBerry::paintSliderTrackRect(RenderObject* object, const PaintInfo& info, const IntRect& rect, Image* inactive)
    731750{
    732751    ASSERT(info.context);
     
    734753    GraphicsContext* context = info.context;
    735754
    736     static RefPtr<Image> disabled, inactive;
    737     if (!disabled) {
     755    static RefPtr<Image> disabled;
     756    if (!disabled)
    738757        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    }
    746770
    747771    context->restore();
     
    971995
    972996    // 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());
    9741001
    9751002    if (loaded > 0 || position > 0) {
    9761003        // 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());
    9781010
    9791011        // 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());
    9811013    }
    9821014    return result;
     
    9971029        return false;
    9981030
    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);
    10171034
    10181035    return true;
     
    10361053    IntRect rect2(x, y, width, height);
    10371054
    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());
    10391060#else
    10401061    UNUSED_PARAM(object);
  • trunk/Source/WebCore/platform/blackberry/RenderThemeBlackBerry.h

    r132967 r134240  
    108108    bool paintTextFieldOrTextAreaOrSearchField(RenderObject*, const PaintInfo&, const IntRect&);
    109109    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;
    112113
    113114};
Note: See TracChangeset for help on using the changeset viewer.