blob: 8d671aec482d0623d6c76e1991e47de61a77f7bc [file] [log] [blame]
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001// Copyright (c) 2011 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#ifndef PRINTING_PRINTING_CONTEXT_GTK_H_
6#define PRINTING_PRINTING_CONTEXT_GTK_H_
7
8#include <string>
9
10#include "printing/printing_context.h"
11
12namespace base {
13class DictionaryValue;
14}
15
16namespace printing {
17
18class Metafile;
19class PrintDialogGtkInterface;
20
21class PRINTING_EXPORT PrintingContextGtk : public PrintingContext {
22 public:
23 explicit PrintingContextGtk(const std::string& app_locale);
24 virtual ~PrintingContextGtk();
25
26 // Sets the function that creates the print dialog.
27 static void SetCreatePrintDialogFunction(
28 PrintDialogGtkInterface* (*create_dialog_func)(
29 PrintingContextGtk* context));
30
31 // Prints the document contained in |metafile|.
32 void PrintDocument(const Metafile* metafile);
33
34 // PrintingContext implementation.
35 virtual void AskUserForSettings(
36 gfx::NativeView parent_view,
37 int max_pages,
38 bool has_selection,
39 const PrintSettingsCallback& callback) OVERRIDE;
40 virtual Result UseDefaultSettings() OVERRIDE;
41 virtual Result UpdatePrinterSettings(
42 const base::DictionaryValue& job_settings,
43 const PageRanges& ranges) OVERRIDE;
44 virtual Result InitWithSettings(const PrintSettings& settings) OVERRIDE;
45 virtual Result NewDocument(const string16& document_name) OVERRIDE;
46 virtual Result NewPage() OVERRIDE;
47 virtual Result PageDone() OVERRIDE;
48 virtual Result DocumentDone() OVERRIDE;
49 virtual void Cancel() OVERRIDE;
50 virtual void ReleaseContext() OVERRIDE;
51 virtual gfx::NativeDrawingContext context() const OVERRIDE;
52
53 private:
54 string16 document_name_;
55 PrintDialogGtkInterface* print_dialog_;
56
57 DISALLOW_COPY_AND_ASSIGN(PrintingContextGtk);
58};
59
60} // namespace printing
61
62#endif // PRINTING_PRINTING_CONTEXT_GTK_H_
63