11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/* 31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2006 The Android Open Source Project 41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * 51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file. 71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */ 81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger 90910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 100910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#ifndef SkBoundable_DEFINED 110910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#define SkBoundable_DEFINED 120910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 130910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkDrawable.h" 140910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#include "SkRect.h" 150910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 160910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkBoundable : public SkDrawable { 170910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic: 180910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkBoundable(); 190910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void clearBounder(); 200910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void enableBounder(); 210910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project virtual void getBounds(SkRect* ); 220910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project bool hasBounds() { return fBounds.fLeft != (int16_t)0x8000U; } 230910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void setBounds(SkIRect& bounds) { fBounds = bounds; } 240910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprotected: 250910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project void clearBounds() { fBounds.fLeft = (int16_t) SkToU16(0x8000); }; // mark bounds as unset 260910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkIRect fBounds; 270910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate: 280910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project typedef SkDrawable INHERITED; 290910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 300910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 310910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectclass SkBoundableAuto { 320910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectpublic: 330910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkBoundableAuto(SkBoundable* boundable, SkAnimateMaker& maker); 340910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project ~SkBoundableAuto(); 350910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Projectprivate: 360910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkBoundable* fBoundable; 370910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkAnimateMaker& fMaker; 380910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project SkBoundableAuto& operator= (const SkBoundableAuto& ); 390910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project}; 400910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 410910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project#endif // SkBoundable_DEFINED 420910916c0f7b951ee55c4b7c6358295b9bca0565The Android Open Source Project 43