| OLD | NEW |
| (Empty) |
| 1 | |
| 2 /* | |
| 3 * Copyright 2006 The Android Open Source Project | |
| 4 * | |
| 5 * Use of this source code is governed by a BSD-style license that can be | |
| 6 * found in the LICENSE file. | |
| 7 */ | |
| 8 | |
| 9 | |
| 10 #ifndef SkImageView_DEFINED | |
| 11 #define SkImageView_DEFINED | |
| 12 | |
| 13 #include "SkView.h" | |
| 14 #include "SkString.h" | |
| 15 | |
| 16 class SkAnimator; | |
| 17 class SkBitmap; | |
| 18 class SkMatrix; | |
| 19 | |
| 20 class SkImageView : public SkView { | |
| 21 public: | |
| 22 SkImageView(); | |
| 23 virtual ~SkImageView(); | |
| 24 | |
| 25 void getUri(SkString*) const; | |
| 26 void setUri(const char []); | |
| 27 void setUri(const SkString&); | |
| 28 | |
| 29 | |
| 30 enum ScaleType { | |
| 31 kMatrix_ScaleType, | |
| 32 kFitXY_ScaleType, | |
| 33 kFitStart_ScaleType, | |
| 34 kFitCenter_ScaleType, | |
| 35 kFitEnd_ScaleType | |
| 36 }; | |
| 37 ScaleType getScaleType() const { return (ScaleType)fScaleType; } | |
| 38 void setScaleType(ScaleType); | |
| 39 | |
| 40 bool getImageMatrix(SkMatrix*) const; | |
| 41 void setImageMatrix(const SkMatrix*); | |
| 42 | |
| 43 protected: | |
| 44 // overrides | |
| 45 virtual bool onEvent(const SkEvent&); | |
| 46 virtual void onDraw(SkCanvas*); | |
| 47 virtual void onInflate(const SkDOM&, const SkDOMNode*); | |
| 48 | |
| 49 private: | |
| 50 SkString fUri; | |
| 51 SkMatrix* fMatrix; // null or copy of caller's matrix ,,,,, | |
| 52 union { | |
| 53 SkAnimator* fAnim; | |
| 54 SkBitmap* fBitmap; | |
| 55 } fData; | |
| 56 uint8_t fScaleType; | |
| 57 SkBool8 fDataIsAnim; // as opposed to bitmap | |
| 58 SkBool8 fUriIsValid; | |
| 59 | |
| 60 void onUriChange(); | |
| 61 bool getDataBounds(SkRect* bounds); | |
| 62 bool freeData(); | |
| 63 bool ensureUriIsLoaded(); | |
| 64 | |
| 65 typedef SkView INHERITED; | |
| 66 }; | |
| 67 | |
| 68 #endif | |
| OLD | NEW |