[go: nahoru, domu]

blob: b7094602b91ceaac98e7bf3a8f2fe5176f27c1c6 [file] [log] [blame]
kmadhusu@chromium.org7868ecab2011-03-05 00:12:531// Copyright (c) 2011 The Chromium Authors. All rights reserved.
jhawkins@chromium.org51e8d932010-10-06 22:21:172// 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_MAC_H_
6#define PRINTING_PRINTING_CONTEXT_MAC_H_
7
sanjeevr@chromium.orgee5f36e42010-12-03 22:40:378#include <string>
9
jhawkins@chromium.org51e8d932010-10-06 22:21:1710#include "printing/printing_context.h"
11
12#ifdef __OBJC__
13@class NSPrintInfo;
14#else
15class NSPrintInfo;
16#endif // __OBJC__
17
18namespace printing {
19
20class PrintingContextMac : public PrintingContext {
21 public:
sanjeevr@chromium.orgee5f36e42010-12-03 22:40:3722 explicit PrintingContextMac(const std::string& app_locale);
jhawkins@chromium.org51e8d932010-10-06 22:21:1723 ~PrintingContextMac();
24
25 // PrintingContext implementation.
26 virtual void AskUserForSettings(gfx::NativeView parent_view,
27 int max_pages,
28 bool has_selection,
29 PrintSettingsCallback* callback);
30 virtual Result UseDefaultSettings();
kmadhusu@chromium.org7868ecab2011-03-05 00:12:5331 virtual Result UpdatePrintSettings(const PageRanges& ranges);
jhawkins@chromium.org51e8d932010-10-06 22:21:1732 virtual Result InitWithSettings(const PrintSettings& settings);
33 virtual Result NewDocument(const string16& document_name);
34 virtual Result NewPage();
35 virtual Result PageDone();
36 virtual Result DocumentDone();
37 virtual void Cancel();
jhawkins@chromium.org51e8d932010-10-06 22:21:1738 virtual void ReleaseContext();
39 virtual gfx::NativeDrawingContext context() const;
40
41 private:
42 // Read the settings from the given NSPrintInfo (and cache it for later use).
43 void ParsePrintInfo(NSPrintInfo* print_info);
44
45 // The native print info object.
46 NSPrintInfo* print_info_;
47
48 // The current page's context; only valid between NewPage and PageDone call
49 // pairs.
50 CGContext* context_;
51
52 DISALLOW_COPY_AND_ASSIGN(PrintingContextMac);
53};
54
55} // namespace printing
56
57#endif // PRINTING_PRINTING_CONTEXT_MAC_H_