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

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

Issue 12177009: Printing selection from context menu. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 10 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 "chrome/browser/tab_contents/render_view_context_menu.h" 5 #include "chrome/browser/tab_contents/render_view_context_menu.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 case WebContextMenuData::MediaTypeFile: 480 case WebContextMenuData::MediaTypeFile:
481 break; 481 break;
482 #endif 482 #endif
483 } 483 }
484 484
485 if (params_.is_editable) 485 if (params_.is_editable)
486 AppendEditableItems(); 486 AppendEditableItems();
487 else if (has_selection) 487 else if (has_selection)
488 AppendCopyItem(); 488 AppendCopyItem();
489 489
490 if (has_selection) 490 if (has_selection) {
491 AppendPrintItem();
491 AppendSearchProvider(); 492 AppendSearchProvider();
493 }
492 494
493 if (!IsDevToolsURL(params_.page_url)) 495 if (!IsDevToolsURL(params_.page_url))
494 AppendAllExtensionItems(); 496 AppendAllExtensionItems();
495 497
496 AppendDeveloperItems(); 498 AppendDeveloperItems();
497 499
498 if (!print_preview_menu_observer_.get()) { 500 if (!print_preview_menu_observer_.get()) {
499 print_preview_menu_observer_.reset( 501 print_preview_menu_observer_.reset(
500 new PrintPreviewContextMenuObserver(source_web_contents_)); 502 new PrintPreviewContextMenuObserver(source_web_contents_));
501 } 503 }
(...skipping 23 matching lines...) Expand all
525 bool has_selection = !params_.selection_text.empty(); 527 bool has_selection = !params_.selection_text.empty();
526 528
527 // Add undo/redo, cut/copy/paste etc for text fields. 529 // Add undo/redo, cut/copy/paste etc for text fields.
528 if (params_.is_editable) 530 if (params_.is_editable)
529 AppendEditableItems(); 531 AppendEditableItems();
530 else if (has_selection) 532 else if (has_selection)
531 AppendCopyItem(); 533 AppendCopyItem();
532 534
533 int index = 0; 535 int index = 0;
534 extension_items_.AppendExtensionItems(platform_app->id(), 536 extension_items_.AppendExtensionItems(platform_app->id(),
535 PrintableSelectionText(), &index); 537 PrintableSelectionText(), &index);
536 538
537 // Add dev tools for unpacked extensions. 539 // Add dev tools for unpacked extensions.
538 if (platform_app->location() == extensions::Manifest::LOAD || 540 if (platform_app->location() == extensions::Manifest::LOAD ||
539 CommandLine::ForCurrentProcess()->HasSwitch( 541 CommandLine::ForCurrentProcess()->HasSwitch(
540 switches::kDebugPackedApps)) { 542 switches::kDebugPackedApps)) {
541 // Add a separator if there are any items already in the menu. 543 // Add a separator if there are any items already in the menu.
542 if (menu_model_.GetItemCount() && 544 if (menu_model_.GetItemCount() &&
543 menu_model_.GetTypeAt(menu_model_.GetItemCount() - 1) != 545 menu_model_.GetTypeAt(menu_model_.GetItemCount() - 1) !=
544 ui::MenuModel::TYPE_SEPARATOR) 546 ui::MenuModel::TYPE_SEPARATOR)
545 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR); 547 menu_model_.AddSeparator(ui::NORMAL_SEPARATOR);
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
798 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_VIEWFRAMEINFO, 800 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_VIEWFRAMEINFO,
799 IDS_CONTENT_CONTEXT_VIEWFRAMEINFO); 801 IDS_CONTENT_CONTEXT_VIEWFRAMEINFO);
800 } 802 }
801 } 803 }
802 804
803 void RenderViewContextMenu::AppendCopyItem() { 805 void RenderViewContextMenu::AppendCopyItem() {
804 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_COPY, 806 menu_model_.AddItemWithStringId(IDC_CONTENT_CONTEXT_COPY,
805 IDS_CONTENT_CONTEXT_COPY); 807 IDS_CONTENT_CONTEXT_COPY);
806 } 808 }
807 809
810 void RenderViewContextMenu::AppendPrintItem() {
811 if (profile_->GetPrefs()->GetBoolean(prefs::kPrintingEnabled) &&
812 (params_.media_type == WebContextMenuData::MediaTypeNone ||
813 params_.media_flags & WebContextMenuData::MediaCanPrint)) {
814 menu_model_.AddItemWithStringId(IDC_PRINT, IDS_CONTENT_CONTEXT_PRINT);
815 }
816 }
817
808 void RenderViewContextMenu::AppendSearchProvider() { 818 void RenderViewContextMenu::AppendSearchProvider() {
809 DCHECK(profile_); 819 DCHECK(profile_);
810 820
811 TrimWhitespace(params_.selection_text, TRIM_ALL, &params_.selection_text); 821 TrimWhitespace(params_.selection_text, TRIM_ALL, &params_.selection_text);
812 if (params_.selection_text.empty()) 822 if (params_.selection_text.empty())
813 return; 823 return;
814 824
815 ReplaceChars(params_.selection_text, AutocompleteMatch::kInvalidChars, 825 ReplaceChars(params_.selection_text, AutocompleteMatch::kInvalidChars,
816 ASCIIToUTF16(" "), &params_.selection_text); 826 ASCIIToUTF16(" "), &params_.selection_text);
817 827
(...skipping 738 matching lines...) Expand 10 before | Expand all | Expand 10 after
1556 1566
1557 case IDC_PRINT: 1567 case IDC_PRINT:
1558 if (params_.media_type == WebContextMenuData::MediaTypeNone) { 1568 if (params_.media_type == WebContextMenuData::MediaTypeNone) {
1559 printing::PrintViewManager* print_view_manager = 1569 printing::PrintViewManager* print_view_manager =
1560 printing::PrintViewManager::FromWebContents(source_web_contents_); 1570 printing::PrintViewManager::FromWebContents(source_web_contents_);
1561 if (!print_view_manager) 1571 if (!print_view_manager)
1562 break; 1572 break;
1563 if (profile_->GetPrefs()->GetBoolean(prefs::kPrintPreviewDisabled)) { 1573 if (profile_->GetPrefs()->GetBoolean(prefs::kPrintPreviewDisabled)) {
1564 print_view_manager->PrintNow(); 1574 print_view_manager->PrintNow();
1565 } else { 1575 } else {
1566 print_view_manager->PrintPreviewNow(); 1576 print_view_manager->PrintPreviewNow(!params_.selection_text.empty());
1567 } 1577 }
1568 } else { 1578 } else {
1569 rvh->Send(new PrintMsg_PrintNodeUnderContextMenu(rvh->GetRoutingID())); 1579 rvh->Send(new PrintMsg_PrintNodeUnderContextMenu(rvh->GetRoutingID()));
1570 } 1580 }
1571 break; 1581 break;
1572 1582
1573 case IDC_VIEW_SOURCE: 1583 case IDC_VIEW_SOURCE:
1574 source_web_contents_->ViewSource(); 1584 source_web_contents_->ViewSource();
1575 break; 1585 break;
1576 1586
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
1866 source_web_contents_->GetRenderViewHost()-> 1876 source_web_contents_->GetRenderViewHost()->
1867 ExecuteMediaPlayerActionAtLocation(location, action); 1877 ExecuteMediaPlayerActionAtLocation(location, action);
1868 } 1878 }
1869 1879
1870 void RenderViewContextMenu::PluginActionAt( 1880 void RenderViewContextMenu::PluginActionAt(
1871 const gfx::Point& location, 1881 const gfx::Point& location,
1872 const WebPluginAction& action) { 1882 const WebPluginAction& action) {
1873 source_web_contents_->GetRenderViewHost()-> 1883 source_web_contents_->GetRenderViewHost()->
1874 ExecutePluginActionAtLocation(location, action); 1884 ExecutePluginActionAtLocation(location, action);
1875 } 1885 }
OLDNEW
« no previous file with comments | « chrome/browser/tab_contents/render_view_context_menu.h ('k') | chrome/browser/ui/browser_commands.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698