Mojo cpp bindings: add support for validating incoming messages.
[chromium-blink-merge.git] / printing / printing_context_linux.h
blob307601488db9def05b36f90d6ee36996c11395f1
1 // Copyright 2014 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.
5 #ifndef PRINTING_PRINTING_CONTEXT_LINUX_H_
6 #define PRINTING_PRINTING_CONTEXT_LINUX_H_
8 #include <string>
10 #include "printing/printing_context.h"
12 namespace base {
13 class DictionaryValue;
16 namespace printing {
18 class Metafile;
19 class PrintDialogGtkInterface;
21 // PrintingContext with optional native UI for print dialog and pdf_paper_size.
22 class PRINTING_EXPORT PrintingContextLinux : public PrintingContext {
23 public:
24 explicit PrintingContextLinux(const std::string& app_locale);
25 virtual ~PrintingContextLinux();
27 // Sets the function that creates the print dialog.
28 static void SetCreatePrintDialogFunction(
29 PrintDialogGtkInterface* (*create_dialog_func)(
30 PrintingContextLinux* context));
32 // Sets the function that returns pdf paper size through the native API.
33 static void SetPdfPaperSizeFunction(
34 gfx::Size (*get_pdf_paper_size)(PrintingContextLinux* context));
36 // Prints the document contained in |metafile|.
37 void PrintDocument(const Metafile* metafile);
39 // PrintingContext implementation.
40 virtual void AskUserForSettings(
41 gfx::NativeView parent_view,
42 int max_pages,
43 bool has_selection,
44 const PrintSettingsCallback& callback) OVERRIDE;
45 virtual gfx::Size GetPdfPaperSizeDeviceUnits() OVERRIDE;
46 virtual Result UseDefaultSettings() OVERRIDE;
47 virtual Result UpdatePrinterSettings(bool external_preview) OVERRIDE;
48 virtual Result InitWithSettings(const PrintSettings& settings) OVERRIDE;
49 virtual Result NewDocument(const base::string16& document_name) OVERRIDE;
50 virtual Result NewPage() OVERRIDE;
51 virtual Result PageDone() OVERRIDE;
52 virtual Result DocumentDone() OVERRIDE;
53 virtual void Cancel() OVERRIDE;
54 virtual void ReleaseContext() OVERRIDE;
55 virtual gfx::NativeDrawingContext context() const OVERRIDE;
57 private:
58 base::string16 document_name_;
59 PrintDialogGtkInterface* print_dialog_;
61 DISALLOW_COPY_AND_ASSIGN(PrintingContextLinux);
64 } // namespace printing
66 #endif // PRINTING_PRINTING_CONTEXT_LINUX_H_