• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2007, The Android Open Source Project
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *  * Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  *  * Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
14  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25 
26 #ifndef WEBCORE_VIEW_BRIDGE_H
27 #define WEBCORE_VIEW_BRIDGE_H
28 
29 // TODO: move this outside of jni directory
30 
31 #include "IntRect.h"
32 #include "WebCoreRefObject.h"
33 
34 namespace WebCore
35 {
36     class GraphicsContext;
37 }
38 
39 class WebCoreViewBridge : public WebCoreRefObject {
40 public:
WebCoreViewBridge()41     WebCoreViewBridge() :
42         mBounds(0,0,0,0),
43         m_windowBounds(0,0,0,0)
44     {}
~WebCoreViewBridge()45     virtual ~WebCoreViewBridge() {}
46 
47     virtual void draw(WebCore::GraphicsContext* ctx,
48         const WebCore::IntRect& rect) = 0;
49 
getBounds()50     const WebCore::IntRect& getBounds() const
51     {
52         return mBounds;
53     }
54 
getWindowBounds()55     const WebCore::IntRect& getWindowBounds() const
56     {
57         return m_windowBounds;
58     }
59 
setSize(int w,int h)60     void setSize(int w, int h)
61     {
62         mBounds.setWidth(w);
63         mBounds.setHeight(h);
64     }
65 
setLocation(int x,int y)66     void setLocation(int x, int y)
67     {
68         mBounds.setX(x);
69         mBounds.setY(y);
70     }
71 
setWindowBounds(int x,int y,int h,int v)72     void setWindowBounds(int x, int y, int h, int v)
73     {
74         m_windowBounds = WebCore::IntRect(x, y, h, v);
75     }
76 
width()77     int width() const     { return mBounds.width(); }
height()78     int height() const    { return mBounds.height(); }
locX()79     int locX() const      { return mBounds.x(); }
locY()80     int locY() const      { return mBounds.y(); }
81 
forFrameView()82     virtual bool forFrameView() const { return false; }
forPluginView()83     virtual bool forPluginView() const { return false; }
84 
85 private:
86     WebCore::IntRect    mBounds;
87     WebCore::IntRect    m_windowBounds;
88 };
89 
90 #endif // WEBCORE_VIEW_BRIDGE_H
91