Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "chrome/browser/ui/toolbar/wrench_menu_model.h" | 5 #include "chrome/browser/ui/toolbar/wrench_menu_model.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 422 } | 422 } |
| 423 | 423 |
| 424 // For testing. | 424 // For testing. |
| 425 WrenchMenuModel::WrenchMenuModel() | 425 WrenchMenuModel::WrenchMenuModel() |
| 426 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::SimpleMenuModel(this)), | 426 : ALLOW_THIS_IN_INITIALIZER_LIST(ui::SimpleMenuModel(this)), |
| 427 provider_(NULL), | 427 provider_(NULL), |
| 428 browser_(NULL), | 428 browser_(NULL), |
| 429 tabstrip_model_(NULL) { | 429 tabstrip_model_(NULL) { |
| 430 } | 430 } |
| 431 | 431 |
| 432 #if !defined(OS_CHROMEOS) | |
| 433 void WrenchMenuModel::Build() { | 432 void WrenchMenuModel::Build() { |
| 434 AddItemWithStringId(IDC_NEW_TAB, IDS_NEW_TAB); | 433 AddItemWithStringId(IDC_NEW_TAB, IDS_NEW_TAB); |
| 435 AddItemWithStringId(IDC_NEW_WINDOW, IDS_NEW_WINDOW); | 434 AddItemWithStringId(IDC_NEW_WINDOW, IDS_NEW_WINDOW); |
| 435 #if defined(OS_CHROMEOS) | |
| 436 if (!CommandLine::ForCurrentProcess()->HasSwitch(switches::kGuestSession)) | |
| 437 AddItemWithStringId(IDC_NEW_INCOGNITO_WINDOW, IDS_NEW_INCOGNITO_WINDOW); | |
| 438 #else | |
| 436 AddItemWithStringId(IDC_NEW_INCOGNITO_WINDOW, IDS_NEW_INCOGNITO_WINDOW); | 439 AddItemWithStringId(IDC_NEW_INCOGNITO_WINDOW, IDS_NEW_INCOGNITO_WINDOW); |
| 440 #endif | |
| 437 | 441 |
| 438 bookmark_sub_menu_model_.reset(new BookmarkSubMenuModel(this, browser_)); | 442 bookmark_sub_menu_model_.reset(new BookmarkSubMenuModel(this, browser_)); |
| 439 AddSubMenuWithStringId(IDC_BOOKMARKS_MENU, IDS_BOOKMARKS_MENU, | 443 AddSubMenuWithStringId(IDC_BOOKMARKS_MENU, IDS_BOOKMARKS_MENU, |
| 440 bookmark_sub_menu_model_.get()); | 444 bookmark_sub_menu_model_.get()); |
| 441 | 445 |
| 442 AddSeparator(); | 446 AddSeparator(); |
| 443 #if defined(OS_POSIX) && !defined(TOOLKIT_VIEWS) | 447 #if defined(OS_POSIX) && !defined(TOOLKIT_VIEWS) |
| 444 // WARNING: Mac does not use the ButtonMenuItemModel, but instead defines the | 448 // WARNING: Mac does not use the ButtonMenuItemModel, but instead defines the |
| 445 // layout for this menu item in Toolbar.xib. It does, however, use the | 449 // layout for this menu item in Toolbar.xib. It does, however, use the |
| 446 // command_id value from AddButtonItem() to identify this special item. | 450 // command_id value from AddButtonItem() to identify this special item. |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 482 tools_menu_model_.reset(new ToolsMenuModel(this, browser_)); | 486 tools_menu_model_.reset(new ToolsMenuModel(this, browser_)); |
| 483 AddSubMenuWithStringId(IDC_ZOOM_MENU, IDS_TOOLS_MENU, | 487 AddSubMenuWithStringId(IDC_ZOOM_MENU, IDS_TOOLS_MENU, |
| 484 tools_menu_model_.get()); | 488 tools_menu_model_.get()); |
| 485 | 489 |
| 486 AddSeparator(); | 490 AddSeparator(); |
| 487 | 491 |
| 488 AddItemWithStringId(IDC_SHOW_HISTORY, IDS_SHOW_HISTORY); | 492 AddItemWithStringId(IDC_SHOW_HISTORY, IDS_SHOW_HISTORY); |
| 489 AddItemWithStringId(IDC_SHOW_DOWNLOADS, IDS_SHOW_DOWNLOADS); | 493 AddItemWithStringId(IDC_SHOW_DOWNLOADS, IDS_SHOW_DOWNLOADS); |
| 490 AddSeparator(); | 494 AddSeparator(); |
| 491 | 495 |
| 492 if (browser_->profile()->GetOriginalProfile()->IsSyncAccessible()) { | 496 if (browser_defaults::kShowSyncSetupMenuItem && |
| 497 browser_->profile()->GetOriginalProfile()->IsSyncAccessible()) { | |
| 493 const string16 short_product_name = | 498 const string16 short_product_name = |
| 494 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME); | 499 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME); |
| 495 AddItem(IDC_SHOW_SYNC_SETUP, l10n_util::GetStringFUTF16( | 500 AddItem(IDC_SHOW_SYNC_SETUP, l10n_util::GetStringFUTF16( |
| 496 IDS_SYNC_MENU_PRE_SYNCED_LABEL, short_product_name)); | 501 IDS_SYNC_MENU_PRE_SYNCED_LABEL, short_product_name)); |
| 497 AddSeparator(); | 502 AddSeparator(); |
| 498 } | 503 } |
| 499 | 504 |
| 500 AddItemWithStringId(IDC_OPTIONS, IDS_SETTINGS); | 505 AddItemWithStringId(IDC_OPTIONS, IDS_SETTINGS); |
| 501 AddItem(IDC_ABOUT, l10n_util::GetStringUTF16(IDS_ABOUT)); | 506 AddItem(IDC_ABOUT, l10n_util::GetStringUTF16(IDS_ABOUT)); |
| 502 string16 num_background_pages = base::FormatNumber( | 507 string16 num_background_pages = base::FormatNumber( |
| 503 TaskManager::GetBackgroundPageCount()); | 508 TaskManager::GetBackgroundPageCount()); |
| 504 AddItem(IDC_VIEW_BACKGROUND_PAGES, l10n_util::GetStringFUTF16( | 509 AddItem(IDC_VIEW_BACKGROUND_PAGES, l10n_util::GetStringFUTF16( |
| 505 IDS_VIEW_BACKGROUND_PAGES, num_background_pages)); | 510 IDS_VIEW_BACKGROUND_PAGES, num_background_pages)); |
| 506 AddItem(IDC_UPGRADE_DIALOG, l10n_util::GetStringUTF16(IDS_UPDATE_NOW)); | 511 if (browser_defaults::kShowUpgradeMenuItem) |
| 512 AddItem(IDC_UPGRADE_DIALOG, l10n_util::GetStringUTF16(IDS_UPDATE_NOW)); | |
| 507 AddItem(IDC_VIEW_INCOMPATIBILITIES, l10n_util::GetStringUTF16( | 513 AddItem(IDC_VIEW_INCOMPATIBILITIES, l10n_util::GetStringUTF16( |
| 508 IDS_VIEW_INCOMPATIBILITIES)); | 514 IDS_VIEW_INCOMPATIBILITIES)); |
| 509 | 515 |
| 510 #if defined(OS_WIN) | 516 #if defined(OS_WIN) |
| 511 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | |
| 512 SetIcon(GetIndexOfCommandId(IDC_VIEW_INCOMPATIBILITIES), | 517 SetIcon(GetIndexOfCommandId(IDC_VIEW_INCOMPATIBILITIES), |
| 513 *rb.GetBitmapNamed(IDR_CONFLICT_MENU)); | 518 *ui::ResourceBundle::GetSharedInstance(). |
|
tfarina
2012/04/13 20:13:59
nit: hum? could you revert this change?
sky
2012/04/13 21:45:09
No, otherwise 524 is going to be problematic.
tfarina
2012/04/13 22:39:53
OK, I see. So we have two options here:
Move rb t
sky
2012/04/13 22:54:06
You can't move rb to upper scope since it isn't al
| |
| 519 GetBitmapNamed(IDR_CONFLICT_MENU)); | |
| 514 #endif | 520 #endif |
| 515 | 521 |
| 516 AddItemWithStringId(IDC_HELP_PAGE, IDS_HELP_PAGE); | 522 AddItemWithStringId(IDC_HELP_PAGE, IDS_HELP_PAGE); |
| 523 if (browser_defaults::kShowHelpMenuItemIcon) { | |
| 524 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | |
|
tfarina
2012/04/13 20:13:59
nit: please ui::ResourceBundle
| |
| 525 SetIcon(GetIndexOfCommandId(IDC_HELP_PAGE), | |
| 526 *rb.GetBitmapNamed(IDR_HELP_MENU)); | |
| 527 } | |
| 528 | |
| 529 if (browser_defaults::kShowFeedbackMenuItem) | |
| 530 AddItemWithStringId(IDC_FEEDBACK, IDS_FEEDBACK); | |
| 517 | 531 |
| 518 AddGlobalErrorMenuItems(); | 532 AddGlobalErrorMenuItems(); |
| 519 | 533 |
| 520 if (browser_defaults::kShowExitMenuItem) { | 534 if (browser_defaults::kShowExitMenuItem) { |
| 521 AddSeparator(); | 535 AddSeparator(); |
| 522 AddItemWithStringId(IDC_EXIT, IDS_EXIT); | 536 AddItemWithStringId(IDC_EXIT, IDS_EXIT); |
| 523 } | 537 } |
| 524 } | 538 } |
| 525 #endif // !OS_CHROMEOS | |
| 526 | 539 |
| 527 void WrenchMenuModel::AddGlobalErrorMenuItems() { | 540 void WrenchMenuModel::AddGlobalErrorMenuItems() { |
| 528 // TODO(sail): Currently we only build the wrench menu once per browser | 541 // TODO(sail): Currently we only build the wrench menu once per browser |
| 529 // window. This means that if a new error is added after the menu is built | 542 // window. This means that if a new error is added after the menu is built |
| 530 // it won't show in the existing wrench menu. To fix this we need to some | 543 // it won't show in the existing wrench menu. To fix this we need to some |
| 531 // how update the menu if new errors are added. | 544 // how update the menu if new errors are added. |
| 532 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | 545 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
| 533 const GlobalErrorService::GlobalErrorList& errors = | 546 const GlobalErrorService::GlobalErrorList& errors = |
| 534 GlobalErrorServiceFactory::GetForProfile(browser_->profile())->errors(); | 547 GlobalErrorServiceFactory::GetForProfile(browser_->profile())->errors(); |
| 535 for (GlobalErrorService::GlobalErrorList::const_iterator | 548 for (GlobalErrorService::GlobalErrorList::const_iterator |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 574 zoom_label_ = l10n_util::GetStringFUTF16( | 587 zoom_label_ = l10n_util::GetStringFUTF16( |
| 575 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); | 588 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); |
| 576 } | 589 } |
| 577 | 590 |
| 578 string16 WrenchMenuModel::GetSyncMenuLabel() const { | 591 string16 WrenchMenuModel::GetSyncMenuLabel() const { |
| 579 Profile* profile = browser_->profile()->GetOriginalProfile(); | 592 Profile* profile = browser_->profile()->GetOriginalProfile(); |
| 580 return sync_ui_util::GetSyncMenuLabel( | 593 return sync_ui_util::GetSyncMenuLabel( |
| 581 ProfileSyncServiceFactory::GetForProfile(profile), | 594 ProfileSyncServiceFactory::GetForProfile(profile), |
| 582 *SigninManagerFactory::GetForProfile(profile)); | 595 *SigninManagerFactory::GetForProfile(profile)); |
| 583 } | 596 } |
| OLD | NEW |