aboutsummaryrefslogtreecommitdiffhomepage
path: root/samplecode/SampleApp.cpp
diff options
context:
space:
mode:
authorGravatar reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2009-11-03 04:00:48 +0000
committerGravatar reed@android.com <reed@android.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2009-11-03 04:00:48 +0000
commit34245c7871f6339de8cc2be8fb1090ca3cba54ef (patch)
tree4ba53bc9e263ba52d9e4fed4bf97917b6cd452bd /samplecode/SampleApp.cpp
parente16a9223fd2a09fb7ba72e20c957bef99cbef4fc (diff)
add OVerView slide to samplecode
change inline functions in SkColorPriv.h to static inline git-svn-id: http://skia.googlecode.com/svn/trunk@415 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'samplecode/SampleApp.cpp')
-rw-r--r--samplecode/SampleApp.cpp40
1 files changed, 28 insertions, 12 deletions
diff --git a/samplecode/SampleApp.cpp b/samplecode/SampleApp.cpp
index 263b898639..4000ed7e6c 100644
--- a/samplecode/SampleApp.cpp
+++ b/samplecode/SampleApp.cpp
@@ -10,6 +10,8 @@
#include "SampleCode.h"
+SkView* create_overview(int, const SkViewFactory*);
+
//#define SK_SUPPORT_GL
#ifdef SK_SUPPORT_GL
@@ -122,6 +124,7 @@ void SampleCode::PrefSizeR(SkEvent* evt, SkScalar width, SkScalar height) {
//////////////////////////////////////////////////////////////////////////////
class SampleWindow : public SkOSWindow {
+ SkTDArray<SkViewFactory> fSamples;
public:
SampleWindow(void* hwnd);
virtual ~SampleWindow();
@@ -150,7 +153,7 @@ protected:
virtual bool onHandleKeyUp(SkKey key);
#endif
private:
- const SkViewRegister* fCurr;
+ int fCurrIndex;
SkPicture* fPicture;
SkGLCanvas* fGLCanvas;
@@ -218,8 +221,15 @@ SampleWindow::SampleWindow(void* hwnd) : INHERITED(hwnd) {
this->setConfig(SkBitmap::kARGB_8888_Config);
this->setVisibleP(true);
- fCurr = SkViewRegister::Head();
- this->loadView(fCurr->factory()());
+ {
+ const SkViewRegister* reg = SkViewRegister::Head();
+ while (reg) {
+ *fSamples.append() = reg->factory();
+ reg = reg->next();
+ }
+ }
+ fCurrIndex = 0;
+ this->loadView(NULL);
}
SampleWindow::~SampleWindow() {
@@ -386,15 +396,9 @@ static SkBitmap::Config cycle_configs(SkBitmap::Config c) {
}
bool SampleWindow::nextSample() {
- if (fCurr) {
- fCurr = fCurr->next();
- if (NULL == fCurr) {
- fCurr = SkViewRegister::Head();
- }
- this->loadView(fCurr->factory()());
- return true;
- }
- return false;
+ fCurrIndex = (fCurrIndex + 1) % fSamples.count();
+ this->loadView(fSamples[fCurrIndex]());
+ return true;
}
bool SampleWindow::onEvent(const SkEvent& evt) {
@@ -405,6 +409,11 @@ bool SampleWindow::onEvent(const SkEvent& evt) {
}
return true;
}
+ if (evt.isType("set-curr-index")) {
+ fCurrIndex = evt.getFast32() % fSamples.count();
+ this->loadView(fSamples[fCurrIndex]());
+ return true;
+ }
return this->INHERITED::onEvent(evt);
}
@@ -522,6 +531,9 @@ bool SampleWindow::onHandleKey(SkKey key) {
}
}
return true;
+ case kBack_SkKey:
+ this->loadView(NULL);
+ return true;
default:
break;
}
@@ -534,6 +546,10 @@ void SampleWindow::loadView(SkView* view) {
if (prev) {
prev->detachFromParent();
}
+
+ if (NULL == view) {
+ view = create_overview(fSamples.count(), fSamples.begin());
+ }
view->setVisibleP(true);
this->attachChildToFront(view)->unref();
view->setSize(this->width(), this->height());