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

Side by Side Diff: chrome/browser/ui/cocoa/toolbar/toolbar_controller.mm

Issue 7948003: Update error badge on wrench menu button (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address review comments Created 9 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | chrome/browser/ui/global_error_service.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/ui/cocoa/toolbar/toolbar_controller.h" 5 #import "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/mac/mac_util.h" 9 #include "base/mac/mac_util.h"
10 #include "base/memory/singleton.h" 10 #include "base/memory/singleton.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 const CGFloat kMinimumLocationBarWidth = 100.0; 74 const CGFloat kMinimumLocationBarWidth = 100.0;
75 75
76 // The duration of any animation that occurs within the toolbar in seconds. 76 // The duration of any animation that occurs within the toolbar in seconds.
77 const CGFloat kAnimationDuration = 0.2; 77 const CGFloat kAnimationDuration = 0.2;
78 78
79 // The amount of left padding that the wrench menu should have. 79 // The amount of left padding that the wrench menu should have.
80 const CGFloat kWrenchMenuLeftPadding = 3.0; 80 const CGFloat kWrenchMenuLeftPadding = 3.0;
81 81
82 } // namespace 82 } // namespace
83 83
84 @interface ToolbarController(Private) 84 @interface ToolbarController()
85 @property(assign, nonatomic) Browser* browser;
85 - (void)addAccessibilityDescriptions; 86 - (void)addAccessibilityDescriptions;
86 - (void)initCommandStatus:(CommandUpdater*)commands; 87 - (void)initCommandStatus:(CommandUpdater*)commands;
87 - (void)prefChanged:(std::string*)prefName; 88 - (void)prefChanged:(std::string*)prefName;
88 - (BackgroundGradientView*)backgroundGradientView; 89 - (BackgroundGradientView*)backgroundGradientView;
89 - (void)toolbarFrameChanged; 90 - (void)toolbarFrameChanged;
90 - (void)pinLocationBarToLeftOfBrowserActionsContainerAndAnimate:(BOOL)animate; 91 - (void)pinLocationBarToLeftOfBrowserActionsContainerAndAnimate:(BOOL)animate;
91 - (void)maintainMinimumLocationBarWidth; 92 - (void)maintainMinimumLocationBarWidth;
92 - (void)adjustBrowserActionsContainerForNewWindow:(NSNotification*)notification; 93 - (void)adjustBrowserActionsContainerForNewWindow:(NSNotification*)notification;
93 - (void)browserActionsContainerDragged:(NSNotification*)notification; 94 - (void)browserActionsContainerDragged:(NSNotification*)notification;
94 - (void)browserActionsContainerDragFinished:(NSNotification*)notification; 95 - (void)browserActionsContainerDragFinished:(NSNotification*)notification;
(...skipping 26 matching lines...) Expand all
121 122
122 // A class registered for C++ notifications. This is used to detect changes in 123 // A class registered for C++ notifications. This is used to detect changes in
123 // preferences and upgrade available notifications. Bridges the notification 124 // preferences and upgrade available notifications. Bridges the notification
124 // back to the ToolbarController. 125 // back to the ToolbarController.
125 class NotificationBridge : public NotificationObserver { 126 class NotificationBridge : public NotificationObserver {
126 public: 127 public:
127 explicit NotificationBridge(ToolbarController* controller) 128 explicit NotificationBridge(ToolbarController* controller)
128 : controller_(controller) { 129 : controller_(controller) {
129 registrar_.Add(this, chrome::NOTIFICATION_UPGRADE_RECOMMENDED, 130 registrar_.Add(this, chrome::NOTIFICATION_UPGRADE_RECOMMENDED,
130 NotificationService::AllSources()); 131 NotificationService::AllSources());
132 registrar_.Add(this, chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED,
133 Source<Profile>([controller browser]->profile()));
131 } 134 }
132 135
133 // Overridden from NotificationObserver: 136 // Overridden from NotificationObserver:
134 virtual void Observe(int type, 137 virtual void Observe(int type,
135 const NotificationSource& source, 138 const NotificationSource& source,
136 const NotificationDetails& details) { 139 const NotificationDetails& details) {
137 switch (type) { 140 switch (type) {
138 case chrome::NOTIFICATION_PREF_CHANGED: 141 case chrome::NOTIFICATION_PREF_CHANGED:
139 [controller_ prefChanged:Details<std::string>(details).ptr()]; 142 [controller_ prefChanged:Details<std::string>(details).ptr()];
140 break; 143 break;
141 case chrome::NOTIFICATION_UPGRADE_RECOMMENDED: 144 case chrome::NOTIFICATION_UPGRADE_RECOMMENDED:
145 case chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED:
142 [controller_ badgeWrenchMenuIfNeeded]; 146 [controller_ badgeWrenchMenuIfNeeded];
143 break; 147 break;
144 default: 148 default:
145 NOTREACHED(); 149 NOTREACHED();
146 } 150 }
147 } 151 }
148 152
149 private: 153 private:
150 ToolbarController* controller_; // weak, owns us 154 ToolbarController* controller_; // weak, owns us
151 155
152 NotificationRegistrar registrar_; 156 NotificationRegistrar registrar_;
153 }; 157 };
154 158
155 } // namespace ToolbarControllerInternal 159 } // namespace ToolbarControllerInternal
156 160
157 @implementation ToolbarController 161 @implementation ToolbarController
158 162
163 @synthesize browser = browser_;
164
159 - (id)initWithModel:(ToolbarModel*)model 165 - (id)initWithModel:(ToolbarModel*)model
160 commands:(CommandUpdater*)commands 166 commands:(CommandUpdater*)commands
161 profile:(Profile*)profile 167 profile:(Profile*)profile
162 browser:(Browser*)browser 168 browser:(Browser*)browser
163 resizeDelegate:(id<ViewResizer>)resizeDelegate 169 resizeDelegate:(id<ViewResizer>)resizeDelegate
164 nibFileNamed:(NSString*)nibName { 170 nibFileNamed:(NSString*)nibName {
165 DCHECK(model && commands && profile && [nibName length]); 171 DCHECK(model && commands && profile && [nibName length]);
166 if ((self = [super initWithNibName:nibName 172 if ((self = [super initWithNibName:nibName
167 bundle:base::mac::MainAppBundle()])) { 173 bundle:base::mac::MainAppBundle()])) {
168 toolbarModel_ = model; 174 toolbarModel_ = model;
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after
805 - (void)hideDropURLsIndicatorInView:(NSView*)view { 811 - (void)hideDropURLsIndicatorInView:(NSView*)view {
806 // Do nothing. 812 // Do nothing.
807 } 813 }
808 814
809 // (URLDropTargetController protocol) 815 // (URLDropTargetController protocol)
810 - (BOOL)isUnsupportedDropData:(id<NSDraggingInfo>)info { 816 - (BOOL)isUnsupportedDropData:(id<NSDraggingInfo>)info {
811 return drag_util::IsUnsupportedDropData(profile_, info); 817 return drag_util::IsUnsupportedDropData(profile_, info);
812 } 818 }
813 819
814 @end 820 @end
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/global_error_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698