• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef PPAPI_CPP_DEV_SELECTION_DEV_H_
6 #define PPAPI_CPP_DEV_SELECTION_DEV_H_
7 
8 #include "ppapi/c/dev/ppp_selection_dev.h"
9 #include "ppapi/cpp/instance_handle.h"
10 
11 namespace pp {
12 
13 class Var;
14 
15 // This class allows you to associate the PPP_Selection_Dev C-based interface
16 // with an object. It registers as the global handler for handling the
17 // PPP_Selection_Dev interface that the browser calls.
18 //
19 // You would typically use this either via inheritance on your instance:
20 //   class MyInstance : public pp::Instance, public pp::Selection_Dev {
21 //     class MyInstance() : pp::Selection_Dev(this) {
22 //     }
23 //     ...
24 //   };
25 //
26 // or by composition:
27 //   class MySelection : public pp::Selection_Dev {
28 //     ...
29 //   };
30 //
31 //   class MyInstance : public pp::Instance {
32 //     MyInstance() : selection_(this) {
33 //     }
34 //
35 //     MySelection selection_;
36 //   };
37 class Selection_Dev {
38  public:
39   explicit Selection_Dev(Instance* instance);
40   virtual ~Selection_Dev();
41 
42   // PPP_Selection_Dev functions exposed as virtual functions for you to
43   // override.
44   virtual Var GetSelectedText(bool html) = 0;
45 
46  private:
47   InstanceHandle associated_instance_;
48 };
49 
50 }  // namespace pp
51 
52 #endif  // PPAPI_CPP_DEV_SELECTION_DEV_H_
53