11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2011 Google Inc.
41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */
81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#include "SampleCode.h"
91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#include "SkView.h"
101cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#include "SkCanvas.h"
111cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#include "SkGradientShader.h"
121cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
131cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
141cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerclass TwoPtRadialView : public SampleView {
151cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerpublic:
161cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    TwoPtRadialView() {}
171cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
181cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerprotected:
191cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    // overrides from SkEventSink
201cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    virtual bool onQuery(SkEvent* evt) {
211cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        if (SampleCode::TitleQ(*evt)) {
221cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger            SampleCode::TitleR(evt, "2PtRadial");
231cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger            return true;
241cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        }
251cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        return this->INHERITED::onQuery(evt);
261cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    }
271cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
281cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    virtual void onDrawContent(SkCanvas* canvas) {
291cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        canvas->translate(SkIntToScalar(10), SkIntToScalar(20));
301cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
311cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        SkColor colors[] = { SK_ColorRED, SK_ColorBLUE };
321cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        SkPoint c0 = { 0, 0 };
331cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        SkScalar r0 = 100;
341cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        SkPoint c1 = { 100, 100 };
351cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        SkScalar r1 = 100;
361cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        SkShader* s = SkGradientShader::CreateTwoPointRadial(c0, r0, c1, r1, colors,
371cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger                                                             NULL, 2,
381cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger                                                             SkShader::kClamp_TileMode);
391cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
401cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        SkPaint paint;
411cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        paint.setShader(s)->unref();
421cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        canvas->drawPaint(paint);
431cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    }
441cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
451cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerprivate:
461cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    typedef SampleView INHERITED;
471cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger};
481cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
491cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger//////////////////////////////////////////////////////////////////////////////
501cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
511cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerstatic SkView* MyFactory() { return new TwoPtRadialView; }
521cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergerstatic SkViewRegister reg(MyFactory);
53