1#include "SampleCode.h"
2#include "SkView.h"
3#include "SkCanvas.h"
4#include "Sk64.h"
5#include "SkCornerPathEffect.h"
6#include "SkGradientShader.h"
7#include "SkGraphics.h"
8#include "SkImageDecoder.h"
9#include "SkKernel33MaskFilter.h"
10#include "SkPath.h"
11#include "SkRandom.h"
12#include "SkRegion.h"
13#include "SkShader.h"
14#include "SkUtils.h"
15#include "SkColorPriv.h"
16#include "SkColorFilter.h"
17#include "SkTime.h"
18#include "SkTypeface.h"
19#include "SkXfermode.h"
20
21#include "SkStream.h"
22#include "SkXMLParser.h"
23#include "SkColorPriv.h"
24#include "SkImageDecoder.h"
25
26class LinesView : public SampleView {
27public:
28	LinesView() {}
29
30protected:
31    // overrides from SkEventSink
32    virtual bool onQuery(SkEvent* evt) {
33        if (SampleCode::TitleQ(*evt)) {
34            SampleCode::TitleR(evt, "Lines");
35            return true;
36        }
37        return this->INHERITED::onQuery(evt);
38    }
39
40    /*
41     0x1F * x + 0x1F * (32 - x)
42     */
43    void drawRings(SkCanvas* canvas) {
44        canvas->scale(SkIntToScalar(1)/2, SkIntToScalar(1)/2);
45
46        SkRect  r;
47        SkScalar x = SkIntToScalar(10);
48        SkScalar y = SkIntToScalar(10);
49        r.set(x, y, x + SkIntToScalar(100), y + SkIntToScalar(100));
50
51        SkPaint paint;
52     //   paint.setAntiAlias(true);
53        paint.setStyle(SkPaint::kStroke_Style);
54        paint.setStrokeWidth(SkScalarHalf(SkIntToScalar(3)));
55        paint.setColor(0xFFFF8800);
56     //   paint.setColor(0xFFFFFFFF);
57        canvas->drawRect(r, paint);
58    }
59
60    virtual void onDrawContent(SkCanvas* canvas) {
61        SkBitmap bm;
62        SkImageDecoder::DecodeFile("/kill.gif", &bm);
63        canvas->drawBitmap(bm, 0, 0, NULL);
64
65        this->drawRings(canvas);
66        return;
67
68        SkPaint paint;
69
70      //  fAlpha = 0x80;
71        paint.setColor(SK_ColorWHITE);
72        paint.setAlpha(fAlpha & 0xFF);
73        SkRect r;
74
75        SkScalar x = SkIntToScalar(10);
76        SkScalar y = SkIntToScalar(10);
77        r.set(x, y, x + SkIntToScalar(100), y + SkIntToScalar(100));
78        canvas->drawRect(r, paint);
79        return;
80
81        paint.setColor(0xffffff00);            // yellow
82        paint.setStyle(SkPaint::kStroke_Style);
83        paint.setStrokeWidth(SkIntToScalar(2));
84
85//        y += SK_Scalar1/2;
86
87        canvas->drawLine(x, y, x + SkIntToScalar(90), y + SkIntToScalar(90), paint);
88
89        paint.setAntiAlias(true);              // with anti-aliasing
90        y += SkIntToScalar(10);
91        canvas->drawLine(x, y, x + SkIntToScalar(90), y + SkIntToScalar(90), paint);
92    }
93
94    virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) {
95        fAlpha = SkScalarRound(y);
96        this->inval(NULL);
97        return NULL;
98    }
99private:
100
101    int fAlpha;
102    typedef SampleView INHERITED;
103};
104
105//////////////////////////////////////////////////////////////////////////////
106
107static SkView* MyFactory() { return new LinesView; }
108static SkViewRegister reg(MyFactory);
109
110