1 // Copyright (c) 2010 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 #include "ppapi/cpp/dev/selection_dev.h" 6 7 #include "ppapi/cpp/instance.h" 8 #include "ppapi/cpp/instance_handle.h" 9 #include "ppapi/cpp/module.h" 10 #include "ppapi/cpp/var.h" 11 12 namespace pp { 13 14 namespace { 15 16 static const char kPPPSelectionInterface[] = PPP_SELECTION_DEV_INTERFACE; 17 GetSelectedText(PP_Instance instance,PP_Bool html)18PP_Var GetSelectedText(PP_Instance instance, PP_Bool html) { 19 void* object = 20 pp::Instance::GetPerInstanceObject(instance, kPPPSelectionInterface); 21 if (!object) 22 return Var().Detach(); 23 return static_cast<Selection_Dev*>(object)-> 24 GetSelectedText(PP_ToBool(html)).Detach(); 25 } 26 27 const PPP_Selection_Dev ppp_selection = { 28 &GetSelectedText 29 }; 30 31 } // namespace 32 Selection_Dev(Instance * instance)33Selection_Dev::Selection_Dev(Instance* instance) 34 : associated_instance_(instance) { 35 Module::Get()->AddPluginInterface(kPPPSelectionInterface, &ppp_selection); 36 instance->AddPerInstanceObject(kPPPSelectionInterface, this); 37 } 38 ~Selection_Dev()39Selection_Dev::~Selection_Dev() { 40 Instance::RemovePerInstanceObject(associated_instance_, 41 kPPPSelectionInterface, this); 42 } 43 44 } // namespace pp 45