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