diff options
author | avayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-19 22:26:25 +0000 |
---|---|---|
committer | avayvod@chromium.org <avayvod@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-19 22:26:25 +0000 |
commit | b25f003bab44abc4931bd1a68c30f964ba9ac2fa (patch) | |
tree | 9c78e1340327a7c56e9984a0a0f316fb74e155ab /printing | |
parent | 4f3c1dfc0d71fc4c508bffec75a5643b217ef403 (diff) | |
download | chromium_src-b25f003bab44abc4931bd1a68c30f964ba9ac2fa.zip chromium_src-b25f003bab44abc4931bd1a68c30f964ba9ac2fa.tar.gz chromium_src-b25f003bab44abc4931bd1a68c30f964ba9ac2fa.tar.bz2 |
Submitting https://codereview.chromium.org/23116003/ for Cihat Imamoglu.
Adds PrintingContext implementation stub for Android.
BUG=147070
TBR=thestig@chromium.org
Review URL: https://codereview.chromium.org/22999026
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218339 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'printing')
-rw-r--r-- | printing/image_android.cc | 13 | ||||
-rw-r--r-- | printing/image_linux.cc | 2 | ||||
-rw-r--r-- | printing/metafile.h | 6 | ||||
-rw-r--r-- | printing/pdf_metafile_skia.cc | 2 | ||||
-rw-r--r-- | printing/pdf_metafile_skia.h | 4 | ||||
-rw-r--r-- | printing/printed_document.cc | 4 | ||||
-rw-r--r-- | printing/printing.gyp | 6 | ||||
-rw-r--r-- | printing/printing_context_android.h | 68 |
8 files changed, 95 insertions, 10 deletions
diff --git a/printing/image_android.cc b/printing/image_android.cc new file mode 100644 index 0000000..544cf07 --- /dev/null +++ b/printing/image_android.cc @@ -0,0 +1,13 @@ +// Copyright 2013 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. + +#include "printing/image.h" + +namespace printing { + +bool Image::LoadMetafile(const Metafile& metafile) { + return false; +} + +} // namespace printing diff --git a/printing/image_linux.cc b/printing/image_linux.cc index 3968cfd..d89c4e9 100644 --- a/printing/image_linux.cc +++ b/printing/image_linux.cc @@ -4,8 +4,6 @@ #include "printing/image.h" -#include "base/logging.h" - namespace printing { bool Image::LoadMetafile(const Metafile& metafile) { diff --git a/printing/metafile.h b/printing/metafile.h index ca0901b..e331069 100644 --- a/printing/metafile.h +++ b/printing/metafile.h @@ -29,7 +29,7 @@ class Size; class SkDevice; -#if defined(OS_CHROMEOS) +#if defined(OS_CHROMEOS) || defined(OS_ANDROID) namespace base { struct FileDescriptor; } @@ -155,12 +155,12 @@ class PRINTING_EXPORT Metafile { gfx::NativeDrawingContext context, const CGRect rect, const MacRenderPageParams& params) const = 0; -#elif defined(OS_CHROMEOS) +#elif defined(OS_CHROMEOS) || defined(OS_ANDROID) // Saves the underlying data to the file associated with fd. This function // should ONLY be called after the metafile is closed. // Returns true if writing succeeded. virtual bool SaveToFD(const base::FileDescriptor& fd) const = 0; -#endif // if defined(OS_CHROMEOS) +#endif // if defined(OS_CHROMEOS) || defined(OS_ANDROID) }; } // namespace printing diff --git a/printing/pdf_metafile_skia.cc b/printing/pdf_metafile_skia.cc index 3326a1d..31c8c74 100644 --- a/printing/pdf_metafile_skia.cc +++ b/printing/pdf_metafile_skia.cc @@ -192,7 +192,7 @@ bool PdfMetafileSkia::RenderPage(unsigned int page_number, } #endif -#if defined(OS_CHROMEOS) +#if defined(OS_CHROMEOS) || defined(OS_ANDROID) bool PdfMetafileSkia::SaveToFD(const base::FileDescriptor& fd) const { DCHECK_GT(data_->pdf_stream_.getOffset(), 0U); diff --git a/printing/pdf_metafile_skia.h b/printing/pdf_metafile_skia.h index 33be6d2..c6f1971 100644 --- a/printing/pdf_metafile_skia.h +++ b/printing/pdf_metafile_skia.h @@ -63,9 +63,9 @@ class PRINTING_EXPORT PdfMetafileSkia : public Metafile { const MacRenderPageParams& params) const OVERRIDE; #endif -#if defined(OS_CHROMEOS) +#if defined(OS_CHROMEOS) || defined(OS_ANDROID) virtual bool SaveToFD(const base::FileDescriptor& fd) const OVERRIDE; -#endif // if defined(OS_CHROMEOS) +#endif // if defined(OS_CHROMEOS) || defined(OS_ANDROID) // Return a new metafile containing just the current page in draft mode. PdfMetafileSkia* GetMetafileForCurrentPage(); diff --git a/printing/printed_document.cc b/printing/printed_document.cc index 6e912a1..59cc385 100644 --- a/printing/printed_document.cc +++ b/printing/printed_document.cc @@ -225,8 +225,8 @@ PrintedDocument::Immutable::Immutable(const PrintSettings& settings, PrintedDocument::Immutable::~Immutable() { } -#if defined(OS_POSIX) && defined(USE_AURA) -// This function is not used on aura linux/chromeos. +#if (defined(OS_POSIX) && defined(USE_AURA)) || defined(OS_ANDROID) +// This function is not used on aura linux/chromeos or android. void PrintedDocument::RenderPrintedPage(const PrintedPage& page, PrintingContext* context) const { } diff --git a/printing/printing.gyp b/printing/printing.gyp index b3bbf2b..890e5bf 100644 --- a/printing/printing.gyp +++ b/printing/printing.gyp @@ -37,6 +37,7 @@ 'emf_win.cc', 'emf_win.h', 'image.cc', + 'image_android.cc', 'image_linux.cc', 'image_mac.cc', 'image_win.cc', @@ -228,6 +229,11 @@ 'printing_context_gtk.h', ], }], + ['OS=="android"', { + 'sources': [ + 'printing_context_android.h', + ], + }], ], }, { diff --git a/printing/printing_context_android.h b/printing/printing_context_android.h new file mode 100644 index 0000000..e38fff9 --- /dev/null +++ b/printing/printing_context_android.h @@ -0,0 +1,68 @@ +// Copyright 2013 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 PRINTING_PRINTING_CONTEXT_ANDROID_H_ +#define PRINTING_PRINTING_CONTEXT_ANDROID_H_ + +#include <jni.h> + +#include <string> + +#include "base/android/scoped_java_ref.h" +#include "printing/printing_context.h" + +namespace printing { + +// Android subclass of PrintingContext. The implementation for this header file +// resides in Chrome for Android repository. This class communicates with the +// Java side through JNI. +class PRINTING_EXPORT PrintingContextAndroid : public PrintingContext { + public: + explicit PrintingContextAndroid(const std::string& app_locale); + virtual ~PrintingContextAndroid(); + + // Called when the page is successfully written to a PDF using the file + // descriptor specified, or when the printing operation failed. + static void PdfWritingDone(int fd, bool success); + + // Called from Java, when printing settings from the user are ready or the + // printing operation is canceled. + void AskUserForSettingsReply(bool success); + + // PrintingContext implementation. + virtual void AskUserForSettings( + gfx::NativeView parent_view, + int max_pages, + bool has_selection, + const PrintSettingsCallback& callback) OVERRIDE; + virtual Result UseDefaultSettings() OVERRIDE; + virtual Result UpdatePrinterSettings( + const base::DictionaryValue& job_settings, + const PageRanges& ranges) OVERRIDE; + virtual Result InitWithSettings(const PrintSettings& settings) OVERRIDE; + virtual Result NewDocument(const string16& document_name) OVERRIDE; + virtual Result NewPage() OVERRIDE; + virtual Result PageDone() OVERRIDE; + virtual Result DocumentDone() OVERRIDE; + virtual void Cancel() OVERRIDE; + virtual void ReleaseContext() OVERRIDE; + virtual gfx::NativeDrawingContext context() const OVERRIDE; + + // Registers JNI bindings for RegisterContext. + static bool RegisterPrintingContext(JNIEnv* env); + + private: + base::android::ScopedJavaGlobalRef<jobject> j_printing_context_; + + // The callback from AskUserForSettings to be called when the settings are + // ready on the Java side + PrintSettingsCallback callback_; + + DISALLOW_COPY_AND_ASSIGN(PrintingContextAndroid); +}; + +} // namespace printing + +#endif // PRINTING_PRINTING_CONTEXT_ANDROID_H_ + |