OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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_TAB_CONTENTS_TAB_CONTENTS_DELEGATE_H_ | 5 #ifndef CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_DELEGATE_H_ |
6 #define CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_DELEGATE_H_ | 6 #define CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_DELEGATE_H_ |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
| 9 #include "base/gfx/rect.h" |
9 #include "chrome/browser/tab_contents/page_navigator.h" | 10 #include "chrome/browser/tab_contents/page_navigator.h" |
10 #include "chrome/common/navigation_types.h" | 11 #include "chrome/common/navigation_types.h" |
11 | 12 |
12 namespace gfx { | |
13 class Point; | |
14 class Rect; | |
15 } | |
16 | |
17 class TabContents; | 13 class TabContents; |
18 class HtmlDialogContentsDelegate; | 14 class HtmlDialogContentsDelegate; |
19 | 15 |
20 // Objects implement this interface to get notified about changes in the | 16 // Objects implement this interface to get notified about changes in the |
21 // TabContents and to provide necessary functionality. | 17 // TabContents and to provide necessary functionality. |
22 class TabContentsDelegate : public PageNavigator { | 18 class TabContentsDelegate : public PageNavigator { |
23 public: | 19 public: |
24 // Opens a new URL inside the passed in TabContents, if source is 0 open | 20 // Opens a new URL inside the passed in TabContents, if source is 0 open |
25 // in the current front-most tab. | 21 // in the current front-most tab. |
26 virtual void OpenURLFromTab(TabContents* source, | 22 virtual void OpenURLFromTab(TabContents* source, |
27 const GURL& url, const GURL& referrer, | 23 const GURL& url, const GURL& referrer, |
28 WindowOpenDisposition disposition, | 24 WindowOpenDisposition disposition, |
29 PageTransition::Type transition) = 0; | 25 PageTransition::Type transition) = 0; |
30 | 26 |
31 virtual void OpenURL(const GURL& url, const GURL& referrer, | 27 virtual void OpenURL(const GURL& url, const GURL& referrer, |
32 WindowOpenDisposition disposition, | 28 WindowOpenDisposition disposition, |
33 PageTransition::Type transition) | 29 PageTransition::Type transition) { |
34 { | |
35 OpenURLFromTab(NULL, url, referrer, disposition, transition); | 30 OpenURLFromTab(NULL, url, referrer, disposition, transition); |
36 } | 31 } |
37 | 32 |
38 // Called to inform the delegate that the tab content's navigation state | 33 // Called to inform the delegate that the tab content's navigation state |
39 // changed. The |changed_flags| indicates the parts of the navigation state | 34 // changed. The |changed_flags| indicates the parts of the navigation state |
40 // that have been updated, and is any combination of the | 35 // that have been updated, and is any combination of the |
41 // |TabContents::InvalidateTypes| bits. | 36 // |TabContents::InvalidateTypes| bits. |
42 virtual void NavigationStateChanged(const TabContents* source, | 37 virtual void NavigationStateChanged(const TabContents* source, |
43 unsigned changed_flags) = 0; | 38 unsigned changed_flags) = 0; |
44 | 39 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 virtual void ContentsZoomChange(bool zoom_in) { } | 94 virtual void ContentsZoomChange(bool zoom_in) { } |
100 | 95 |
101 // Check whether this contents is inside a window dedicated to running a web | 96 // Check whether this contents is inside a window dedicated to running a web |
102 // application. | 97 // application. |
103 virtual bool IsApplication() { return false; } | 98 virtual bool IsApplication() { return false; } |
104 | 99 |
105 // Detach the given tab and convert it to a "webapp" view. The tab must be | 100 // Detach the given tab and convert it to a "webapp" view. The tab must be |
106 // a WebContents with a valid WebApp set. | 101 // a WebContents with a valid WebApp set. |
107 virtual void ConvertContentsToApplication(TabContents* source) { } | 102 virtual void ConvertContentsToApplication(TabContents* source) { } |
108 | 103 |
109 // Informs the TabContentsDelegate that some of our state has changed | 104 // Informs the TabContentsDelegate that some of our state has changed |
110 // for this tab. | 105 // for this tab. |
111 virtual void ContentsStateChanged(TabContents* source) {} | 106 virtual void ContentsStateChanged(TabContents* source) {} |
112 | 107 |
113 // Return whether this tab contents should have a URL bar. Only web contents | 108 // Return whether this tab contents should have a URL bar. Only web contents |
114 // opened with a minimal chrome and their popups can be displayed without a | 109 // opened with a minimal chrome and their popups can be displayed without a |
115 // URL bar. | 110 // URL bar. |
116 virtual bool ShouldDisplayURLField() { return true; } | 111 virtual bool ShouldDisplayURLField() { return true; } |
117 | 112 |
118 // Whether this tab can be blurred through a javascript obj.blur() | 113 // Whether this tab can be blurred through a javascript obj.blur() |
119 // call. ConstrainedWindows shouldn't be able to be blurred. | 114 // call. ConstrainedWindows shouldn't be able to be blurred. |
120 virtual bool CanBlur() const { return true; } | 115 virtual bool CanBlur() const { return true; } |
121 | 116 |
| 117 // Return the rect where to display the resize corner, if any, otherwise |
| 118 // an empty rect. |
| 119 virtual gfx::Rect GetRootWindowResizerRect() const { return gfx::Rect(); } |
| 120 |
122 // Show a dialog with HTML content. |delegate| contains a pointer to the | 121 // Show a dialog with HTML content. |delegate| contains a pointer to the |
123 // delegate who knows how to display the dialog (which file URL and JSON | 122 // delegate who knows how to display the dialog (which file URL and JSON |
124 // string input to use during initialization). |parent_window| is the window | 123 // string input to use during initialization). |parent_window| is the window |
125 // that should be parent of the dialog, or NULL for the default. | 124 // that should be parent of the dialog, or NULL for the default. |
126 virtual void ShowHtmlDialog(HtmlDialogContentsDelegate* delegate, | 125 virtual void ShowHtmlDialog(HtmlDialogContentsDelegate* delegate, |
127 void* parent_window) { } | 126 void* parent_window) { } |
128 | 127 |
129 // Tells us that we've finished firing this tab's beforeunload event. | 128 // Tells us that we've finished firing this tab's beforeunload event. |
130 // The proceed bool tells us whether the user chose to proceed closing the | 129 // The proceed bool tells us whether the user chose to proceed closing the |
131 // tab. Returns true if the tab can continue on firing it's unload event. | 130 // tab. Returns true if the tab can continue on firing it's unload event. |
132 // If we're closing the entire browser, then we'll want to delay firing | 131 // If we're closing the entire browser, then we'll want to delay firing |
133 // unload events until all the beforeunload events have fired. | 132 // unload events until all the beforeunload events have fired. |
134 virtual void BeforeUnloadFired(TabContents* tab, | 133 virtual void BeforeUnloadFired(TabContents* tab, |
135 bool proceed, | 134 bool proceed, |
136 bool* proceed_to_fire_unload) { | 135 bool* proceed_to_fire_unload) { |
137 *proceed_to_fire_unload = true; | 136 *proceed_to_fire_unload = true; |
138 } | 137 } |
139 | 138 |
140 // Send IPC to external host. Default implementation is do nothing. | 139 // Send IPC to external host. Default implementation is do nothing. |
141 virtual void ForwardMessageToExternalHost(const std::string& receiver, | 140 virtual void ForwardMessageToExternalHost(const std::string& receiver, |
142 const std::string& message) {}; | 141 const std::string& message) {} |
143 | 142 |
144 // If the delegate is hosting tabs externally. | 143 // If the delegate is hosting tabs externally. |
145 virtual bool IsExternalTabContainer() const { return false; } | 144 virtual bool IsExternalTabContainer() const { return false; } |
146 | 145 |
147 // Sets focus to the location bar or some other place that is appropriate. | 146 // Sets focus to the location bar or some other place that is appropriate. |
148 // This is called when the tab wants to encourage user input, like for the | 147 // This is called when the tab wants to encourage user input, like for the |
149 // new tab page. | 148 // new tab page. |
150 virtual void SetFocusToLocationBar() {} | 149 virtual void SetFocusToLocationBar() {} |
151 }; | 150 }; |
152 | 151 |
153 #endif // CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_DELEGATE_H_ | 152 #endif // CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_DELEGATE_H_ |
OLD | NEW |