12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef PPAPI_CPP_PRIVATE_PDF_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define PPAPI_CPP_PRIVATE_PDF_H_
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include <string>
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ppapi/c/private/ppb_pdf.h"
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)struct PP_BrowserFont_Trusted_Description;
13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace pp {
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class ImageData;
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class InstanceHandle;
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class Var;
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class PDF {
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public:
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  // Returns true if the required interface is available.
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static bool IsAvailable();
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static Var GetLocalizedString(const InstanceHandle& instance,
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                PP_ResourceString string_id);
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static ImageData GetResourceImage(const InstanceHandle& instance,
282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                    PP_ResourceImage image_id);
29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)  static PP_Resource GetFontFileWithFallback(
30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      const InstanceHandle& instance,
31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      const PP_BrowserFont_Trusted_Description* description,
32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)      PP_PrivateFontCharset charset);
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static bool GetFontTableForPrivateFontFile(PP_Resource font_file,
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                             uint32_t table,
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                             void* output,
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                             uint32_t* output_length);
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static void SearchString(const InstanceHandle& instance,
382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                           const unsigned short* string,
392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                           const unsigned short* term,
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                           bool case_sensitive,
412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                           PP_PrivateFindResult** results,
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                           int* count);
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static void DidStartLoading(const InstanceHandle& instance);
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static void DidStopLoading(const InstanceHandle& instance);
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static void SetContentRestriction(const InstanceHandle& instance,
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                    int restrictions);
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static void HistogramPDFPageCount(const InstanceHandle& instance,
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                    int count);
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static void UserMetricsRecordAction(const InstanceHandle& instance,
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                      const Var& action);
512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static void HasUnsupportedFeature(const InstanceHandle& instance);
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static void SaveAs(const InstanceHandle& instance);
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static void Print(const InstanceHandle& instance);
542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static bool IsFeatureEnabled(const InstanceHandle& instance,
552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                               PP_PDFFeature feature);
562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  static ImageData GetResourceImageForScale(const InstanceHandle& instance,
572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                            PP_ResourceImage image_id,
582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                                            float scale);
59d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)  static Var ModalPromptForPassword(const InstanceHandle& instance,
60d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)                                    Var message);
61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  static bool IsOutOfProcess(const InstanceHandle& instance);
625d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  static void SetSelectedText(const InstanceHandle& instance,
635d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                              const char* selected_text);
645d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  static void SetLinkUnderCursor(const InstanceHandle& instance,
655d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)                                 const char* url);
662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)};
672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}  // namespace pp
692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // PPAPI_CPP_PRIVATE_PDF_H_
71