Added helper methods for changing samples, getting sample titles, and extracting pdf Data
http://codereview.appspot.com/4626073/


git-svn-id: http://skia.googlecode.com/svn/trunk@1704 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index 8a8ac9c..74a0708 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -410,7 +410,8 @@
     if (this->height() && this->width()) {
         this->onSizeChange();
     }
-
+    
+    fPDFData = NULL;
 #ifdef SK_BUILD_FOR_MAC
     testpdf();
 #endif
@@ -760,7 +761,7 @@
     canvas.clipRegion(inval);
     canvas.drawColor(0xFFFF8080);
 }
-
+#include "SkData.h"
 void SampleWindow::afterChildren(SkCanvas* orig) {
     if (fSaveToPdf) {
         fSaveToPdf = false;
@@ -775,12 +776,19 @@
 #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 @@
     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);