skia2/tools/viewer/Slide.h
Ben Wagner 211511237f Make Slide::getDimensions pure virtual.
The default behavior is to not let the user move the slide to the top or
left. Implement for SampleSlide and stub out for NIMASlide (which isn't
so easy to implement).

Change-Id: I16074e704f4086199932d83e28c28d1ee39fbd9d
Reviewed-on: https://skia-review.googlesource.com/151600
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Ben Wagner <bungeman@google.com>
2018-09-05 15:05:14 +00:00

48 lines
1.1 KiB
C++

/*
* Copyright 2016 Google Inc.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
#ifndef Slide_DEFINED
#define Slide_DEFINED
#include "SkRefCnt.h"
#include "SkSize.h"
#include "SkString.h"
#include "sk_app/Window.h"
class SkCanvas;
class SkAnimTimer;
class SkMetaData;
class Slide : public SkRefCnt {
public:
virtual ~Slide() {}
virtual SkISize getDimensions() const = 0;
virtual void draw(SkCanvas* canvas) = 0;
virtual bool animate(const SkAnimTimer&) { return false; }
virtual void load(SkScalar winWidth, SkScalar winHeight) {}
virtual void resize(SkScalar winWidth, SkScalar winHeight) {}
virtual void unload() {}
virtual bool onChar(SkUnichar c) { return false; }
virtual bool onMouse(SkScalar x, SkScalar y, sk_app::Window::InputState state,
uint32_t modifiers) { return false; }
virtual bool onGetControls(SkMetaData*) { return false; }
virtual void onSetControls(const SkMetaData&) {}
SkString getName() { return fName; }
protected:
SkString fName;
};
#endif