1 #ifndef __DALI_V8PLUGIN_ACTOR_WRAPPER_H__
2 #define __DALI_V8PLUGIN_ACTOR_WRAPPER_H__
5 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
23 #include <dali/public-api/actors/actor.h>
26 #include <object/handle-wrapper.h>
38 class ActorWrapper : public HandleWrapper
44 * Actor type used an index.
45 * These enums are used to index the ActorApiLookup table in actor-wrapper.cpp.
46 * Any changes made must be reflected in the ActorApiLookup otherwise it may segfault when creating an actor
58 * @param actor DALi actor
59 * @param gc garbage collection interface
61 ActorWrapper( Actor actor,
62 GarbageCollectorInterface& gc );
67 virtual ~ActorWrapper()
72 * @brief Creates a new Actor wrapped inside a Javascript Object.
73 * @note: the actor type ie 'CameraActor' is expected to be the name of the callee function.
74 * @param[in] args v8 function call arguments interpreted
76 static void NewActor( const v8::FunctionCallbackInfo< v8::Value >& args);
79 * @brief Creates a new Control wrapped inside a Javascript Object.
80 * @note: the control type is passed as a parameter e.g. 'TextField'
81 * @param[in] args v8 function call arguments interpreted
83 static void NewControl( const v8::FunctionCallbackInfo< v8::Value >& args);
86 * @brief Wraps an actor of a given type
88 static v8::Handle<v8::Object> WrapActor(v8::Isolate* isolate, Dali::Actor actor,ActorType actorType);
91 * @brief Wraps an actor, the type is looked up from the actor
93 static v8::Handle<v8::Object> WrapActor(v8::Isolate* isolate, Dali::Actor actor );
95 // The Actor ObjectTemplates.
96 static v8::Persistent<v8::ObjectTemplate> mActorTemplate;
97 static v8::Persistent<v8::ObjectTemplate> mCameraActorTemplate;
98 static v8::Persistent<v8::ObjectTemplate> mLayerActorTemplate;
101 * @return the wrapped actor
106 * @return they actor type
108 static ActorWrapper::ActorType GetActorType( const std::string& name );
113 * Helper to make the actor template
116 static v8::Handle<v8::ObjectTemplate> MakeDaliActorTemplate( v8::Isolate* isolate, ActorType actorType );
119 * Helper, get an actor template given an actor type
121 static v8::Local<v8::ObjectTemplate> GetActorTemplate( v8::Isolate* isolate, ActorType type );
127 } // namespace V8Plugin