| Index: content/browser/renderer_host/render_widget_host_view_win.h
|
| ===================================================================
|
| --- content/browser/renderer_host/render_widget_host_view_win.h (revision 244508)
|
| +++ content/browser/renderer_host/render_widget_host_view_win.h (working copy)
|
| @@ -1,610 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_WIN_H_
|
| -#define CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_WIN_H_
|
| -
|
| -#include <atlbase.h>
|
| -#include <atlapp.h>
|
| -#include <atlcrack.h>
|
| -#include <atlmisc.h>
|
| -#include <vector>
|
| -
|
| -#include "base/compiler_specific.h"
|
| -#include "base/gtest_prod_util.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/memory/scoped_vector.h"
|
| -#include "base/memory/weak_ptr.h"
|
| -#include "base/time/time.h"
|
| -#include "base/win/scoped_comptr.h"
|
| -#include "content/browser/accessibility/browser_accessibility_manager.h"
|
| -#include "content/browser/renderer_host/render_widget_host_view_base.h"
|
| -#include "content/common/content_export.h"
|
| -#include "content/public/browser/notification_observer.h"
|
| -#include "content/public/browser/notification_registrar.h"
|
| -#include "ui/base/ime/text_input_client.h"
|
| -#include "ui/base/ime/win/tsf_bridge.h"
|
| -#include "ui/events/gestures/gesture_recognizer.h"
|
| -#include "ui/events/gestures/gesture_types.h"
|
| -#include "ui/gfx/native_widget_types.h"
|
| -#include "ui/gfx/point.h"
|
| -#include "ui/surface/accelerated_surface_win.h"
|
| -#include "webkit/common/cursors/webcursor.h"
|
| -
|
| -class SkRegion;
|
| -
|
| -namespace gfx {
|
| -class Size;
|
| -class Rect;
|
| -}
|
| -
|
| -namespace IPC {
|
| -class Message;
|
| -}
|
| -
|
| -namespace ui {
|
| -class IMM32Manager;
|
| -class ViewProp;
|
| -}
|
| -
|
| -namespace blink {
|
| -struct WebScreenInfo;
|
| -}
|
| -
|
| -namespace content {
|
| -class BackingStore;
|
| -class RenderWidgetHost;
|
| -class WebTouchState;
|
| -
|
| -typedef CWinTraits<WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0>
|
| - RenderWidgetHostHWNDTraits;
|
| -
|
| -CONTENT_EXPORT extern const wchar_t kRenderWidgetHostHWNDClass[];
|
| -
|
| -///////////////////////////////////////////////////////////////////////////////
|
| -// RenderWidgetHostViewWin
|
| -//
|
| -// An object representing the "View" of a rendered web page. This object is
|
| -// responsible for displaying the content of the web page, receiving windows
|
| -// messages, and containing plugins HWNDs. It is the implementation of the
|
| -// RenderWidgetHostView that the cross-platform RenderWidgetHost object uses
|
| -// to display the data.
|
| -//
|
| -// Comment excerpted from render_widget_host.h:
|
| -//
|
| -// "The lifetime of the RenderWidgetHostHWND is tied to the render process.
|
| -// If the render process dies, the RenderWidgetHostHWND goes away and all
|
| -// references to it must become NULL."
|
| -//
|
| -// RenderWidgetHostView class hierarchy described in render_widget_host_view.h.
|
| -class RenderWidgetHostViewWin
|
| - : public CWindowImpl<RenderWidgetHostViewWin,
|
| - CWindow,
|
| - RenderWidgetHostHWNDTraits>,
|
| - public RenderWidgetHostViewBase,
|
| - public NotificationObserver,
|
| - public BrowserAccessibilityDelegate,
|
| - public ui::GestureConsumer,
|
| - public ui::GestureEventHelper,
|
| - public ui::TextInputClient { // for Win8/metro TSF support.
|
| - public:
|
| - virtual ~RenderWidgetHostViewWin();
|
| -
|
| - CONTENT_EXPORT void CreateWnd(HWND parent);
|
| -
|
| - void AcceleratedPaint(HDC dc);
|
| -
|
| - DECLARE_WND_CLASS_EX(kRenderWidgetHostHWNDClass, CS_DBLCLKS, 0);
|
| -
|
| - BEGIN_MSG_MAP(RenderWidgetHostHWND)
|
| - MSG_WM_CREATE(OnCreate)
|
| - MSG_WM_ACTIVATE(OnActivate)
|
| - MSG_WM_DESTROY(OnDestroy)
|
| - MSG_WM_PAINT(OnPaint)
|
| - MSG_WM_NCPAINT(OnNCPaint)
|
| - MSG_WM_NCHITTEST(OnNCHitTest)
|
| - MSG_WM_ERASEBKGND(OnEraseBkgnd)
|
| - MSG_WM_SETCURSOR(OnSetCursor)
|
| - MSG_WM_SETFOCUS(OnSetFocus)
|
| - MSG_WM_KILLFOCUS(OnKillFocus)
|
| - MSG_WM_CAPTURECHANGED(OnCaptureChanged)
|
| - MSG_WM_CANCELMODE(OnCancelMode)
|
| - MSG_WM_INPUTLANGCHANGE(OnInputLangChange)
|
| - MSG_WM_THEMECHANGED(OnThemeChanged)
|
| - MSG_WM_NOTIFY(OnNotify)
|
| - MESSAGE_HANDLER(WM_IME_SETCONTEXT, OnImeSetContext)
|
| - MESSAGE_HANDLER(WM_IME_STARTCOMPOSITION, OnImeStartComposition)
|
| - MESSAGE_HANDLER(WM_IME_COMPOSITION, OnImeComposition)
|
| - MESSAGE_HANDLER(WM_IME_ENDCOMPOSITION, OnImeEndComposition)
|
| - MESSAGE_HANDLER(WM_IME_REQUEST, OnImeRequest)
|
| - MESSAGE_HANDLER(WM_MOUSEMOVE, OnMouseEvent)
|
| - MESSAGE_HANDLER(WM_MOUSELEAVE, OnMouseEvent)
|
| - MESSAGE_HANDLER(WM_LBUTTONDOWN, OnMouseEvent)
|
| - MESSAGE_HANDLER(WM_MBUTTONDOWN, OnMouseEvent)
|
| - MESSAGE_HANDLER(WM_RBUTTONDOWN, OnMouseEvent)
|
| - MESSAGE_HANDLER(WM_LBUTTONUP, OnMouseEvent)
|
| - MESSAGE_HANDLER(WM_MBUTTONUP, OnMouseEvent)
|
| - MESSAGE_HANDLER(WM_RBUTTONUP, OnMouseEvent)
|
| - MESSAGE_HANDLER(WM_LBUTTONDBLCLK, OnMouseEvent)
|
| - MESSAGE_HANDLER(WM_MBUTTONDBLCLK, OnMouseEvent)
|
| - MESSAGE_HANDLER(WM_RBUTTONDBLCLK, OnMouseEvent)
|
| - MESSAGE_HANDLER(WM_SYSKEYDOWN, OnKeyEvent)
|
| - MESSAGE_HANDLER(WM_SYSKEYUP, OnKeyEvent)
|
| - MESSAGE_HANDLER(WM_KEYDOWN, OnKeyEvent)
|
| - MESSAGE_HANDLER(WM_KEYUP, OnKeyEvent)
|
| - MESSAGE_HANDLER(WM_MOUSEWHEEL, OnWheelEvent)
|
| - MESSAGE_HANDLER(WM_MOUSEHWHEEL, OnWheelEvent)
|
| - MESSAGE_HANDLER(WM_HSCROLL, OnWheelEvent)
|
| - MESSAGE_HANDLER(WM_VSCROLL, OnWheelEvent)
|
| - MESSAGE_HANDLER(WM_CHAR, OnKeyEvent)
|
| - MESSAGE_HANDLER(WM_SYSCHAR, OnKeyEvent)
|
| - MESSAGE_HANDLER(WM_TOUCH, OnTouchEvent)
|
| - MESSAGE_HANDLER(WM_IME_CHAR, OnKeyEvent)
|
| - MESSAGE_HANDLER(WM_MOUSEACTIVATE, OnMouseActivate)
|
| - MESSAGE_HANDLER(WM_GETOBJECT, OnGetObject)
|
| - MESSAGE_HANDLER(WM_PARENTNOTIFY, OnParentNotify)
|
| - MESSAGE_HANDLER(WM_GESTURE, OnGestureEvent)
|
| - MESSAGE_HANDLER(WM_MOVE, OnMoveOrSize)
|
| - MESSAGE_HANDLER(WM_SIZE, OnMoveOrSize)
|
| - MESSAGE_HANDLER(WM_WTSSESSION_CHANGE, OnSessionChange)
|
| - END_MSG_MAP()
|
| -
|
| - // RenderWidgetHostView implementation.
|
| - virtual void InitAsChild(gfx::NativeView parent_view) OVERRIDE;
|
| - virtual RenderWidgetHost* GetRenderWidgetHost() const OVERRIDE;
|
| - virtual void SetSize(const gfx::Size& size) OVERRIDE;
|
| - virtual void SetBounds(const gfx::Rect& rect) OVERRIDE;
|
| - virtual gfx::NativeView GetNativeView() const OVERRIDE;
|
| - virtual gfx::NativeViewId GetNativeViewId() const OVERRIDE;
|
| - virtual gfx::NativeViewAccessible GetNativeViewAccessible() OVERRIDE;
|
| - virtual bool HasFocus() const OVERRIDE;
|
| - virtual bool IsSurfaceAvailableForCopy() const OVERRIDE;
|
| - virtual void Show() OVERRIDE;
|
| - virtual void Hide() OVERRIDE;
|
| - virtual bool IsShowing() OVERRIDE;
|
| - virtual gfx::Rect GetViewBounds() const OVERRIDE;
|
| - virtual void SetBackground(const SkBitmap& background) OVERRIDE;
|
| -
|
| - // Implementation of RenderWidgetHostViewPort.
|
| - virtual void InitAsPopup(RenderWidgetHostView* parent_host_view,
|
| - const gfx::Rect& pos) OVERRIDE;
|
| - virtual void InitAsFullscreen(
|
| - RenderWidgetHostView* reference_host_view) OVERRIDE;
|
| - virtual void WasShown() OVERRIDE;
|
| - virtual void WasHidden() OVERRIDE;
|
| - virtual void MovePluginWindows(
|
| - const gfx::Vector2d& scroll_offset,
|
| - const std::vector<WebPluginGeometry>& moves) OVERRIDE;
|
| - virtual void Focus() OVERRIDE;
|
| - virtual void Blur() OVERRIDE;
|
| - virtual void UpdateCursor(const WebCursor& cursor) OVERRIDE;
|
| - virtual void SetIsLoading(bool is_loading) OVERRIDE;
|
| - virtual void TextInputTypeChanged(ui::TextInputType type,
|
| - ui::TextInputMode input_mode,
|
| - bool can_compose_inline) OVERRIDE;
|
| - virtual void SelectionBoundsChanged(
|
| - const ViewHostMsg_SelectionBounds_Params& params) OVERRIDE;
|
| - virtual void ScrollOffsetChanged() OVERRIDE;
|
| - virtual void ImeCancelComposition() OVERRIDE;
|
| - virtual void ImeCompositionRangeChanged(
|
| - const gfx::Range& range,
|
| - const std::vector<gfx::Rect>& character_bounds) OVERRIDE;
|
| - virtual void DidUpdateBackingStore(
|
| - const gfx::Rect& scroll_rect,
|
| - const gfx::Vector2d& scroll_delta,
|
| - const std::vector<gfx::Rect>& copy_rects,
|
| - const std::vector<ui::LatencyInfo>& latency_info) OVERRIDE;
|
| - virtual void RenderProcessGone(base::TerminationStatus status,
|
| - int error_code) OVERRIDE;
|
| - virtual bool CanSubscribeFrame() const OVERRIDE;
|
| -
|
| - // called by WebContentsImpl before DestroyWindow
|
| - virtual void WillWmDestroy() OVERRIDE;
|
| - virtual void Destroy() OVERRIDE;
|
| - virtual void SetTooltipText(const base::string16& tooltip_text) OVERRIDE;
|
| - virtual BackingStore* AllocBackingStore(const gfx::Size& size) OVERRIDE;
|
| - virtual void CopyFromCompositingSurface(
|
| - const gfx::Rect& src_subrect,
|
| - const gfx::Size& dst_size,
|
| - const base::Callback<void(bool, const SkBitmap&)>& callback) OVERRIDE;
|
| - virtual void CopyFromCompositingSurfaceToVideoFrame(
|
| - const gfx::Rect& src_subrect,
|
| - const scoped_refptr<media::VideoFrame>& target,
|
| - const base::Callback<void(bool)>& callback) OVERRIDE;
|
| - virtual bool CanCopyToVideoFrame() const OVERRIDE;
|
| - virtual void OnAcceleratedCompositingStateChange() OVERRIDE;
|
| - virtual void AcceleratedSurfaceInitialized(int host_id,
|
| - int route_id) OVERRIDE;
|
| - virtual void ProcessAckedTouchEvent(const TouchEventWithLatencyInfo& touch,
|
| - InputEventAckState ack_result) OVERRIDE;
|
| - virtual void SetHasHorizontalScrollbar(
|
| - bool has_horizontal_scrollbar) OVERRIDE;
|
| - virtual void SetScrollOffsetPinning(
|
| - bool is_pinned_to_left, bool is_pinned_to_right) OVERRIDE;
|
| - virtual void GetScreenInfo(blink::WebScreenInfo* results) OVERRIDE;
|
| - virtual gfx::Rect GetBoundsInRootWindow() OVERRIDE;
|
| - virtual gfx::GLSurfaceHandle GetCompositingSurface() OVERRIDE;
|
| - virtual void ResizeCompositingSurface(const gfx::Size&) OVERRIDE;
|
| - virtual void AcceleratedSurfaceBuffersSwapped(
|
| - const GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params& params,
|
| - int gpu_host_id) OVERRIDE;
|
| - virtual void AcceleratedSurfacePostSubBuffer(
|
| - const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params,
|
| - int gpu_host_id) OVERRIDE;
|
| - virtual void AcceleratedSurfaceSuspend() OVERRIDE;
|
| - virtual void AcceleratedSurfaceRelease() OVERRIDE;
|
| - virtual bool HasAcceleratedSurface(const gfx::Size& desired_size) OVERRIDE;
|
| - virtual void CreateBrowserAccessibilityManagerIfNeeded() OVERRIDE;
|
| - virtual bool LockMouse() OVERRIDE;
|
| - virtual void UnlockMouse() OVERRIDE;
|
| - virtual void SetClickthroughRegion(SkRegion* region) OVERRIDE;
|
| -
|
| - // Implementation of NotificationObserver:
|
| - virtual void Observe(int type,
|
| - const NotificationSource& source,
|
| - const NotificationDetails& details) OVERRIDE;
|
| -
|
| - // Implementation of BrowserAccessibilityDelegate:
|
| - virtual void SetAccessibilityFocus(int acc_obj_id) OVERRIDE;
|
| - virtual void AccessibilityDoDefaultAction(int acc_obj_id) OVERRIDE;
|
| - virtual void AccessibilityScrollToMakeVisible(
|
| - int acc_obj_id, gfx::Rect subfocus) OVERRIDE;
|
| - virtual void AccessibilityScrollToPoint(
|
| - int acc_obj_id, gfx::Point point) OVERRIDE;
|
| - virtual void AccessibilitySetTextSelection(
|
| - int acc_obj_id, int start_offset, int end_offset) OVERRIDE;
|
| - virtual gfx::Point GetLastTouchEventLocation() const OVERRIDE;
|
| - virtual void FatalAccessibilityTreeError() OVERRIDE;
|
| -
|
| - // Overridden from ui::GestureEventHelper.
|
| - virtual bool CanDispatchToConsumer(ui::GestureConsumer* consumer) OVERRIDE;
|
| - virtual void DispatchPostponedGestureEvent(ui::GestureEvent* event) OVERRIDE;
|
| - virtual void DispatchCancelTouchEvent(ui::TouchEvent* event) OVERRIDE;
|
| -
|
| - // Overridden from ui::TextInputClient for Win8/metro TSF support.
|
| - // Following methods are not used in existing IMM32 related implementation.
|
| - virtual void SetCompositionText(
|
| - const ui::CompositionText& composition) OVERRIDE;
|
| - virtual void ConfirmCompositionText() OVERRIDE;
|
| - virtual void ClearCompositionText() OVERRIDE;
|
| - virtual void InsertText(const base::string16& text) OVERRIDE;
|
| - virtual void InsertChar(base::char16 ch, int flags) OVERRIDE;
|
| - virtual gfx::NativeWindow GetAttachedWindow() const OVERRIDE;
|
| - virtual ui::TextInputType GetTextInputType() const OVERRIDE;
|
| - virtual ui::TextInputMode GetTextInputMode() const OVERRIDE;
|
| - virtual bool CanComposeInline() const OVERRIDE;
|
| - virtual gfx::Rect GetCaretBounds() const OVERRIDE;
|
| - virtual bool GetCompositionCharacterBounds(uint32 index,
|
| - gfx::Rect* rect) const OVERRIDE;
|
| - virtual bool HasCompositionText() const OVERRIDE;
|
| - virtual bool GetTextRange(gfx::Range* range) const OVERRIDE;
|
| - virtual bool GetCompositionTextRange(gfx::Range* range) const OVERRIDE;
|
| - virtual bool GetSelectionRange(gfx::Range* range) const OVERRIDE;
|
| - virtual bool SetSelectionRange(const gfx::Range& range) OVERRIDE;
|
| - virtual bool DeleteRange(const gfx::Range& range) OVERRIDE;
|
| - virtual bool GetTextFromRange(const gfx::Range& range,
|
| - base::string16* text) const OVERRIDE;
|
| - virtual void OnInputMethodChanged() OVERRIDE;
|
| - virtual bool ChangeTextDirectionAndLayoutAlignment(
|
| - base::i18n::TextDirection direction) OVERRIDE;
|
| - virtual void ExtendSelectionAndDelete(size_t before, size_t after) OVERRIDE;
|
| - virtual void EnsureCaretInRect(const gfx::Rect& rect) OVERRIDE;
|
| - virtual void OnCandidateWindowShown() OVERRIDE;
|
| - virtual void OnCandidateWindowUpdated() OVERRIDE;
|
| - virtual void OnCandidateWindowHidden() OVERRIDE;
|
| -
|
| - protected:
|
| - friend class RenderWidgetHostView;
|
| -
|
| - // Should construct only via RenderWidgetHostView::CreateViewForWidget.
|
| - //
|
| - // The view will associate itself with the given widget.
|
| - explicit RenderWidgetHostViewWin(RenderWidgetHost* widget);
|
| -
|
| - // Windows Message Handlers
|
| - LRESULT OnCreate(CREATESTRUCT* create_struct);
|
| - void OnActivate(UINT, BOOL, HWND);
|
| - void OnDestroy();
|
| - void OnPaint(HDC unused_dc);
|
| - void OnNCPaint(HRGN update_region);
|
| - LRESULT OnNCHitTest(const CPoint& pt);
|
| - LRESULT OnEraseBkgnd(HDC dc);
|
| - LRESULT OnSetCursor(HWND window, UINT hittest_code, UINT mouse_message_id);
|
| - void OnSetFocus(HWND window);
|
| - void OnKillFocus(HWND window);
|
| - void OnCaptureChanged(HWND window);
|
| - void OnCancelMode();
|
| - void OnInputLangChange(DWORD character_set, HKL input_language_id);
|
| - void OnThemeChanged();
|
| - LRESULT OnNotify(int w_param, NMHDR* header);
|
| - LRESULT OnImeSetContext(
|
| - UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
|
| - LRESULT OnImeStartComposition(
|
| - UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
|
| - LRESULT OnImeComposition(
|
| - UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
|
| - LRESULT OnImeEndComposition(
|
| - UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
|
| - LRESULT OnImeRequest(
|
| - UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
|
| - LRESULT OnMouseEvent(
|
| - UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
|
| - LRESULT OnKeyEvent(
|
| - UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
|
| - LRESULT OnWheelEvent(
|
| - UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
|
| - LRESULT OnTouchEvent(
|
| - UINT message, WPARAM wparam, LPARAM lparam, BOOL& handled);
|
| - LRESULT OnMouseActivate(UINT message,
|
| - WPARAM wparam,
|
| - LPARAM lparam,
|
| - BOOL& handled);
|
| - // Handle MSAA requests for accessibility information.
|
| - LRESULT OnGetObject(UINT message, WPARAM wparam, LPARAM lparam,
|
| - BOOL& handled);
|
| - // Handle vertical scrolling.
|
| - LRESULT OnVScroll(int code, short position, HWND scrollbar_control);
|
| - // Handle horizontal scrolling.
|
| - LRESULT OnHScroll(int code, short position, HWND scrollbar_control);
|
| -
|
| - LRESULT OnParentNotify(UINT message, WPARAM wparam, LPARAM lparam,
|
| - BOOL& handled);
|
| -
|
| - // Handle high-level touch events.
|
| - LRESULT OnGestureEvent(UINT message, WPARAM wparam, LPARAM lparam,
|
| - BOOL& handled);
|
| - LRESULT OnMoveOrSize(UINT message, WPARAM wparam, LPARAM lparam,
|
| - BOOL& handled);
|
| -
|
| - // Handle transitioning in and out of screensaver mode.
|
| - LRESULT OnSessionChange(UINT message,
|
| - WPARAM wparam,
|
| - LPARAM lparam,
|
| - BOOL& handled);
|
| -
|
| - void OnFinalMessage(HWND window);
|
| -
|
| - private:
|
| - FRIEND_TEST_ALL_PREFIXES(RenderWidgetHostViewWinBrowserTest,
|
| - TextInputTypeChanged);
|
| -
|
| - // Updates the display cursor to the current cursor if the cursor is over this
|
| - // render view.
|
| - void UpdateCursorIfOverSelf();
|
| -
|
| - // Tells Windows that we want to hear about mouse exit messages.
|
| - void TrackMouseLeave(bool start_tracking);
|
| -
|
| - // Sends a message to the RenderView in the renderer process.
|
| - bool Send(IPC::Message* message);
|
| -
|
| - // Set the tooltip region to the size of the window, creating the tooltip
|
| - // hwnd if it has not been created yet.
|
| - void EnsureTooltip();
|
| -
|
| - // Tooltips become invalid when the root ancestor changes. When the View
|
| - // becomes hidden, this method is called to reset the tooltip.
|
| - void ResetTooltip();
|
| -
|
| - // Builds and forwards a WebKitGestureEvent to the renderer.
|
| - bool ForwardGestureEventToRenderer(
|
| - ui::GestureEvent* gesture);
|
| -
|
| - // Process all of the given gestures (passes them on to renderer)
|
| - void ProcessGestures(ui::GestureRecognizer::Gestures* gestures);
|
| -
|
| - // Sends the specified mouse event to the renderer.
|
| - void ForwardMouseEventToRenderer(UINT message, WPARAM wparam, LPARAM lparam);
|
| -
|
| - // Synthesize mouse wheel event.
|
| - LRESULT SynthesizeMouseWheel(bool is_vertical, int scroll_code,
|
| - short scroll_position);
|
| -
|
| - // Shuts down the render_widget_host_. This is a separate function so we can
|
| - // invoke it from the message loop.
|
| - void ShutdownHost();
|
| -
|
| - // Redraws the window synchronously, and any child windows (i.e. plugins)
|
| - // asynchronously.
|
| - void Redraw();
|
| -
|
| - // Draw our background over the given HDC in the given |rect|. The background
|
| - // will be tiled such that it lines up with existing tiles starting from the
|
| - // origin of |dc|.
|
| - void DrawBackground(const RECT& rect, CPaintDC* dc);
|
| -
|
| - // Clean up the compositor window, if needed.
|
| - void CleanupCompositorWindow();
|
| -
|
| - // Whether the window should be activated.
|
| - bool IsActivatable() const;
|
| -
|
| - // Do initialization needed by both InitAsPopup() and InitAsFullscreen().
|
| - void DoPopupOrFullscreenInit(HWND parent_hwnd,
|
| - const gfx::Rect& pos,
|
| - DWORD ex_style);
|
| -
|
| - CPoint GetClientCenter() const;
|
| - // In mouse lock mode, moves the mouse cursor to the center of the view if it
|
| - // is too close to the border.
|
| - void MoveCursorToCenterIfNecessary();
|
| -
|
| - void HandleLockedMouseEvent(UINT message, WPARAM wparam, LPARAM lparam);
|
| -
|
| - LRESULT OnDocumentFeed(RECONVERTSTRING* reconv);
|
| - LRESULT OnReconvertString(RECONVERTSTRING* reconv);
|
| - LRESULT OnQueryCharPosition(IMECHARPOSITION* position);
|
| -
|
| - // Sets the appropriate mode for raw-touches or gestures. Currently touch mode
|
| - // will only take effect on Win7+.
|
| - void UpdateDesiredTouchMode();
|
| -
|
| - // Configures the enable/disable state of |ime_input_| to match with the
|
| - // current |text_input_type_|.
|
| - void UpdateIMEState();
|
| -
|
| - // Returns bounds of the view in pixels.
|
| - gfx::Rect GetPixelBounds() const;
|
| -
|
| - // Sets the appropriate input scope for given |text_input_type| if TSF-aware
|
| - // is not required. Does nothing if TSF-aware is required (and TSF text store
|
| - // is responsible for managing input scope). Currently input scope will only
|
| - // take effect on Vista+.
|
| - void UpdateInputScopeIfNecessary(ui::TextInputType text_input_type);
|
| -
|
| - // The associated Model. While |this| is being Destroyed,
|
| - // |render_widget_host_| is NULL and the Windows message loop is run one last
|
| - // time. Message handlers must check for a NULL |render_widget_host_|.
|
| - RenderWidgetHostImpl* render_widget_host_;
|
| -
|
| - // When we are doing accelerated compositing
|
| - HWND compositor_host_window_;
|
| -
|
| - // Presents a texture received from another process to the compositing
|
| - // window.
|
| - scoped_ptr<AcceleratedSurface> accelerated_surface_;
|
| -
|
| - // true if the compositor host window must be hidden after the
|
| - // software renderered view is updated.
|
| - bool hide_compositor_window_at_next_paint_;
|
| -
|
| - // The cursor for the page. This is passed up from the renderer.
|
| - WebCursor current_cursor_;
|
| -
|
| - // Indicates if the page is loading.
|
| - bool is_loading_;
|
| -
|
| - // true if we are currently tracking WM_MOUSEEXIT messages.
|
| - bool track_mouse_leave_;
|
| -
|
| - // Wrapper class for IMM32 APIs.
|
| - // (See "ui/base/ime/win/imm32_manager.h" for its details.)
|
| - scoped_ptr<ui::IMM32Manager> imm32_manager_;
|
| -
|
| - // Represents whether or not this browser process is receiving status
|
| - // messages about the focused edit control from a renderer process.
|
| - bool ime_notification_;
|
| -
|
| - // true if Enter was hit when render widget host was in focus.
|
| - bool capture_enter_key_;
|
| -
|
| - // The touch-state. Its touch-points are updated as necessary. A new
|
| - // touch-point is added from an TOUCHEVENTF_DOWN message, and a touch-point
|
| - // is removed from the list on an TOUCHEVENTF_UP message.
|
| - scoped_ptr<WebTouchState> touch_state_;
|
| -
|
| - // True if we're in the midst of a paint operation and should respond to
|
| - // DidPaintRect() notifications by merely invalidating. See comments on
|
| - // render_widget_host_view.h:DidPaintRect().
|
| - bool about_to_validate_and_paint_;
|
| -
|
| - // true if the View should be closed when its HWND is deactivated (used to
|
| - // support SELECT popups which are closed when they are deactivated).
|
| - bool close_on_deactivate_;
|
| -
|
| - // Whether Destroy() has been called. Used to detect a crasher
|
| - // (http://crbug.com/24248) where render_view_host_ has been deleted when
|
| - // OnFinalMessage is called.
|
| - bool being_destroyed_;
|
| -
|
| - // Tooltips
|
| - // The text to be shown in the tooltip, supplied by the renderer.
|
| - base::string16 tooltip_text_;
|
| - // The tooltip control hwnd
|
| - HWND tooltip_hwnd_;
|
| - // Whether or not a tooltip is currently visible. We use this to track
|
| - // whether or not we want to force-close the tooltip when we receive mouse
|
| - // move notifications from the renderer. See comment in OnMsgSetTooltipText.
|
| - bool tooltip_showing_;
|
| -
|
| - // Factory used to safely scope delayed calls to ShutdownHost().
|
| - base::WeakPtrFactory<RenderWidgetHostViewWin> weak_factory_;
|
| -
|
| - // The time at which this view started displaying white pixels as a result of
|
| - // not having anything to paint (empty backing store from renderer). This
|
| - // value returns true for is_null() if we are not recording whiteout times.
|
| - base::TimeTicks whiteout_start_time_;
|
| -
|
| - // The time it took after this view was selected for it to be fully painted.
|
| - base::TimeTicks web_contents_switch_paint_time_;
|
| -
|
| - // Registrar so we can listen to RENDERER_PROCESS_TERMINATED events.
|
| - NotificationRegistrar registrar_;
|
| -
|
| - // Stores the current text input type received by TextInputStateChanged()
|
| - // method.
|
| - ui::TextInputType text_input_type_;
|
| - ui::TextInputMode text_input_mode_;
|
| - bool can_compose_inline_;
|
| -
|
| - ScopedVector<ui::ViewProp> props_;
|
| -
|
| - // Is the widget fullscreen?
|
| - bool is_fullscreen_;
|
| -
|
| - // Used to record the last position of the mouse.
|
| - struct {
|
| - // While the mouse is locked, |unlocked| and |unlocked_global| store the
|
| - // last known position just as mouse lock was entered.
|
| - // Relative to the upper-left corner of the view.
|
| - gfx::Point unlocked;
|
| - // Relative to the upper-left corner of the screen.
|
| - gfx::Point unlocked_global;
|
| -
|
| - // Only valid while the mouse is locked.
|
| - gfx::Point locked_global;
|
| - } last_mouse_position_;
|
| -
|
| - // When the mouse cursor is moved to the center of the view by
|
| - // MoveCursorToCenterIfNecessary(), we ignore the resulting WM_MOUSEMOVE
|
| - // message.
|
| - struct {
|
| - bool pending;
|
| - // Relative to the upper-left corner of the screen.
|
| - gfx::Point target;
|
| - } move_to_center_request_;
|
| -
|
| - // In the case of the mouse being moved away from the view and then moved
|
| - // back, we regard the mouse movement as (0, 0).
|
| - bool ignore_mouse_movement_;
|
| -
|
| - gfx::Range composition_range_;
|
| -
|
| - // The current composition character bounds.
|
| - std::vector<gfx::Rect> composition_character_bounds_;
|
| -
|
| - // A cached latest caret rectangle sent from renderer.
|
| - gfx::Rect caret_rect_;
|
| -
|
| - // TODO(ananta): The pointer and touch related members should be moved to an
|
| - // independent class to reduce the clutter. This includes members
|
| - // pointer_down_context_ and last_touch_location_.
|
| -
|
| - // Set to true if we are in the context of a pointer down message.
|
| - bool pointer_down_context_;
|
| -
|
| - // The global x, y coordinates of the last point a touch event was
|
| - // received, used to determine if it's okay to open the on-screen
|
| - // keyboard. Reset when the window loses focus.
|
| - gfx::Point last_touch_location_;
|
| -
|
| - // Region in which the view will be transparent to clicks.
|
| - scoped_ptr<SkRegion> transparent_region_;
|
| -
|
| - // Are touch events currently enabled?
|
| - bool touch_events_enabled_;
|
| -
|
| - scoped_ptr<ui::GestureRecognizer> gesture_recognizer_;
|
| -
|
| - // The OS-provided default IAccessible instance for our hwnd.
|
| - base::win::ScopedComPtr<IAccessible> window_iaccessible_;
|
| -
|
| - std::vector<ui::LatencyInfo> software_latency_info_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(RenderWidgetHostViewWin);
|
| -};
|
| -
|
| -} // namespace content
|
| -
|
| -#endif // CONTENT_BROWSER_RENDERER_HOST_RENDER_WIDGET_HOST_VIEW_WIN_H_
|
|
|