Home | History | Annotate | Download | only in animator
      1 /* libs/graphics/animator/SkBoundable.h
      2 **
      3 ** Copyright 2006, The Android Open Source Project
      4 **
      5 ** Licensed under the Apache License, Version 2.0 (the "License");
      6 ** you may not use this file except in compliance with the License.
      7 ** You may obtain a copy of the License at
      8 **
      9 **     http://www.apache.org/licenses/LICENSE-2.0
     10 **
     11 ** Unless required by applicable law or agreed to in writing, software
     12 ** distributed under the License is distributed on an "AS IS" BASIS,
     13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14 ** See the License for the specific language governing permissions and
     15 ** limitations under the License.
     16 */
     17 
     18 #ifndef SkBoundable_DEFINED
     19 #define SkBoundable_DEFINED
     20 
     21 #include "SkDrawable.h"
     22 #include "SkRect.h"
     23 
     24 class SkBoundable : public SkDrawable {
     25 public:
     26     SkBoundable();
     27     virtual void clearBounder();
     28     virtual void enableBounder();
     29     virtual void getBounds(SkRect* );
     30     bool hasBounds() { return fBounds.fLeft != (int16_t)0x8000U; }
     31     void setBounds(SkIRect& bounds) { fBounds = bounds; }
     32 protected:
     33     void clearBounds() { fBounds.fLeft = (int16_t) SkToU16(0x8000); }; // mark bounds as unset
     34     SkIRect fBounds;
     35 private:
     36     typedef SkDrawable INHERITED;
     37 };
     38 
     39 class SkBoundableAuto {
     40 public:
     41     SkBoundableAuto(SkBoundable* boundable, SkAnimateMaker& maker);
     42     ~SkBoundableAuto();
     43 private:
     44     SkBoundable* fBoundable;
     45     SkAnimateMaker& fMaker;
     46     SkBoundableAuto& operator= (const SkBoundableAuto& );
     47 };
     48 
     49 #endif // SkBoundable_DEFINED
     50 
     51