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 24 matching lines...) Expand all Loading... | |
| 35 #include "chrome/browser/ui/metro_pin_tab_helper.h" | 35 #include "chrome/browser/ui/metro_pin_tab_helper.h" |
| 36 #include "chrome/browser/ui/tab_contents/tab_contents.h" | 36 #include "chrome/browser/ui/tab_contents/tab_contents.h" |
| 37 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 37 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 38 #include "chrome/browser/ui/toolbar/encoding_menu_controller.h" | 38 #include "chrome/browser/ui/toolbar/encoding_menu_controller.h" |
| 39 #include "chrome/browser/upgrade_detector.h" | 39 #include "chrome/browser/upgrade_detector.h" |
| 40 #include "chrome/common/chrome_paths.h" | 40 #include "chrome/common/chrome_paths.h" |
| 41 #include "chrome/common/chrome_switches.h" | 41 #include "chrome/common/chrome_switches.h" |
| 42 #include "chrome/common/pref_names.h" | 42 #include "chrome/common/pref_names.h" |
| 43 #include "chrome/common/profiling.h" | 43 #include "chrome/common/profiling.h" |
| 44 #include "content/public/browser/host_zoom_map.h" | 44 #include "content/public/browser/host_zoom_map.h" |
| 45 #include "content/public/browser/navigation_entry.h" | |
| 45 #include "content/public/browser/notification_service.h" | 46 #include "content/public/browser/notification_service.h" |
| 46 #include "content/public/browser/notification_source.h" | 47 #include "content/public/browser/notification_source.h" |
| 47 #include "content/public/browser/notification_types.h" | 48 #include "content/public/browser/notification_types.h" |
| 48 #include "content/public/browser/user_metrics.h" | 49 #include "content/public/browser/user_metrics.h" |
| 49 #include "content/public/browser/web_contents.h" | 50 #include "content/public/browser/web_contents.h" |
| 50 #include "grit/chromium_strings.h" | 51 #include "grit/chromium_strings.h" |
| 51 #include "grit/generated_resources.h" | 52 #include "grit/generated_resources.h" |
| 52 #include "grit/theme_resources.h" | 53 #include "grit/theme_resources.h" |
| 53 #include "ui/base/l10n/l10n_util.h" | 54 #include "ui/base/l10n/l10n_util.h" |
| 54 #include "ui/base/layout.h" | 55 #include "ui/base/layout.h" |
| 55 #include "ui/base/models/button_menu_item_model.h" | 56 #include "ui/base/models/button_menu_item_model.h" |
| 56 #include "ui/base/resource/resource_bundle.h" | 57 #include "ui/base/resource/resource_bundle.h" |
| 58 #include "ui/base/touch/touch_factory.h" | |
| 57 #include "ui/gfx/image/image.h" | 59 #include "ui/gfx/image/image.h" |
| 58 #include "ui/gfx/image/image_skia.h" | 60 #include "ui/gfx/image/image_skia.h" |
| 59 | 61 |
| 60 #if defined(TOOLKIT_GTK) | 62 #if defined(TOOLKIT_GTK) |
| 61 #include <gtk/gtk.h> | 63 #include <gtk/gtk.h> |
| 62 #include "chrome/browser/ui/gtk/gtk_util.h" | 64 #include "chrome/browser/ui/gtk/gtk_util.h" |
| 63 #endif | 65 #endif |
| 64 | 66 |
| 65 #if defined(OS_WIN) | 67 #if defined(OS_WIN) |
| 66 #include "base/win/metro.h" | 68 #include "base/win/metro.h" |
| (...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 354 content::RecordAction(UserMetricsAction("ShowHelpTabViaWrenchMenu")); | 356 content::RecordAction(UserMetricsAction("ShowHelpTabViaWrenchMenu")); |
| 355 | 357 |
| 356 chrome::ExecuteCommand(browser_, command_id); | 358 chrome::ExecuteCommand(browser_, command_id); |
| 357 } | 359 } |
| 358 | 360 |
| 359 bool WrenchMenuModel::IsCommandIdChecked(int command_id) const { | 361 bool WrenchMenuModel::IsCommandIdChecked(int command_id) const { |
| 360 if (command_id == IDC_SHOW_BOOKMARK_BAR) { | 362 if (command_id == IDC_SHOW_BOOKMARK_BAR) { |
| 361 return browser_->profile()->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar); | 363 return browser_->profile()->GetPrefs()->GetBoolean(prefs::kShowBookmarkBar); |
| 362 } else if (command_id == IDC_PROFILING_ENABLED) { | 364 } else if (command_id == IDC_PROFILING_ENABLED) { |
| 363 return Profiling::BeingProfiled(); | 365 return Profiling::BeingProfiled(); |
| 366 } else if (command_id == IDC_TOGGLE_REQUEST_TABLET_SITE) { | |
| 367 content::NavigationEntry* entry = GetActiveNavigationEntry(); | |
| 368 if (!entry) | |
| 369 return false; // The control is disabled in this case. | |
| 370 return entry->GetIsOverridingUserAgent(); | |
| 364 } | 371 } |
| 365 | 372 |
| 366 return false; | 373 return false; |
| 367 } | 374 } |
| 368 | 375 |
| 369 bool WrenchMenuModel::IsCommandIdEnabled(int command_id) const { | 376 bool WrenchMenuModel::IsCommandIdEnabled(int command_id) const { |
| 370 GlobalError* error = GlobalErrorServiceFactory::GetForProfile( | 377 GlobalError* error = GlobalErrorServiceFactory::GetForProfile( |
| 371 browser_->profile())->GetGlobalErrorByMenuItemCommandID(command_id); | 378 browser_->profile())->GetGlobalErrorByMenuItemCommandID(command_id); |
| 372 if (error) | 379 if (error) |
| 373 return true; | 380 return true; |
| 374 | 381 |
| 382 if (command_id == IDC_TOGGLE_REQUEST_TABLET_SITE) { | |
| 383 // Disable the control when there is no active navigation entry. | |
| 384 // Otherwise follow "normal" rules. | |
| 385 if (!GetActiveNavigationEntry()) | |
| 386 return false; | |
| 387 } | |
| 388 | |
| 375 return chrome::IsCommandEnabled(browser_, command_id); | 389 return chrome::IsCommandEnabled(browser_, command_id); |
| 376 } | 390 } |
| 377 | 391 |
| 378 bool WrenchMenuModel::IsCommandIdVisible(int command_id) const { | 392 bool WrenchMenuModel::IsCommandIdVisible(int command_id) const { |
| 379 #if defined(OS_WIN) | 393 #if defined(OS_WIN) |
| 380 if (command_id == IDC_VIEW_INCOMPATIBILITIES) { | 394 if (command_id == IDC_VIEW_INCOMPATIBILITIES) { |
| 381 EnumerateModulesModel* loaded_modules = | 395 EnumerateModulesModel* loaded_modules = |
| 382 EnumerateModulesModel::GetInstance(); | 396 EnumerateModulesModel::GetInstance(); |
| 383 if (loaded_modules->confirmed_bad_modules_detected() <= 0) | 397 if (loaded_modules->confirmed_bad_modules_detected() <= 0) |
| 384 return false; | 398 return false; |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 498 browser_->profile()->GetOriginalProfile()->IsSyncAccessible()) { | 512 browser_->profile()->GetOriginalProfile()->IsSyncAccessible()) { |
| 499 const string16 short_product_name = | 513 const string16 short_product_name = |
| 500 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME); | 514 l10n_util::GetStringUTF16(IDS_SHORT_PRODUCT_NAME); |
| 501 AddItem(IDC_SHOW_SYNC_SETUP, l10n_util::GetStringFUTF16( | 515 AddItem(IDC_SHOW_SYNC_SETUP, l10n_util::GetStringFUTF16( |
| 502 IDS_SYNC_MENU_PRE_SYNCED_LABEL, short_product_name)); | 516 IDS_SYNC_MENU_PRE_SYNCED_LABEL, short_product_name)); |
| 503 AddSeparator(); | 517 AddSeparator(); |
| 504 } | 518 } |
| 505 | 519 |
| 506 AddItemWithStringId(IDC_OPTIONS, IDS_SETTINGS); | 520 AddItemWithStringId(IDC_OPTIONS, IDS_SETTINGS); |
| 507 | 521 |
| 522 #if defined(OS_CHROMEOS) | |
| 523 // Note: on Chromebooks with default to "Desktop Site" even for | |
| 524 // Chromebooks with a touch screen. | |
| 525 // The following toggle lets the user switch to | |
| 526 // "Tablet Site". This functionality is under two flags: | |
| 527 // - to turn in on only for touch devices (intended use) | |
| 528 // - to turn it on regardless of touch device (for testing) | |
| 529 bool enable_flag = CommandLine::ForCurrentProcess()->HasSwitch( | |
| 530 switches::kEnableRequestTabletSite); | |
| 531 bool force_flag = CommandLine::ForCurrentProcess()->HasSwitch( | |
| 532 switches::kEnableRequestTabletSiteEvenIfNonTouchDevice); | |
| 533 if (force_flag || | |
| 534 (enable_flag && ui::TouchFactory::GetInstance()->IsTouchDevicePresent())) | |
| 535 AddCheckItemWithStringId(IDC_TOGGLE_REQUEST_TABLET_SITE, | |
| 536 IDS_TOGGLE_REQUEST_TABLET_SITE); | |
| 537 #endif | |
| 538 | |
| 508 if (!is_touch_menu) { | 539 if (!is_touch_menu) { |
| 509 AddItem(IDC_ABOUT, l10n_util::GetStringUTF16(IDS_ABOUT)); | 540 AddItem(IDC_ABOUT, l10n_util::GetStringUTF16(IDS_ABOUT)); |
| 510 string16 num_background_pages = base::FormatNumber( | 541 string16 num_background_pages = base::FormatNumber( |
| 511 TaskManager::GetBackgroundPageCount()); | 542 TaskManager::GetBackgroundPageCount()); |
| 512 AddItem(IDC_VIEW_BACKGROUND_PAGES, l10n_util::GetStringFUTF16( | 543 AddItem(IDC_VIEW_BACKGROUND_PAGES, l10n_util::GetStringFUTF16( |
| 513 IDS_VIEW_BACKGROUND_PAGES, num_background_pages)); | 544 IDS_VIEW_BACKGROUND_PAGES, num_background_pages)); |
| 514 } | 545 } |
| 515 | 546 |
| 516 if (browser_defaults::kShowUpgradeMenuItem) | 547 if (browser_defaults::kShowUpgradeMenuItem) |
| 517 AddItem(IDC_UPGRADE_DIALOG, l10n_util::GetStringUTF16(IDS_UPDATE_NOW)); | 548 AddItem(IDC_UPGRADE_DIALOG, l10n_util::GetStringUTF16(IDS_UPDATE_NOW)); |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 633 bool enable_decrement = false; | 664 bool enable_decrement = false; |
| 634 int zoom_percent = 100; | 665 int zoom_percent = 100; |
| 635 if (chrome::GetActiveWebContents(browser_)) { | 666 if (chrome::GetActiveWebContents(browser_)) { |
| 636 zoom_percent = chrome::GetActiveWebContents(browser_)->GetZoomPercent( | 667 zoom_percent = chrome::GetActiveWebContents(browser_)->GetZoomPercent( |
| 637 &enable_increment, &enable_decrement); | 668 &enable_increment, &enable_decrement); |
| 638 } | 669 } |
| 639 zoom_label_ = l10n_util::GetStringFUTF16( | 670 zoom_label_ = l10n_util::GetStringFUTF16( |
| 640 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); | 671 IDS_ZOOM_PERCENT, base::IntToString16(zoom_percent)); |
| 641 } | 672 } |
| 642 | 673 |
| 674 content::NavigationEntry* WrenchMenuModel::GetActiveNavigationEntry() const | |
|
gone
2012/08/03 21:53:06
Style: Brace goes at the end of the previous line.
sschmitz
2012/08/03 23:25:26
Done.
| |
| 675 { | |
| 676 if (!browser_) | |
| 677 return NULL; | |
| 678 content::WebContents* current_tab = chrome::GetActiveWebContents(browser_); | |
| 679 if (!current_tab) | |
| 680 return NULL; | |
| 681 return current_tab->GetController().GetActiveEntry(); | |
| 682 } | |
| 683 | |
| 643 string16 WrenchMenuModel::GetSyncMenuLabel() const { | 684 string16 WrenchMenuModel::GetSyncMenuLabel() const { |
| 644 Profile* profile = browser_->profile()->GetOriginalProfile(); | 685 Profile* profile = browser_->profile()->GetOriginalProfile(); |
| 645 return sync_ui_util::GetSyncMenuLabel( | 686 return sync_ui_util::GetSyncMenuLabel( |
| 646 ProfileSyncServiceFactory::GetForProfile(profile), | 687 ProfileSyncServiceFactory::GetForProfile(profile), |
| 647 *SigninManagerFactory::GetForProfile(profile)); | 688 *SigninManagerFactory::GetForProfile(profile)); |
| 648 } | 689 } |
| OLD | NEW |