Home | History | Annotate | Download | only in dev
      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 
     18 PP_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 
     33 Selection_Dev::Selection_Dev(Instance* instance)
     34     : associated_instance_(instance) {
     35   Module::Get()->AddPluginInterface(kPPPSelectionInterface, &ppp_selection);
     36   instance->AddPerInstanceObject(kPPPSelectionInterface, this);
     37 }
     38 
     39 Selection_Dev::~Selection_Dev() {
     40   Instance::RemovePerInstanceObject(associated_instance_,
     41                                     kPPPSelectionInterface, this);
     42 }
     43 
     44 }  // namespace pp
     45