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