git-svn-id: http://skia.googlecode.com/svn/trunk@685 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SampleGM.cpp b/samplecode/SampleGM.cpp
index d85cad1..5c9ea76 100644
--- a/samplecode/SampleGM.cpp
+++ b/samplecode/SampleGM.cpp
@@ -15,6 +15,10 @@
fReg = GMRegistry::Head();
}
+ void reset() {
+ fReg = GMRegistry::Head();
+ }
+
GM* next() {
if (fReg) {
GMRegistry::Factory fact = fReg->factory();
@@ -46,6 +50,7 @@
public:
GMView() {
fGM = fIter.next();
+ this->postNextGM();
}
protected:
@@ -58,6 +63,20 @@
return this->INHERITED::onQuery(evt);
}
+ virtual bool onEvent(const SkEvent& evt) {
+ if (evt.isType("next-gm")) {
+ delete fGM;
+ if (!(fGM = fIter.next())) {
+ fIter.reset();
+ fGM = fIter.next();
+ }
+ this->inval(NULL);
+ this->postNextGM();
+ return true;
+ }
+ return this->INHERITED::onEvent(evt);
+ }
+
void drawBG(SkCanvas* canvas) {
canvas->drawColor(0xFFDDDDDD);
}
@@ -67,6 +86,10 @@
}
private:
+ void postNextGM() {
+ (new SkEvent("next-gm"))->post(this->getSinkID(), 1500);
+ }
+
typedef SkView INHERITED;
};