summaryrefslogtreecommitdiffstats
path: root/chromium/ppapi/cpp/private/find_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ppapi/cpp/private/find_private.h')
-rw-r--r--chromium/ppapi/cpp/private/find_private.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/chromium/ppapi/cpp/private/find_private.h b/chromium/ppapi/cpp/private/find_private.h
new file mode 100644
index 00000000000..268033b6218
--- /dev/null
+++ b/chromium/ppapi/cpp/private/find_private.h
@@ -0,0 +1,66 @@
+// Copyright 2014 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_PRIVATE_FIND_PRIVATE_H_
+#define PPAPI_CPP_PRIVATE_FIND_PRIVATE_H_
+
+#include <string>
+#include <vector>
+
+#include "ppapi/c/private/ppp_find_private.h"
+#include "ppapi/cpp/instance_handle.h"
+
+namespace pp {
+
+class Instance;
+class Rect;
+
+// 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_Private {
+// class MyInstance() : pp::Find_Private(this) {
+// }
+// ...
+// };
+//
+// or by composition:
+// class MyFinder : public pp::Find {
+// ...
+// };
+//
+// class MyInstance : public pp::Instance {
+// MyInstance() : finder_(this) {
+// }
+//
+// MyFinder finder_;
+// };
+class Find_Private {
+ public:
+ // The instance parameter must outlive this class.
+ Find_Private(Instance* instance);
+ virtual ~Find_Private();
+
+ // PPP_Find_Private 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_Private functions for you to call to report find results.
+ void SetPluginToHandleFindRequests();
+ void NumberOfFindResultsChanged(int32_t total, bool final_result);
+ void SelectedFindResultChanged(int32_t index);
+ void SetTickmarks(const std::vector<pp::Rect>& tickmarks);
+
+ private:
+ InstanceHandle associated_instance_;
+};
+
+} // namespace pp
+
+#endif // PPAPI_CPP_PRIVATE_FIND_PRIVATE_H_