|
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 SkBoundable_DEFINED |
|
11 #define SkBoundable_DEFINED |
|
12 |
|
13 #include "SkDrawable.h" |
|
14 #include "SkRect.h" |
|
15 |
|
16 class SkBoundable : public SkDrawable { |
|
17 public: |
|
18 SkBoundable(); |
|
19 virtual void clearBounder(); |
|
20 virtual void enableBounder(); |
|
21 virtual void getBounds(SkRect* ); |
|
22 bool hasBounds() { return fBounds.fLeft != (int16_t)0x8000U; } |
|
23 void setBounds(SkIRect& bounds) { fBounds = bounds; } |
|
24 protected: |
|
25 void clearBounds() { fBounds.fLeft = (int16_t) SkToU16(0x8000); }; // mark bounds as unset |
|
26 SkIRect fBounds; |
|
27 private: |
|
28 typedef SkDrawable INHERITED; |
|
29 }; |
|
30 |
|
31 class SkBoundableAuto { |
|
32 public: |
|
33 SkBoundableAuto(SkBoundable* boundable, SkAnimateMaker& maker); |
|
34 ~SkBoundableAuto(); |
|
35 private: |
|
36 SkBoundable* fBoundable; |
|
37 SkAnimateMaker& fMaker; |
|
38 SkBoundableAuto& operator= (const SkBoundableAuto& ); |
|
39 }; |
|
40 |
|
41 #endif // SkBoundable_DEFINED |