Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(296)

Side by Side Diff: content/browser/web_contents/web_contents_view_gtk.cc

Issue 11231077: Move a bunch more code into the content namespace. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/web_contents/web_contents_view_gtk.h" 5 #include "content/browser/web_contents/web_contents_view_gtk.h"
6 6
7 #include <gdk/gdk.h> 7 #include <gdk/gdk.h>
8 #include <gdk/gdkkeysyms.h> 8 #include <gdk/gdkkeysyms.h>
9 #include <gtk/gtk.h> 9 #include <gtk/gtk.h>
10 10
(...skipping 13 matching lines...) Expand all
24 #include "content/public/browser/web_contents_view_delegate.h" 24 #include "content/public/browser/web_contents_view_delegate.h"
25 #include "ui/base/gtk/gtk_expanded_container.h" 25 #include "ui/base/gtk/gtk_expanded_container.h"
26 #include "ui/gfx/image/image_skia.h" 26 #include "ui/gfx/image/image_skia.h"
27 #include "ui/gfx/point.h" 27 #include "ui/gfx/point.h"
28 #include "ui/gfx/rect.h" 28 #include "ui/gfx/rect.h"
29 #include "ui/gfx/size.h" 29 #include "ui/gfx/size.h"
30 #include "webkit/glue/webdropdata.h" 30 #include "webkit/glue/webdropdata.h"
31 31
32 using WebKit::WebDragOperation; 32 using WebKit::WebDragOperation;
33 using WebKit::WebDragOperationsMask; 33 using WebKit::WebDragOperationsMask;
34 using content::RenderWidgetHost;
35 using content::WebContents;
36 34
35 namespace content {
37 namespace { 36 namespace {
38 37
39 // Called when the mouse leaves the widget. We notify our delegate. 38 // Called when the mouse leaves the widget. We notify our delegate.
40 gboolean OnLeaveNotify(GtkWidget* widget, GdkEventCrossing* event, 39 gboolean OnLeaveNotify(GtkWidget* widget, GdkEventCrossing* event,
41 WebContentsImpl* web_contents) { 40 WebContentsImpl* web_contents) {
42 if (web_contents->GetDelegate()) 41 if (web_contents->GetDelegate())
43 web_contents->GetDelegate()->ContentsMouseEvent( 42 web_contents->GetDelegate()->ContentsMouseEvent(
44 web_contents, gfx::Point(event->x_root, event->y_root), false); 43 web_contents, gfx::Point(event->x_root, event->y_root), false);
45 return FALSE; 44 return FALSE;
46 } 45 }
47 46
48 // Called when the mouse moves within the widget. We notify our delegate. 47 // Called when the mouse moves within the widget. We notify our delegate.
49 gboolean OnMouseMove(GtkWidget* widget, GdkEventMotion* event, 48 gboolean OnMouseMove(GtkWidget* widget, GdkEventMotion* event,
50 WebContentsImpl* web_contents) { 49 WebContentsImpl* web_contents) {
51 if (web_contents->GetDelegate()) 50 if (web_contents->GetDelegate())
52 web_contents->GetDelegate()->ContentsMouseEvent( 51 web_contents->GetDelegate()->ContentsMouseEvent(
53 web_contents, gfx::Point(event->x_root, event->y_root), true); 52 web_contents, gfx::Point(event->x_root, event->y_root), true);
54 return FALSE; 53 return FALSE;
55 } 54 }
56 55
57 // See tab_contents_view_views.cc for discussion of mouse scroll zooming. 56 // See tab_contents_view_views.cc for discussion of mouse scroll zooming.
58 gboolean OnMouseScroll(GtkWidget* widget, GdkEventScroll* event, 57 gboolean OnMouseScroll(GtkWidget* widget, GdkEventScroll* event,
59 WebContentsImpl* web_contents) { 58 WebContentsImpl* web_contents) {
60 if ((event->state & gtk_accelerator_get_default_mod_mask()) != 59 if ((event->state & gtk_accelerator_get_default_mod_mask()) !=
61 GDK_CONTROL_MASK) { 60 GDK_CONTROL_MASK) {
62 return FALSE; 61 return FALSE;
63 } 62 }
64 63
65 content::WebContentsDelegate* delegate = web_contents->GetDelegate(); 64 WebContentsDelegate* delegate = web_contents->GetDelegate();
66 if (!delegate) 65 if (!delegate)
67 return FALSE; 66 return FALSE;
68 67
69 if (!(event->direction == GDK_SCROLL_DOWN || 68 if (!(event->direction == GDK_SCROLL_DOWN ||
70 event->direction == GDK_SCROLL_UP)) { 69 event->direction == GDK_SCROLL_UP)) {
71 return FALSE; 70 return FALSE;
72 } 71 }
73 72
74 delegate->ContentsZoomChange(event->direction == GDK_SCROLL_UP); 73 delegate->ContentsZoomChange(event->direction == GDK_SCROLL_UP);
75 return TRUE; 74 return TRUE;
76 } 75 }
77 76
78 } // namespace 77 } // namespace
79 78
80 namespace content {
81
82 WebContentsView* CreateWebContentsView( 79 WebContentsView* CreateWebContentsView(
83 WebContentsImpl* web_contents, 80 WebContentsImpl* web_contents,
84 WebContentsViewDelegate* delegate, 81 WebContentsViewDelegate* delegate,
85 RenderViewHostDelegateView** render_view_host_delegate_view) { 82 RenderViewHostDelegateView** render_view_host_delegate_view) {
86 WebContentsViewGtk* rv = new WebContentsViewGtk(web_contents, delegate); 83 WebContentsViewGtk* rv = new WebContentsViewGtk(web_contents, delegate);
87 *render_view_host_delegate_view = rv; 84 *render_view_host_delegate_view = rv;
88 return rv; 85 return rv;
89 } 86 }
90 87
91 WebContentsViewGtk::WebContentsViewGtk( 88 WebContentsViewGtk::WebContentsViewGtk(
92 WebContentsImpl* web_contents, 89 WebContentsImpl* web_contents,
93 content::WebContentsViewDelegate* delegate) 90 WebContentsViewDelegate* delegate)
94 : web_contents_(web_contents), 91 : web_contents_(web_contents),
95 expanded_(gtk_expanded_container_new()), 92 expanded_(gtk_expanded_container_new()),
96 delegate_(delegate) { 93 delegate_(delegate) {
97 gtk_widget_set_name(expanded_.get(), "chrome-web-contents-view"); 94 gtk_widget_set_name(expanded_.get(), "chrome-web-contents-view");
98 g_signal_connect(expanded_.get(), "size-allocate", 95 g_signal_connect(expanded_.get(), "size-allocate",
99 G_CALLBACK(OnSizeAllocateThunk), this); 96 G_CALLBACK(OnSizeAllocateThunk), this);
100 g_signal_connect(expanded_.get(), "child-size-request", 97 g_signal_connect(expanded_.get(), "child-size-request",
101 G_CALLBACK(OnChildSizeRequestThunk), this); 98 G_CALLBACK(OnChildSizeRequestThunk), this);
102 99
103 gtk_widget_show(expanded_.get()); 100 gtk_widget_show(expanded_.get());
104 drag_source_.reset(new content::WebDragSourceGtk(web_contents)); 101 drag_source_.reset(new WebDragSourceGtk(web_contents));
105 102
106 if (delegate_.get()) 103 if (delegate_.get())
107 delegate_->Initialize(expanded_.get(), &focus_store_); 104 delegate_->Initialize(expanded_.get(), &focus_store_);
108 } 105 }
109 106
110 WebContentsViewGtk::~WebContentsViewGtk() { 107 WebContentsViewGtk::~WebContentsViewGtk() {
111 expanded_.Destroy(); 108 expanded_.Destroy();
112 } 109 }
113 110
114 void WebContentsViewGtk::CreateView(const gfx::Size& initial_size) { 111 void WebContentsViewGtk::CreateView(const gfx::Size& initial_size) {
(...skipping 21 matching lines...) Expand all
136 G_CALLBACK(OnLeaveNotify), web_contents_); 133 G_CALLBACK(OnLeaveNotify), web_contents_);
137 g_signal_connect(content_view, "motion-notify-event", 134 g_signal_connect(content_view, "motion-notify-event",
138 G_CALLBACK(OnMouseMove), web_contents_); 135 G_CALLBACK(OnMouseMove), web_contents_);
139 g_signal_connect(content_view, "scroll-event", 136 g_signal_connect(content_view, "scroll-event",
140 G_CALLBACK(OnMouseScroll), web_contents_); 137 G_CALLBACK(OnMouseScroll), web_contents_);
141 gtk_widget_add_events(content_view, GDK_LEAVE_NOTIFY_MASK | 138 gtk_widget_add_events(content_view, GDK_LEAVE_NOTIFY_MASK |
142 GDK_POINTER_MOTION_MASK); 139 GDK_POINTER_MOTION_MASK);
143 InsertIntoContentArea(content_view); 140 InsertIntoContentArea(content_view);
144 141
145 // Renderer target DnD. 142 // Renderer target DnD.
146 drag_dest_.reset(new content::WebDragDestGtk(web_contents_, content_view)); 143 drag_dest_.reset(new WebDragDestGtk(web_contents_, content_view));
147 144
148 if (delegate_.get()) 145 if (delegate_.get())
149 drag_dest_->set_delegate(delegate_->GetDragDestDelegate()); 146 drag_dest_->set_delegate(delegate_->GetDragDestDelegate());
150 147
151 return view; 148 return view;
152 } 149 }
153 150
154 gfx::NativeView WebContentsViewGtk::GetNativeView() const { 151 gfx::NativeView WebContentsViewGtk::GetNativeView() const {
155 if (delegate_.get()) 152 if (delegate_.get())
156 return delegate_->GetNativeView(); 153 return delegate_->GetNativeView();
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 void WebContentsViewGtk::SizeContents(const gfx::Size& size) { 203 void WebContentsViewGtk::SizeContents(const gfx::Size& size) {
207 // We don't need to manually set the size of of widgets in GTK+, but we do 204 // We don't need to manually set the size of of widgets in GTK+, but we do
208 // need to pass the sizing information on to the RWHV which will pass the 205 // need to pass the sizing information on to the RWHV which will pass the
209 // sizing information on to the renderer. 206 // sizing information on to the renderer.
210 requested_size_ = size; 207 requested_size_ = size;
211 RenderWidgetHostView* rwhv = web_contents_->GetRenderWidgetHostView(); 208 RenderWidgetHostView* rwhv = web_contents_->GetRenderWidgetHostView();
212 if (rwhv) 209 if (rwhv)
213 rwhv->SetSize(size); 210 rwhv->SetSize(size);
214 } 211 }
215 212
216 void WebContentsViewGtk::RenderViewCreated(content::RenderViewHost* host) { 213 void WebContentsViewGtk::RenderViewCreated(RenderViewHost* host) {
217 } 214 }
218 215
219 void WebContentsViewGtk::Focus() { 216 void WebContentsViewGtk::Focus() {
220 if (web_contents_->ShowingInterstitialPage()) { 217 if (web_contents_->ShowingInterstitialPage()) {
221 web_contents_->GetInterstitialPage()->Focus(); 218 web_contents_->GetInterstitialPage()->Focus();
222 } else if (delegate_.get()) { 219 } else if (delegate_.get()) {
223 delegate_->Focus(); 220 delegate_->Focus();
224 } 221 }
225 } 222 }
226 223
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 if (gtk_widget_is_focus(widget)) 311 if (gtk_widget_is_focus(widget))
315 return FALSE; 312 return FALSE;
316 313
317 gtk_widget_grab_focus(widget); 314 gtk_widget_grab_focus(widget);
318 bool reverse = focus == GTK_DIR_TAB_BACKWARD; 315 bool reverse = focus == GTK_DIR_TAB_BACKWARD;
319 web_contents_->FocusThroughTabTraversal(reverse); 316 web_contents_->FocusThroughTabTraversal(reverse);
320 return TRUE; 317 return TRUE;
321 } 318 }
322 319
323 void WebContentsViewGtk::ShowContextMenu( 320 void WebContentsViewGtk::ShowContextMenu(
324 const content::ContextMenuParams& params, 321 const ContextMenuParams& params,
325 content::ContextMenuSourceType type) { 322 ContextMenuSourceType type) {
326 if (delegate_.get()) 323 if (delegate_.get())
327 delegate_->ShowContextMenu(params, type); 324 delegate_->ShowContextMenu(params, type);
328 else 325 else
329 DLOG(ERROR) << "Cannot show context menus without a delegate."; 326 DLOG(ERROR) << "Cannot show context menus without a delegate.";
330 } 327 }
331 328
332 void WebContentsViewGtk::ShowPopupMenu(const gfx::Rect& bounds, 329 void WebContentsViewGtk::ShowPopupMenu(const gfx::Rect& bounds,
333 int item_height, 330 int item_height,
334 double item_font_size, 331 double item_font_size,
335 int selected_item, 332 int selected_item,
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 // We manually tell our RWHV to resize the renderer content. This avoids 378 // We manually tell our RWHV to resize the renderer content. This avoids
382 // spurious resizes from GTK+. 379 // spurious resizes from GTK+.
383 RenderWidgetHostView* rwhv = web_contents_->GetRenderWidgetHostView(); 380 RenderWidgetHostView* rwhv = web_contents_->GetRenderWidgetHostView();
384 if (rwhv) 381 if (rwhv)
385 rwhv->SetSize(size); 382 rwhv->SetSize(size);
386 if (web_contents_->GetInterstitialPage()) 383 if (web_contents_->GetInterstitialPage())
387 web_contents_->GetInterstitialPage()->SetSize(size); 384 web_contents_->GetInterstitialPage()->SetSize(size);
388 } 385 }
389 386
390 } // namespace content 387 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/web_contents/web_contents_view_gtk.h ('k') | content/browser/web_contents/web_contents_view_mac.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698