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