blob: 81391717e29761e9ad6b7c2a8a1a037d9e77a8de [file] [log] [blame]
reed@android.comc07d23a2009-02-06 13:30:58 +00001#include "SampleCode.h"
2#include "SkView.h"
3#include "SkCanvas.h"
4#include "SkGradientShader.h"
5#include "SkGraphics.h"
6#include "SkImageDecoder.h"
7#include "SkPath.h"
reed@android.comc07d23a2009-02-06 13:30:58 +00008#include "SkRegion.h"
9#include "SkShader.h"
10#include "SkUtils.h"
11#include "SkXfermode.h"
12#include "SkColorPriv.h"
13#include "SkColorFilter.h"
14#include "SkTime.h"
15#include "SkTypeface.h"
16
reed@google.com81e3d7f2011-06-01 12:42:36 +000017class PathClipView : public SampleView {
reed@android.comc07d23a2009-02-06 13:30:58 +000018public:
19 SkRect fOval;
20 SkPoint fCenter;
21
22 PathClipView() {
23 fOval.set(0, 0, SkIntToScalar(200), SkIntToScalar(50));
24 fCenter.set(SkIntToScalar(250), SkIntToScalar(250));
reed@android.com54043a32009-03-05 14:14:49 +000025
26// test_ats();
reed@android.comc07d23a2009-02-06 13:30:58 +000027 }
28
29 virtual ~PathClipView() {}
30
31protected:
32 // overrides from SkEventSink
33 virtual bool onQuery(SkEvent* evt) {
34 if (SampleCode::TitleQ(*evt)) {
35 SampleCode::TitleR(evt, "PathClip");
36 return true;
37 }
38 return this->INHERITED::onQuery(evt);
39 }
40
reed@google.com81e3d7f2011-06-01 12:42:36 +000041 virtual void onDrawContent(SkCanvas* canvas) {
reed@android.comc07d23a2009-02-06 13:30:58 +000042 SkRect oval = fOval;
43 oval.offset(fCenter.fX - oval.centerX(), fCenter.fY - oval.centerY());
44
45 SkPaint p;
46 p.setAntiAlias(true);
47
48 p.setStyle(SkPaint::kStroke_Style);
49 canvas->drawOval(oval, p);
50
51 SkRect r;
52 r.set(SkIntToScalar(200), SkIntToScalar(200),
53 SkIntToScalar(300), SkIntToScalar(300));
54 canvas->clipRect(r);
55
56 p.setStyle(SkPaint::kFill_Style);
57 p.setColor(SK_ColorRED);
58 canvas->drawRect(r, p);
59
60 p.setColor(0x800000FF);
61 r.set(SkIntToScalar(150), SkIntToScalar(10),
62 SkIntToScalar(250), SkIntToScalar(400));
63 canvas->drawOval(oval, p);
64 }
reed@android.come72fee52009-11-16 14:52:01 +000065
reed@android.comc07d23a2009-02-06 13:30:58 +000066 virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) {
reed@android.come72fee52009-11-16 14:52:01 +000067 return new Click(this);
68 }
69
70 virtual bool onClick(Click* click) {
71 fCenter.set(click->fCurr.fX, click->fCurr.fY);
reed@android.comc07d23a2009-02-06 13:30:58 +000072 this->inval(NULL);
73 return NULL;
74 }
75
76private:
reed@google.com81e3d7f2011-06-01 12:42:36 +000077 typedef SampleView INHERITED;
reed@android.comc07d23a2009-02-06 13:30:58 +000078};
79
80//////////////////////////////////////////////////////////////////////////////
81
82static SkView* MyFactory() { return new PathClipView; }
83static SkViewRegister reg(MyFactory);
84