~oxide-developers/oxide/1.2

« back to all changes in this revision

Viewing changes to oxide/browser/oxide_web_contents_view.h

  • Committer: Chris Coulson
  • Date: 2013-07-23 11:40:24 UTC
  • Revision ID: chris.coulson@canonical.com-20130723114024-p7z00cs9p0s5te6e
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// vim:expandtab:shiftwidth=2:tabstop=2:
 
2
// Copyright (C) 2013 Canonical Ltd.
 
3
 
 
4
// This library is free software; you can redistribute it and/or
 
5
// modify it under the terms of the GNU Lesser General Public
 
6
// License as published by the Free Software Foundation; either
 
7
// version 2.1 of the License, or (at your option) any later version.
 
8
 
 
9
// This library is distributed in the hope that it will be useful,
 
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
12
// Lesser General Public License for more details.
 
13
 
 
14
// You should have received a copy of the GNU Lesser General Public
 
15
// License along with this library; if not, write to the Free Software
 
16
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
17
 
 
18
#ifndef _OXIDE_BROWSER_WEB_CONTENTS_VIEW_H_
 
19
#define _OXIDE_BROWSER_WEB_CONTENTS_VIEW_H_
 
20
 
 
21
#include "base/basictypes.h"
 
22
#include "base/compiler_specific.h"
 
23
#include "content/port/browser/render_view_host_delegate_view.h"
 
24
#include "content/port/browser/web_contents_view_port.h"
 
25
#include "ui/gfx/size.h"
 
26
 
 
27
namespace content {
 
28
class WebContents;
 
29
}
 
30
 
 
31
namespace oxide {
 
32
 
 
33
class WebContentsViewDelegate;
 
34
 
 
35
class WebContentsView FINAL : public content::WebContentsViewPort,
 
36
                              public content::RenderViewHostDelegateView {
 
37
 public:
 
38
  ~WebContentsView();
 
39
  WebContentsView(content::WebContents* web_contents);
 
40
 
 
41
  void CreateView(const gfx::Size& initial_size,
 
42
                  gfx::NativeView context) FINAL;
 
43
  content::RenderWidgetHostView* CreateViewForWidget(
 
44
      content::RenderWidgetHost* render_widget_host) FINAL;
 
45
  content::RenderWidgetHostView* CreateViewForPopupWidget(
 
46
      content::RenderWidgetHost* render_widget_host) FINAL;
 
47
 
 
48
  void SetPageTitle(const string16& title) FINAL;
 
49
 
 
50
  void RenderViewCreated(content::RenderViewHost* host) FINAL;
 
51
  void RenderViewSwappedIn(content::RenderViewHost* host) FINAL;
 
52
 
 
53
  void SetOverscrollControllerEnabled(bool enabled) FINAL;
 
54
 
 
55
  gfx::NativeView GetNativeView() const FINAL;
 
56
  gfx::NativeView GetContentNativeView() const FINAL;
 
57
  gfx::NativeWindow GetTopLevelNativeWindow() const FINAL;
 
58
 
 
59
  void GetContainerBounds(gfx::Rect* out) const FINAL;
 
60
 
 
61
  void OnTabCrashed(base::TerminationStatus status, int error_code) FINAL;
 
62
 
 
63
  void SizeContents(const gfx::Size& size) FINAL;
 
64
 
 
65
  void Focus() FINAL;
 
66
  void SetInitialFocus() FINAL;
 
67
  void StoreFocus() FINAL;
 
68
  void RestoreFocus() FINAL;
 
69
 
 
70
  content::DropData* GetDropData() const FINAL;
 
71
 
 
72
  gfx::Rect GetViewBounds() const FINAL;
 
73
 
 
74
  void ShowPopupMenu(const gfx::Rect& bounds,
 
75
                     int item_height,
 
76
                     double item_font_size,
 
77
                     int selected_item,
 
78
                     const std::vector<WebMenuItem>& items,
 
79
                     bool right_aligned,
 
80
                     bool allow_multiple_selection) FINAL;
 
81
 
 
82
  void SetDelegate(WebContentsViewDelegate* delegate);
 
83
 
 
84
 private:
 
85
  content::WebContents* web_contents_;
 
86
  WebContentsViewDelegate* delegate_;
 
87
  gfx::Size requested_size_;
 
88
 
 
89
  DISALLOW_IMPLICIT_CONSTRUCTORS(WebContentsView);
 
90
};
 
91
 
 
92
} // namespace oxide
 
93
 
 
94
#endif // _OXIDE_BROWSER_WEB_CONTENTS_VIEW_H_