SampleBigGradient.cpp revision 55b8e8c81aaa6515fa66be58f11ab6a7ca7f1fae
1#include "SampleCode.h"
2#include "SkView.h"
3#include "SkCanvas.h"
4#include "SkGradientShader.h"
5
6static SkShader* make_grad(SkScalar w, SkScalar h) {
7    SkColor colors[] = { 0xFF000000, 0xFF333333 };
8    SkPoint pts[] = { { 0, 0 }, { w, h } };
9    return SkGradientShader::CreateLinear(pts, colors, NULL, 2,
10                                          SkShader::kClamp_TileMode);
11}
12
13class BigGradientView : public SkView {
14public:
15	BigGradientView() {}
16
17protected:
18    // overrides from SkEventSink
19    virtual bool onQuery(SkEvent* evt) {
20        if (SampleCode::TitleQ(*evt)) {
21            SampleCode::TitleR(evt, "BigGradient");
22            return true;
23        }
24        return this->INHERITED::onQuery(evt);
25    }
26
27    void drawBG(SkCanvas* canvas) {
28    }
29
30    virtual void onDraw(SkCanvas* canvas) {
31        SkRect r;
32        r.set(0, 0, this->width(), this->height());
33        SkPaint p;
34        p.setShader(make_grad(this->width(), this->height()))->unref();
35        canvas->drawRect(r, p);
36    }
37
38private:
39    typedef SkView INHERITED;
40};
41
42///////////////////////////////////////////////////////////////////////////////
43
44static SkView* MyFactory() { return new BigGradientView; }
45static SkViewRegister reg(MyFactory);
46
47