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

Side by Side Diff: chrome/browser/tab_contents/render_view_context_menu.cc

Issue 10837317: Setting the touch wrench menu as default menu for ChromeOS (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: And another merge! Created 8 years, 4 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
OLDNEW
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 <algorithm> 5 #include <algorithm>
6 #include <set> 6 #include <set>
7 #include <utility> 7 #include <utility>
8 8
9 #include "chrome/browser/tab_contents/render_view_context_menu.h" 9 #include "chrome/browser/tab_contents/render_view_context_menu.h"
10 10
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 case WebMenuItem::CHECKABLE_OPTION: 184 case WebMenuItem::CHECKABLE_OPTION:
185 menu_model->AddCheckItem( 185 menu_model->AddCheckItem(
186 items[i].action + IDC_CONTENT_CONTEXT_CUSTOM_FIRST, 186 items[i].action + IDC_CONTENT_CONTEXT_CUSTOM_FIRST,
187 items[i].label); 187 items[i].label);
188 break; 188 break;
189 case WebMenuItem::GROUP: 189 case WebMenuItem::GROUP:
190 // TODO(viettrungluu): I don't know what this is supposed to do. 190 // TODO(viettrungluu): I don't know what this is supposed to do.
191 NOTREACHED(); 191 NOTREACHED();
192 break; 192 break;
193 case WebMenuItem::SEPARATOR: 193 case WebMenuItem::SEPARATOR:
194 menu_model->AddSeparator(); 194 menu_model->AddSeparator(ui::NORMAL_SEPARATOR);
195 break; 195 break;
196 case WebMenuItem::SUBMENU: { 196 case WebMenuItem::SUBMENU: {
197 ui::SimpleMenuModel* submenu = new ui::SimpleMenuModel(delegate); 197 ui::SimpleMenuModel* submenu = new ui::SimpleMenuModel(delegate);
198 AddCustomItemsToMenu(items[i].submenu, depth + 1, total_items, delegate, 198 AddCustomItemsToMenu(items[i].submenu, depth + 1, total_items, delegate,
199 submenu); 199 submenu);
200 menu_model->AddSubMenu( 200 menu_model->AddSubMenu(
201 items[i].action + IDC_CONTENT_CONTEXT_CUSTOM_FIRST, 201 items[i].action + IDC_CONTENT_CONTEXT_CUSTOM_FIRST,
202 items[i].label, 202 items[i].label,
203 submenu); 203 submenu);
204 break; 204 break;
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 bool can_cross_incognito = service->CanCrossIncognito(extension); 383 bool can_cross_incognito = service->CanCrossIncognito(extension);
384 MenuItem::List items = 384 MenuItem::List items =
385 GetRelevantExtensionItems(*all_items, params_, profile_, 385 GetRelevantExtensionItems(*all_items, params_, profile_,
386 can_cross_incognito); 386 can_cross_incognito);
387 if (items.empty()) 387 if (items.empty())
388 return; 388 return;
389 389
390 // If this is the first extension-provided menu item, and there are other 390 // If this is the first extension-provided menu item, and there are other
391 // items in the menu, add a separator. 391 // items in the menu, add a separator.
392 if (*index == 0 && menu_model_.GetItemCount()) 392 if (*index == 0 && menu_model_.GetItemCount())
393 menu_model_.AddSeparator(); 393 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
394 394
395 int menu_id = IDC_EXTENSIONS_CONTEXT_CUSTOM_FIRST + (*index)++; 395 int menu_id = IDC_EXTENSIONS_CONTEXT_CUSTOM_FIRST + (*index)++;
396 396
397 // Extensions are only allowed one top-level slot (and it can't be a radio or 397 // Extensions are only allowed one top-level slot (and it can't be a radio or
398 // checkbox item because we are going to put the extension icon next to it). 398 // checkbox item because we are going to put the extension icon next to it).
399 // If they have more than that, we automatically push them into a submenu. 399 // If they have more than that, we automatically push them into a submenu.
400 string16 title; 400 string16 title;
401 MenuItem::List submenu_items; 401 MenuItem::List submenu_items;
402 if (items.size() > 1 || items[0]->type() != MenuItem::NORMAL) { 402 if (items.size() > 1 || items[0]->type() != MenuItem::NORMAL) {
403 title = UTF8ToUTF16(extension->name()); 403 title = UTF8ToUTF16(extension->name());
(...skipping 30 matching lines...) Expand all
434 int radio_group_id = 1; 434 int radio_group_id = 1;
435 435
436 for (MenuItem::List::const_iterator i = items.begin(); 436 for (MenuItem::List::const_iterator i = items.begin();
437 i != items.end(); ++i) { 437 i != items.end(); ++i) {
438 MenuItem* item = *i; 438 MenuItem* item = *i;
439 439
440 // If last item was of type radio but the current one isn't, auto-insert 440 // If last item was of type radio but the current one isn't, auto-insert
441 // a separator. The converse case is handled below. 441 // a separator. The converse case is handled below.
442 if (last_type == MenuItem::RADIO && 442 if (last_type == MenuItem::RADIO &&
443 item->type() != MenuItem::RADIO) { 443 item->type() != MenuItem::RADIO) {
444 menu_model->AddSeparator(); 444 menu_model->AddSeparator(ui::NORMAL_SEPARATOR);
445 last_type = MenuItem::SEPARATOR; 445 last_type = MenuItem::SEPARATOR;
446 } 446 }
447 447
448 int menu_id = IDC_EXTENSIONS_CONTEXT_CUSTOM_FIRST + (*index)++; 448 int menu_id = IDC_EXTENSIONS_CONTEXT_CUSTOM_FIRST + (*index)++;
449 if (menu_id >= IDC_EXTENSIONS_CONTEXT_CUSTOM_LAST) 449 if (menu_id >= IDC_EXTENSIONS_CONTEXT_CUSTOM_LAST)
450 return; 450 return;
451 extension_item_map_[menu_id] = item->id(); 451 extension_item_map_[menu_id] = item->id();
452 string16 title = item->TitleWithReplacement(selection_text, 452 string16 title = item->TitleWithReplacement(selection_text,
453 kMaxExtensionItemTitleLength); 453 kMaxExtensionItemTitleLength);
454 if (item->type() == MenuItem::NORMAL) { 454 if (item->type() == MenuItem::NORMAL) {
(...skipping 11 matching lines...) Expand all
466 } 466 }
467 } else if (item->type() == MenuItem::CHECKBOX) { 467 } else if (item->type() == MenuItem::CHECKBOX) {
468 menu_model->AddCheckItem(menu_id, title); 468 menu_model->AddCheckItem(menu_id, title);
469 } else if (item->type() == MenuItem::RADIO) { 469 } else if (item->type() == MenuItem::RADIO) {
470 if (i != items.begin() && 470 if (i != items.begin() &&
471 last_type != MenuItem::RADIO) { 471 last_type != MenuItem::RADIO) {
472 radio_group_id++; 472 radio_group_id++;
473 473
474 // Auto-append a separator if needed. 474 // Auto-append a separator if needed.
475 if (last_type != MenuItem::SEPARATOR) 475 if (last_type != MenuItem::SEPARATOR)
476 menu_model->AddSeparator(); 476 menu_model->AddSeparator(ui::NORMAL_SEPARATOR);
477 } 477 }
478 478
479 menu_model->AddRadioItem(menu_id, title, radio_group_id); 479 menu_model->AddRadioItem(menu_id, title, radio_group_id);
480 } else if (item->type() == MenuItem::SEPARATOR) { 480 } else if (item->type() == MenuItem::SEPARATOR) {
481 if (i != items.begin() && last_type != MenuItem::SEPARATOR) { 481 if (i != items.begin() && last_type != MenuItem::SEPARATOR) {
482 menu_model->AddSeparator(); 482 menu_model->AddSeparator(ui::NORMAL_SEPARATOR);
483 } 483 }
484 } 484 }
485 last_type = item->type(); 485 last_type = item->type();
486 } 486 }
487 } 487 }
488 488
489 void RenderViewContextMenu::SetExtensionIcon(const std::string& extension_id) { 489 void RenderViewContextMenu::SetExtensionIcon(const std::string& extension_id) {
490 ExtensionService* service = profile_->GetExtensionService(); 490 ExtensionService* service = profile_->GetExtensionService();
491 MenuManager* menu_manager = service->menu_manager(); 491 MenuManager* menu_manager = service->menu_manager();
492 492
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 return; 547 return;
548 } 548 }
549 549
550 bool has_link = !params_.unfiltered_link_url.is_empty(); 550 bool has_link = !params_.unfiltered_link_url.is_empty();
551 bool has_selection = !params_.selection_text.empty(); 551 bool has_selection = !params_.selection_text.empty();
552 552
553 if (AppendCustomItems()) { 553 if (AppendCustomItems()) {
554 // If there's a selection, don't early return when there are custom items, 554 // If there's a selection, don't early return when there are custom items,
555 // but fall through to adding the normal ones after the custom ones. 555 // but fall through to adding the normal ones after the custom ones.
556 if (has_selection) { 556 if (has_selection) {
557 menu_model_.AddSeparator(); 557 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
558 } else { 558 } else {
559 // Don't add items for Pepper menu. 559 // Don't add items for Pepper menu.
560 if (!params_.custom_context.is_pepper_menu) 560 if (!params_.custom_context.is_pepper_menu)
561 AppendDeveloperItems(); 561 AppendDeveloperItems();
562 return; 562 return;
563 } 563 }
564 } 564 }
565 565
566 // When no special node or text is selected and selection has no link, 566 // When no special node or text is selected and selection has no link,
567 // show page items. 567 // show page items.
568 if (params_.media_type == WebContextMenuData::MediaTypeNone && 568 if (params_.media_type == WebContextMenuData::MediaTypeNone &&
569 !has_link && 569 !has_link &&
570 !params_.is_editable && 570 !params_.is_editable &&
571 !has_selection) { 571 !has_selection) {
572 if (!params_.page_url.is_empty()) { 572 if (!params_.page_url.is_empty()) {
573 bool is_devtools = IsDevToolsURL(params_.page_url); 573 bool is_devtools = IsDevToolsURL(params_.page_url);
574 if (!is_devtools && !IsInternalResourcesURL(params_.page_url)) { 574 if (!is_devtools && !IsInternalResourcesURL(params_.page_url)) {
575 AppendPageItems(); 575 AppendPageItems();
576 // Merge in frame items if we clicked within a frame that needs them. 576 // Merge in frame items if we clicked within a frame that needs them.
577 if (!params_.frame_url.is_empty()) { 577 if (!params_.frame_url.is_empty()) {
578 is_devtools = IsDevToolsURL(params_.frame_url); 578 is_devtools = IsDevToolsURL(params_.frame_url);
579 if (!is_devtools && !IsInternalResourcesURL(params_.frame_url)) { 579 if (!is_devtools && !IsInternalResourcesURL(params_.frame_url)) {
580 menu_model_.AddSeparator(); 580 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
581 AppendFrameItems(); 581 AppendFrameItems();
582 } 582 }
583 } 583 }
584 } 584 }
585 } else { 585 } else {
586 DCHECK(params_.frame_url.is_empty()); 586 DCHECK(params_.frame_url.is_empty());
587 } 587 }
588 } 588 }
589 589
590 if (has_link) { 590 if (has_link) {
591 AppendLinkItems(); 591 AppendLinkItems();
592 if (params_.media_type != WebContextMenuData::MediaTypeNone) 592 if (params_.media_type != WebContextMenuData::MediaTypeNone)
593 menu_model_.AddSeparator(); 593 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
594 } 594 }
595 595
596 switch (params_.media_type) { 596 switch (params_.media_type) {
597 case WebContextMenuData::MediaTypeNone: 597 case WebContextMenuData::MediaTypeNone:
598 break; 598 break;
599 case WebContextMenuData::MediaTypeImage: 599 case WebContextMenuData::MediaTypeImage:
600 AppendImageItems(); 600 AppendImageItems();
601 break; 601 break;
602 case WebContextMenuData::MediaTypeVideo: 602 case WebContextMenuData::MediaTypeVideo:
603 AppendVideoItems(); 603 AppendVideoItems();
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 const string16& title) { 681 const string16& title) {
682 menu_model_.AddItem(command_id, title); 682 menu_model_.AddItem(command_id, title);
683 } 683 }
684 684
685 void RenderViewContextMenu::AddCheckItem(int command_id, 685 void RenderViewContextMenu::AddCheckItem(int command_id,
686 const string16& title) { 686 const string16& title) {
687 menu_model_.AddCheckItem(command_id, title); 687 menu_model_.AddCheckItem(command_id, title);
688 } 688 }
689 689
690 void RenderViewContextMenu::AddSeparator() { 690 void RenderViewContextMenu::AddSeparator() {
691 menu_model_.AddSeparator(); 691 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
692 } 692 }
693 693
694 void RenderViewContextMenu::AddSubMenu(int command_id, 694 void RenderViewContextMenu::AddSubMenu(int command_id,
695 const string16& label, 695 const string16& label,
696 ui::MenuModel* model) { 696 ui::MenuModel* model) {
697 menu_model_.AddSubMenu(command_id, label, model); 697 menu_model_.AddSubMenu(command_id, label, model);
698 } 698 }
699 699
700 void RenderViewContextMenu::UpdateMenuItem(int command_id, 700 void RenderViewContextMenu::UpdateMenuItem(int command_id,
701 bool enabled, 701 bool enabled,
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
736 #if defined(DEBUG_DEVTOOLS) 736 #if defined(DEBUG_DEVTOOLS)
737 show_developer_items = true; 737 show_developer_items = true;
738 #endif 738 #endif
739 739
740 if (!show_developer_items) 740 if (!show_developer_items)
741 return; 741 return;
742 742
743 // In the DevTools popup menu, "developer items" is normally the only 743 // In the DevTools popup menu, "developer items" is normally the only
744 // section, so omit the separator there. 744 // section, so omit the separator there.
745 if (menu_model_.GetItemCount() > 0) 745 if (menu_model_.GetItemCount() > 0)
746 menu_model_.AddSeparator(); 746 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
747 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_INSPECTELEMENT, 747 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_INSPECTELEMENT,
748 IDS_CONTENT_CONTEXT_INSPECTELEMENT); 748 IDS_CONTENT_CONTEXT_INSPECTELEMENT);
749 } 749 }
750 750
751 void RenderViewContextMenu::AppendLinkItems() { 751 void RenderViewContextMenu::AppendLinkItems() {
752 if (!params_.link_url.is_empty()) { 752 if (!params_.link_url.is_empty()) {
753 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENLINKNEWTAB, 753 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENLINKNEWTAB,
754 IDS_CONTENT_CONTEXT_OPENLINKNEWTAB); 754 IDS_CONTENT_CONTEXT_OPENLINKNEWTAB);
755 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW, 755 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENLINKNEWWINDOW,
756 IDS_CONTENT_CONTEXT_OPENLINKNEWWINDOW); 756 IDS_CONTENT_CONTEXT_OPENLINKNEWWINDOW);
(...skipping 22 matching lines...) Expand all
779 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_COPYIMAGELOCATION, 779 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_COPYIMAGELOCATION,
780 IDS_CONTENT_CONTEXT_COPYIMAGELOCATION); 780 IDS_CONTENT_CONTEXT_COPYIMAGELOCATION);
781 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_COPYIMAGE, 781 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_COPYIMAGE,
782 IDS_CONTENT_CONTEXT_COPYIMAGE); 782 IDS_CONTENT_CONTEXT_COPYIMAGE);
783 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENIMAGENEWTAB, 783 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENIMAGENEWTAB,
784 IDS_CONTENT_CONTEXT_OPENIMAGENEWTAB); 784 IDS_CONTENT_CONTEXT_OPENIMAGENEWTAB);
785 } 785 }
786 786
787 void RenderViewContextMenu::AppendAudioItems() { 787 void RenderViewContextMenu::AppendAudioItems() {
788 AppendMediaItems(); 788 AppendMediaItems();
789 menu_model_.AddSeparator(); 789 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
790 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_SAVEAVAS, 790 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_SAVEAVAS,
791 IDS_CONTENT_CONTEXT_SAVEAUDIOAS); 791 IDS_CONTENT_CONTEXT_SAVEAUDIOAS);
792 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_COPYAVLOCATION, 792 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_COPYAVLOCATION,
793 IDS_CONTENT_CONTEXT_COPYAUDIOLOCATION); 793 IDS_CONTENT_CONTEXT_COPYAUDIOLOCATION);
794 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENAVNEWTAB, 794 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENAVNEWTAB,
795 IDS_CONTENT_CONTEXT_OPENAUDIONEWTAB); 795 IDS_CONTENT_CONTEXT_OPENAUDIONEWTAB);
796 } 796 }
797 797
798 void RenderViewContextMenu::AppendVideoItems() { 798 void RenderViewContextMenu::AppendVideoItems() {
799 AppendMediaItems(); 799 AppendMediaItems();
800 menu_model_.AddSeparator(); 800 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
801 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_SAVEAVAS, 801 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_SAVEAVAS,
802 IDS_CONTENT_CONTEXT_SAVEVIDEOAS); 802 IDS_CONTENT_CONTEXT_SAVEVIDEOAS);
803 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_COPYAVLOCATION, 803 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_COPYAVLOCATION,
804 IDS_CONTENT_CONTEXT_COPYVIDEOLOCATION); 804 IDS_CONTENT_CONTEXT_COPYVIDEOLOCATION);
805 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENAVNEWTAB, 805 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_OPENAVNEWTAB,
806 IDS_CONTENT_CONTEXT_OPENVIDEONEWTAB); 806 IDS_CONTENT_CONTEXT_OPENVIDEONEWTAB);
807 } 807 }
808 808
809 void RenderViewContextMenu::AppendMediaItems() { 809 void RenderViewContextMenu::AppendMediaItems() {
810 int media_flags = params_.media_flags; 810 int media_flags = params_.media_flags;
(...skipping 22 matching lines...) Expand all
833 if (params_.link_url.is_empty() && params_.selection_text.empty()) 833 if (params_.link_url.is_empty() && params_.selection_text.empty())
834 AppendPageItems(); 834 AppendPageItems();
835 } else { 835 } else {
836 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_SAVEAVAS, 836 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_SAVEAVAS,
837 IDS_CONTENT_CONTEXT_SAVEPAGEAS); 837 IDS_CONTENT_CONTEXT_SAVEPAGEAS);
838 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); 838 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT);
839 } 839 }
840 840
841 if (params_.media_flags & WebContextMenuData::MediaCanRotate) { 841 if (params_.media_flags & WebContextMenuData::MediaCanRotate) {
842 if (menu_model_.GetItemCount() > 0) 842 if (menu_model_.GetItemCount() > 0)
843 menu_model_.AddSeparator(); 843 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
844 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_ROTATECW, 844 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_ROTATECW,
845 IDS_CONTENT_CONTEXT_ROTATECW); 845 IDS_CONTENT_CONTEXT_ROTATECW);
846 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_ROTATECCW, 846 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_ROTATECCW,
847 IDS_CONTENT_CONTEXT_ROTATECCW); 847 IDS_CONTENT_CONTEXT_ROTATECCW);
848 } 848 }
849 } 849 }
850 850
851 void RenderViewContextMenu::AppendPageItems() { 851 void RenderViewContextMenu::AppendPageItems() {
852 menu_model_.AddItemWithStringId(IDC_BACK, IDS_CONTENT_CONTEXT_BACK); 852 menu_model_.AddItemWithStringId(IDC_BACK, IDS_CONTENT_CONTEXT_BACK);
853 menu_model_.AddItemWithStringId(IDC_FORWARD, IDS_CONTENT_CONTEXT_FORWARD); 853 menu_model_.AddItemWithStringId(IDC_FORWARD, IDS_CONTENT_CONTEXT_FORWARD);
854 menu_model_.AddItemWithStringId(IDC_RELOAD, IDS_CONTENT_CONTEXT_RELOAD); 854 menu_model_.AddItemWithStringId(IDC_RELOAD, IDS_CONTENT_CONTEXT_RELOAD);
855 menu_model_.AddSeparator(); 855 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
856 menu_model_.AddItemWithStringId(IDC_SAVE_PAGE, 856 menu_model_.AddItemWithStringId(IDC_SAVE_PAGE,
857 IDS_CONTENT_CONTEXT_SAVEPAGEAS); 857 IDS_CONTENT_CONTEXT_SAVEPAGEAS);
858 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT); 858 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT);
859 859
860 if (ShouldShowTranslateItem(params_.page_url)) { 860 if (ShouldShowTranslateItem(params_.page_url)) {
861 std::string locale = g_browser_process->GetApplicationLocale(); 861 std::string locale = g_browser_process->GetApplicationLocale();
862 locale = TranslateManager::GetLanguageCode(locale); 862 locale = TranslateManager::GetLanguageCode(locale);
863 string16 language = l10n_util::GetDisplayNameForLocale(locale, locale, 863 string16 language = l10n_util::GetDisplayNameForLocale(locale, locale,
864 true); 864 true);
865 menu_model_.AddItem( 865 menu_model_.AddItem(
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
947 } 947 }
948 } 948 }
949 949
950 void RenderViewContextMenu::AppendEditableItems() { 950 void RenderViewContextMenu::AppendEditableItems() {
951 AppendSpellingSuggestionsSubMenu(); 951 AppendSpellingSuggestionsSubMenu();
952 952
953 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_UNDO, 953 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_UNDO,
954 IDS_CONTENT_CONTEXT_UNDO); 954 IDS_CONTENT_CONTEXT_UNDO);
955 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_REDO, 955 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_REDO,
956 IDS_CONTENT_CONTEXT_REDO); 956 IDS_CONTENT_CONTEXT_REDO);
957 menu_model_.AddSeparator(); 957 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
958 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_CUT, 958 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_CUT,
959 IDS_CONTENT_CONTEXT_CUT); 959 IDS_CONTENT_CONTEXT_CUT);
960 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_COPY, 960 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_COPY,
961 IDS_CONTENT_CONTEXT_COPY); 961 IDS_CONTENT_CONTEXT_COPY);
962 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_PASTE, 962 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_PASTE,
963 IDS_CONTENT_CONTEXT_PASTE); 963 IDS_CONTENT_CONTEXT_PASTE);
964 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_PASTE_AND_MATCH_STYLE, 964 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_PASTE_AND_MATCH_STYLE,
965 IDS_CONTENT_CONTEXT_PASTE_AND_MATCH_STYLE); 965 IDS_CONTENT_CONTEXT_PASTE_AND_MATCH_STYLE);
966 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_DELETE, 966 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_DELETE,
967 IDS_CONTENT_CONTEXT_DELETE); 967 IDS_CONTENT_CONTEXT_DELETE);
968 menu_model_.AddSeparator(); 968 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
969 969
970 if (!params_.keyword_url.is_empty()) { 970 if (!params_.keyword_url.is_empty()) {
971 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_ADDSEARCHENGINE, 971 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_ADDSEARCHENGINE,
972 IDS_CONTENT_CONTEXT_ADDSEARCHENGINE); 972 IDS_CONTENT_CONTEXT_ADDSEARCHENGINE);
973 menu_model_.AddSeparator(); 973 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
974 } 974 }
975 975
976 AppendSpellcheckOptionsSubMenu(); 976 AppendSpellcheckOptionsSubMenu();
977 AppendSpeechInputOptionsSubMenu(); 977 AppendSpeechInputOptionsSubMenu();
978 978
979 #if defined(OS_MACOSX) 979 #if defined(OS_MACOSX)
980 // OS X provides a contextual menu to set writing direction for BiDi 980 // OS X provides a contextual menu to set writing direction for BiDi
981 // languages. 981 // languages.
982 // This functionality is exposed as a keyboard shortcut on Windows & Linux. 982 // This functionality is exposed as a keyboard shortcut on Windows & Linux.
983 AppendBidiSubMenu(); 983 AppendBidiSubMenu();
984 #endif // OS_MACOSX 984 #endif // OS_MACOSX
985 985
986 menu_model_.AddSeparator(); 986 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
987 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_SELECTALL, 987 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_SELECTALL,
988 IDS_CONTENT_CONTEXT_SELECTALL); 988 IDS_CONTENT_CONTEXT_SELECTALL);
989 } 989 }
990 990
991 void RenderViewContextMenu::AppendSpellingSuggestionsSubMenu() { 991 void RenderViewContextMenu::AppendSpellingSuggestionsSubMenu() {
992 if (!spelling_menu_observer_.get()) 992 if (!spelling_menu_observer_.get())
993 spelling_menu_observer_.reset(new SpellingMenuObserver(this)); 993 spelling_menu_observer_.reset(new SpellingMenuObserver(this));
994 observers_.AddObserver(spelling_menu_observer_.get()); 994 observers_.AddObserver(spelling_menu_observer_.get());
995 spelling_menu_observer_->InitMenu(params_); 995 spelling_menu_observer_->InitMenu(params_);
996 } 996 }
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
1043 GetHandlersForLinkUrl(); 1043 GetHandlersForLinkUrl();
1044 if (handlers.empty()) 1044 if (handlers.empty())
1045 return; 1045 return;
1046 size_t max = IDC_CONTENT_CONTEXT_PROTOCOL_HANDLER_LAST - 1046 size_t max = IDC_CONTENT_CONTEXT_PROTOCOL_HANDLER_LAST -
1047 IDC_CONTENT_CONTEXT_PROTOCOL_HANDLER_FIRST; 1047 IDC_CONTENT_CONTEXT_PROTOCOL_HANDLER_FIRST;
1048 for (size_t i = 0; i < handlers.size() && i <= max; i++) { 1048 for (size_t i = 0; i < handlers.size() && i <= max; i++) {
1049 protocol_handler_submenu_model_.AddItem( 1049 protocol_handler_submenu_model_.AddItem(
1050 IDC_CONTENT_CONTEXT_PROTOCOL_HANDLER_FIRST + i, 1050 IDC_CONTENT_CONTEXT_PROTOCOL_HANDLER_FIRST + i,
1051 handlers[i].title()); 1051 handlers[i].title());
1052 } 1052 }
1053 protocol_handler_submenu_model_.AddSeparator(); 1053 protocol_handler_submenu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
1054 protocol_handler_submenu_model_.AddItem( 1054 protocol_handler_submenu_model_.AddItem(
1055 IDC_CONTENT_CONTEXT_PROTOCOL_HANDLER_SETTINGS, 1055 IDC_CONTENT_CONTEXT_PROTOCOL_HANDLER_SETTINGS,
1056 l10n_util::GetStringUTF16(IDS_CONTENT_CONTEXT_OPENLINKWITH_CONFIGURE)); 1056 l10n_util::GetStringUTF16(IDS_CONTENT_CONTEXT_OPENLINKWITH_CONFIGURE));
1057 1057
1058 menu_model_.AddSubMenu( 1058 menu_model_.AddSubMenu(
1059 IDC_CONTENT_CONTEXT_OPENLINKWITH, 1059 IDC_CONTENT_CONTEXT_OPENLINKWITH,
1060 l10n_util::GetStringUTF16(IDS_CONTENT_CONTEXT_OPENLINKWITH), 1060 l10n_util::GetStringUTF16(IDS_CONTENT_CONTEXT_OPENLINKWITH),
1061 &protocol_handler_submenu_model_); 1061 &protocol_handler_submenu_model_);
1062 } 1062 }
1063 1063
(...skipping 945 matching lines...) Expand 10 before | Expand all | Expand 10 after
2009 source_web_contents_->GetRenderViewHost()-> 2009 source_web_contents_->GetRenderViewHost()->
2010 ExecuteMediaPlayerActionAtLocation(location, action); 2010 ExecuteMediaPlayerActionAtLocation(location, action);
2011 } 2011 }
2012 2012
2013 void RenderViewContextMenu::PluginActionAt( 2013 void RenderViewContextMenu::PluginActionAt(
2014 const gfx::Point& location, 2014 const gfx::Point& location,
2015 const WebPluginAction& action) { 2015 const WebPluginAction& action) {
2016 source_web_contents_->GetRenderViewHost()-> 2016 source_web_contents_->GetRenderViewHost()->
2017 ExecutePluginActionAtLocation(location, action); 2017 ExecutePluginActionAtLocation(location, action);
2018 } 2018 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698