15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/browser/printing/print_preview_context_menu_observer.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h"
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "chrome/app/chrome_command_ids.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/printing/print_preview_dialog_controller.h"
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PrintPreviewContextMenuObserver::PrintPreviewContextMenuObserver(
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    content::WebContents* contents) : contents_(contents) {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PrintPreviewContextMenuObserver::~PrintPreviewContextMenuObserver() {
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool PrintPreviewContextMenuObserver::IsPrintPreviewDialog() {
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  printing::PrintPreviewDialogController* controller =
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      printing::PrintPreviewDialogController::GetInstance();
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (!controller)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    return false;
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  return (controller->GetPrintPreviewForContents(contents_) != NULL);
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool PrintPreviewContextMenuObserver::IsCommandIdSupported(int command_id) {
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  switch (command_id) {
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case IDC_PRINT:
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case IDC_VIEW_SOURCE:
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case IDC_CONTENT_CONTEXT_VIEWFRAMESOURCE:
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case IDC_CONTENT_CONTEXT_VIEWPAGEINFO:
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case IDC_CONTENT_CONTEXT_SEARCHWEBFOR:
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      return IsPrintPreviewDialog();
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return false;
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)bool PrintPreviewContextMenuObserver::IsCommandIdEnabled(int command_id) {
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  switch (command_id) {
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case IDC_PRINT:
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case IDC_VIEW_SOURCE:
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case IDC_CONTENT_CONTEXT_VIEWFRAMESOURCE:
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case IDC_CONTENT_CONTEXT_VIEWPAGEINFO:
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    case IDC_CONTENT_CONTEXT_SEARCHWEBFOR:
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return false;
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    default:
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      NOTREACHED();
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      return true;
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
54