Chromium Code Reviews
|
| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #import "chrome/browser/cocoa/toolbar_controller.h" | |
| 6 | |
| 7 #include "base/sys_string_conversions.h" | |
| 8 #include "chrome/app/chrome_dll_resource.h" | |
| 9 #import "chrome/browser/cocoa/location_bar_view_mac.h" | |
| 10 #include "chrome/browser/toolbar_model.h" | |
| 11 | |
| 12 // Names of images in the bundle for the star icon (normal and 'starred'). | |
| 13 static NSString* const kStarImageName = @"star"; | |
| 14 static NSString* const kStarredImageName = @"starred"; | |
| 15 | |
| 16 @interface ToolbarController(Private) | |
| 17 - (void)initCommandStatus:(CommandUpdater*)commands; | |
| 18 @end | |
| 19 | |
| 20 @implementation ToolbarController | |
| 21 | |
| 22 - (id)initWithModel:(ToolbarModel*)model | |
| 23 commands:(CommandUpdater*)commands { | |
| 24 if ((self = [super initWithNibName:@"Toolbar" bundle:nil])) { | |
|
TVL
2009/04/09 15:53:00
dcheck model and commands like the other classes d
pink (ping after 24hrs)
2009/04/09 16:00:48
Done.
| |
| 25 toolbarModel_ = model; | |
| 26 commands_ = commands; | |
| 27 | |
| 28 // Register for notifications about state changes for the toolbar buttons | |
| 29 commandObserver_ = new CommandObserverBridge(self, commands); | |
| 30 commandObserver_->ObserveCommand(IDC_BACK); | |
| 31 commandObserver_->ObserveCommand(IDC_FORWARD); | |
| 32 commandObserver_->ObserveCommand(IDC_RELOAD); | |
| 33 commandObserver_->ObserveCommand(IDC_HOME); | |
| 34 commandObserver_->ObserveCommand(IDC_STAR); | |
| 35 } | |
| 36 return self; | |
| 37 } | |
| 38 | |
| 39 // Called after the view is done loading and the outlets have been hooked up. | |
| 40 // Now we can hook up bridges that rely on UI objects such as the location | |
| 41 // bar and button state. | |
| 42 - (void)awakeFromNib { | |
| 43 [self initCommandStatus:commands_]; | |
| 44 locationBarView_ = new LocationBarViewMac(locationBar_); | |
| 45 locationBarView_->Init(); | |
| 46 [locationBar_ setStringValue:@"http://dev.chromium.org"]; | |
| 47 } | |
| 48 | |
| 49 - (void)dealloc { | |
| 50 delete locationBarView_; | |
| 51 delete commandObserver_; | |
| 52 [super dealloc]; | |
| 53 } | |
| 54 | |
| 55 - (LocationBar*)locationBar { | |
| 56 return locationBarView_; | |
| 57 } | |
| 58 | |
| 59 - (void)focusLocationBar { | |
| 60 if (locationBarView_) { | |
| 61 locationBarView_->FocusLocation(); | |
| 62 } | |
| 63 } | |
| 64 | |
| 65 // Called when the state for a command changes to |enabled|. Update the | |
| 66 // corresponding UI element. | |
| 67 - (void)enabledStateChangedForCommand:(NSInteger)command enabled:(BOOL)enabled { | |
| 68 NSButton* button = nil; | |
| 69 switch (command) { | |
| 70 case IDC_BACK: | |
| 71 button = backButton_; | |
| 72 break; | |
| 73 case IDC_FORWARD: | |
| 74 button = forwardButton_; | |
| 75 break; | |
| 76 case IDC_HOME: | |
| 77 // TODO(pinkerton): add home button | |
| 78 break; | |
| 79 case IDC_STAR: | |
| 80 button = starButton_; | |
| 81 break; | |
|
TVL
2009/04/09 15:53:00
fix the indents here
pink (ping after 24hrs)
2009/04/09 16:00:48
Done.
| |
| 82 } | |
| 83 [button setEnabled:enabled]; | |
| 84 } | |
| 85 | |
| 86 // Init the enabled state of the buttons on the toolbar to match the state in | |
| 87 // the controller. | |
| 88 - (void)initCommandStatus:(CommandUpdater*)commands { | |
| 89 [backButton_ setEnabled:commands->IsCommandEnabled(IDC_BACK) ? YES : NO]; | |
| 90 [forwardButton_ | |
| 91 setEnabled:commands->IsCommandEnabled(IDC_FORWARD) ? YES : NO]; | |
| 92 [reloadButton_ | |
| 93 setEnabled:commands->IsCommandEnabled(IDC_RELOAD) ? YES : NO]; | |
| 94 [starButton_ setEnabled:commands->IsCommandEnabled(IDC_STAR) ? YES : NO]; | |
|
TVL
2009/04/09 15:53:00
todo(pinkerton) home button
pink (ping after 24hrs)
2009/04/09 16:00:48
Done.
| |
| 95 } | |
| 96 | |
| 97 - (void)updateToolbarWithContents:(TabContents*)tab { | |
| 98 // TODO(pinkerton): there's a lot of ui code in autocomplete_edit.cc | |
| 99 // that we'll want to duplicate. For now, just handle setting the text. | |
| 100 | |
| 101 // TODO(pinkerton): update the security lock icon and background color | |
| 102 | |
| 103 NSString* urlString = base::SysWideToNSString(toolbarModel_->GetText()); | |
| 104 [locationBar_ setStringValue:urlString]; | |
| 105 } | |
| 106 | |
| 107 - (void)setStarredState:(BOOL)isStarred { | |
| 108 NSString* starImageName = kStarImageName; | |
| 109 if (isStarred) | |
| 110 starImageName = kStarredImageName; | |
| 111 [starButton_ setImage:[NSImage imageNamed:starImageName]]; | |
| 112 } | |
| 113 | |
| 114 - (void)setIsLoading:(BOOL)isLoading { | |
| 115 NSString* imageName = @"go"; | |
| 116 if (isLoading) | |
| 117 imageName = @"stop"; | |
| 118 [goButton_ setImage:[NSImage imageNamed:imageName]]; | |
| 119 } | |
| 120 | |
| 121 @end | |
| OLD | NEW |