- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / printing / print_preview_context_menu_observer.cc
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 }