OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef CONTENT_TEST_CPP_BINDING_EXAMPLE_H_ | 5 #ifndef CONTENT_TEST_CPP_BINDING_EXAMPLE_H_ |
6 #define CONTENT_TEST_CPP_BINDING_EXAMPLE_H_ | 6 #define CONTENT_TEST_CPP_BINDING_EXAMPLE_H_ |
7 | 7 |
8 /* | 8 /* |
9 CppBindingExample class: | 9 CppBindingExample class: |
10 This provides an example of how to use the CppBoundClass to create methods | 10 This provides an example of how to use the CppBoundClass to create methods |
(...skipping 15 matching lines...) Expand all Loading... |
26 document.writeln(example.echoType("Hello world!")); | 26 document.writeln(example.echoType("Hello world!")); |
27 document.writeln(example.plus(2, 3.1)); | 27 document.writeln(example.plus(2, 3.1)); |
28 | 28 |
29 example.my_value = 15; | 29 example.my_value = 15; |
30 example.my_other_value = 2.1; | 30 example.my_other_value = 2.1; |
31 document.writeln(example.plus(example.my_value, example.my_other_value)); | 31 document.writeln(example.plus(example.my_value, example.my_other_value)); |
32 } | 32 } |
33 </script> | 33 </script> |
34 */ | 34 */ |
35 | 35 |
36 #include "webkit/renderer/cpp_bound_class.h" | 36 #include "content/renderer/cpp_bound_class.h" |
37 | 37 |
38 namespace content { | 38 namespace content { |
39 | 39 |
40 class CppBindingExample : public webkit_glue::CppBoundClass { | 40 class CppBindingExample : public CppBoundClass { |
41 public: | 41 public: |
42 // The default constructor initializes the property and method lists needed | 42 // The default constructor initializes the property and method lists needed |
43 // to bind this class to a JS object. | 43 // to bind this class to a JS object. |
44 CppBindingExample(); | 44 CppBindingExample(); |
45 | 45 |
46 // | 46 // |
47 // These public member variables and methods implement the methods and | 47 // These public member variables and methods implement the methods and |
48 // properties that will be exposed to JavaScript. If needed, the class could | 48 // properties that will be exposed to JavaScript. If needed, the class could |
49 // also contain other methods or variables, which will be hidden from JS | 49 // also contain other methods or variables, which will be hidden from JS |
50 // as long as they're not mapped in the property and method lists created in | 50 // as long as they're not mapped in the property and method lists created in |
51 // the constructor. | 51 // the constructor. |
52 // | 52 // |
53 // The signatures of any methods to be bound must match | 53 // The signatures of any methods to be bound must match |
54 // CppBoundClass::Callback. | 54 // CppBoundClass::Callback. |
55 // | 55 // |
56 | 56 |
57 // Returns the value that was passed in as its first (only) argument. | 57 // Returns the value that was passed in as its first (only) argument. |
58 void echoValue(const webkit_glue::CppArgumentList& args, | 58 void echoValue(const CppArgumentList& args, CppVariant* result); |
59 webkit_glue::CppVariant* result); | |
60 | 59 |
61 // Returns a hard-coded value of the same type (bool, number (double), | 60 // Returns a hard-coded value of the same type (bool, number (double), |
62 // string, or null) that was passed in as an argument. | 61 // string, or null) that was passed in as an argument. |
63 void echoType(const webkit_glue::CppArgumentList& args, | 62 void echoType(const CppArgumentList& args, CppVariant* result); |
64 webkit_glue::CppVariant* result); | |
65 | 63 |
66 // Returns the sum of the (first) two arguments as a double, if they are both | 64 // Returns the sum of the (first) two arguments as a double, if they are both |
67 // numbers (integers or doubles). Otherwise returns null. | 65 // numbers (integers or doubles). Otherwise returns null. |
68 void plus(const webkit_glue::CppArgumentList& args, | 66 void plus(const CppArgumentList& args, CppVariant* result); |
69 webkit_glue::CppVariant* result); | |
70 | 67 |
71 // Always returns the same value -- an example of a read-only property. | 68 // Always returns the same value -- an example of a read-only property. |
72 void same(webkit_glue::CppVariant* result); | 69 void same(CppVariant* result); |
73 | 70 |
74 // Invoked when a nonexistent method is called on this example object, this | 71 // Invoked when a nonexistent method is called on this example object, this |
75 // prints an error message. | 72 // prints an error message. |
76 void fallbackMethod(const webkit_glue::CppArgumentList& args, | 73 void fallbackMethod(const CppArgumentList& args, CppVariant* result); |
77 webkit_glue::CppVariant* result); | |
78 | 74 |
79 // These properties will also be exposed to JavaScript. | 75 // These properties will also be exposed to JavaScript. |
80 webkit_glue::CppVariant my_value; | 76 CppVariant my_value; |
81 webkit_glue::CppVariant my_other_value; | 77 CppVariant my_other_value; |
82 }; | 78 }; |
83 | 79 |
84 } // namespace content | 80 } // namespace content |
85 | 81 |
86 #endif // CONTENT_TEST_CPP_BINDING_EXAMPLE_H_ | 82 #endif // CONTENT_TEST_CPP_BINDING_EXAMPLE_H_ |
OLD | NEW |