Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ppapi/cpp/dev/printing_dev.h" | 5 #include "ppapi/cpp/dev/printing_dev.h" |
| 6 | 6 |
| 7 #include "ppapi/cpp/instance.h" | 7 #include "ppapi/cpp/instance.h" |
| 8 #include "ppapi/cpp/module.h" | 8 #include "ppapi/cpp/module.h" |
| 9 #include "ppapi/cpp/module_impl.h" | 9 #include "ppapi/cpp/module_impl.h" |
| 10 | 10 |
| 11 namespace pp { | 11 namespace pp { |
| 12 | 12 |
| 13 namespace { | 13 namespace { |
| 14 | 14 |
| 15 static const char kPPPPrintingInterface[] = PPP_PRINTING_DEV_INTERFACE; | 15 static const char kPPPPrintingInterface[] = PPP_PRINTING_DEV_INTERFACE; |
| 16 | 16 |
| 17 uint32_t QuerySupportedFormats(PP_Instance instance) { | 17 uint32_t QuerySupportedFormats(PP_Instance instance) { |
| 18 void* object = | 18 void* object = |
| 19 pp::Instance::GetPerInstanceObject(instance, kPPPPrintingInterface); | 19 pp::Instance::GetPerInstanceObject(instance, kPPPPrintingInterface); |
| 20 if (!object) | 20 if (!object) |
| 21 return 0; | 21 return 0; |
| 22 return static_cast<Printing_Dev*>(object)->QuerySupportedPrintOutputFormats(); | 22 return static_cast<Printing_Dev*>(object)->QuerySupportedPrintOutputFormats(); |
| 23 } | 23 } |
| 24 | 24 |
| 25 bool IsScalingDisabled(PP_Instance instance) { | |
| 26 void* object = | |
| 27 pp::Instance::GetPerInstanceObject(instance, kPPPPrintingInterface); | |
| 28 if (!object) | |
| 29 return 0; | |
|
dmichael (off chromium)
2011/09/27 15:28:38
0->false?
vandebo (ex-Chrome)
2011/09/27 20:02:24
Done.
| |
| 30 return static_cast<Printing_Dev*>(object)->IsPrintScalingDisabled(); | |
| 31 } | |
| 32 | |
| 25 int32_t Begin(PP_Instance instance, | 33 int32_t Begin(PP_Instance instance, |
| 26 const struct PP_PrintSettings_Dev* print_settings) { | 34 const struct PP_PrintSettings_Dev* print_settings) { |
| 27 void* object = | 35 void* object = |
| 28 pp::Instance::GetPerInstanceObject(instance, kPPPPrintingInterface); | 36 pp::Instance::GetPerInstanceObject(instance, kPPPPrintingInterface); |
| 29 if (!object) | 37 if (!object) |
| 30 return 0; | 38 return 0; |
| 31 return static_cast<Printing_Dev*>(object)->PrintBegin(*print_settings); | 39 return static_cast<Printing_Dev*>(object)->PrintBegin(*print_settings); |
| 32 } | 40 } |
| 33 | 41 |
| 34 PP_Resource PrintPages(PP_Instance instance, | 42 PP_Resource PrintPages(PP_Instance instance, |
| 35 const struct PP_PrintPageNumberRange_Dev* page_ranges, | 43 const struct PP_PrintPageNumberRange_Dev* page_ranges, |
| 36 uint32_t page_range_count) { | 44 uint32_t page_range_count) { |
| 37 void* object = | 45 void* object = |
| 38 pp::Instance::GetPerInstanceObject(instance, kPPPPrintingInterface); | 46 pp::Instance::GetPerInstanceObject(instance, kPPPPrintingInterface); |
| 39 if (!object) | 47 if (!object) |
| 40 return 0; | 48 return 0; |
| 41 return static_cast<Printing_Dev*>(object)->PrintPages( | 49 return static_cast<Printing_Dev*>(object)->PrintPages( |
| 42 page_ranges, page_range_count).detach(); | 50 page_ranges, page_range_count).detach(); |
| 43 } | 51 } |
| 44 | 52 |
| 45 void End(PP_Instance instance) { | 53 void End(PP_Instance instance) { |
| 46 void* object = | 54 void* object = |
| 47 pp::Instance::GetPerInstanceObject(instance, kPPPPrintingInterface); | 55 pp::Instance::GetPerInstanceObject(instance, kPPPPrintingInterface); |
| 48 if (object) | 56 if (object) |
| 49 static_cast<Printing_Dev*>(object)->PrintEnd(); | 57 static_cast<Printing_Dev*>(object)->PrintEnd(); |
| 50 } | 58 } |
| 51 | 59 |
| 52 const PPP_Printing_Dev ppp_printing = { | 60 const PPP_Printing_Dev ppp_printing = { |
| 53 &QuerySupportedFormats, | 61 &QuerySupportedFormats, |
| 62 &IsScalingDisabled, | |
| 54 &Begin, | 63 &Begin, |
| 55 &PrintPages, | 64 &PrintPages, |
| 56 &End | 65 &End |
| 57 }; | 66 }; |
| 58 | 67 |
| 59 } // namespace | 68 } // namespace |
| 60 | 69 |
| 61 Printing_Dev::Printing_Dev(Instance* instance) | 70 Printing_Dev::Printing_Dev(Instance* instance) |
| 62 : associated_instance_(instance) { | 71 : associated_instance_(instance) { |
| 63 pp::Module::Get()->AddPluginInterface(kPPPPrintingInterface, &ppp_printing); | 72 pp::Module::Get()->AddPluginInterface(kPPPPrintingInterface, &ppp_printing); |
| 64 associated_instance_->AddPerInstanceObject(kPPPPrintingInterface, this); | 73 associated_instance_->AddPerInstanceObject(kPPPPrintingInterface, this); |
| 65 } | 74 } |
| 66 | 75 |
| 67 Printing_Dev::~Printing_Dev() { | 76 Printing_Dev::~Printing_Dev() { |
| 68 associated_instance_->RemovePerInstanceObject(kPPPPrintingInterface, this); | 77 associated_instance_->RemovePerInstanceObject(kPPPPrintingInterface, this); |
| 69 } | 78 } |
| 70 | 79 |
| 71 } // namespace pp | 80 } // namespace pp |
| OLD | NEW |