OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/wrench_menu_controller.h" | 5 #import "chrome/browser/cocoa/wrench_menu_controller.h" |
6 | 6 |
7 #include "app/l10n_util.h" | 7 #include "app/l10n_util.h" |
8 #include "app/menus/menu_model.h" | 8 #include "app/menus/menu_model.h" |
9 #include "base/sys_string_conversions.h" | 9 #include "base/sys_string_conversions.h" |
10 #include "chrome/app/chrome_dll_resource.h" | 10 #include "chrome/app/chrome_dll_resource.h" |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 | 162 |
163 // Used to perform the actual dispatch on the outermost runloop. | 163 // Used to perform the actual dispatch on the outermost runloop. |
164 - (void)performCommandDispatch:(NSNumber*)tag { | 164 - (void)performCommandDispatch:(NSNumber*)tag { |
165 [self wrenchMenuModel]->ExecuteCommand([tag intValue]); | 165 [self wrenchMenuModel]->ExecuteCommand([tag intValue]); |
166 } | 166 } |
167 | 167 |
168 - (WrenchMenuModel*)wrenchMenuModel { | 168 - (WrenchMenuModel*)wrenchMenuModel { |
169 return static_cast<WrenchMenuModel*>(model_); | 169 return static_cast<WrenchMenuModel*>(model_); |
170 } | 170 } |
171 | 171 |
172 // Inserts the update available notification menu item. | |
173 - (void)insertUpdateAvailableItem { | |
174 WrenchMenuModel* model = [self wrenchMenuModel]; | |
175 // Don't insert the item multiple times. | |
176 if (!model || model->GetIndexOfCommandId(IDC_ABOUT) != -1) | |
177 return; | |
178 | |
179 // Update the model manually because the model is static because other | |
180 // platforms always have an About item. | |
181 int index = model->GetIndexOfCommandId(IDC_OPTIONS) + 1; | |
182 model->InsertItemAt(index, IDC_ABOUT, | |
183 l10n_util::GetStringFUTF16(IDS_ABOUT, | |
184 l10n_util::GetStringUTF16(IDS_PRODUCT_NAME))); | |
185 | |
186 // The model does not broadcast change notifications to its delegate, so | |
187 // insert the actual menu item ourselves. | |
188 NSInteger menuIndex = [[self menu] indexOfItemWithTag:index]; | |
189 [self addItemToMenu:[self menu] | |
190 atIndex:menuIndex | |
191 fromModel:model | |
192 modelIndex:index]; | |
193 | |
194 // Since the tag of each menu item is the index within the model, they need | |
195 // to be adjusted after insertion. | |
196 for (NSInteger i = menuIndex + 1; i < [[self menu] numberOfItems]; ++i) { | |
197 NSMenuItem* item = [[self menu] itemAtIndex:i]; | |
198 [item setTag:[item tag] + 1]; | |
199 } | |
200 } | |
201 | |
202 // Fit the localized strings into the Cut/Copy/Paste control, then resize the | 172 // Fit the localized strings into the Cut/Copy/Paste control, then resize the |
203 // whole menu item accordingly. | 173 // whole menu item accordingly. |
204 - (void)adjustPositioning { | 174 - (void)adjustPositioning { |
205 const CGFloat kButtonPadding = 12; | 175 const CGFloat kButtonPadding = 12; |
206 CGFloat delta = 0; | 176 CGFloat delta = 0; |
207 | 177 |
208 // Go through the three buttons from right-to-left, adjusting the size to fit | 178 // Go through the three buttons from right-to-left, adjusting the size to fit |
209 // the localized strings while keeping them all aligned on their horizontal | 179 // the localized strings while keeping them all aligned on their horizontal |
210 // edges. | 180 // edges. |
211 const size_t kAdjustViewCount = 3; | 181 const size_t kAdjustViewCount = 3; |
(...skipping 28 matching lines...) Expand all Loading... |
240 parentFrame.size.width += delta; | 210 parentFrame.size.width += delta; |
241 parentFrame.origin.x -= delta; | 211 parentFrame.origin.x -= delta; |
242 [[editCut_ superview] setFrame:parentFrame]; | 212 [[editCut_ superview] setFrame:parentFrame]; |
243 } | 213 } |
244 | 214 |
245 - (NSButton*)zoomDisplay { | 215 - (NSButton*)zoomDisplay { |
246 return zoomDisplay_; | 216 return zoomDisplay_; |
247 } | 217 } |
248 | 218 |
249 @end // @implementation WrenchMenuController | 219 @end // @implementation WrenchMenuController |
OLD | NEW |