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 3 // found in the LICENSE file. 4 5 #include "chrome/browser/printing/print_preview_context_menu_observer.h" 6 7 #include "base/logging.h" 8 #include "chrome/app/chrome_command_ids.h" 9 #include "chrome/browser/printing/print_preview_dialog_controller.h" 10 11 PrintPreviewContextMenuObserver::PrintPreviewContextMenuObserver( 12 content::WebContents* contents) : contents_(contents) { 13 } 14 15 PrintPreviewContextMenuObserver::~PrintPreviewContextMenuObserver() { 16 } 17 18 bool PrintPreviewContextMenuObserver::IsPrintPreviewDialog() { 19 printing::PrintPreviewDialogController* controller = 20 printing::PrintPreviewDialogController::GetInstance(); 21 if (!controller) 22 return false; 23 return (controller->GetPrintPreviewForContents(contents_) != NULL); 24 } 25 26 bool PrintPreviewContextMenuObserver::IsCommandIdSupported(int command_id) { 27 switch (command_id) { 28 case IDC_PRINT: 29 case IDC_VIEW_SOURCE: 30 case IDC_CONTENT_CONTEXT_VIEWFRAMESOURCE: 31 case IDC_CONTENT_CONTEXT_VIEWPAGEINFO: 32 case IDC_CONTENT_CONTEXT_SEARCHWEBFOR: 33 return IsPrintPreviewDialog(); 34 35 default: 36 return false; 37 } 38 } 39 40 bool PrintPreviewContextMenuObserver::IsCommandIdEnabled(int command_id) { 41 switch (command_id) { 42 case IDC_PRINT: 43 case IDC_VIEW_SOURCE: 44 case IDC_CONTENT_CONTEXT_VIEWFRAMESOURCE: 45 case IDC_CONTENT_CONTEXT_VIEWPAGEINFO: 46 case IDC_CONTENT_CONTEXT_SEARCHWEBFOR: 47 return false; 48 49 default: 50 NOTREACHED(); 51 return true; 52 } 53 } 54