1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be
3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file.
4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#ifndef CHROME_BROWSER_UI_VIEWS_TAB_CONTENTS_NATIVE_TAB_CONTENTS_VIEW_H_
6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#define CHROME_BROWSER_UI_VIEWS_TAB_CONTENTS_NATIVE_TAB_CONTENTS_VIEW_H_
7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#pragma once
8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include <string>
10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "third_party/WebKit/Source/WebKit/chromium/public/WebDragOperation.h"
12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "ui/gfx/native_widget_types.h"
13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass RenderWidgetHost;
15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass RenderWidgetHostView;
16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenstruct WebDropData;
17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace gfx {
18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass Point;
19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace internal {
21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass NativeTabContentsViewDelegate;
22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace views {
24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass NativeWidget;
25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen}
26ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
27ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenclass NativeTabContentsView {
28ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen public:
29ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual ~NativeTabContentsView() {}
30ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
31ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  static NativeTabContentsView* CreateNativeTabContentsView(
32ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      internal::NativeTabContentsViewDelegate* delegate);
33ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
34ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void InitNativeTabContentsView() = 0;
35ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
36ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void Unparent() = 0;
37ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
38ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual RenderWidgetHostView* CreateRenderWidgetHostView(
39ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen      RenderWidgetHost* render_widget_host) = 0;
40ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
41ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual gfx::NativeWindow GetTopLevelNativeWindow() const = 0;
42ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
43ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void SetPageTitle(const std::wstring& title) = 0;
44ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
45ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void StartDragging(const WebDropData& drop_data,
46ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                             WebKit::WebDragOperationsMask ops,
47ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                             const SkBitmap& image,
48ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen                             const gfx::Point& image_offset) = 0;
49ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void CancelDrag() = 0;
50ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual bool IsDoingDrag() const = 0;
51ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual void SetDragCursor(WebKit::WebDragOperation operation) = 0;
52ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
53ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen  virtual views::NativeWidget* AsNativeWidget() = 0;
54ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen};
55ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen
56ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#endif  // CHROME_BROWSER_UI_VIEWS_TAB_CONTENTS_NATIVE_TAB_CONTENTS_VIEW_H_
57