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 11PrintPreviewContextMenuObserver::PrintPreviewContextMenuObserver( 12 content::WebContents* contents) : contents_(contents) { 13} 14 15PrintPreviewContextMenuObserver::~PrintPreviewContextMenuObserver() { 16} 17 18bool PrintPreviewContextMenuObserver::IsPrintPreviewDialog() { 19 printing::PrintPreviewDialogController* controller = 20 printing::PrintPreviewDialogController::GetInstance(); 21 if (!controller) 22 return false; 23 return (controller->GetPrintPreviewForContents(contents_) != NULL); 24} 25 26bool 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 40bool 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