diff options
Diffstat (limited to 'chrome/browser/cocoa/tab_contents_controller.h')
-rw-r--r-- | chrome/browser/cocoa/tab_contents_controller.h | 44 |
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. |