diff options
Diffstat (limited to 'ppapi/cpp/dev/find_dev.h')
-rw-r--r-- | ppapi/cpp/dev/find_dev.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/ppapi/cpp/dev/find_dev.h b/ppapi/cpp/dev/find_dev.h new file mode 100644 index 0000000..b89160f --- /dev/null +++ b/ppapi/cpp/dev/find_dev.h @@ -0,0 +1,61 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef PPAPI_CPP_DEV_FIND_DEV_H_ +#define PPAPI_CPP_DEV_FIND_DEV_H_ + +#include <string> + +#include "ppapi/c/dev/ppp_find_dev.h" + +namespace pp { + +class Instance; + +// This class allows you to associate the PPP_Find and PPB_Find C-based +// interfaces with an object. It associates itself with the given instance, and +// registers as the global handler for handling the PPP_Find interface that the +// browser calls. +// +// You would typically use this either via inheritance on your instance: +// class MyInstance : public pp::Instance, public pp::Find_Dev { +// class MyInstance() : pp::Find_Dev(this) { +// } +// ... +// }; +// +// or by composition: +// class MyFinder : public pp::Find { +// ... +// }; +// +// class MyInstance : public pp::Instance { +// MyInstance() : finder_(this) { +// } +// +// MyFinder finder_; +// }; +class Find_Dev { + public: + // The instance parameter must outlive this class. + Find_Dev(Instance* instance); + virtual ~Find_Dev(); + + // PPP_Find_Dev functions exposed as virtual functions for you to + // override. + virtual bool StartFind(const std::string& text, bool case_sensitive) = 0; + virtual void SelectFindResult(bool forward) = 0; + virtual void StopFind() = 0; + + // PPB_Find_Def functions for you to call to report find results. + void NumberOfFindResultsChanged(int32_t total, bool final_result); + void SelectedFindResultChanged(int32_t index); + + private: + Instance* associated_instance_; +}; + +} // namespace pp + +#endif // PPAPI_CPP_DEV_FIND_DEV_H_ |