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

Unified Diff: chrome/browser/cocoa/tab_contents_controller.mm

Issue 65011: Flatten down to a single toolbar per window, significantly simplifying the ta... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 11 years, 8 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 side-by-side diff with in-line comments
Download patch
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];
-}

Powered by Google App Engine
This is Rietveld 408576698