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/point.h" | 10 #include "base/gfx/point.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 // RenderWidget provides a communication bridge between a WebWidget and | 23 // RenderWidget provides a communication bridge between a WebWidget and |
24 // a RenderWidgetHost, the latter of which lives in a different process. | 24 // a RenderWidgetHost, the latter of which lives in a different process. |
25 class RenderWidget : public IPC::Channel::Listener, | 25 class RenderWidget : public IPC::Channel::Listener, |
26 public IPC::Message::Sender, | 26 public IPC::Message::Sender, |
27 virtual public WebWidgetDelegate, | 27 virtual public WebWidgetDelegate, |
28 public base::RefCounted<RenderWidget> { | 28 public base::RefCounted<RenderWidget> { |
29 public: | 29 public: |
30 // Creates a new RenderWidget. The opener_id is the routing ID of the | 30 // Creates a new RenderWidget. The opener_id is the routing ID of the |
31 // RenderView that this widget lives inside. The render_thread is any | 31 // RenderView that this widget lives inside. The render_thread is any |
32 // RenderThreadBase implementation, mostly commonly RenderThread::current(). | 32 // RenderThreadBase implementation, mostly commonly RenderThread::current(). |
33 static RenderWidget* Create(int32 opener_id, RenderThreadBase* render_thread); | 33 static RenderWidget* Create(int32 opener_id, |
| 34 RenderThreadBase* render_thread, |
| 35 bool focus_on_show); |
34 | 36 |
35 // The routing ID assigned by the RenderProcess. Will be MSG_ROUTING_NONE if | 37 // The routing ID assigned by the RenderProcess. Will be MSG_ROUTING_NONE if |
36 // not yet assigned a view ID, in which case, the process MUST NOT send | 38 // not yet assigned a view ID, in which case, the process MUST NOT send |
37 // messages with this ID to the parent. | 39 // messages with this ID to the parent. |
38 int32 routing_id() const { | 40 int32 routing_id() const { |
39 return routing_id_; | 41 return routing_id_; |
40 } | 42 } |
41 | 43 |
42 // May return NULL when the window is closing. | 44 // May return NULL when the window is closing. |
43 WebWidget* webwidget() const { | 45 WebWidget* webwidget() const { |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 virtual bool IsHidden() { return is_hidden_; } | 81 virtual bool IsHidden() { return is_hidden_; } |
80 | 82 |
81 // Close the underlying WebWidget. | 83 // Close the underlying WebWidget. |
82 void Close(); | 84 void Close(); |
83 | 85 |
84 protected: | 86 protected: |
85 // Friend RefCounted so that the dtor can be non-public. Using this class | 87 // Friend RefCounted so that the dtor can be non-public. Using this class |
86 // without ref-counting is an error. | 88 // without ref-counting is an error. |
87 friend class base::RefCounted<RenderWidget>; | 89 friend class base::RefCounted<RenderWidget>; |
88 | 90 |
89 RenderWidget(RenderThreadBase* render_thread); | 91 RenderWidget(RenderThreadBase* render_thread, bool focus_on_show); |
90 virtual ~RenderWidget(); | 92 virtual ~RenderWidget(); |
91 | 93 |
92 // Initializes this view with the given opener. CompleteInit must be called | 94 // Initializes this view with the given opener. CompleteInit must be called |
93 // later. | 95 // later. |
94 void Init(int32 opener_id); | 96 void Init(int32 opener_id); |
95 | 97 |
96 // Finishes creation of a pending view started with Init. | 98 // Finishes creation of a pending view started with Init. |
97 void CompleteInit(HWND parent); | 99 void CompleteInit(HWND parent); |
98 | 100 |
99 // Paints the given rectangular region of the WebWidget into paint_buf (a | 101 // Paints the given rectangular region of the WebWidget into paint_buf (a |
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 // * The position of the caret (or cursor). | 256 // * The position of the caret (or cursor). |
255 // If the above values is updated, a renderer process sends an IPC message | 257 // If the above values is updated, a renderer process sends an IPC message |
256 // to a browser process. A browser process uses these values to | 258 // to a browser process. A browser process uses these values to |
257 // activate/deactivate IME and set the position of IME windows. | 259 // activate/deactivate IME and set the position of IME windows. |
258 bool ime_control_enable_ime_; | 260 bool ime_control_enable_ime_; |
259 int ime_control_x_; | 261 int ime_control_x_; |
260 int ime_control_y_; | 262 int ime_control_y_; |
261 bool ime_control_new_state_; | 263 bool ime_control_new_state_; |
262 bool ime_control_updated_; | 264 bool ime_control_updated_; |
263 | 265 |
| 266 // Whether the window for this RenderWidget should be focused when shown. |
| 267 bool focus_on_show_; |
| 268 |
264 // Holds all the needed plugin window moves for a scroll. | 269 // Holds all the needed plugin window moves for a scroll. |
265 std::vector<WebPluginGeometry> plugin_window_moves_; | 270 std::vector<WebPluginGeometry> plugin_window_moves_; |
266 | 271 |
267 DISALLOW_EVIL_CONSTRUCTORS(RenderWidget); | 272 DISALLOW_EVIL_CONSTRUCTORS(RenderWidget); |
268 }; | 273 }; |
269 | 274 |
270 #endif // CHROME_RENDERER_RENDER_WIDGET_H__ | 275 #endif // CHROME_RENDERER_RENDER_WIDGET_H__ |
OLD | NEW |