Index: chrome/browser/cocoa/tab_contents_controller.mm |
=================================================================== |
--- chrome/browser/cocoa/tab_contents_controller.mm (revision 13420) |
+++ chrome/browser/cocoa/tab_contents_controller.mm (working copy) |
@@ -5,56 +5,21 @@ |
#import "chrome/browser/cocoa/tab_contents_controller.h" |
#include "base/sys_string_conversions.h" |
-#include "chrome/app/chrome_dll_resource.h" |
#include "chrome/browser/bookmarks/bookmark_model.h" |
-#import "chrome/browser/cocoa/location_bar_view_mac.h" |
-#include "chrome/browser/command_updater.h" |
#include "chrome/browser/tab_contents/tab_contents.h" |
-#include "chrome/browser/toolbar_model.h" |
-// Names of images in the bundle for the star icon (normal and 'starred'). |
-static NSString* const kStarImageName = @"star"; |
-static NSString* const kStarredImageName = @"starred"; |
- |
-@interface TabContentsController(CommandUpdates) |
-- (void)enabledStateChangedForCommand:(NSInteger)command enabled:(BOOL)enabled; |
-@end |
- |
@interface TabContentsController(Private) |
-- (void)updateToolbarCommandStatus; |
- (void)applyContentsBoxOffset:(BOOL)apply; |
@end |
-// A C++ bridge class that handles listening for updates to commands and |
-// passing them back to the controller. |
-class TabContentsCommandObserver : public CommandUpdater::CommandObserver { |
- public: |
- TabContentsCommandObserver(TabContentsController* controller, |
- CommandUpdater* commands); |
- ~TabContentsCommandObserver(); |
- |
- // Overridden from CommandUpdater::CommandObserver |
- void EnabledStateChangedForCommand(int command, bool enabled); |
- |
- private: |
- TabContentsController* controller_; // weak, owns me |
- CommandUpdater* commands_; // weak |
-}; |
- |
@implementation TabContentsController |
- (id)initWithNibName:(NSString*)name |
bundle:(NSBundle*)bundle |
contents:(TabContents*)contents |
- commands:(CommandUpdater*)commands |
- toolbarModel:(ToolbarModel*)toolbarModel |
bookmarkModel:(BookmarkModel*)bookmarkModel { |
if ((self = [super initWithNibName:name bundle:bundle])) { |
- commands_ = commands; |
- if (commands_) |
- observer_ = new TabContentsCommandObserver(self, commands); |
contents_ = contents; |
- toolbarModel_ = toolbarModel; |
bookmarkModel_ = bookmarkModel; |
} |
return self; |
@@ -63,29 +28,14 @@ |
- (void)dealloc { |
// make sure our contents have been removed from the window |
[[self view] removeFromSuperview]; |
- delete observer_; |
- delete locationBarView_; |
[super dealloc]; |
} |
- (void)awakeFromNib { |
[contentsBox_ setContentView:contents_->GetNativeView()]; |
[self applyContentsBoxOffset:YES]; |
- |
- // Provide a starting point since we won't get notifications if the state |
- // doesn't change between tabs. |
- [self updateToolbarCommandStatus]; |
- |
- locationBarView_ = new LocationBarViewMac(locationBar_); |
- locationBarView_->Init(); |
- |
- [locationBar_ setStringValue:@"http://dev.chromium.org"]; |
} |
-- (LocationBar*)locationBar { |
- return locationBarView_; |
-} |
- |
// Returns YES if the tab represented by this controller is the front-most. |
- (BOOL)isCurrentTab { |
// We're the current tab if we're in the view hierarchy, otherwise some other |
@@ -93,34 +43,6 @@ |
return [[self view] superview] ? YES : NO; |
} |
-// Called when the state for a command changes to |enabled|. Update the |
-// corresponding UI element. |
-- (void)enabledStateChangedForCommand:(NSInteger)command enabled:(BOOL)enabled { |
- // We don't need to update anything if we're not the frontmost tab. |
- // TODO(pinkerton): i'm worried that observer ordering could cause the |
- // notification to be sent before we've been put into the view, but we |
- // appear to be called in the right order so far. |
- if (![self isCurrentTab]) |
- return; |
- |
- NSButton* button = nil; |
- switch (command) { |
- case IDC_BACK: |
- button = backButton_; |
- break; |
- case IDC_FORWARD: |
- button = forwardButton_; |
- break; |
- case IDC_HOME: |
- // TODO(pinkerton): add home button |
- break; |
- case IDC_STAR: |
- button = starButton_; |
- break; |
- } |
- [button setEnabled:enabled]; |
-} |
- |
- (IBAction)fullScreen:(id)sender { |
if ([[self view] isInFullScreenMode]) { |
[[self view] exitFullScreenModeWithOptions:nil]; |
@@ -129,21 +51,7 @@ |
} |
} |
-// Set the enabled state of the buttons on the toolbar to match the state in |
-// the controller. We can't only rely on notifications to do this because the |
-// command model only assumes a single toolbar and won't send notifications if |
-// the state doesn't change. |
-- (void)updateToolbarCommandStatus { |
- [backButton_ setEnabled:commands_->IsCommandEnabled(IDC_BACK) ? YES : NO]; |
- [forwardButton_ |
- setEnabled:commands_->IsCommandEnabled(IDC_FORWARD) ? YES : NO]; |
- [reloadButton_ |
- setEnabled:commands_->IsCommandEnabled(IDC_RELOAD) ? YES : NO]; |
- [starButton_ setEnabled:commands_->IsCommandEnabled(IDC_STAR) ? YES : NO]; |
-} |
- |
- (void)willBecomeSelectedTab { |
- [self updateToolbarCommandStatus]; |
} |
- (void)tabDidChange:(TabContents*)updatedContents { |
@@ -151,29 +59,6 @@ |
[contentsBox_ setContentView:contents_->GetNativeView()]; |
} |
-- (void)focusLocationBar { |
- if (locationBarView_) { |
- locationBarView_->FocusLocation(); |
- } |
-} |
- |
-- (void)updateToolbarWithContents:(TabContents*)tab { |
- // TODO(pinkerton): there's a lot of ui code in autocomplete_edit.cc |
- // that we'll want to duplicate. For now, just handle setting the text. |
- |
- // TODO(pinkerton): update the security lock icon and background color |
- |
- NSString* urlString = base::SysWideToNSString(toolbarModel_->GetText()); |
- [locationBar_ setStringValue:urlString]; |
-} |
- |
-- (void)setStarredState:(BOOL)isStarred { |
- NSString* starImageName = kStarImageName; |
- if (isStarred) |
- starImageName = kStarredImageName; |
- [starButton_ setImage:[NSImage imageNamed:starImageName]]; |
-} |
- |
// Return the rect, in WebKit coordinates (flipped), of the window's grow box |
// in the coordinate system of the content area of this tab. |
- (NSRect)growBoxRect { |
@@ -199,13 +84,6 @@ |
return localGrowBox; |
} |
-- (void)setIsLoading:(BOOL)isLoading { |
- NSString* imageName = @"go"; |
- if (isLoading) |
- imageName = @"stop"; |
- [goButton_ setImage:[NSImage imageNamed:imageName]]; |
-} |
- |
- (void)toggleBookmarkBar:(BOOL)enable { |
contentsBoxHasOffset_ = enable; |
[self applyContentsBoxOffset:enable]; |
@@ -248,28 +126,3 @@ |
} |
@end |
- |
-//-------------------------------------------------------------------------- |
- |
-TabContentsCommandObserver::TabContentsCommandObserver( |
- TabContentsController* controller, CommandUpdater* commands) |
- : controller_(controller), commands_(commands) { |
- DCHECK(controller_ && commands); |
- // Register for notifications about state changes for the toolbar buttons |
- commands_->AddCommandObserver(IDC_BACK, this); |
- commands_->AddCommandObserver(IDC_FORWARD, this); |
- commands_->AddCommandObserver(IDC_RELOAD, this); |
- commands_->AddCommandObserver(IDC_HOME, this); |
- commands_->AddCommandObserver(IDC_STAR, this); |
-} |
- |
-TabContentsCommandObserver::~TabContentsCommandObserver() { |
- // Unregister the notifications |
- commands_->RemoveCommandObserver(this); |
-} |
- |
-void TabContentsCommandObserver::EnabledStateChangedForCommand(int command, |
- bool enabled) { |
- [controller_ enabledStateChangedForCommand:command |
- enabled:enabled ? YES : NO]; |
-} |