summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/tab_contents_controller.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/cocoa/tab_contents_controller.h')
-rw-r--r--chrome/browser/cocoa/tab_contents_controller.h44
1 files changed, 33 insertions, 11 deletions
diff --git a/chrome/browser/cocoa/tab_contents_controller.h b/chrome/browser/cocoa/tab_contents_controller.h
index cf5405a..46a1ca5 100644
--- a/chrome/browser/cocoa/tab_contents_controller.h
+++ b/chrome/browser/cocoa/tab_contents_controller.h
@@ -8,9 +8,23 @@
#include <Cocoa/Cocoa.h>
+#include "base/scoped_ptr.h"
+
class TabContents;
+class TabContentsNotificationBridge;
+@class TabContentsController;
+
+// The interface for the tab contents view controller's delegate.
+
+@protocol TabContentsControllerDelegate
+
+// Tells the delegate when the tab contents view's frame is about to change.
+- (void)tabContentsViewFrameWillChange:(TabContentsController*)source
+ frameRect:(NSRect)frameRect;
+
+@end
-// A class that controls the web contents of a tab. It manages displaying the
+// A class that controls the TabContents view. It manages displaying the
// native view for a given TabContents.
// Note that just creating the class does not display the view. We defer
// inserting it until the box is the correct size to avoid multiple resize
@@ -20,11 +34,27 @@ class TabContents;
@interface TabContentsController : NSViewController {
@private
TabContents* contents_; // weak
+ // Delegate to be notified about size changes.
+ id<TabContentsControllerDelegate> delegate_; // weak
+ scoped_ptr<TabContentsNotificationBridge> tabContentsBridge_;
}
@property(readonly, nonatomic) TabContents* tabContents;
-// Create the contents of a tab represented by |contents|.
-- (id)initWithContents:(TabContents*)contents;
+- (id)initWithContents:(TabContents*)contents
+ delegate:(id<TabContentsControllerDelegate>)delegate;
+
+// Call when the tab contents is about to be replaced with the currently
+// selected tab contents to do not trigger unnecessary content relayout.
+- (void)ensureContentsSizeDoesNotChange;
+
+// Call when the tab view is properly sized and the render widget host view
+// should be put into the view hierarchy.
+- (void)ensureContentsVisible;
+
+// Call to change the underlying tab contents object. View is not changed,
+// call |-ensureContentsVisible| to display the |newContents|'s render widget
+// host view.
+- (void)changeTabContents:(TabContents*)newContents;
// Called when the tab contents is the currently selected tab and is about to be
// removed from the view hierarchy.
@@ -35,14 +65,6 @@ class TabContents;
// enabled.
- (void)willBecomeSelectedTab;
-// Call when the tab contents is about to be replaced with the currently
-// selected tab contents to do not trigger unnecessary content relayout.
-- (void)ensureContentsSizeDoesNotChange;
-
-// Call when the tab view is properly sized and the render widget host view
-// should be put into the view hierarchy.
-- (void)ensureContentsVisible;
-
// Called when the tab contents is updated in some non-descript way (the
// notification from the model isn't specific). |updatedContents| could reflect
// an entirely new tab contents object.