Home | History | Annotate | Download | only in samplecode
      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:
     15     LCDView() {}
     16 
     17 protected:
     18     // overrides from SkEventSink
     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 
     27     void drawBG(SkCanvas* canvas) {
     28         canvas->drawColor(SK_ColorWHITE);
     29     }
     30 
     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 
     64 static SkView* MyFactory() { return new LCDView; }
     65 static SkViewRegister reg(MyFactory);
     66