Home | History | Annotate | Download | only in dev
      1 // Copyright (c) 2012 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 PPAPI_CPP_DEV_PRINTING_DEV_H_
      6 #define PPAPI_CPP_DEV_PRINTING_DEV_H_
      7 
      8 #include "ppapi/c/dev/ppp_printing_dev.h"
      9 #include "ppapi/cpp/completion_callback.h"
     10 #include "ppapi/cpp/instance_handle.h"
     11 #include "ppapi/cpp/resource.h"
     12 
     13 namespace pp {
     14 
     15 class Instance;
     16 
     17 // You would typically use this either via inheritance on your instance or
     18 // by composition: see find_private.h for an example.
     19 class Printing_Dev : public Resource {
     20  public:
     21   // The instance parameter must outlive this class.
     22   explicit Printing_Dev(Instance* instance);
     23   virtual ~Printing_Dev();
     24 
     25   // PPP_Printing_Dev functions exposed as virtual functions for you to
     26   // override.
     27   virtual uint32_t QuerySupportedPrintOutputFormats() = 0;
     28   virtual int32_t PrintBegin(const PP_PrintSettings_Dev& print_settings) = 0;
     29   virtual Resource PrintPages(const PP_PrintPageNumberRange_Dev* page_ranges,
     30                               uint32_t page_range_count) = 0;
     31   virtual void PrintEnd() = 0;
     32   virtual bool IsPrintScalingDisabled() = 0;
     33 
     34   // PPB_Printing_Dev functions.
     35   // Returns true if the browser supports the required PPB_Printing_Dev
     36   // interface.
     37   static bool IsAvailable();
     38 
     39   // Get the default print settings and store them in the output of |callback|.
     40   int32_t GetDefaultPrintSettings(
     41       const CompletionCallbackWithOutput<PP_PrintSettings_Dev>& callback) const;
     42 
     43  private:
     44   InstanceHandle associated_instance_;
     45 };
     46 
     47 }  // namespace pp
     48 
     49 #endif  // PPAPI_CPP_DEV_PRINTING_DEV_H_
     50