1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// Use of this source code is governed by a BSD-style license that can be
3731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// found in the LICENSE file.
4731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
5731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#ifndef CHROME_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_VIEWS_H_
6731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#define CHROME_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_VIEWS_H_
7731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#pragma once
8731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
9731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include <map>
10731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include <string>
11731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include <vector>
12731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_ptr.h"
14731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "base/time.h"
15dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "content/browser/renderer_host/render_widget_host_view.h"
1672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "third_party/WebKit/Source/WebKit/chromium/public/WebInputEvent.h"
1772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "ui/gfx/native_widget_types.h"
18731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "views/controls/native/native_view_host.h"
1972a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen#include "views/events/event.h"
20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "views/ime/text_input_client.h"
21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "views/view.h"
22731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#include "webkit/glue/webcursor.h"
23731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
24731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass RenderWidgetHost;
25731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickstruct NativeWebKeyboardEvent;
26731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
27731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// -----------------------------------------------------------------------------
28731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// See comments in render_widget_host_view.h about this class and its members.
29731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick// -----------------------------------------------------------------------------
30731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass RenderWidgetHostViewViews : public RenderWidgetHostView,
31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                                  public views::View,
32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                                  public views::TextInputClient {
33731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick public:
3472a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // Internal class name.
3572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  static const char kViewClassName[];
3672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
37731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  explicit RenderWidgetHostViewViews(RenderWidgetHost* widget);
38731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  virtual ~RenderWidgetHostViewViews();
39731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
40731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // Initialize this object for use as a drawing area.
41731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  void InitAsChild();
42731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
43731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // RenderWidgetHostView implementation.
44731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  virtual void InitAsPopup(RenderWidgetHostView* parent_host_view,
45dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen                           const gfx::Rect& pos) OVERRIDE;
46dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void InitAsFullscreen() OVERRIDE;
47dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual RenderWidgetHost* GetRenderWidgetHost() const OVERRIDE;
48dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void DidBecomeSelected() OVERRIDE;
49dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void WasHidden() OVERRIDE;
50dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void SetSize(const gfx::Size& size) OVERRIDE;
51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void SetBounds(const gfx::Rect& rect) OVERRIDE;
52dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual gfx::NativeView GetNativeView() OVERRIDE;
53731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  virtual void MovePluginWindows(
54dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen      const std::vector<webkit::npapi::WebPluginGeometry>& moves) OVERRIDE;
55dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual bool HasFocus() OVERRIDE;
56dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void Show() OVERRIDE;
57dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void Hide() OVERRIDE;
58dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual bool IsShowing() OVERRIDE;
59dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual gfx::Rect GetViewBounds() const OVERRIDE;
60dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void UpdateCursor(const WebCursor& cursor) OVERRIDE;
61dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void SetIsLoading(bool is_loading) OVERRIDE;
62731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  virtual void ImeUpdateTextInputState(WebKit::WebTextInputType type,
63dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen                                       const gfx::Rect& caret_rect) OVERRIDE;
64dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void ImeCancelComposition() OVERRIDE;
65731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  virtual void DidUpdateBackingStore(
66731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      const gfx::Rect& scroll_rect, int scroll_dx, int scroll_dy,
67dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen      const std::vector<gfx::Rect>& copy_rects) OVERRIDE;
6821d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen  virtual void RenderViewGone(base::TerminationStatus status,
69dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen                              int error_code) OVERRIDE;
70dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void Destroy() OVERRIDE;
71dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void WillDestroyRenderWidget(RenderWidgetHost* rwh) OVERRIDE {}
72dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void SetTooltipText(const std::wstring& tooltip_text) OVERRIDE;
73dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void SelectionChanged(const std::string& text) OVERRIDE;
74dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void ShowingContextMenu(bool showing) OVERRIDE;
75dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual BackingStore* AllocBackingStore(const gfx::Size& size) OVERRIDE;
76dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void SetBackground(const SkBitmap& background) OVERRIDE;
77dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void CreatePluginContainer(gfx::PluginWindowHandle id) OVERRIDE;
78dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void DestroyPluginContainer(gfx::PluginWindowHandle id) OVERRIDE;
79dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void SetVisuallyDeemphasized(const SkColor* color,
80dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen                                       bool animate) OVERRIDE;
81dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual bool ContainsNativeView(gfx::NativeView native_view) const OVERRIDE;
82dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void AcceleratedCompositingActivated(bool activated) OVERRIDE;
83ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual gfx::PluginWindowHandle GetCompositingSurface() OVERRIDE;
84731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
8572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // On some systems, there can be two native views, where an outer native view
8672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // contains the inner native view (e.g. when using GTK+). This returns the
8772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // inner view. This can return NULL when it's not attached to a view.
8872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  gfx::NativeView GetInnerNativeView() const;
89731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
90201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch  // Overridden from views::View.
91ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual std::string GetClassName() const OVERRIDE;
92ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual gfx::NativeCursor GetCursorForPoint(ui::EventType type,
93ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                                              const gfx::Point& point) OVERRIDE;
94dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual bool OnMousePressed(const views::MouseEvent& event) OVERRIDE;
95dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual bool OnMouseDragged(const views::MouseEvent& event) OVERRIDE;
96ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void OnMouseReleased(const views::MouseEvent& event) OVERRIDE;
97ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void OnMouseMoved(const views::MouseEvent& event) OVERRIDE;
98dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void OnMouseEntered(const views::MouseEvent& event) OVERRIDE;
99dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void OnMouseExited(const views::MouseEvent& event) OVERRIDE;
100ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual View::TouchStatus OnTouchEvent(
101ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      const views::TouchEvent& event) OVERRIDE;
102ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual bool OnKeyPressed(const views::KeyEvent& event) OVERRIDE;
103ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual bool OnKeyReleased(const views::KeyEvent& event) OVERRIDE;
104ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual bool OnMouseWheel(const views::MouseWheelEvent& event) OVERRIDE;
105ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual views::TextInputClient* GetTextInputClient() OVERRIDE;
106ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
107ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  // Overridden from TextInputClient:
108ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void SetCompositionText(
109ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      const ui::CompositionText& composition) OVERRIDE;
110ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void ConfirmCompositionText() OVERRIDE;
111ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void ClearCompositionText() OVERRIDE;
112ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void InsertText(const string16& text) OVERRIDE;
113ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void InsertChar(char16 ch, int flags) OVERRIDE;
114ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual ui::TextInputType GetTextInputType() OVERRIDE;
115ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual gfx::Rect GetCaretBounds() OVERRIDE;
116ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual bool HasCompositionText() OVERRIDE;
117ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual bool GetTextRange(ui::Range* range) OVERRIDE;
118ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual bool GetCompositionTextRange(ui::Range* range) OVERRIDE;
119ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual bool GetSelectionRange(ui::Range* range) OVERRIDE;
120ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual bool SetSelectionRange(const ui::Range& range) OVERRIDE;
121ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual bool DeleteRange(const ui::Range& range) OVERRIDE;
122ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual bool GetTextFromRange(
123ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      const ui::Range& range,
124ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      const base::Callback<void(const string16&)>& callback) OVERRIDE;
125ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void OnInputMethodChanged() OVERRIDE;
126ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual bool ChangeTextDirectionAndLayoutAlignment(
127ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      base::i18n::TextDirection direction) OVERRIDE;
128ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual views::View* GetOwnerViewOfTextInputClient() OVERRIDE;
129ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
130ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen protected:
131ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  // Overridden from RenderWidgetHostView / views::View.
132ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE;
133ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void Focus() OVERRIDE;
134ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void Blur() OVERRIDE;
135dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void OnFocus() OVERRIDE;
136dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen  virtual void OnBlur() OVERRIDE;
137731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
138731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick private:
139731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  friend class RenderWidgetHostViewViewsWidget;
140731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
141731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // Returns whether the widget needs an input grab to work
142731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // properly.
143731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  bool NeedsInputGrab();
144731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
145731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // Returns whether this render view is a popup (<select> dropdown or
146731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // autocomplete window).
147731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  bool IsPopup();
148731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
149731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // Update the display cursor for the render view.
150731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  void ShowCurrentCursor();
151731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
152731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // Translate a views::MouseEvent into a WebKit::WebMouseEvent.
153731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  WebKit::WebMouseEvent WebMouseEventFromViewsEvent(
154731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      const views::MouseEvent& event);
155731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
156ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  // Confirm existing composition text in the webpage and ask the input method
157ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  // to cancel its ongoing composition sesstion.
158ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  void FinishImeCompositionSession();
159ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
160731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // The model object.
161731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  RenderWidgetHost* host_;
162731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
163731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // This is true when we are currently painting and thus should handle extra
164731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // paint requests by expanding the invalid rect rather than actually
165731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // painting.
166731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  bool about_to_validate_and_paint_;
167731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
168731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // This is the rectangle which we'll paint.
169731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  gfx::Rect invalid_rect_;
170731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
171731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // Whether or not this widget is hidden.
172731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  bool is_hidden_;
173731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
174731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // Whether we are currently loading.
175731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  bool is_loading_;
176731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
177731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // The cursor for the page. This is passed up from the renderer.
178731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  WebCursor current_cursor_;
179731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
180201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch  // The native cursor.
181201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch  gfx::NativeCursor native_cursor_;
182201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch
183731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // Whether we are showing a context menu.
184731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  bool is_showing_context_menu_;
185731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
186731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // The time at which this view started displaying white pixels as a result of
187731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // not having anything to paint (empty backing store from renderer). This
188731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // value returns true for is_null() if we are not recording whiteout times.
189731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  base::TimeTicks whiteout_start_time_;
190731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
191731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // The time it took after this view was selected for it to be fully painted.
192731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  base::TimeTicks tab_switch_paint_time_;
193731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
194731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // If true, fade the render widget when painting it.
195731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  bool visually_deemphasized_;
196731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
197731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  // The size that we want the renderer to be.
198731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  gfx::Size requested_size_;
199731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
200201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch  // The touch-event. Its touch-points are updated as necessary. A new
201201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch  // touch-point is added from an ET_TOUCH_PRESSED event, and a touch-point is
202201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch  // removed from the list on an ET_TOUCH_RELEASED event.
203201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch  WebKit::WebTouchEvent touch_event_;
204201ade2fbba22bfb27ae029f4d23fca6ded109a0Ben Murdoch
205ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  // The current text input type.
206ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  ui::TextInputType text_input_type_;
207ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
208ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  // The current caret bounds.
209ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  gfx::Rect caret_bounds_;
210ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
211ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  // Indicates if there is onging composition text.
212ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  bool has_composition_text_;
21372a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
214731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewViews);
215731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick};
216731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
217731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick#endif  // CHROME_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_VIEWS_H_
218