1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_TEST_TEST_WEB_CONTENTS_VIEW_H_
6#define CONTENT_TEST_TEST_WEB_CONTENTS_VIEW_H_
7
8#include "base/compiler_specific.h"
9#include "content/port/browser/render_view_host_delegate_view.h"
10#include "content/port/browser/web_contents_view_port.h"
11
12namespace content {
13
14class TestWebContentsView : public WebContentsViewPort,
15                            public RenderViewHostDelegateView {
16 public:
17  TestWebContentsView();
18  virtual ~TestWebContentsView();
19
20  // RenderViewHostDelegateView:
21  virtual void ShowPopupMenu(const gfx::Rect& bounds,
22                             int item_height,
23                             double item_font_size,
24                             int selected_item,
25                             const std::vector<MenuItem>& items,
26                             bool right_aligned,
27                             bool allow_multiple_selection) OVERRIDE;
28  virtual void StartDragging(const DropData& drop_data,
29                             blink::WebDragOperationsMask allowed_ops,
30                             const gfx::ImageSkia& image,
31                             const gfx::Vector2d& image_offset,
32                             const DragEventSourceInfo& event_info) OVERRIDE;
33  virtual void UpdateDragCursor(blink::WebDragOperation operation) OVERRIDE;
34  virtual void GotFocus() OVERRIDE;
35  virtual void TakeFocus(bool reverse) OVERRIDE;
36
37  // WebContentsView:
38  virtual gfx::NativeView GetNativeView() const OVERRIDE;
39  virtual gfx::NativeView GetContentNativeView() const OVERRIDE;
40  virtual gfx::NativeWindow GetTopLevelNativeWindow() const OVERRIDE;
41  virtual void GetContainerBounds(gfx::Rect *out) const OVERRIDE;
42  virtual void OnTabCrashed(base::TerminationStatus status,
43                            int error_code) OVERRIDE;
44  virtual void SizeContents(const gfx::Size& size) OVERRIDE;
45  virtual void Focus() OVERRIDE;
46  virtual void SetInitialFocus() OVERRIDE;
47  virtual void StoreFocus() OVERRIDE;
48  virtual void RestoreFocus() OVERRIDE;
49  virtual DropData* GetDropData() const OVERRIDE;
50  virtual gfx::Rect GetViewBounds() const OVERRIDE;
51#if defined(OS_MACOSX)
52  virtual void SetAllowOverlappingViews(bool overlapping) OVERRIDE;
53  virtual bool GetAllowOverlappingViews() const OVERRIDE;
54  virtual void SetOverlayView(WebContentsView* overlay,
55                              const gfx::Point& offset) OVERRIDE;
56  virtual void RemoveOverlayView() OVERRIDE;
57#endif
58
59  // WebContentsViewPort:
60  virtual void CreateView(const gfx::Size& initial_size,
61                          gfx::NativeView context) OVERRIDE;
62  virtual RenderWidgetHostView* CreateViewForWidget(
63      RenderWidgetHost* render_widget_host) OVERRIDE;
64  virtual RenderWidgetHostView* CreateViewForPopupWidget(
65      RenderWidgetHost* render_widget_host) OVERRIDE;
66  virtual void SetPageTitle(const base::string16& title) OVERRIDE;
67  virtual void RenderViewCreated(RenderViewHost* host) OVERRIDE;
68  virtual void RenderViewSwappedIn(RenderViewHost* host) OVERRIDE;
69  virtual void SetOverscrollControllerEnabled(bool enabled) OVERRIDE;
70#if defined(OS_MACOSX)
71  virtual bool IsEventTracking() const OVERRIDE;
72  virtual void CloseTabAfterEventTracking() OVERRIDE;
73#endif
74
75 private:
76  DISALLOW_COPY_AND_ASSIGN(TestWebContentsView);
77};
78
79}  // namespace content
80
81#endif  // CONTENT_TEST_TEST_WEB_CONTENTS_VIEW_H_
82