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 #ifndef PPAPI_CPP_DEV_FIND_DEV_H_
      6 #define PPAPI_CPP_DEV_FIND_DEV_H_
      7 
      8 #include <string>
      9 
     10 #include "ppapi/c/dev/ppp_find_dev.h"
     11 #include "ppapi/cpp/instance_handle.h"
     12 
     13 namespace pp {
     14 
     15 class Instance;
     16 
     17 // This class allows you to associate the PPP_Find and PPB_Find C-based
     18 // interfaces with an object. It associates itself with the given instance, and
     19 // registers as the global handler for handling the PPP_Find interface that the
     20 // browser calls.
     21 //
     22 // You would typically use this either via inheritance on your instance:
     23 //   class MyInstance : public pp::Instance, public pp::Find_Dev {
     24 //     class MyInstance() : pp::Find_Dev(this) {
     25 //     }
     26 //     ...
     27 //   };
     28 //
     29 // or by composition:
     30 //   class MyFinder : public pp::Find {
     31 //     ...
     32 //   };
     33 //
     34 //   class MyInstance : public pp::Instance {
     35 //     MyInstance() : finder_(this) {
     36 //     }
     37 //
     38 //     MyFinder finder_;
     39 //   };
     40 class Find_Dev {
     41  public:
     42   // The instance parameter must outlive this class.
     43   Find_Dev(Instance* instance);
     44   virtual ~Find_Dev();
     45 
     46   // PPP_Find_Dev functions exposed as virtual functions for you to
     47   // override.
     48   virtual bool StartFind(const std::string& text, bool case_sensitive) = 0;
     49   virtual void SelectFindResult(bool forward) = 0;
     50   virtual void StopFind() = 0;
     51 
     52   // PPB_Find_Def functions for you to call to report find results.
     53   void NumberOfFindResultsChanged(int32_t total, bool final_result);
     54   void SelectedFindResultChanged(int32_t index);
     55 
     56  private:
     57   InstanceHandle associated_instance_;
     58 };
     59 
     60 }  // namespace pp
     61 
     62 #endif  // PPAPI_CPP_DEV_FIND_DEV_H_
     63