| /* | |
| * Copyright 2015 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #include "GMSampleView.h" | |
| GMSampleView::GMSampleView(GM* gm) : fShowSize(false), fGM(gm) {} | |
| GMSampleView::~GMSampleView() { | |
| delete fGM; | |
| } | |
| SkEvent* GMSampleView::NewShowSizeEvt(bool doShowSize) { | |
| SkEvent* evt = new SkEvent("GMSampleView::showSize"); | |
| evt->setFast32(doShowSize); | |
| return evt; | |
| } | |
| bool GMSampleView::onQuery(SkEvent* evt) { | |
| if (SampleCode::TitleQ(*evt)) { | |
| SkString name("GM:"); | |
| name.append(fGM->getName()); | |
| SampleCode::TitleR(evt, name.c_str()); | |
| return true; | |
| } | |
| return this->INHERITED::onQuery(evt); | |
| } | |
| bool GMSampleView::onEvent(const SkEvent& evt) { | |
| if (evt.isType("GMSampleView::showSize")) { | |
| fShowSize = SkToBool(evt.getFast32()); | |
| return true; | |
| } | |
| return this->INHERITED::onEvent(evt); | |
| } | |
| void GMSampleView::onDrawContent(SkCanvas* canvas) { | |
| { | |
| SkAutoCanvasRestore acr(canvas, fShowSize); | |
| fGM->drawContent(canvas); | |
| } | |
| if (fShowSize) { | |
| SkISize size = fGM->getISize(); | |
| SkRect r = SkRect::MakeWH(SkIntToScalar(size.width()), | |
| SkIntToScalar(size.height())); | |
| SkPaint paint; | |
| paint.setColor(0x40FF8833); | |
| canvas->drawRect(r, paint); | |
| } | |
| } | |
| void GMSampleView::onDrawBackground(SkCanvas* canvas) { | |
| fGM->drawBackground(canvas); | |
| } | |
| bool GMSampleView::onAnimate(const SkAnimTimer& timer) { | |
| return fGM->animate(timer); | |
| } | |