blob: 24291f38ae40348d1c800ff545d5ccd044ebbae7 [file] [log] [blame]
reed@android.com8a1c16f2008-12-17 15:59:43 +00001#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"
reed@android.com8a1c16f2008-12-17 15:59:43 +000015#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 SkView {
27public:
reed@google.com2f3dc9d2011-05-02 17:33:45 +000028 LinesView() {}
reed@android.com8a1c16f2008-12-17 15:59:43 +000029
30protected:
31 // overrides from SkEventSink
32 virtual bool onQuery(SkEvent* evt)
33 {
34 if (SampleCode::TitleQ(*evt))
35 {
36 SampleCode::TitleR(evt, "Lines");
37 return true;
38 }
39 return this->INHERITED::onQuery(evt);
40 }
41
42 void drawBG(SkCanvas* canvas)
43 {
44// canvas->drawColor(0xFFDDDDDD);
45 canvas->drawColor(SK_ColorWHITE);
46 // canvas->drawColor(SK_ColorBLACK);
47 }
48
49 /*
50 0x1F * x + 0x1F * (32 - x)
51 */
52 void drawRings(SkCanvas* canvas)
53 {
54 canvas->scale(SkIntToScalar(1)/2, SkIntToScalar(1)/2);
55
56 SkRect r;
57 SkScalar x = SkIntToScalar(10);
58 SkScalar y = SkIntToScalar(10);
59 r.set(x, y, x + SkIntToScalar(100), y + SkIntToScalar(100));
60
61 SkPaint paint;
reed@android.comf2b98d62010-12-20 18:26:13 +000062 // paint.setAntiAlias(true);
reed@android.com8a1c16f2008-12-17 15:59:43 +000063 paint.setStyle(SkPaint::kStroke_Style);
64 paint.setStrokeWidth(SkScalarHalf(SkIntToScalar(3)));
65 paint.setColor(0xFFFF8800);
reed@android.comf2b98d62010-12-20 18:26:13 +000066 // paint.setColor(0xFFFFFFFF);
reed@android.com8a1c16f2008-12-17 15:59:43 +000067 canvas->drawRect(r, paint);
68 }
69
70 virtual void onDraw(SkCanvas* canvas)
71 {
72 this->drawBG(canvas);
73
74 SkBitmap bm;
75 SkImageDecoder::DecodeFile("/kill.gif", &bm);
76 canvas->drawBitmap(bm, 0, 0, NULL);
77
78 this->drawRings(canvas);
79 return;
80
81 SkPaint paint;
82
83 // fAlpha = 0x80;
84 paint.setColor(SK_ColorWHITE);
85 paint.setAlpha(fAlpha & 0xFF);
86 SkRect r;
87
88 SkScalar x = SkIntToScalar(10);
89 SkScalar y = SkIntToScalar(10);
90 r.set(x, y, x + SkIntToScalar(100), y + SkIntToScalar(100));
91 canvas->drawRect(r, paint);
92 return;
93
94 paint.setColor(0xffffff00); // yellow
95 paint.setStyle(SkPaint::kStroke_Style);
96 paint.setStrokeWidth(SkIntToScalar(2));
97
98// y += SK_Scalar1/2;
99
100 canvas->drawLine(x, y, x + SkIntToScalar(90), y + SkIntToScalar(90), paint);
101
102 paint.setAntiAlias(true); // with anti-aliasing
103 y += SkIntToScalar(10);
104 canvas->drawLine(x, y, x + SkIntToScalar(90), y + SkIntToScalar(90), paint);
105 }
106
107 virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y)
108 {
109 fAlpha = SkScalarRound(y);
110 this->inval(NULL);
111 return NULL;
112 }
113private:
114
115 int fAlpha;
116 typedef SkView INHERITED;
117};
118
119//////////////////////////////////////////////////////////////////////////////
120
121static SkView* MyFactory() { return new LinesView; }
122static SkViewRegister reg(MyFactory);
123