OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CHROME_RENDERER_RENDER_WIDGET_H__ | 5 #ifndef CHROME_RENDERER_RENDER_WIDGET_H__ |
6 #define CHROME_RENDERER_RENDER_WIDGET_H__ | 6 #define CHROME_RENDERER_RENDER_WIDGET_H__ |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/gfx/native_widget_types.h" | 10 #include "base/gfx/native_widget_types.h" |
11 #include "base/gfx/point.h" | 11 #include "base/gfx/point.h" |
12 #include "base/gfx/rect.h" | 12 #include "base/gfx/rect.h" |
13 #include "base/gfx/size.h" | 13 #include "base/gfx/size.h" |
14 #include "base/ref_counted.h" | 14 #include "base/ref_counted.h" |
15 #include "base/shared_memory.h" | 15 #include "base/shared_memory.h" |
16 #include "chrome/common/ipc_channel.h" | 16 #include "chrome/common/ipc_channel.h" |
| 17 #include "chrome/renderer/render_process.h" |
17 #include "skia/ext/platform_canvas.h" | 18 #include "skia/ext/platform_canvas.h" |
18 | 19 |
19 #include "webkit/glue/webwidget_delegate.h" | 20 #include "webkit/glue/webwidget_delegate.h" |
20 #include "webkit/glue/webcursor.h" | 21 #include "webkit/glue/webcursor.h" |
21 | 22 |
22 class RenderThreadBase; | 23 class RenderThreadBase; |
23 struct WebPluginGeometry; | 24 struct WebPluginGeometry; |
24 | 25 |
25 // RenderWidget provides a communication bridge between a WebWidget and | 26 // RenderWidget provides a communication bridge between a WebWidget and |
26 // a RenderWidgetHost, the latter of which lives in a different process. | 27 // a RenderWidgetHost, the latter of which lives in a different process. |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 virtual void SetWindowRect(WebWidget* webwidget, const gfx::Rect& rect); | 80 virtual void SetWindowRect(WebWidget* webwidget, const gfx::Rect& rect); |
80 virtual void GetRootWindowRect(WebWidget* webwidget, gfx::Rect* rect); | 81 virtual void GetRootWindowRect(WebWidget* webwidget, gfx::Rect* rect); |
81 virtual void GetRootWindowResizerRect(WebWidget* webwidget, gfx::Rect* rect); | 82 virtual void GetRootWindowResizerRect(WebWidget* webwidget, gfx::Rect* rect); |
82 virtual void DidMove(WebWidget* webwidget, const WebPluginGeometry& move); | 83 virtual void DidMove(WebWidget* webwidget, const WebPluginGeometry& move); |
83 virtual void RunModal(WebWidget* webwidget) {} | 84 virtual void RunModal(WebWidget* webwidget) {} |
84 virtual bool IsHidden() { return is_hidden_; } | 85 virtual bool IsHidden() { return is_hidden_; } |
85 | 86 |
86 // Close the underlying WebWidget. | 87 // Close the underlying WebWidget. |
87 void Close(); | 88 void Close(); |
88 | 89 |
89 // Get the size of the paint buffer for the given rectangle, rounding up to | |
90 // the allocation granularity of the system. | |
91 static size_t GetPaintBufSize(const gfx::Rect& rect); | |
92 | |
93 protected: | 90 protected: |
94 // Friend RefCounted so that the dtor can be non-public. Using this class | 91 // Friend RefCounted so that the dtor can be non-public. Using this class |
95 // without ref-counting is an error. | 92 // without ref-counting is an error. |
96 friend class base::RefCounted<RenderWidget>; | 93 friend class base::RefCounted<RenderWidget>; |
97 | 94 |
98 RenderWidget(RenderThreadBase* render_thread, bool activatable); | 95 RenderWidget(RenderThreadBase* render_thread, bool activatable); |
99 virtual ~RenderWidget(); | 96 virtual ~RenderWidget(); |
100 | 97 |
101 // Initializes this view with the given opener. CompleteInit must be called | 98 // Initializes this view with the given opener. CompleteInit must be called |
102 // later. | 99 // later. |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 | 182 |
186 // The window we are embedded within. TODO(darin): kill this. | 183 // The window we are embedded within. TODO(darin): kill this. |
187 gfx::NativeViewId host_window_; | 184 gfx::NativeViewId host_window_; |
188 | 185 |
189 // We store the current cursor object so we can avoid spamming SetCursor | 186 // We store the current cursor object so we can avoid spamming SetCursor |
190 // messages. | 187 // messages. |
191 WebCursor current_cursor_; | 188 WebCursor current_cursor_; |
192 // The size of the RenderWidget. | 189 // The size of the RenderWidget. |
193 gfx::Size size_; | 190 gfx::Size size_; |
194 | 191 |
195 // Shared memory handles that are currently in use to transfer an image to | 192 // Transport DIBs that are currently in use to transfer an image to the |
196 // the browser. | 193 // browser. |
197 base::SharedMemory* current_paint_buf_; | 194 TransportDIB* current_paint_buf_; |
198 base::SharedMemory* current_scroll_buf_; | 195 TransportDIB* current_scroll_buf_; |
199 | 196 |
200 // The smallest bounding rectangle that needs to be re-painted. This is non- | 197 // The smallest bounding rectangle that needs to be re-painted. This is non- |
201 // empty if a paint event is pending. | 198 // empty if a paint event is pending. |
202 gfx::Rect paint_rect_; | 199 gfx::Rect paint_rect_; |
203 | 200 |
204 // The clip rect for the pending scroll event. This is non-empty if a | 201 // The clip rect for the pending scroll event. This is non-empty if a |
205 // scroll event is pending. | 202 // scroll event is pending. |
206 gfx::Rect scroll_rect_; | 203 gfx::Rect scroll_rect_; |
207 | 204 |
208 // The area that must be reserved for drawing the resize corner. | 205 // The area that must be reserved for drawing the resize corner. |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
260 // Whether the window for this RenderWidget can be activated. | 257 // Whether the window for this RenderWidget can be activated. |
261 bool activatable_; | 258 bool activatable_; |
262 | 259 |
263 // Holds all the needed plugin window moves for a scroll. | 260 // Holds all the needed plugin window moves for a scroll. |
264 std::vector<WebPluginGeometry> plugin_window_moves_; | 261 std::vector<WebPluginGeometry> plugin_window_moves_; |
265 | 262 |
266 DISALLOW_EVIL_CONSTRUCTORS(RenderWidget); | 263 DISALLOW_EVIL_CONSTRUCTORS(RenderWidget); |
267 }; | 264 }; |
268 | 265 |
269 #endif // CHROME_RENDERER_RENDER_WIDGET_H__ | 266 #endif // CHROME_RENDERER_RENDER_WIDGET_H__ |
OLD | NEW |