diff options
author | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-10 10:38:44 +0000 |
---|---|---|
committer | joi@chromium.org <joi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-10 10:38:44 +0000 |
commit | 5d95a899e78e5eb6ad4d2b93079a17a5ee8a45e4 (patch) | |
tree | 0ca063562b12f4285d4b61f6f0bece31226ef50e | |
parent | 7190356cd82b2bb25e850a5acf231a2e60ab0189 (diff) | |
download | chromium_src-5d95a899e78e5eb6ad4d2b93079a17a5ee8a45e4.zip chromium_src-5d95a899e78e5eb6ad4d2b93079a17a5ee8a45e4.tar.gz chromium_src-5d95a899e78e5eb6ad4d2b93079a17a5ee8a45e4.tar.bz2 |
Remove last render_widget_host_view_gtk.h dependency in Chrome
by adding to base interface.
TBR=ben@chromium.org
BUG=98716
Review URL: http://codereview.chromium.org/9307032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121424 0039d316-1c4b-4281-b951-d872f2087c98
16 files changed, 63 insertions, 40 deletions
diff --git a/chrome/browser/DEPS b/chrome/browser/DEPS index 8f86b1b..4c59f83 100644 --- a/chrome/browser/DEPS +++ b/chrome/browser/DEPS @@ -87,7 +87,6 @@ include_rules = [ "+content/browser/renderer_host/render_view_host_factory.h", "+content/browser/renderer_host/render_widget_host.h", "+content/browser/renderer_host/render_widget_host_view.h", - "+content/browser/renderer_host/render_widget_host_view_gtk.h", "+content/browser/renderer_host/render_widget_host_view_mac_delegate.h", "+content/browser/renderer_host/resource_dispatcher_host.h", "+content/browser/renderer_host/resource_dispatcher_host_request_info.h", diff --git a/chrome/browser/tab_contents/chrome_tab_contents_view_wrapper_gtk.cc b/chrome/browser/tab_contents/chrome_tab_contents_view_wrapper_gtk.cc index b9b10ce..7035b9d 100644 --- a/chrome/browser/tab_contents/chrome_tab_contents_view_wrapper_gtk.cc +++ b/chrome/browser/tab_contents/chrome_tab_contents_view_wrapper_gtk.cc @@ -9,7 +9,7 @@ #include "chrome/browser/tab_contents/web_drag_bookmark_handler_gtk.h" #include "chrome/browser/ui/gtk/constrained_window_gtk.h" #include "content/browser/renderer_host/render_view_host.h" -#include "content/browser/renderer_host/render_widget_host_view_gtk.h" +#include "content/browser/renderer_host/render_widget_host_view.h" #include "content/browser/tab_contents/tab_contents_view_gtk.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/web_contents.h" @@ -116,14 +116,9 @@ void ChromeTabContentsViewWrapperGtk::ShowContextMenu( } else { view = view_->web_contents()->GetRenderWidgetHostView(); } - RenderWidgetHostViewGtk* view_gtk = - static_cast<RenderWidgetHostViewGtk*>(view); - if (!view_gtk) - return; - context_menu_.reset(new RenderViewContextMenuGtk( - view_->web_contents(), params, view_gtk->last_mouse_down() ? - view_gtk->last_mouse_down()->time : GDK_CURRENT_TIME)); + context_menu_.reset( + new RenderViewContextMenuGtk(view_->web_contents(), params, view)); context_menu_->Init(); gfx::Rect bounds; diff --git a/chrome/browser/tab_contents/render_view_context_menu_gtk.cc b/chrome/browser/tab_contents/render_view_context_menu_gtk.cc index 763ca25..bdc5b5c 100644 --- a/chrome/browser/tab_contents/render_view_context_menu_gtk.cc +++ b/chrome/browser/tab_contents/render_view_context_menu_gtk.cc @@ -10,7 +10,7 @@ #include "base/utf_string_conversions.h" #include "chrome/app/chrome_command_ids.h" #include "chrome/browser/ui/gtk/gtk_util.h" -#include "content/browser/renderer_host/render_widget_host_view_gtk.h" +#include "content/browser/renderer_host/render_widget_host_view.h" #include "content/public/browser/web_contents.h" #include "grit/generated_resources.h" #include "ui/base/l10n/l10n_util.h" @@ -76,9 +76,10 @@ GtkWidget* GetMenuItemByID(ui::MenuModel* model, RenderViewContextMenuGtk::RenderViewContextMenuGtk( WebContents* web_contents, const ContextMenuParams& params, - guint32 triggering_event_time) - : RenderViewContextMenu(web_contents, params), - triggering_event_time_(triggering_event_time) { + RenderWidgetHostView* view) + : RenderViewContextMenu(web_contents, params) { + GdkEventButton* event = view->GetLastMouseDown(); + triggering_event_time_ = event ? event->time : GDK_CURRENT_TIME; } RenderViewContextMenuGtk::~RenderViewContextMenuGtk() { @@ -88,8 +89,8 @@ void RenderViewContextMenuGtk::PlatformInit() { menu_gtk_.reset(new MenuGtk(this, &menu_model_)); if (params_.is_editable) { - RenderWidgetHostViewGtk* rwhv = static_cast<RenderWidgetHostViewGtk*>( - source_web_contents_->GetRenderWidgetHostView()); + RenderWidgetHostView* rwhv = + source_web_contents_->GetRenderWidgetHostView(); #if !defined(TOOLKIT_VIEWS) if (rwhv) { MenuGtk* menu = menu_gtk_.get(); diff --git a/chrome/browser/tab_contents/render_view_context_menu_gtk.h b/chrome/browser/tab_contents/render_view_context_menu_gtk.h index da2e18c..1cf62a9 100644 --- a/chrome/browser/tab_contents/render_view_context_menu_gtk.h +++ b/chrome/browser/tab_contents/render_view_context_menu_gtk.h @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// 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. @@ -12,6 +12,7 @@ #include "chrome/browser/ui/gtk/menu_gtk.h" #include "ui/gfx/point.h" +class RenderWidgetHostView; struct ContextMenuParams; class RenderViewContextMenuGtk : public RenderViewContextMenu, @@ -19,7 +20,7 @@ class RenderViewContextMenuGtk : public RenderViewContextMenu, public: RenderViewContextMenuGtk(content::WebContents* web_contents, const ContextMenuParams& params, - uint32_t triggering_event_time); + RenderWidgetHostView* view); virtual ~RenderViewContextMenuGtk(); diff --git a/chrome/browser/ui/gtk/extensions/extension_popup_gtk.cc b/chrome/browser/ui/gtk/extensions/extension_popup_gtk.cc index cbf6169..6bca52d 100644 --- a/chrome/browser/ui/gtk/extensions/extension_popup_gtk.cc +++ b/chrome/browser/ui/gtk/extensions/extension_popup_gtk.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// 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. @@ -22,7 +22,7 @@ #include "chrome/browser/ui/gtk/gtk_theme_service.h" #include "chrome/common/chrome_notification_types.h" #include "content/browser/renderer_host/render_view_host.h" -#include "content/browser/renderer_host/render_widget_host_view_gtk.h" +#include "content/browser/renderer_host/render_widget_host_view.h" #include "content/public/browser/notification_details.h" #include "content/public/browser/notification_source.h" #include "googleurl/src/gurl.h" diff --git a/chrome/browser/ui/gtk/extensions/shell_window_gtk.cc b/chrome/browser/ui/gtk/extensions/shell_window_gtk.cc index 3456461..39c38d0 100644 --- a/chrome/browser/ui/gtk/extensions/shell_window_gtk.cc +++ b/chrome/browser/ui/gtk/extensions/shell_window_gtk.cc @@ -6,7 +6,7 @@ #include "chrome/browser/extensions/extension_host.h" #include "chrome/common/extensions/extension.h" -#include "content/browser/renderer_host/render_widget_host_view_gtk.h" +#include "content/browser/renderer_host/render_widget_host_view.h" ShellWindowGtk::ShellWindowGtk(ExtensionHost* host) : ShellWindow(host) { diff --git a/chrome/browser/ui/gtk/notifications/balloon_view_host_gtk.cc b/chrome/browser/ui/gtk/notifications/balloon_view_host_gtk.cc index 074889a..18a9ff4 100644 --- a/chrome/browser/ui/gtk/notifications/balloon_view_host_gtk.cc +++ b/chrome/browser/ui/gtk/notifications/balloon_view_host_gtk.cc @@ -1,12 +1,14 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// 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. #include "chrome/browser/ui/gtk/notifications/balloon_view_host_gtk.h" +#include <gtk/gtk.h> + #include "chrome/browser/notifications/balloon.h" #include "content/browser/renderer_host/render_view_host.h" -#include "content/browser/renderer_host/render_widget_host_view_gtk.h" +#include "content/browser/renderer_host/render_widget_host_view.h" #include "content/public/browser/web_contents.h" BalloonViewHost::BalloonViewHost(Balloon* balloon) diff --git a/chrome/browser/ui/gtk/tab_contents_container_gtk.cc b/chrome/browser/ui/gtk/tab_contents_container_gtk.cc index f98be12..75154e8 100644 --- a/chrome/browser/ui/gtk/tab_contents_container_gtk.cc +++ b/chrome/browser/ui/gtk/tab_contents_container_gtk.cc @@ -9,7 +9,7 @@ #include "base/i18n/rtl.h" #include "chrome/browser/ui/gtk/status_bubble_gtk.h" #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" -#include "content/browser/renderer_host/render_widget_host_view_gtk.h" +#include "content/browser/renderer_host/render_widget_host_view.h" #include "content/public/browser/notification_source.h" #include "content/public/browser/notification_types.h" #include "content/public/browser/web_contents.h" diff --git a/chrome/browser/ui/gtk/web_intent_picker_gtk.cc b/chrome/browser/ui/gtk/web_intent_picker_gtk.cc index 715273b..ea78a51 100644 --- a/chrome/browser/ui/gtk/web_intent_picker_gtk.cc +++ b/chrome/browser/ui/gtk/web_intent_picker_gtk.cc @@ -26,7 +26,7 @@ #include "chrome/browser/ui/intents/web_intent_picker_model.h" #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" #include "content/browser/renderer_host/render_view_host.h" -#include "content/browser/renderer_host/render_widget_host_view_gtk.h" +#include "content/browser/renderer_host/render_widget_host_view.h" #include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_source.h" #include "content/public/browser/notification_types.h" diff --git a/chrome/browser/ui/views/tab_contents/native_tab_contents_view_gtk.cc b/chrome/browser/ui/views/tab_contents/native_tab_contents_view_gtk.cc index 79edcf0..09f38b3e 100644 --- a/chrome/browser/ui/views/tab_contents/native_tab_contents_view_gtk.cc +++ b/chrome/browser/ui/views/tab_contents/native_tab_contents_view_gtk.cc @@ -8,7 +8,7 @@ #include "chrome/browser/tab_contents/web_drag_bookmark_handler_gtk.h" #include "chrome/browser/ui/gtk/constrained_window_gtk.h" #include "chrome/browser/ui/views/tab_contents/native_tab_contents_view_delegate.h" -#include "content/browser/renderer_host/render_widget_host_view_gtk.h" +#include "content/browser/renderer_host/render_widget_host_view.h" #include "content/browser/tab_contents/web_drag_dest_gtk.h" #include "content/browser/tab_contents/web_drag_source_gtk.h" #include "content/public/browser/web_contents.h" diff --git a/content/browser/renderer_host/render_widget_host_view.h b/content/browser/renderer_host/render_widget_host_view.h index 2dd3982..85144bc 100644 --- a/content/browser/renderer_host/render_widget_host_view.h +++ b/content/browser/renderer_host/render_widget_host_view.h @@ -10,6 +10,10 @@ #include <OpenGL/OpenGL.h> #endif +#if defined(TOOLKIT_USES_GTK) +#include <gdk/gdk.h> +#endif + #include <string> #include <vector> @@ -296,7 +300,13 @@ class RenderWidgetHostView { #if defined(TOOLKIT_USES_GTK) virtual void CreatePluginContainer(gfx::PluginWindowHandle id) = 0; virtual void DestroyPluginContainer(gfx::PluginWindowHandle id) = 0; -#endif + // Gets the event for the last mouse down. + virtual GdkEventButton* GetLastMouseDown() = 0; +#if !defined(TOOLKIT_VIEWS) + // Builds a submenu containing all the gtk input method commands. + virtual gfx::NativeView BuildInputMethodsGtkMenu() = 0; +#endif // !defined(TOOLKIT_VIEWS) +#endif // defined(TOOLKIT_USES_GTK) #if defined(OS_WIN) && !defined(USE_AURA) virtual void WillWmDestroy() = 0; diff --git a/content/browser/renderer_host/render_widget_host_view_gtk.cc b/content/browser/renderer_host/render_widget_host_view_gtk.cc index 4bd5731..5614fd4 100644 --- a/content/browser/renderer_host/render_widget_host_view_gtk.cc +++ b/content/browser/renderer_host/render_widget_host_view_gtk.cc @@ -932,8 +932,12 @@ void RenderWidgetHostViewGtk::SelectionBoundsChanged( im_context_->UpdateCaretBounds(start_rect.Union(end_rect)); } +GdkEventButton* RenderWidgetHostViewGtk::GetLastMouseDown() { + return last_mouse_down_; +} + #if !defined(TOOLKIT_VIEWS) -GtkWidget* RenderWidgetHostViewGtk::BuildInputMethodsGtkMenu() { +gfx::NativeView RenderWidgetHostViewGtk::BuildInputMethodsGtkMenu() { return im_context_->BuildInputMethodsGtkMenu(); } #endif diff --git a/content/browser/renderer_host/render_widget_host_view_gtk.h b/content/browser/renderer_host/render_widget_host_view_gtk.h index 5a253fe..c709483 100644 --- a/content/browser/renderer_host/render_widget_host_view_gtk.h +++ b/content/browser/renderer_host/render_widget_host_view_gtk.h @@ -101,6 +101,11 @@ class CONTENT_EXPORT RenderWidgetHostViewGtk : public RenderWidgetHostView { virtual void SetBackground(const SkBitmap& background) OVERRIDE; virtual void CreatePluginContainer(gfx::PluginWindowHandle id) OVERRIDE; virtual void DestroyPluginContainer(gfx::PluginWindowHandle id) OVERRIDE; + virtual GdkEventButton* GetLastMouseDown() OVERRIDE; +#if !defined(TOOLKIT_VIEWS) + // Builds a submenu containing all the gtk input method commands. + virtual gfx::NativeView BuildInputMethodsGtkMenu() OVERRIDE; +#endif virtual void UnhandledWheelEvent( const WebKit::WebMouseWheelEvent& event) OVERRIDE; virtual void ProcessTouchAck(bool processed) OVERRIDE; @@ -137,15 +142,6 @@ class CONTENT_EXPORT RenderWidgetHostViewGtk : public RenderWidgetHostView { bool RetrieveSurrounding(std::string* text, size_t* cursor_index); - GdkEventButton* last_mouse_down() const { - return last_mouse_down_; - } - -#if !defined(TOOLKIT_VIEWS) - // Builds a submenu containing all the gtk input method commands. - GtkWidget* BuildInputMethodsGtkMenu(); -#endif - protected: friend class RenderWidgetHostView; diff --git a/content/browser/renderer_host/test_render_view_host.cc b/content/browser/renderer_host/test_render_view_host.cc index fcc374d..7cabedf 100644 --- a/content/browser/renderer_host/test_render_view_host.cc +++ b/content/browser/renderer_host/test_render_view_host.cc @@ -1,4 +1,3 @@ - // 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. @@ -284,6 +283,18 @@ gfx::Rect TestRenderWidgetHostView::GetRootWindowBounds() { } #endif +#if defined(TOOLKIT_USES_GTK) +GdkEventButton* TestRenderWidgetHostView::GetLastMouseDown() { + return NULL; +} + +#if !defined(TOOLKIT_VIEWS) +gfx::NativeView TestRenderWidgetHostView::BuildInputMethodsGtkMenu() { + return NULL; +} +#endif // !defined(TOOLKIT_VIEWS) +#endif // defined(TOOLKIT_USES_GTK) + gfx::GLSurfaceHandle TestRenderWidgetHostView::GetCompositingSurface() { return gfx::GLSurfaceHandle(); } diff --git a/content/browser/renderer_host/test_render_view_host.h b/content/browser/renderer_host/test_render_view_host.h index c85fd03..b3276e7 100644 --- a/content/browser/renderer_host/test_render_view_host.h +++ b/content/browser/renderer_host/test_render_view_host.h @@ -152,7 +152,11 @@ class TestRenderWidgetHostView : public RenderWidgetHostView { #if defined(TOOLKIT_USES_GTK) virtual void CreatePluginContainer(gfx::PluginWindowHandle id) OVERRIDE { } virtual void DestroyPluginContainer(gfx::PluginWindowHandle id) OVERRIDE { } -#endif + virtual GdkEventButton* GetLastMouseDown() OVERRIDE; +#if !defined(TOOLKIT_VIEWS) + virtual gfx::NativeView BuildInputMethodsGtkMenu() OVERRIDE; +#endif // !defined(TOOLKIT_VIEWS) +#endif // defined(TOOLKIT_USES_GTK) virtual gfx::GLSurfaceHandle GetCompositingSurface() OVERRIDE; diff --git a/content/browser/tab_contents/tab_contents_view_gtk.cc b/content/browser/tab_contents/tab_contents_view_gtk.cc index 1c0480b..f4a46d5 100644 --- a/content/browser/tab_contents/tab_contents_view_gtk.cc +++ b/content/browser/tab_contents/tab_contents_view_gtk.cc @@ -411,10 +411,10 @@ void TabContentsViewGtk::StartDragging(const WebDropData& drop_data, RenderWidgetHostViewGtk* view_gtk = static_cast<RenderWidgetHostViewGtk*>( tab_contents_->GetRenderWidgetHostView()); - if (!view_gtk || !view_gtk->last_mouse_down()) + if (!view_gtk || !view_gtk->GetLastMouseDown()) return; - drag_source_->StartDragging(drop_data, ops, view_gtk->last_mouse_down(), + drag_source_->StartDragging(drop_data, ops, view_gtk->GetLastMouseDown(), image, image_offset); } |