| /* | 
 |  * 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 = SkNEW_ARGS(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); | 
 | } | 
 |  |