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 11namespace pp { 12 13class 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// }; 37class 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