// Copyright (c) 2014 The Chromium Embedded Framework Authors. // Portions Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CEF_TESTS_CEFCLIENT_BROWSER_PRINT_HANDLER_GTK_H_ #define CEF_TESTS_CEFCLIENT_BROWSER_PRINT_HANDLER_GTK_H_ #pragma once #include <map> #include "include/cef_print_handler.h" namespace client { class ClientPrintHandlerGtk : public CefPrintHandler { public: ClientPrintHandlerGtk(); virtual ~ClientPrintHandlerGtk(); // CefPrintHandler methods. void OnPrintStart(CefRefPtr<CefBrowser> browser) OVERRIDE; void OnPrintSettings(CefRefPtr<CefBrowser> browser, CefRefPtr<CefPrintSettings> settings, bool get_defaults) OVERRIDE; bool OnPrintDialog(CefRefPtr<CefBrowser> browser, bool has_selection, CefRefPtr<CefPrintDialogCallback> callback) OVERRIDE; bool OnPrintJob(CefRefPtr<CefBrowser> browser, const CefString& document_name, const CefString& pdf_file_path, CefRefPtr<CefPrintJobCallback> callback) OVERRIDE; void OnPrintReset(CefRefPtr<CefBrowser> browser) OVERRIDE; CefSize GetPdfPaperSize(int device_units_per_inch) OVERRIDE; private: // Print handler. struct PrintHandler; PrintHandler* GetPrintHandler(CefRefPtr<CefBrowser> browser); // Map of browser ID to print handler. typedef std::map<int, PrintHandler*> PrintHandlerMap; PrintHandlerMap print_handler_map_; IMPLEMENT_REFCOUNTING(ClientPrintHandlerGtk); DISALLOW_COPY_AND_ASSIGN(ClientPrintHandlerGtk); }; } // namespace client #endif // CEF_TESTS_CEFCLIENT_BROWSER_PRINT_HANDLER_GTK_H_