• 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 THE COPYRIGHT OWNER 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 WebCoreViewBridge_h
27 #define WebCoreViewBridge_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     {
43         m_bounds.setWidth(320);
44         m_bounds.setHeight(240);
45         m_visibleBounds = m_bounds;
46         m_windowBounds = m_bounds;
47     }
48 
~WebCoreViewBridge()49     virtual ~WebCoreViewBridge() { }
50 
51     virtual void draw(WebCore::GraphicsContext* ctx,
52         const WebCore::IntRect& rect) = 0;
53 
getBounds()54     const WebCore::IntRect& getBounds() const
55     {
56         return m_bounds;
57     }
58 
getVisibleBounds()59     const WebCore::IntRect& getVisibleBounds() const
60     {
61         return m_visibleBounds;
62     }
63 
getWindowBounds()64     const WebCore::IntRect& getWindowBounds() const
65     {
66         return m_windowBounds;
67     }
68 
setSize(int w,int h)69     void setSize(int w, int h)
70     {
71         m_bounds.setWidth(w);
72         m_bounds.setHeight(h);
73     }
74 
setVisibleSize(int w,int h)75     void setVisibleSize(int w, int h)
76     {
77         m_visibleBounds.setWidth(w);
78         m_visibleBounds.setHeight(h);
79     }
80 
setLocation(int x,int y)81     void setLocation(int x, int y)
82     {
83         m_bounds.setX(x);
84         m_bounds.setY(y);
85         m_visibleBounds.setX(x);
86         m_visibleBounds.setY(y);
87     }
88 
setWindowBounds(int x,int y,int h,int v)89     void setWindowBounds(int x, int y, int h, int v)
90     {
91         m_windowBounds = WebCore::IntRect(x, y, h, v);
92     }
93 
width()94     int width() const     { return m_bounds.width(); }
height()95     int height() const    { return m_bounds.height(); }
locX()96     int locX() const      { return m_bounds.x(); }
locY()97     int locY() const      { return m_bounds.y(); }
98 
visibleWidth()99     int visibleWidth() const    { return m_visibleBounds.width(); }
visibleHeight()100     int visibleHeight() const   { return m_visibleBounds.height(); }
visibleX()101     int visibleX() const        { return m_visibleBounds.x(); }
visibleY()102     int visibleY() const        { return m_visibleBounds.y(); }
103 
forFrameView()104     virtual bool forFrameView() const { return false; }
forPluginView()105     virtual bool forPluginView() const { return false; }
106 
107 private:
108     WebCore::IntRect    m_bounds;
109     WebCore::IntRect    m_windowBounds;
110     WebCore::IntRect    m_visibleBounds;
111 };
112 
113 #endif // WebCoreViewBridge_h
114