• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2011 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can be
5  * found in the LICENSE file.
6  */
7 #include "SampleCode.h"
8 #include "SkView.h"
9 #include "SkCanvas.h"
10 #include "SkPaint.h"
11 #include "SkShader.h"
12 
13 class LCDView : public SkView {
14 public:
LCDView()15     LCDView() {}
16 
17 protected:
18     // overrides from SkEventSink
onQuery(SkEvent * evt)19     virtual bool onQuery(SkEvent* evt) {
20         if (SampleCode::TitleQ(*evt)) {
21             SampleCode::TitleR(evt, "LCD Text");
22             return true;
23         }
24         return this->INHERITED::onQuery(evt);
25     }
26 
drawBG(SkCanvas * canvas)27     void drawBG(SkCanvas* canvas) {
28         canvas->drawColor(SK_ColorWHITE);
29     }
30 
onDraw(SkCanvas * canvas)31     virtual void onDraw(SkCanvas* canvas) {
32         this->drawBG(canvas);
33 
34         SkPaint paint;
35         paint.setAntiAlias(true);
36 
37         SkScalar textSize = SkIntToScalar(6);
38         SkScalar delta = SK_Scalar1;
39         const char* text = "HHHamburgefonts iii";
40         size_t len = strlen(text);
41         SkScalar x0 = SkIntToScalar(10);
42         SkScalar x1 = SkIntToScalar(310);
43         SkScalar y = SkIntToScalar(20);
44 
45         for (int i = 0; i < 20; i++) {
46             paint.setTextSize(textSize);
47             textSize += delta;
48 
49             paint.setLCDRenderText(false);
50             canvas->drawText(text, len, x0, y, paint);
51             paint.setLCDRenderText(true);
52             canvas->drawText(text, len, x1, y, paint);
53 
54             y += paint.getFontSpacing();
55         }
56     }
57 
58 private:
59     typedef SkView INHERITED;
60 };
61 
62 //////////////////////////////////////////////////////////////////////////////
63 
MyFactory()64 static SkView* MyFactory() { return new LCDView; }
65 static SkViewRegister reg(MyFactory);
66