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