aboutsummaryrefslogtreecommitdiff
path: root/samplecode/SampleApp.cpp
diff options
context:
space:
mode:
authoryangsu@google.com <yangsu@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-06-24 16:04:50 +0000
committeryangsu@google.com <yangsu@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-06-24 16:04:50 +0000
commit501775e5ac99f9805d1aba3aa7ca554a83d2dc43 (patch)
tree32176d427329bfeb674bad2b9db855652296f0c9 /samplecode/SampleApp.cpp
parent2eff7e26c01bdcca7ae67019c6277b94cee5fd28 (diff)
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
Diffstat (limited to 'samplecode/SampleApp.cpp')
-rw-r--r--samplecode/SampleApp.cpp33
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);