| OLD | NEW | 
|---|
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #import "chrome/browser/cocoa/toolbar_controller.h" | 5 #import "chrome/browser/cocoa/toolbar_controller.h" | 
| 6 | 6 | 
| 7 #include "base/mac_util.h" | 7 #include "base/mac_util.h" | 
| 8 #include "base/sys_string_conversions.h" | 8 #include "base/sys_string_conversions.h" | 
| 9 #include "chrome/app/chrome_dll_resource.h" | 9 #include "chrome/app/chrome_dll_resource.h" | 
| 10 #import "chrome/browser/cocoa/autocomplete_text_field.h" | 10 #import "chrome/browser/cocoa/autocomplete_text_field.h" | 
| 11 #import "chrome/browser/cocoa/autocomplete_text_field_editor.h" | 11 #import "chrome/browser/cocoa/autocomplete_text_field_editor.h" | 
| 12 #import "chrome/browser/cocoa/gradient_button_cell.h" | 12 #import "chrome/browser/cocoa/gradient_button_cell.h" | 
| 13 #import "chrome/browser/cocoa/location_bar_view_mac.h" | 13 #import "chrome/browser/cocoa/location_bar_view_mac.h" | 
| 14 #include "chrome/browser/cocoa/nsimage_cache.h" | 14 #include "chrome/browser/cocoa/nsimage_cache.h" | 
| 15 #include "chrome/browser/profile.h" | 15 #include "chrome/browser/profile.h" | 
| 16 #include "chrome/browser/toolbar_model.h" | 16 #include "chrome/browser/toolbar_model.h" | 
| 17 #include "chrome/common/notification_details.h" | 17 #include "chrome/common/notification_details.h" | 
| 18 #include "chrome/common/notification_observer.h" | 18 #include "chrome/common/notification_observer.h" | 
| 19 #include "chrome/common/notification_type.h" | 19 #include "chrome/common/notification_type.h" | 
| 20 #include "chrome/common/pref_names.h" | 20 #include "chrome/common/pref_names.h" | 
| 21 #include "chrome/common/pref_service.h" | 21 #include "chrome/common/pref_service.h" | 
| 22 | 22 | 
| 23 // Name of image in the bundle for the yellow of the star icon. | 23 // Name of image in the bundle for the yellow of the star icon. | 
| 24 static NSString* const kStarredImageName = @"starred.pdf"; | 24 static NSString* const kStarredImageName = @"starred.pdf"; | 
| 25 | 25 | 
|  | 26 // Height of the toolbar in pixels when the bookmark bar is closed. | 
|  | 27 static const float kBaseToolbarHeight = 39.0; | 
|  | 28 | 
|  | 29 // Overlap (in pixels) between the toolbar and the bookmark bar. | 
|  | 30 static const float kBookmarkBarOverlap = 5.0; | 
|  | 31 | 
| 26 @interface ToolbarController(Private) | 32 @interface ToolbarController(Private) | 
| 27 - (void)initCommandStatus:(CommandUpdater*)commands; | 33 - (void)initCommandStatus:(CommandUpdater*)commands; | 
| 28 - (void)prefChanged:(std::wstring*)prefName; | 34 - (void)prefChanged:(std::wstring*)prefName; | 
| 29 @end | 35 @end | 
| 30 | 36 | 
| 31 namespace ToolbarControllerInternal { | 37 namespace ToolbarControllerInternal { | 
| 32 | 38 | 
| 33 // A C++ class registered for changes in preferences. Bridges the | 39 // A C++ class registered for changes in preferences. Bridges the | 
| 34 // notification back to the ToolbarController. | 40 // notification back to the ToolbarController. | 
| 35 class PrefObserverBridge : public NotificationObserver { | 41 class PrefObserverBridge : public NotificationObserver { | 
| (...skipping 11 matching lines...) Expand all  Loading... | 
| 47   ToolbarController* controller_;  // weak, owns us | 53   ToolbarController* controller_;  // weak, owns us | 
| 48 }; | 54 }; | 
| 49 | 55 | 
| 50 }  // namespace | 56 }  // namespace | 
| 51 | 57 | 
| 52 @implementation ToolbarController | 58 @implementation ToolbarController | 
| 53 | 59 | 
| 54 - (id)initWithModel:(ToolbarModel*)model | 60 - (id)initWithModel:(ToolbarModel*)model | 
| 55            commands:(CommandUpdater*)commands | 61            commands:(CommandUpdater*)commands | 
| 56             profile:(Profile*)profile | 62             profile:(Profile*)profile | 
| 57      webContentView:(NSView*)webContentView | 63      resizeDelegate:(id<ViewResizer>)resizeDelegate | 
| 58        infoBarsView:(NSView*)infoBarsView |  | 
| 59    bookmarkDelegate:(id<BookmarkURLOpener>)delegate { | 64    bookmarkDelegate:(id<BookmarkURLOpener>)delegate { | 
| 60   DCHECK(model && commands && profile); | 65   DCHECK(model && commands && profile); | 
| 61   if ((self = [super initWithNibName:@"Toolbar" | 66   if ((self = [super initWithNibName:@"Toolbar" | 
| 62                               bundle:mac_util::MainAppBundle()])) { | 67                               bundle:mac_util::MainAppBundle()])) { | 
| 63     toolbarModel_ = model; | 68     toolbarModel_ = model; | 
| 64     commands_ = commands; | 69     commands_ = commands; | 
| 65     profile_ = profile; | 70     profile_ = profile; | 
|  | 71     resizeDelegate_ = resizeDelegate; | 
| 66     bookmarkBarDelegate_ = delegate; | 72     bookmarkBarDelegate_ = delegate; | 
| 67     webContentView_ = webContentView; |  | 
| 68     infoBarsView_ = infoBarsView; |  | 
| 69     hasToolbar_ = YES; | 73     hasToolbar_ = YES; | 
| 70 | 74 | 
| 71     // Register for notifications about state changes for the toolbar buttons | 75     // Register for notifications about state changes for the toolbar buttons | 
| 72     commandObserver_.reset(new CommandObserverBridge(self, commands)); | 76     commandObserver_.reset(new CommandObserverBridge(self, commands)); | 
| 73     commandObserver_->ObserveCommand(IDC_BACK); | 77     commandObserver_->ObserveCommand(IDC_BACK); | 
| 74     commandObserver_->ObserveCommand(IDC_FORWARD); | 78     commandObserver_->ObserveCommand(IDC_FORWARD); | 
| 75     commandObserver_->ObserveCommand(IDC_RELOAD); | 79     commandObserver_->ObserveCommand(IDC_RELOAD); | 
| 76     commandObserver_->ObserveCommand(IDC_HOME); | 80     commandObserver_->ObserveCommand(IDC_HOME); | 
| 77     commandObserver_->ObserveCommand(IDC_STAR); | 81     commandObserver_->ObserveCommand(IDC_STAR); | 
| 78   } | 82   } | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
| 102   PrefService* prefs = profile_->GetPrefs(); | 106   PrefService* prefs = profile_->GetPrefs(); | 
| 103   showHomeButton_.Init(prefs::kShowHomeButton, prefs, prefObserver_.get()); | 107   showHomeButton_.Init(prefs::kShowHomeButton, prefs, prefObserver_.get()); | 
| 104   showPageOptionButtons_.Init(prefs::kShowPageOptionsButtons, prefs, | 108   showPageOptionButtons_.Init(prefs::kShowPageOptionsButtons, prefs, | 
| 105                               prefObserver_.get()); | 109                               prefObserver_.get()); | 
| 106   [self showOptionalHomeButton]; | 110   [self showOptionalHomeButton]; | 
| 107   [self showOptionalPageWrenchButtons]; | 111   [self showOptionalPageWrenchButtons]; | 
| 108 | 112 | 
| 109   // Create a sub-controller for the bookmark bar. | 113   // Create a sub-controller for the bookmark bar. | 
| 110   bookmarkBarController_.reset([[BookmarkBarController alloc] | 114   bookmarkBarController_.reset([[BookmarkBarController alloc] | 
| 111                                    initWithProfile:profile_ | 115                                    initWithProfile:profile_ | 
| 112                                         parentView:[self view] | 116                                       initialWidth:NSWidth([[self view] frame]) | 
| 113                                     webContentView:webContentView_ | 117                                     resizeDelegate:self | 
| 114                                       infoBarsView:infoBarsView_ | 118                                        urlDelegate:bookmarkBarDelegate_]); | 
| 115                                           delegate:bookmarkBarDelegate_]); |  | 
| 116 | 119 | 
| 117   // Add bookmark bar to the view hierarchy.  This also triggers the | 120   // Add bookmark bar to the view hierarchy.  This also triggers the | 
| 118   // nib load.  The bookmark bar is defined (in the nib) to be | 121   // nib load.  The bookmark bar is defined (in the nib) to be | 
| 119   // bottom-aligned to it's parent view (among other things), so | 122   // bottom-aligned to it's parent view (among other things), so | 
| 120   // position and resize properties don't need to be set. | 123   // position and resize properties don't need to be set. | 
| 121   [[self view] addSubview:[bookmarkBarController_ view]]; | 124   [[self view] addSubview:[bookmarkBarController_ view]]; | 
| 122 } | 125 } | 
| 123 | 126 | 
|  | 127 - (void)resizeView:(NSView*)view newHeight:(float)height { | 
|  | 128   DCHECK(view == [bookmarkBarController_ view]); | 
|  | 129 | 
|  | 130   // The bookmark bar is always rooted at the bottom of the toolbar view, with | 
|  | 131   // width equal to the toolbar's width.  The toolbar view is resized to | 
|  | 132   // accomodate the new bookmark bar height. | 
|  | 133   NSRect frame = NSMakeRect(0, 0, [[self view] bounds].size.width, height); | 
|  | 134   [view setFrame:frame]; | 
|  | 135 | 
|  | 136   float newToolbarHeight = kBaseToolbarHeight + height - kBookmarkBarOverlap; | 
|  | 137   if (newToolbarHeight < kBaseToolbarHeight) | 
|  | 138     newToolbarHeight = kBaseToolbarHeight; | 
|  | 139 | 
|  | 140   [resizeDelegate_ resizeView:[self view] newHeight:newToolbarHeight]; | 
|  | 141 } | 
|  | 142 | 
| 124 - (LocationBar*)locationBar { | 143 - (LocationBar*)locationBar { | 
| 125   return locationBarView_.get(); | 144   return locationBarView_.get(); | 
| 126 } | 145 } | 
| 127 | 146 | 
| 128 - (void)focusLocationBar { | 147 - (void)focusLocationBar { | 
| 129   if (locationBarView_.get()) { | 148   if (locationBarView_.get()) { | 
| 130     locationBarView_->FocusLocation(); | 149     locationBarView_->FocusLocation(); | 
| 131   } | 150   } | 
| 132 } | 151 } | 
| 133 | 152 | 
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 320                    forView:pageButton_]; | 339                    forView:pageButton_]; | 
| 321 } | 340 } | 
| 322 | 341 | 
| 323 - (IBAction)showWrenchMenu:(id)sender { | 342 - (IBAction)showWrenchMenu:(id)sender { | 
| 324   [NSMenu popUpContextMenu:wrenchMenu_ | 343   [NSMenu popUpContextMenu:wrenchMenu_ | 
| 325                  withEvent:[NSApp currentEvent] | 344                  withEvent:[NSApp currentEvent] | 
| 326                    forView:wrenchButton_]; | 345                    forView:wrenchButton_]; | 
| 327 } | 346 } | 
| 328 | 347 | 
| 329 @end | 348 @end | 
| OLD | NEW | 
|---|