AnimationPlugin.h revision c0f26576955f8dd6ba7a58f9f55054fb3c0fa7d8
1fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba/* 2fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * Copyright 2008, The Android Open Source Project 3fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * 4fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * Redistribution and use in source and binary forms, with or without 5fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * modification, are permitted provided that the following conditions 6fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * are met: 7fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * * Redistributions of source code must retain the above copyright 8fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * notice, this list of conditions and the following disclaimer. 9fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * * Redistributions in binary form must reproduce the above copyright 10fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * notice, this list of conditions and the following disclaimer in the 11fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * documentation and/or other materials provided with the distribution. 12fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * 13fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY 14fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 17fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba */ 25d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger 26fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba#include "PluginObject.h" 27fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba 28fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba#ifndef pluginGraphics__DEFINED 29fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba#define pluginGraphics__DEFINED 30fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba 31d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenbergerclass BallAnimation : public SubPlugin { 32d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenbergerpublic: 33d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger BallAnimation(NPP inst); 34d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger virtual ~BallAnimation(); 3521f3991238fb21e809b994f565b09c8ea27c615eDerek Sollenberger virtual bool supportsDrawingModel(ANPDrawingModel); 36d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger virtual int16 handleEvent(const ANPEvent* evt); 37d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenbergerprivate: 38c0f26576955f8dd6ba7a58f9f55054fb3c0fa7d8Derek Sollenberger void draw(ANPCanvas*); 39c0f26576955f8dd6ba7a58f9f55054fb3c0fa7d8Derek Sollenberger void drawPlugin(const ANPBitmap& bitmap, const ANPRectI& clip); 40c0f26576955f8dd6ba7a58f9f55054fb3c0fa7d8Derek Sollenberger void centerPluginOnScreen(); 41c0f26576955f8dd6ba7a58f9f55054fb3c0fa7d8Derek Sollenberger 42d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger float m_x; 43d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger float m_y; 44d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger float m_dx; 45d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger float m_dy; 46d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger 47d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger int32_t mUnichar; 48d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger 49d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger ANPRectF m_oval; 50d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger ANPPaint* m_paint; 51d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger 52d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger static const float SCALE = 0.1; 535b011e35fb0ced750323681e5a864bb9962d06a1Derek Sollenberger 545b011e35fb0ced750323681e5a864bb9962d06a1Derek Sollenberger int m_scrollX; 555b011e35fb0ced750323681e5a864bb9962d06a1Derek Sollenberger int m_scrollY; 565b011e35fb0ced750323681e5a864bb9962d06a1Derek Sollenberger int m_screenH; 575b011e35fb0ced750323681e5a864bb9962d06a1Derek Sollenberger int m_screenW; 58d3b9a768706e7e67d45f23016a62b52ae5f69f32Mike Reed float m_zoom; 59d7ebf27ff4cdb56dd76d9d475c435701ef0a435fDerek Sollenberger}; 60fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba 61fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Klobauint32_t getMSecs(); 62fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba 63fbe47c0ef0653d75af9e45038f453ba84b27f6feGrace Kloba#endif // pluginGraphics__DEFINED 64