| OLD | NEW |
| 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 #ifndef CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_VIEW_VIEWS_H_ | 5 #ifndef CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_VIEW_VIEWS_H_ |
| 6 #define CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_VIEW_VIEWS_H_ | 6 #define CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_VIEW_VIEWS_H_ |
| 7 | 7 |
| 8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
| 10 #include "chrome/browser/extensions/extension_view.h" |
| 10 #include "chrome/browser/ui/views/unhandled_keyboard_event_handler.h" | 11 #include "chrome/browser/ui/views/unhandled_keyboard_event_handler.h" |
| 11 #include "content/public/browser/native_web_keyboard_event.h" | 12 #include "content/public/browser/native_web_keyboard_event.h" |
| 12 #include "third_party/skia/include/core/SkBitmap.h" | 13 #include "third_party/skia/include/core/SkBitmap.h" |
| 13 #include "ui/views/controls/native/native_view_host.h" | 14 #include "ui/views/controls/native/native_view_host.h" |
| 14 | 15 |
| 15 class Browser; | |
| 16 | |
| 17 namespace content { | 16 namespace content { |
| 18 class RenderViewHost; | 17 class RenderViewHost; |
| 19 } | 18 } |
| 20 | 19 |
| 21 namespace extensions { | 20 namespace extensions { |
| 22 class Extension; | 21 class Extension; |
| 23 class ExtensionHost; | 22 class ExtensionHost; |
| 24 } | 23 } |
| 25 | 24 |
| 26 // This handles the display portion of an ExtensionHost. | 25 // This handles the display portion of an ExtensionHost. |
| 27 class ExtensionViewViews : public views::NativeViewHost { | 26 class ExtensionViewViews : public ExtensionView, |
| 27 public views::NativeViewHost { |
| 28 public: | 28 public: |
| 29 ExtensionViewViews(extensions::ExtensionHost* host, Browser* browser); | 29 ExtensionViewViews(extensions::ExtensionHost* host, Browser* browser); |
| 30 virtual ~ExtensionViewViews(); | 30 virtual ~ExtensionViewViews(); |
| 31 | 31 |
| 32 // A class that represents the container that this view is in. | |
| 33 // (bottom shelf, side bar, etc.) | |
| 34 class Container { | |
| 35 public: | |
| 36 virtual ~Container() {} | |
| 37 virtual void OnExtensionSizeChanged(ExtensionViewViews* view) {} | |
| 38 virtual void OnViewWasResized() {} | |
| 39 }; | |
| 40 | |
| 41 extensions::ExtensionHost* host() const { return host_; } | |
| 42 Browser* browser() const { return browser_; } | |
| 43 const extensions::Extension* extension() const; | |
| 44 content::RenderViewHost* render_view_host() const; | |
| 45 void DidStopLoading(); | |
| 46 void SetIsClipped(bool is_clipped); | |
| 47 | |
| 48 // Notification from ExtensionHost. | |
| 49 void ResizeDueToAutoResize(const gfx::Size& new_size); | |
| 50 | |
| 51 // Method for the ExtensionHost to notify us when the RenderViewHost has a | |
| 52 // connection. | |
| 53 void RenderViewCreated(); | |
| 54 | |
| 55 // Set a custom background for the view. The background will be tiled. | 32 // Set a custom background for the view. The background will be tiled. |
| 56 void SetBackground(const SkBitmap& background); | 33 void SetBackground(const SkBitmap& background); |
| 57 | 34 |
| 58 // Sets the container for this view. | 35 // Overridden from views::View: |
| 59 void SetContainer(Container* container) { container_ = container; } | 36 virtual void SetVisible(bool is_visible) OVERRIDE; |
| 60 | 37 |
| 61 // Handles unhandled keyboard messages coming back from the renderer process. | 38 protected: |
| 62 void HandleKeyboardEvent(const content::NativeWebKeyboardEvent& event); | |
| 63 | |
| 64 // Overridden from views::NativeViewHost: | 39 // Overridden from views::NativeViewHost: |
| 65 virtual gfx::NativeCursor GetCursor(const ui::MouseEvent& event) OVERRIDE; | 40 virtual gfx::NativeCursor GetCursor(const ui::MouseEvent& event) OVERRIDE; |
| 66 virtual void SetVisible(bool is_visible) OVERRIDE; | |
| 67 virtual void ViewHierarchyChanged(bool is_add, | 41 virtual void ViewHierarchyChanged(bool is_add, |
| 68 views::View* parent, | 42 views::View* parent, |
| 69 views::View* child) OVERRIDE; | 43 views::View* child) OVERRIDE; |
| 70 | 44 |
| 71 protected: | |
| 72 // Overridden from views::View. | 45 // Overridden from views::View. |
| 73 virtual void PreferredSizeChanged() OVERRIDE; | 46 virtual void PreferredSizeChanged() OVERRIDE; |
| 74 virtual bool SkipDefaultKeyEventProcessing(const ui::KeyEvent& e) OVERRIDE; | 47 virtual bool SkipDefaultKeyEventProcessing(const ui::KeyEvent& e) OVERRIDE; |
| 75 virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE; | 48 virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE; |
| 76 | 49 |
| 77 private: | 50 private: |
| 78 friend class extensions::ExtensionHost; | 51 friend class extensions::ExtensionHost; |
| 79 | 52 |
| 53 // Overridden from ExtensionView: |
| 54 virtual Browser* GetBrowser() OVERRIDE; |
| 55 virtual const Browser* GetBrowser() const OVERRIDE; |
| 56 virtual gfx::NativeView GetNativeView() OVERRIDE; |
| 57 virtual content::RenderViewHost* GetRenderViewHost() const OVERRIDE; |
| 58 virtual void SetContainer(ExtensionViewContainer* container) OVERRIDE; |
| 59 virtual void ResizeDueToAutoResize(const gfx::Size& new_size) OVERRIDE; |
| 60 virtual void RenderViewCreated() OVERRIDE; |
| 61 virtual void DidStopLoading() OVERRIDE; |
| 62 virtual void WindowFrameChanged() OVERRIDE; |
| 63 virtual void HandleKeyboardEvent( |
| 64 const content::NativeWebKeyboardEvent& event) OVERRIDE; |
| 65 |
| 66 |
| 80 // Initializes the RenderWidgetHostView for this object. | 67 // Initializes the RenderWidgetHostView for this object. |
| 81 void CreateWidgetHostView(); | 68 void CreateWidgetHostView(); |
| 82 | 69 |
| 83 // We wait to show the ExtensionViewViews until several things have loaded. | 70 // We wait to show the ExtensionViewViews until several things have loaded. |
| 84 void ShowIfCompletelyLoaded(); | 71 void ShowIfCompletelyLoaded(); |
| 85 | 72 |
| 86 // Restore object to initial state. Called on shutdown or after a renderer | 73 // Restore object to initial state. Called on shutdown or after a renderer |
| 87 // crash. | 74 // crash. |
| 88 void CleanUp(); | 75 void CleanUp(); |
| 89 | 76 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 100 // The background the view should have once it is initialized. This is set | 87 // The background the view should have once it is initialized. This is set |
| 101 // when the view has a custom background, but hasn't been initialized yet. | 88 // when the view has a custom background, but hasn't been initialized yet. |
| 102 SkBitmap pending_background_; | 89 SkBitmap pending_background_; |
| 103 | 90 |
| 104 // What we should set the preferred width to once the ExtensionViewViews has | 91 // What we should set the preferred width to once the ExtensionViewViews has |
| 105 // loaded. | 92 // loaded. |
| 106 gfx::Size pending_preferred_size_; | 93 gfx::Size pending_preferred_size_; |
| 107 | 94 |
| 108 // The container this view is in (not necessarily its direct superview). | 95 // The container this view is in (not necessarily its direct superview). |
| 109 // Note: the view does not own its container. | 96 // Note: the view does not own its container. |
| 110 Container* container_; | 97 ExtensionViewContainer* container_; |
| 111 | |
| 112 // Whether this extension view is clipped. | |
| 113 bool is_clipped_; | |
| 114 | 98 |
| 115 // A handler to handle unhandled keyboard messages coming back from the | 99 // A handler to handle unhandled keyboard messages coming back from the |
| 116 // renderer process. | 100 // renderer process. |
| 117 UnhandledKeyboardEventHandler unhandled_keyboard_event_handler_; | 101 UnhandledKeyboardEventHandler unhandled_keyboard_event_handler_; |
| 118 | 102 |
| 119 DISALLOW_COPY_AND_ASSIGN(ExtensionViewViews); | 103 DISALLOW_COPY_AND_ASSIGN(ExtensionViewViews); |
| 120 }; | 104 }; |
| 121 | 105 |
| 122 #endif // CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_VIEW_VIEWS_H_ | 106 #endif // CHROME_BROWSER_UI_VIEWS_EXTENSIONS_EXTENSION_VIEW_VIEWS_H_ |
| OLD | NEW |