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

Side by Side Diff: chrome/browser/ui/views/extensions/extension_view_views.h

Issue 10913243: extensions: Add ExtensionView interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: weak Created 8 years, 3 months 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 #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
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_
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/extensions/extension_popup.cc ('k') | chrome/browser/ui/views/extensions/extension_view_views.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698