blob: 2fd60a28e38b189ca4bb337b95a426f7deb459fb [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 "SkImageDecoder.h"
5#include "SkNinePatch.h"
6#include "SkPaint.h"
7#include "SkUnPreMultiply.h"
8
9class NinePatchView : public SkView {
10public:
11 SkBitmap fBM;
12
13 NinePatchView() {
14 SkImageDecoder::DecodeFile("/skimages/folder_background.9.png", &fBM);
15 }
16
17protected:
18 // overrides from SkEventSink
19 virtual bool onQuery(SkEvent* evt) {
20 if (SampleCode::TitleQ(*evt)) {
21 SampleCode::TitleR(evt, "NinePatch");
22 return true;
23 }
24 return this->INHERITED::onQuery(evt);
25 }
26
27 void drawBG(SkCanvas* canvas) {
28 canvas->drawColor(SK_ColorWHITE);
29
30 canvas->drawBitmap(fBM, 0, 0);
31
32 SkIRect margins;
33 SkRect dst;
34 int d = 25;
35
36 margins.set(d, d, d, d);
37 dst.set(0, 0, SkIntToScalar(200), SkIntToScalar(200));
38 dst.offset(SkIntToScalar(fBM.width()), 0);
39 dst.offset(SkIntToScalar(2), SkIntToScalar(2));
40
41 SkNinePatch::DrawNine(canvas, dst, fBM, margins);
reed@android.com8a1c16f2008-12-17 15:59:43 +000042 }
43
44 virtual void onDraw(SkCanvas* canvas) {
45 this->drawBG(canvas);
46 }
47
48private:
49 typedef SkView INHERITED;
50};
51
52//////////////////////////////////////////////////////////////////////////////
53
54static SkView* MyFactory() { return new NinePatchView; }
55static SkViewRegister reg(MyFactory);
56