gfx/skia/trunk/src/views/animated/SkProgressBarView.cpp

Sat, 03 Jan 2015 20:18:00 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Sat, 03 Jan 2015 20:18:00 +0100
branch
TOR_BUG_3246
changeset 7
129ffea94266
permissions
-rw-r--r--

Conditionally enable double key logic according to:
private browsing mode or privacy.thirdparty.isolate preference and
implement in GetCookieStringCommon and FindCookie where it counts...
With some reservations of how to convince FindCookie users to test
condition and pass a nullptr when disabling double key logic.

     2 /*
     3  * Copyright 2011 Google Inc.
     4  *
     5  * Use of this source code is governed by a BSD-style license that can be
     6  * found in the LICENSE file.
     7  */
     8 #include "SkProgressBarView.h"
     9 #include "SkAnimator.h"
    10 #include "SkWidgetViews.h"
    11 #include "SkTime.h"
    12 #include "SkSystemEventTypes.h"
    14 SkProgressBarView::SkProgressBarView()
    15 {
    16     init_skin_anim(kProgress_SkinEnum, &fAnim);
    17     fAnim.setHostEventSink(this);
    18     fProgress = 0;
    19     fMax = 100;
    21 }
    23 void SkProgressBarView::changeProgress(int diff)
    24 {
    25     int newProg = fProgress + diff;
    26     if (newProg > 0 && newProg < fMax)
    27         this->setProgress(newProg);
    28     //otherwise i'll just leave it as it is
    29     //this implies that if a new max and progress are set, max must be set first
    30 }
    32 /*virtual*/ void SkProgressBarView::onDraw(SkCanvas* canvas)
    33 {
    34     SkPaint                        paint;
    35     SkAnimator::DifferenceType    diff = fAnim.draw(canvas, &paint, SkTime::GetMSecs());
    37     if (diff == SkAnimator::kDifferent)
    38         this->inval(NULL);
    39     else if (diff == SkAnimator::kPartiallyDifferent)
    40     {
    41         SkRect    bounds;
    42         fAnim.getInvalBounds(&bounds);
    43         this->inval(&bounds);
    44     }
    45 }
    47 /*virtual*/ bool SkProgressBarView::onEvent(const SkEvent& evt)
    48 {
    49     if (evt.isType(SK_EventType_Inval))
    50     {
    51         this->inval(NULL);
    52         return true;
    53     }
    54     if (evt.isType("recommendDim"))
    55     {
    56         SkScalar    height;
    58         if (evt.findScalar("y", &height))
    59             this->setHeight(height);
    60         return true;
    61     }
    62     return this->INHERITED::onEvent(evt);
    63 }
    65 /*virtual*/ void SkProgressBarView::onInflate(const SkDOM& dom, const SkDOM::Node* node)
    66 {
    67     this->INHERITED::onInflate(dom, node);
    68     int32_t temp;
    69     if (dom.findS32(node, "max", &temp))
    70         this->setMax(temp);
    71     if (dom.findS32(node, "progress", &temp))
    72         this->setProgress(temp);
    73 }
    75 /*virtual*/ void SkProgressBarView::onSizeChange()
    76 {
    77     this->INHERITED::onSizeChange();
    78     SkEvent evt("user");
    79     evt.setString("id", "setDim");
    80     evt.setScalar("dimX", this->width());
    81     evt.setScalar("dimY", this->height());
    82     fAnim.doUserEvent(evt);
    83 }
    85 void SkProgressBarView::reset()
    86 {
    87     fProgress = 0;
    88     SkEvent e("user");
    89     e.setString("id", "reset");
    90     fAnim.doUserEvent(e);
    91 }
    93 void SkProgressBarView::setMax(int max)
    94 {
    95     fMax = max;
    96     SkEvent e("user");
    97     e.setString("id", "setMax");
    98     e.setS32("newMax", max);
    99     fAnim.doUserEvent(e);
   100 }
   102 void SkProgressBarView::setProgress(int progress)
   103 {
   104     fProgress = progress;
   105     SkEvent e("user");
   106     e.setString("id", "setProgress");
   107     e.setS32("newProgress", progress);
   108     fAnim.doUserEvent(e);
   109 }

mercurial