diff options
Diffstat (limited to 'samplecode/SampleApp.cpp')
-rw-r--r-- | samplecode/SampleApp.cpp | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp index 8a8ac9c87e..74a07080ee 100644 --- a/samplecode/SampleApp.cpp +++ b/samplecode/SampleApp.cpp @@ -410,7 +410,8 @@ SampleWindow::SampleWindow(void* hwnd) : INHERITED(hwnd) { if (this->height() && this->width()) { this->onSizeChange(); } - + + fPDFData = NULL; #ifdef SK_BUILD_FOR_MAC testpdf(); #endif @@ -760,7 +761,7 @@ static void paint_rgn(const SkBitmap& bm, const SkIRect& r, canvas.clipRegion(inval); canvas.drawColor(0xFFFF8080); } - +#include "SkData.h" void SampleWindow::afterChildren(SkCanvas* orig) { if (fSaveToPdf) { fSaveToPdf = false; @@ -775,12 +776,19 @@ void SampleWindow::afterChildren(SkCanvas* orig) { #ifdef ANDROID name.prepend("/sdcard/"); #endif + +#ifdef SK_BUILD_FOR_IOS + SkDynamicMemoryWStream mstream; + doc.emitPDF(&mstream); + fPDFData = SkData::NewWithCopy(mstream.getStream(),mstream.getOffset()); +#endif SkFILEWStream stream(name.c_str()); if (stream.isValid()) { doc.emitPDF(&stream); const char* desc = "File saved from Skia SampleApp"; this->onPDFSaved(this->getTitle(), desc, name.c_str()); } + delete fPdfCanvas; fPdfCanvas = NULL; @@ -939,6 +947,27 @@ bool SampleWindow::nextSample() { return true; } +bool SampleWindow::goToSample(int i) { + fCurrIndex = (i) % fSamples.count(); + this->loadView(fSamples[fCurrIndex]()); + return true; +} + +SkString SampleWindow::getSampleTitle(int i) { + SkView* view = fSamples[i](); + SkString title; + SkEvent evt(gTitleEvtName); + if (view->doQuery(&evt)) { + title.set(evt.findString(gTitleEvtName)); + } + view->unref(); + return title; +} + +int SampleWindow::sampleCount() { + return fSamples.count(); +} + void SampleWindow::postAnimatingEvent() { if (fAnimating) { SkEvent* evt = new SkEvent(ANIMATING_EVENTTYPE); |