OLD | NEW |
| (Empty) |
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/find_dev.h" | |
6 | |
7 #include "ppapi/c/dev/ppb_find_dev.h" | |
8 #include "ppapi/cpp/instance.h" | |
9 #include "ppapi/cpp/module.h" | |
10 #include "ppapi/cpp/module_impl.h" | |
11 | |
12 namespace pp { | |
13 | |
14 namespace { | |
15 | |
16 template <> const char* interface_name<PPB_Find_Dev>() { | |
17 return PPB_FIND_DEV_INTERFACE; | |
18 } | |
19 | |
20 static const char kPPPFindInterface[] = PPP_FIND_DEV_INTERFACE; | |
21 | |
22 PP_Bool StartFind(PP_Instance instance, | |
23 const char* text, | |
24 PP_Bool case_sensitive) { | |
25 void* object = Instance::GetPerInstanceObject(instance, kPPPFindInterface); | |
26 if (!object) | |
27 return PP_FALSE; | |
28 bool return_value = static_cast<Find_Dev*>(object)->StartFind( | |
29 text, PP_ToBool(case_sensitive)); | |
30 return PP_FromBool(return_value); | |
31 } | |
32 | |
33 void SelectFindResult(PP_Instance instance, PP_Bool forward) { | |
34 void* object = Instance::GetPerInstanceObject(instance, kPPPFindInterface); | |
35 if (object) | |
36 static_cast<Find_Dev*>(object)->SelectFindResult(PP_ToBool(forward)); | |
37 } | |
38 | |
39 void StopFind(PP_Instance instance) { | |
40 void* object = Instance::GetPerInstanceObject(instance, kPPPFindInterface); | |
41 if (object) | |
42 static_cast<Find_Dev*>(object)->StopFind(); | |
43 } | |
44 | |
45 const PPP_Find_Dev ppp_find = { | |
46 &StartFind, | |
47 &SelectFindResult, | |
48 &StopFind | |
49 }; | |
50 | |
51 } // namespace | |
52 | |
53 Find_Dev::Find_Dev(Instance* instance) : associated_instance_(instance) { | |
54 Module::Get()->AddPluginInterface(kPPPFindInterface, &ppp_find); | |
55 instance->AddPerInstanceObject(kPPPFindInterface, this); | |
56 } | |
57 | |
58 Find_Dev::~Find_Dev() { | |
59 Instance::RemovePerInstanceObject(associated_instance_, | |
60 kPPPFindInterface, this); | |
61 } | |
62 | |
63 void Find_Dev::SetPluginToHandleFindRequests() { | |
64 if (has_interface<PPB_Find_Dev>()) { | |
65 get_interface<PPB_Find_Dev>()->SetPluginToHandleFindRequests( | |
66 associated_instance_.pp_instance()); | |
67 } | |
68 } | |
69 | |
70 void Find_Dev::NumberOfFindResultsChanged(int32_t total, bool final_result) { | |
71 if (has_interface<PPB_Find_Dev>()) { | |
72 get_interface<PPB_Find_Dev>()->NumberOfFindResultsChanged( | |
73 associated_instance_.pp_instance(), total, PP_FromBool(final_result)); | |
74 } | |
75 } | |
76 | |
77 void Find_Dev::SelectedFindResultChanged(int32_t index) { | |
78 if (has_interface<PPB_Find_Dev>()) { | |
79 get_interface<PPB_Find_Dev>()->SelectedFindResultChanged( | |
80 associated_instance_.pp_instance(), index); | |
81 } | |
82 } | |
83 | |
84 } // namespace pp | |
OLD | NEW |